aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2004-03-05 17:07:12 +0000
committerH.J. Lu <hjl.tools@gmail.com>2004-03-05 17:07:12 +0000
commitbae25f1962ed5d93828900ab046d4f0de6898db9 (patch)
tree11b769911df83e853c589961f0f994e50b20d4c9 /gas
parent9eb42ed178685583b492e2c71fff541aaedffb63 (diff)
downloadgdb-bae25f1962ed5d93828900ab046d4f0de6898db9.zip
gdb-bae25f1962ed5d93828900ab046d4f0de6898db9.tar.gz
gdb-bae25f1962ed5d93828900ab046d4f0de6898db9.tar.bz2
2004-03-05 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-ia64.c (md_assemble): Properly handle NULL align_frag. (ia64_handle_align): Don't abort if failed to add a stop bit.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-ia64.c15
2 files changed, 19 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9c283b5..6eaeed2 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2004-03-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/tc-ia64.c (md_assemble): Properly handle NULL
+ align_frag.
+ (ia64_handle_align): Don't abort if failed to add a stop bit.
+
2004-03-04 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in: Regenerated.
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 57ed9b3..6c4519e 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -10010,9 +10010,12 @@ md_assemble (str)
while (align_frag->fr_type != rs_align_code)
{
align_frag = align_frag->fr_next;
- assert (align_frag);
+ if (!align_frag)
+ break;
}
- if (align_frag->fr_next == frag_now)
+ /* align_frag can be NULL if there are directives in
+ between. */
+ if (align_frag && align_frag->fr_next == frag_now)
align_frag->tc_frag_data = 1;
}
@@ -10872,8 +10875,16 @@ ia64_handle_align (fragp)
if (!bytes && fragp->tc_frag_data)
{
if (fragp->fr_fix < 16)
+#if 1
+ /* FIXME: It won't work with
+ .align 16
+ alloc r32=ar.pfs,1,2,4,0
+ */
+ ;
+#else
as_bad_where (fragp->fr_file, fragp->fr_line,
_("Can't add stop bit to mark end of instruction group"));
+#endif
else
/* Bundles are always in little-endian byte order. Make sure
the previous bundle has the stop bit. */