aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorRichard Ball <richard.ball@arm.com>2023-10-30 15:31:26 +0000
committerRichard Ball <richard.ball@arm.com>2023-10-30 15:31:26 +0000
commitfb1941d08fc3711b058c1e148e9ce7ed9b7dfbba (patch)
tree4dc93a6b920cd8c31fae00c132f673ca1dd45c97 /libcpp
parent7666d94db0684f04264712f3e3fdb542518960c5 (diff)
downloadgcc-fb1941d08fc3711b058c1e148e9ce7ed9b7dfbba.zip
gcc-fb1941d08fc3711b058c1e148e9ce7ed9b7dfbba.tar.gz
gcc-fb1941d08fc3711b058c1e148e9ce7ed9b7dfbba.tar.bz2
arm: move the switch tables for Arm to the RO data section.
Follow up patch to arm: Use deltas for Arm switch tables This patch moves the switch tables for Arm from the .text section into the .rodata section. gcc/ChangeLog: * config/arm/aout.h: Change to use the Lrtx label. * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Remove arm targets from (!target_pure_code) condition. (ADDR_VEC_ALIGN): Add align for tables in rodata section. * config/arm/arm.cc (arm_output_casesi): Alter the function to include .Lrtx label and remove adr instructions. * config/arm/arm.md (arm_casesi_internal): Use force_reg to generate ldr instructions that would otherwise be out of range, and change rtl to accommodate force reg. Additionally remove unnecessary register temp. (casesi): Remove pure code check for Arm. * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Remove arm targets from JUMP_TABLES_IN_TEXT_SECTION definition. gcc/testsuite/ChangeLog: * gcc.target/arm/arm-switchstatement.c: Alter the tests to change adr instruction to ldr.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions