comparison src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 16307:2395c0fc5a19

Added lookup for Gaals JavaThread::graal_alternate_call_target_offset() in the i2c.
author Stefan Anzinger <stefan.anzinger@gmail.com>
date Thu, 24 Apr 2014 07:41:56 +0200
parents 4062efea018b
children 51f392557124
comparison
equal deleted inserted replaced
16306:21c3c233e81a 16307:2395c0fc5a19
988 } 988 }
989 } 989 }
990 990
991 // Jump to the compiled code just as if compiled code was doing it. 991 // Jump to the compiled code just as if compiled code was doing it.
992 __ ld_ptr(G5_method, in_bytes(Method::from_compiled_offset()), G3); 992 __ ld_ptr(G5_method, in_bytes(Method::from_compiled_offset()), G3);
993 #ifdef GRAAL
994 // check if this call should be routed towards a specific entry point
995 __ ld(Address(G2_thread, in_bytes(JavaThread::graal_alternate_call_target_offset())), G1);
996 __ cmp(G0, G1);
997 Label no_alternative_target;
998 __ br(Assembler::equal, false, Assembler::pn, no_alternative_target);
999 __ delayed()->nop();
1000
1001 __ ld_ptr(G2_thread, in_bytes(JavaThread::graal_alternate_call_target_offset()), G3);
1002 __ st(G0, Address(G2_thread, in_bytes(JavaThread::graal_alternate_call_target_offset())));
1003
1004 __ bind(no_alternative_target);
1005 #endif
993 1006
994 // 6243940 We might end up in handle_wrong_method if 1007 // 6243940 We might end up in handle_wrong_method if
995 // the callee is deoptimized as we race thru here. If that 1008 // the callee is deoptimized as we race thru here. If that
996 // happens we don't want to take a safepoint because the 1009 // happens we don't want to take a safepoint because the
997 // caller frame will look interpreted and arguments are now 1010 // caller frame will look interpreted and arguments are now