* fix issue 5497. * fix issue 5524 * fix issue 5497 5524 5526. * some clif change because of reg alloc.
This commit is contained in:
@@ -1606,12 +1606,11 @@ impl MachInstEmit for Inst {
|
||||
val: &ValueRegs<Reg>,
|
||||
sink: &mut MachBuffer<Inst>,
|
||||
state: &mut EmitState| {
|
||||
let ty = if ty.bits() == 128 { I64 } else { ty };
|
||||
let mut insts = SmallInstVec::new();
|
||||
insts.push(Inst::Mov {
|
||||
rd: dst[0],
|
||||
rm: val.regs()[0],
|
||||
ty,
|
||||
ty: I64,
|
||||
});
|
||||
if ty.bits() == 128 {
|
||||
insts.push(Inst::Mov {
|
||||
|
||||
@@ -464,7 +464,9 @@ fn riscv64_get_operands<F: Fn(VReg) -> VReg>(inst: &Inst, collector: &mut Operan
|
||||
collector.reg_use(condition);
|
||||
collector.reg_uses(x.regs());
|
||||
collector.reg_uses(y.regs());
|
||||
collector.reg_defs(&dst[..]);
|
||||
for d in dst.iter() {
|
||||
collector.reg_early_def(d.clone());
|
||||
}
|
||||
}
|
||||
&Inst::ReferenceCheck { rd, x, .. } => {
|
||||
collector.reg_use(x);
|
||||
@@ -491,7 +493,9 @@ fn riscv64_get_operands<F: Fn(VReg) -> VReg>(inst: &Inst, collector: &mut Operan
|
||||
} => {
|
||||
collector.reg_uses(x.regs());
|
||||
collector.reg_uses(y.regs());
|
||||
collector.reg_defs(&dst[..]);
|
||||
for d in dst.iter() {
|
||||
collector.reg_early_def(d.clone());
|
||||
}
|
||||
}
|
||||
|
||||
&Inst::Csr { rd, rs, .. } => {
|
||||
@@ -534,7 +538,7 @@ fn riscv64_get_operands<F: Fn(VReg) -> VReg>(inst: &Inst, collector: &mut Operan
|
||||
collector.reg_use(test);
|
||||
collector.reg_uses(x.regs());
|
||||
collector.reg_uses(y.regs());
|
||||
rd.iter().for_each(|r| collector.reg_def(*r));
|
||||
rd.iter().for_each(|r| collector.reg_early_def(*r));
|
||||
}
|
||||
&Inst::RawData { .. } => {}
|
||||
&Inst::AtomicStore { src, p, .. } => {
|
||||
|
||||
Reference in New Issue
Block a user