aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2005-03-12 18:25:47 +0000
committerZack Weinberg <zackw@panix.com>2005-03-12 18:25:47 +0000
commit885fc2570fb532bed3be36d73dccddb01511a9d5 (patch)
tree22c013cf389658384c39cb5f735e88f7c27d80ea
parentb9fd58c7eb0d15707317f6b317d539271771d732 (diff)
downloadgdb-885fc2570fb532bed3be36d73dccddb01511a9d5.zip
gdb-885fc2570fb532bed3be36d73dccddb01511a9d5.tar.gz
gdb-885fc2570fb532bed3be36d73dccddb01511a9d5.tar.bz2
gas:
* config/tc-arm.c (tinsns): Add ARMv6K instructions sev, wfe, wfi, yield. opcodes: * arm-dis.c (thumb_opcodes): Add ARMv6K instructions nop, sev, wfe, wfi, yield. gas/testsuite: * gas/arm/thumbv6k.d, gas/arm/thumbv6k.s: New dump test. * gas/arm/arm.exp: Run it.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-arm.c6
-rw-r--r--gas/testsuite/ChangeLog7
-rw-r--r--gas/testsuite/gas/arm/arm.exp1
-rw-r--r--gas/testsuite/gas/arm/thumbv6k.d15
-rw-r--r--gas/testsuite/gas/arm/thumbv6k.s14
-rw-r--r--opcodes/ChangeLog1
-rw-r--r--opcodes/arm-dis.c7
8 files changed, 55 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 57fd961..ec62da6 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2005-03-12 Zack Weinberg <zack@codesourcery.com>
+
+ * config/tc-arm.c (tinsns): Add ARMv6K instructions sev, wfe,
+ wfi, yield.
+
2005-03-11 Daniel Jacobowitz <dan@codesourcery.com>
* config-gas.com: Mark vax-vms as obsolete.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 6976d88..3ab5aa1 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -10950,6 +10950,12 @@ static const struct thumb_opcode tinsns[] =
{"sxtb", 0xb240, 2, ARM_EXT_V6, do_t_arit},
{"uxth", 0xb280, 2, ARM_EXT_V6, do_t_arit},
{"uxtb", 0xb2c0, 2, ARM_EXT_V6, do_t_arit},
+
+ /* ARM V6K. */
+ {"sev", 0xbf40, 2, ARM_EXT_V6K, do_empty},
+ {"wfe", 0xbf20, 2, ARM_EXT_V6K, do_empty},
+ {"wfi", 0xbf30, 2, ARM_EXT_V6K, do_empty},
+ {"yield", 0xbf10, 2, ARM_EXT_V6K, do_empty},
};
void
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 521d59c..09706cf 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,6 +1,11 @@
+2005-03-12 Zack Weinberg <zack@codesourcery.com>
+
+ * gas/arm/thumbv6k.d, gas/arm/thumbv6k.s: New dump test.
+ * gas/arm/arm.exp: Run it.
+
2005-03-10 Aldy Hernandez <aldyh@redhat.com>
- * gas/ppc/e500.d: Fix encoding of efscfd.
+ * gas/ppc/e500.d: Fix encoding of efscfd.
2005-03-10 Jeff Baker <jbaker@qnx.com>
Alan Modra <amodra@bigpond.net.au>
diff --git a/gas/testsuite/gas/arm/arm.exp b/gas/testsuite/gas/arm/arm.exp
index 872e62b..a84c80b 100644
--- a/gas/testsuite/gas/arm/arm.exp
+++ b/gas/testsuite/gas/arm/arm.exp
@@ -50,6 +50,7 @@ if {[istarget *arm*-*-*] || [istarget "xscale-*-*"]} then {
run_dump_test "maverick"
run_dump_test "archv6"
run_dump_test "thumbv6"
+ run_dump_test "thumbv6k"
run_dump_test "arch6zk"
run_errors_test "vfp-bad" "-mfpu=vfp" "VFP errors"
diff --git a/gas/testsuite/gas/arm/thumbv6k.d b/gas/testsuite/gas/arm/thumbv6k.d
new file mode 100644
index 0000000..54a1d31
--- /dev/null
+++ b/gas/testsuite/gas/arm/thumbv6k.d
@@ -0,0 +1,15 @@
+#name: THUMB V6K instructions
+#as: -march=armv6k -mthumb
+#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+0+000 <[^>]*> bf10 * yield
+0+002 <[^>]*> bf20 * wfe
+0+004 <[^>]*> bf30 * wfi
+0+006 <[^>]*> bf40 * sev
+0+008 <[^>]*> 46c0 * nop[ \t]+\(mov r8, r8\)
+0+00a <[^>]*> 46c0 * nop[ \t]+\(mov r8, r8\)
+0+00c <[^>]*> 46c0 * nop[ \t]+\(mov r8, r8\)
+0+00e <[^>]*> 46c0 * nop[ \t]+\(mov r8, r8\)
diff --git a/gas/testsuite/gas/arm/thumbv6k.s b/gas/testsuite/gas/arm/thumbv6k.s
new file mode 100644
index 0000000..8619843
--- /dev/null
+++ b/gas/testsuite/gas/arm/thumbv6k.s
@@ -0,0 +1,14 @@
+ .text
+ .align 0
+ .thumb
+label:
+ yield
+ wfe
+ wfi
+ sev
+ # arm-aout wants the segment padded to an 16-byte boundary;
+ # do this explicitly so it's consistent for all object formats.
+ nop
+ nop
+ nop
+ nop
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 883c7a9..684695b 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -4,6 +4,7 @@
Add entries for v6T2 ARM instructions:
bfc bfi mls strht ldrht ldrsht ldrsbt movw movt rbit ubfx sbfx.
(print_insn_arm): Add support for %E and %V.
+ (thumb_opcodes): Add ARMv6K instructions nop, sev, wfe, wfi, yield.
2005-03-10 Jeff Baker <jbaker@qnx.com>
Alan Modra <amodra@bigpond.net.au>
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 3ec8090..a87bcc0 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -635,6 +635,13 @@ static const struct thumb_opcode thumb_opcodes[] =
{
/* Thumb instructions. */
+ /* ARM V6K no-argument instructions. */
+ {ARM_EXT_V6K, 0xbf00, 0xffff, "nop"},
+ {ARM_EXT_V6K, 0xbf10, 0xffff, "yield"},
+ {ARM_EXT_V6K, 0xbf20, 0xffff, "wfe"},
+ {ARM_EXT_V6K, 0xbf30, 0xffff, "wfi"},
+ {ARM_EXT_V6K, 0xbf40, 0xffff, "sev"},
+
/* ARM V6. */
{ARM_EXT_V6, 0xb660, 0xfff8, "cpsie\t%2'a%1'i%0'f"},
{ARM_EXT_V6, 0xb670, 0xfff8, "cpsid\t%2'a%1'i%0'f"},