getting floating point stuff now
This commit is contained in:
+15
-12
@@ -31,7 +31,7 @@ ircolib::u32 broadway::fetch(mem &mem) {
|
||||
void broadway::decode_special2(ircolib::u32 instr, mem &mem) {
|
||||
auto secondary = utils::secondary(instr);
|
||||
switch (secondary) {
|
||||
case 0x0D2: // mtsr
|
||||
case 0x0D2:
|
||||
ircolib::warn("broadway TODO mtsr (pc 0x{:08X})", pc - 4);
|
||||
break;
|
||||
case 0x153:
|
||||
@@ -66,19 +66,19 @@ void broadway::decode_special1(ircolib::u32 instr, mem &mem) {
|
||||
|
||||
void broadway::execute(ircolib::u32 instr, mem &mem) {
|
||||
switch (utils::primary(instr)) {
|
||||
case 11: // cmpi crfD, L, rA, simm
|
||||
case 11:
|
||||
cmpi(instr);
|
||||
break;
|
||||
case 14: // addi rd, ra, simm
|
||||
case 14:
|
||||
addi(instr);
|
||||
break;
|
||||
case 15: // addis rd, ra, simm
|
||||
case 15:
|
||||
addis(instr);
|
||||
break;
|
||||
case 16: // bcx BO, BI, target
|
||||
case 16:
|
||||
bcx(instr);
|
||||
break;
|
||||
case 18: // bx target
|
||||
case 18:
|
||||
bx(instr);
|
||||
break;
|
||||
case 19:
|
||||
@@ -87,7 +87,7 @@ void broadway::execute(ircolib::u32 instr, mem &mem) {
|
||||
case 21:
|
||||
rlwinm(instr);
|
||||
break;
|
||||
case 24: // ori ra, rs, uimm
|
||||
case 24:
|
||||
ori(instr);
|
||||
break;
|
||||
case 25:
|
||||
@@ -99,21 +99,24 @@ void broadway::execute(ircolib::u32 instr, mem &mem) {
|
||||
case 31:
|
||||
decode_special2(instr, mem);
|
||||
break;
|
||||
case 32: // lwz rd, d(ra)
|
||||
case 32:
|
||||
lwz(instr, mem);
|
||||
break;
|
||||
case 33: // lwz rd, d(ra)
|
||||
case 33:
|
||||
lwzu(instr, mem);
|
||||
break;
|
||||
case 36: // stw rs, d(ra)
|
||||
case 36:
|
||||
stw(instr, mem);
|
||||
break;
|
||||
case 37: // stwu rs, d(ra)
|
||||
case 37:
|
||||
stwu(instr, mem);
|
||||
break;
|
||||
case 44: // stwu rs, d(ra)
|
||||
case 44:
|
||||
sth(instr, mem);
|
||||
break;
|
||||
case 50:
|
||||
lfd(instr, mem);
|
||||
break;
|
||||
default:
|
||||
std::println("broadway::execute unimplemented instruction 0x{:08X} / 0b{:032b}", instr, instr);
|
||||
std::println("disassembly:");
|
||||
|
||||
Reference in New Issue
Block a user