PowerPC64: Tidy stub type changes
authorAlan Modra <amodra@gmail.com>
Mon, 27 Jun 2022 07:45:22 +0000 (17:15 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 28 Jun 2022 03:32:26 +0000 (13:02 +0930)
It made sense before I started using separate fields for main type and
sub type to add a difference in main type to the type (thus keeping
sub type unchanged).  Not so much now.

* elf64-ppc.c (ppc_merge_stub): Simplify stub type change.
(ppc_size_one_stub): Likewise.

bfd/elf64-ppc.c

index 04f2c1465357feb55c134572820971d38433c0bc..9491a0f9e66bb0f8abed3486a0ff892648d06397 100644 (file)
@@ -3969,7 +3969,7 @@ ppc_merge_stub (struct ppc_link_hash_table *htab,
 
   old_type = stub_entry->type;
   if (old_type.main == ppc_stub_plt_branch)
-    old_type.main += ppc_stub_long_branch - ppc_stub_plt_branch;
+    old_type.main = ppc_stub_long_branch;
 
   if (old_type.main != stub_type.main
       || (old_type.sub != stub_type.sub
@@ -12300,7 +12300,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
     {
       /* Reset the stub type from the plt branch variant in case we now
         can reach with a shorter stub.  */
-      stub_entry->type.main += ppc_stub_long_branch - ppc_stub_plt_branch;
+      stub_entry->type.main = ppc_stub_long_branch;
     }
 
   if (stub_entry->type.main == ppc_stub_long_branch
@@ -12382,7 +12382,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
              stub_entry->group->stub_sec->flags |= SEC_RELOC;
            }
 
-         stub_entry->type.main += ppc_stub_plt_branch - ppc_stub_long_branch;
+         stub_entry->type.main = ppc_stub_plt_branch;
          if (!stub_entry->type.r2save)
            {
              size = 12;
@@ -12462,7 +12462,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
       /* If the branch can't reach, use a plt_branch.  */
       if (off + (1 << 25) >= (bfd_vma) (1 << 26))
        {
-         stub_entry->type.main += ppc_stub_plt_branch - ppc_stub_long_branch;
+         stub_entry->type.main = ppc_stub_plt_branch;
          size += 4;
        }
       else if (info->emitrelocations)