aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-i860.c16
-rw-r--r--gas/config/tc-i860.h5
3 files changed, 27 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 34e8800..bc9f751 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2003-08-07 Jason Eckhardt <jle@rice.edu>
+
+ * config/tc-i860.c (i860_check_label): New function.
+ * config/tc-i860.h (i860_check_label): New prototype.
+ (tc_check_label): Define macro as i860_check_label.
+
2003-08-06 Jason Eckhardt <jle@rice.edu>
* config/tc-i860.c (s_align_wrapper): New function and prototype.
diff --git a/gas/config/tc-i860.c b/gas/config/tc-i860.c
index f5e4457..8ee4c07 100644
--- a/gas/config/tc-i860.c
+++ b/gas/config/tc-i860.c
@@ -1527,3 +1527,19 @@ i860_handle_align (fragS *fragp)
fragp->fr_var = 4;
}
+/* This is called after a user-defined label is seen. We check
+ if the label has a double colon (valid in Intel syntax mode only),
+ in which case it should be externalized. */
+
+void
+i860_check_label (symbolS *labelsym)
+{
+ /* At this point, the current line pointer is sitting on the character
+ just after the first colon on the label. */
+ if (target_intel_syntax && *input_line_pointer == ':')
+ {
+ S_SET_EXTERNAL (labelsym);
+ input_line_pointer++;
+ }
+}
+
diff --git a/gas/config/tc-i860.h b/gas/config/tc-i860.h
index c5c39b4..4d0229d 100644
--- a/gas/config/tc-i860.h
+++ b/gas/config/tc-i860.h
@@ -86,6 +86,11 @@ extern int target_big_endian;
visible symbols can be overridden. */
#define EXTERN_FORCE_RELOC 0
+/* Bits for post-processing of a user defined label to check if
+ it has a double colon (Intel syntax only). */
+extern void i860_check_label (symbolS *labelsym);
+#define tc_check_label(ls) i860_check_label (ls)
+
/* Bits for filling in rs_align_code fragments with NOPs. */
extern void i860_handle_align (struct frag *);
#define HANDLE_ALIGN(fragp) i860_handle_align (fragp)