2018-08-06 03:35:43 +02:00
|
|
|
TODO
|
|
|
|
====
|
2023-09-03 19:06:47 +02:00
|
|
|
|
2024-02-25 05:02:50 +01:00
|
|
|
verify ifelse codegens to be shortest code: (some are using too many scratch vars?)
|
|
|
|
uword >=
|
|
|
|
uword >
|
|
|
|
uword <=
|
|
|
|
uword <
|
|
|
|
word >=
|
|
|
|
word >
|
|
|
|
word <=
|
|
|
|
word <
|
2024-02-24 20:02:13 +01:00
|
|
|
|
2024-02-22 23:39:31 +01:00
|
|
|
|
2024-02-25 05:02:50 +01:00
|
|
|
plasma is a bit larger
|
|
|
|
floatparse is a bit larger
|
|
|
|
testgfx2 is a bit larger
|
|
|
|
amiga is a bit larger
|
|
|
|
halloween is 1 byte larger
|
|
|
|
rockrunner is bigger than on 10.1
|
|
|
|
paint is slightly bigger than on 10.1
|
|
|
|
chess is bigger than on 10.1
|
|
|
|
imageviewer is a lot bigger
|
|
|
|
shell is a couple of bytes bigger
|
2024-02-22 23:39:31 +01:00
|
|
|
|
|
|
|
|
2024-02-25 05:02:50 +01:00
|
|
|
add tests for comparison that do an assignment rather than an if
|
|
|
|
assign to variable, and barray[indexvar], test if they're both correct
|
|
|
|
(bb = value > -100 --> contains a beq +++ that shouldn't be there??)
|
2024-02-16 22:35:09 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-04 23:18:11 +01:00
|
|
|
===== ====== =======
|
|
|
|
VM 6502 what
|
|
|
|
===== ====== =======
|
2024-02-13 21:56:22 +01:00
|
|
|
ok ok boolean const
|
|
|
|
ok ok boolean variables value, boolean subroutine param
|
|
|
|
ok ok static bool var (block scope) with initializer value (staticVariable2asm)
|
|
|
|
ok ok boolean arrays value, list and single value
|
|
|
|
ok ok return boolean value from sub
|
|
|
|
ok ok logical not, and, or, xor work correctly, also inplace
|
|
|
|
ok ok make sure that and,or,xor,not aren't getting replaced by the bitwise versions in the Ast
|
|
|
|
ok ok and, or, xor, not should work in expressions: print_ub((bb and true) as ubyte)
|
|
|
|
ok ok swap operands around on evaluating staticboolvar xor ba[0]
|
|
|
|
ok ok bitwise logical ops on bools give type error, including invert
|
|
|
|
ok ok arithmetic ops on bools give type error
|
|
|
|
ok ok logical ops on ints give type error
|
|
|
|
ok ok boolean values in ubyte array should give type error
|
|
|
|
ok ok type error for bool[3] derp = 99 and also for init value [1,0,1] and also for [true, false, 1, 0, 222]
|
|
|
|
ok ok while booleanvar==42 and do..until booleanvar==42 should give type error
|
|
|
|
ok ok while not <integervar> should give type error
|
|
|
|
ok ok while not <integer functioncall> should give type error
|
|
|
|
ok ok while not cx16.mouse_pos() should give condition type error
|
|
|
|
ok ok efficient code for manipulating bools in an array (normal and agumented assigns)
|
2024-02-20 00:35:13 +01:00
|
|
|
ok ok efficient code for if with only a goto in it
|
|
|
|
ok ok efficient code for if byte comparisons against 0 (== and !=)
|
|
|
|
ok ok efficient code for if word comparisons against 0 (== and !=)
|
|
|
|
ok ok efficient code for if float comparisons against 0 (== and !=)
|
|
|
|
ok ok efficient code for if byte comparisons against a value
|
2024-02-22 23:39:31 +01:00
|
|
|
ok FAIL efficient code for if word comparisons against a value
|
2024-02-20 00:35:13 +01:00
|
|
|
ok ok efficient code for if float comparisons against a value
|
2024-02-16 18:38:36 +01:00
|
|
|
ok ok efficient code for assignment byte comparisons against 0 (== and !=)
|
2024-02-20 00:35:13 +01:00
|
|
|
ok ok efficient code for assignment word comparisons against 0 (== and !=)
|
|
|
|
ok ok efficient code for assignment float comparisons against 0 (== and !=)
|
|
|
|
ok ok efficient code for assignment byte comparisons against a value
|
|
|
|
ok ok efficient code for assignment word comparisons against a value
|
2024-02-20 22:12:33 +01:00
|
|
|
ok ok efficient code for assignment float comparisons against a value
|
2024-02-13 21:56:22 +01:00
|
|
|
ok ok efficient code for if_cc conditional expressions
|
2024-02-20 00:35:13 +01:00
|
|
|
ok ok while boolean should produce identical code as while integer!=0 and code should be efficient
|
|
|
|
ok ok while not boolvar -> can we get rid of the cmp? (6502 only?)
|
2024-02-25 05:02:50 +01:00
|
|
|
ok ok testmonogfx works
|
2024-02-04 23:18:11 +01:00
|
|
|
ok . check program sizes vs. master branch
|
|
|
|
===== ====== =======
|
|
|
|
|
|
|
|
|
|
|
|
check that the flood fill routine in gfx2 and paint still works.
|
2024-02-20 00:35:13 +01:00
|
|
|
re-allow typecast of const true/false back to ubytes 1 and 0?
|
|
|
|
re-allow typecast of const ubyte 0/1 to false/true boolean?
|
2024-02-04 23:18:11 +01:00
|
|
|
|
2024-02-12 23:11:29 +01:00
|
|
|
|
2024-02-04 23:18:11 +01:00
|
|
|
IR: add TEST instruction to test memory content and set N/Z flags, without affecting any register.
|
|
|
|
replace all LOADM+CMPI #0 / LOAD #0+LOADM+CMP+BRANCH by this instruction
|
2024-02-26 01:17:25 +01:00
|
|
|
|