RFR(preliminary): JDK-8190428 Minimal Constant Dynamic support for AArch64
Andrew Haley
aph at redhat.com
Wed Nov 29 15:25:42 UTC 2017
On 29/11/17 14:30, Dmitry Samersov wrote:
> Everybody,
>
> Please review a port of Minimal Constant Dynamic patch to AArch64 platform.
>
> http://cr.openjdk.java.net/~dsamersoff/JDK-8190428.condy/webrev.03/
>
> Any comments are much appreciated.
These lines should not be in macroAssembler:
1778 void MacroAssembler::load_float(Address src) {
1779 ldrs(v0, src);
1780 }
1781
1782 void MacroAssembler::load_double(Address src) {
1783 ldrd(v0, src);
1784 }
1785
598 // Load float value from 'address'. The value is loaded onto the FPU stack.
599 void load_float(Address src);
600 void load_double(Address src);
601
I realize that we're not at all consistent about this stuff, but
we don't need it in macroAssembler. It can go in interp_masm.
This is a bit odd:
464 { // Check for the null sentinel.
465 // If we just called the VM, that already did the mapping for us,
466 // but it's harmless to retry.
467 Label notNull;
468
469 // Store null_sentinel address to get its value later
470 __ movptr(rarg, (uintptr_t)Universe::the_null_sentinel_addr());
471 __ ldr(tmp, rarg);
I think this one should be ldr(tmp, Address(rarg));
472 __ cmp(result, tmp);
473 __ br(Assembler::NE, notNull);
474 __ mov(result, 0); // NULL object reference
475 __ bind(notNull);
476
The rest of it looks fine. Thanks.
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the hotspot-dev
mailing list