Le 19/06/2017 à 23:03, Laurent Vivier a écrit : > Le 19/06/2017 à 22:53, Richard Henderson a écrit : >> >> It would also make me happier if we were to adjust the definition of >> fl0atx80 to more closely match m68k and those missing zeros. Shouldn't >> real hardware move instructions propagate those middle 2 bytes >> regardless of contents? >> >> Perhaps something like >> >> #ifdef TARGET_M68K >> typedef struct { >> uint64_t low; >> union { >> uin32_t high32; >> struct { >> #ifdef HOST_WORDS_BIGENDIAN >> uint16_t high, zero; >> #else >> uint16_t zero, high; >> #endif >> }; >> }; >> } floatx80; >> #else >> ... >> #endif >> >> (with a minor fix to make_floatx80 to use named initializers). >> >> Then you can use full 32-bit store insns when copying data here. Which >> also allows you to drop some of the shifts you're needing to add. > > OK, I will.
The softfloat is in the target independent code, so we can't adjust the size of floatx80 by target, TARGET_XXXX are poisoned when used in softfloat.h. Laurent