On Sun, May 01, 2011 at 08:26:50PM +0200, Andreas Färber wrote: > Andreas Färber schrieb: > >CC i386-softmmu/op_helper.o > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:110: error: > >initializer element is not constant > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:110: error: > >(near initialization for `f15rk[0]') > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:111: error: > >initializer element is not constant > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:111: error: > >(near initialization for `f15rk[1]') > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:112: error: > >initializer element is not constant > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:112: error: > >(near initialization for `f15rk[2]') > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:113: error: > >initializer element is not constant > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:113: error: > >(near initialization for `f15rk[3]') > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:114: error: > >initializer element is not constant > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:114: error: > >(near initialization for `f15rk[4]') > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:115: error: > >initializer element is not constant > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:115: error: > >(near initialization for `f15rk[5]') > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:116: error: > >initializer element is not constant > >/export/home/andreas/QEMU/qemu/target-i386/op_helper.c:116: error: > >(near initialization for `f15rk[6]') > >gmake[1]: *** [op_helper.o] Error 1 > >make: *** [subdir-i386-softmmu] Error 2 > > > >Looks like an issue with make_floatx80(). > As suggested by Peter, I inspected the op_helper.c preprocessor output: > > # 108 "/export/home/andreas/QEMU/qemu/target-i386/op_helper.c" > static const CPU86_LDouble f15rk[7] = > { > ((floatx80) { 0x0000000000000000LL, 0x0000 }), > ((floatx80) { 0x8000000000000000LL, 0x3fff }), > ((floatx80) { 0xc90fdaa22168c235LL, 0x4000 }), > ((floatx80) { 0x9a209a84fbcff799LL, 0x3ffd }), > ((floatx80) { 0xb17217f7d1cf79acLL, 0x3ffe }), > ((floatx80) { 0xb8aa3b295c17f0bcLL, 0x3fff }), > ((floatx80) { 0xd49a784bcd1b8afeLL, 0x4000 }), > }; > > Doesn't look unexpected. > > typedef floatx80 CPU86_LDouble; > > and > > # 153 "/export/home/andreas/QEMU/qemu/fpu/softfloat.h" > typedef struct { > uint64_t low; > uint16_t high; > } floatx80; > > look okay, too. >
I have to say I don't really say why it doesn't compile. Do you have problems at other places, where a single floatx80 constant is initialized? My next series remove this table, and uses directly the constants name in helper_fld*_ST0(), so it may fix that issue. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net