summaryrefslogtreecommitdiff
path: root/block/io.c
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2018-05-31 14:50:51 +0100
committerPeter Maydell <peter.maydell@linaro.org>2018-05-31 14:50:51 +0100
commit6c2be133a7478e443c99757b833d0f265c48e0a6 (patch)
tree189f5d1d33673312ba739adfa55f866eea2b1092 /block/io.c
parent34ffacae085914fce54590ea84bae9c6ad95e2a4 (diff)
downloadqemu-6c2be133a7478e443c99757b833d0f265c48e0a6.zip
tcg: Fix helper function vs host abi for float16
Depending on the host abi, float16, aka uint16_t, values are passed and returned either zero-extended in the host register or with garbage at the top of the host register. The tcg code generator has so far been assuming garbage, as that matches the x86 abi, but this is incorrect for other host abis. Further, target/arm has so far been assuming zero-extended results, so that it may store the 16-bit value into a 32-bit slot with the high 16-bits already clear. Rectify both problems by mapping "f16" in the helper definition to uint32_t instead of (a typedef for) uint16_t. This forces the host compiler to assume garbage in the upper 16 bits on input and to zero-extend the result on output. Cc: qemu-stable@nongnu.org Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Laurent Desnogues <laurent.desnogues@gmail.com> Message-id: 20180522175629.24932-1-richard.henderson@linaro.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'block/io.c')
0 files changed, 0 insertions, 0 deletions