Message ID | 20181011133518.17258-8-christophe.lyon@st.com |
---|---|
State | New |
Headers | show |
Series | FDPIC ABI for ARM | expand |
On 11/10/18 14:34, Christophe Lyon wrote: > 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. The hunk for this bit is missing. > > diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c > index 92ae24b..a6dce36 100644 > --- a/gcc/config/arm/arm.c > +++ b/gcc/config/arm/arm.c > @@ -19470,7 +19470,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; > @@ -19504,7 +19504,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)) > flag_pic && !TARGET_SINGLE_PIC_BASE && !TARGET_FDPIC && arm_pic_register != INVALID_REGNUM Might be worth lifting this out into a macro. R.
On Fri, 12 Oct 2018 at 13:45, Richard Earnshaw (lists) <Richard.Earnshaw@arm.com> wrote: > > On 11/10/18 14:34, Christophe Lyon wrote: > > 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. > > The hunk for this bit is missing. > Sigh, I forgot to remove it when I removed the code from v2. > > > > > diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c > > index 92ae24b..a6dce36 100644 > > --- a/gcc/config/arm/arm.c > > +++ b/gcc/config/arm/arm.c > > @@ -19470,7 +19470,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; > > @@ -19504,7 +19504,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)) > > > > flag_pic > && !TARGET_SINGLE_PIC_BASE && !TARGET_FDPIC > && arm_pic_register != INVALID_REGNUM > > Might be worth lifting this out into a macro. > > R.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 92ae24b..a6dce36 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -19470,7 +19470,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; @@ -19504,7 +19504,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))