> -----Original Message----- > From: Richard Earnshaw > Sent: Thursday, November 14, 2013 18:00 > To: Joey Ye > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [patch] [arm] New option for PIC offset unfixed > > On 14/11/13 08:23, Joey Ye wrote: > >> -----Original Message----- > >> From: Richard Earnshaw > >> Sent: Thursday, November 14, 2013 0:57 > >> To: Joey Ye > >> Cc: gcc-patches@gcc.gnu.org > >> Subject: Re: [patch] [arm] New option for PIC offset unfixed > >> > >>> So you are suggesting change like this: > >>> + Target Report Var(arm_pic_data_is_text_relative) Init(-1) > >>> > >>> + if (arm_pic_data_is_text_relative < 0 && TARGET_VXWORKS_RTP) > >>> + arm_pic_data_is_text_relative = 0; > >>> + else > >>> + arm_pic_data_is_text_relative = 1; > >>> > >> > >> No, use the global_options_set structure to find out if the user has > >> set > > the > >> value. > > Thank pointing this out. Here is the latest patch with > > global_options_set > > > > > > This is OK. Thanks! > > However, don't you also need to fix the other references to > TARGET_VXWORKS_RTP; eg pic_offset_arm in arm.md? The only reference of TARGET_VXWORKS_RTP in arm.md is define_insn pic_offset_arm, which is used in arm_load_pic_register as if (TARGET_VXWORKS_RTP) { ... emit_insn (gen_pic_offset_arm (pic_reg, pic_reg, pic_tmp)); }
Apparently it is a VxWorks specific pattern, I don't think it should be changed, though I'm not 100% sure. - Joey