Cranelift: include return values in instruction pretty print output. (#5489)
This commit is contained in:
@@ -2657,7 +2657,16 @@ impl Inst {
|
||||
}
|
||||
s
|
||||
}
|
||||
&Inst::Ret { .. } => "ret".to_string(),
|
||||
&Inst::Ret { ref rets } => {
|
||||
let mut s = "ret".to_string();
|
||||
for ret in rets {
|
||||
use std::fmt::Write;
|
||||
let preg = pretty_print_reg(ret.preg, &mut empty_allocs);
|
||||
let vreg = pretty_print_reg(ret.vreg, allocs);
|
||||
write!(&mut s, " {}={}", vreg, preg).unwrap();
|
||||
}
|
||||
s
|
||||
}
|
||||
&Inst::AuthenticatedRet { key, is_hint, .. } => {
|
||||
let key = match key {
|
||||
APIKey::A => "a",
|
||||
|
||||
@@ -1406,8 +1406,16 @@ impl Inst {
|
||||
}
|
||||
s
|
||||
}
|
||||
&Inst::Ret { .. } => {
|
||||
format!("ret")
|
||||
&Inst::Ret { ref rets } => {
|
||||
let mut s = "ret".to_string();
|
||||
let mut empty_allocs = AllocationConsumer::default();
|
||||
for ret in rets {
|
||||
use std::fmt::Write;
|
||||
let preg = format_reg(ret.preg, &mut empty_allocs);
|
||||
let vreg = format_reg(ret.vreg, allocs);
|
||||
write!(&mut s, " {}={}", vreg, preg).unwrap();
|
||||
}
|
||||
s
|
||||
}
|
||||
|
||||
&MInst::Extend {
|
||||
|
||||
@@ -3145,9 +3145,16 @@ impl Inst {
|
||||
}
|
||||
s
|
||||
}
|
||||
&Inst::Ret { link, .. } => {
|
||||
&Inst::Ret { link, ref rets } => {
|
||||
debug_assert_eq!(link, gpr(14));
|
||||
format!("br {}", show_reg(link))
|
||||
let mut s = format!("br {}", show_reg(link));
|
||||
for ret in rets {
|
||||
use std::fmt::Write;
|
||||
let preg = pretty_print_reg(ret.preg, &mut empty_allocs);
|
||||
let vreg = pretty_print_reg(ret.vreg, allocs);
|
||||
write!(&mut s, " {}={}", vreg, preg).unwrap();
|
||||
}
|
||||
s
|
||||
}
|
||||
&Inst::Jump { dest } => {
|
||||
let dest = dest.to_string();
|
||||
|
||||
@@ -1537,7 +1537,16 @@ impl PrettyPrint for Inst {
|
||||
s
|
||||
}
|
||||
|
||||
Inst::Ret { .. } => "ret".to_string(),
|
||||
Inst::Ret { rets } => {
|
||||
let mut s = "ret".to_string();
|
||||
for ret in rets {
|
||||
use std::fmt::Write;
|
||||
let preg = regs::show_reg(ret.preg);
|
||||
let vreg = pretty_print_reg(ret.vreg, 8, allocs);
|
||||
write!(&mut s, " {}={}", vreg, preg).unwrap();
|
||||
}
|
||||
s
|
||||
}
|
||||
|
||||
Inst::JmpKnown { dst } => {
|
||||
format!("{} {}", ljustify("jmp".to_string()), dst.to_string())
|
||||
|
||||
Reference in New Issue
Block a user