![]() |
Assembler shortcut - Printable Version +- Forum (https://www.boriel.com/forum) +-- Forum: Compilers and Computer Languages (https://www.boriel.com/forum/forumdisplay.php?fid=12) +--- Forum: ZX Basic Compiler (https://www.boriel.com/forum/forumdisplay.php?fid=11) +---- Forum: Wishlist (https://www.boriel.com/forum/forumdisplay.php?fid=14) +---- Thread: Assembler shortcut (/showthread.php?tid=234) |
Assembler shortcut - britlion - 06-03-2010 Not sure where else to put this - Not really a bug, per se, as an efficiency; I mentioned it elsewhere but I think it got lost. With a sub that pokes memory based on labels: eg: Code: SUB pokethis(data as uByte) Seems to produce assembler that does this: Code: ld hl, __LABEL__BLPutCharHeight Can the compiler not shortcut that to Code: ld hl, __LABEL__BLPutCharHeight+N ? (or is there something clever in the optimizer that spots that sort of thing - load followed by incs or fixed adds?) Re: Assembler shortcut - boriel - 06-13-2010 I've included that optimization with -O3 in the latest release (1.2.6r1603d). Please, download and test. Now this introduces *SEVERE CHANGES* in the compiler :oops: and I've not tested it intensively. So recompile your programs with -O3 and... let's pray... :oops: ![]() Note: This version also fix some -O3 bugs (some optimizations not being done). Also adds the 16bit subtraction optimization you suggested. |