diff options
| author | 2018-04-26 23:21:17 -0400 | |
|---|---|---|
| committer | 2018-04-28 20:03:18 -0400 | |
| commit | a7b5ab4d9a275c6a16c5a7fdb2fd39827922eb61 (patch) | |
| tree | 9400796903971ac3c113c87ad5502a3baaf9e40a /src | |
| parent | Merge pull request #414 from lioncash/cruft (diff) | |
| download | yuzu-a7b5ab4d9a275c6a16c5a7fdb2fd39827922eb61.tar.gz yuzu-a7b5ab4d9a275c6a16c5a7fdb2fd39827922eb61.tar.xz yuzu-a7b5ab4d9a275c6a16c5a7fdb2fd39827922eb61.zip | |
gl_shader_decompiler: Implement MOV32_IMM instruction.
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/engines/shader_bytecode.h | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index f3ca30cfa..fba9ab496 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h | |||
| @@ -290,7 +290,7 @@ public: | |||
| 290 | MOV_C, | 290 | MOV_C, |
| 291 | MOV_R, | 291 | MOV_R, |
| 292 | MOV_IMM, | 292 | MOV_IMM, |
| 293 | MOV32I, | 293 | MOV32_IMM, |
| 294 | SHR_C, | 294 | SHR_C, |
| 295 | SHR_R, | 295 | SHR_R, |
| 296 | SHR_IMM, | 296 | SHR_IMM, |
| @@ -445,7 +445,7 @@ private: | |||
| 445 | INST("0100110010011---", Id::MOV_C, Type::Arithmetic, "MOV_C"), | 445 | INST("0100110010011---", Id::MOV_C, Type::Arithmetic, "MOV_C"), |
| 446 | INST("0101110010011---", Id::MOV_R, Type::Arithmetic, "MOV_R"), | 446 | INST("0101110010011---", Id::MOV_R, Type::Arithmetic, "MOV_R"), |
| 447 | INST("0011100-10011---", Id::MOV_IMM, Type::Arithmetic, "MOV_IMM"), | 447 | INST("0011100-10011---", Id::MOV_IMM, Type::Arithmetic, "MOV_IMM"), |
| 448 | INST("000000010000----", Id::MOV32I, Type::Arithmetic, "MOV32I"), | 448 | INST("000000010000----", Id::MOV32_IMM, Type::Arithmetic, "MOV32_IMM"), |
| 449 | INST("0100110000101---", Id::SHR_C, Type::Arithmetic, "SHR_C"), | 449 | INST("0100110000101---", Id::SHR_C, Type::Arithmetic, "SHR_C"), |
| 450 | INST("0101110000101---", Id::SHR_R, Type::Arithmetic, "SHR_R"), | 450 | INST("0101110000101---", Id::SHR_R, Type::Arithmetic, "SHR_R"), |
| 451 | INST("0011100-00101---", Id::SHR_IMM, Type::Arithmetic, "SHR_IMM"), | 451 | INST("0011100-00101---", Id::SHR_IMM, Type::Arithmetic, "SHR_IMM"), |
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 8b235e252..647da4eb0 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -620,6 +620,11 @@ private: | |||
| 620 | } | 620 | } |
| 621 | 621 | ||
| 622 | switch (opcode->GetId()) { | 622 | switch (opcode->GetId()) { |
| 623 | case OpCode::Id::MOV32_IMM: { | ||
| 624 | // mov32i doesn't have abs or neg bits. | ||
| 625 | regs.SetRegisterToFloat(instr.gpr0, 0, GetImmediate32(instr), 1, 1); | ||
| 626 | break; | ||
| 627 | } | ||
| 623 | case OpCode::Id::FMUL_C: | 628 | case OpCode::Id::FMUL_C: |
| 624 | case OpCode::Id::FMUL_R: | 629 | case OpCode::Id::FMUL_R: |
| 625 | case OpCode::Id::FMUL_IMM: { | 630 | case OpCode::Id::FMUL_IMM: { |