Improve CRBit display
This commit is contained in:
parent
94c87b0912
commit
ca92a30920
|
@ -108,7 +108,18 @@ field_arg!(SPR, u16);
|
||||||
// Condition register field.
|
// Condition register field.
|
||||||
field_arg!(CRField, u8, "cr{}");
|
field_arg!(CRField, u8, "cr{}");
|
||||||
// Condition register bit (index + condition case).
|
// Condition register bit (index + condition case).
|
||||||
field_arg!(CRBit, u8, "{}");
|
field_arg_no_display!(CRBit, u8);
|
||||||
|
impl Display for CRBit {
|
||||||
|
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||||
|
let cr = self.0 >> 2;
|
||||||
|
let cc = self.0 & 3;
|
||||||
|
if cr != 0 {
|
||||||
|
write!(f, "4*{}+", CRField(cr))?;
|
||||||
|
}
|
||||||
|
const CR_NAMES: [&str; 4] = ["lt", "gt", "eq", "so"];
|
||||||
|
f.write_str(CR_NAMES[cc as usize])
|
||||||
|
}
|
||||||
|
}
|
||||||
// Paired-single graphics quantization register
|
// Paired-single graphics quantization register
|
||||||
field_arg!(GQR, u8, "qr{}");
|
field_arg!(GQR, u8, "qr{}");
|
||||||
// Unsigned immediate.
|
// Unsigned immediate.
|
||||||
|
|
|
@ -149,11 +149,10 @@ fn test_ins_cmp() {
|
||||||
assert_asm!(0x7C030000, "cmpw r3, r0");
|
assert_asm!(0x7C030000, "cmpw r3, r0");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_ins_cmpi() {
|
fn test_ins_cmpi() {
|
||||||
assert_asm!(0x2C050D00, "cmpwi r5, 0xd00");
|
assert_asm!(0x2C050D00, "cmpwi r5, 0xd00");
|
||||||
assert_asm!(0x2F1F0000, "cmpwi cr6, r31, 0");
|
assert_asm!(0x2F1F0000, "cmpwi cr6, r31, 0x0");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -166,7 +165,6 @@ fn test_ins_cmpli() {
|
||||||
assert_asm!(0x2803FFF3, "cmplwi r3, 0xfff3");
|
assert_asm!(0x2803FFF3, "cmplwi r3, 0xfff3");
|
||||||
assert_asm!(0x2884F8F0, "cmplwi cr1, r4, 0xf8f0");
|
assert_asm!(0x2884F8F0, "cmplwi cr1, r4, 0xf8f0");
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_ins_cntlzw() {
|
fn test_ins_cntlzw() {
|
||||||
|
@ -175,7 +173,7 @@ fn test_ins_cntlzw() {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_ins_cror() {
|
fn test_ins_cror() {
|
||||||
assert_asm!(0x4C411382, "cror 2, 1, 2");
|
assert_asm!(0x4C411382, "cror eq, gt, eq");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -516,14 +514,14 @@ fn test_ins_mtcrf() {
|
||||||
assert_asm!(0x7C6FF120, "mtcrf 255, r3");
|
assert_asm!(0x7C6FF120, "mtcrf 255, r3");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_ins_mtfsb0() {}
|
fn test_ins_mtfsb0() {
|
||||||
*/
|
assert_asm!(0xFFA0008C, "mtfsb0 4*cr7+gt")
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_ins_mtfsb1() {
|
fn test_ins_mtfsb1() {
|
||||||
assert_asm!(0xFFA0004C, "mtfsb1 29");
|
assert_asm!(0xFFA0004C, "mtfsb1 4*cr7+gt");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
Loading…
Reference in New Issue