[aarch64-port-dev ] 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() ||
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 aarch64-port-dev
mailing list