oris
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user