RFD: AOT for AArch64

Andrew Dinn adinn at redhat.com
Mon Mar 26 14:56:15 UTC 2018

On 26/03/18 12:08, Andrew Haley wrote:
> On 03/26/2018 11:11 AM, Andrew Dinn wrote:
>> Of course, it may not work any more (I am about to
>> test that now :-).
> OK.  I'll wait for that.
Ok, so modulo the two omitted changes mentioned earlier the only other
problem I found using the hs tip is an over-aggressive assert in
emit_trampoline_stub at macroAssembler_aarch64.cpp:804

  assert(is_NativeCallTrampolineStub_at(stub_start_addr), "doesn't look
like a trampoline");

This asserts if you run using a slowdebug build when a C2 compile tries
to guess the size of a MachNode for a branch by runnign the emit routine
with Compile::current()->in_scratch_emit_size() set to return true. The
label does not compile in offset 8, the assert test finds offset 0 and
blammo! I patched the assert to

assert((Compile::current()->in_scratch_emit_size() ||
        "doesn't look like a trampoline");

and slowdebug works.

Otherwise I managed to do the following:

1) compile a simple test program from a jar into AOT lib test.so and run
the code from test.so.

2) compile a simple test program plus module java.base from a jar into
AOT lib test.so and run the code from test.so.

(n.b. step 2 was using a release build :-).

Ship it!


Andrew Dinn
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander

More information about the hotspot-dev mailing list