RFR: 8286897: Loom: Cleanup x86_64 StubGenerator [v2]

Aleksey Shipilev shade at openjdk.java.net
Wed May 18 06:05:53 UTC 2022


On Tue, 17 May 2022 18:03:04 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   More changes from x86_32 PR
>
> src/hotspot/cpu/x86/stubGenerator_x86_64.cpp line 7455:
> 
>> 7453:     OopMapSet* oop_maps = new OopMapSet();
>> 7454:     OopMap* map = new OopMap(framesize, 1);
>> 7455:     oop_maps->add_gc_map(the_pc - start, map);
> 
> Use `frame_complete`.

Done.

> src/hotspot/cpu/x86/stubGenerator_x86_64.cpp line 7460:
> 
>> 7458:     __ movptr(c_rarg0, r15_thread);
>> 7459:     __ movptr(c_rarg1, rsp);
>> 7460:     __ call_VM_leaf(Continuation::freeze_entry(), 2);
> 
> Was it bug to not set `c_rarg1`?  stubGenerator_aarch64.cpp has the same issue.

Ah, so this one is little "behavioral" change. For some weird reason, the `__ movptr(c_rarg1, rsp);` used to be much earlier, between `start` and `the_pc`. I don't believe that's part of the frame setup. It looks like a copy-paste glitch from `generate_throw_exception`. So I just moved it here. No tests complain about this move.

> src/hotspot/cpu/x86/stubGenerator_x86_64.cpp line 7666:
> 
>> 7664:     OopMapSet* oop_maps = new OopMapSet();
>> 7665:     OopMap* map = new OopMap(framesize, 1); // rbp
>> 7666:     oop_maps->add_gc_map(the_pc - start, map);
> 
> You can use `frame_complete` here too.

Done.

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

PR: https://git.openjdk.java.net/jdk/pull/8755


More information about the hotspot-dev mailing list