Remove ^^ operator from Metal codegen.
^^ is not an operator in Metal. != can be used for the same purpose.
Change-Id: If75b000076ebe0aa81d0ab354a8ae33e6ed52101
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/339156
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/sksl/SkSLMetalCodeGenerator.cpp b/src/sksl/SkSLMetalCodeGenerator.cpp
index 301d095..06d4689 100644
--- a/src/sksl/SkSLMetalCodeGenerator.cpp
+++ b/src/sksl/SkSLMetalCodeGenerator.cpp
@@ -20,6 +20,13 @@
namespace SkSL {
+const char* MetalCodeGenerator::OperatorName(Token::Kind op) {
+ switch (op) {
+ case Token::Kind::TK_LOGICALXOR: return "!=";
+ default: return Compiler::OperatorName(op);
+ }
+}
+
class MetalCodeGenerator::GlobalStructVisitor {
public:
virtual ~GlobalStructVisitor() = default;
@@ -918,12 +925,12 @@
this->write(" = ");
this->writeExpression(left, kAssignment_Precedence);
this->write(" ");
- String opName = Compiler::OperatorName(op);
+ String opName = OperatorName(op);
SkASSERT(opName.endsWith("="));
this->write(opName.substr(0, opName.size() - 1).c_str());
this->write(" ");
} else {
- this->write(String(" ") + Compiler::OperatorName(op) + " ");
+ this->write(String(" ") + OperatorName(op) + " ");
}
this->writeExpression(right, precedence);
if (needParens) {
@@ -951,7 +958,7 @@
if (kPrefix_Precedence >= parentPrecedence) {
this->write("(");
}
- this->write(Compiler::OperatorName(p.getOperator()));
+ this->write(OperatorName(p.getOperator()));
this->writeExpression(*p.operand(), kPrefix_Precedence);
if (kPrefix_Precedence >= parentPrecedence) {
this->write(")");
@@ -964,7 +971,7 @@
this->write("(");
}
this->writeExpression(*p.operand(), kPostfix_Precedence);
- this->write(Compiler::OperatorName(p.getOperator()));
+ this->write(OperatorName(p.getOperator()));
if (kPostfix_Precedence >= parentPrecedence) {
this->write(")");
}