codegen: typestuff for compiling classpath files
authorBernhard Urban <lewurm@gmail.com>
Mon, 18 Jun 2012 16:33:26 +0000 (18:33 +0200)
committerBernhard Urban <lewurm@gmail.com>
Mon, 18 Jun 2012 16:33:26 +0000 (18:33 +0200)
Mate/Utilities.hs
Mate/X86CodeGen.hs

index 211b68f2f5ab2019633b880863db206e84fb61b6..89020a5d1d65cfda9dedd217c42a568ec13620d0 100644 (file)
@@ -44,6 +44,7 @@ methodHaveReturnValue :: Class Direct -> Word16 -> Bool
 methodHaveReturnValue cls idx = case ret of
     ReturnsVoid -> False;
     (Returns BoolType) -> True
 methodHaveReturnValue cls idx = case ret of
     ReturnsVoid -> False;
     (Returns BoolType) -> True
+    (Returns CharByte) -> True
     (Returns IntType) -> True;
     (Returns (Array _ _)) -> True
     (Returns (ObjectType _)) -> True;
     (Returns IntType) -> True;
     (Returns (Array _ _)) -> True
     (Returns (ObjectType _)) -> True;
index d6198796991290970d7c04dcaf3d3b49291b06e1..b4b72b179c81b32e5ce6df152971fc3504f96283 100644 (file)
@@ -272,6 +272,7 @@ emitFromBB method sig cls hmap =  do
     emit (LDC2 x) = do
         value <- case constsPool cls M.! x of
                       (CString s) -> liftIO $ getUniqueStringAddr s
     emit (LDC2 x) = do
         value <- case constsPool cls M.! x of
                       (CString s) -> liftIO $ getUniqueStringAddr s
+                      (CInteger i) -> liftIO $ return i
                       e -> error $ "LDCI... missing impl.: " ++ show e
         push value
     emit (GETFIELD x) = do
                       e -> error $ "LDCI... missing impl.: " ++ show e
         push value
     emit (GETFIELD x) = do