summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Trommler <ptrommler@acm.org>2018-12-28 23:55:35 +0100
committerPeter Trommler <ptrommler@acm.org>2019-01-15 12:58:23 -0500
commit753d27aad73725b46b81fb4f69956e50f9d1870c (patch)
tree62a611b90c259c22cb8b28cd857cc407ce69d0d1
parent8d12a6929fa08eb136506abeaa4e3dd47ccb1716 (diff)
downloadhaskell-753d27aad73725b46b81fb4f69956e50f9d1870c.tar.gz
PPC NCG: Make `stackHeaderSize` more general
-rw-r--r--compiler/nativeGen/PPC/Instr.hs13
1 files changed, 6 insertions, 7 deletions
diff --git a/compiler/nativeGen/PPC/Instr.hs b/compiler/nativeGen/PPC/Instr.hs
index 8f3153ca16..fb6273891e 100644
--- a/compiler/nativeGen/PPC/Instr.hs
+++ b/compiler/nativeGen/PPC/Instr.hs
@@ -575,14 +575,13 @@ ppc_mkLoadInstr dflags reg delta slot
stackFrameHeaderSize :: DynFlags -> Int
stackFrameHeaderSize dflags
= case platformOS platform of
- OSLinux -> case platformArch platform of
- -- header + parameter save area
- ArchPPC -> 64 -- TODO: check ABI spec
- ArchPPC_64 ELF_V1 -> 48 + 8 * 8
- ArchPPC_64 ELF_V2 -> 32 + 8 * 8
- _ -> panic "PPC.stackFrameHeaderSize: Unknown Linux"
OSAIX -> 24 + 8 * 4
- _ -> panic "PPC.stackFrameHeaderSize: not defined for this OS"
+ _ -> case platformArch platform of
+ -- header + parameter save area
+ ArchPPC -> 64 -- TODO: check ABI spec
+ ArchPPC_64 ELF_V1 -> 48 + 8 * 8
+ ArchPPC_64 ELF_V2 -> 32 + 8 * 8
+ _ -> panic "PPC.stackFrameHeaderSize: not defined for this OS"
where platform = targetPlatform dflags
-- | The maximum number of bytes required to spill a register. PPC32