fixed for library use

This commit is contained in:
2026-06-13 13:12:06 -06:00
parent 0c21587e15
commit 5f4c2abec8
3 changed files with 61 additions and 7 deletions
+52 -6
View File
@@ -219,7 +219,6 @@ namespace spider {
}
}
// ── 0x030 — EQ: Dst == Src into Dst ──
void CPU::EQ() {
fetchOperSrc();
fetchOperDst();
@@ -233,7 +232,6 @@ namespace spider {
_dst->_u64 = res ? 1 : 0;
}
// ── 0x031 — NE: Dst != Src into Dst ──
void CPU::NE() {
fetchOperSrc();
fetchOperDst();
@@ -247,7 +245,6 @@ namespace spider {
_dst->_u64 = res ? 1 : 0;
}
// ── 0x032 — GT: Dst > Src into Dst ──
void CPU::GT() {
fetchOperSrc();
fetchOperDst();
@@ -261,7 +258,6 @@ namespace spider {
_dst->_u64 = res ? 1 : 0;
}
// ── 0x033 — GE: Dst >= Src into Dst ──
void CPU::GE() {
fetchOperSrc();
fetchOperDst();
@@ -275,7 +271,6 @@ namespace spider {
_dst->_u64 = res ? 1 : 0;
}
// ── 0x034 — LT: Dst < Src into Dst ──
void CPU::LT() {
fetchOperSrc();
fetchOperDst();
@@ -289,7 +284,6 @@ namespace spider {
_dst->_u64 = res ? 1 : 0;
}
// ── 0x035 — LE: Dst <= Src into Dst ──
void CPU::LE() {
fetchOperSrc();
fetchOperDst();
@@ -303,6 +297,58 @@ namespace spider {
_dst->_u64 = res ? 1 : 0;
}
void CPU::GTU() {
fetchOperSrc();
fetchOperDst();
bool res = false;
switch(_size) {
case 0b00: res = (_dst->_u8 > _src->_u8); break;
case 0b01: res = (_dst->_u16 > _src->_u16); break;
case 0b10: res = (_dst->_u32 > _src->_u32); break;
case 0b11: res = (_dst->_u64 > _src->_u64); break;
}
_dst->_u64 = res ? 1 : 0;
}
void CPU::GEU() {
fetchOperSrc();
fetchOperDst();
bool res = false;
switch(_size) {
case 0b00: res = (_dst->_u8 >= _src->_u8); break;
case 0b01: res = (_dst->_u16 >= _src->_u16); break;
case 0b10: res = (_dst->_u32 >= _src->_u32); break;
case 0b11: res = (_dst->_u64 >= _src->_u64); break;
}
_dst->_u64 = res ? 1 : 0;
}
void CPU::LTU() {
fetchOperSrc();
fetchOperDst();
bool res = false;
switch(_size) {
case 0b00: res = (_dst->_u8 < _src->_u8); break;
case 0b01: res = (_dst->_u16 < _src->_u16); break;
case 0b10: res = (_dst->_u32 < _src->_u32); break;
case 0b11: res = (_dst->_u64 < _src->_u64); break;
}
_dst->_u64 = res ? 1 : 0;
}
void CPU::LEU() {
fetchOperSrc();
fetchOperDst();
bool res = false;
switch(_size) {
case 0b00: res = (_dst->_u8 <= _src->_u8); break;
case 0b01: res = (_dst->_u16 <= _src->_u16); break;
case 0b10: res = (_dst->_u32 <= _src->_u32); break;
case 0b11: res = (_dst->_u64 <= _src->_u64); break;
}
_dst->_u64 = res ? 1 : 0;
}
// ── 0x038 — JMP: Dst -> Instruction Register (PC) ──
// The IR adds 1 at the end, so we subtract 1 to compensate.
void CPU::JMP() {