methodpool: save information in codegen context
[mate.git] / Mate.hs
1 {-# LANGUAGE OverloadedStrings #-}
2 module Main where
3
4 import System.Environment
5
6 import Text.Printf
7
8 import JVM.Converter
9 import JVM.Dump
10
11 import Mate.BasicBlocks
12 import Mate.X86CodeGen
13 import Mate.MethodPool
14
15 main ::  IO ()
16 main = do
17   args <- getArgs
18   register_signal
19   initMethodPool
20   case args of
21     [clspath] -> do
22       cls <- parseClassFile clspath
23       dumpClass cls
24       hmap <- parseMethod cls "main"
25       printMapBB hmap
26       case hmap of
27         Just hmap' -> do
28           entry <- compileBB hmap' cls "main"
29           printf "executing `main' now:\n"
30           executeFuncPtr entry
31         Nothing -> error "main not found"
32     _ -> error "Usage: mate <class-file>"