mirror of
https://github.com/irmen/prog8.git
synced 2024-12-25 23:29:55 +00:00
todo
This commit is contained in:
parent
e4fb5946dd
commit
6b7216f4ec
@ -750,7 +750,7 @@ internal class BuiltinFunctionsAsmGen(private val program: Program, private val
|
|||||||
|
|
||||||
// optimized simple case: swap two memory locations
|
// optimized simple case: swap two memory locations
|
||||||
if(first is DirectMemoryRead && second is DirectMemoryRead) {
|
if(first is DirectMemoryRead && second is DirectMemoryRead) {
|
||||||
// TODO optimize swap of two memread values with index, using the same pointer expression/variable, like swap(@(ptr+1), @(ptr+2))
|
// TODO optimize swap of two memread values with index, using the same pointer expression/variable, like swap(@(ptr+i1), @(ptr+i2))
|
||||||
val addr1 = (first.addressExpression as? NumericLiteralValue)?.number?.toHex()
|
val addr1 = (first.addressExpression as? NumericLiteralValue)?.number?.toHex()
|
||||||
val addr2 = (second.addressExpression as? NumericLiteralValue)?.number?.toHex()
|
val addr2 = (second.addressExpression as? NumericLiteralValue)?.number?.toHex()
|
||||||
val name1 = if(first.addressExpression is IdentifierReference) asmgen.asmVariableName(first.addressExpression as IdentifierReference) else null
|
val name1 = if(first.addressExpression is IdentifierReference) asmgen.asmVariableName(first.addressExpression as IdentifierReference) else null
|
||||||
|
@ -1361,21 +1361,21 @@ internal class AugmentableAssignmentAsmGen(private val program: Program,
|
|||||||
}
|
}
|
||||||
"*" -> {
|
"*" -> {
|
||||||
// stack contains (u) byte value, sign extend that and proceed with regular 16 bit operation
|
// stack contains (u) byte value, sign extend that and proceed with regular 16 bit operation
|
||||||
// TODO use an optimized word * byte multiplication routine
|
// TODO use an optimized word * byte multiplication routine?
|
||||||
asmgen.assignExpressionToRegister(value, RegisterOrPair.A)
|
asmgen.assignExpressionToRegister(value, RegisterOrPair.A)
|
||||||
asmgen.signExtendAYlsb(valueDt)
|
asmgen.signExtendAYlsb(valueDt)
|
||||||
multiplyVarByWordInAY()
|
multiplyVarByWordInAY()
|
||||||
}
|
}
|
||||||
"/" -> {
|
"/" -> {
|
||||||
// stack contains (u) byte value, sign extend that and proceed with regular 16 bit operation
|
// stack contains (u) byte value, sign extend that and proceed with regular 16 bit operation
|
||||||
// TODO use an optimized word / byte divmod routine
|
// TODO use an optimized word / byte divmod routine?
|
||||||
asmgen.assignExpressionToRegister(value, RegisterOrPair.A)
|
asmgen.assignExpressionToRegister(value, RegisterOrPair.A)
|
||||||
asmgen.signExtendAYlsb(valueDt)
|
asmgen.signExtendAYlsb(valueDt)
|
||||||
divideVarByWordInAY()
|
divideVarByWordInAY()
|
||||||
}
|
}
|
||||||
"%" -> {
|
"%" -> {
|
||||||
// stack contains (u) byte value, sign extend that and proceed with regular 16 bit operation
|
// stack contains (u) byte value, sign extend that and proceed with regular 16 bit operation
|
||||||
// TODO use an optimized word / byte divmod routine
|
// TODO use an optimized word / byte divmod routine?
|
||||||
asmgen.assignExpressionToRegister(value, RegisterOrPair.A)
|
asmgen.assignExpressionToRegister(value, RegisterOrPair.A)
|
||||||
asmgen.signExtendAYlsb(valueDt)
|
asmgen.signExtendAYlsb(valueDt)
|
||||||
remainderVarByWordInAY()
|
remainderVarByWordInAY()
|
||||||
|
@ -12,6 +12,7 @@ TODO
|
|||||||
- test all examples (including imgviewer, assembler and petaxian) before release of the new version
|
- test all examples (including imgviewer, assembler and petaxian) before release of the new version
|
||||||
|
|
||||||
- simplify cx16.joystick_get2() once this cx16 rom issue is resolved: https://github.com/commanderx16/x16-rom/issues/203
|
- simplify cx16.joystick_get2() once this cx16 rom issue is resolved: https://github.com/commanderx16/x16-rom/issues/203
|
||||||
|
- improve counter vars creation in repeatWordCountInAY() and repeatByteCountInA() (asmgen.kt)
|
||||||
- c64: make the graphics.BITMAP_ADDRESS configurable (VIC banking)
|
- c64: make the graphics.BITMAP_ADDRESS configurable (VIC banking)
|
||||||
- get rid of all other TODO's in the code ;-)
|
- get rid of all other TODO's in the code ;-)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user