summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2020-07-19 00:00:00 +0000
committerMoritz Angermann <moritz.angermann@gmail.com>2020-09-09 09:58:43 +0800
commit5e5690d82901a4a65568d78dafc15efbe3d069ec (patch)
tree72f2a01240e8a437cfe0e81dece42b9b43c8778a
parent7e08a0acaff3406244f2fdf76019cf610a4fce8d (diff)
downloadhaskell-5e5690d82901a4a65568d78dafc15efbe3d069ec.tar.gz
Make sp an Operand
-rw-r--r--compiler/GHC/CmmToAsm/AArch64/Instr.hs3
-rw-r--r--compiler/GHC/CmmToAsm/AArch64/Regs.hs5
2 files changed, 5 insertions, 3 deletions
diff --git a/compiler/GHC/CmmToAsm/AArch64/Instr.hs b/compiler/GHC/CmmToAsm/AArch64/Instr.hs
index e27b59e64e..c5a4a256a7 100644
--- a/compiler/GHC/CmmToAsm/AArch64/Instr.hs
+++ b/compiler/GHC/CmmToAsm/AArch64/Instr.hs
@@ -603,9 +603,10 @@ data Operand
opReg :: Width -> Reg -> Operand
opReg = OpReg
-xzr, wzr :: Operand
+xzr, wzr, sp :: Operand
xzr = OpReg W64 (RegReal (RealRegSingle (-1)))
wzr = OpReg W32 (RegReal (RealRegSingle (-1)))
+sp = OpReg W64 (RegReal (RealRegSingle 31))
_x :: Int -> Operand
_x i = OpReg W64 (RegReal (RealRegSingle i))
diff --git a/compiler/GHC/CmmToAsm/AArch64/Regs.hs b/compiler/GHC/CmmToAsm/AArch64/Regs.hs
index b392ab1772..b5107faff3 100644
--- a/compiler/GHC/CmmToAsm/AArch64/Regs.hs
+++ b/compiler/GHC/CmmToAsm/AArch64/Regs.hs
@@ -46,8 +46,9 @@ allFpArgRegs = map regSingle [32..39]
-- 22-27: R1-R6
-- 28: SpLim
-sp :: Reg
-sp = regSingle 20
+-- This is the STG Sp reg.
+-- sp :: Reg
+-- sp = regSingle 20
-- addressing modes ------------------------------------------------------------