diff options
Diffstat (limited to 'source/slang/slang-stdlib.cpp')
| -rw-r--r-- | source/slang/slang-stdlib.cpp | 78 |
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() |
