Browse Source

Shader JIT: Fix float to integer rounding in MOVA

MOVA converts new address register values from floats to integers using truncation
nce_cpp
aroulin 10 years ago
parent
commit
2c48cd4b6c
  1. 4
      src/video_core/shader/shader_jit_x64.cpp

4
src/video_core/shader/shader_jit_x64.cpp

@ -485,8 +485,8 @@ void JitCompiler::Compile_MOVA(Instruction instr) {
Compile_SwizzleSrc(instr, 1, instr.common.src1, SRC1); Compile_SwizzleSrc(instr, 1, instr.common.src1, SRC1);
// Convert floats to integers (only care about X and Y components)
CVTPS2DQ(SRC1, R(SRC1));
// Convert floats to integers using truncation (only care about X and Y components)
CVTTPS2DQ(SRC1, R(SRC1));
// Get result // Get result
MOVQ_xmm(R(RAX), SRC1); MOVQ_xmm(R(RAX), SRC1);

Loading…
Cancel
Save