Revert "3a_asm: ugly workaroud with ldil vs. ldilt"
[calu.git] / 3a_asm / DT.hs
index 907bea715d565c88d09b0454120ae4e8a3a2afa7..562285ba8c2d621e1febecb46f81cb4876218ba0 100644 (file)
@@ -34,7 +34,7 @@ mnem m = string m
 
 iLabel :: Dict -> Parser Word32
 -- TODO: save msb (=sign) correctly...
-iLabel d@(aktadr,_) = do {i <- (iLit d); return $ (i - aktadr) .&. 0xffff}
+iLabel d@(aktadr,_) = do {i <- (iLit d); return $ ((i - aktadr)`div`4) .&. 0xffff}
 
 iLit :: Dict -> Parser Word32
 iLit (_,d) = do
@@ -50,7 +50,7 @@ iLit (_,d) = do
 
 iLit5  d = do i <- iLit d; return $ i .&. 0x001f
 iLit12 d = do i <- iLit d; return $ i .&. 0x0fff
-iLit15 d = do i <- iLit d; return $ i .&. 0xefff
+iLit15 d = do i <- iLit d; return $ i .&. 0x7fff
 iLit16 d = do i <- iLit d; return $ i .&. 0xffff
 
 imm4 :: Parser String