mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-08-18 22:42:23 +00:00
shader: fix the Linux and macOS build (#285)
* fixed linux build - added correct uint long translation - replaced throw with non-constexpr function so that it fails in case of malformed table * shader: remove redundant opcode table comment * shader: use EXIT for invalid opcode tables --------- Co-authored-by: nmzik <Nmzik@mail.ru>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#ifndef EMULATOR_INCLUDE_EMULATOR_GRAPHICS_SHADER_RECOMPILER_DECOMPILER_OPCODETABLE_H_
|
||||
#define EMULATOR_INCLUDE_EMULATOR_GRAPHICS_SHADER_RECOMPILER_DECOMPILER_OPCODETABLE_H_
|
||||
|
||||
#include "common/assert.h"
|
||||
#include "graphics/shader/recompiler/frontend/decode/ShaderDecoder.h"
|
||||
|
||||
#include <array>
|
||||
@@ -27,7 +28,7 @@ consteval auto MakeOpcodeTable(const Entry (&entries)[EntryCount]) {
|
||||
for (size_t i = 0; i < EntryCount; i++) {
|
||||
const auto encoding = entries[i].encoding;
|
||||
if (encoding >= EncodingCount || table.indices[encoding] != 0) {
|
||||
throw "invalid opcode table";
|
||||
EXIT("invalid opcode table\n");
|
||||
}
|
||||
table.entries[i] = entries[i];
|
||||
table.indices[encoding] = static_cast<uint16_t>(i + 1);
|
||||
|
||||
@@ -321,7 +321,7 @@ IR::U64 Translator::ExpandWholeQuadMask(IR::U64 value) {
|
||||
const auto merged2 = ir.Emit(IR::ValueOpcode::BitwiseOr64, {merged1, shifted2});
|
||||
const auto merged3 = ir.Emit(IR::ValueOpcode::BitwiseOr64, {merged2, shifted3});
|
||||
const auto low_bits =
|
||||
ir.Emit(IR::ValueOpcode::BitwiseAnd64, {merged3, IR::Value(0x1111111111111111ull)});
|
||||
ir.Emit(IR::ValueOpcode::BitwiseAnd64, {merged3, IR::Value(uint64_t {0x1111111111111111})});
|
||||
return IR::U64(ir.Emit(IR::ValueOpcode::IMul64, {low_bits, IR::Value(uint64_t {0xfull})}));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user