mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-19 06:31:29 +00:00
072be286d1
small oopsie; we dont need 6 copies of the same 22KB table (removes 5*22 = 110 KB worth of redundant stuff) this also enforces static on the types defined in the header so they arent memoized into a non-inlined value (aka. compiler just grabs value instead of well, yknow, assuming its a constant area) Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4180 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#include "shader_recompiler/frontend/ir/opcodes.h"
|
|
|
|
namespace Shader::IR {
|
|
|
|
namespace Detail {
|
|
|
|
OpcodeMeta META_TABLE[532] = {
|
|
#define OPCODE(name_token, type_token, ...) \
|
|
{ \
|
|
.name{#name_token}, \
|
|
.type = type_token, \
|
|
.arg_types{__VA_ARGS__}, \
|
|
},
|
|
#include "opcodes.inc"
|
|
#undef OPCODE
|
|
};
|
|
|
|
u8 NUM_ARGS[532] = {
|
|
#define OPCODE(name_token, type_token, ...) u8(CalculateNumArgsOf(Opcode::name_token)),
|
|
#include "opcodes.inc"
|
|
#undef OPCODE
|
|
};
|
|
|
|
}
|
|
|
|
std::string_view NameOf(Opcode op) {
|
|
return Detail::META_TABLE[static_cast<size_t>(op)].name;
|
|
}
|
|
|
|
} // namespace Shader::IR
|