pa.c (hppa_profile_hook): Remove offset adjustment.
authorJohn David Anglin <danglin@gcc.gnu.org>
Tue, 28 May 2019 23:24:23 +0000 (23:24 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Tue, 28 May 2019 23:24:23 +0000 (23:24 +0000)
* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.

From-SVN: r271720

gcc/ChangeLog
gcc/config/pa/pa.c

index f48289f0f56d539286a8f8752af7d7a1f9a80789..094e175f7975685115aa269751701c30301160b0 100644 (file)
@@ -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.
index aa8e346ccea9342e833663ece2a1d9be8dc953aa..51c879d5a0a58dcd41f48216946f6da5320bdb23 100644 (file)
@@ -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)