aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn David Anglin <danglin@gcc.gnu.org>2019-05-28 23:24:23 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2019-05-28 23:24:23 +0000
commit6dbbb526a85248192c0c2406f584a16925957963 (patch)
tree10706a5bb29e0634fe699986f1b1eb58fd959d8e /gcc
parent441ed45ca2abe83f78be48e6ca816e9ec6e27222 (diff)
downloadgcc-6dbbb526a85248192c0c2406f584a16925957963.zip
gcc-6dbbb526a85248192c0c2406f584a16925957963.tar.gz
gcc-6dbbb526a85248192c0c2406f584a16925957963.tar.bz2
pa.c (hppa_profile_hook): Remove offset adjustment.
* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. From-SVN: r271720
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/pa/pa.c19
2 files changed, 9 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f48289f..094e175 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2019-05-28 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
+
2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
* internal-fn.c: Marked mask_load_direct as vectorizable.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index aa8e346..51c879d 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -4569,10 +4569,6 @@ output_deferred_profile_counters (void)
void
hppa_profile_hook (int label_no)
{
- /* We use SImode for the address of the function in both 32 and
- 64-bit code to avoid having to provide DImode versions of the
- lcla2 and load_offset_label_address insn patterns. */
- rtx reg = gen_reg_rtx (SImode);
rtx_code_label *label_rtx = gen_label_rtx ();
int reg_parm_stack_space = REG_PARM_STACK_SPACE (NULL_TREE);
rtx arg_bytes, begin_label_rtx, mcount, sym;
@@ -4604,18 +4600,13 @@ hppa_profile_hook (int label_no)
if (!use_mcount_pcrel_call)
{
/* The address of the function is loaded into %r25 with an instruction-
- relative sequence that avoids the use of relocations. The sequence
- is split so that the load_offset_label_address instruction can
- occupy the delay slot of the call to _mcount. */
+ relative sequence that avoids the use of relocations. We use SImode
+ for the address of the function in both 32 and 64-bit code to avoid
+ having to provide DImode versions of the lcla2 pattern. */
if (TARGET_PA_20)
- emit_insn (gen_lcla2 (reg, label_rtx));
+ emit_insn (gen_lcla2 (gen_rtx_REG (SImode, 25), label_rtx));
else
- emit_insn (gen_lcla1 (reg, label_rtx));
-
- emit_insn (gen_load_offset_label_address (gen_rtx_REG (SImode, 25),
- reg,
- begin_label_rtx,
- label_rtx));
+ emit_insn (gen_lcla1 (gen_rtx_REG (SImode, 25), label_rtx));
}
if (!NO_DEFERRED_PROFILE_COUNTERS)