RFR: 8253795: Implementation of JEP 391: macOS/AArch64 Port [v2]

Andrew Haley aph at openjdk.java.net
Mon Jan 25 17:21:46 UTC 2021

On Sun, 24 Jan 2021 15:50:01 GMT, Anton Kozlov <akozlov at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/interpreterRT_aarch64.cpp line 86:
>>> 84: 
>>> 85:   switch (_num_int_args) {
>>> 86:   case 0:
>> I don't think you need such a large switch statement. I think this can be expressed as
>> if (num_int_args <= 6) {
>>     ldr(as_Register(num_int_args + r1.encoding()), src);
>> ... etc.
> I like the suggestion. For the defense, new functions were made this way intentionally, to match existing `pass_int`, `pass_long`,.. I take your comment as a blessing to fix all of them. But I feel that refactoring of existing code should go in a separate commit. Especially after `pass_int` used `ldr/str` instead of `ldrw/strw`, which looks wrong. https://github.com/openjdk/jdk/pull/2200/files#diff-1ff58ce70aeea7e9842d34e8d8fd9c94dd91182999d455618b2a171efd8f742cL87-R122

This is new code, and it should not repeat the mistakes of the past. There's no need to refactor the similar existing code as part of this patch.


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

More information about the core-libs-dev mailing list