diff options
author | Alexandre Oliva <oliva@adacore.com> | 2023-11-09 12:26:41 -0300 |
---|---|---|
committer | Alexandre Oliva <oliva@gnu.org> | 2023-11-09 12:30:50 -0300 |
commit | 38b396d6db53b4ac32953ec74c63a0e5d9260043 (patch) | |
tree | 46ceb77ac8a8ae58bfd0cfe1b56a391b7c9d372c /libcpp/line-map.cc | |
parent | 94802548bc275d086b0742508a6c1e4afcd136bb (diff) | |
download | gcc-38b396d6db53b4ac32953ec74c63a0e5d9260043.zip gcc-38b396d6db53b4ac32953ec74c63a0e5d9260043.tar.gz gcc-38b396d6db53b4ac32953ec74c63a0e5d9260043.tar.bz2 |
i386 PIE: accept @GOTOFF in load/store multi base address
Looking at the code generated for sse2-{load,store}-multi.c with PIE,
I realized we could use UNSPEC_GOTOFF as a base address, and that this
would enable the test to use the vector insns expected by the tests
even with PIC, so I extended the base + offset logic used by the SSE2
multi-load/store peepholes to accept reg + symbolic base + offset too,
so that the test generated the expected insns even with PIE.
for gcc/ChangeLog
* config/i386/i386.cc (symbolic_base_address_p,
base_address_p): New, factored out from...
(extract_base_offset_in_addr): ... here and extended to
recognize REG+GOTOFF, as in gcc.target/i386/sse2-load-multi.c
and sse2-store-multi.c with PIE enabled by default.
Diffstat (limited to 'libcpp/line-map.cc')
0 files changed, 0 insertions, 0 deletions