diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/macro/macro_jit_x64.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/video_core/macro/macro_jit_x64.cpp b/src/video_core/macro/macro_jit_x64.cpp index 63e7ca416..4eef342ec 100644 --- a/src/video_core/macro/macro_jit_x64.cpp +++ b/src/video_core/macro/macro_jit_x64.cpp | |||
| @@ -239,10 +239,10 @@ void MacroJITx64Impl::Compile_ExtractInsert(Macro::Opcode opcode) { | |||
| 239 | } | 239 | } |
| 240 | 240 | ||
| 241 | void MacroJITx64Impl::Compile_ExtractShiftLeftImmediate(Macro::Opcode opcode) { | 241 | void MacroJITx64Impl::Compile_ExtractShiftLeftImmediate(Macro::Opcode opcode) { |
| 242 | auto dst = Compile_GetRegister(opcode.src_a, eax); | 242 | const auto dst = Compile_GetRegister(opcode.src_a, eax); |
| 243 | auto src = Compile_GetRegister(opcode.src_b, RESULT); | 243 | const auto src = Compile_GetRegister(opcode.src_b, RESULT); |
| 244 | 244 | ||
| 245 | shr(src, al); | 245 | shr(src, dst.cvt8()); |
| 246 | if (opcode.bf_size != 0 && opcode.bf_size != 31) { | 246 | if (opcode.bf_size != 0 && opcode.bf_size != 31) { |
| 247 | and_(src, opcode.GetBitfieldMask()); | 247 | and_(src, opcode.GetBitfieldMask()); |
| 248 | } else if (opcode.bf_size == 0) { | 248 | } else if (opcode.bf_size == 0) { |
| @@ -258,8 +258,8 @@ void MacroJITx64Impl::Compile_ExtractShiftLeftImmediate(Macro::Opcode opcode) { | |||
| 258 | } | 258 | } |
| 259 | 259 | ||
| 260 | void MacroJITx64Impl::Compile_ExtractShiftLeftRegister(Macro::Opcode opcode) { | 260 | void MacroJITx64Impl::Compile_ExtractShiftLeftRegister(Macro::Opcode opcode) { |
| 261 | auto dst = Compile_GetRegister(opcode.src_a, eax); | 261 | const auto dst = Compile_GetRegister(opcode.src_a, eax); |
| 262 | auto src = Compile_GetRegister(opcode.src_b, RESULT); | 262 | const auto src = Compile_GetRegister(opcode.src_b, RESULT); |
| 263 | 263 | ||
| 264 | if (opcode.bf_src_bit != 0) { | 264 | if (opcode.bf_src_bit != 0) { |
| 265 | shr(src, opcode.bf_src_bit); | 265 | shr(src, opcode.bf_src_bit); |
| @@ -268,7 +268,8 @@ void MacroJITx64Impl::Compile_ExtractShiftLeftRegister(Macro::Opcode opcode) { | |||
| 268 | if (opcode.bf_size != 31) { | 268 | if (opcode.bf_size != 31) { |
| 269 | and_(src, opcode.GetBitfieldMask()); | 269 | and_(src, opcode.GetBitfieldMask()); |
| 270 | } | 270 | } |
| 271 | shl(src, al); | 271 | shl(src, dst.cvt8()); |
| 272 | |||
| 272 | Compile_ProcessResult(opcode.result_operation, opcode.dst); | 273 | Compile_ProcessResult(opcode.result_operation, opcode.dst); |
| 273 | } | 274 | } |
| 274 | 275 | ||