aboutsummaryrefslogtreecommitdiff
path: root/libcpp/expr.c
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2020-11-02 14:40:10 +0000
committerChristophe Lyon <christophe.lyon@linaro.org>2020-11-02 14:40:10 +0000
commit637aeb6b8da36a621cf076068498adc5322be069 (patch)
treea4ea4dd47a42902f893a1bbe0ef5adca2f25fc03 /libcpp/expr.c
parentc7f49e0579329961c49ece7f9a048914bcc106d0 (diff)
downloadgcc-637aeb6b8da36a621cf076068498adc5322be069.zip
gcc-637aeb6b8da36a621cf076068498adc5322be069.tar.gz
gcc-637aeb6b8da36a621cf076068498adc5322be069.tar.bz2
arm: Fix multiple inheritance thunks for thumb-1 with -mpure-code
When -mpure-code is used, we cannot load delta from code memory (like we do without -mpure-code). This patch builds the value of mi_delta into r3 with a series of movs/adds/lsls. We also do some cleanup by not emitting the function address and delta via .word directives at the end of the thunk since we don't use them with -mpure-code. No need for new testcases, this bug was already identified by: g++.dg/ipa/pr46287-3.C g++.dg/ipa/pr46984.C g++.dg/opt/thunk1.C g++.dg/torture/pr46287.C g++.dg/torture/pr45699.C 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * config/arm/arm.c (arm_thumb1_mi_thunk): Build mi_delta in r3 and do not emit function address and delta when -mpure-code is used.
Diffstat (limited to 'libcpp/expr.c')
0 files changed, 0 insertions, 0 deletions