diff options
author | Nick Clifton <nickc@redhat.com> | 2016-04-28 09:11:03 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-04-28 09:11:03 +0100 |
commit | 4bd13cde17a27c342b79b72bde9ef8e1b5373344 (patch) | |
tree | b8216b559ad09261cc8a82c332e6c8ac90b3959a /binutils | |
parent | a3a65e6e1d8b31bf2c8b0abca1903106ae48e092 (diff) | |
download | gdb-4bd13cde17a27c342b79b72bde9ef8e1b5373344.zip gdb-4bd13cde17a27c342b79b72bde9ef8e1b5373344.tar.gz gdb-4bd13cde17a27c342b79b72bde9ef8e1b5373344.tar.bz2 |
Add support to AArch64 disassembler for verifying instructions. Add verifier for LDPSW.
PR target/19722
opcodes * aarch64-dis.c (aarch64_opcode_decode): Run verifier if present.
* aarch64-opc.c (verify_ldpsw): New function.
* aarch64-opc.h (verify_ldpsw): New prototype.
* aarch64-tbl.h: Add initialiser for verifier field.
(LDPSW): Set verifier to verify_ldpsw.
binutils* testsuite/binutils-all/aarch64/illegal.s: New test.
* testsuite/binutils-all/aarch64/illegal.d: New test driver.
include * opcode/aarch64.h (struct aarch64_opcode): Add verifier field.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/aarch64/illegal.d | 12 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/aarch64/illegal.s | 7 |
3 files changed, 25 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 100ef0c..fc495cc 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2016-04-28 Nick Clifton <nickc@redhat.com> + + PR target/19722 + * testsuite/binutils-all/aarch64/illegal.s: New test. + * testsuite/binutils-all/aarch64/illegal.d: New test driver. + 2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> * resres.c: Likewise. diff --git a/binutils/testsuite/binutils-all/aarch64/illegal.d b/binutils/testsuite/binutils-all/aarch64/illegal.d new file mode 100644 index 0000000..4b90a1d --- /dev/null +++ b/binutils/testsuite/binutils-all/aarch64/illegal.d @@ -0,0 +1,12 @@ +#PROG: objcopy +#objdump: -d +#name: Check that the disassembler complains about illegal instructions. + +.*: +file format .*aarch64.* + +Disassembly of section \.text: + +0+000 <.*>: +[ ]+0:[ ]+68ea18cc[ ]+.inst[ ]+0x68ea18cc ; undefined +#pass + diff --git a/binutils/testsuite/binutils-all/aarch64/illegal.s b/binutils/testsuite/binutils-all/aarch64/illegal.s new file mode 100644 index 0000000..216cbe6 --- /dev/null +++ b/binutils/testsuite/binutils-all/aarch64/illegal.s @@ -0,0 +1,7 @@ + # Test disassembly of illegal instructions. + .text + + # ldpsw x12, x6, [x6],#-8 ; illegal because one of the dest regs is also the address reg + .inst 0x68ea18cc + + # FIXME: Add more illegal instructions here. |