First part is fine, but the last move.l shouldn't have the 4 displacement. Looks like the compiler somehow "thinks" fsmoved only increments a1 by 4 (while it's actually 8 since it's a double).
Don't know enough about GCC internals to know where to look though :(
Hi Bebbo,
Thanks for all your hard work. Ran into a small issue (CEX link: http://franke.ms/cex/z/8EEW9v) reproduced below:
Compiled with
m68k-amigaos-gcc -c -O3 -mregparm=4 -m68040 -O3 -mhard-float -fomit-frame-pointer
Produces this code:First part is fine, but the last move.l shouldn't have the 4 displacement. Looks like the compiler somehow "thinks" fsmoved only increments a1 by 4 (while it's actually 8 since it's a double).
Don't know enough about GCC internals to know where to look though :(