diff options
author | Luke Iannini <lukexi@me.com> | 2014-11-19 17:23:35 -0600 |
---|---|---|
committer | Austin Seipp <austin@well-typed.com> | 2014-11-19 17:24:30 -0600 |
commit | d87fa343cd5d298c9fea96d65d05a20929ff97d0 (patch) | |
tree | bda3913f1d047e398ba63d47253c7792f6098018 /compiler/codeGen/CodeGen | |
parent | 80f6fc1769296330687d54179a6dc149f02d6348 (diff) | |
download | haskell-d87fa343cd5d298c9fea96d65d05a20929ff97d0.tar.gz |
arm64: 64bit iOS and SMP support (#7942)
Signed-off-by: Austin Seipp <austin@well-typed.com>
Diffstat (limited to 'compiler/codeGen/CodeGen')
-rw-r--r-- | compiler/codeGen/CodeGen/Platform.hs | 6 | ||||
-rw-r--r-- | compiler/codeGen/CodeGen/Platform/ARM64.hs | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/compiler/codeGen/CodeGen/Platform.hs b/compiler/codeGen/CodeGen/Platform.hs index ca3bafb8de..e44eed67cb 100644 --- a/compiler/codeGen/CodeGen/Platform.hs +++ b/compiler/codeGen/CodeGen/Platform.hs @@ -9,6 +9,7 @@ import Platform import Reg import qualified CodeGen.Platform.ARM as ARM +import qualified CodeGen.Platform.ARM64 as ARM64 import qualified CodeGen.Platform.PPC as PPC import qualified CodeGen.Platform.PPC_Darwin as PPC_Darwin import qualified CodeGen.Platform.SPARC as SPARC @@ -28,6 +29,7 @@ callerSaves platform ArchX86_64 -> X86_64.callerSaves ArchSPARC -> SPARC.callerSaves ArchARM {} -> ARM.callerSaves + ArchARM64 -> ARM64.callerSaves arch | arch `elem` [ArchPPC, ArchPPC_64] -> case platformOS platform of @@ -50,6 +52,7 @@ activeStgRegs platform ArchX86_64 -> X86_64.activeStgRegs ArchSPARC -> SPARC.activeStgRegs ArchARM {} -> ARM.activeStgRegs + ArchARM64 -> ARM64.activeStgRegs arch | arch `elem` [ArchPPC, ArchPPC_64] -> case platformOS platform of @@ -67,6 +70,7 @@ haveRegBase platform ArchX86_64 -> X86_64.haveRegBase ArchSPARC -> SPARC.haveRegBase ArchARM {} -> ARM.haveRegBase + ArchARM64 -> ARM64.haveRegBase arch | arch `elem` [ArchPPC, ArchPPC_64] -> case platformOS platform of @@ -84,6 +88,7 @@ globalRegMaybe platform ArchX86_64 -> X86_64.globalRegMaybe ArchSPARC -> SPARC.globalRegMaybe ArchARM {} -> ARM.globalRegMaybe + ArchARM64 -> ARM64.globalRegMaybe arch | arch `elem` [ArchPPC, ArchPPC_64] -> case platformOS platform of @@ -101,6 +106,7 @@ freeReg platform ArchX86_64 -> X86_64.freeReg ArchSPARC -> SPARC.freeReg ArchARM {} -> ARM.freeReg + ArchARM64 -> ARM64.freeReg arch | arch `elem` [ArchPPC, ArchPPC_64] -> case platformOS platform of diff --git a/compiler/codeGen/CodeGen/Platform/ARM64.hs b/compiler/codeGen/CodeGen/Platform/ARM64.hs new file mode 100644 index 0000000000..c3ebeda6bf --- /dev/null +++ b/compiler/codeGen/CodeGen/Platform/ARM64.hs @@ -0,0 +1,8 @@ +{-# LANGUAGE CPP #-} + +module CodeGen.Platform.ARM64 where + +#define MACHREGS_NO_REGS 0 +#define MACHREGS_aarch64 1 +#include "../../../../includes/CodeGen.Platform.hs" + |