summaryrefslogtreecommitdiff
path: root/src/vm/arm64/asmhelpers.S
diff options
context:
space:
mode:
authorCarol Eidt <carol.eidt@microsoft.com>2019-02-01 15:35:28 -0800
committerGitHub <noreply@github.com>2019-02-01 15:35:28 -0800
commitf10d5bec97e722c5ed54a1ce5f357d99dea60ff7 (patch)
tree6c99ac3c4a7d6c625b0473936dc2c511e85066d3 /src/vm/arm64/asmhelpers.S
parent7ca73bcfa0ce072617b068393b7ed66919097bc1 (diff)
downloadcoreclr-f10d5bec97e722c5ed54a1ce5f357d99dea60ff7.tar.gz
coreclr-f10d5bec97e722c5ed54a1ce5f357d99dea60ff7.tar.bz2
coreclr-f10d5bec97e722c5ed54a1ce5f357d99dea60ff7.zip
Preserve Vector Arg registers on Arm64 (#22257)
* Preserve Vector Arg registers on Arm64 Fix #14371
Diffstat (limited to 'src/vm/arm64/asmhelpers.S')
-rw-r--r--src/vm/arm64/asmhelpers.S24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/vm/arm64/asmhelpers.S b/src/vm/arm64/asmhelpers.S
index c0baa92456..ed48d66e58 100644
--- a/src/vm/arm64/asmhelpers.S
+++ b/src/vm/arm64/asmhelpers.S
@@ -121,18 +121,18 @@ LEAF_END HelperMethodFrameRestoreState, _TEXT
// The call in ndirect import precode points to this function.
NESTED_ENTRY NDirectImportThunk, _TEXT, NoHandler
- PROLOG_SAVE_REG_PAIR_INDEXED fp, lr, -160
+ PROLOG_SAVE_REG_PAIR_INDEXED fp, lr, -224
SAVE_ARGUMENT_REGISTERS sp, 16
- SAVE_FLOAT_ARGUMENT_REGISTERS sp, 88
+ SAVE_FLOAT_ARGUMENT_REGISTERS sp, 96
mov x0, x12
bl NDirectImportWorker
mov x12, x0
// pop the stack and restore original register state
- RESTORE_FLOAT_ARGUMENT_REGISTERS sp, 88
+ RESTORE_FLOAT_ARGUMENT_REGISTERS sp, 96
RESTORE_ARGUMENT_REGISTERS sp, 16
- EPILOG_RESTORE_REG_PAIR_INDEXED fp, lr, 160
+ EPILOG_RESTORE_REG_PAIR_INDEXED fp, lr, 224
// If we got back from NDirectImportWorker, the MD has been successfully
// linked. Proceed to execute the original DLL call.
@@ -493,9 +493,9 @@ WRITE_BARRIER_END JIT_WriteBarrier
NESTED_ENTRY VirtualMethodFixupStub, _TEXT, NoHandler
// Save arguments and return address
- PROLOG_SAVE_REG_PAIR_INDEXED fp, lr, -160
+ PROLOG_SAVE_REG_PAIR_INDEXED fp, lr, -224
SAVE_ARGUMENT_REGISTERS sp, 16
- SAVE_FLOAT_ARGUMENT_REGISTERS sp, 88
+ SAVE_FLOAT_ARGUMENT_REGISTERS sp, 96
// Refer to ZapImportVirtualThunk::Save
// for details on this.
@@ -512,8 +512,8 @@ NESTED_ENTRY VirtualMethodFixupStub, _TEXT, NoHandler
// pop the stack and restore original register state
RESTORE_ARGUMENT_REGISTERS sp, 16
- RESTORE_FLOAT_ARGUMENT_REGISTERS sp, 88
- EPILOG_RESTORE_REG_PAIR_INDEXED fp, lr, 160
+ RESTORE_FLOAT_ARGUMENT_REGISTERS sp, 96
+ EPILOG_RESTORE_REG_PAIR_INDEXED fp, lr, 224
PATCH_LABEL VirtualMethodFixupPatchLabel
@@ -723,9 +723,9 @@ COMToCLRDispatchHelper_RegSetup
NESTED_ENTRY TheUMEntryPrestub, _TEXT, UnhandledExceptionHandlerUnix
// Save arguments and return address
- PROLOG_SAVE_REG_PAIR_INDEXED fp, lr, -160
+ PROLOG_SAVE_REG_PAIR_INDEXED fp, lr, -224
SAVE_ARGUMENT_REGISTERS sp, 16
- SAVE_FLOAT_ARGUMENT_REGISTERS sp, 88
+ SAVE_FLOAT_ARGUMENT_REGISTERS sp, 96
mov x0, x12
bl C_FUNC(TheUMEntryPrestubWorker)
@@ -735,8 +735,8 @@ NESTED_ENTRY TheUMEntryPrestub, _TEXT, UnhandledExceptionHandlerUnix
// pop the stack and restore original register state
RESTORE_ARGUMENT_REGISTERS sp, 16
- RESTORE_FLOAT_ARGUMENT_REGISTERS sp, 88
- EPILOG_RESTORE_REG_PAIR_INDEXED fp, lr, 160
+ RESTORE_FLOAT_ARGUMENT_REGISTERS sp, 96
+ EPILOG_RESTORE_REG_PAIR_INDEXED fp, lr, 224
// and tailcall to the actual method
EPILOG_BRANCH_REG x12