diff options
author | Rahul Kumar <rahku@microsoft.com> | 2016-04-20 16:27:04 -0700 |
---|---|---|
committer | Rahul Kumar <rahku@microsoft.com> | 2016-04-28 15:47:17 -0700 |
commit | ef161ab2bb87207f52c7db9472fd5a027dbe5f12 (patch) | |
tree | d97273f3d0800b33e0a8e9461f0f1287ce2a38ca /src/vm/arm64/asmhelpers.asm | |
parent | e9bc870cbba0178ae30c3cfdf65ba2ef2bdd229e (diff) | |
download | coreclr-ef161ab2bb87207f52c7db9472fd5a027dbe5f12.tar.gz coreclr-ef161ab2bb87207f52c7db9472fd5a027dbe5f12.tar.bz2 coreclr-ef161ab2bb87207f52c7db9472fd5a027dbe5f12.zip |
Enable ReadyToRun feature for arm64
Diffstat (limited to 'src/vm/arm64/asmhelpers.asm')
-rw-r--r-- | src/vm/arm64/asmhelpers.asm | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/src/vm/arm64/asmhelpers.asm b/src/vm/arm64/asmhelpers.asm index 55df26aa74..7c89f0f897 100644 --- a/src/vm/arm64/asmhelpers.asm +++ b/src/vm/arm64/asmhelpers.asm @@ -33,6 +33,9 @@ IMPORT OnHijackObjectWorker IMPORT OnHijackInteriorPointerWorker IMPORT OnHijackScalarWorker +#ifdef FEATURE_READYTORUN + IMPORT DynamicHelperWorker +#endif IMPORT g_ephemeral_low IMPORT g_ephemeral_high @@ -1172,5 +1175,51 @@ Fail NESTED_END + +#ifdef FEATURE_READYTORUN + + NESTED_ENTRY DelayLoad_MethodCall + PROLOG_WITH_TRANSITION_BLOCK + + add x0, sp, #__PWTB_TransitionBlock ; pTransitionBlock + mov x1, x11 ; Indirection cell + mov x2, x8 ; sectionIndex + mov x3, x9 ; Module* + bl ExternalMethodFixupWorker + mov x12, x0 + + EPILOG_WITH_TRANSITION_BLOCK_TAILCALL + ; Share patch label + b ExternalMethodFixupPatchLabel + NESTED_END + + MACRO + DynamicHelper $frameFlags, $suffix + + NESTED_ENTRY DelayLoad_Helper$suffix + + PROLOG_WITH_TRANSITION_BLOCK + + add x0, sp, #__PWTB_TransitionBlock ; pTransitionBlock + mov x1, x11 ; Indirection cell + mov x2, x8 ; sectionIndex + mov x3, x9 ; Module* + mov x4, $frameFlags + bl DynamicHelperWorker + cbnz x0, %FT0 + ldr x0, [sp, #__PWTB_ArgumentRegisters] + EPILOG_WITH_TRANSITION_BLOCK_RETURN +0 + mov x12, x0 + EPILOG_WITH_TRANSITION_BLOCK_TAILCALL + EPILOG_BRANCH_REG x12 + NESTED_END + MEND + + DynamicHelper DynamicHelperFrameFlags_Default + DynamicHelper DynamicHelperFrameFlags_ObjectArg, _Obj + DynamicHelper DynamicHelperFrameFlags_ObjectArg | DynamicHelperFrameFlags_ObjectArg2, _ObjObj +#endif // FEATURE_READYTORUN + ; Must be at very end of file - END + END
\ No newline at end of file |