summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glasm/reg_alloc.h
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-05-25 02:46:51 -0300
committerGravatar ameerj2021-07-22 21:51:33 -0400
commit75fd0079db9ac2f3bc6bcf182ed080a58538ed06 (patch)
tree3ab3e313bf4d97eea7cde4a31fe18b6bf6698929 /src/shader_recompiler/backend/glasm/reg_alloc.h
parentglasm: Throw when there are register leaks (diff)
downloadyuzu-75fd0079db9ac2f3bc6bcf182ed080a58538ed06.tar.gz
yuzu-75fd0079db9ac2f3bc6bcf182ed080a58538ed06.tar.xz
yuzu-75fd0079db9ac2f3bc6bcf182ed080a58538ed06.zip
glasm: Remove unnecessary value types
Diffstat (limited to 'src/shader_recompiler/backend/glasm/reg_alloc.h')
-rw-r--r--src/shader_recompiler/backend/glasm/reg_alloc.h33
1 files changed, 1 insertions, 32 deletions
diff --git a/src/shader_recompiler/backend/glasm/reg_alloc.h b/src/shader_recompiler/backend/glasm/reg_alloc.h
index 019e1bc0f..5a703daf2 100644
--- a/src/shader_recompiler/backend/glasm/reg_alloc.h
+++ b/src/shader_recompiler/backend/glasm/reg_alloc.h
@@ -26,10 +26,7 @@ enum class Type : u32 {
26 Void, 26 Void,
27 Register, 27 Register,
28 U32, 28 U32,
29 S32,
30 F32,
31 U64, 29 U64,
32 F64,
33}; 30};
34 31
35struct Id { 32struct Id {
@@ -57,10 +54,7 @@ struct Value {
57 union { 54 union {
58 Id id; 55 Id id;
59 u32 imm_u32; 56 u32 imm_u32;
60 s32 imm_s32;
61 f32 imm_f32;
62 u64 imm_u64; 57 u64 imm_u64;
63 f64 imm_f64;
64 }; 58 };
65 59
66 bool operator==(const Value& rhs) const noexcept { 60 bool operator==(const Value& rhs) const noexcept {
@@ -74,14 +68,8 @@ struct Value {
74 return id == rhs.id; 68 return id == rhs.id;
75 case Type::U32: 69 case Type::U32:
76 return imm_u32 == rhs.imm_u32; 70 return imm_u32 == rhs.imm_u32;
77 case Type::S32:
78 return imm_s32 == rhs.imm_s32;
79 case Type::F32:
80 return Common::BitCast<u32>(imm_f32) == Common::BitCast<u32>(rhs.imm_f32);
81 case Type::U64: 71 case Type::U64:
82 return imm_u64 == rhs.imm_u64; 72 return imm_u64 == rhs.imm_u64;
83 case Type::F64:
84 return Common::BitCast<u64>(imm_f64) == Common::BitCast<u64>(rhs.imm_f64);
85 } 73 }
86 return false; 74 return false;
87 } 75 }
@@ -245,12 +233,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarU32> {
245 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); 233 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
246 case Shader::Backend::GLASM::Type::U32: 234 case Shader::Backend::GLASM::Type::U32:
247 return fmt::format_to(ctx.out(), "{}", value.imm_u32); 235 return fmt::format_to(ctx.out(), "{}", value.imm_u32);
248 case Shader::Backend::GLASM::Type::S32:
249 return fmt::format_to(ctx.out(), "{}", static_cast<u32>(value.imm_s32));
250 case Shader::Backend::GLASM::Type::F32:
251 return fmt::format_to(ctx.out(), "{}", Common::BitCast<u32>(value.imm_f32));
252 case Shader::Backend::GLASM::Type::U64: 236 case Shader::Backend::GLASM::Type::U64:
253 case Shader::Backend::GLASM::Type::F64:
254 break; 237 break;
255 } 238 }
256 throw Shader::InvalidArgument("Invalid value type {}", value.type); 239 throw Shader::InvalidArgument("Invalid value type {}", value.type);
@@ -271,12 +254,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarS32> {
271 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); 254 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
272 case Shader::Backend::GLASM::Type::U32: 255 case Shader::Backend::GLASM::Type::U32:
273 return fmt::format_to(ctx.out(), "{}", static_cast<s32>(value.imm_u32)); 256 return fmt::format_to(ctx.out(), "{}", static_cast<s32>(value.imm_u32));
274 case Shader::Backend::GLASM::Type::S32:
275 return fmt::format_to(ctx.out(), "{}", value.imm_s32);
276 case Shader::Backend::GLASM::Type::F32:
277 return fmt::format_to(ctx.out(), "{}", Common::BitCast<s32>(value.imm_f32));
278 case Shader::Backend::GLASM::Type::U64: 257 case Shader::Backend::GLASM::Type::U64:
279 case Shader::Backend::GLASM::Type::F64:
280 break; 258 break;
281 } 259 }
282 throw Shader::InvalidArgument("Invalid value type {}", value.type); 260 throw Shader::InvalidArgument("Invalid value type {}", value.type);
@@ -296,13 +274,8 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF32> {
296 case Shader::Backend::GLASM::Type::Register: 274 case Shader::Backend::GLASM::Type::Register:
297 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); 275 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
298 case Shader::Backend::GLASM::Type::U32: 276 case Shader::Backend::GLASM::Type::U32:
299 return fmt::format_to(ctx.out(), "{}", Common::BitCast<u32>(value.imm_u32)); 277 return fmt::format_to(ctx.out(), "{}", Common::BitCast<f32>(value.imm_u32));
300 case Shader::Backend::GLASM::Type::S32:
301 return fmt::format_to(ctx.out(), "{}", Common::BitCast<s32>(value.imm_s32));
302 case Shader::Backend::GLASM::Type::F32:
303 return fmt::format_to(ctx.out(), "{}", value.imm_f32);
304 case Shader::Backend::GLASM::Type::U64: 278 case Shader::Backend::GLASM::Type::U64:
305 case Shader::Backend::GLASM::Type::F64:
306 break; 279 break;
307 } 280 }
308 throw Shader::InvalidArgument("Invalid value type {}", value.type); 281 throw Shader::InvalidArgument("Invalid value type {}", value.type);
@@ -322,13 +295,9 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF64> {
322 case Shader::Backend::GLASM::Type::Register: 295 case Shader::Backend::GLASM::Type::Register:
323 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id); 296 return Shader::Backend::GLASM::FormatTo<true>(ctx, value.id);
324 case Shader::Backend::GLASM::Type::U32: 297 case Shader::Backend::GLASM::Type::U32:
325 case Shader::Backend::GLASM::Type::S32:
326 case Shader::Backend::GLASM::Type::F32:
327 break; 298 break;
328 case Shader::Backend::GLASM::Type::U64: 299 case Shader::Backend::GLASM::Type::U64:
329 return fmt::format_to(ctx.out(), "{}", Common::BitCast<f64>(value.imm_u64)); 300 return fmt::format_to(ctx.out(), "{}", Common::BitCast<f64>(value.imm_u64));
330 case Shader::Backend::GLASM::Type::F64:
331 return fmt::format_to(ctx.out(), "{}", value.imm_f64);
332 } 301 }
333 throw Shader::InvalidArgument("Invalid value type {}", value.type); 302 throw Shader::InvalidArgument("Invalid value type {}", value.type);
334 } 303 }