Re: [AD] ftofix optimisation

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


Erik Sandberg <erik.sandberg@xxxxxxxxxx> writes:
> Using pure assembler seems like the cleanest way to do it: it would not
> require any dirty IEEE detections, it would be fairly portable, and it
> would not slow it down any system. The code would be fairly compact too
> (usually around 8 executed instns)

Sounds good to me.

> [slightly OT] Have you ever discussed switching to NASM for the assembler
> files?

It's been mentioned before, but never struck me as such a great idea. The 
big advantage to NASM is that it's very portable, so no ugly hacks would be 
required to get things working with other compilers. But we've already 
managed to get GNU as working portably as well, albeit with some 
restrictions and evilness in the Watcom makefile, which leaves several 
reasons not to switch:

- GNU as is already part of djgpp, Linux, and BeOS. That leaves only MSVC 
and Watcom people having to download it specially, wheras everyone would 
have to download NASM (assuming that a majority of Allegro users don't 
already program in asm). Especially on Linux, but also to a lesser extent 
for djgpp, I'm very committed to source format distributions, which means 
building out of the box without requiring any non-standard tools.

- We already have a lot of code written in GNU format, and it would be a 
huge job to convert.

- Personal bias: I detest that backwards Intel asm format. Of course, plenty 
of other people dislike AT&T syntax, but having written a majority of the 
assembler routines myself, I think it is fair for me to choose whichever I 
prefer :-)

The really non-portable part is inline asm, but no matter what assembler you 
use that has to be rewritten for each compiler, so there is no way around 
that. There isn't much of it, anyway.


--
Shawn Hargreaves - shawn@xxxxxxxxxx - http://www.talula.demon.co.uk/
"A binary is barely software: it's more like hardware on a floppy disk."



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/