2026-07-07 19:50:56 +02:00
|
|
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
2022-04-23 04:59:50 -04:00
|
|
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
|
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2021-01-09 03:30:07 -03:00
|
|
|
|
2021-02-05 23:11:23 -03:00
|
|
|
#include "shader_recompiler/frontend/ir/opcodes.h"
|
2021-01-09 03:30:07 -03:00
|
|
|
|
|
|
|
|
namespace Shader::IR {
|
|
|
|
|
|
2026-07-07 19:50:56 +02:00
|
|
|
namespace Detail {
|
|
|
|
|
|
2026-07-31 23:14:58 -04:00
|
|
|
OpcodeMeta META_TABLE[] = {
|
2026-07-07 19:50:56 +02:00
|
|
|
#define OPCODE(name_token, type_token, ...) \
|
|
|
|
|
{ \
|
|
|
|
|
.name{#name_token}, \
|
|
|
|
|
.type = type_token, \
|
|
|
|
|
.arg_types{__VA_ARGS__}, \
|
|
|
|
|
},
|
|
|
|
|
#include "opcodes.inc"
|
|
|
|
|
#undef OPCODE
|
|
|
|
|
};
|
|
|
|
|
|
2026-07-31 23:14:58 -04:00
|
|
|
u8 NUM_ARGS[] = {
|
2026-07-07 19:50:56 +02:00
|
|
|
#define OPCODE(name_token, type_token, ...) u8(CalculateNumArgsOf(Opcode::name_token)),
|
|
|
|
|
#include "opcodes.inc"
|
|
|
|
|
#undef OPCODE
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-09 03:30:07 -03:00
|
|
|
std::string_view NameOf(Opcode op) {
|
2021-04-21 00:25:46 -03:00
|
|
|
return Detail::META_TABLE[static_cast<size_t>(op)].name;
|
2021-01-09 03:30:07 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace Shader::IR
|