summaryrefslogtreecommitdiff
path: root/src/vm/arm64
diff options
context:
space:
mode:
authorKyungwoo Lee <kyulee@microsoft.com>2016-04-30 07:02:54 -0700
committerKyungwoo Lee <kyulee@microsoft.com>2016-04-30 07:02:54 -0700
commit960ab5c916e371bf6d05fe4407c874cce3066063 (patch)
tree25bb1eb05d679b8d487ae08bd7426b06e9a0224e /src/vm/arm64
parent5224df88a12d00f51fa04ee0e6a25e14eaeaebda (diff)
parent45798f661f8c8c042f3582cde8b611d1c9c7343f (diff)
downloadcoreclr-960ab5c916e371bf6d05fe4407c874cce3066063.tar.gz
coreclr-960ab5c916e371bf6d05fe4407c874cce3066063.tar.bz2
coreclr-960ab5c916e371bf6d05fe4407c874cce3066063.zip
Merge pull request #4687 from kyulee1/zap
ARM64: Enabling Crossgen End-to-End Mscorlib
Diffstat (limited to 'src/vm/arm64')
-rw-r--r--src/vm/arm64/asmhelpers.asm25
-rw-r--r--src/vm/arm64/stubs.cpp7
2 files changed, 24 insertions, 8 deletions
diff --git a/src/vm/arm64/asmhelpers.asm b/src/vm/arm64/asmhelpers.asm
index 7c89f0f897..8bf4da6710 100644
--- a/src/vm/arm64/asmhelpers.asm
+++ b/src/vm/arm64/asmhelpers.asm
@@ -16,6 +16,7 @@
IMPORT PreStubWorker
IMPORT NDirectImportWorker
IMPORT VSD_ResolveWorker
+ IMPORT StubDispatchFixupWorker
IMPORT JIT_InternalThrow
IMPORT ComPreStubWorker
IMPORT COMToCLRWorker
@@ -1175,7 +1176,6 @@ Fail
NESTED_END
-
#ifdef FEATURE_READYTORUN
NESTED_ENTRY DelayLoad_MethodCall
@@ -1221,5 +1221,28 @@ Fail
DynamicHelper DynamicHelperFrameFlags_ObjectArg | DynamicHelperFrameFlags_ObjectArg2, _ObjObj
#endif // FEATURE_READYTORUN
+#ifdef FEATURE_PREJIT
+;; ------------------------------------------------------------------
+;; void StubDispatchFixupStub(args in regs x0-x7 & stack, x11:IndirectionCellAndFlags, x12:DispatchToken)
+;;
+;; The stub dispatch thunk which transfers control to StubDispatchFixupWorker.
+ NESTED_ENTRY StubDispatchFixupStub
+
+ PROLOG_WITH_TRANSITION_BLOCK
+
+ add x0, sp, #__PWTB_TransitionBlock ; pTransitionBlock
+ and x1, x11, #-4 ; Indirection cell
+ mov x2, #0 ; sectionIndex
+ mov x3, #0 ; pModule
+ bl StubDispatchFixupWorker
+ mov x9, x0
+
+ EPILOG_WITH_TRANSITION_BLOCK_TAILCALL
+
+ EPILOG_BRANCH_REG x9
+
+ NESTED_END
+#endif
+
; Must be at very end of file
END \ No newline at end of file
diff --git a/src/vm/arm64/stubs.cpp b/src/vm/arm64/stubs.cpp
index eef079158f..38ce1d9791 100644
--- a/src/vm/arm64/stubs.cpp
+++ b/src/vm/arm64/stubs.cpp
@@ -1044,13 +1044,6 @@ extern "C" void GenericComPlusCallStub(void)
}
#endif // FEATURE_COMINTEROP
-#ifdef FEATURE_PREJIT
-extern "C" void StubDispatchFixupStub()
-{
- _ASSERTE(!"ARM64:NYI");
-}
-#endif
-
//ARM64TODO: check if this should be amd64 and win64
#ifdef _WIN64
extern "C" void PInvokeStubForHostInner(DWORD dwStackSize, LPVOID pStackFrame, LPVOID pTarget)