diff options
author | Karel Gardas <karel.gardas@centrum.cz> | 2012-04-25 09:04:50 +0200 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2012-04-27 11:13:06 +0100 |
commit | 3144f85661da176e3d80f28d652b42245becde09 (patch) | |
tree | f10ab746a7cf379e134960ca7daaa2c14643a46e /compiler/utils/Platform.hs | |
parent | 18c2a2f71e38fad5e677b8f448f6135e5a691868 (diff) | |
download | haskell-3144f85661da176e3d80f28d652b42245becde09.tar.gz |
add support for ARM hard-float ABI (fixes #5914)
This patch enhances Platform's ArchARM to include ARM ABI value. It also
tweaks configure machinery to detect hard-float ABI and to set it wherever
needed. Finally when hard-float ABI is in use, pass appropriate compiler
option to the LLVM's llc. Fixes #5914.
Diffstat (limited to 'compiler/utils/Platform.hs')
-rw-r--r-- | compiler/utils/Platform.hs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/compiler/utils/Platform.hs b/compiler/utils/Platform.hs index 47dd7798cd..8252621661 100644 --- a/compiler/utils/Platform.hs +++ b/compiler/utils/Platform.hs @@ -7,6 +7,7 @@ module Platform ( OS(..), ArmISA(..), ArmISAExt(..), + ArmABI(..), target32Bit, osElfTarget @@ -41,7 +42,9 @@ data Arch | ArchSPARC | ArchARM { armISA :: ArmISA - , armISAExt :: [ArmISAExt] } + , armISAExt :: [ArmISAExt] + , armABI :: ArmABI + } deriving (Read, Show, Eq) @@ -61,7 +64,7 @@ data OS | OSHaiku deriving (Read, Show, Eq) --- | ARM Instruction Set Architecture and Extensions +-- | ARM Instruction Set Architecture, Extensions and ABI -- data ArmISA = ARMv5 @@ -77,6 +80,11 @@ data ArmISAExt | IWMMX2 deriving (Read, Show, Eq) +data ArmABI + = SOFT + | SOFTFP + | HARD + deriving (Read, Show, Eq) target32Bit :: Platform -> Bool target32Bit p = platformWordSize p == 4 |