Minor fix
This commit is contained in:
parent
43cb808c14
commit
5052f260e2
|
@ -826,20 +826,23 @@ impl Ins {
|
||||||
F: AsmFormatter<W>,
|
F: AsmFormatter<W>,
|
||||||
W: Write,
|
W: Write,
|
||||||
{
|
{
|
||||||
let name = match self.op {
|
if self.op == Opcode::Mfspr {
|
||||||
Opcode::Mfspr => match self.spr() {
|
match self.spr() {
|
||||||
1 => return write_asm!(out, self => { "mfxer": mnemonic; s: gpr }),
|
1 => return write_asm!(out, self => { "mfxer": mnemonic; s: gpr }),
|
||||||
8 => return write_asm!(out, self => { "mflr": mnemonic; s: gpr }),
|
8 => return write_asm!(out, self => { "mflr": mnemonic; s: gpr }),
|
||||||
9 => return write_asm!(out, self => { "mfctr": mnemonic; s: gpr }),
|
9 => return write_asm!(out, self => { "mfctr": mnemonic; s: gpr }),
|
||||||
18 => return write_asm!(out, self => { "mfdsisr": mnemonic; s: gpr }),
|
18 => return write_asm!(out, self => { "mfdsisr": mnemonic; s: gpr }),
|
||||||
397 => return write_asm!(out, self => { "mfdbatu": mnemonic; s: gpr }),
|
397 => return write_asm!(out, self => { "mfdbatu": mnemonic; s: gpr }),
|
||||||
571 => return write_asm!(out, self => { "mftdu": mnemonic; s: gpr }),
|
571 => return write_asm!(out, self => { "mftdu": mnemonic; s: gpr }),
|
||||||
_ => "mfspr",
|
_ => (),
|
||||||
},
|
};
|
||||||
Opcode::Mftb => "mftb",
|
}
|
||||||
_ => disasm_unreachable!(self.code),
|
out.write_mnemonic(self.op.mnemonic())?;
|
||||||
};
|
out.write_opcode_separator()?;
|
||||||
write!(out.writer(), "{} r{}, {}", name, self.d(), self.spr())
|
out.write_gpr(self.d())?;
|
||||||
|
out.write_operand_separator()?;
|
||||||
|
write!(out.writer(), "{:#x}", self.spr())?;
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_asm_form_spr_reg1<F, W>(&self, out: &mut F) -> std::io::Result<()>
|
fn write_asm_form_spr_reg1<F, W>(&self, out: &mut F) -> std::io::Result<()>
|
||||||
|
@ -847,19 +850,23 @@ impl Ins {
|
||||||
F: AsmFormatter<W>,
|
F: AsmFormatter<W>,
|
||||||
W: Write,
|
W: Write,
|
||||||
{
|
{
|
||||||
let name = match self.op {
|
if self.op == Opcode::Mtspr {
|
||||||
Opcode::Mtspr => match self.spr() {
|
match self.spr() {
|
||||||
1 => return write_asm!(out, self => { "mtxer": mnemonic; s: gpr }),
|
1 => return write_asm!(out, self => { "mtxer": mnemonic; s: gpr }),
|
||||||
8 => return write_asm!(out, self => { "mtlr": mnemonic; s: gpr }),
|
8 => return write_asm!(out, self => { "mtlr": mnemonic; s: gpr }),
|
||||||
9 => return write_asm!(out, self => { "mtctr": mnemonic; s: gpr }),
|
9 => return write_asm!(out, self => { "mtctr": mnemonic; s: gpr }),
|
||||||
18 => return write_asm!(out, self => { "mtdsisr": mnemonic; s: gpr }),
|
18 => return write_asm!(out, self => { "mtdsisr": mnemonic; s: gpr }),
|
||||||
397 => return write_asm!(out, self => { "mtdbatu": mnemonic; s: gpr }),
|
397 => return write_asm!(out, self => { "mtdbatu": mnemonic; s: gpr }),
|
||||||
571 => return write_asm!(out, self => { "mttdu": mnemonic; s: gpr }),
|
571 => return write_asm!(out, self => { "mttdu": mnemonic; s: gpr }),
|
||||||
_ => "mtspr",
|
_ => (),
|
||||||
},
|
};
|
||||||
_ => disasm_unreachable!(self.code),
|
}
|
||||||
};
|
out.write_mnemonic(self.op.mnemonic())?;
|
||||||
write!(out.writer(), "{} {:#x}, r{}", name, self.spr(), self.s())
|
out.write_opcode_separator()?;
|
||||||
|
write!(out.writer(), "{:#x}", self.spr())?;
|
||||||
|
out.write_operand_separator()?;
|
||||||
|
out.write_gpr(self.s())?;
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_asm_form_reg1_sr<F, W>(&self, out: &mut F) -> std::io::Result<()>
|
fn write_asm_form_reg1_sr<F, W>(&self, out: &mut F) -> std::io::Result<()>
|
||||||
|
@ -870,8 +877,11 @@ impl Ins {
|
||||||
write_asm!(out, self => {
|
write_asm!(out, self => {
|
||||||
(op.mnemonic): mnemonic;
|
(op.mnemonic): mnemonic;
|
||||||
d: gpr;
|
d: gpr;
|
||||||
sr: uimm;
|
})?;
|
||||||
})
|
// TODO ugly
|
||||||
|
out.write_operand_separator()?;
|
||||||
|
write!(out.writer(), "{:#x}", self.s())?;
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_asm_form_sr_reg1<F, W>(&self, out: &mut F) -> std::io::Result<()>
|
fn write_asm_form_sr_reg1<F, W>(&self, out: &mut F) -> std::io::Result<()>
|
||||||
|
|
Loading…
Reference in New Issue