Just to note that in this report: TD- 4.5.0 #15242 is tested, which is old compared to the current state.
sdasrab et all: enable the highest addr byte passing, prepare for P regs
A cleaned up and fixed C input example, and the current output: unsigned char buff[ 4096 ]; unsigned char* curr; unsigned char f( void ) { return ( curr == (buff + 4096) ); } ;t.c:3: unsigned char f( void ) { ;ic:0: _entry($2) : ; genLabel ;ic:1: proc _f [k1 lr0:0 so:0]{ ia0 a2p0 re0 rm0 nos0 ru0 dp0 oe0 sdr0}{unsigned-char function ( void ) fixed} ; genFunction ; --------------------------------- ; Function f ; --------------------------------- ; Register assignment is optimal. ; Stack space usage:...
I'm aware it's a big difference in the number of commits, I just happened to have that older binary on my disk. The TD- 4.5.2 #15530 with --fverbose-asm --i-code-in-asm: ;t.c:5: unsigned char f( void ) { ;ic:0: _entry($2) : ; genLabel ;ic:1: proc _f [k1 lr0:0 so:0]{ ia0 a2p0 re0 rm0 nos0 ru0 dp0}{unsigned-char function ( void ) fixed} ; genFunction ; --------------------------------- ; Function f ; --------------------------------- ; Register assignment is optimal. ; Stack space usage: 0 bytes. _f::...
My initial comment was just from the "outside" perspective (as a user, without looking in the sources). Looking in the sources and upstream sources: your patch modifies the linker's expression evaluator, which in upstream does introduce the use of '$' (documented in the manual as "Temporary Radix Operators" (Table 6)). Also checking, in the assembler $, . and _ are all a valid part part of the symbol name. So even my dot suggestion is probably too simple to be the safe solution? I'm still not sure....
some recent minor regressions (when compiling Z80N code)
some recent minor regressions (when compiling Z80N code)
Thanks. It's definitely an interesting approach, and as far as I know, currently missing functionality. The use of $ inside of the " quoted strings probably not the best idea anywhere outside of Windows hosts. I'd maybe use .start and .size instead, but I think it wouldn't be bad idea otherwise. The longer term potential problem is that the wish is to achieve less differences to the upstream, and upstream now has more complex handling of these.