3a_asm: divide the computed address with four at br and call
authorBernhard Urban <lewurm@gmail.com>
Sat, 11 Dec 2010 12:32:04 +0000 (13:32 +0100)
committerBernhard Urban <lewurm@gmail.com>
Sat, 11 Dec 2010 12:32:04 +0000 (13:32 +0100)
3a_asm/DT.hs

index d4ad4901ea6130abd1550fd430a923e1dd639a14..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