summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glasm/reg_alloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/backend/glasm/reg_alloc.h')
-rw-r--r--src/shader_recompiler/backend/glasm/reg_alloc.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/glasm/reg_alloc.h b/src/shader_recompiler/backend/glasm/reg_alloc.h
index 5742436cf..ede6edd1f 100644
--- a/src/shader_recompiler/backend/glasm/reg_alloc.h
+++ b/src/shader_recompiler/backend/glasm/reg_alloc.h
@@ -23,6 +23,7 @@ namespace Shader::Backend::GLASM {
23class EmitContext; 23class EmitContext;
24 24
25enum class Type : u32 { 25enum class Type : u32 {
26 Void,
26 Register, 27 Register,
27 U32, 28 U32,
28 S32, 29 S32,
@@ -65,6 +66,8 @@ struct Value {
65 return false; 66 return false;
66 } 67 }
67 switch (type) { 68 switch (type) {
69 case Type::Void:
70 return true;
68 case Type::Register: 71 case Type::Register:
69 return id == rhs.id; 72 return id == rhs.id;
70 case Type::U32: 73 case Type::U32:
@@ -218,6 +221,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarU32> {
218 template <typename FormatContext> 221 template <typename FormatContext>
219 auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) { 222 auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) {
220 switch (value.type) { 223 switch (value.type) {
224 case Shader::Backend::GLASM::Type::Void:
225 break;
221 case Shader::Backend::GLASM::Type::Register: 226 case Shader::Backend::GLASM::Type::Register:
222 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); 227 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
223 case Shader::Backend::GLASM::Type::U32: 228 case Shader::Backend::GLASM::Type::U32:
@@ -242,6 +247,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarS32> {
242 template <typename FormatContext> 247 template <typename FormatContext>
243 auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) { 248 auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) {
244 switch (value.type) { 249 switch (value.type) {
250 case Shader::Backend::GLASM::Type::Void:
251 break;
245 case Shader::Backend::GLASM::Type::Register: 252 case Shader::Backend::GLASM::Type::Register:
246 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); 253 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
247 case Shader::Backend::GLASM::Type::U32: 254 case Shader::Backend::GLASM::Type::U32:
@@ -266,6 +273,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF32> {
266 template <typename FormatContext> 273 template <typename FormatContext>
267 auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) { 274 auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) {
268 switch (value.type) { 275 switch (value.type) {
276 case Shader::Backend::GLASM::Type::Void:
277 break;
269 case Shader::Backend::GLASM::Type::Register: 278 case Shader::Backend::GLASM::Type::Register:
270 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); 279 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
271 case Shader::Backend::GLASM::Type::U32: 280 case Shader::Backend::GLASM::Type::U32:
@@ -290,6 +299,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF64> {
290 template <typename FormatContext> 299 template <typename FormatContext>
291 auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) { 300 auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) {
292 switch (value.type) { 301 switch (value.type) {
302 case Shader::Backend::GLASM::Type::Void:
303 break;
293 case Shader::Backend::GLASM::Type::Register: 304 case Shader::Backend::GLASM::Type::Register:
294 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); 305 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
295 case Shader::Backend::GLASM::Type::U32: 306 case Shader::Backend::GLASM::Type::U32: