summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2022-01-19 15:59:18 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2022-01-19 15:59:18 -0400
commit7db02ebda036a8a24df0c17f071c95da33325434 (patch)
tree206e03adbeb7d329143aedf770c1a4cfa99ff1f8
parentee6b0d373c479e7ba8c32863c32f0cf39d1a4c5b (diff)
sux.h: Add bitmask for unconditional jumps.
-rw-r--r--sux.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sux.h b/sux.h
index adbb5a8..1eaaffe 100644
--- a/sux.h
+++ b/sux.h
@@ -1829,6 +1829,7 @@ static /*inline*/ void inst_##op(struct sux *cpu, uint8_t prefix, uint8_t size,
t(0, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000001, 0x00000000, 0x00000000, 0x00000000) { *reg = pull(cpu, rs, thread); } /* Pull value off the stack. */ \
t(0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00010000, 0x00000000, 0x00000000) { cpu->pc = pull(cpu, (rs) ? rs : 7, thread); } /* Pull return address off the stack. */ \
i t(7, 0x00000000, 0x10000000, 0x00000000, 0x00000000, 0x00000200, 0x00000001, 0x00010000, 0x00000000) { push(cpu, cpu->pc, (rs) ? rs : 7, thread); } /* Push return address onto the stack. */ \
+ t(7, 0x00001000, 0x10000000, 0x00000000, 0x00000000, 0x00000200, 0x00000001, 0x00010001, 0x00010000) { cpu->pc = addr; } /* Set program counter to supplied address. */ \
t(7, 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004200, 0x00000000, 0x00000000, 0x00000000) { push(cpu, *reg, rs, thread); } /* Push value onto the stack. */ \
}