mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2026-01-07 15:08:22 +01:00
VFP: Implement VNMUL, VDIV
This commit is contained in:
parent
12e7f2c359
commit
3f1345a1a5
8 changed files with 101 additions and 2 deletions
|
|
@ -1148,6 +1148,22 @@ void EmitX64::EmitFPAbs64(IR::Block&, IR::Inst* inst) {
|
|||
code->PAND(result, routines->MFloatNonSignMask64());
|
||||
}
|
||||
|
||||
void EmitX64::EmitFPNeg32(IR::Block&, IR::Inst* inst) {
|
||||
IR::Value a = inst->GetArg(0);
|
||||
|
||||
X64Reg result = reg_alloc.UseDefRegister(a, inst, any_xmm);
|
||||
|
||||
code->PXOR(result, routines->MFloatNegativeZero32());
|
||||
}
|
||||
|
||||
void EmitX64::EmitFPNeg64(IR::Block&, IR::Inst* inst) {
|
||||
IR::Value a = inst->GetArg(0);
|
||||
|
||||
X64Reg result = reg_alloc.UseDefRegister(a, inst, any_xmm);
|
||||
|
||||
code->PXOR(result, routines->MFloatNegativeZero64());
|
||||
}
|
||||
|
||||
void EmitX64::EmitFPAdd32(IR::Block& block, IR::Inst* inst) {
|
||||
FPOp32(code, routines, reg_alloc, block, inst, &XEmitter::ADDSS);
|
||||
}
|
||||
|
|
@ -1156,6 +1172,14 @@ void EmitX64::EmitFPAdd64(IR::Block& block, IR::Inst* inst) {
|
|||
FPOp64(code, routines, reg_alloc, block, inst, &XEmitter::ADDSD);
|
||||
}
|
||||
|
||||
void EmitX64::EmitFPDiv32(IR::Block& block, IR::Inst* inst) {
|
||||
FPOp32(code, routines, reg_alloc, block, inst, &XEmitter::DIVSS);
|
||||
}
|
||||
|
||||
void EmitX64::EmitFPDiv64(IR::Block& block, IR::Inst* inst) {
|
||||
FPOp64(code, routines, reg_alloc, block, inst, &XEmitter::DIVSD);
|
||||
}
|
||||
|
||||
void EmitX64::EmitFPMul32(IR::Block& block, IR::Inst* inst) {
|
||||
FPOp32(code, routines, reg_alloc, block, inst, &XEmitter::MULSS);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue