RFR: 8259937: guarantee(loc != NULL) failed: missing saved register with native invoker [v4]

Roland Westrelin roland at openjdk.java.net
Mon Mar 1 08:19:25 UTC 2021


On Fri, 26 Feb 2021 16:07:32 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> Roland Westrelin has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Revert "test & debug"
>>   
>>   This reverts commit cb9dd24c9fcccc6997e9fca874e2860f966b9576.
>
> Marked as reviewed by vlivanov (Reviewer).

> Overall, the fix looks good.
> 
> At some point, there was no frame for native invoker set up and native state transitions were put inline in generated code, but that was rewritten.
> 
> Regarding the refactorings: I find newly introduced `spill_register()`/`fill_register()` methods very confusing.
> I'd prefer to see `spill_output_registers()`/`fill_output_registers()` instead and an assert in `NativeInvokerGenerator` constructor (akin to the one in `NativeInvokerGenerator::generate()` on x86_64):
> 
> ```
>   assert(_output_registers.length() <= 1
>     || (_output_registers.length() == 2 && !_output_registers.at(1)->is_valid()), "no multi-reg returns");
> ```

Thanks for the review. I pushed a new change. Does that look ok to you now?

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

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


More information about the hotspot-compiler-dev mailing list