Forum
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)
poke @label+1,data
return

label:
asm
LD A,00
end asm

Seems to produce assembler that does this:
Code:
ld hl, __LABEL__BLPutCharHeight
inc hl

Can the compiler not shortcut that to
Code:
ld hl, __LABEL__BLPutCharHeight+N ?
and work out at assembly time where that should be, thus producing shorter and faster code for what is, after all, a constant?

(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: Tongue

Note: This version also fix some -O3 bugs (some optimizations not being done). Also adds the 16bit subtraction optimization you suggested.