summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJie Zhang <jie.zhang@analog.com>2009-09-03 16:32:42 +0000
committerJie Zhang <jie.zhang@analog.com>2009-09-03 16:32:42 +0000
commit3fa28118f6be430121d6251a3f3f508bc742b815 (patch)
treebf2599dd5f656992b2a9028d65308fe667c285e4
parentde3e743a87af90a8b066065d526886dac578ad53 (diff)
downloadbinutils-redhat-3fa28118f6be430121d6251a3f3f508bc742b815.tar.gz
* config/tc-bfin.c (md_assemble): Bump line counters if there is
EOL in the instruction. testsuite/ * gas/bfin/line_number.l, gas/bfin/line_number.s: New test. * gas/bfin/bfin.exp: Add the new test.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-bfin.c4
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/bfin/bfin.exp1
-rw-r--r--gas/testsuite/gas/bfin/line_number.l3
-rw-r--r--gas/testsuite/gas/bfin/line_number.s4
6 files changed, 22 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 8ea492817c..254a5fb2bd 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2009-09-03 Jie Zhang <jie.zhang@analog.com>
+ * config/tc-bfin.c (md_assemble): Bump line counters if there is
+ EOL in the instruction.
+
+2009-09-03 Jie Zhang <jie.zhang@analog.com>
+
* config/bfin-defs.h (IS_GENREG): Define.
(IS_DAGREG): Define.
(IS_SYSREG): Define.
diff --git a/gas/config/tc-bfin.c b/gas/config/tc-bfin.c
index 958f63da25..4a02b6915e 100644
--- a/gas/config/tc-bfin.c
+++ b/gas/config/tc-bfin.c
@@ -712,6 +712,10 @@ md_assemble (char *line)
#ifdef OBJ_ELF
dwarf2_emit_insn (insn_size);
#endif
+
+ while (*line++ != '\0')
+ if (*line == '\n')
+ bump_line_counters ();
}
/* Parse one line of instructions, and generate opcode for it.
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 0c8b3e44db..90b5515754 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2009-09-03 Jie Zhang <jie.zhang@analog.com>
+ * gas/bfin/line_number.l, gas/bfin/line_number.s: New test.
+ * gas/bfin/bfin.exp: Add the new test.
+
+2009-09-03 Jie Zhang <jie.zhang@analog.com>
+
* gas/bfin/expected_move_errors.s,
gas/bfin/expected_move_errors.l: Add "LC1 = I0;".
* gas/bfin/move.s, gas/bfin/move.d: Remove "CYCLES = A0.W".
diff --git a/gas/testsuite/gas/bfin/bfin.exp b/gas/testsuite/gas/bfin/bfin.exp
index 59eed655ea..7a70a4c29b 100644
--- a/gas/testsuite/gas/bfin/bfin.exp
+++ b/gas/testsuite/gas/bfin/bfin.exp
@@ -17,6 +17,7 @@ if [istarget bfin*-*-*] {
run_dump_test "flow"
run_dump_test "flow2"
run_list_test "invalid_arith_mode" ""
+ run_list_test "line_number" ""
run_dump_test "load"
run_dump_test "logical"
run_dump_test "logical2"
diff --git a/gas/testsuite/gas/bfin/line_number.l b/gas/testsuite/gas/bfin/line_number.l
new file mode 100644
index 0000000000..964d809ad6
--- /dev/null
+++ b/gas/testsuite/gas/bfin/line_number.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:4: Error: syntax error. Input text was illegal.
+.*:4: Error:
diff --git a/gas/testsuite/gas/bfin/line_number.s b/gas/testsuite/gas/bfin/line_number.s
new file mode 100644
index 0000000000..a5e47d3482
--- /dev/null
+++ b/gas/testsuite/gas/bfin/line_number.s
@@ -0,0 +1,4 @@
+ R1 = ROT R0 BY 0 ||
+ R3 = [SP+12] ||
+ nop;
+ ILLEGAL;