diff options
author | Peter Trommler <ptrommler@acm.org> | 2018-12-28 23:55:35 +0100 |
---|---|---|
committer | Peter Trommler <ptrommler@acm.org> | 2019-01-15 12:58:23 -0500 |
commit | 753d27aad73725b46b81fb4f69956e50f9d1870c (patch) | |
tree | 62a611b90c259c22cb8b28cd857cc407ce69d0d1 | |
parent | 8d12a6929fa08eb136506abeaa4e3dd47ccb1716 (diff) | |
download | haskell-753d27aad73725b46b81fb4f69956e50f9d1870c.tar.gz |
PPC NCG: Make `stackHeaderSize` more general
-rw-r--r-- | compiler/nativeGen/PPC/Instr.hs | 13 |
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 |