OSDN Git Service

* config/tc-xtensa.c (total_frag_text_expansion): New.
authorbwilson <bwilson>
Fri, 5 Nov 2004 17:25:33 +0000 (17:25 +0000)
committerbwilson <bwilson>
Fri, 5 Nov 2004 17:25:33 +0000 (17:25 +0000)
(md_estimate_size_before_relax): Use it.
(find_address_of_next_align_frag): Likewise.

gas/ChangeLog
gas/config/tc-xtensa.c

index 9dc94d1..184a579 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-05  Sterling Augustine  <sterling@tensilica.com>
+
+       * config/tc-xtensa.c (total_frag_text_expansion): New.
+       (md_estimate_size_before_relax): Use it.
+       (find_address_of_next_align_frag): Likewise.
+
 2004-11-05  Tomer Levi  <Tomer.Levi@nsc.com>
 
        * config/tc-crx.c: Rename argument types.
index a2eaf96..340fb18 100644 (file)
@@ -442,6 +442,7 @@ static void set_literal_pool_location (segT, fragS *);
 static void xtensa_set_frag_assembly_state (fragS *);
 static void finish_vinsn (vliw_insn *);
 static bfd_boolean emit_single_op (TInsn *);
+static int total_frag_text_expansion (fragS *);
 
 /* Alignment Functions.  */
 
@@ -5706,7 +5707,7 @@ md_atof (int type, char *litP, int *sizeP)
 int
 md_estimate_size_before_relax (fragS *fragP, segT seg ATTRIBUTE_UNUSED)
 {
-  return fragP->tc_frag_data.text_expansion[0];
+  return total_frag_text_expansion (fragP);
 }
 
 
@@ -6762,6 +6763,19 @@ emit_single_op (TInsn *orig_insn)
 }
 
 
+static int
+total_frag_text_expansion (fragS *fragP)
+{
+  int slot;
+  int total_expansion = 0;
+
+  for (slot = 0; slot < MAX_SLOTS; slot++)
+    total_expansion += fragP->tc_frag_data.text_expansion[slot];
+
+  return total_expansion;
+}
+
+
 /* Emit a vliw instruction to the current fragment.  */
 
 static void
@@ -8641,8 +8655,7 @@ find_address_of_next_align_frag (fragS **fragPP,
                  (*widens)++;
                  break;
                }
-             /* FIXME: shouldn't this add the expansion of all slots?  */
-             address += fragP->tc_frag_data.text_expansion[0];
+             address += total_frag_text_expansion (fragP);;
              break;
 
            case RELAX_IMMED: