Author: tooch
Date: Wed Sep 21 19:16:42 2011
New Revision: 2524
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2524
Log:
ARM - >resolve broken; should be mask-op-and-or-offset, not simple add.
Test:
code foo
b `0 F:`
sub tos,tos,tos
0 L: add tos,tos,tos
c;
Modified:
cpu/arm/assem.fth
Modified: cpu/arm/assem.fth
==============================================================================
--- cpu/arm/assem.fth Tue Sep 20 08:00:08 2011 (r2523)
+++ cpu/arm/assem.fth Wed Sep 21 19:16:42 2011 (r2524)
@@ -1438,7 +1438,10 @@
\ These implementation factors are used by the local labels package
: <mark ( -- <mark ) here ;
: >mark ( -- >mark ) here ;
-: >resolve ( >mark -- ) here over >br-offset over asm@ + swap asm! ;
+: >resolve ( >mark -- )
+ \ Can't use put-branch because this may be a conditional branch.
+ here over >br-offset over asm@ h# ff000000 land or swap asm!
+;
: <resolve ( <mark -- <mark ) ;
headers