mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
Fix various bugs in bbranch and b?branch implementations (Mark Cave-Ayland)
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@485 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
@@ -438,12 +438,16 @@ defer fcode-c@ \ get byte
|
||||
\ Unconditional branch FCode. Followed by FCode-offset.
|
||||
|
||||
: bbranch
|
||||
['] dobranch ,
|
||||
fcode-offset 0< if \ if we jump backwards, we can forsee where it goes
|
||||
['] dobranch ,
|
||||
swap
|
||||
resolve-dest
|
||||
execute-tmp-comp
|
||||
else
|
||||
setup-tmp-comp ['] dobranch ,
|
||||
here
|
||||
0 ,
|
||||
swap
|
||||
then
|
||||
; immediate
|
||||
|
||||
@@ -453,7 +457,8 @@ defer fcode-c@ \ get byte
|
||||
|
||||
: b?branch
|
||||
fcode-offset 0< if \ if we jump backwards, we can forsee where it goes
|
||||
resolve-orig
|
||||
['] do?branch ,
|
||||
resolve-dest
|
||||
execute-tmp-comp
|
||||
else
|
||||
setup-tmp-comp ['] do?branch ,
|
||||
@@ -468,10 +473,7 @@ defer fcode-c@ \ get byte
|
||||
|
||||
: b(<mark)
|
||||
setup-tmp-comp
|
||||
['] invert ,
|
||||
['] do?branch ,
|
||||
here
|
||||
0 ,
|
||||
; immediate
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user