mullw.
This commit is contained in:
parent
e29de199ff
commit
9f3f5d2c0e
|
@ -309,7 +309,6 @@ XEEMITTER(mulli, 0x1C000000, D )(X64Emitter& e, X86Compiler& c, InstrDat
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
XEEMITTER(mullwx, 0x7C0001D6, XO )(X64Emitter& e, X86Compiler& c, InstrData& i) {
|
XEEMITTER(mullwx, 0x7C0001D6, XO )(X64Emitter& e, X86Compiler& c, InstrData& i) {
|
||||||
// RT <- (RA)[32:63] × (RB)[32:63]
|
// RT <- (RA)[32:63] × (RB)[32:63]
|
||||||
|
|
||||||
|
@ -319,19 +318,20 @@ XEEMITTER(mullwx, 0x7C0001D6, XO )(X64Emitter& e, X86Compiler& c, InstrDat
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
jit_value_t v = jit_insn_mul(
|
GpVar v_0(c.newGpVar());
|
||||||
f, e.sign_extend(e.gpr_value(i.XO.RA), jit_type_nint),
|
GpVar v_1(c.newGpVar());
|
||||||
e.sign_extend(e.gpr_value(i.XO.RB), jit_type_nint));
|
c.mov(v_0.r32(), e.gpr_value(i.XO.RA).r32());
|
||||||
e.update_gpr_value(i.XO.RT, v);
|
c.mov(v_1.r32(), e.gpr_value(i.XO.RB).r32());
|
||||||
|
c.imul(v_0.r64(), v_1.r64());
|
||||||
|
e.update_gpr_value(i.XO.RT, v_0);
|
||||||
|
|
||||||
if (i.XO.Rc) {
|
if (i.XO.Rc) {
|
||||||
// With cr0 update.
|
// With cr0 update.
|
||||||
e.update_cr_with_cond(0, v);
|
e.update_cr_with_cond(0, v_0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
XEEMITTER(negx, 0x7C0000D0, XO )(X64Emitter& e, X86Compiler& c, InstrData& i) {
|
XEEMITTER(negx, 0x7C0000D0, XO )(X64Emitter& e, X86Compiler& c, InstrData& i) {
|
||||||
// RT <- ¬(RA) + 1
|
// RT <- ¬(RA) + 1
|
||||||
|
@ -1083,7 +1083,7 @@ void X64RegisterEmitCategoryALU() {
|
||||||
XEREGISTERINSTR(mulhwux, 0x7C000016);
|
XEREGISTERINSTR(mulhwux, 0x7C000016);
|
||||||
XEREGISTERINSTR(mulldx, 0x7C0001D2);
|
XEREGISTERINSTR(mulldx, 0x7C0001D2);
|
||||||
XEREGISTERINSTR(mulli, 0x1C000000);
|
XEREGISTERINSTR(mulli, 0x1C000000);
|
||||||
// XEREGISTERINSTR(mullwx, 0x7C0001D6);
|
XEREGISTERINSTR(mullwx, 0x7C0001D6);
|
||||||
XEREGISTERINSTR(negx, 0x7C0000D0);
|
XEREGISTERINSTR(negx, 0x7C0000D0);
|
||||||
XEREGISTERINSTR(subfx, 0x7C000050);
|
XEREGISTERINSTR(subfx, 0x7C000050);
|
||||||
XEREGISTERINSTR(subfcx, 0x7C000010);
|
XEREGISTERINSTR(subfcx, 0x7C000010);
|
||||||
|
|
Loading…
Reference in New Issue