48Fermer50
Kevin KoflerLe 09/08/2007 à 16:11
::i
spectras (./43) :
On x86-64 the ABI has both long double and float128 and they're both
sizeof()==16. This problem has not yet been solved - float128 and int128 are optional in the ABI so we haven't thought much about it yet.

Attention, le sizeof est le même, mais long double utilise seulement 80 des 128 bits.

D'ailleurs, le float (et double et long double, c'est tout le même type) de TIGCC fait aussi 80 bits, mais sans padding (sizeof(float)==10), notre GCC est patché dans tous les sens pour permettre ça (un sizeof qui n'est pas une puissance de 2, ni même un multiple de la taille d'un registre), et bien sûr pour le codage BCD aussi. Les floats sont ce qui demande le plus de patches dans TIGCC.