commit bf1815b8e5eeec0311935b717d96753244f4aa65
parent d6fdd2977e6803dd7fd95d08d5837b1f0de76679
Author: Virgil Dupras <hsoft@hardcoded.net>
Date: Sun, 2 Jul 2023 15:12:03 -0400
hal i386: fix bug with <<, <>) and +)
ar/ungz tests now pass! emul/uxn is the new roadblock...
Diffstat:
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/fs/tests/hal.fs b/fs/tests/hal.fs
@@ -289,9 +289,9 @@ code test31 ( a b -- r q ) \ a / b
5 2 test31 2 #eq 1 #eq
-\ <<, and <>)
+\ <<, <>) and +)
code test32 ( a b -- a<<b )
- PSP) <>) <<, drop, exit,
+ dup, PSP) 4 +) <>) <<, 2drop, exit,
$2a 4 test32 $2a0 #eq
diff --git a/fs/xcomp/i386/kernel.fs b/fs/xcomp/i386/kernel.fs
@@ -487,8 +487,7 @@ pc to L1 ( operand -- ) \ dx=SHL/SHR regid
xdup, 3 cx al modrm!,
dx push, wcall, !, dx pop, \ mov cx, dst
0 al reg!, al dl or,
- $d3 i) cwrite, al cwrite,
- xdrop, ret, forward!
+ $d3 i) cwrite, lblmodrmwr absjmp, forward!
xdup, cx al reg!, \ target CX
dx push, wcall, @, dx pop,
\ mod becomes 3, reg moves to rm and DL is orred into modrm