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

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::emitcode(LIRAssembler*)': _/home/adinn/openjdk/hs-comp/hotspot/src/cpu/aarch64/vm/c1CodeStubsaarch64.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.

regards,

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