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 | 0838d2ac72ee48c60ff25beeb4ec9175644aca4e (patch) | |
tree | 8725e4d43a4e1b7e86c83bdf620cf8d4958e55ff /gas/config/tc-sh.c | |
parent | e9043d6669a9cd89059e56123f7bcf5e73382185 (diff) | |
download | gdb-0838d2ac72ee48c60ff25beeb4ec9175644aca4e.zip gdb-0838d2ac72ee48c60ff25beeb4ec9175644aca4e.tar.gz gdb-0838d2ac72ee48c60ff25beeb4ec9175644aca4e.tar.bz2 |
* 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 6cb9c93..3af26a9 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; |