Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 13 Jul 2012 16:58:39 -0400 (EDT)
Subject: Re: mips port working! & remaining issues

> On Fri, Jul 13, 2012 at 03:36:03PM +0200, Luca Barbato wrote:
>> Currently hardfloat just pass the registers instead of doing some copy
>> over in a way or another and it is what people will use.
> That's the hardfloat ABI variant of EABI, but there's also base EABI
> that can use hard float behind the scenes (in the soft float
> functions) just by calling the __aeabi functions and having them
> implemented with hard-float. Although I suppose this usage does not
> require the registers to be preserved.
> Now I just need to work out a nice way to conditionally compile
> different ASM for each variant. Or I could have setjmp and longjmp
> just read a global var with the hardfloat flag in it, and jump over
> the float register code if it's false. Opinions on what's best?
Seems to me that the hardfloat flag (while slightly more bloated,
because you have code for both options) has room for adding runtime
checks: eventually, it might be possible to have that as a static
variable (I'm thinking char or something; at least 2 bits would be
needed for this method...), and if it is uninitialized (0x00?), try
saving the registers or something that will raise a SIGILL on pure
softfloat systems; the handler would set it to indicate softfloat
(0xFF?), while otherwise it sets it to indicate hardfloat (any
intermediate value?).
That particular approach might not work (can you install handlers in
*jmp safely?), but a runtime check would require using the hardfloat
In fact, you could use the flag to specify which FPU is present,
which is potentially useful for some other purposes down the road.
It would still be possible to set the flag at compile time.

Isaac Dunham

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.