[pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust

Aleksey Shipilev shade at openjdk.org
Wed Oct 11 08:26:20 UTC 2023


On Tue, 10 Oct 2023 19:32:51 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> 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

Ah, ok then. I missed that original assert also checked for `4`. Weird.

-------------

PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1354385649


More information about the lilliput-dev mailing list