packages feed

alpha-0.99: src/Specialize/Architecture.hs

module Specialize.Architecture(Architecture(..)
                              ,arch_x86
                              ,arch_x86_64
                              ,arch_arm
                              ,hostArch,Specialize.Architecture.execStub,Specialize.Architecture.initStub
                              ,architectures) where

import Specialize.Types
import Specialize.X86_64 as Host
import System.IO.Unsafe (unsafePerformIO)

instance Eq Architecture where
  a == a' = archName a == archName a'
instance Show Architecture where
  show a = "#<Arch:"++archName a++">"

undef s = error $ "undefined ("++s++")"

architectures = [hostArch,arch_x86,arch_x86_64,arch_arm]
nullArch = Arch undefined undefined (undef "initials") (undef "compile")
arch_x86 = nullArch { archName = "x86", archDefaultSize = 4 }
arch_arm = nullArch { archName = "arm", archDefaultSize = 4 }

hostArch = arch_x86_64 { archName = "host" }

execStub = unsafePerformIO Host.execStub
initStub = unsafePerformIO Host.initStub