[aarch64-port-dev ] [9] RFR(S): 8130309: need to bailout cleanly if CompiledStaticCall::emit_to_interp_stub fails when codecache is out of space

Andrew Dinn adinn at redhat.com
Fri Jul 31 17:06:55 UTC 2015

On 31/07/15 17:17, Andrew Dinn wrote:
> On 28/07/15 08:20, Tobias Hartmann wrote:
>>> On 7/27/2015 7:36 AM, Tobias Hartmann wrote:
>>>> Here is the new webrev:
>>>> http://cr.openjdk.java.net/~thartmann/8130309/webrev.03/
> I'm getting a problem building the latest AArch64 hs-comp because of
> bailout being undefined.
> : In member function 'virtual void
> ArrayCopyStub::emit_code(LIR_Assembler*)':
> /home/adinn/openjdk/hs-comp/hotspot/src/cpu/aarch64/vm/c1_CodeStubs_aarch64.cpp\
> :337:39: error: 'bailout' was not declared in this scope
>      bailout("trampoline stub overflow");

Ok, the problem is that the call is happening inside
ArrayCopyStub::emit_code(LIR_Assembler* ce) so it actually needs to be

 ce->bailout("trampoline stub overflow");

However, that won't work because bailout is private to LIR_Assembler. So
we also need a friend declaration in c1_LIRAssembler_aarch64.hpp

There is also a problem with the change to MacroAssembler::trampoline_call

pp:688:10: error: invalid conversion from 'unsigned int' to 'address
{aka unsigned char*}' [-fpermissive]
   return start_offset;

I believe the return value probably ought to be pc() -- the value is not
used as far as I can see but it needs to be a non-NULL address to
indicate that everything worked ok.

I will raise a JIRA for this and post a webrev asap.


Andrew Dinn
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in UK and Wales under Company Registration No. 3798903
Directors: Michael Cunningham (USA), Matt Parson (USA), Charlie Peters
(USA), Michael O'Neill (Ireland)

More information about the hotspot-compiler-dev mailing list