PPC NCG: Make calling convention more general
authorPeter Trommler <ptrommler@acm.org>
Fri, 28 Dec 2018 22:52:31 +0000 (23:52 +0100)
committerBen Gamari <ben@well-typed.com>
Thu, 17 Jan 2019 18:39:40 +0000 (13:39 -0500)
All operating systems except AIX and Darwin follow the ELF
specification.

compiler/nativeGen/PPC/CodeGen.hs

index bbc3411..5586e0e 100644 (file)
@@ -1570,13 +1570,12 @@ data GenCCallPlatform = GCPLinux | GCPLinux64ELF !Int | GCPAIX
 
 platformToGCP :: Platform -> GenCCallPlatform
 platformToGCP platform = case platformOS platform of
-    OSLinux  -> case platformArch platform of
-        ArchPPC           -> GCPLinux
-        ArchPPC_64 ELF_V1 -> GCPLinux64ELF 1
-        ArchPPC_64 ELF_V2 -> GCPLinux64ELF 2
-        _ -> panic "PPC.CodeGen.platformToGCP: Unknown Linux"
     OSAIX    -> GCPAIX
-    _ -> panic "PPC.CodeGen.platformToGCP: not defined for this OS"
+    _ -> case platformArch platform of
+            ArchPPC           -> GCPLinux
+            ArchPPC_64 ELF_V1 -> GCPLinux64ELF 1
+            ArchPPC_64 ELF_V2 -> GCPLinux64ELF 2
+           _ -> panic "platformToGCP: Not PowerPC"
 
 
 genCCall'