Fix R2R DynamicHelper to use the correct offset to x0 reg.
authorAditya Mandaleeka <adityam@microsoft.com>
Thu, 9 Aug 2018 02:30:48 +0000 (19:30 -0700)
committerAditya Mandaleeka <adityam@microsoft.com>
Thu, 9 Aug 2018 02:30:48 +0000 (19:30 -0700)
Commit migrated from https://github.com/dotnet/coreclr/commit/8eb7b455e251035148e8526fdb512de28cee693b

src/coreclr/src/vm/arm64/asmhelpers.asm
src/coreclr/src/vm/arm64/asmmacros.h

index 60a896a..7346c46 100644 (file)
@@ -1262,9 +1262,9 @@ Fail
         mov x4, $frameFlags
         bl DynamicHelperWorker
         cbnz x0, %FT0
-        ldr x0, [sp, #__PWTB_ArgumentRegisters]
+        ldr x0, [sp, #__PWTB_ArgumentRegister_FirstArg]
         EPILOG_WITH_TRANSITION_BLOCK_RETURN
-0              
+0
         mov x12, x0
         EPILOG_WITH_TRANSITION_BLOCK_TAILCALL
         EPILOG_BRANCH_REG  x12
index e70b987..291fcf8 100644 (file)
@@ -44,7 +44,9 @@ $name   SETS    "|$symbol|"
         PROLOG_WITH_TRANSITION_BLOCK $extraLocals, $SaveFPArgs
 
         GBLA __PWTB_FloatArgumentRegisters
-        GBLA __PWTB_ArgumentRegisters 
+        GBLA __PWTB_ArgumentRegisters
+        GBLA __PWTB_ArgumentRegister_FirstArg ; We save the x8 register ahead of the first argument, so this
+                                              ; is different from the start of the argument register save area.
         GBLA __PWTB_StackAlloc
         GBLA __PWTB_TransitionBlock
         GBLL __PWTB_SaveFPArgs
@@ -73,6 +75,7 @@ __PWTB_TransitionBlock SETA __PWTB_FloatArgumentRegisters
 
 __PWTB_StackAlloc SETA __PWTB_TransitionBlock
 __PWTB_ArgumentRegisters SETA __PWTB_StackAlloc + 104
+__PWTB_ArgumentRegister_FirstArg SETA __PWTB_ArgumentRegisters + 8
 
         PROLOG_SAVE_REG_PAIR   fp, lr, #-176!
         ; Spill callee saved registers