diff options
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-i860.c | 16 | ||||
-rw-r--r-- | gas/config/tc-i860.h | 5 |
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) |