diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2006-01-17 20:22:19 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2006-01-17 20:22:19 +0000 |
commit | 020a40353445c2e9cf17496e777edeca59573ee1 (patch) | |
tree | 60167f7dda7e44bbe4c14acf58d1a28a6405087e /libjava/java/net | |
parent | a5a97921829bb7d51f71fdb05f5ef0d65be3f354 (diff) | |
download | gcc-020a40353445c2e9cf17496e777edeca59573ee1.zip gcc-020a40353445c2e9cf17496e777edeca59573ee1.tar.gz gcc-020a40353445c2e9cf17496e777edeca59573ee1.tar.bz2 |
re PR target/592 ([ARM/Thumb] Poor choice of PIC register)
PR target/592
PR middle-end/11135
* arm.h (struct machine_function): Add pic_reg.
* arm.c (arm_pic_register): Make unsigned.
(arm_override_options): Only set arm_pic_register if
TARGET_SINGLE_PIC_BASE.
(use_return_insn): Only test for a pic register if it is fixed.
(arm_compute_save_reg0_reg12_mask): Likewise.
(thumb_compute_save_reg_mask): Likewise.
(legitimate_pic_operand): Factor out some known invariants.
(legitimize_pic_address): If we don't have a fixed pic register,
then set up a pseudo in the function entry sequence. Handle the
pic base being in a pseudo.
(arm_load_pic_register): Handle the pic register being in a pseudo.
(arm_expand_prologue): Only set up the pic register if it is fixed.
(thumb_expand_prologue): Likewise.
* arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
(pic_load_addr_based_insn): Likewise.
(builtin_setjmp_receiver): Don't restore the pic base if it isn't
fixed.
From-SVN: r109839
Diffstat (limited to 'libjava/java/net')
0 files changed, 0 insertions, 0 deletions