mirror of
https://github.com/irmen/prog8.git
synced 2025-11-01 06:16:15 +00:00
34 lines
1.7 KiB
ReStructuredText
34 lines
1.7 KiB
ReStructuredText
TODO
|
|
====
|
|
|
|
pointer arithmetic precedence issue?:
|
|
^^uword values
|
|
cx16.r0 = values + (pos-1) ; different outcome as:
|
|
cx16.r0 = values + pos -1
|
|
|
|
sorting.gnomesort_uw() : when converted to ^^uword, the resulting code is MUCH larger than before (peek/poke code gen problem?)
|
|
(same with shellsort_uw and others)
|
|
|
|
this doesn't work:
|
|
^^uword xpositions_ptr
|
|
repeat num_sprites {
|
|
pokew(cx16.VERA_DATA0, xpositions_ptr^^) ; must set data0 and data1 at the same time
|
|
xpositions_ptr ++
|
|
}
|
|
|
|
|
|
STRUCTS and TYPED POINTERS (6502 codegen specific)
|
|
--------------------------------------------------
|
|
|
|
- update the docs about the libraries so they also use typed pointers where appropriate, regenerate skeletons
|
|
- implement the TODO's in PointerAssignmentsGen.
|
|
- scan through 6502 examples to change untyped uword pointers to typed pointers
|
|
- fix code size regressions (if any left)
|
|
- update structpointers.rst docs with 6502 specific things?
|
|
- optimize deref() to not always add the field offset to the pointer value but using it in the Y register instead
|
|
- optimize deref() when field offset is 0, don't use a temporary at all if the var is in zp already (maybe already solved by the previous one?)
|
|
- optimize the multiplications in assignAddressOfIndexedPointer()
|
|
- optimize the float copying in assignIndexedPointer() (also word?)
|
|
- implement some more struct instance assignments (via memcopy) in CodeDesugarer (see the TODO) (add to documentation as well, paragraph 'Structs')
|
|
- try to optimize pointer arithmetic used in peek/poke a bit more so the routines in sorting module can use typed pointers without increasing code size
|