mirror of
https://github.com/irmen/prog8.git
synced 2025-11-01 22:16:16 +00:00
changed IR JUMPI instruction to support more indirect jump cases
This commit is contained in:
@@ -24,6 +24,9 @@ Future Things and Ideas
|
||||
Need to add some way to generate a stable jump table at a given address.
|
||||
Need library to not call init_system AND init_system_phase2 not either.
|
||||
Library must not include prog8_program_start stuff either.
|
||||
- Add a LZSA decompressor to the compression library to be able to decompress lzsa when you don't have it in ROM or when the ROM is banked out or unavailable
|
||||
Problem is: on the X16, it should replicate the Kernal's behavior with decompressing to Vram / not incrementing the output address
|
||||
- Add TSCrunch or ZX0 decruncher to compression lib. Same requirement on X16 again to be able to decompress into vram.
|
||||
- Fix missing cases where regular & has to return the start of the split array in memory whatever byte comes first. Search TODO("address of split word array")
|
||||
- Add a syntax to access specific bits in a variable, to avoid manually shifts&ands, something like variable[4:8] ? (or something else this may be too similar to regular array indexing)
|
||||
- something to reduce the need to use fully qualified names all the time. 'with' ? Or 'using <prefix>'?
|
||||
@@ -56,7 +59,7 @@ IR/VM
|
||||
- fix call() return value handling
|
||||
- fix float register parameters (FAC1,FAC2) for extsubs, search for TODO("floating point register parameters not supported")
|
||||
- proper code gen for the CALLI instruction and that it (optionally) returns a word value that needs to be assigned to a reg
|
||||
- make it possible to jump and branch to a computed address (expression), see TODO("JUMP to expression address" . This needs a change in the JUMPI instruction: it has to take a register instead (like CALLI)
|
||||
- make it possible to jump and branch to a computed address (expression) in all cases, see TODO("JUMP to expression address"
|
||||
- idea: (but LLVM IR simply keeps the variables, so not a good idea then?...): replace all scalar variables by an allocated register. Keep a table of the variable to register mapping (including the datatype)
|
||||
global initialization values are simply a list of LOAD instructions.
|
||||
Variables replaced include all subroutine parameters! So the only variables that remain as variables are arrays and strings.
|
||||
|
||||
Reference in New Issue
Block a user