From: Bernhard Urban Date: Thu, 13 Jan 2011 23:28:10 +0000 (+0100) Subject: 3a_asm: FIX: get rid of 0-4 in displacement X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=calu.git;a=commitdiff_plain;h=68ce57f52850b5f4a3d3c6fedc146597975b33c5 3a_asm: FIX: get rid of 0-4 in displacement ... -.- --- diff --git a/3a_asm/DT.hs b/3a_asm/DT.hs index 213a5c3..5194159 100644 --- a/3a_asm/DT.hs +++ b/3a_asm/DT.hs @@ -38,6 +38,7 @@ iLabel d@(aktadr,_) = do {i <- (iLit d); return $ ((i - aktadr)`div`4) .&. 0xfff iLit :: Dict -> Parser Word32 iLit (_,d) = do + parseMySpaces val <- expr d; try (do { string "@hi"; parseMySpaces; diff --git a/3a_asm/notes b/3a_asm/notes index e6bf0d0..93707b5 100644 --- a/3a_asm/notes +++ b/3a_asm/notes @@ -1,5 +1,4 @@ BUGS: -- parsers2/eval: kann nur "0-1" und ned "-1" auswerten - parsers2/eval: aufloesen von zwei labels x und y funktioniert nicht, wenn x ein echter prefix von y ist (longest input match anyone?) - parsers2: bei instr branches addresse durch 4 rechnen (ldi vorm brr -> RAGE) diff --git a/progs/fibmmem.s b/progs/fibmmem.s index 43ea3fb..6ec5aa1 100644 --- a/progs/fibmmem.s +++ b/progs/fibmmem.s @@ -63,7 +63,7 @@ fibmem: ;iterative call for n-1 element call+ fibmem ;load n-2 element - ldw r3, 0-4(r2) + ldw r3, -4(r2) ;add n-1 and n-2 element add r0, r3, r0 ;increment address for n element