summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-emit-precedence.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-precedence.cpp')
-rw-r--r--source/slang/slang-emit-precedence.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/source/slang/slang-emit-precedence.cpp b/source/slang/slang-emit-precedence.cpp
index 43a573f20..8237b31df 100644
--- a/source/slang/slang-emit-precedence.cpp
+++ b/source/slang/slang-emit-precedence.cpp
@@ -10,4 +10,40 @@ namespace Slang {
SLANG_OP_INFO(SLANG_OP_INFO_EXPAND)
};
+
+EmitOp getEmitOpForOp(IROp op)
+{
+ switch (op)
+ {
+ case kIROp_Add: return EmitOp::Add;
+ case kIROp_Sub: return EmitOp::Sub;
+ case kIROp_Mul: return EmitOp::Mul;
+ case kIROp_Div: return EmitOp::Div;
+ case kIROp_Mod: return EmitOp::Mod;
+
+ case kIROp_Lsh: return EmitOp::Lsh;
+ case kIROp_Rsh: return EmitOp::Rsh;
+
+ case kIROp_Eql: return EmitOp::Eql;
+ case kIROp_Neq: return EmitOp::Neq;
+ case kIROp_Greater: return EmitOp::Greater;
+ case kIROp_Less: return EmitOp::Less;
+ case kIROp_Geq: return EmitOp::Geq;
+ case kIROp_Leq: return EmitOp::Leq;
+
+ case kIROp_BitXor: return EmitOp::BitXor;
+ case kIROp_BitOr: return EmitOp::BitOr;
+ case kIROp_BitAnd: return EmitOp::BitAnd;
+
+ case kIROp_And: return EmitOp::And;
+ case kIROp_Or: return EmitOp::Or;
+
+ case kIROp_Not: return EmitOp::Not;
+ case kIROp_Neg: return EmitOp::Neg;
+ case kIROp_BitNot: return EmitOp::BitNot;
+ }
+
+ return EmitOp::None;
+}
+
} // namespace Slang