Review Board 2.0.15


x86, ext: fix buf overflow in fp80 ops; pad fp80_t in fputils

Review Request #3690 - Created Oct. 28, 2016 and submitted - Latest diff uploaded

Information
Tony Gutierrez
gem5
default
Reviewers
Default

Changeset 11894:be1b22d0c36a
---------------------------
x86, ext: fix buf overflow in fp80 ops; pad fp80_t in fputils

the compiler seems to align the fp80_t data struct, so here we add
explicit padding to avoid confusion.

storeFloat80() will try to write all 16B of the fp80_t to the bits[] array
of the calling instruction. this happens because storeFloat80() points its
local fp80_t* to the memory the caller allocated for bits[], which is only
10B, thus we get an overflow that is flagged by clang's asan. here we
get the fp80 value first, the memcpy() the bits[] of fp80_t to the mem
allocated by the caller.

some of the x86 FP ops also use char to represent 8b types, while the fp80
struct uses uint8_t, so here we make the x86 ops use uint8_t as well.