logical and/or/xor/not all replaced by bitwise &,|,^,~ (ast, codegens)

this also fixed some invalid outcomes of logical expressions!
This commit is contained in:
Irmen de Jong
2022-07-02 00:21:18 +02:00
parent 8e36fe6bef
commit 965340ff90
23 changed files with 173 additions and 384 deletions
@@ -251,9 +251,9 @@ internal class ExpressionGen(private val codeGen: CodeGen) {
"*" -> operatorMultiply(binExpr, vmDt, resultRegister, resultFpRegister)
"/" -> operatorDivide(binExpr, vmDt, resultRegister, resultFpRegister, signed)
"%" -> operatorModulo(binExpr, vmDt, resultRegister)
"|", "or" -> operatorOr(binExpr, vmDt, resultRegister)
"&", "and" -> operatorAnd(binExpr, vmDt, resultRegister)
"^", "xor" -> operatorXor(binExpr, vmDt, resultRegister)
"|" -> operatorOr(binExpr, vmDt, resultRegister)
"&" -> operatorAnd(binExpr, vmDt, resultRegister)
"^" -> operatorXor(binExpr, vmDt, resultRegister)
"<<" -> operatorShiftLeft(binExpr, vmDt, resultRegister)
">>" -> operatorShiftRight(binExpr, vmDt, resultRegister, signed)
"==" -> operatorEquals(binExpr, vmDt, resultRegister, false)