On 7/24/07, Andrew Cagney <[EMAIL PROTECTED]> wrote:
David Mosberger-Tang wrote:
>
>>
>> This needs to work cross-platform; can you assume that a _host's_ <<long
>> double>> is a 128-bit type?
>
> Eh?  If "long double" doesn't match the host's format, you're screwed
> anyhow.  That's why I'd suggest to declare fpreg_t based on
> "unw_word_t" or something like that, like we do on ia64, for example.
>
>  --david

Ah, but i386 and x86-64 do not:

libunwind-i386/include/libunwind.h:typedef long double unw_tdep_fpreg_t;
libunwind/include/libunwind.h:typedef long double unw_tdep_fpreg_t;
libunwind-ppc64/include/libunwind.h:typedef long double unw_tdep_fpreg_t;
libunwind-x86_64/include/libunwind.h:typedef long double unw_tdep_fpreg_t;

where to the SSE registers fit in to this?

Yes, I noticed that too.  Me thinks it would be safer to remove "long
double" and declare fpreg_t only in terms of (known-size) integer
types.  Arun, what do you think?

 --david


_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to