mirror of
https://github.com/irmen/prog8.git
synced 2024-10-19 22:24:17 +00:00
fix invalid addressing mode on 6502 cpu for bytevalue +/- bytearray[i]
This commit is contained in:
parent
3caf9108ad
commit
23a8bebd9e
@ -740,8 +740,8 @@ internal class AssignmentAsmGen(private val program: PtProgram,
|
|||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
val rightArrayIndexer = expr.right as? PtArrayIndexer
|
val rightArrayIndexer = expr.right as? PtArrayIndexer
|
||||||
if(rightArrayIndexer!=null && rightArrayIndexer.type in ByteDatatypes && left.type in ByteDatatypes) {
|
if(asmgen.isTargetCpu(CpuType.CPU65c02) && rightArrayIndexer!=null && rightArrayIndexer.type in ByteDatatypes && left.type in ByteDatatypes) {
|
||||||
// special optimization for bytevalue +/- bytearr[y] : no need to use a tempvar, just use adc array,y or sbc array,y
|
// special optimization (available on 65c02) for bytevalue +/- bytearr[y] : no need to use a tempvar, just use adc array,y or sbc array,y
|
||||||
assignExpressionToRegister(left, RegisterOrPair.A, left.type==DataType.BYTE)
|
assignExpressionToRegister(left, RegisterOrPair.A, left.type==DataType.BYTE)
|
||||||
asmgen.out(" pha")
|
asmgen.out(" pha")
|
||||||
asmgen.assignExpressionToRegister(rightArrayIndexer.index, RegisterOrPair.Y, false)
|
asmgen.assignExpressionToRegister(rightArrayIndexer.index, RegisterOrPair.Y, false)
|
||||||
|
@ -5,4 +5,4 @@ org.gradle.daemon=true
|
|||||||
kotlin.code.style=official
|
kotlin.code.style=official
|
||||||
javaVersion=11
|
javaVersion=11
|
||||||
kotlinVersion=1.9.10
|
kotlinVersion=1.9.10
|
||||||
version=9.4.1
|
version=9.4.2
|
||||||
|
Loading…
Reference in New Issue
Block a user