diff options
author | Carol Eidt <carol.eidt@microsoft.com> | 2019-02-01 15:35:28 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-01 15:35:28 -0800 |
commit | f10d5bec97e722c5ed54a1ce5f357d99dea60ff7 (patch) | |
tree | 6c99ac3c4a7d6c625b0473936dc2c511e85066d3 /src/vm/arm64/asmhelpers.S | |
parent | 7ca73bcfa0ce072617b068393b7ed66919097bc1 (diff) | |
download | coreclr-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.S | 24 |
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 |