summaryrefslogtreecommitdiff
path: root/src/pal
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/pal
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/pal')
-rw-r--r--src/pal/inc/unixasmmacrosarm64.inc34
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