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/pal | |
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/pal')
-rw-r--r-- | src/pal/inc/unixasmmacrosarm64.inc | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/pal/inc/unixasmmacrosarm64.inc b/src/pal/inc/unixasmmacrosarm64.inc index f99efbe45d..6db1f242f3 100644 --- a/src/pal/inc/unixasmmacrosarm64.inc +++ b/src/pal/inc/unixasmmacrosarm64.inc @@ -137,14 +137,14 @@ C_FUNC(\Name\()_End): // ArgumentRegisters::x2 // ArgumentRegisters::x1 // ArgumentRegisters::x0 -// FloatRegisters::d7 -// FloatRegisters::d6 -// FloatRegisters::d5 -// FloatRegisters::d4 -// FloatRegisters::d3 -// FloatRegisters::d2 -// FloatRegisters::d1 -// FloatRegisters::d0 +// FloatRegisters::q7 +// FloatRegisters::q6 +// FloatRegisters::q5 +// FloatRegisters::q4 +// FloatRegisters::q3 +// FloatRegisters::q2 +// FloatRegisters::q1 +// FloatRegisters::q0 .macro PROLOG_WITH_TRANSITION_BLOCK extraLocals = 0, SaveFPArgs = 1 __PWTB_FloatArgumentRegisters = \extraLocals @@ -200,13 +200,13 @@ C_FUNC(\Name\()_End): .endm -// Reserve 64 bytes of memory before calling SAVE_FLOAT_ARGUMENT_REGISTERS +// Reserve 128 bytes of memory before calling SAVE_FLOAT_ARGUMENT_REGISTERS .macro SAVE_FLOAT_ARGUMENT_REGISTERS reg, ofs - stp d0, d1, [\reg, #(\ofs)] - stp d2, d3, [\reg, #(\ofs + 16)] - stp d4, d5, [\reg, #(\ofs + 32)] - stp d6, d7, [\reg, #(\ofs + 48)] + stp q0, q1, [\reg, #(\ofs)] + stp q2, q3, [\reg, #(\ofs + 32)] + stp q4, q5, [\reg, #(\ofs + 64)] + stp q6, q7, [\reg, #(\ofs + 96)] .endm @@ -222,10 +222,10 @@ C_FUNC(\Name\()_End): .macro RESTORE_FLOAT_ARGUMENT_REGISTERS reg, ofs - ldp d0, d1, [\reg, #(\ofs)] - ldp d2, d3, [\reg, #(\ofs + 16)] - ldp d4, d5, [\reg, #(\ofs + 32)] - ldp d6, d7, [\reg, #(\ofs + 48)] + ldp q0, q1, [\reg, #(\ofs)] + ldp q2, q3, [\reg, #(\ofs + 32)] + ldp q4, q5, [\reg, #(\ofs + 64)] + ldp q6, q7, [\reg, #(\ofs + 96)] .endm |