aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2003-05-02 02:41:45 +0000
committerH.J. Lu <hjl.tools@gmail.com>2003-05-02 02:41:45 +0000
commita645d1eb84aab42ff0586f42a0191cda3128632f (patch)
tree8d99e504130e10c4a0ad8977da8fde6f2c014133
parentdf12615d919cb6b436e8b190c0ec63658e2b4097 (diff)
downloadfsf-binutils-gdb-a645d1eb84aab42ff0586f42a0191cda3128632f.zip
fsf-binutils-gdb-a645d1eb84aab42ff0586f42a0191cda3128632f.tar.gz
fsf-binutils-gdb-a645d1eb84aab42ff0586f42a0191cda3128632f.tar.bz2
2003-05-01 H.J. Lu <hjl@gnu.org>
* config/tc-ia64.c (ia64_check_label): New. * config/tc-ia64.h (tc_check_label): New. * read.c (read_a_source_file): Call tc_check_label after creating a user-defined label if defined.
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/config/tc-ia64.c11
-rw-r--r--gas/config/tc-ia64.h2
-rw-r--r--gas/read.c3
4 files changed, 24 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index faf60d7..c868802 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,11 @@
+2003-05-01 H.J. Lu <hjl@gnu.org>
+
+ * config/tc-ia64.c (ia64_check_label): New.
+ * config/tc-ia64.h (tc_check_label): New.
+
+ * read.c (read_a_source_file): Call tc_check_label after
+ creating a user-defined label if defined.
+
2003-05-02 Alan Modra <amodra@bigpond.net.au>
* config/tc-ppc.c (md_show_usage): Mention -a32, -a64, -l, -le, -b,
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 7b582aa..7a8d5f5 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -10721,3 +10721,14 @@ ia64_elf_section_change_hook (void)
{
dot_byteorder (-1);
}
+
+/* Check if a label should be made global. */
+void
+ia64_check_label (symbolS *label)
+{
+ if (*input_line_pointer == ':')
+ {
+ S_SET_EXTERNAL (label);
+ input_line_pointer++;
+ }
+}
diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h
index e0c8171..b79cfcc 100644
--- a/gas/config/tc-ia64.h
+++ b/gas/config/tc-ia64.h
@@ -105,6 +105,7 @@ extern void ia64_md_do_align PARAMS ((int, const char *, int, int));
extern void ia64_handle_align PARAMS ((fragS *f));
extern void ia64_after_parse_args PARAMS ((void));
extern void ia64_dwarf2_emit_offset PARAMS ((symbolS *, unsigned int));
+extern void ia64_check_label PARAMS ((symbolS *));
#define md_end() ia64_end_of_source ()
#define md_start_line_hook() ia64_start_line ()
@@ -137,6 +138,7 @@ extern void ia64_dwarf2_emit_offset PARAMS ((symbolS *, unsigned int));
#define md_elf_section_type(str,len) ia64_elf_section_type (str, len)
#define md_after_parse_args() ia64_after_parse_args ()
#define TC_DWARF2_EMIT_OFFSET ia64_dwarf2_emit_offset
+#define tc_check_label(l) ia64_check_label (l)
#define MAX_MEM_FOR_RS_ALIGN_CODE (15 + 16)
diff --git a/gas/read.c b/gas/read.c
index 90ef367..3c4c244 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -710,6 +710,9 @@ read_a_source_file (name)
line_label = colon (s); /* User-defined label. */
/* Put ':' back for error messages' sake. */
*input_line_pointer++ = ':';
+#ifdef tc_check_label
+ tc_check_label (line_label);
+#endif
/* Input_line_pointer->after ':'. */
SKIP_WHITESPACE ();
}