[PPC] Implement `vaddcuw`
I don't know of any title that utilizes this instruction, but I went ahead and implemented it for completeness. Verified the implementation with `instr__gen_vaddcuw` from #1348. Can be grabbed with: ``` git checkout origin/gen_tests -- src\xenia\cpu\ppc\testing\*vaddcuw.s ```
This commit is contained in:
parent
ed64e3072b
commit
93b77fb775
|
@ -358,8 +358,13 @@ int InstrEmit_mtvscr(PPCHIRBuilder& f, const InstrData& i) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int InstrEmit_vaddcuw(PPCHIRBuilder& f, const InstrData& i) {
|
int InstrEmit_vaddcuw(PPCHIRBuilder& f, const InstrData& i) {
|
||||||
XEINSTRNOTIMPLEMENTED();
|
Value* sum = f.VectorAdd(f.LoadVR(i.VX.VA), f.LoadVR(i.VX.VB), INT32_TYPE,
|
||||||
return 1;
|
ARITHMETIC_UNSIGNED);
|
||||||
|
Value* overflow = f.VectorCompareUGT(f.LoadVR(i.VX.VA), sum, INT32_TYPE);
|
||||||
|
Value* carry =
|
||||||
|
f.VectorShr(overflow, f.LoadConstantVec128(vec128i(31)), INT32_TYPE);
|
||||||
|
f.StoreVR(i.VX.VD, carry);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int InstrEmit_vaddfp_(PPCHIRBuilder& f, uint32_t vd, uint32_t va, uint32_t vb) {
|
int InstrEmit_vaddfp_(PPCHIRBuilder& f, uint32_t vd, uint32_t va, uint32_t vb) {
|
||||||
|
|
Loading…
Reference in New Issue