static void roundTo24BitSd(PPCEmuAssembler& a, const PPCEmuAssembler::XmmRegister& reg) { auto maskGp = a.allocGpTmp(); auto maskXmm = a.allocXmmTmp(); auto tmp = a.allocXmmTmp(); a.movq(tmp, reg); a.mov(maskGp, UINT64_C(0x8000000)); a.movq(maskXmm, maskGp); a.pand(tmp, maskXmm); a.mov(maskGp, UINT64_C(0xFFFFFFFFF8000000)); a.movq(maskXmm, maskGp); a.pand(reg, maskXmm); a.paddq(reg, tmp); }