From a88b40d6c1deda9b10f277cec846fe10ed1f6029 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Tue, 24 Nov 2020 21:58:14 +0100 Subject: [PATCH] fix stack corruption with bitshifts --- .../prog8/compiler/target/c64/codegen/ExpressionsAsmGen.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/src/prog8/compiler/target/c64/codegen/ExpressionsAsmGen.kt b/compiler/src/prog8/compiler/target/c64/codegen/ExpressionsAsmGen.kt index 8bbd4fcf8..664718ac3 100644 --- a/compiler/src/prog8/compiler/target/c64/codegen/ExpressionsAsmGen.kt +++ b/compiler/src/prog8/compiler/target/c64/codegen/ExpressionsAsmGen.kt @@ -1619,9 +1619,9 @@ internal class ExpressionsAsmGen(private val program: Program, private val asmge } } ">>" -> { - translateExpression(expr.left) val amount = expr.right.constValue(program)?.number?.toInt() if(amount!=null) { + translateExpression(expr.left) when (leftDt) { DataType.UBYTE -> { if (amount <= 2) @@ -1669,9 +1669,9 @@ internal class ExpressionsAsmGen(private val program: Program, private val asmge } } "<<" -> { - translateExpression(expr.left) val amount = expr.right.constValue(program)?.number?.toInt() if(amount!=null) { + translateExpression(expr.left) if (leftDt in ByteDatatypes) { if (amount <= 2) repeat(amount) { asmgen.out(" asl P8ESTACK_LO+1,x") }