< 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 >