diff options
Diffstat (limited to 'tnslc/compile/var.tnsl')
| -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") |