Fix PR gas/26001 (pdp11-*-*)

PR gas/26001
* gas/config/tc-pdp11.c (parse_reg): Distinguish register names from
symbols that begin with a register name.
* gas/testsuite/gas/pdp11/pdp11.exp: Add test of such symbols.
* gas/testsuite/gas/pdp11/pr26001.s: Likewise.
* gas/testsuite/gas/pdp11/pr26001.d: Likewise.
This commit is contained in:
Stephen Casner 2020-05-27 18:40:38 -07:00
parent 92eb6ed177
commit 1c912705af
5 changed files with 41 additions and 1 deletions

View File

@ -1,3 +1,12 @@
2020-05-27 Stephen Casner <casner@acm.org>
PR gas/26001
* config/tc-pdp11.c (parse_reg): Distinguish register names from
symbols that begin with a register name.
* testsuite/gas/pdp11/pdp11.exp: Add test of such symbols.
* testsuite/gas/pdp11/pr26001.s: Likewise.
* testsuite/gas/pdp11/pr26001.d: Likewise.
2020-05-27 Simon Cook <simon.cook@embecosm.com>
* config/tc-riscv.c (riscv_init_csr_hash): NULL initilize next

View File

@ -358,8 +358,17 @@ parse_reg (char *str, struct pdp11_code *operand)
str += 2;
}
else
operand->error = _("Bad register name");
{
operand->error = _("Bad register name");
return str;
}
if (ISALNUM (*str) || *str == '_' || *str == '.')
{
operand->error = _("Bad register name");
str -= 2;
}
return str;
}

View File

@ -23,4 +23,5 @@ if [expr [istarget "pdp11-*-*"]] then {
run_dump_test "absreloc"
run_dump_test "pr14480"
run_dump_test "pr23481"
run_dump_test "pr26001"
}

View File

@ -0,0 +1,12 @@
#name: PR 26001 - distinguish register names from symbols
#objdump: -dw
.*: +file format .*
Disassembly of section .text:
0+00 <start>:
[ ]+0:[ ]+09f7 fffc[ ]+jsr[ ]+pc, 0 <start>
[ ]+4:[ ]+1037 0004[ ]+mov[ ]+r0, \$c <space>
[ ]+8:[ ]+1dc1 0002[ ]+mov[ ]+\$e <r00f>, r1
#pass

View File

@ -0,0 +1,9 @@
.text
.globl sprintf
start: jsr pc,sprintf
mov r0,space
mov r00f,r1
.data
space: .word 0
r00f: .word 0
.end