diff options
| author | Kai Gunger <kgunger12@gmail.com> | 2026-07-08 02:43:52 -0400 |
|---|---|---|
| committer | Kai Gunger <kgunger12@gmail.com> | 2026-07-08 02:43:52 -0400 |
| commit | f0f441ed214e72980db254d3f5b238ec17c42420 (patch) | |
| tree | d4076317089272cfa46b76611e50b255a955c30f | |
| parent | b45c3e6a23f659d62e02ad420f7cecd86ff07df5 (diff) | |
[tnslc] issue with cmov, cset
| -rw-r--r-- | tnslc/compile/var.tnsl | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/tnslc/compile/var.tnsl b/tnslc/compile/var.tnsl index 4735021..d12a85c 100644 --- a/tnslc/compile/var.tnsl +++ b/tnslc/compile/var.tnsl @@ -1817,12 +1817,13 @@ struct Var { /; cmov (~CompBuf buf, ~Var a, ~Var b, ~uint8 cc) - buf`.add_c(" cmp \0") + ~uint8 b_str = b`._set_prim_r(buf, a) ~uint8 a_str = a`._set_prim_l(buf) + + buf`.add_c(" cmp \0") buf`.add_c(a_str) _delete(a_str) buf`.add_c(", \0") - ~uint8 b_str = b`._set_prim_r(buf, a) buf`.add_c(b_str) _delete(b_str) buf`.add_c("\n\0") @@ -1833,17 +1834,16 @@ struct Var { buf`.add_c(cc) buf`.add_c(" ax, cx ; Compare set\n\0") - ~uint8 to_str = self._set_prim_l(buf) - Var ax = self.copy() ax.loc = 1 - buf`.add_c(" mov \0") + ~uint8 ax_str = ax._set_prim_r(buf, ~self) ~uint8 to_str = self._set_prim_l(buf) + + buf`.add_c(" mov \0") buf`.add_c(to_str) _delete(to_str) buf`.add_c(", \0") - ~uint8 ax_str = ax._set_prim_r(buf, ~self) buf`.add_c(ax_str) _delete(ax_str) buf`.add_c(" ; Mov after compare\n\0") @@ -1856,17 +1856,16 @@ struct Var { buf`.add_c(cc) buf`.add_c(" ax, cx ; Compare set\n\0") - ~uint8 to_str = self._set_prim_l(buf) - Var ax = self.copy() ax.loc = 1 - buf`.add_c(" mov \0") + ~uint8 ax_str = ax._set_prim_r(buf, ~self) ~uint8 to_str = self._set_prim_l(buf) - buf`.add_c(to_str)scope + + buf`.add_c(" mov \0") + buf`.add_c(to_str) _delete(to_str) buf`.add_c(", \0") - ~uint8 ax_str = ax._set_prim_r(buf, ~self) buf`.add_c(ax_str) _delete(ax_str) buf`.add_c(" ; Mov after compare\n\0") |