< prev index next >
src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/JavaCallSiteRelocationSymbol.java
Print this page
*** 36,46 ****
*/
final class JavaCallSiteRelocationSymbol extends CallSiteRelocationSymbol {
private static final byte[] zeroSlot = new byte[8];
// -1 represents Universe::non_oop_word() value
! private static final byte[] minusOneSlot = {-1, -1, -1, -1, -1, -1, -1, -1};
JavaCallSiteRelocationSymbol(CompiledMethodInfo mi, Call call, CallSiteRelocationInfo callSiteRelocation, BinaryContainer binaryContainer) {
super(createPltEntrySymbol(binaryContainer, mi, call, callSiteRelocation));
StubInformation stub = getStub(mi, call);
addRelocations(mi, stub, binaryContainer, call, callSiteRelocation);
--- 36,58 ----
*/
final class JavaCallSiteRelocationSymbol extends CallSiteRelocationSymbol {
private static final byte[] zeroSlot = new byte[8];
// -1 represents Universe::non_oop_word() value
! private static final byte[] minusOneSlot;
!
! static {
! String archStr = System.getProperty("os.arch").toLowerCase();
! if (archStr.equals("aarch64")) {
! // AArch64 is a special case: it uses 48-bit addresses.
! byte[] non_oop_word = {-1, -1, -1, -1, -1, -1, 0, 0};
! minusOneSlot = non_oop_word;
! } else {
! byte[] non_oop_word = {-1, -1, -1, -1, -1, -1, -1, -1};
! minusOneSlot = non_oop_word;
! }
! }
JavaCallSiteRelocationSymbol(CompiledMethodInfo mi, Call call, CallSiteRelocationInfo callSiteRelocation, BinaryContainer binaryContainer) {
super(createPltEntrySymbol(binaryContainer, mi, call, callSiteRelocation));
StubInformation stub = getStub(mi, call);
addRelocations(mi, stub, binaryContainer, call, callSiteRelocation);
*** 121,130 ****
--- 133,143 ----
/**
* Returns the name of the resolve method for this particular call.
*/
private static String getResolveSymbolName(CompiledMethodInfo mi, Call call) {
String resolveSymbolName;
+ String name = call.target.toString();
if (CallInfo.isStaticCall(call)) {
assert mi.hasMark(call, MarkId.INVOKESTATIC);
resolveSymbolName = BinaryContainer.getResolveStaticEntrySymbolName();
} else if (CallInfo.isSpecialCall(call)) {
resolveSymbolName = BinaryContainer.getResolveOptVirtualEntrySymbolName();
< prev index next >