diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-05-27 22:51:00 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:34 +0200 |
commit | b7764c3a796e53ac74009bc7d7cd153c64b6d743 (patch) | |
tree | 592a8be7cd43349cbabfc3d84693b443ddc0b5d8 /src/shader_recompiler/frontend/maxwell/translate | |
parent | glasm: Use integer lod for TXQ (diff) | |
download | yuzu-b7764c3a796e53ac74009bc7d7cd153c64b6d743.tar yuzu-b7764c3a796e53ac74009bc7d7cd153c64b6d743.tar.gz yuzu-b7764c3a796e53ac74009bc7d7cd153c64b6d743.tar.bz2 yuzu-b7764c3a796e53ac74009bc7d7cd153c64b6d743.tar.lz yuzu-b7764c3a796e53ac74009bc7d7cd153c64b6d743.tar.xz yuzu-b7764c3a796e53ac74009bc7d7cd153c64b6d743.tar.zst yuzu-b7764c3a796e53ac74009bc7d7cd153c64b6d743.zip |
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/translate')
-rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate/translate.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate/translate.cpp b/src/shader_recompiler/frontend/maxwell/translate/translate.cpp index 0f4e7a251..8e3c4c5d5 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/translate.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/translate.cpp @@ -30,16 +30,21 @@ void Translate(Environment& env, IR::Block* block, u32 location_begin, u32 locat TranslatorVisitor visitor{env, *block}; for (Location pc = location_begin; pc != location_end; ++pc) { const u64 insn{env.ReadInstruction(pc.Offset())}; - const Opcode opcode{Decode(insn)}; - switch (opcode) { + try { + const Opcode opcode{Decode(insn)}; + switch (opcode) { #define INST(name, cute, mask) \ case Opcode::name: \ Invoke<&TranslatorVisitor::name>(visitor, pc, insn); \ break; #include "shader_recompiler/frontend/maxwell/maxwell.inc" #undef OPCODE - default: - throw LogicError("Invalid opcode {}", opcode); + default: + throw LogicError("Invalid opcode {}", opcode); + } + } catch (Exception& exception) { + exception.Prepend(fmt::format("Translate {}: ", Decode(insn))); + throw; } } } |