From b3d0f7c793471765a1c140833cac8b5ede8e3193 Mon Sep 17 00:00:00 2001 From: Ethan Nicholas Date: Wed, 17 May 2017 13:13:21 -0400 Subject: [PATCH] skslc SPIR-V mod support Change-Id: I2df761ff0d25712dc48d367585d4b639e46d5d97 Reviewed-on: https://skia-review.googlesource.com/17243 Reviewed-by: Chris Dalton Commit-Queue: Ethan Nicholas --- src/sksl/SkSLSPIRVCodeGenerator.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/sksl/SkSLSPIRVCodeGenerator.cpp b/src/sksl/SkSLSPIRVCodeGenerator.cpp index 1cbd1274fc..00ab25cf0a 100644 --- a/src/sksl/SkSLSPIRVCodeGenerator.cpp +++ b/src/sksl/SkSLSPIRVCodeGenerator.cpp @@ -2188,6 +2188,9 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const BinaryExpression& b, Outpu case Token::SLASH: return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFDiv, SpvOpSDiv, SpvOpUDiv, SpvOpUndef, out); + case Token::PERCENT: + return this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFMod, + SpvOpSMod, SpvOpUMod, SpvOpUndef, out); case Token::PLUSEQ: { SpvId result = this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFAdd, SpvOpIAdd, SpvOpIAdd, SpvOpUndef, out); @@ -2226,6 +2229,13 @@ SpvId SPIRVCodeGenerator::writeBinaryExpression(const BinaryExpression& b, Outpu lvalue->store(result, out); return result; } + case Token::PERCENTEQ: { + SpvId result = this->writeBinaryOperation(resultType, *operandType, lhs, rhs, SpvOpFMod, + SpvOpSMod, SpvOpUMod, SpvOpUndef, out); + ASSERT(lvalue); + lvalue->store(result, out); + return result; + } default: // FIXME: missing support for some operators (bitwise, &&=, ||=, shift...) ABORT("unsupported binary expression: %s", b.description().c_str()); -- 2.34.1