mirror of
https://github.com/irmen/prog8.git
synced 2024-10-19 22:24:17 +00:00
correctly allow codegen to proceed for byte->word register assignment. Fixes crash #58
This commit is contained in:
parent
af99173cd7
commit
754664aefa
@ -1359,8 +1359,10 @@ internal class AssignmentAsmGen(private val program: Program, private val asmgen
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun assignRegisterByte(target: AsmAssignTarget, register: CpuRegister) {
|
internal fun assignRegisterByte(target: AsmAssignTarget, register: CpuRegister) {
|
||||||
// we make an exception in the type check for assigning something to a cx16 virtual register
|
// we make an exception in the type check for assigning something to a cx16 virtual register, or a register pair
|
||||||
if(target.register !in Cx16VirtualRegisters) {
|
// these will be correctly typecasted from a byte to a word value
|
||||||
|
if(target.register !in Cx16VirtualRegisters &&
|
||||||
|
target.register!=RegisterOrPair.AX && target.register!=RegisterOrPair.AY && target.register!=RegisterOrPair.XY) {
|
||||||
if(target.kind==TargetStorageKind.VARIABLE) {
|
if(target.kind==TargetStorageKind.VARIABLE) {
|
||||||
val parts = target.asmVarname.split('.')
|
val parts = target.asmVarname.split('.')
|
||||||
if (parts.size != 2 || parts[0] != "cx16")
|
if (parts.size != 2 || parts[0] != "cx16")
|
||||||
|
Loading…
Reference in New Issue
Block a user