aboutsummaryrefslogtreecommitdiff
path: root/pu2/pu2.out.c
diff options
context:
space:
mode:
authorGravatar moon <moon@coffin.ir> 2025-08-21 22:42:14 +0330
committerGravatar moon <moon@coffin.ir> 2025-08-21 22:42:14 +0330
commitbfc728476d8ac5edc6249ef2f9fa72ea11c7ffd7 (patch)
treed07ed416cd612f72de0977bf9a1643c17e66a773 /pu2/pu2.out.c
parentadded makefile (diff)
added jmp, jnz and jz
Diffstat (limited to 'pu2/pu2.out.c')
-rw-r--r--pu2/pu2.out.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/pu2/pu2.out.c b/pu2/pu2.out.c
index 347e6f4..f35a7ab 100644
--- a/pu2/pu2.out.c
+++ b/pu2/pu2.out.c
@@ -232,8 +232,8 @@ void __attribute__((hot, aligned(64))) pu2() {
M += inst.v;
goto PU2_START;
CB_FIFTEEN:
- // if (unlikely(inst.v == 7)) pc = m[ a ] >> 1;
- if (unlikely(inst.v == a)) goto PU2_START;
+ //if (unlikely(inst.v == 7)) M = M2 + (m[a] >> 1);
+ //if (unlikely(inst.v == a)) goto PU2_START;
m[ inst.v ] = m[ a ];
// asm("mov %1, %0" : "=r"(m[inst.v]) : "r"(m[a]));
goto PU2_START;
@@ -241,14 +241,14 @@ void __attribute__((hot, aligned(64))) pu2() {
// asm("mov %1, %0" : "=r"(a) : "r"(m[inst.v]));
a = m[ inst.v ];
goto PU2_START;
- CB_SEVENTEEN:
- // if (unlikely(a == 7)) pc = inst.v >> 1;
+ CB_SEVENTEEN: // beware, only instruction 17 (cb3) actually updates pc on an assignment to m[7]!
+ if (unlikely(a == 7)) M = M2 + (inst.v >> 1);
// asm("mov %1, %0" : "=r"(m[a]) : "r"(inst.v));
m[ a ] = inst.v;
goto PU2_START;
CB_EIGHTEEN:
- // if (unlikely(a == 7)) pc = m[ inst.v ] >> 1;
- if (unlikely(inst.v == a)) goto PU2_START;
+ //if (unlikely(a == 7)) M = M2 + (m[inst.v] >> 1);
+ //if (unlikely(inst.v == a)) goto PU2_START;
m[ a ] = m[ inst.v ];
// asm("mov %1, %0" : "=r"(m[a]) : "r"(m[inst.v]));
goto PU2_START;