basicblock: handle athrow as return
[mate.git] / Mate / X86CodeGen.hs
index 8ac7e7dc79d8b86e1097bd2b94d1d02d06cd89a2..5674523f9cb8fb90bad456510abb0bd0eb51ec60 100644 (file)
@@ -99,8 +99,8 @@ emitFromBB cls method = do
 
     getCurrentOffset :: CodeGen e s Word32
     getCurrentOffset = do
-      ep <- (fromIntegral . ptrToIntPtr) `liftM` getEntryPoint
-      offset <- fromIntegral `liftM` getCodeOffset
+      ep <- (fromIntegral . ptrToIntPtr) <$> getEntryPoint
+      offset <- fromIntegral <$> getCodeOffset
       return $ ep + offset
 
     emitInvoke :: Word16 -> Bool -> CodeGen e s (Maybe (Word32, TrapCause))
@@ -226,6 +226,7 @@ emitFromBB cls method = do
     emit' ATHROW = do
       trapaddr <- emitSigIllTrap 2
       let patcher resp reip = do
+            error "no athrow for you, sorry"
             emitSigIllTrap 2
             return reip
       return $ Just (trapaddr, ThrowException patcher)