[pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust
Roman Kennke
rkennke at openjdk.org
Tue Oct 10 20:32:04 UTC 2023
On Tue, 10 Oct 2023 19:16:45 GMT, Roman Kennke <rkennke at openjdk.org> wrote:
>> Or is unset index `-1`, not `4`?
>
> For some reason, in x86 C2, register index 4 is 'no' register. Similar checks are used elsewhere, e.g. in encode_RegMem in x86_64.ad, line 643. Not sure how to make that better.
All the operand definitions use 0x4 for 'no index' e.g.:
operand stackSlotI(sRegI reg)
%{
constraint(ALLOC_IN_RC(stack_slots));
// No match rule because this operand is only generated in matching
format %{ "[$reg]" %}
interface(MEMORY_INTER) %{
base(0x4); // RSP
index(0x4); // No Index
scale(0x0); // No Scale
disp($reg); // Stack Offset
%}
%}
There are many more cases like this in x86_64
-------------
PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1353230485
More information about the lilliput-dev
mailing list