On 01/09/2018 06:43 AM, Peter Maydell wrote: > On 9 January 2018 at 14:20, Laurent Vivier <laur...@vivier.eu> wrote: >> Le 09/01/2018 à 15:14, Peter Maydell a écrit : >>> Is gcc's codegen still bad enough that we have to default to not >>> using the type-checking versions? If so, maybe we could at least >>> enable the type-checking on an --enable-debug build, so it doesn't >>> bitrot all the time. >> >> What means "bad enough"? for some targets it works fine. > > I mean whatever the problem was that made us write the comment > A sufficiently clever compiler and > sane ABI should be able to see though these structs. However > x86/gcc 3.x seems to struggle a bit, so leave them disabled by default.
E.g. the i386 ABI is *not* sane in this respect. Nor is sparcv8plus. I'd have to check on the others. If we enable USE_SOFTFLOAT_STRUCT_TYPES, then we *must* remove the markup for f32 and f64 from include/exec/helper-head.h, because structures are passed differently from integers as parameters and/or return values. I personally do not think USE_SOFTFLOAT_STRUCT_TYPES is worth the headache. r~