This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[ARM/FDPIC v2 07/21] [ARM] FDPIC: Avoid saving/restoring r9 on stack since it is RO
- From: <christophe dot lyon at st dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Cc: <christophe dot lyon at linaro dot org>
- Date: Fri, 13 Jul 2018 18:11:02 +0200
- Subject: [ARM/FDPIC v2 07/21] [ARM] FDPIC: Avoid saving/restoring r9 on stack since it is RO
- References: <20180713161136.29104-1-christophe.lyon@st.com>
From: Christophe Lyon <christophe.lyon@linaro.org>
2018-XX-XX Christophe Lyon <christophe.lyon@st.com>
Mickaël Guêné <mickael.guene@st.com>
gcc/
* config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle
FDPIC.
(thumb1_compute_save_core_reg_mask): Likewise.
Change-Id: Ib534cf91704cdc740867b46a8fe45fda27894562
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 44c3b08..c9f391b 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -19486,7 +19486,7 @@ arm_compute_save_reg0_reg12_mask (void)
/* Also save the pic base register if necessary. */
if (flag_pic
- && !TARGET_SINGLE_PIC_BASE
+ && !TARGET_SINGLE_PIC_BASE && !TARGET_FDPIC
&& arm_pic_register != INVALID_REGNUM
&& crtl->uses_pic_offset_table)
save_reg_mask |= 1 << PIC_OFFSET_TABLE_REGNUM;
@@ -19520,7 +19520,7 @@ arm_compute_save_reg0_reg12_mask (void)
/* If we aren't loading the PIC register,
don't stack it even though it may be live. */
if (flag_pic
- && !TARGET_SINGLE_PIC_BASE
+ && !TARGET_SINGLE_PIC_BASE && !TARGET_FDPIC
&& arm_pic_register != INVALID_REGNUM
&& (df_regs_ever_live_p (PIC_OFFSET_TABLE_REGNUM)
|| crtl->uses_pic_offset_table))
@@ -19689,7 +19689,7 @@ thumb1_compute_save_core_reg_mask (void)
mask |= 1 << HARD_FRAME_POINTER_REGNUM;
if (flag_pic
- && !TARGET_SINGLE_PIC_BASE
+ && !TARGET_SINGLE_PIC_BASE && !TARGET_FDPIC
&& arm_pic_register != INVALID_REGNUM
&& crtl->uses_pic_offset_table)
mask |= 1 << PIC_OFFSET_TABLE_REGNUM;
--
2.6.3