From 1aeb25df765699b87ef67054fb52290b771e9646 Mon Sep 17 00:00:00 2001 From: Nazim Uddin Bhuiyan Date: Tue, 16 Oct 2018 17:47:42 -0400 Subject: [PATCH] Make use of DECLARE_GLOBAL and DECLARE_EXTERN macros By making use of those macros, which are generated by jilgen, we no longer have to worry about handling the OS differences when writing assembly code to work across operating systems. This removes the need to prepend underscores to global and extern symbol names. Signed-off-by: Nazim Uddin Bhuiyan --- .../runtime/AMD64CompressString_nasm.inc | 20 +- .../x/amd64/runtime/AMD64Recompilation.nasm | 81 ++- .../compiler/x/runtime/X86ArrayTranslate.nasm | 13 +- runtime/compiler/x/runtime/X86Codert.nasm | 85 +-- .../compiler/x/runtime/X86EncodeUTF16.nasm | 14 +- .../x/runtime/X86LockReservation.nasm | 68 +-- runtime/compiler/x/runtime/X86PicBuilder.nasm | 286 ++++----- .../compiler/x/runtime/X86Unresolveds.nasm | 548 +++++++++--------- 8 files changed, 559 insertions(+), 556 deletions(-) diff --git a/runtime/compiler/x/amd64/runtime/AMD64CompressString_nasm.inc b/runtime/compiler/x/amd64/runtime/AMD64CompressString_nasm.inc index 42ad448edee..512229074eb 100644 --- a/runtime/compiler/x/amd64/runtime/AMD64CompressString_nasm.inc +++ b/runtime/compiler/x/amd64/runtime/AMD64CompressString_nasm.inc @@ -20,16 +20,16 @@ segment .text - global _compressString - global _compressStringJ - global _compressStringNoCheck - global _compressStringNoCheckJ - global _andORString + DECLARE_GLOBAL compressString + DECLARE_GLOBAL compressStringJ + DECLARE_GLOBAL compressStringNoCheck + DECLARE_GLOBAL compressStringNoCheckJ + DECLARE_GLOBAL andORString align 16 -_compressString: +compressString: shr rcx, 4 add rsi, rax add rsi, rax @@ -89,7 +89,7 @@ ret ; ecx has length of copy in bytes ; esi has source address ; edi has destination address -_compressStringJ: +compressStringJ: shr rcx, 4 add rsi, rax add rsi, rax @@ -120,7 +120,7 @@ eightcharsJ: shr rax, 32 ret -_andORString: +andORString: shr rcx, 4 add rsi, rax add rsi, rax @@ -159,7 +159,7 @@ eightchars2: ret -_compressStringNoCheckJ: +compressStringNoCheckJ: shr rcx, 4 add rsi, rax add rsi, rax @@ -181,7 +181,7 @@ eightcharsNoCheckJ: loop eightcharsNoCheckJ ret -_compressStringNoCheck: +compressStringNoCheck: shr rcx, 4 add rsi, rax add rsi, rax diff --git a/runtime/compiler/x/amd64/runtime/AMD64Recompilation.nasm b/runtime/compiler/x/amd64/runtime/AMD64Recompilation.nasm index 9c76fd6a31b..49a47754a0d 100644 --- a/runtime/compiler/x/amd64/runtime/AMD64Recompilation.nasm +++ b/runtime/compiler/x/amd64/runtime/AMD64Recompilation.nasm @@ -22,21 +22,20 @@ %include "jilconsts.inc" - - extern _jitRetranslateMethod - extern _jitCallCFunction - extern _induceRecompilation_unwrapper - extern _mcc_AMD64callPointPatching_unwrapper - extern _initialInvokeExactThunk_unwrapper - extern _methodHandleJ2I_unwrapper - - global _countingRecompileMethod - global _samplingRecompileMethod - global _countingPatchCallSite - global _samplingPatchCallSite - global _induceRecompilation - global _initialInvokeExactThunkGlue - global _methodHandleJ2IGlue + DECLARE_EXTERN jitRetranslateMethod + DECLARE_EXTERN jitCallCFunction + DECLARE_EXTERN induceRecompilation_unwrapper + DECLARE_EXTERN mcc_AMD64callPointPatching_unwrapper + DECLARE_EXTERN initialInvokeExactThunk_unwrapper + DECLARE_EXTERN methodHandleJ2I_unwrapper + + DECLARE_GLOBAL countingRecompileMethod + DECLARE_GLOBAL samplingRecompileMethod + DECLARE_GLOBAL countingPatchCallSite + DECLARE_GLOBAL samplingPatchCallSite + DECLARE_GLOBAL induceRecompilation + DECLARE_GLOBAL initialInvokeExactThunkGlue + DECLARE_GLOBAL methodHandleJ2IGlue segment .text @@ -106,7 +105,7 @@ ret ;exitRecompileMethod endp ; align 16 ; -_countingRecompileMethod: +countingRecompileMethod: ; pop rdi ; Return address in snippet saveRegs @@ -123,7 +122,7 @@ _countingRecompileMethod: mov rax, qword [rax+eq_BodyInfo_MethodInfo] mov rax, qword [rax+eq_MethodInfo_J9Method] - CallHelperUseReg _jitRetranslateMethod,rax + CallHelperUseReg jitRetranslateMethod,rax test rax, rax jnz countingGotStartAddress @@ -153,7 +152,7 @@ ret ; align 16 ; -_samplingRecompileMethod: +samplingRecompileMethod: ; pop rdi ; Return address in preprologue saveRegs @@ -169,7 +168,7 @@ _samplingRecompileMethod: mov rax, qword [rax+eq_BodyInfo_MethodInfo] mov rax, qword [rax+eq_MethodInfo_J9Method] - CallHelperUseReg _jitRetranslateMethod,rax + CallHelperUseReg jitRetranslateMethod,rax ; If the compilation has not been done yet, restart this method. ; It should now execute normally @@ -193,7 +192,7 @@ ret align 16 ; -_induceRecompilation: +induceRecompilation: ; xchg rdi, [rsp] ; Return address in snippet push rsi ; Preserve @@ -203,15 +202,15 @@ _induceRecompilation: movsxd rsi, dword [rdi+eq_induceSnippet_startPCOffset] add rsi, rdi - ; set up args to _induceRecompilation_unwrapper + ; set up args to induceRecompilation_unwrapper push rbp ; parm: vmThread push rsi ; parm: startPC - ; set up args to _jitCallCFunction - MoveHelper rax, _induceRecompilation_unwrapper ; parm: C function to call + ; set up args to jitCallCFunction + MoveHelper rax, induceRecompilation_unwrapper ; parm: C function to call mov rsi, rsp ; parm: args array ; parm: result pointer; don't care - CallHelper _jitCallCFunction + CallHelper jitCallCFunction add rsp, 16 ; restore regs and return to snippet @@ -227,7 +226,7 @@ ret align 16 ; -_countingPatchCallSite: +countingPatchCallSite: ; xchg qword [rsp], rdi push rdx @@ -278,7 +277,7 @@ patchCallSite: push rsi ; preserve rsi xor rsi, rsi push rsi ; extraArg - push rax ; pass old startPC to _mcc_AMD64callPointPatching_unwrapper + push rax ; pass old startPC to mcc_AMD64callPointPatching_unwrapper mov rsi, qword [rax+eq_startPC_BodyInfo] mov rsi, qword [rsi+eq_BodyInfo_MethodInfo] mov rax, qword [rsi+eq_MethodInfo_J9Method] ; rax = j9method @@ -288,10 +287,10 @@ patchCallSite: push rsi ; new startPC push rdx ; call instruction push rax ; j9method - MoveHelper rax, _mcc_AMD64callPointPatching_unwrapper + MoveHelper rax, mcc_AMD64callPointPatching_unwrapper lea rsi, [rsp] lea rdx, [rsp] - call _jitCallCFunction + call jitCallCFunction add rsp, 48 pop rsi @@ -334,7 +333,7 @@ ret align 16 ; -_samplingPatchCallSite: +samplingPatchCallSite: ; xchg qword [rsp], rdi push rdx @@ -368,12 +367,12 @@ samplingPatchToRecompile: ; HCR: we've got our hands on a new j9method that hasn't been compiled yet, ; so there's no way to patch the call site without first compiling the new method ; - ; Make the world look the way it should for a call to _samplingRecompileMethod + ; Make the world look the way it should for a call to samplingRecompileMethod pop rdi pop rax pop rdx xchg qword [rsp], rdi - jmp _samplingRecompileMethod + jmp samplingRecompileMethod ; ; ret @@ -381,22 +380,22 @@ ret align 16 ; -_initialInvokeExactThunkGlue: +initialInvokeExactThunkGlue: ; ; preserve all non-scratch regs push rax push rsi push rdx - ; set up args to _initialInvokeExactThunk_unwrapper + ; set up args to initialInvokeExactThunk_unwrapper push rbp ; parm: vmThread push rax ; parm: receiver MethodHandle; also, result goes here - ; set up args to _jitCallCFunction - MoveHelper rax, _initialInvokeExactThunk_unwrapper ; parm: C function to call + ; set up args to jitCallCFunction + MoveHelper rax, initialInvokeExactThunk_unwrapper ; parm: C function to call mov rsi, rsp ; parm: args array mov rdx, rsp ; parm: result pointer - CallHelper _jitCallCFunction + CallHelper jitCallCFunction pop rax ; result jitted entry point pop rbp @@ -416,7 +415,7 @@ ret align 16 ; -_methodHandleJ2IGlue: +methodHandleJ2IGlue: ; ; Note: this glue is not called, it is jumped to. There is no ; return address on the stack. @@ -426,17 +425,17 @@ _methodHandleJ2IGlue: push rsi push rdx - ; set up args to _initialInvokeExactThunk_unwrapper + ; set up args to initialInvokeExactThunk_unwrapper push rbp ; parm: vmThread lea rsi, [rsp+40] push rsi ; parm: stack pointer before the call to the j2i thunk push rax ; parm: receiver MethodHandle; also, result goes here - ; set up args to _jitCallCFunction - MoveHelper rax, _methodHandleJ2I_unwrapper ; parm: C function to call + ; set up args to jitCallCFunction + MoveHelper rax, methodHandleJ2I_unwrapper ; parm: C function to call mov rsi, rsp ; parm: args array mov rdx, rsp ; parm: result pointer - CallHelper _jitCallCFunction + CallHelper jitCallCFunction pop rax ; result (currently unused) pop rsi pop rbp diff --git a/runtime/compiler/x/runtime/X86ArrayTranslate.nasm b/runtime/compiler/x/runtime/X86ArrayTranslate.nasm index 9436f32f3c2..90385bad461 100644 --- a/runtime/compiler/x/runtime/X86ArrayTranslate.nasm +++ b/runtime/compiler/x/runtime/X86ArrayTranslate.nasm @@ -22,9 +22,10 @@ segment .text - global _arrayTranslateTRTO - global _arrayTranslateTROTNoBreak - global _arrayTranslateTROT + DECLARE_GLOBAL arrayTranslateTRTO + DECLARE_GLOBAL arrayTranslateTROTNoBreak + DECLARE_GLOBAL arrayTranslateTROT + align 16 ; pseudocode: @@ -33,7 +34,7 @@ segment .text ; if (chararray[i] && DX != 0) break; //DX is the register ; else bytearray[i] = (byte) chararray[i]) ; return i - _arrayTranslateTRTO: ;TO stands for Two bytes to One byte + arrayTranslateTRTO: ;TO stands for Two bytes to One byte %ifdef TR_HOST_64BIT mov ecx, ecx %endif @@ -85,7 +86,7 @@ segment .text ; int i; ; for (i = 0; i < N; i++) ; chararray[i] = (char) bytearray[i]; - _arrayTranslateTROTNoBreak: ;OT stands for One byte to Two bytes + arrayTranslateTROTNoBreak: ;OT stands for One byte to Two bytes %ifdef TR_HOST_64BIT mov ecx, ecx %endif @@ -156,7 +157,7 @@ segment .text ; if (bytearray[i] < 0) break; ; else chararray[i] = (char) bytearray[i]; ; return i; - _arrayTranslateTROT: ;OT stands for One byte to Two bytes + arrayTranslateTROT: ;OT stands for One byte to Two bytes %ifdef TR_HOST_64BIT mov ecx, ecx %endif diff --git a/runtime/compiler/x/runtime/X86Codert.nasm b/runtime/compiler/x/runtime/X86Codert.nasm index f0255140d1f..d859ae552d4 100644 --- a/runtime/compiler/x/runtime/X86Codert.nasm +++ b/runtime/compiler/x/runtime/X86Codert.nasm @@ -127,30 +127,31 @@ ONEHALF: segment .text %ifdef TR_HOST_32BIT - global _doubleToLong - global _doubleToInt - global _floatToLong - global _floatToInt + DECLARE_GLOBAL doubleToLong + DECLARE_GLOBAL doubleToInt + DECLARE_GLOBAL floatToLong + DECLARE_GLOBAL floatToInt %endif - global _X87floatRemainder - global _X87doubleRemainder - global _SSEfloatRemainder - global _SSEdoubleRemainder - global _SSEfloatRemainderIA32Thunk - global _SSEdoubleRemainderIA32Thunk + DECLARE_GLOBAL X87floatRemainder + DECLARE_GLOBAL X87doubleRemainder + + DECLARE_GLOBAL SSEfloatRemainder + DECLARE_GLOBAL SSEdoubleRemainder + DECLARE_GLOBAL SSEfloatRemainderIA32Thunk + DECLARE_GLOBAL SSEdoubleRemainderIA32Thunk %ifdef TR_HOST_32BIT - global _SSEdouble2LongIA32 + DECLARE_GLOBAL SSEdouble2LongIA32 %endif - global _jitFPHelpersBegin - global _jitFPHelpersEnd + DECLARE_GLOBAL jitFPHelpersBegin + DECLARE_GLOBAL jitFPHelpersEnd align 16 -_jitFPHelpersBegin: +jitFPHelpersBegin: %ifdef TR_HOST_32BIT -; _doubleToInt +; doubleToInt ; ; Convert doubles to ints when it has already been determined that the ; double cannot be represented in an int OR if it appears that the @@ -165,7 +166,7 @@ _jitFPHelpersBegin: ; eax - equivalent integer: either 0, MAX_INT, or MIN_INT ; align 16 -_doubleToInt: +doubleToInt: push edx mov eax, dword [esp + 12] ; binary representation of high dword of double mov edx, eax @@ -195,7 +196,7 @@ d2i_done: retn -; _doubleToLong +; doubleToLong ; ; Convert doubles to longs when it has already been determined that the ; double cannot be represented in a long OR if it appears that the @@ -211,7 +212,7 @@ d2i_done: ; ST0 - unchanged ; align 16 -_doubleToLong: +doubleToLong: push ecx sub esp, 8 fst qword [esp] @@ -247,7 +248,7 @@ d2l_done: retn -; _floatToInt +; floatToInt ; ; Convert floats to ints when it has already been determined that the ; float cannot be represented in an int OR if it appears that the float @@ -262,7 +263,7 @@ d2l_done: ; eax - equivalent integer: either 0, MAX_INT, or MIN_INT ; align 16 -_floatToInt: +floatToInt: push edx mov eax, dword [esp+8] ; binary representation of float mov edx, eax @@ -285,7 +286,7 @@ f2i_done: retn -; _floatToLong +; floatToLong ; ; Convert floats to longs when it has already been determined that the ; float cannot be represented in a long OR if it appears that the @@ -301,7 +302,7 @@ f2i_done: ; ST0 - unchanged ; align 16 -_floatToLong:; proc near +floatToLong:; proc near push ecx sub esp, 4 fst dword [esp] @@ -334,7 +335,7 @@ f2l_done: %endif ; TR_HOST_32BIT -; _X87floatRemainder, _X87doubleRemainder +; X87floatRemainder, X87doubleRemainder ; ; Compute the remainder from the division of two floats, or two doubles, ; respectively, using the Intel floating-point partial remainder instruction @@ -352,7 +353,7 @@ f2l_done: ; align 16 -_X87floatRemainder: +X87floatRemainder: %ifdef NO_X87_UNDER_WIN64 int 3 %else @@ -370,7 +371,7 @@ fremloop: %endif align 16 -_X87doubleRemainder: +X87doubleRemainder: %ifdef NO_X87_UNDER_WIN64 int 3 %else @@ -393,7 +394,7 @@ dremloop: ; address. ; align 16 -_SSEfloatRemainderIA32Thunk: +SSEfloatRemainderIA32Thunk: sub rsp, 8 movq qword [rsp], xmm1 cvtss2sd xmm1, dword [rsp +16] ; dividend @@ -410,7 +411,7 @@ _SSEfloatRemainderIA32Thunk: ; address. ; align 16 -_SSEdoubleRemainderIA32Thunk: +SSEdoubleRemainderIA32Thunk: sub rsp, 8 movq qword [rsp], xmm1 movq xmm1, qword [rsp +20] ; dividend @@ -422,7 +423,7 @@ _SSEdoubleRemainderIA32Thunk: align 16 -_SSEfloatRemainder: +SSEfloatRemainder: cvtss2sd xmm0, xmm0 cvtss2sd xmm1, xmm1 call doSSEdoubleRemainder @@ -430,7 +431,7 @@ _SSEfloatRemainder: ret align 16 -_SSEdoubleRemainder: +SSEdoubleRemainder: doSSEdoubleRemainder: %ifdef ASM_J9VM_USE_GOT @@ -718,7 +719,7 @@ LARGE_NUMS: ; Note that the double is assumed to have an exponent >= 32. align 16 -_SSEdouble2LongIA32: +SSEdouble2LongIA32: mov edx, dword [rsp+8] ; load the double into edx:eax mov eax, dword [rsp+4] @@ -833,20 +834,20 @@ SSEd2l_NaN: ; if the number is a NaN, return 0 (note: no %endif -_jitFPHelpersEnd: +jitFPHelpersEnd: eq_J9VMThread_heapAlloc equ J9TR_VMThread_heapAlloc eq_J9VMThread_heapTop equ J9TR_VMThread_heapTop eq_J9VMThread_PrefetchCursor equ J9TR_VMThread_tlhPrefetchFTA - global _prefetchTLH - global _newPrefetchTLH + DECLARE_GLOBAL prefetchTLH + DECLARE_GLOBAL newPrefetchTLH %ifdef ASM_J9VM_GC_TLH_PREFETCH_FTA align 16 -_prefetchTLH: +prefetchTLH: push rcx %ifdef TR_HOST_64BIT @@ -890,7 +891,7 @@ eq_prefetchWindow equ 64*4 eq_prefetchTriggerDistance equ 64*8 align 16 -_newPrefetchTLH: +newPrefetchTLH: push rcx ; preserve push rdx ; preserve @@ -997,16 +998,16 @@ ret %else ; ASM_J9VM_GC_TLH_PREFETCH_FTA align 16 -_prefetchTLH: +prefetchTLH: ret align 16 -_newPrefetchTLH: +newPrefetchTLH: ret %endif ; REALTIME - global _jitReleaseVMAccess + DECLARE_GLOBAL jitReleaseVMAccess %ifndef TR_HOST_64BIT @@ -1016,9 +1017,9 @@ _newPrefetchTLH: ; ; -------------------------------------------------------------------------------- - global _clearFPStack + DECLARE_GLOBAL clearFPStack -_jitReleaseVMAccess: +jitReleaseVMAccess: pusha push ebp mov eax, [ebp+J9TR_VMThread_javaVM] @@ -1035,7 +1036,7 @@ _jitReleaseVMAccess: ; Wipe the entire FP stack without raising any exceptions. ; align 16 -_clearFPStack: +clearFPStack: ffree st0 ffree st1 ffree st2 @@ -1054,7 +1055,7 @@ _clearFPStack: ; ; -------------------------------------------------------------------------------- -_jitReleaseVMAccess: +jitReleaseVMAccess: ; Save system-linkage volatile regs ; GPRs push r11 ; Lin Win diff --git a/runtime/compiler/x/runtime/X86EncodeUTF16.nasm b/runtime/compiler/x/runtime/X86EncodeUTF16.nasm index 0ac795c9310..690ff8ab974 100644 --- a/runtime/compiler/x/runtime/X86EncodeUTF16.nasm +++ b/runtime/compiler/x/runtime/X86EncodeUTF16.nasm @@ -24,13 +24,15 @@ SURROGATE_BITS32 equ 0d800d800h SSE_MIN_CHARS equ 32 +%include "jilconsts.inc" + segment .text - global _encodeUTF16Big - global _encodeUTF16Little + DECLARE_GLOBAL encodeUTF16Big + DECLARE_GLOBAL encodeUTF16Little align 16 -_encodeUTF16Big_shufmask: +encodeUTF16Big_shufmask: dq 0607040502030001h dq 0e0f0c0d0a0b0809h @@ -121,7 +123,7 @@ Laligned16_%1: ; helperName %if %2 ;&bigEndian ; shuffle mask for PSHUFB - movdqa xmm4, oword [rel _encodeUTF16Big_shufmask] + movdqa xmm4, oword [rel encodeUTF16Big_shufmask] %endif L8_at_a_time_%1: ; helperName @@ -179,5 +181,5 @@ Lend_%1: ;&helperName: ; Expand out the two helpers -DefineUTF16EncodeHelper _encodeUTF16Big, 1 -DefineUTF16EncodeHelper _encodeUTF16Little, 0 +DefineUTF16EncodeHelper encodeUTF16Big, 1 +DefineUTF16EncodeHelper encodeUTF16Little, 0 diff --git a/runtime/compiler/x/runtime/X86LockReservation.nasm b/runtime/compiler/x/runtime/X86LockReservation.nasm index 8517249356a..4c44ba16931 100644 --- a/runtime/compiler/x/runtime/X86LockReservation.nasm +++ b/runtime/compiler/x/runtime/X86LockReservation.nasm @@ -20,18 +20,18 @@ %include "jilconsts.inc" - global _jitMonitorEnterReserved - global _jitMonitorEnterReservedPrimitive - global _jitMonitorEnterPreservingReservation - global _jitMethodMonitorEnterReserved - global _jitMethodMonitorEnterReservedPrimitive - global _jitMethodMonitorEnterPreservingReservation - global _jitMonitorExitReserved - global _jitMonitorExitReservedPrimitive - global _jitMonitorExitPreservingReservation - global _jitMethodMonitorExitPreservingReservation - global _jitMethodMonitorExitReserved - global _jitMethodMonitorExitReservedPrimitive + DECLARE_GLOBAL jitMonitorEnterReserved + DECLARE_GLOBAL jitMonitorEnterReservedPrimitive + DECLARE_GLOBAL jitMonitorEnterPreservingReservation + DECLARE_GLOBAL jitMethodMonitorEnterReserved + DECLARE_GLOBAL jitMethodMonitorEnterReservedPrimitive + DECLARE_GLOBAL jitMethodMonitorEnterPreservingReservation + DECLARE_GLOBAL jitMonitorExitReserved + DECLARE_GLOBAL jitMonitorExitReservedPrimitive + DECLARE_GLOBAL jitMonitorExitPreservingReservation + DECLARE_GLOBAL jitMethodMonitorExitPreservingReservation + DECLARE_GLOBAL jitMethodMonitorExitReserved + DECLARE_GLOBAL jitMethodMonitorExitReservedPrimitive %ifdef WINDOWS UseFastCall equ 1 @@ -286,40 +286,40 @@ eq_J9Monitor_CNTFLCClearMask equ 0FFFFFFFFFFFFFF05h segment .text -extern _jitMonitorEntry -extern _jitMethodMonitorEntry -extern _jitMonitorExit -extern _jitMethodMonitorExit +DECLARE_EXTERN jitMonitorEntry +DECLARE_EXTERN jitMethodMonitorEntry +DECLARE_EXTERN jitMonitorExit +DECLARE_EXTERN jitMethodMonitorExit %ifdef TR_HOST_64BIT - entryFallback equ _jitMonitorEntry - methodEntryFallback equ _jitMethodMonitorEntry + entryFallback equ jitMonitorEntry + methodEntryFallback equ jitMethodMonitorEntry %else entryFallback: - ; _jitMonitorEntry won't clean up the extra argument + ; jitMonitorEntry won't clean up the extra argument pop eax mov dword [esp], eax - jmp _jitMonitorEntry + jmp jitMonitorEntry retn methodEntryFallback: - ; _jitMethodMonitorEntry won't clean up the extra argument + ; jitMethodMonitorEntry won't clean up the extra argument pop eax mov dword [esp], eax - jmp _jitMethodMonitorEntry + jmp jitMethodMonitorEntry retn %endif -MonitorReservationFunction _jitMonitorEnterReserved, entryFallback, MonitorEnterReserved -MonitorReservationFunction _jitMethodMonitorEnterReserved, methodEntryFallback, MonitorEnterReserved -MonitorReservationFunction _jitMonitorEnterReservedPrimitive, entryFallback, MonitorEnterReservedPrimitive -MonitorReservationFunction _jitMethodMonitorEnterReservedPrimitive, methodEntryFallback, MonitorEnterReservedPrimitive -MonitorReservationFunction _jitMonitorEnterPreservingReservation, _jitMonitorEntry, MonitorEnterPreservingReservation -MonitorReservationFunction _jitMethodMonitorEnterPreservingReservation, _jitMethodMonitorEntry, MonitorEnterPreservingReservation +MonitorReservationFunction jitMonitorEnterReserved, entryFallback, MonitorEnterReserved +MonitorReservationFunction jitMethodMonitorEnterReserved, methodEntryFallback, MonitorEnterReserved +MonitorReservationFunction jitMonitorEnterReservedPrimitive, entryFallback, MonitorEnterReservedPrimitive +MonitorReservationFunction jitMethodMonitorEnterReservedPrimitive, methodEntryFallback, MonitorEnterReservedPrimitive +MonitorReservationFunction jitMonitorEnterPreservingReservation, jitMonitorEntry, MonitorEnterPreservingReservation +MonitorReservationFunction jitMethodMonitorEnterPreservingReservation, jitMethodMonitorEntry, MonitorEnterPreservingReservation -MonitorReservationFunction _jitMonitorExitReserved, _jitMonitorExit, MonitorExitReserved -MonitorReservationFunction _jitMethodMonitorExitReserved, _jitMethodMonitorExit, MonitorExitReserved -MonitorReservationFunction _jitMonitorExitReservedPrimitive, _jitMonitorExit, MonitorExitReservedPrimitive -MonitorReservationFunction _jitMethodMonitorExitReservedPrimitive, _jitMethodMonitorExit, MonitorExitReservedPrimitive -MonitorReservationFunction _jitMonitorExitPreservingReservation, _jitMonitorExit, MonitorExitPreservingReservation -MonitorReservationFunction _jitMethodMonitorExitPreservingReservation, _jitMethodMonitorExit, MonitorExitPreservingReservation \ No newline at end of file +MonitorReservationFunction jitMonitorExitReserved, jitMonitorExit, MonitorExitReserved +MonitorReservationFunction jitMethodMonitorExitReserved, jitMethodMonitorExit, MonitorExitReserved +MonitorReservationFunction jitMonitorExitReservedPrimitive, jitMonitorExit, MonitorExitReservedPrimitive +MonitorReservationFunction jitMethodMonitorExitReservedPrimitive, jitMethodMonitorExit, MonitorExitReservedPrimitive +MonitorReservationFunction jitMonitorExitPreservingReservation, jitMonitorExit, MonitorExitPreservingReservation +MonitorReservationFunction jitMethodMonitorExitPreservingReservation, jitMethodMonitorExit, MonitorExitPreservingReservation \ No newline at end of file diff --git a/runtime/compiler/x/runtime/X86PicBuilder.nasm b/runtime/compiler/x/runtime/X86PicBuilder.nasm index 3922e589b7d..40294729402 100644 --- a/runtime/compiler/x/runtime/X86PicBuilder.nasm +++ b/runtime/compiler/x/runtime/X86PicBuilder.nasm @@ -33,33 +33,33 @@ segment .text - extern _jitLookupInterfaceMethod - extern _jitResolveInterfaceMethod - extern _jitResolveVirtualMethod - extern _jitCallJitAddPicToPatchOnClassUnload - extern _jitInstanceOf - extern _j2iVirtual - - global _resolveIPicClass - global _populateIPicSlotClass - global _populateIPicSlotCall - global _dispatchInterpretedFromIPicSlot - global _IPicLookupDispatch - - global _resolveVPicClass - global _populateVPicSlotClass - global _populateVPicSlotCall - global _dispatchInterpretedFromVPicSlot - global _populateVPicVTableDispatch - global _resolveAndPopulateVTableDispatch - global _memoryFence + DECLARE_EXTERN jitLookupInterfaceMethod + DECLARE_EXTERN jitResolveInterfaceMethod + DECLARE_EXTERN jitResolveVirtualMethod + DECLARE_EXTERN jitCallJitAddPicToPatchOnClassUnload + DECLARE_EXTERN jitInstanceOf + DECLARE_EXTERN j2iVirtual + + DECLARE_GLOBAL resolveIPicClass + DECLARE_GLOBAL populateIPicSlotClass + DECLARE_GLOBAL populateIPicSlotCall + DECLARE_GLOBAL dispatchInterpretedFromIPicSlot + DECLARE_GLOBAL IPicLookupDispatch + + DECLARE_GLOBAL resolveVPicClass + DECLARE_GLOBAL populateVPicSlotClass + DECLARE_GLOBAL populateVPicSlotCall + DECLARE_GLOBAL dispatchInterpretedFromVPicSlot + DECLARE_GLOBAL populateVPicVTableDispatch + DECLARE_GLOBAL resolveAndPopulateVTableDispatch + DECLARE_GLOBAL memoryFence ; Perform a memory fence. The capabilities of the target architecture must be inspected at runtime ; to determine the appropriate fence instruction to use. ; align 16 -_memoryFence: +memoryFence: push ecx ; preserve mov ecx, [ebp + J9TR_VMThread_javaVM] @@ -108,7 +108,7 @@ dispatchDirectMethod: dispatchDirectMethodInterpreted: lea edx, [eax+J9TR_J9_VTABLE_INDEX_DIRECT_METHOD_FLAG] ; low-tagged J9Method - MoveHelper edi, _j2iVirtual + MoveHelper edi, j2iVirtual mergeDispatchDirectMethod: pop eax ; restore @@ -126,7 +126,7 @@ ret ; across the call to the resolution helper. ; align 16 -_resolveIPicClass: ; proc near +resolveIPicClass: ; proc near push edx ; preserve push edi ; preserve mov edi, dword [esp+8] ; RA in code cache @@ -163,9 +163,9 @@ mergeFindDataBlockForResolveIPicClass: callResolveInterfaceMethod: push edi ; p) jit valid EIP push edx ; p) push the address of the constant pool and cpIndex - CallHelperUseReg _jitResolveInterfaceMethod,eax ; returns interpreter vtable index + CallHelperUseReg jitResolveInterfaceMethod,eax ; returns interpreter vtable index - call _memoryFence ; Ensure IPIC data area drains to memory before proceeding. + call memoryFence ; Ensure IPIC data area drains to memory before proceeding. test dword [edx+eq_IPicData_itableOffset], J9TR_J9_ITABLE_OFFSET_DIRECT jnz typeCheckAndDirectDispatchIPic @@ -187,8 +187,8 @@ callResolveInterfaceMethod: ; Construct the call instruction in edx:eax that should have brought ; us to this helper + the following 3 bytes. ; - MoveHelper eax, _resolveIPicClass - MoveHelper ebx, _populateIPicSlotClass + MoveHelper eax, resolveIPicClass + MoveHelper ebx, populateIPicSlotClass mov edi, dword [esp+20] ; edi = RA in mainline (call to helper) mov edx, dword [edi-1] ; edx = 3 bytes after the call to helper + high byte of disp32 sub eax, edi ; Expected disp32 for call to helper @@ -197,7 +197,7 @@ callResolveInterfaceMethod: mov al, 0e8h ; add CALL opcode ; Construct the byte sequence in ecx:ebx to re-route the call - ; to _populateIPicSlotClass. + ; to populateIPicSlotClass. ; sub ebx, edi ; disp32 to populate snippet mov ecx, edx @@ -262,7 +262,7 @@ ret ; across the call to the lookup helper. ; align 16 -_populateIPicSlotClass: ; proc near +populateIPicSlotClass: ; proc near push edx ; preserve push edi ; preserve mov edi, dword [esp+8] ; RA in code cache @@ -298,7 +298,7 @@ mergePopulateIPicClass: push edx ; p) EA of resolved interface class LoadClassPointerFromObjectHeader eax, eax, eax push eax ; p) receiver class - CallHelperUseReg _jitLookupInterfaceMethod,eax ; returns interpreter vtable offset + CallHelperUseReg jitLookupInterfaceMethod,eax ; returns interpreter vtable offset ; Lookup succeeded--attempt to grab the PIC slot for this receivers class. ; @@ -323,7 +323,7 @@ mergePopulateIPicClass: ; lea esi, [edx-eq_IPicData_interfaceClass] ; esi = EA of IClass in data block - MoveHelper eax, _populateIPicSlotClass + MoveHelper eax, populateIPicSlotClass mov edi, dword [esp+24] ; edi = RA in mainline (call to helper) mov edx, dword [edi-1] ; edx = 3 bytes after the call to helper + high byte of disp32 sub eax, edi ; Expected disp32 for call to snippet @@ -370,7 +370,7 @@ mergePopulateIPicClass: lea edi, [edi-3] ; EA of immediate push edi ; p) address to patch push edx ; p) receivers class - CallHelper _jitCallJitAddPicToPatchOnClassUnload + CallHelper jitCallJitAddPicToPatchOnClassUnload IPicClassSlotUpdateFailed: %endif @@ -400,7 +400,7 @@ ret ; getJitVirtualMethodResolvePushes() across the call to the lookup helper. ; align 16 -_populateIPicSlotCall: +populateIPicSlotCall: push edx ; preserve push edi ; preserve mov edi, dword [esp+8] ; RA in code cache @@ -439,7 +439,7 @@ mergeIPicSlotCall: push edi ; p) jit EIP push edx ; p) EA of resolved interface class push eax ; p) receiver class - CallHelperUseReg _jitLookupInterfaceMethod,eax ; returns interpreter vtable offset + CallHelperUseReg jitLookupInterfaceMethod,eax ; returns interpreter vtable offset mov edx, eax pop eax ; restore receiver push ecx ; preserve @@ -469,7 +469,7 @@ populateLastIPicSlot: jmp mergeIPicSlotCall IPicSlotMethodInterpreted: - MoveHelper ecx, _dispatchInterpretedFromIPicSlot + MoveHelper ecx, dispatchInterpretedFromIPicSlot jmp short mergeUpdateIPicSlotCall ret @@ -481,7 +481,7 @@ ret ; across the call to the lookup helper. ; align 16 -_dispatchInterpretedFromIPicSlot: +dispatchInterpretedFromIPicSlot: push edx ; preserve push edi ; preserve mov edi, dword [esp+8] ; RA in code cache @@ -518,7 +518,7 @@ mergeIPicInterpretedDispatch: push edi ; p) jit EIP push edx ; p) EA of resolved interface class push eax ; p) receiver class - CallHelperUseReg _jitLookupInterfaceMethod,eax ; returns interpreter vtable offset + CallHelperUseReg jitLookupInterfaceMethod,eax ; returns interpreter vtable offset mov edx, eax pop eax ; restore receiver push ecx ; preserve @@ -561,7 +561,7 @@ ret ; across the call to the lookup helper. ; align 16 -_IPicLookupDispatch: +IPicLookupDispatch: push edx ; preserve push edi ; preserve mov edi, dword [esp+8] ; RA in code cache @@ -587,7 +587,7 @@ _IPicLookupDispatch: push edi ; p) jit EIP push edi ; p) EA of resolved interface class in IPic push edx ; p) receiver class - CallHelperUseReg _jitLookupInterfaceMethod,eax ; returns interpreter vtable offset + CallHelperUseReg jitLookupInterfaceMethod,eax ; returns interpreter vtable offset sub eax, J9TR_InterpVTableOffset neg eax ; JIT vtable offset mov edi, [edx+eax] ; target in JIT side vtable @@ -608,14 +608,14 @@ ret ; across the call to the resolution helper. ; align 16 -_resolveVPicClass: +resolveVPicClass: push edx ; preserve push edi ; preserve mov edi, dword [esp+8] ; RA in code cache cmp byte [edi+1], 075h ; is it a short branch? - jnz _resolveVPicClassLongBranch ; no + jnz resolveVPicClassLongBranch ; no lea edi, [edi+9] ; EA of disp8 in JMP ; 9 = 1 + 2 (JNE) + 5 (CALL) + 1 (JMP) @@ -643,7 +643,7 @@ mergeFindDataBlockForResolveVPicClass: push edi ; p) jit valid EIP push edx ; p) push the address of the constant pool and cpIndex - CallHelperUseReg _jitResolveVirtualMethod,eax ; returns compiler vtable index + CallHelperUseReg jitResolveVirtualMethod,eax ; returns compiler vtable index test eax, J9TR_J9_VTABLE_INDEX_DIRECT_METHOD_FLAG jnz resolvedToDirectMethodVPic @@ -665,8 +665,8 @@ mergeFindDataBlockForResolveVPicClass: ; Construct the call instruction in edx:eax that should have brought ; us to this helper + the following 3 bytes. ; - MoveHelper eax, _resolveVPicClass - MoveHelper ebx, _populateVPicSlotClass + MoveHelper eax, resolveVPicClass + MoveHelper ebx, populateVPicSlotClass mov edi, dword [esp+20] ; edi = RA in mainline (call to helper) mov edx, dword [edi-1] ; edx = 3 bytes after the call to helper + high byte of disp32 sub eax, edi ; Expected disp32 for call to helper @@ -675,7 +675,7 @@ mergeFindDataBlockForResolveVPicClass: mov al, 0e8h ; add CALL opcode ; Construct the byte sequence in ecx:ebx to re-route the call - ; to _populateVPicSlotClass. + ; to populateVPicSlotClass. ; sub ebx, edi ; disp32 to populate snippet mov ecx, edx @@ -731,7 +731,7 @@ ret ; across the call to the lookup helper. ; align 16 -_populateVPicSlotClass: +populateVPicSlotClass: push edx ; preserve push edi ; preserve @@ -771,7 +771,7 @@ mergePopulateVPicClass: ; mov esi, edx ; esi = EA of VPic data block - MoveHelper eax, _populateVPicSlotClass + MoveHelper eax, populateVPicSlotClass mov edi, dword [esp+24] ; edi = RA in mainline (call to helper) mov edx, dword [edi-1] ; edx = 3 bytes after the call to helper + high byte of disp32 sub eax, edi ; Expected disp32 for call to snippet @@ -811,7 +811,7 @@ mergePopulateVPicClass: lea edi, [edi-3] ; EA of immediate push edi ; p) address to patch push edx ; p) receivers class - CallHelper _jitCallJitAddPicToPatchOnClassUnload + CallHelper jitCallJitAddPicToPatchOnClassUnload VPicClassSlotUpdateFailed: %endif @@ -838,7 +838,7 @@ ret ; across the call to the lookup helper. ; align 16 -_populateVPicSlotCall: +populateVPicSlotCall: push edx ; preserve push edi ; preserve @@ -869,7 +869,7 @@ mergeVPicSlotCall: ; push edi ; p) jit valid EIP push edx ; p) push the address of the constant pool and cpIndex - CallHelperUseReg _jitResolveVirtualMethod,eax ; returns compiler vtable index + CallHelperUseReg jitResolveVirtualMethod,eax ; returns compiler vtable index mov edx, dword [esp] ; edx = receiver @@ -907,7 +907,7 @@ populateLastVPicSlot: jmp mergeVPicSlotCall VPicSlotMethodInterpreted: - MoveHelper edx, _dispatchInterpretedFromVPicSlot + MoveHelper edx, dispatchInterpretedFromVPicSlot jmp short mergeUpdateVPicSlotCall ret @@ -921,7 +921,7 @@ ret ; across the call to the lookup helper. ; align 16 -_dispatchInterpretedFromVPicSlot: +dispatchInterpretedFromVPicSlot: push edx ; preserve push edi ; preserve @@ -984,7 +984,7 @@ vtableCallNotPatched: lea edx, [edx-eq_VPicData_size] ; edx = EA of VPic data push dword [esp+12] ; p) jit valid EIP push edx ; p) push the address of the constant pool and cpIndex - CallHelperUseReg _jitResolveVirtualMethod,eax ; eax = compiler vtable index + CallHelperUseReg jitResolveVirtualMethod,eax ; eax = compiler vtable index lea edx, [edx+eq_VPicData_size] ; restore edx = EA of vtable dispatch jmp short mergeCheckIfMethodCompiled @@ -998,7 +998,7 @@ ret ; across the call to the resolution helper. ; align 16 -_populateVPicVTableDispatch: +populateVPicVTableDispatch: push edx ; preserve push edi ; preserve @@ -1017,7 +1017,7 @@ _populateVPicVTableDispatch: ; push edi ; p) jit valid EIP push edx ; p) push the address of the constant pool and cpIndex - CallHelperUseReg _jitResolveVirtualMethod,eax ; returns compiler vtable index + CallHelperUseReg jitResolveVirtualMethod,eax ; returns compiler vtable index push ebx ; preserve push ecx ; preserve @@ -1046,7 +1046,7 @@ _populateVPicVTableDispatch: ; Construct the call instruction in edx:eax that should have brought ; us to this helper + the following 3 bytes. ; - MoveHelper eax, _populateVPicVTableDispatch + MoveHelper eax, populateVPicVTableDispatch mov edx, dword [edi-1] ; edx = 3 bytes after the call to helper + high byte of disp32 mov esi, edx ; copy to preserve 3 bytes sub eax, edi ; Expected disp32 for call to helper @@ -1097,7 +1097,7 @@ ret ; branch will ; ; vtableDispatchSnippet: ; push edx -; call _resolveAndPopulateVTableDispatch +; call resolveAndPopulateVTableDispatch ; dd cpAddr ; dd cpIndex ; dw CALL opcode + modRM @@ -1107,7 +1107,7 @@ ret ; branch will ; align 16 -_resolveAndPopulateVTableDispatch: +resolveAndPopulateVTableDispatch: ; edx was preserved prior to the call and is available as a scratch register ; @@ -1125,7 +1125,7 @@ _resolveAndPopulateVTableDispatch: ; push edx ; p) jit valid EIP push edx ; p) push the address of the constant pool and cpIndex - CallHelperUseReg _jitResolveVirtualMethod,eax ; returns compiler vtable index + CallHelperUseReg jitResolveVirtualMethod,eax ; returns compiler vtable index push ebx ; preserve push ecx ; preserve @@ -1210,37 +1210,37 @@ ret ; branch will mispredict s segment .text - global _resolveIPicClass - global _populateIPicSlotClass - global _populateIPicSlotCall - global _dispatchInterpretedFromIPicSlot - global _IPicLookupDispatch + DECLARE_GLOBAL resolveIPicClass + DECLARE_GLOBAL populateIPicSlotClass + DECLARE_GLOBAL populateIPicSlotCall + DECLARE_GLOBAL dispatchInterpretedFromIPicSlot + DECLARE_GLOBAL IPicLookupDispatch - global _resolveVPicClass - global _populateVPicSlotClass - global _populateVPicSlotCall - global _dispatchInterpretedFromVPicSlot - global _populateVPicVTableDispatch + DECLARE_GLOBAL resolveVPicClass + DECLARE_GLOBAL populateVPicSlotClass + DECLARE_GLOBAL populateVPicSlotCall + DECLARE_GLOBAL dispatchInterpretedFromVPicSlot + DECLARE_GLOBAL populateVPicVTableDispatch - extern _jitResolveInterfaceMethod - extern _jitLookupInterfaceMethod - extern _jitResolveVirtualMethod - extern _jitCallCFunction - extern _jitCallJitAddPicToPatchOnClassUnload - extern _jitMethodIsNative - extern _jitInstanceOf + DECLARE_EXTERN jitResolveInterfaceMethod + DECLARE_EXTERN jitLookupInterfaceMethod + DECLARE_EXTERN jitResolveVirtualMethod + DECLARE_EXTERN jitCallCFunction + DECLARE_EXTERN jitCallJitAddPicToPatchOnClassUnload + DECLARE_EXTERN jitMethodIsNative + DECLARE_EXTERN jitInstanceOf - extern _resolveIPicClassHelperIndex - extern _populateIPicSlotClassHelperIndex - extern _dispatchInterpretedFromIPicSlotHelperIndex - extern _resolveVPicClassHelperIndex - extern _populateVPicSlotClassHelperIndex - extern _dispatchInterpretedFromVPicSlotHelperIndex - extern _populateVPicVTableDispatchHelperIndex + DECLARE_EXTERN resolveIPicClassHelperIndex + DECLARE_EXTERN populateIPicSlotClassHelperIndex + DECLARE_EXTERN dispatchInterpretedFromIPicSlotHelperIndex + DECLARE_EXTERN resolveVPicClassHelperIndex + DECLARE_EXTERN populateVPicSlotClassHelperIndex + DECLARE_EXTERN dispatchInterpretedFromVPicSlotHelperIndex + DECLARE_EXTERN populateVPicVTableDispatchHelperIndex - extern _mcc_lookupHelperTrampoline_unwrapper - extern _mcc_reservationInterfaceCache_unwrapper - extern _mcc_callPointPatching_unwrapper + DECLARE_EXTERN mcc_lookupHelperTrampoline_unwrapper + DECLARE_EXTERN mcc_reservationInterfaceCache_unwrapper + DECLARE_EXTERN mcc_callPointPatching_unwrapper @@ -1286,10 +1286,10 @@ selectHelperOrTrampolineDisp32: ; Call MCC service ; - MoveHelper rax, _mcc_lookupHelperTrampoline_unwrapper ; p1) helper address + MoveHelper rax, mcc_lookupHelperTrampoline_unwrapper ; p1) helper address lea rsi, [rsp] ; p2) EA parms in TLS area lea rdx, [rsp+32] ; p3) EA of return value in TLS area - call _jitCallCFunction + call jitCallCFunction add rsp, 32 pop rax ; trampoline address from return area mov rdx, rcx ; restore RA in code cache @@ -1303,20 +1303,20 @@ helperIsReachable: ret %if 0 -(10) mov rdi, 0x0000ffffffffffff call _resolveIPicClass -> _populateIPicSlotClass +(10) mov rdi, 0x0000ffffffffffff call resolveIPicClass -> populateIPicSlotClass (3) cmp rdx, rdi (2) jne checkNextSlot -(5) call devirtualizedTarget call _populateIPicSlotCall +(5) call devirtualizedTarget call populateIPicSlotCall (2) jmp done (2) .align 8 .align 8 checkLastSlot: -(10) mov rdi, 0x0000ffffffffffff call _populateIPicSlotClass +(10) mov rdi, 0x0000ffffffffffff call populateIPicSlotClass (3) cmp rdx, rdi (6) jne lookupDispatchSnippet -(5) call devirtualizedTarget call _populateIPicSlotCall +(5) call devirtualizedTarget call populateIPicSlotCall 0: ret addr to picbuilder 1: arg3 @@ -1379,7 +1379,7 @@ ret ; across the call to the resolution helper. ; align 16 -_resolveIPicClass: +resolveIPicClass: %ifdef ENABLE_PIC_INT3 int 3 @@ -1420,7 +1420,7 @@ mergeResolveIPicClass: callResolveInterfaceMethod: mov rsi, rdi ; p2) jit valid EIP mov rax, rdx ; p1) address of the constant pool and cpIndex - CallHelperUseReg _jitResolveInterfaceMethod,rax ; returns interpreter vtable index + CallHelperUseReg jitResolveInterfaceMethod,rax ; returns interpreter vtable index mfence ; Ensure IPIC data area drains to memory before proceeding. @@ -1431,16 +1431,16 @@ callResolveInterfaceMethod: ; Construct the call instruction in rax that should have brought ; us to this helper + the following 3 bytes. ; - MoveHelper rax, _populateIPicSlotClass ; p1) rax = helper address - LoadHelperIndex esi, _populateIPicSlotClassHelperIndex ; p2) rsi = helper index + MoveHelper rax, populateIPicSlotClass ; p1) rax = helper address + LoadHelperIndex esi, populateIPicSlotClassHelperIndex ; p2) rsi = helper index mov rdx, rdi ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 mov rcx, rax shl rcx, 8 mov cl, 0e8h - MoveHelper rax, _resolveIPicClass ; p1) rax = helper address - LoadHelperIndex esi, _resolveIPicClassHelperIndex ; p2) rsi = helper index + MoveHelper rax, resolveIPicClass ; p1) rax = helper address + LoadHelperIndex esi, resolveIPicClassHelperIndex ; p2) rsi = helper index ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 shl rax, 8 @@ -1467,7 +1467,7 @@ resolveIPicClassLongBranch: typeCheckAndDirectDispatchIPic: mov rax, qword [rdx+eq_IPicData_interfaceClass] ; p1) interface class mov rsi, qword [rsp+24] ; p2) receiver (saved rax) - CallHelperUseReg _jitInstanceOf, rax + CallHelperUseReg jitInstanceOf, rax test rax, rax jz throwOnFailedTypeCheckIPic @@ -1485,7 +1485,7 @@ throwOnFailedTypeCheckIPic: lea rsi, [rdx+eq_IPicData_interfaceClass] ; p2) rsi = resolved interface class EA mov rcx, rdx ; p4) rcx = address of constant pool and cpIndex mov rdx, qword [rsp+40] ; p3) rdx = jit RIP (saved RA in code cache) - CallHelperUseReg _jitLookupInterfaceMethod, rax ; guaranteed to throw + CallHelperUseReg jitLookupInterfaceMethod, rax ; guaranteed to throw int 3 ret @@ -1497,7 +1497,7 @@ ret ; across the call to the lookup helper. ; align 16 -_populateIPicSlotClass: +populateIPicSlotClass: %ifdef ENABLE_PIC_INT3 int 3 @@ -1536,7 +1536,7 @@ mergePopulateIPicClass: ; p2) rsi = resolved interface class EA ; p3) rdx = jit RIP ; p4) rcx = address of constant pool and cpIndex - CallHelperUseReg _jitLookupInterfaceMethod,rax ; returns interpreter vtable offset + CallHelperUseReg jitLookupInterfaceMethod,rax ; returns interpreter vtable offset mov rdi, rcx ; start of IPIC data @@ -1545,8 +1545,8 @@ mergePopulateIPicClass: ; Construct the call instruction in rax that should have brought ; us to this helper + the following 3 bytes. ; - MoveHelper rax, _populateIPicSlotClass ; p1) rax = helper address - LoadHelperIndex esi, _populateIPicSlotClassHelperIndex ; p2) rsi = helper index + MoveHelper rax, populateIPicSlotClass ; p1) rax = helper address + LoadHelperIndex esi, populateIPicSlotClassHelperIndex ; p2) rsi = helper index ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 shl rax, 8 @@ -1578,7 +1578,7 @@ mergePopulateIPicClass: ; p1) rax = receivers class lea rsi, [rdx-3] ; p2) rsi = EA of Imm64 to patch - CallHelper _jitCallJitAddPicToPatchOnClassUnload + CallHelper jitCallJitAddPicToPatchOnClassUnload IPicClassSlotUpdateFailed: %endif @@ -1609,7 +1609,7 @@ ret ; getJitVirtualMethodResolvePushes() across the call to the lookup helper. ; align 16 -_populateIPicSlotCall: +populateIPicSlotCall: %ifdef ENABLE_PIC_INT3 int 3 @@ -1653,7 +1653,7 @@ mergeIPicSlotCall: ; p2) rsi = resolved interface class EA ; p3) rdx = jit RIP ; p4) rcx = address of constant pool and cpIndex - CallHelperUseReg _jitLookupInterfaceMethod,rax ; returns interpreter vtable offset + CallHelperUseReg jitLookupInterfaceMethod,rax ; returns interpreter vtable offset mov rax, qword [rdi+rax] ; rax = J9Method from interpreter vtable test byte [rax + J9TR_MethodPCStartOffset], J9TR_MethodNotCompiledBit ; method compiled? @@ -1666,10 +1666,10 @@ mergeIPicSlotCall: mergeUpdateIPicSlotCallWithCompiledMethod: push rax ; build descriptor : J9Method push rdx ; build descriptor : call site - MoveHelper rax, _mcc_reservationInterfaceCache_unwrapper ; p1) helper + MoveHelper rax, mcc_reservationInterfaceCache_unwrapper ; p1) helper lea rsi, [rsp] ; p2) pointer to args lea rdx, [rsp] ; p3) pointer to return - call _jitCallCFunction + call jitCallCFunction pop rdx ; tear down descriptor pop rax ; tear down descriptor @@ -1702,8 +1702,8 @@ populateIPicSlotCallExit: ret ; branch will mispredict so single-byte RET is ok IPicSlotMethodInterpreted: - MoveHelper rax, _dispatchInterpretedFromIPicSlot ; p1) rax = helper address - LoadHelperIndex esi, _dispatchInterpretedFromIPicSlotHelperIndex ; p2) rsi = helper index + MoveHelper rax, dispatchInterpretedFromIPicSlot ; p1) rax = helper address + LoadHelperIndex esi, dispatchInterpretedFromIPicSlotHelperIndex ; p2) rsi = helper index ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 mov ecx, eax ; 32-bit copy because disp32 @@ -1721,10 +1721,10 @@ populateIPicSlotCallWithTrampoline: push rsi ; argsPtr[1] : call site (EA of CALL instruction) push rax ; argsPtr[0] : J9Method - MoveHelper rax, _mcc_callPointPatching_unwrapper ; p1) rax = helper address + MoveHelper rax, mcc_callPointPatching_unwrapper ; p1) rax = helper address lea rsi, [rsp] ; p2) rsi = descriptor EA (args) lea rdx, [rsp] ; p3) rdx = return value (meaningless because call is void) - call _jitCallCFunction + call jitCallCFunction add rsp, 32 jmp populateIPicSlotCallExit @@ -1737,7 +1737,7 @@ ret ; across the call to the lookup helper. ; align 16 -_dispatchInterpretedFromIPicSlot: +dispatchInterpretedFromIPicSlot: %ifdef ENABLE_PIC_INT3 int 3 @@ -1783,7 +1783,7 @@ mergeIPicInterpretedDispatch: ; p2) rsi = resolved interface class EA ; p3) rdx = jit RIP ; p4) rcx = address of constant pool and cpIndex - CallHelperUseReg _jitLookupInterfaceMethod,rax ; returns interpreter vtable offset + CallHelperUseReg jitLookupInterfaceMethod,rax ; returns interpreter vtable offset mov r8, rax mov rax, qword [rdi+rax] ; rax = J9Method from interpreter vtable @@ -1808,7 +1808,7 @@ ret ; across the call to the lookup helper. ; align 16 -_IPicLookupDispatch: +IPicLookupDispatch: %ifdef ENABLE_PIC_INT3 int 3 @@ -1840,7 +1840,7 @@ _IPicLookupDispatch: ; p2) rsi = resolved interface class EA ; p3) rdx = jit RIP ; p4) rcx = address of constant pool and cpIndex - CallHelperUseReg _jitLookupInterfaceMethod,rax ; returns interpreter vtable offset + CallHelperUseReg jitLookupInterfaceMethod,rax ; returns interpreter vtable offset mov r8, rax mergeIPicLookupDispatch: @@ -1866,7 +1866,7 @@ ret ; across the call to the resolution helper. ; align 16 -_resolveVPicClass: +resolveVPicClass: %ifdef ENABLE_PIC_INT3 int 3 @@ -1905,7 +1905,7 @@ mergeResolveVPicClass: mov rax, rdx ; p1) address of the constant pool and cpIndex mov rsi, rdi ; p2) jit valid EIP - CallHelperUseReg _jitResolveVirtualMethod,rax ; returns compiler vtable index, , or (low-tagged) direct J9Method pointer + CallHelperUseReg jitResolveVirtualMethod,rax ; returns compiler vtable index, , or (low-tagged) direct J9Method pointer test rax, J9TR_J9_VTABLE_INDEX_DIRECT_METHOD_FLAG jnz resolvedToDirectMethodVPic @@ -1913,16 +1913,16 @@ mergeResolveVPicClass: ; Construct the call instruction in rax that should have brought ; us to this helper + the following 3 bytes. ; - MoveHelper rax, _populateVPicSlotClass ; p1) rax = helper address - LoadHelperIndex esi, _populateVPicSlotClassHelperIndex ; p2) rsi = helper index + MoveHelper rax, populateVPicSlotClass ; p1) rax = helper address + LoadHelperIndex esi, populateVPicSlotClassHelperIndex ; p2) rsi = helper index mov rdx, rdi ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 mov rcx, rax shl rcx, 8 mov cl, 0e8h - MoveHelper rax, _resolveVPicClass ; p1) rax = helper address - LoadHelperIndex esi, _resolveVPicClassHelperIndex ; p2) rsi = helper index + MoveHelper rax, resolveVPicClass ; p1) rax = helper address + LoadHelperIndex esi, resolveVPicClassHelperIndex ; p2) rsi = helper index ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 shl rax, 8 @@ -1980,7 +1980,7 @@ ret ; across the call to the lookup helper. ; align 16 -_populateVPicSlotClass: ;proc +populateVPicSlotClass: ;proc %ifdef ENABLE_PIC_INT3 int 3 @@ -2017,8 +2017,8 @@ mergePopulateVPicClass: ; Construct the call instruction in rax that should have brought ; us to this helper + the following 3 bytes. ; - MoveHelper rax, _populateVPicSlotClass ; p1) rax = helper address - LoadHelperIndex esi, _populateVPicSlotClassHelperIndex ; p2) rsi = helper index + MoveHelper rax, populateVPicSlotClass ; p1) rax = helper address + LoadHelperIndex esi, populateVPicSlotClassHelperIndex ; p2) rsi = helper index ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 shl rax, 8 @@ -2042,7 +2042,7 @@ mergePopulateVPicClass: ; mov rax, rsi ; p1) rax = receivers class lea rsi, [rdx-3] ; p2) rsi = EA of Imm64 to patch - CallHelper _jitCallJitAddPicToPatchOnClassUnload + CallHelper jitCallJitAddPicToPatchOnClassUnload VPicClassSlotUpdateFailed: %endif @@ -2071,7 +2071,7 @@ ret ; across the call to the lookup helper. ; align 16 -_populateVPicSlotCall: +populateVPicSlotCall: %ifdef ENABLE_PIC_INT3 int 3 @@ -2112,7 +2112,7 @@ mergeVPicSlotCall: ; ; p1) rax = address of constant pool and cpIndex mov rsi, rdx ; p2) rsi = jit valid EIP - CallHelperUseReg _jitResolveVirtualMethod,rax ; returns compiler vtable index + CallHelperUseReg jitResolveVirtualMethod,rax ; returns compiler vtable index ; Check the RAM method to see if the target is compiled. ; @@ -2124,7 +2124,7 @@ mergeVPicSlotCall: ; Now check if the target is a native because they need special handling. ; mov rcx, rax ; rcx = RAM method - CallHelperUseReg _jitMethodIsNative,rax + CallHelperUseReg jitMethodIsNative,rax test rax, rax mov rax, rcx ; restore rax jnz short VPicSlotMethodIsNative @@ -2136,10 +2136,10 @@ mergeVPicSlotCall: mergeUpdateVPicSlotCallWithCompiledMethod: push rax ; build descriptor : J9Method push rdx ; build descriptor : call site - MoveHelper rax, _mcc_reservationInterfaceCache_unwrapper ; p1) helper + MoveHelper rax, mcc_reservationInterfaceCache_unwrapper ; p1) helper lea rsi, [rsp] ; p2) pointer to args lea rdx, [rsp] ; p3) pointer to return - call _jitCallCFunction + call jitCallCFunction pop rdx ; tear down descriptor pop rax ; tear down descriptor @@ -2172,8 +2172,8 @@ populateVPicSlotCallExit: ret ; branch will mispredict so single-byte RET is ok VPicSlotMethodInterpreted: - MoveHelper rax, _dispatchInterpretedFromVPicSlot ; p1) rax = helper address - LoadHelperIndex esi, _dispatchInterpretedFromVPicSlotHelperIndex ; p2) rsi = helper index + MoveHelper rax, dispatchInterpretedFromVPicSlot ; p1) rax = helper address + LoadHelperIndex esi, dispatchInterpretedFromVPicSlotHelperIndex ; p2) rsi = helper index ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 mov ecx, eax ; 32-bit copy because disp32 @@ -2221,10 +2221,10 @@ populateVPicSlotCallWithTrampoline: push rsi ; argsPtr[1] : call site (EA of CALL instruction) push rax ; argsPtr[0] : J9Method - MoveHelper rax, _mcc_callPointPatching_unwrapper ; p1) rax = helper address + MoveHelper rax, mcc_callPointPatching_unwrapper ; p1) rax = helper address lea rsi, [rsp] ; p2) rsi = descriptor EA (args) lea rdx, [rsp] ; p3) rdx = return value (meaningless because call is void) - call _jitCallCFunction + call jitCallCFunction add rsp, 32 jmp populateVPicSlotCallExit @@ -2239,7 +2239,7 @@ ret ; across the call to the lookup helper. ; align 16 -_dispatchInterpretedFromVPicSlot: ;proc +dispatchInterpretedFromVPicSlot: ;proc %ifdef ENABLE_PIC_INT3 int 3 @@ -2303,7 +2303,7 @@ mergeCheckIfMethodCompiled: ; they may need special handling. ; mov rcx, rax ; rcx = RAM method - CallHelperUseReg _jitMethodIsNative,rax + CallHelperUseReg jitMethodIsNative,rax test rax, rax mov rax, rcx ; restore rax jz mergeUpdateVPicSlotCallWithCompiledMethod ; branch if not native @@ -2360,7 +2360,7 @@ vtableCallNotPatched: lea rax, [rax-eq_VPicData_size] ; p1) rax = address of constant pool and cpIndex ; -20 = -4 (instr data) - 16 (cpAddr,cpIndex) mov rsi, rdx ; p2) rsi = jit valid EIP - CallHelperUseReg _jitResolveVirtualMethod,rax ; returns compiler vtable index + CallHelperUseReg jitResolveVirtualMethod,rax ; returns compiler vtable index jmp mergeCheckIfMethodCompiled ret @@ -2373,7 +2373,7 @@ ret ; across the call to the lookup helper. ; align 16 -_populateVPicVTableDispatch: +populateVPicVTableDispatch: %ifdef ENABLE_PIC_INT3 int 3 @@ -2404,7 +2404,7 @@ _populateVPicVTableDispatch: mov rdi, rax ; p1) rax = address of constant pool and cpIndex mov rsi, rdx ; p2) rsi = jit valid EIP - CallHelperUseReg _jitResolveVirtualMethod,rax ; returns compiler vtable index + CallHelperUseReg jitResolveVirtualMethod,rax ; returns compiler vtable index ; Construct the indirect call instruction in rcx plus the first ; byte of the direct long jump. @@ -2427,8 +2427,8 @@ mergePopulateVPicVTableDispatch: ; Construct the call instruction in rax that should have brought ; us to this helper + the following 3 bytes. ; - MoveHelper rax, _populateVPicVTableDispatch ; p1) rax = helper address - LoadHelperIndex esi, _populateVPicVTableDispatchHelperIndex ; p2) rsi = helper index + MoveHelper rax, populateVPicVTableDispatch ; p1) rax = helper address + LoadHelperIndex esi, populateVPicVTableDispatchHelperIndex ; p2) rsi = helper index ; p3) rdx = JIT RA call selectHelperOrTrampolineDisp32 shl rax, 8 diff --git a/runtime/compiler/x/runtime/X86Unresolveds.nasm b/runtime/compiler/x/runtime/X86Unresolveds.nasm index 6effa23bf96..29ebc25adcb 100644 --- a/runtime/compiler/x/runtime/X86Unresolveds.nasm +++ b/runtime/compiler/x/runtime/X86Unresolveds.nasm @@ -36,82 +36,82 @@ segment .text - global _interpreterUnresolvedStaticGlue - global _interpreterUnresolvedSpecialGlue - global _updateInterpreterDispatchGlueSite - global _interpreterVoidStaticGlue - global _interpreterSyncVoidStaticGlue - global _interpreterEAXStaticGlue - global _interpreterSyncEAXStaticGlue - global _interpreterEDXEAXStaticGlue - global _interpreterSyncEDXEAXStaticGlue - global _interpreterST0FStaticGlue - global _interpreterSyncST0FStaticGlue - global _interpreterST0DStaticGlue - global _interpreterSyncST0DStaticGlue - - global _interpreterUnresolvedStringGlue - global _interpreterUnresolvedMethodTypeGlue - global _interpreterUnresolvedMethodHandleGlue - global _interpreterUnresolvedCallSiteTableEntryGlue - global _interpreterUnresolvedMethodTypeTableEntryGlue - global _interpreterUnresolvedClassGlue - global _interpreterUnresolvedClassFromStaticFieldGlue - global _interpreterUnresolvedStaticFieldGlue - global _interpreterUnresolvedStaticFieldSetterGlue - global _interpreterUnresolvedFieldGlue - global _interpreterUnresolvedFieldSetterGlue - global _interpreterUnresolvedConstantDynamicGlue - - global _MTUnresolvedInt32Load - global _MTUnresolvedInt64Load - global _MTUnresolvedFloatLoad - global _MTUnresolvedDoubleLoad - global _MTUnresolvedAddressLoad - - global _MTUnresolvedInt32Store - global _MTUnresolvedInt64Store - global _MTUnresolvedFloatStore - global _MTUnresolvedDoubleStore - global _MTUnresolvedAddressStore - - extern _jitResolveStaticMethod - extern _jitResolveSpecialMethod - extern _jitCallCFunction - extern _jitResolveString - extern _jitResolveConstantDynamic - extern _jitResolveMethodType - extern _jitResolveMethodHandle - extern _jitResolveInvokeDynamic - extern _jitResolveHandleMethod - extern _jitResolveClass - extern _jitResolveClassFromStaticField - extern _jitResolveStaticField - extern _jitResolveStaticFieldSetter - extern _jitResolveField - extern _jitResolveFieldSetter + DECLARE_GLOBAL interpreterUnresolvedStaticGlue + DECLARE_GLOBAL interpreterUnresolvedSpecialGlue + DECLARE_GLOBAL updateInterpreterDispatchGlueSite + DECLARE_GLOBAL interpreterVoidStaticGlue + DECLARE_GLOBAL interpreterSyncVoidStaticGlue + DECLARE_GLOBAL interpreterEAXStaticGlue + DECLARE_GLOBAL interpreterSyncEAXStaticGlue + DECLARE_GLOBAL interpreterEDXEAXStaticGlue + DECLARE_GLOBAL interpreterSyncEDXEAXStaticGlue + DECLARE_GLOBAL interpreterST0FStaticGlue + DECLARE_GLOBAL interpreterSyncST0FStaticGlue + DECLARE_GLOBAL interpreterST0DStaticGlue + DECLARE_GLOBAL interpreterSyncST0DStaticGlue + + DECLARE_GLOBAL interpreterUnresolvedStringGlue + DECLARE_GLOBAL interpreterUnresolvedMethodTypeGlue + DECLARE_GLOBAL interpreterUnresolvedMethodHandleGlue + DECLARE_GLOBAL interpreterUnresolvedCallSiteTableEntryGlue + DECLARE_GLOBAL interpreterUnresolvedMethodTypeTableEntryGlue + DECLARE_GLOBAL interpreterUnresolvedClassGlue + DECLARE_GLOBAL interpreterUnresolvedClassFromStaticFieldGlue + DECLARE_GLOBAL interpreterUnresolvedStaticFieldGlue + DECLARE_GLOBAL interpreterUnresolvedStaticFieldSetterGlue + DECLARE_GLOBAL interpreterUnresolvedFieldGlue + DECLARE_GLOBAL interpreterUnresolvedFieldSetterGlue + DECLARE_GLOBAL interpreterUnresolvedConstantDynamicGlue + + DECLARE_GLOBAL MTUnresolvedInt32Load + DECLARE_GLOBAL MTUnresolvedInt64Load + DECLARE_GLOBAL MTUnresolvedFloatLoad + DECLARE_GLOBAL MTUnresolvedDoubleLoad + DECLARE_GLOBAL MTUnresolvedAddressLoad + + DECLARE_GLOBAL MTUnresolvedInt32Store + DECLARE_GLOBAL MTUnresolvedInt64Store + DECLARE_GLOBAL MTUnresolvedFloatStore + DECLARE_GLOBAL MTUnresolvedDoubleStore + DECLARE_GLOBAL MTUnresolvedAddressStore + + DECLARE_EXTERN jitResolveStaticMethod + DECLARE_EXTERN jitResolveSpecialMethod + DECLARE_EXTERN jitCallCFunction + DECLARE_EXTERN jitResolveString + DECLARE_EXTERN jitResolveConstantDynamic + DECLARE_EXTERN jitResolveMethodType + DECLARE_EXTERN jitResolveMethodHandle + DECLARE_EXTERN jitResolveInvokeDynamic + DECLARE_EXTERN jitResolveHandleMethod + DECLARE_EXTERN jitResolveClass + DECLARE_EXTERN jitResolveClassFromStaticField + DECLARE_EXTERN jitResolveStaticField + DECLARE_EXTERN jitResolveStaticFieldSetter + DECLARE_EXTERN jitResolveField + DECLARE_EXTERN jitResolveFieldSetter ;1179 - extern _jitResolvedFieldIsVolatile - - extern _icallVMprJavaSendStatic0 - extern _icallVMprJavaSendStatic1 - extern _icallVMprJavaSendStaticJ - extern _icallVMprJavaSendStaticF - extern _icallVMprJavaSendStaticD - extern _icallVMprJavaSendStaticSync0 - extern _icallVMprJavaSendStaticSync1 - extern _icallVMprJavaSendStaticSyncJ - extern _icallVMprJavaSendStaticSyncF - extern _icallVMprJavaSendStaticSyncD - extern _interpretedDispatchGlueDisp32_unwrapper + DECLARE_EXTERN jitResolvedFieldIsVolatile + + DECLARE_EXTERN icallVMprJavaSendStatic0 + DECLARE_EXTERN icallVMprJavaSendStatic1 + DECLARE_EXTERN icallVMprJavaSendStaticJ + DECLARE_EXTERN icallVMprJavaSendStaticF + DECLARE_EXTERN icallVMprJavaSendStaticD + DECLARE_EXTERN icallVMprJavaSendStaticSync0 + DECLARE_EXTERN icallVMprJavaSendStaticSync1 + DECLARE_EXTERN icallVMprJavaSendStaticSyncJ + DECLARE_EXTERN icallVMprJavaSendStaticSyncF + DECLARE_EXTERN icallVMprJavaSendStaticSyncD + DECLARE_EXTERN interpretedDispatchGlueDisp32_unwrapper %ifdef WINDOWS - extern j9thread_self - extern j9thread_tls_get - extern vmThreadTLSKey:dword + DECLARE_EXTERN j9thread_self + DECLARE_EXTERN j9thread_tls_get + DECLARE_EXTERN vmThreadTLSKey:dword %endif - extern _memoryFence + DECLARE_EXTERN memoryFence %macro CheckIfMethodCompiledAndPatch 1 ; args: helperName @@ -155,7 +155,7 @@ retn ; (5) call interpreterUnresolved{Static|Special}Glue ; replaced with "mov edi, 0xaabbccdd" ; (3) NOP ; --- -; (5) call _updateInterpreterDispatchGlueSite ; replaced with "JMP disp32" +; (5) call updateInterpreterDispatchGlueSite ; replaced with "JMP disp32" ; (2) dw 2-byte glue method helper index ; (4) dd cpAddr ; (4) dd cpIndex @@ -172,7 +172,7 @@ retn ; across the call to the lookup helper. ; align 16 -_interpreterUnresolvedStaticGlue: +interpreterUnresolvedStaticGlue: pop edi ; RA in snippet (see [1] above) push dword [edi+14] ; p3) cpIndex @@ -180,7 +180,7 @@ _interpreterUnresolvedStaticGlue: push dword [edi+10] ; p2) cpAddr ; 10 = 3 (NOP) + 5 (CALL) + 2 (DW) push dword [esp+8] ; p1) RA in mainline code - CallHelperUseReg _jitResolveStaticMethod,eax + CallHelperUseReg jitResolveStaticMethod,eax ; The interpreter may low-tag the result to avoid populating the constant pool--whack it. ; @@ -192,7 +192,7 @@ _interpreterUnresolvedStaticGlue: ; Patch the call that brought us here into a load of the resolved RAM method into EDI. ; mov ebx, eax - MoveHelper eax, _interpreterUnresolvedStaticGlue + MoveHelper eax, interpreterUnresolvedStaticGlue mergeInterpreterUnresolvedDispatch: @@ -234,7 +234,7 @@ mergeInterpreterUnresolvedDispatch: align 16 -_interpreterUnresolvedSpecialGlue: +interpreterUnresolvedSpecialGlue: pop edi ; RA in snippet (see [1] above) push dword [edi+14] ; p3) cpIndex @@ -242,20 +242,20 @@ _interpreterUnresolvedSpecialGlue: push dword [edi+10] ; p2) cpAddr ; 10 = 3 (NOP) + 5 (CALL) + 2 (DW) push dword [esp+8] ; p1) RA in mainline code - CallHelperUseReg _jitResolveSpecialMethod,eax + CallHelperUseReg jitResolveSpecialMethod,eax push ebx ; preserve push ecx ; preserve mov ebx, eax - MoveHelper eax, _interpreterUnresolvedSpecialGlue + MoveHelper eax, interpreterUnresolvedSpecialGlue jmp mergeInterpreterUnresolvedDispatch retn -; _updateInterpreterDispatchGlueSite +; updateInterpreterDispatchGlueSite ; ; Now that a resolved RAM method is available, determine the appropriate interpreter ; dispatch glue code to call and then patch the snippet to jump to it directly. @@ -265,7 +265,7 @@ retn ; [1] The RAM method is in EDI on entry. It was loaded by the preceding instruction. ; align 16 -_updateInterpreterDispatchGlueSite: +updateInterpreterDispatchGlueSite: mov edx, dword [esp] ; edx = snippet RA @@ -276,9 +276,9 @@ _updateInterpreterDispatchGlueSite: push edx ; p3) EA of return value in TLS area lea edx, [esp+4] push edx ; p2) EA parms in TLS area - MoveHelper edx, _interpretedDispatchGlueDisp32_unwrapper + MoveHelper edx, interpretedDispatchGlueDisp32_unwrapper push edx ; p1) helper address - call _jitCallCFunction + call jitCallCFunction add esp, 8 ; tear down descriptor pop eax ; eax = return value (disp32 to dispatch glue) @@ -297,7 +297,7 @@ _updateInterpreterDispatchGlueSite: ; esp+0 : esi ; mov ebx, eax - MoveHelper eax, _updateInterpreterDispatchGlueSite + MoveHelper eax, updateInterpreterDispatchGlueSite ; Construct the call instruction in edx:eax that should have brought ; us to this helper + the following 3 bytes. @@ -348,7 +348,7 @@ checkReferenceVolatility: push edx ; us to this snippet + the following 3 bytes. push esi ; The RA in mainline code - ; _jitResolvedFieldIsVolatile requires us to restore ebp before calling it + ; jitResolvedFieldIsVolatile requires us to restore ebp before calling it ; mov ebp, dword [esp + 28] ; [esp + 4 + 24] @@ -369,7 +369,7 @@ checkReferenceVolatility: ; call the volatile check ; xor eax, eax - CallHelperUseReg _jitResolvedFieldIsVolatile, eax + CallHelperUseReg jitResolvedFieldIsVolatile, eax ;clear ebp which will be used as to tell if we need to patch over a barrier in the mainline code. ; @@ -535,53 +535,53 @@ ret ;1179 align 16 -_interpreterVoidStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStatic0 +interpreterVoidStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStatic0 retn align 16 -_interpreterSyncVoidStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSync0 +interpreterSyncVoidStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSync0 retn align 16 -_interpreterEAXStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStatic1 +interpreterEAXStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStatic1 retn align 16 -_interpreterSyncEAXStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSync1 +interpreterSyncEAXStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSync1 retn align 16 -_interpreterEDXEAXStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticJ +interpreterEDXEAXStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticJ retn align 16 -_interpreterSyncEDXEAXStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSyncJ +interpreterSyncEDXEAXStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSyncJ retn align 16 -_interpreterST0FStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticF +interpreterST0FStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticF retn align 16 -_interpreterSyncST0FStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSyncF +interpreterSyncST0FStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSyncF retn align 16 -_interpreterST0DStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticD +interpreterST0DStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticD retn align 16 -_interpreterSyncST0DStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSyncD +interpreterSyncST0DStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSyncD retn @@ -741,105 +741,105 @@ retn ; code. ; align 16 -_interpreterUnresolvedStringGlue: +interpreterUnresolvedStringGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveString + DispatchUnresolvedDataHelper jitResolveString ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedConstantDynamicGlue: +interpreterUnresolvedConstantDynamicGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveConstantDynamic + DispatchUnresolvedDataHelper jitResolveConstantDynamic ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedMethodTypeGlue: +interpreterUnresolvedMethodTypeGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveMethodType + DispatchUnresolvedDataHelper jitResolveMethodType ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedMethodHandleGlue: +interpreterUnresolvedMethodHandleGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveMethodHandle + DispatchUnresolvedDataHelper jitResolveMethodHandle ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedCallSiteTableEntryGlue: +interpreterUnresolvedCallSiteTableEntryGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveInvokeDynamic + DispatchUnresolvedDataHelper jitResolveInvokeDynamic ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedMethodTypeTableEntryGlue: +interpreterUnresolvedMethodTypeTableEntryGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveHandleMethod + DispatchUnresolvedDataHelper jitResolveHandleMethod ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedClassGlue: +interpreterUnresolvedClassGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveClass + DispatchUnresolvedDataHelper jitResolveClass ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedClassFromStaticFieldGlue: +interpreterUnresolvedClassFromStaticFieldGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveClassFromStaticField + DispatchUnresolvedDataHelper jitResolveClassFromStaticField ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedStaticFieldGlue: +interpreterUnresolvedStaticFieldGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveStaticField + DispatchUnresolvedDataHelper jitResolveStaticField ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedStaticFieldSetterGlue: +interpreterUnresolvedStaticFieldSetterGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveStaticFieldSetter + DispatchUnresolvedDataHelper jitResolveStaticFieldSetter ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedFieldGlue: +interpreterUnresolvedFieldGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveField + DispatchUnresolvedDataHelper jitResolveField ; int 3 jmp commonUnresolvedCode retn align 16 -_interpreterUnresolvedFieldSetterGlue: +interpreterUnresolvedFieldSetterGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveFieldSetter + DispatchUnresolvedDataHelper jitResolveFieldSetter ; int 3 commonUnresolvedCode: @@ -919,7 +919,7 @@ commonUnresolvedCode: patchDisp32: mov dword [esi+edx+1], edi ; patch the disp32 field in the snippet - call _memoryFence ; make sure all stores crossing a line are issued + call memoryFence ; make sure all stores crossing a line are issued disp32AlreadyPatched: @@ -1073,34 +1073,34 @@ retn -_MTUnresolvedInt32Load: +MTUnresolvedInt32Load: retn -_MTUnresolvedInt64Load: +MTUnresolvedInt64Load: retn -_MTUnresolvedFloatLoad: +MTUnresolvedFloatLoad: retn -_MTUnresolvedDoubleLoad: +MTUnresolvedDoubleLoad: retn -_MTUnresolvedAddressLoad: +MTUnresolvedAddressLoad: retn -_MTUnresolvedInt32Store: +MTUnresolvedInt32Store: retn -_MTUnresolvedInt64Store: +MTUnresolvedInt64Store: retn -_MTUnresolvedFloatStore: +MTUnresolvedFloatStore: retn -_MTUnresolvedDoubleStore: +MTUnresolvedDoubleStore: retn -_MTUnresolvedAddressStore: +MTUnresolvedAddressStore: retn %else @@ -1125,76 +1125,76 @@ eq_offsetof_J9Object_clazz equ 16 ; offset of class pointer in a J9Objec segment .text - global _interpreterUnresolvedStaticGlue - global _interpreterUnresolvedSpecialGlue - global _updateInterpreterDispatchGlueSite - global _interpreterVoidStaticGlue - global _interpreterEAXStaticGlue - global _interpreterRAXStaticGlue - global _interpreterXMM0FStaticGlue - global _interpreterXMM0DStaticGlue - global _interpreterSyncVoidStaticGlue - global _interpreterSyncEAXStaticGlue - global _interpreterSyncRAXStaticGlue - global _interpreterSyncXMM0FStaticGlue - global _interpreterSyncXMM0DStaticGlue - - global _interpreterUnresolvedStringGlue - global _interpreterUnresolvedMethodTypeGlue - global _interpreterUnresolvedMethodHandleGlue - global _interpreterUnresolvedCallSiteTableEntryGlue - global _interpreterUnresolvedMethodTypeTableEntryGlue - global _interpreterUnresolvedClassGlue - global _interpreterUnresolvedClassFromStaticFieldGlue - global _interpreterUnresolvedStaticFieldGlue - global _interpreterUnresolvedStaticFieldSetterGlue - global _interpreterUnresolvedFieldGlue - global _interpreterUnresolvedFieldSetterGlue - global _interpreterUnresolvedConstantDynamicGlue - - global _MTUnresolvedInt32Load - global _MTUnresolvedInt64Load - global _MTUnresolvedFloatLoad - global _MTUnresolvedDoubleLoad - global _MTUnresolvedAddressLoad - - global _MTUnresolvedInt32Store - global _MTUnresolvedInt64Store - global _MTUnresolvedFloatStore - global _MTUnresolvedDoubleStore - global _MTUnresolvedAddressStore - - extern _jitResolveStaticMethod - extern _jitResolveSpecialMethod - extern _jitCallCFunction - extern _jitResolveString - extern _jitResolveConstantDynamic - extern _jitResolveMethodType - extern _jitResolveMethodHandle - extern _jitResolveInvokeDynamic - extern _jitResolveHandleMethod - extern _jitResolveClass - extern _jitResolveClassFromStaticField - extern _jitResolveStaticField - extern _jitResolveStaticFieldSetter - extern _jitResolveField - extern _jitResolveFieldSetter + DECLARE_GLOBAL interpreterUnresolvedStaticGlue + DECLARE_GLOBAL interpreterUnresolvedSpecialGlue + DECLARE_GLOBAL updateInterpreterDispatchGlueSite + DECLARE_GLOBAL interpreterVoidStaticGlue + DECLARE_GLOBAL interpreterEAXStaticGlue + DECLARE_GLOBAL interpreterRAXStaticGlue + DECLARE_GLOBAL interpreterXMM0FStaticGlue + DECLARE_GLOBAL interpreterXMM0DStaticGlue + DECLARE_GLOBAL interpreterSyncVoidStaticGlue + DECLARE_GLOBAL interpreterSyncEAXStaticGlue + DECLARE_GLOBAL interpreterSyncRAXStaticGlue + DECLARE_GLOBAL interpreterSyncXMM0FStaticGlue + DECLARE_GLOBAL interpreterSyncXMM0DStaticGlue + + DECLARE_GLOBAL interpreterUnresolvedStringGlue + DECLARE_GLOBAL interpreterUnresolvedMethodTypeGlue + DECLARE_GLOBAL interpreterUnresolvedMethodHandleGlue + DECLARE_GLOBAL interpreterUnresolvedCallSiteTableEntryGlue + DECLARE_GLOBAL interpreterUnresolvedMethodTypeTableEntryGlue + DECLARE_GLOBAL interpreterUnresolvedClassGlue + DECLARE_GLOBAL interpreterUnresolvedClassFromStaticFieldGlue + DECLARE_GLOBAL interpreterUnresolvedStaticFieldGlue + DECLARE_GLOBAL interpreterUnresolvedStaticFieldSetterGlue + DECLARE_GLOBAL interpreterUnresolvedFieldGlue + DECLARE_GLOBAL interpreterUnresolvedFieldSetterGlue + DECLARE_GLOBAL interpreterUnresolvedConstantDynamicGlue + + DECLARE_GLOBAL MTUnresolvedInt32Load + DECLARE_GLOBAL MTUnresolvedInt64Load + DECLARE_GLOBAL MTUnresolvedFloatLoad + DECLARE_GLOBAL MTUnresolvedDoubleLoad + DECLARE_GLOBAL MTUnresolvedAddressLoad + + DECLARE_GLOBAL MTUnresolvedInt32Store + DECLARE_GLOBAL MTUnresolvedInt64Store + DECLARE_GLOBAL MTUnresolvedFloatStore + DECLARE_GLOBAL MTUnresolvedDoubleStore + DECLARE_GLOBAL MTUnresolvedAddressStore + + DECLARE_EXTERN jitResolveStaticMethod + DECLARE_EXTERN jitResolveSpecialMethod + DECLARE_EXTERN jitCallCFunction + DECLARE_EXTERN jitResolveString + DECLARE_EXTERN jitResolveConstantDynamic + DECLARE_EXTERN jitResolveMethodType + DECLARE_EXTERN jitResolveMethodHandle + DECLARE_EXTERN jitResolveInvokeDynamic + DECLARE_EXTERN jitResolveHandleMethod + DECLARE_EXTERN jitResolveClass + DECLARE_EXTERN jitResolveClassFromStaticField + DECLARE_EXTERN jitResolveStaticField + DECLARE_EXTERN jitResolveStaticFieldSetter + DECLARE_EXTERN jitResolveField + DECLARE_EXTERN jitResolveFieldSetter ;1179 - extern _jitResolvedFieldIsVolatile + DECLARE_EXTERN jitResolvedFieldIsVolatile - extern _icallVMprJavaSendStatic0 - extern _icallVMprJavaSendStatic1 - extern _icallVMprJavaSendStaticJ - extern _icallVMprJavaSendStaticF - extern _icallVMprJavaSendStaticD - extern _icallVMprJavaSendStaticSync0 - extern _icallVMprJavaSendStaticSync1 - extern _icallVMprJavaSendStaticSyncJ - extern _icallVMprJavaSendStaticSyncF - extern _icallVMprJavaSendStaticSyncD + DECLARE_EXTERN icallVMprJavaSendStatic0 + DECLARE_EXTERN icallVMprJavaSendStatic1 + DECLARE_EXTERN icallVMprJavaSendStaticJ + DECLARE_EXTERN icallVMprJavaSendStaticF + DECLARE_EXTERN icallVMprJavaSendStaticD + DECLARE_EXTERN icallVMprJavaSendStaticSync0 + DECLARE_EXTERN icallVMprJavaSendStaticSync1 + DECLARE_EXTERN icallVMprJavaSendStaticSyncJ + DECLARE_EXTERN icallVMprJavaSendStaticSyncF + DECLARE_EXTERN icallVMprJavaSendStaticSyncD - extern _adjustTrampolineInterpretedDispatchGlueDisp32_unwrapper - extern _mcc_callPointPatching_unwrapper + DECLARE_EXTERN adjustTrampolineInterpretedDispatchGlueDisp32_unwrapper + DECLARE_EXTERN mcc_callPointPatching_unwrapper %macro CheckIfMethodCompiledAndPatch 1 ; helperName @@ -1212,7 +1212,7 @@ segment .text ; The unresolved {Static|Special} interpreted dispatch snippet look like: ; align 8 ; (10) call interpreterUnresolved{Static|Special}Glue ; replaced with "mov rdi, 0x0000aabbccddeeff" -; (5) call _updateInterpreterDispatchGlueSite ; replaced with "JMP disp32" +; (5) call updateInterpreterDispatchGlueSite ; replaced with "JMP disp32" ; (2) dw 2-byte glue method helper index ; (8) dq cpAddr ; (4) dd cpIndex @@ -1234,7 +1234,7 @@ segment .text ; across the call to the lookup helper. ; align 16 -_interpreterUnresolvedStaticGlue: +interpreterUnresolvedStaticGlue: pop rdi ; RA in snippet (see [2] above) ; Attempt to resolve static method. @@ -1244,7 +1244,7 @@ _interpreterUnresolvedStaticGlue: ; 12 = 5 + 5 (call update) + 2 (DW) mov edx, dword [rdi+20] ; p3) rdx = cpIndex ; 20 = 5 + 5 (call update) + 2 (DW) + 8 (cpAddr) - CallHelperUseReg _jitResolveStaticMethod,rax + CallHelperUseReg jitResolveStaticMethod,rax ; The interpreter may low-tag the result to avoid populating the constant pool--whack it. ; @@ -1268,7 +1268,7 @@ ret align 16 -_interpreterUnresolvedSpecialGlue: +interpreterUnresolvedSpecialGlue: pop rdi ; RA in snippet ; Attempt to resolve special method. @@ -1278,13 +1278,13 @@ _interpreterUnresolvedSpecialGlue: ; 12 = 5 + 5 (call update) + 2 (DW) mov edx, dword [rdi+20] ; p3) rdx = cpIndex ; 20 = 5 + 5 (call update) + 2 (DW) + 8 (cpAddr) - CallHelperUseReg _jitResolveSpecialMethod,rax + CallHelperUseReg jitResolveSpecialMethod,rax jmp mergeInterpreterUnresolvedDispatch ret -; _updateInterpreterDispatchGlueSite +; updateInterpreterDispatchGlueSite ; ; Now that a resolved RAM method is available, determine the appropriate interpreter ; dispatch glue code to call and then patch the snippet to jump to it directly (or @@ -1300,7 +1300,7 @@ ret ; already occured at this point. ; align 16 -_updateInterpreterDispatchGlueSite: +updateInterpreterDispatchGlueSite: mov rcx, qword [rsp] ; rcx = snippet RA sub rsp, 8 ; descriptor+32: return value @@ -1310,10 +1310,10 @@ _updateInterpreterDispatchGlueSite: mov rdx, qword [rcx+2] ; 2 = (DW index) push rdx ; descriptor+8: cpAddr push rdi ; descriptor+0: RAM method - MoveHelper rax, _adjustTrampolineInterpretedDispatchGlueDisp32_unwrapper ; p1) helper address + MoveHelper rax, adjustTrampolineInterpretedDispatchGlueDisp32_unwrapper ; p1) helper address lea rsi, [rsp] ; p2) EA parms in TLS area lea rdx, [rsp+32] ; p3) EA of return value in TLS area - call _jitCallCFunction + call jitCallCFunction add rsp, 32 ; tear down descriptor pop rax ; rax = return value (disp32) @@ -1368,10 +1368,10 @@ mergedStaticGlueCallFixer2: push rcx ; descriptor+16: compiled method PC push rsi ; descriptor+8: call site push rdi ; descriptor+0: RAM method - MoveHelper rax, _mcc_callPointPatching_unwrapper ; p1) rax = helper + MoveHelper rax, mcc_callPointPatching_unwrapper ; p1) rax = helper lea rsi, [rsp] ; p2) rsi = EA of descriptor lea rdx, [rsp] ; p3) rdx = EA of return value - call _jitCallCFunction + call jitCallCFunction add rsp, 32 ; tear down descriptor jmp rcx ; Dispatch compiled method through the interpreted entry ; point. This is because the linkage registers may not be @@ -1389,53 +1389,53 @@ ret ; compiled method directly. ; align 16 -_interpreterVoidStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStatic0 +interpreterVoidStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStatic0 ret align 16 -_interpreterSyncVoidStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSync0 +interpreterSyncVoidStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSync0 ret align 16 -_interpreterEAXStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStatic1 +interpreterEAXStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStatic1 ret align 16 -_interpreterSyncEAXStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSync1 +interpreterSyncEAXStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSync1 ret align 16 -_interpreterRAXStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticJ +interpreterRAXStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticJ ret align 16 -_interpreterSyncRAXStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSyncJ +interpreterSyncRAXStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSyncJ ret align 16 -_interpreterXMM0FStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticF +interpreterXMM0FStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticF ret align 16 -_interpreterSyncXMM0FStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSyncF +interpreterSyncXMM0FStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSyncF ret align 16 -_interpreterXMM0DStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticD +interpreterXMM0DStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticD ret align 16 -_interpreterSyncXMM0DStaticGlue: - CheckIfMethodCompiledAndPatch _icallVMprJavaSendStaticSyncD +interpreterSyncXMM0DStaticGlue: + CheckIfMethodCompiledAndPatch icallVMprJavaSendStaticSyncD ret @@ -1549,7 +1549,7 @@ checkReferenceVolatility: push rbx push r9 - ; _jitResolvedFieldIsVolatile requires us to restore ebp before calling it + ; jitResolvedFieldIsVolatile requires us to restore ebp before calling it ; mov rbp, qword [rsp + 240] ; [rsp + 176 + 8 + 56] ; [rsp + rbp stack slot + proc RA + local reg preservation] @@ -1565,7 +1565,7 @@ checkReferenceVolatility: ; call the volatile check ; - CallHelperUseReg _jitResolvedFieldIsVolatile,rax + CallHelperUseReg jitResolvedFieldIsVolatile,rax ; if this field is not volatile, patch the barrier with a nop ; @@ -1765,104 +1765,104 @@ ret ; across the resolution helper. align 16 -_interpreterUnresolvedStringGlue: +interpreterUnresolvedStringGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveString + DispatchUnresolvedDataHelper jitResolveString ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedConstantDynamicGlue: +interpreterUnresolvedConstantDynamicGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveConstantDynamic + DispatchUnresolvedDataHelper jitResolveConstantDynamic ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedMethodTypeGlue: +interpreterUnresolvedMethodTypeGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveMethodType + DispatchUnresolvedDataHelper jitResolveMethodType ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedMethodHandleGlue: +interpreterUnresolvedMethodHandleGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveMethodHandle + DispatchUnresolvedDataHelper jitResolveMethodHandle ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedCallSiteTableEntryGlue: +interpreterUnresolvedCallSiteTableEntryGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveInvokeDynamic + DispatchUnresolvedDataHelper jitResolveInvokeDynamic ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedMethodTypeTableEntryGlue: +interpreterUnresolvedMethodTypeTableEntryGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveHandleMethod + DispatchUnresolvedDataHelper jitResolveHandleMethod ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedClassGlue: +interpreterUnresolvedClassGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveClass + DispatchUnresolvedDataHelper jitResolveClass ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedClassFromStaticFieldGlue: +interpreterUnresolvedClassFromStaticFieldGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveClassFromStaticField + DispatchUnresolvedDataHelper jitResolveClassFromStaticField ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedStaticFieldGlue: +interpreterUnresolvedStaticFieldGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveStaticField + DispatchUnresolvedDataHelper jitResolveStaticField ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedStaticFieldSetterGlue: +interpreterUnresolvedStaticFieldSetterGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveStaticFieldSetter + DispatchUnresolvedDataHelper jitResolveStaticFieldSetter ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedFieldGlue: +interpreterUnresolvedFieldGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveField + DispatchUnresolvedDataHelper jitResolveField ; int 3 jmp commonUnresolvedCode ret align 16 -_interpreterUnresolvedFieldSetterGlue: +interpreterUnresolvedFieldSetterGlue: DataResolvePrologue - DispatchUnresolvedDataHelper _jitResolveFieldSetter + DispatchUnresolvedDataHelper jitResolveFieldSetter ; int 3 commonUnresolvedCode: @@ -2040,34 +2040,34 @@ noVolatileCheck4Byte: ret -_MTUnresolvedInt32Load: +MTUnresolvedInt32Load: ret -_MTUnresolvedInt64Load: +MTUnresolvedInt64Load: ret -_MTUnresolvedFloatLoad: +MTUnresolvedFloatLoad: ret -_MTUnresolvedDoubleLoad: +MTUnresolvedDoubleLoad: ret -_MTUnresolvedAddressLoad: +MTUnresolvedAddressLoad: ret -_MTUnresolvedInt32Store: +MTUnresolvedInt32Store: ret -_MTUnresolvedInt64Store: +MTUnresolvedInt64Store: ret -_MTUnresolvedFloatStore: +MTUnresolvedFloatStore: ret -_MTUnresolvedDoubleStore: +MTUnresolvedDoubleStore: ret -_MTUnresolvedAddressStore: +MTUnresolvedAddressStore: ret %endif