[9] RFR(S): 8071818: incorrect addressing mode used for ldf in SPARC assembler

Zoltán Majó zoltan.majo at oracle.com
Thu Jan 29 19:00:42 UTC 2015


Hi,


please review the following small patch.

Bug: https://bugs.openjdk.java.net/browse/JDK-8071818

Problem: For the 'ldf' instruction, the SPARC assembler uses only the 
addressing mode with 'base + displacement + offset'. In some cases, 
however, an addressing mode with 'base + index' is needed. The necessary 
functionality is not in place, which results in a VM crash.

Solution: Add support for index-based addressing to MacroAssembler::ldf. 
'ldf' determines the addressing mode needed by using 
Address::has_index(). The resulting code is analogous to the code in 
'ld', 'st', and variations of them.

Webrev: http://cr.openjdk.java.net/~zmajo/8071818/webrev.00/

Testing: manual testing of failing test case, JPRT tests on Solaris SPARC.

The patch was originally contributed by Andrew Gross.

Thank you!

Best regards,


Zoltan


More information about the hotspot-compiler-dev mailing list