* config/tc-sh.c (align_test_frag_offset_fixed_p): Handle
authorKaz Kojima <kkojima@rr.iij4u.or.jp>
Sun, 15 Apr 2007 22:02:25 +0000 (22:02 +0000)
committerKaz Kojima <kkojima@rr.iij4u.or.jp>
Sun, 15 Apr 2007 22:02:25 +0000 (22:02 +0000)
rs_fill frags.

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

index 246917b75881d9db3102e444e04309257da66706..2822c529addaf115d87aaf3867e9eac05b45d374 100644 (file)
@@ -1,3 +1,8 @@
+2007-04-15  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * config/tc-sh.c (align_test_frag_offset_fixed_p): Handle
+       rs_fill frags.
+
 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
 
        * Makefile.am: Add ACLOCAL_AMFLAGS.
index 6cb9c93bc450ac4a9a0102022c26315b7cf2ef81..3af26a958e678ccdbc51e12c3e018a7f21de6062 100644 (file)
@@ -847,9 +847,13 @@ align_test_frag_offset_fixed_p (const fragS *frag1, const fragS *frag2,
 
   /* Maybe frag2 is after frag1.  */
   frag = frag1;
-  while (frag->fr_type == rs_align_test)
+  while (frag->fr_type == rs_fill
+        || frag->fr_type == rs_align_test)
     {
-      off += frag->fr_fix;
+      if (frag->fr_type == rs_fill)
+       off += frag->fr_fix + frag->fr_offset * frag->fr_var;
+      else
+       off += frag->fr_fix;
       frag = frag->fr_next;
       if (frag == NULL)
        break;
@@ -863,9 +867,13 @@ align_test_frag_offset_fixed_p (const fragS *frag1, const fragS *frag2,
   /* Maybe frag1 is after frag2.  */
   off = frag1->fr_address - frag2->fr_address;
   frag = frag2;
-  while (frag->fr_type == rs_align_test)
+  while (frag->fr_type == rs_fill
+        || frag->fr_type == rs_align_test)
     {
-      off -= frag->fr_fix;
+      if (frag->fr_type == rs_fill)
+       off -= frag->fr_fix + frag->fr_offset * frag->fr_var;
+      else
+       off -= frag->fr_fix;
       frag = frag->fr_next;
       if (frag == NULL)
        break;