Modify the ARNM assembler to accept the omission of the immediate argument for the...
[deliverable/binutils-gdb.git] / gas / config / tc-hppa.c
index f5cdc2c09ff9ae23cddef28d551c719a96dc788f..12279f2c6f572a137be092b45e7aba54b49db6c4 100644 (file)
@@ -1,5 +1,5 @@
 /* tc-hppa.c -- Assemble for the PA
-   Copyright (C) 1989-2016 Free Software Foundation, Inc.
+   Copyright (C) 1989-2019 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -1365,15 +1365,15 @@ tc_gen_reloc (asection *section, fixS *fixp)
   /* ??? It might be better to hide this +8 stuff in tc_cfi_emit_pcrel_expr,
      undefine DIFF_EXPR_OK, and let these sorts of complex expressions fail
      when R_HPPA_COMPLEX == R_PARISC_UNIMPLEMENTED.  */
-  if (fixp->fx_r_type == (bfd_reloc_code_real_type) R_HPPA_COMPLEX
+  if (fixp->fx_r_type == (int) R_HPPA_COMPLEX
       && fixp->fx_pcrel)
     {
-      fixp->fx_r_type = R_HPPA_PCREL_CALL;
+      fixp->fx_r_type = (int) R_HPPA_PCREL_CALL;
       fixp->fx_offset += 8;
     }
 
   codes = hppa_gen_reloc_type (stdoutput,
-                              fixp->fx_r_type,
+                              (int) fixp->fx_r_type,
                               hppa_fixp->fx_r_format,
                               hppa_fixp->fx_r_field,
                               fixp->fx_subsy != NULL,
@@ -1440,7 +1440,7 @@ tc_gen_reloc (asection *section, fixS *fixp)
          /* Facilitate hand-crafted unwind info.  */
          if (strcmp (section->name, UNWIND_SECTION_NAME) == 0)
            code = R_PARISC_SEGREL32;
-         /* Fall thru */
+         /* Fallthru */
 
        default:
          reloc->addend = fixp->fx_offset;
@@ -1608,7 +1608,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED,
 valueT
 md_section_align (asection *segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
   int align2 = (1 << align) - 1;
 
   return (size + align2) & ~align2;
@@ -5216,9 +5216,7 @@ pa_ip (char *str)
              s = expr_end;
              CHECK_FIELD (num, 63, 0, strict);
              if (num & 0x20)
-               ;
-             else
-               opcode |= (1 << 13);
+               opcode &= ~(1 << 13);
              INSERT_FIELD_AND_CONTINUE (opcode, num & 0x1f, 21);
 
            /* Handle a 5 bit immediate at 10.  */
@@ -5432,6 +5430,7 @@ pa_ip (char *str)
                {
                case SGL:
                  opcode |= 0x20;
+                 /* Fall through.  */
                case DBL:
                  the_insn.fpof1 = flag;
                  continue;
@@ -5686,7 +5685,7 @@ pa_ip (char *str)
       /* If this instruction is specific to a particular architecture,
         then set a new architecture.  This automatic promotion crud is
         for compatibility with HP's old assemblers only.  */
-      if (match == TRUE
+      if (match
          && bfd_get_mach (stdoutput) < insn->arch
          && !bfd_set_arch_mach (stdoutput, bfd_arch_hppa, insn->arch))
        {
@@ -5788,7 +5787,7 @@ md_assemble (char *str)
   if (the_insn.reloc != R_HPPA_NONE)
     fix_new_hppa (frag_now, (to - frag_now->fr_literal), 4, NULL,
                  (offsetT) 0, &the_insn.exp, the_insn.pcrel,
-                 the_insn.reloc, the_insn.field_selector,
+                 (int) the_insn.reloc, the_insn.field_selector,
                  the_insn.format, the_insn.arg_reloc, 0);
 
 #ifdef OBJ_ELF
@@ -5963,7 +5962,7 @@ pa_build_unwind_subspace (struct call_info *call_info)
   char *name, *p;
   symbolS *symbolP;
 
-  if ((bfd_get_section_flags (stdoutput, now_seg)
+  if ((bfd_section_flags (now_seg)
        & (SEC_ALLOC | SEC_LOAD | SEC_READONLY))
       != (SEC_ALLOC | SEC_LOAD | SEC_READONLY))
     return;
@@ -5990,7 +5989,8 @@ pa_build_unwind_subspace (struct call_info *call_info)
   else
     {
       symbolP = symbol_new (name, now_seg,
-                           S_GET_VALUE (call_info->start_symbol), frag_now);
+                           S_GET_VALUE (call_info->start_symbol),
+                           symbol_get_frag (call_info->start_symbol));
       gas_assert (symbolP);
       S_CLEAR_EXTERNAL (symbolP);
       symbol_table_insert (symbolP);
@@ -6006,10 +6006,9 @@ pa_build_unwind_subspace (struct call_info *call_info)
   if (seg == ASEC_NULL)
     {
       seg = subseg_new (UNWIND_SECTION_NAME, 0);
-      bfd_set_section_flags (stdoutput, seg,
-                            SEC_READONLY | SEC_HAS_CONTENTS
-                            | SEC_LOAD | SEC_RELOC | SEC_ALLOC | SEC_DATA);
-      bfd_set_section_alignment (stdoutput, seg, 2);
+      bfd_set_section_flags (seg, (SEC_READONLY | SEC_HAS_CONTENTS | SEC_LOAD
+                                  | SEC_RELOC | SEC_ALLOC | SEC_DATA));
+      bfd_set_section_alignment (seg, 2);
     }
 
   subseg_set (seg, 0);
@@ -7024,7 +7023,7 @@ pa_procend (int unused ATTRIBUTE_UNUSED)
 
 #ifdef OBJ_ELF
   /* ELF needs to mark the end of each function so that it can compute
-     the size of the function (apparently its needed in the symbol table).  */
+     the size of the function (apparently it's needed in the symbol table).  */
   hppa_elf_mark_end_of_function ();
 #endif
 
@@ -7533,14 +7532,13 @@ pa_subspace (int create_new)
        seg_info (section)->bss = 1;
 
       /* Now set the flags.  */
-      bfd_set_section_flags (stdoutput, section, applicable);
+      bfd_set_section_flags (section, applicable);
 
       /* Record any alignment request for this section.  */
       record_alignment (section, exact_log2 (alignment));
 
       /* Set the starting offset for this section.  */
-      bfd_set_section_vma (stdoutput, section,
-                          pa_subspace_start (space, quadrant));
+      bfd_set_section_vma (section, pa_subspace_start (space, quadrant));
 
       /* Now that all the flags are set, update an existing subspace,
         or create a new one.  */
@@ -7614,7 +7612,7 @@ pa_spaces_begin (void)
        {
          text_section = segment;
          applicable = bfd_applicable_section_flags (stdoutput);
-         bfd_set_section_flags (stdoutput, segment,
+         bfd_set_section_flags (segment,
                                 applicable & (SEC_ALLOC | SEC_LOAD
                                               | SEC_RELOC | SEC_CODE
                                               | SEC_READONLY
@@ -7624,7 +7622,7 @@ pa_spaces_begin (void)
        {
          data_section = segment;
          applicable = bfd_applicable_section_flags (stdoutput);
-         bfd_set_section_flags (stdoutput, segment,
+         bfd_set_section_flags (segment,
                                 applicable & (SEC_ALLOC | SEC_LOAD
                                               | SEC_RELOC
                                               | SEC_HAS_CONTENTS));
@@ -7634,13 +7632,13 @@ pa_spaces_begin (void)
        {
          bss_section = segment;
          applicable = bfd_applicable_section_flags (stdoutput);
-         bfd_set_section_flags (stdoutput, segment,
+         bfd_set_section_flags (segment,
                                 applicable & SEC_ALLOC);
        }
       else if (!strcmp (pa_def_subspaces[i].name, "$LIT$"))
        {
          applicable = bfd_applicable_section_flags (stdoutput);
-         bfd_set_section_flags (stdoutput, segment,
+         bfd_set_section_flags (segment,
                                 applicable & (SEC_ALLOC | SEC_LOAD
                                               | SEC_RELOC
                                               | SEC_READONLY
@@ -7649,7 +7647,7 @@ pa_spaces_begin (void)
       else if (!strcmp (pa_def_subspaces[i].name, "$MILLICODE$"))
        {
          applicable = bfd_applicable_section_flags (stdoutput);
-         bfd_set_section_flags (stdoutput, segment,
+         bfd_set_section_flags (segment,
                                 applicable & (SEC_ALLOC | SEC_LOAD
                                               | SEC_RELOC
                                               | SEC_READONLY
@@ -7658,7 +7656,7 @@ pa_spaces_begin (void)
       else if (!strcmp (pa_def_subspaces[i].name, "$UNWIND$"))
        {
          applicable = bfd_applicable_section_flags (stdoutput);
-         bfd_set_section_flags (stdoutput, segment,
+         bfd_set_section_flags (segment,
                                 applicable & (SEC_ALLOC | SEC_LOAD
                                               | SEC_RELOC
                                               | SEC_READONLY
@@ -8319,7 +8317,8 @@ hppa_fix_adjustable (fixS *fixp)
   /* LR/RR selectors are implicitly used for a number of different relocation
      types.  We must ensure that none of these types are adjusted (see below)
      even if they occur with a different selector.  */
-  code = elf_hppa_reloc_final_type (stdoutput, fixp->fx_r_type,
+  code = elf_hppa_reloc_final_type (stdoutput,
+                                   (int) fixp->fx_r_type,
                                    hppa_fix->fx_r_format,
                                    hppa_fix->fx_r_field);
 
@@ -8529,7 +8528,7 @@ pa_vtable_entry (int ignore ATTRIBUTE_UNUSED)
 {
   struct fix *new_fix;
 
-  new_fix = obj_elf_vtable_entry (0);
+  new_fix = obj_elf_get_vtable_entry ();
 
   if (new_fix)
     {
@@ -8550,7 +8549,7 @@ pa_vtable_inherit (int ignore ATTRIBUTE_UNUSED)
 {
   struct fix *new_fix;
 
-  new_fix = obj_elf_vtable_inherit (0);
+  new_fix = obj_elf_get_vtable_inherit ();
 
   if (new_fix)
     {
This page took 0.04009 seconds and 4 git commands to generate.