gas:
authorZack Weinberg <zackw@panix.com>
Sat, 12 Mar 2005 18:25:47 +0000 (18:25 +0000)
committerZack Weinberg <zackw@panix.com>
Sat, 12 Mar 2005 18:25:47 +0000 (18:25 +0000)
* 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.

gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/arm.exp
gas/testsuite/gas/arm/thumbv6k.d [new file with mode: 0644]
gas/testsuite/gas/arm/thumbv6k.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/arm-dis.c

index 57fd9610301c9738f7bd5f37e713eef962e76514..ec62da610dedf24c09cb1b6d6f016d42bcb2b688 100644 (file)
@@ -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.
index 6976d88a3a11c85fedf3040927b5053728959c55..3ab5aa1524a411f851828b919cea0da5870f6b3b 100644 (file)
@@ -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
index 521d59cb7220dbcec1400818cc03e95bd1895850..09706cfe982f5db2287c9f3d0e2cde46bc8b0fc4 100644 (file)
@@ -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>
index 872e62bf69e2e396402aeec0e4159053a7ad6ce7..a84c80b0931e43a0405f106741a6de7cc9575753 100644 (file)
@@ -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 (file)
index 0000000..54a1d31
--- /dev/null
@@ -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 (file)
index 0000000..8619843
--- /dev/null
@@ -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
index 883c7a954a4b6fd6948bd923e018273efa17d86f..684695b4ade825ea1ffc0e7f90d307d98d8ab0f5 100644 (file)
@@ -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>
index 3ec809027c7871528930c47c5350f9941a007791..a87bcc0b2f839f56041c663c3ab26891edcac537 100644 (file)
@@ -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"},