This commit is contained in:
2026-05-14 16:49:10 +02:00
parent 7c456e50c5
commit 9a2d437b24
3 changed files with 7 additions and 0 deletions
+3
View File
@@ -70,6 +70,9 @@ void broadway::execute(ircolib::u32 instr, mem &mem) {
case 24: // ori ra, rs, uimm case 24: // ori ra, rs, uimm
ori(instr); ori(instr);
break; break;
case 25:
oris(instr);
break;
case 31: case 31:
decode_special(instr, mem); decode_special(instr, mem);
break; break;
+1
View File
@@ -42,6 +42,7 @@ struct broadway {
void addis(ircolib::u32); void addis(ircolib::u32);
void addi(ircolib::u32); void addi(ircolib::u32);
void ori(ircolib::u32); void ori(ircolib::u32);
void oris(ircolib::u32);
void bx(ircolib::u32); void bx(ircolib::u32);
void bcx(ircolib::u32); void bcx(ircolib::u32);
void mtspr(ircolib::u32); void mtspr(ircolib::u32);
+3
View File
@@ -24,6 +24,9 @@ void broadway::addis(ircolib::u32 instr) {
} }
void broadway::ori(ircolib::u32 instr) { gpr[utils::RA(instr)] = gpr[utils::RS(instr)] | utils::UIMM(instr); } void broadway::ori(ircolib::u32 instr) { gpr[utils::RA(instr)] = gpr[utils::RS(instr)] | utils::UIMM(instr); }
void broadway::oris(ircolib::u32 instr) {
gpr[utils::RA(instr)] = gpr[utils::RS(instr)] | ((ircolib::u32)utils::UIMM(instr) << 16);
}
void broadway::bx(ircolib::u32 instr) { void broadway::bx(ircolib::u32 instr) {
const bool link = instr & 1; const bool link = instr & 1;