On 11/10/18 14:34, Christophe Lyon wrote:
> 2018-XX-XX Christophe Lyon <[email protected]>
> Mickaël Guêné <[email protected]>
>
> 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.