diff options
author | Kaz Kojima <kkojima@rr.iij4u.or.jp> | 2007-04-15 22:02:25 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@rr.iij4u.or.jp> | 2007-04-15 22:02:25 +0000 |
commit | 504d556f8ece34749ea5f4cc66aa530b48dbbbb7 (patch) | |
tree | 16d4ab69257a0433e3e7654c769021f28dbd1a1d /gas/config/tc-sh.c | |
parent | d175e196088d6b73cbd865083188709ac937ac0c (diff) | |
download | binutils-redhat-504d556f8ece34749ea5f4cc66aa530b48dbbbb7.tar.gz |
* config/tc-sh.c (align_test_frag_offset_fixed_p): Handle
rs_fill frags.
Diffstat (limited to 'gas/config/tc-sh.c')
-rw-r--r-- | gas/config/tc-sh.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index 6cb9c93bc4..3af26a958e 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -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; |