diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2017-04-25 17:07:00 +0200 |
---|---|---|
committer | claziss <claziss@synopsys.com> | 2017-04-25 17:07:00 +0200 |
commit | 126124cc0f3f0417913bfd84d83e4e525b6facf9 (patch) | |
tree | 3b25064e723e5cc5c9a7d5053333f31413570795 /gas | |
parent | be6a24d8eabdbeef32a9d79e81307af4491fcf56 (diff) | |
download | gdb-126124cc0f3f0417913bfd84d83e4e525b6facf9.zip gdb-126124cc0f3f0417913bfd84d83e4e525b6facf9.tar.gz gdb-126124cc0f3f0417913bfd84d83e4e525b6facf9.tar.bz2 |
[ARC] Enhance enter/leave mnemonics.
enter/leave mnemonics are enhanced to not only accept register ranges
but also single register (i.e., r13) or even no GPR register at all.
gas/
2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/leave_enter.d: Update test.
* testsuite/gas/arc/leave_enter.s: Likewise.
opcodes/
2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
* arc-dis.c (print_insn_arc): Smartly print enter/leave mnemonics.
* arc-opc.c (insert_r13el): New function.
(R13_EL): Define.
* arc-tbl.h: Add new enter/leave variants.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/arc/leave_enter.d | 41 | ||||
-rw-r--r-- | gas/testsuite/gas/arc/leave_enter.s | 11 |
3 files changed, 41 insertions, 16 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 4be806e..ded300d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,10 @@ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> + * testsuite/gas/arc/leave_enter.d: Update test. + * testsuite/gas/arc/leave_enter.s: Likewise. + +2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> + * testsuite/gas/arc/b.d: Update test. * testsuite/gas/arc/noargs_hs.d: Likewise. diff --git a/gas/testsuite/gas/arc/leave_enter.d b/gas/testsuite/gas/arc/leave_enter.d index 5eb1aef..821656a 100644 --- a/gas/testsuite/gas/arc/leave_enter.d +++ b/gas/testsuite/gas/arc/leave_enter.d @@ -1,21 +1,30 @@ -#objdump: -dr +#objdump: -dr --prefix-addresses --show-raw-insn .*: +file format .*arc.* Disassembly of section .text: - -[0-9a-f]+ <.text>: - 0: c0c2 leave_s \[r13-r13\] - 2: c4dc leave_s \[r13-gp,pcl\] - 4: c1dc leave_s \[r13-gp,fp\] - 6: c2dc leave_s \[r13-gp,blink\] - 8: c3dc leave_s \[r13-gp,fp,blink\] - a: c5dc leave_s \[r13-gp,fp,pcl\] - c: c6dc leave_s \[r13-gp,blink,pcl\] - e: c7dc leave_s \[r13-gp,fp,blink,pcl\] - 10: 1100 0000 ld r0,\[r1\] - 14: c0e2 enter_s \[r13-r13\] - 16: c1fc enter_s \[r13-gp,fp\] - 18: c2fc enter_s \[r13-gp,blink\] - 1a: c3fc enter_s \[r13-gp,fp,blink\] +0x[0-9a-f]+\s+c0c2\s+leave_s \[r13\] +0x[0-9a-f]+\s+c0c2\s+leave_s \[r13\] +0x[0-9a-f]+\s+c4dc\s+leave_s \[r13-gp,pcl\] +0x[0-9a-f]+\s+c1dc\s+leave_s \[r13-gp,fp\] +0x[0-9a-f]+\s+c2dc\s+leave_s \[r13-gp,blink\] +0x[0-9a-f]+\s+c3dc\s+leave_s \[r13-gp,fp,blink\] +0x[0-9a-f]+\s+c5dc\s+leave_s \[r13-gp,fp,pcl\] +0x[0-9a-f]+\s+c6dc\s+leave_s \[r13-gp,blink,pcl\] +0x[0-9a-f]+\s+c7dc\s+leave_s \[r13-gp,fp,blink,pcl\] +0x[0-9a-f]+\s+c6c2\s+leave_s \[r13,blink,pcl\] +0x[0-9a-f]+\s+c6c0\s+leave_s \[blink,pcl\] +0x[0-9a-f]+\s+c1c0\s+leave_s \[fp\] +0x[0-9a-f]+\s+c2c0\s+leave_s \[blink\] +0x[0-9a-f]+\s+c4c0\s+leave_s \[pcl\] +0x[0-9a-f]+\s+1100 0000\s+ld r0,\[r1\] +0x[0-9a-f]+\s+c0e2\s+enter_s \[r13\] +0x[0-9a-f]+\s+c0e2\s+enter_s \[r13\] +0x[0-9a-f]+\s+c1fc\s+enter_s \[r13-gp,fp\] +0x[0-9a-f]+\s+c2fc\s+enter_s \[r13-gp,blink\] +0x[0-9a-f]+\s+c3fc\s+enter_s \[r13-gp,fp,blink\] +0x[0-9a-f]+\s+c2e2\s+enter_s \[r13,blink] +0x[0-9a-f]+\s+c2e0\s+enter_s \[blink\] +0x[0-9a-f]+\s+c3e0\s+enter_s \[fp,blink\] +0x[0-9a-f]+\s+c1e0\s+enter_s \[fp\] diff --git a/gas/testsuite/gas/arc/leave_enter.s b/gas/testsuite/gas/arc/leave_enter.s index 1bdcc06..75cf913 100644 --- a/gas/testsuite/gas/arc/leave_enter.s +++ b/gas/testsuite/gas/arc/leave_enter.s @@ -1,4 +1,5 @@ .cpu HS + leave_s {r13} leave_s {r13-r13} leave_s {r13-r26,pcl} leave_s {r13-r26,fp} @@ -7,10 +8,20 @@ leave_s {r13-r26,fp,pcl} leave_s {r13-r26,blink,pcl} leave_s {r13-r26,fp,blink,pcl} + leave_s {r13,blink,pcl} + leave_s {blink,pcl} + leave_s {fp} + leave_s {blink} + leave_s {pcl} ld r0,[r1] + enter_s {r13} enter_s {r13-r13} enter_s {r13-r26,fp} enter_s {r13-r26,blink} enter_s {r13-r26,fp,blink} + enter_s {r13,blink} + enter_s {blink} + enter_s {fp, blink} + enter_s {fp} |