奥村@松阪大です。
x86ではlong doubleは精度は10バイトですがABIレベルでは12バイトでアライ
ンしています。16バイトでアラインすることもできるようです。詳細はgccの
マニュアルを読んでください:
`-m128bit-long-double'
Control the size of `long double' type. i386 application binary
interface specify the size to be 12 bytes, while modern
architectures (Pentium and newer) prefer `long double' aligned to
8 or 16 byte boundary. This is impossible to reach with 12 byte
long doubles in the array accesses.
*Warning:* if you use the `-m128bit-long-double' switch, the
structures and arrays containing `long double' will change their
size as well as function calling convention for function taking
`long double' will be modified.
`-m96bit-long-double'
Set the size of `long double' to 96 bits as required by the i386
application binary interface. This is the default.
--
Haruhiko Okumura <okumura@xxxxxxxxxxxxxxxxx>
Matsusaka University, 1846 Kubo-cho, Matsusaka, 515-8511 Japan
http://www.matsusaka-u.ac.jp/~okumura/