aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@adacore.com>2023-11-09 12:26:41 -0300
committerAlexandre Oliva <oliva@gnu.org>2023-11-09 12:30:50 -0300
commit38b396d6db53b4ac32953ec74c63a0e5d9260043 (patch)
tree46ceb77ac8a8ae58bfd0cfe1b56a391b7c9d372c /libcpp
parent94802548bc275d086b0742508a6c1e4afcd136bb (diff)
downloadgcc-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')
0 files changed, 0 insertions, 0 deletions