aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuan-Lin Chen <kuanlinchentw@gmail.com>2015-01-27 11:19:13 +0800
committerKuan-Lin Chen <kuanlinchentw@gmail.com>2015-01-27 11:19:13 +0800
commit20d79870f35f646e87c43d8c4fee936b4e0ed5a6 (patch)
tree122060bb1b7e819419f63917bad67e03ffd8d6bb
parent3bd3aeb46126494401e2f265b55fc255d5c5b517 (diff)
downloadbinutils-20d79870f35f646e87c43d8c4fee936b4e0ed5a6.zip
binutils-20d79870f35f646e87c43d8c4fee936b4e0ed5a6.tar.gz
binutils-20d79870f35f646e87c43d8c4fee936b4e0ed5a6.tar.bz2
NDS32/gas: Limit the format of pseudo instruction la.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-nds32.c11
2 files changed, 15 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 6dbdb79..2e7205b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2015-01-27 Kuan-Lin Chen <kuanlinchentw@gmail.com>
+ * config/tc-nds32.c (do_pseudo_la_internal): Limit the second argument
+ of instruction la to a symbol.
+
+2015-01-27 Kuan-Lin Chen <kuanlinchentw@gmail.com>
+
* config/tc-nds32.c (nds32_parse_name): Ignore when the input is
section name.
diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c
index 28e90ae..bf537b2 100644
--- a/gas/config/tc-nds32.c
+++ b/gas/config/tc-nds32.c
@@ -2311,9 +2311,18 @@ do_pseudo_bral (int argc, char *argv[], int pv ATTRIBUTE_UNUSED)
}
static void
-do_pseudo_la_internal (const char *arg_reg, const char *arg_label,
+do_pseudo_la_internal (const char *arg_reg, char *arg_label,
const char *line)
{
+ expressionS exp;
+
+ parse_expression (arg_label, &exp);
+ if (exp.X_op != O_symbol)
+ {
+ as_bad (_("la must use with symbol. '%s'"), line);
+ return;
+ }
+
relaxing = TRUE;
/* rt, label */
if (!nds32_pic && !strstr(arg_label, "@"))