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 fputilsthe 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.
