Platform
Description
A description of the platform we're compiling for. Used by the native code generator. In the future, this module should be the only one that references the evil #defines for each TARGET_ARCH and TARGET_OS
- data Platform = Platform {
- platformArch :: Arch
- platformOS :: OS
- data Arch
- = ArchAlpha
- | ArchX86
- | ArchX86_64
- | ArchPPC
- | ArchPPC_64
- | ArchSPARC
- data OS
- defaultTargetPlatform :: Platform
- osElfTarget :: OS -> Bool
Documentation
Contains enough information for the native code generator to emit code for this platform.
Constructors
Platform | |
Fields
|
Architectures that the native code generator knows about. TODO: It might be nice to extend these constructors with information about what instruction set extensions an architecture might support.
Constructors
ArchAlpha | |
ArchX86 | |
ArchX86_64 | |
ArchPPC | |
ArchPPC_64 | |
ArchSPARC |
Operating systems that the native code generator knows about. Having OSUnknown should produce a sensible default, but no promises.
defaultTargetPlatform :: PlatformSource
This is the target platform as far as the #ifdefs are concerned. These are set in includes/ghcplatform.h by the autoconf scripts
osElfTarget :: OS -> BoolSource
This predicates tells us whether the OS supports ELF-like shared libraries.