aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glsl/reg_alloc.cpp
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-05-24 19:33:11 -0400
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-22 21:51:36 -0400
commite99d01ff5308bb239aa2007ba4363d3a77f4d202 (patch)
treed01d0c54c42b15a140fa51f409d187ebe44016eb /src/shader_recompiler/backend/glsl/reg_alloc.cpp
parent3d9ecbe99844c44074c26f2db4db376059f50534 (diff)
glsl: implement phi nodes
Diffstat (limited to 'src/shader_recompiler/backend/glsl/reg_alloc.cpp')
-rw-r--r--src/shader_recompiler/backend/glsl/reg_alloc.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/glsl/reg_alloc.cpp b/src/shader_recompiler/backend/glsl/reg_alloc.cpp
index 8db1391fdb..58c2c408ec 100644
--- a/src/shader_recompiler/backend/glsl/reg_alloc.cpp
+++ b/src/shader_recompiler/backend/glsl/reg_alloc.cpp
@@ -74,6 +74,23 @@ std::string RegAlloc::Define(IR::Inst& inst, Type type) {
return type_str + Representation(id);
}
+std::string RegAlloc::Define(IR::Inst& inst, IR::Type type) {
+ switch (type) {
+ case IR::Type::U1:
+ return Define(inst, Type::U1);
+ case IR::Type::U32:
+ return Define(inst, Type::U32);
+ case IR::Type::F32:
+ return Define(inst, Type::F32);
+ case IR::Type::U64:
+ return Define(inst, Type::U64);
+ case IR::Type::F64:
+ return Define(inst, Type::F64);
+ default:
+ throw NotImplementedException("IR type {}", type);
+ }
+}
+
std::string RegAlloc::Consume(const IR::Value& value) {
return value.IsImmediate() ? MakeImm(value) : Consume(*value.InstRecursive());
}