summaryrefslogtreecommitdiff
path: root/source/slang/slang-mangle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-mangle.cpp')
-rw-r--r--source/slang/slang-mangle.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/source/slang/slang-mangle.cpp b/source/slang/slang-mangle.cpp
index ef9bf4938..3b0d12da8 100644
--- a/source/slang/slang-mangle.cpp
+++ b/source/slang/slang-mangle.cpp
@@ -326,6 +326,24 @@ namespace Slang
else if (const auto polynomialIntVal = dynamicCast<PolynomialIntVal>(val))
{
emitRaw(context, "KX");
+ emit(context, (UInt)polynomialIntVal->constantTerm);
+ emit(context, (UInt)polynomialIntVal->terms.getCount());
+ for (auto term : polynomialIntVal->terms)
+ {
+ emit(context, (UInt)term->constFactor);
+ emit(context, (UInt)term->paramFactors.getCount());
+ for (auto factor : term->paramFactors)
+ {
+ emitVal(context, factor->param);
+ emit(context, (UInt)factor->power);
+ }
+ }
+ }
+ else if (const auto typecastIntVal = dynamicCast<TypeCastIntVal>(val))
+ {
+ emitRaw(context, "KK");
+ emitVal(context, typecastIntVal->type);
+ emitVal(context, typecastIntVal->base);
}
else
{