TODO: use wordSize where appropriate
import Mate.MethodPool
import Mate.Types
import Mate.ClassPool
-import Mate.X86TrapHandling
+import Mate.NativeMaschine
main :: IO ()
main = do
import Mate.BasicBlocks
import Mate.Types
-import Mate.X86CodeGen
+import Mate.NativeMaschine
import Mate.ClassPool
import Mate.Debug
import Mate.Utilities
import qualified Data.ByteString.Lazy as B
import Mate.Types
+import Foreign.C.Types
addMethodRef :: Word32 -> MethodInfo -> [B.ByteString] -> IO ()
compileBB :: RawMethod -> MethodInfo -> IO Word32
executeFuncPtr :: Word32 -> IO ()
+getMethodEntry :: CUInt -> CUInt -> IO CUInt
--- /dev/null
+{-# LANGUAGE CPP #-}
+module Mate.NativeMaschine(
+ emitFromBB,
+ mateHandler,
+ register_signal,
+ wordSize
+ )where
+
+#ifdef i386_HOST_ARCH
+import Mate.X86CodeGen
+import Mate.X86TrapHandling
+
+wordSize :: Int
+wordSize = 4
+
+#else
+#error "no other arch supported yet :/"
+#endif
import Foreign.C.Types
import Mate.Types
-import Mate.MethodPool
+import {-# SOURCE #-} Mate.MethodPool
import Mate.ClassPool
foreign import ccall "register_signal"