RFD: AOT for AArch64 (original) (raw)

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() || is_NativeCallTrampolineStub_at(stub_start_addr)), "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!

regards,

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