2003-08-07 Jason Eckhardt <jle@rice.edu>
authorJason Eckhardt <jle@rice.edu>
Thu, 7 Aug 2003 19:20:45 +0000 (19:20 +0000)
committerJason Eckhardt <jle@rice.edu>
Thu, 7 Aug 2003 19:20:45 +0000 (19:20 +0000)
        * 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.

gas/ChangeLog
gas/config/tc-i860.c
gas/config/tc-i860.h

index 34e8800..bc9f751 100644 (file)
@@ -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.
index f5e4457..8ee4c07 100644 (file)
@@ -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++;
+    }
+}
+
index c5c39b4..4d0229d 100644 (file)
@@ -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)