pa.h (MAX_PCREL17F_OFFSET): Define.

* config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
	* config/pa/pa.c (pa_attr_length_millicode_call): Use
	MAX_PCREL17F_OFFSET instead of fixed offset.
	(pa_attr_length_call): Likewise.
	(pa_attr_length_indirect_call): Likewise.

From-SVN: r188151
This commit is contained in:
John David Anglin 2012-06-03 12:46:44 +00:00 committed by John David Anglin
parent aba92f5fe0
commit a43434ffab
3 changed files with 20 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
* config/pa/pa.c (pa_attr_length_millicode_call): Use
MAX_PCREL17F_OFFSET instead of fixed offset.
(pa_attr_length_call): Likewise.
(pa_attr_length_indirect_call): Likewise.
2012-06-03 Oleg Endo <olegendo@gcc.gnu.org>
PR target/53512

View File

@ -7457,7 +7457,7 @@ pa_attr_length_millicode_call (rtx insn)
return 24;
else
{
if (!TARGET_LONG_CALLS && distance < 240000)
if (!TARGET_LONG_CALLS && distance < MAX_PCREL17F_OFFSET)
return 8;
if (TARGET_LONG_ABS_CALL && !flag_pic)
@ -7670,7 +7670,7 @@ pa_attr_length_call (rtx insn, int sibcall)
/* pc-relative branch. */
if (!TARGET_LONG_CALLS
&& ((TARGET_PA_20 && !sibcall && distance < 7600000)
|| distance < 240000))
|| distance < MAX_PCREL17F_OFFSET))
length += 8;
/* 64-bit plabel sequence. */
@ -8029,7 +8029,7 @@ pa_attr_length_indirect_call (rtx insn)
if (TARGET_FAST_INDIRECT_CALLS
|| (!TARGET_PORTABLE_RUNTIME
&& ((TARGET_PA_20 && !TARGET_SOM && distance < 7600000)
|| distance < 240000)))
|| distance < MAX_PCREL17F_OFFSET)))
return 8;
if (flag_pic)

View File

@ -1519,3 +1519,12 @@ do { \
#undef TARGET_HAVE_TLS
#define TARGET_HAVE_TLS true
#endif
/* The maximum offset in bytes for a PA 1.X pc-relative call to the
head of the preceding stub table. The selected offsets have been
chosen so that approximately one call stub is allocated for every
86.7 instructions. A long branch stub is two instructions when
not generating PIC code. For HP-UX and ELF targets, PIC stubs are
seven and four instructions, respectively. */
#define MAX_PCREL17F_OFFSET \
(flag_pic ? (TARGET_HPUX ? 198164 : 221312) : 240000)