summaryrefslogtreecommitdiff
path: root/source/slang/slang-stdlib.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-stdlib.cpp')
-rw-r--r--source/slang/slang-stdlib.cpp78
1 files changed, 39 insertions, 39 deletions
diff --git a/source/slang/slang-stdlib.cpp b/source/slang/slang-stdlib.cpp
index 551a911c8..b23d1970b 100644
--- a/source/slang/slang-stdlib.cpp
+++ b/source/slang/slang-stdlib.cpp
@@ -199,50 +199,50 @@ namespace Slang
}
}
- struct OpInfo { IntrinsicOp opCode; char const* opName; unsigned flags; };
+ struct OpInfo { IntrinsicOp opCode; char const* opName; char const* interface; unsigned flags; };
static const OpInfo unaryOps[] = {
- { kCompoundIntrinsicOp_Pos, "+", ARITHMETIC_MASK },
- { kIROp_Neg, "-", ARITHMETIC_MASK },
- { kIROp_Not, "!", BOOL_MASK | BOOL_RESULT },
- { kIROp_BitNot, "~", INT_MASK },
- { kCompoundIntrinsicOp_PreInc, "++", ARITHMETIC_MASK | ASSIGNMENT },
- { kCompoundIntrinsicOp_PreDec, "--", ARITHMETIC_MASK | ASSIGNMENT },
- { kCompoundIntrinsicOp_PostInc, "++", ARITHMETIC_MASK | ASSIGNMENT | POSTFIX },
- { kCompoundIntrinsicOp_PostDec, "--", ARITHMETIC_MASK | ASSIGNMENT | POSTFIX },
+ { kCompoundIntrinsicOp_Pos, "+", "__BuiltinArithmeticType", ARITHMETIC_MASK },
+ { kIROp_Neg, "-", "__BuiltinArithmeticType", ARITHMETIC_MASK },
+ { kIROp_Not, "!", nullptr, BOOL_MASK | BOOL_RESULT },
+ { kIROp_BitNot, "~", "__BuiltinIntegerType", INT_MASK },
+ { kCompoundIntrinsicOp_PreInc, "++", "__BuiltinArithmeticType", ARITHMETIC_MASK | ASSIGNMENT },
+ { kCompoundIntrinsicOp_PreDec, "--", "__BuiltinArithmeticType", ARITHMETIC_MASK | ASSIGNMENT },
+ { kCompoundIntrinsicOp_PostInc, "++", "__BuiltinArithmeticType", ARITHMETIC_MASK | ASSIGNMENT | POSTFIX },
+ { kCompoundIntrinsicOp_PostDec, "--", "__BuiltinArithmeticType", ARITHMETIC_MASK | ASSIGNMENT | POSTFIX },
};
static const OpInfo binaryOps[] = {
- { kIROp_Add, "+", ARITHMETIC_MASK },
- { kIROp_Sub, "-", ARITHMETIC_MASK },
- { kIROp_Mul, "*", ARITHMETIC_MASK },
- { kIROp_Div, "/", ARITHMETIC_MASK },
- { kIROp_IRem, "%", INT_MASK },
- { kIROp_FRem, "%", FLOAT_MASK },
- { kIROp_And, "&&", BOOL_MASK | BOOL_RESULT},
- { kIROp_Or, "||", BOOL_MASK | BOOL_RESULT },
- { kIROp_BitAnd, "&", LOGICAL_MASK },
- { kIROp_BitOr, "|", LOGICAL_MASK },
- { kIROp_BitXor, "^", LOGICAL_MASK },
- { kIROp_Lsh, "<<", INT_MASK },
- { kIROp_Rsh, ">>", INT_MASK },
- { kIROp_Eql, "==", ANY_MASK | BOOL_RESULT },
- { kIROp_Neq, "!=", ANY_MASK | BOOL_RESULT },
- { kIROp_Greater, ">", ARITHMETIC_MASK | BOOL_RESULT },
- { kIROp_Less, "<", ARITHMETIC_MASK | BOOL_RESULT },
- { kIROp_Geq, ">=", ARITHMETIC_MASK | BOOL_RESULT },
- { kIROp_Leq, "<=", ARITHMETIC_MASK | BOOL_RESULT },
- { kCompoundIntrinsicOp_AddAssign, "+=", ASSIGNMENT | ARITHMETIC_MASK },
- { kCompoundIntrinsicOp_SubAssign, "-=", ASSIGNMENT | ARITHMETIC_MASK },
- { kCompoundIntrinsicOp_MulAssign, "*=", ASSIGNMENT | ARITHMETIC_MASK },
- { kCompoundIntrinsicOp_DivAssign, "/=", ASSIGNMENT | ARITHMETIC_MASK },
- { kCompoundIntrinsicOp_IRemAssign, "%=", ASSIGNMENT | INT_MASK },
- { kCompoundIntrinsicOp_FRemAssign, "%=", ASSIGNMENT | FLOAT_MASK },
- { kCompoundIntrinsicOp_AndAssign, "&=", ASSIGNMENT | LOGICAL_MASK },
- { kCompoundIntrinsicOp_OrAssign, "|=", ASSIGNMENT | LOGICAL_MASK },
- { kCompoundIntrinsicOp_XorAssign, "^=", ASSIGNMENT | LOGICAL_MASK },
- { kCompoundIntrinsicOp_LshAssign, "<<=", ASSIGNMENT | INT_MASK },
- { kCompoundIntrinsicOp_RshAssign, ">>=", ASSIGNMENT | INT_MASK },
+ { kIROp_Add, "+", "__BuiltinArithmeticType", ARITHMETIC_MASK },
+ { kIROp_Sub, "-", "__BuiltinArithmeticType", ARITHMETIC_MASK },
+ { kIROp_Mul, "*", "__BuiltinArithmeticType", ARITHMETIC_MASK },
+ { kIROp_Div, "/", "__BuiltinArithmeticType", ARITHMETIC_MASK },
+ { kIROp_IRem, "%", "__BuiltinIntegerType", INT_MASK },
+ { kIROp_FRem, "%", "__BuiltinFloatingPointType", FLOAT_MASK },
+ { kIROp_And, "&&", nullptr, BOOL_MASK | BOOL_RESULT},
+ { kIROp_Or, "||", nullptr, BOOL_MASK | BOOL_RESULT },
+ { kIROp_BitAnd, "&", "__BuiltinLogicalType", LOGICAL_MASK },
+ { kIROp_BitOr, "|", "__BuiltinLogicalType", LOGICAL_MASK },
+ { kIROp_BitXor, "^", "__BuiltinLogicalType", LOGICAL_MASK },
+ { kIROp_Lsh, "<<", "__BuiltinIntegerType", INT_MASK },
+ { kIROp_Rsh, ">>", "__BuiltinIntegerType", INT_MASK },
+ { kIROp_Eql, "==", "__BuiltinType", ANY_MASK | BOOL_RESULT },
+ { kIROp_Neq, "!=", "__BuiltinType", ANY_MASK | BOOL_RESULT },
+ { kIROp_Greater, ">", "__BuiltinArithmeticType", ARITHMETIC_MASK | BOOL_RESULT },
+ { kIROp_Less, "<", "__BuiltinArithmeticType", ARITHMETIC_MASK | BOOL_RESULT },
+ { kIROp_Geq, ">=", "__BuiltinArithmeticType", ARITHMETIC_MASK | BOOL_RESULT },
+ { kIROp_Leq, "<=", "__BuiltinArithmeticType", ARITHMETIC_MASK | BOOL_RESULT },
+ { kCompoundIntrinsicOp_AddAssign, "+=", "__BuiltinArithmeticType", ASSIGNMENT | ARITHMETIC_MASK },
+ { kCompoundIntrinsicOp_SubAssign, "-=", "__BuiltinArithmeticType", ASSIGNMENT | ARITHMETIC_MASK },
+ { kCompoundIntrinsicOp_MulAssign, "*=", "__BuiltinArithmeticType", ASSIGNMENT | ARITHMETIC_MASK },
+ { kCompoundIntrinsicOp_DivAssign, "/=", "__BuiltinArithmeticType", ASSIGNMENT | ARITHMETIC_MASK },
+ { kCompoundIntrinsicOp_IRemAssign, "%=", "__BuiltinIntegerType", ASSIGNMENT | INT_MASK },
+ { kCompoundIntrinsicOp_FRemAssign, "%=", "__BuiltinFloatingPointType", ASSIGNMENT | FLOAT_MASK },
+ { kCompoundIntrinsicOp_AndAssign, "&=", "__BuiltinLogicalType", ASSIGNMENT | LOGICAL_MASK },
+ { kCompoundIntrinsicOp_OrAssign, "|=", "__BuiltinLogicalType", ASSIGNMENT | LOGICAL_MASK },
+ { kCompoundIntrinsicOp_XorAssign, "^=", "__BuiltinLogicalType", ASSIGNMENT | LOGICAL_MASK },
+ { kCompoundIntrinsicOp_LshAssign, "<<=", "__BuiltinIntegerType", ASSIGNMENT | INT_MASK },
+ { kCompoundIntrinsicOp_RshAssign, ">>=", "__BuiltinIntegerType", ASSIGNMENT | INT_MASK },
};
String Session::getCoreLibraryCode()