aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorMatthew Gretton-Dann <matthew.gretton-dann@arm.com>2010-09-23 15:18:19 +0000
committerMatthew Gretton-Dann <matthew.gretton-dann@arm.com>2010-09-23 15:18:19 +0000
commit60e5ef9f190902591c6228d470a85fd82994f2c4 (patch)
treee33a15037da877a8c0a8d86f0fc6bc00bd4a08e2 /gas/testsuite
parent691338631685cad7a3b8d8e330df408c999e423a (diff)
downloadgdb-60e5ef9f190902591c6228d470a85fd82994f2c4.zip
gdb-60e5ef9f190902591c6228d470a85fd82994f2c4.tar.gz
gdb-60e5ef9f190902591c6228d470a85fd82994f2c4.tar.bz2
* gas/config/tc-arm.c (arm_ext_mp): Add.
(do_pld): Update comment. (insns): Add support for pldw. (arm_cpus): Update cortex-a5, cortex-a9, and cortex-a15 to support MP extension. (arm_extensions): Add 'mp' extension. (aeabi_set_public_attributes): Emit correct build attribute when MP extension is enabled. * gas/doc/c-arm.texi: Update for MP extensions. * gas/testsuite/gas/arm/arch7a-mp.d: Add. * gas/testsuite/gas/arm/arch7ar-mp.s: Likewise. * gas/testsuite/gas/arm/arch7r-mp.d: Likewise. * gas/testsuite/gas/arm/armv2-mp-bad.d: Likewise. * gas/testsuite/gas/arm/armv2-mp-bad.l: Likewise. * gas/testsuite/gas/arm/attr-march-all.d: Update for MP extension. * gas/testsuite/gas/arm/attr-march-armv7-a+mp.d: Add. * gas/testsuite/gas/arm/attr-march-armv7-r+mp.d: Likewise. * include/opcode/arm.h (ARM_EXT_MP): Add. (ARM_ARCH_V7A_MP): Likewise. * opcodes/arm-dis.c (arm_opcodes): Add support for pldw. (thumb32_opcodes): Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog11
-rw-r--r--gas/testsuite/gas/arm/arch7a-mp.d30
-rw-r--r--gas/testsuite/gas/arm/arch7ar-mp.s33
-rw-r--r--gas/testsuite/gas/arm/arch7r-mp.d30
-rw-r--r--gas/testsuite/gas/arm/armv2-mp-bad.d4
-rw-r--r--gas/testsuite/gas/arm/armv2-mp-bad.l3
-rw-r--r--gas/testsuite/gas/arm/attr-march-all.d1
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv7-a+mp.d16
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv7-r+mp.d15
9 files changed, 143 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 8ee3ca7..bc2eb52 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2010-09-23 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
+
+ * gas/arm/arch7a-mp.d: Add.
+ * gas/arm/arch7ar-mp.s: Likewise.
+ * gas/arm/arch7r-mp.d: Likewise.
+ * gas/arm/armv2-mp-bad.d: Likewise.
+ * gas/arm/armv2-mp-bad.l: Likewise.
+ * gas/arm/attr-march-all.d: Update for MP extension.
+ * gas/arm/attr-march-armv7-a+mp.d: Add.
+ * gas/arm/attr-march-armv7-r+mp.d: Likewise.
+
2010-09-23 Alan Modra <amodra@gmail.com>
* gas/all/gas.exp: Update "forward" and "redef3" xfails.
diff --git a/gas/testsuite/gas/arm/arch7a-mp.d b/gas/testsuite/gas/arm/arch7a-mp.d
new file mode 100644
index 0000000..9513f89
--- /dev/null
+++ b/gas/testsuite/gas/arm/arch7a-mp.d
@@ -0,0 +1,30 @@
+#name: ARM V7-A+MP instructions
+#as: -march=armv7-a+mp
+#objdump: -dr --prefix-addresses --show-raw-insn
+#source: arch7ar-mp.s
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+0[0-9a-f]+ <[^>]+> f590f000 pldw \[r0\]
+0[0-9a-f]+ <[^>]+> f59ef000 pldw \[lr\]
+0[0-9a-f]+ <[^>]+> f591f000 pldw \[r1\]
+0[0-9a-f]+ <[^>]+> f590ffff pldw \[r0, #4095\] ; 0xfff
+0[0-9a-f]+ <[^>]+> f510ffff pldw \[r0, #-4095\] ; 0xfff
+0[0-9a-f]+ <[^>]+> f790f000 pldw \[r0, r0\]
+0[0-9a-f]+ <[^>]+> f791f000 pldw \[r1, r0\]
+0[0-9a-f]+ <[^>]+> f79ef000 pldw \[lr, r0\]
+0[0-9a-f]+ <[^>]+> f790f001 pldw \[r0, r1\]
+0[0-9a-f]+ <[^>]+> f790f00e pldw \[r0, lr\]
+0[0-9a-f]+ <[^>]+> f790f100 pldw \[r0, r0, lsl #2\]
+0[0-9a-f]+ <[^>]+> f8b0 f000 pldw \[r0\]
+0[0-9a-f]+ <[^>]+> f8be f000 pldw \[lr\]
+0[0-9a-f]+ <[^>]+> f8b1 f000 pldw \[r1\]
+0[0-9a-f]+ <[^>]+> f8b0 ffff pldw \[r0, #4095\] ; 0xfff
+0[0-9a-f]+ <[^>]+> f830 fcff pldw \[r0, #-255\]
+0[0-9a-f]+ <[^>]+> f830 f000 pldw \[r0, r0\]
+0[0-9a-f]+ <[^>]+> f831 f000 pldw \[r1, r0\]
+0[0-9a-f]+ <[^>]+> f83e f000 pldw \[lr, r0\]
+0[0-9a-f]+ <[^>]+> f830 f001 pldw \[r0, r1\]
+0[0-9a-f]+ <[^>]+> f830 f00e pldw \[r0, lr\]
+0[0-9a-f]+ <[^>]+> f830 f030 pldw \[r0, r0, lsl #3\]
diff --git a/gas/testsuite/gas/arm/arch7ar-mp.s b/gas/testsuite/gas/arm/arch7ar-mp.s
new file mode 100644
index 0000000..34f7278
--- /dev/null
+++ b/gas/testsuite/gas/arm/arch7ar-mp.s
@@ -0,0 +1,33 @@
+ @ Test MP Extension instructions
+ .text
+
+label1:
+ pldw [r0, #0]
+ pldw [r14, #0]
+ pldw [r1, #0]
+ pldw [r0, #4095]
+ pldw [r0, #-4095]
+
+ pldw [r0, r0]
+ pldw [r1, r0]
+ pldw [r14, r0]
+ pldw [r0, r1]
+ pldw [r0, r14]
+ pldw [r0, r0, lsl #2]
+
+ .thumb
+ .thumb_func
+label2:
+ pldw [r0, #0]
+ pldw [r14, #0]
+ pldw [r1, #0]
+ pldw [r0, #4095]
+ pldw [r0, #-255]
+
+ pldw [r0, r0]
+ pldw [r1, r0]
+ pldw [r14, r0]
+ pldw [r0, r1]
+ pldw [r0, r14]
+ pldw [r0, r0, lsl #3]
+
diff --git a/gas/testsuite/gas/arm/arch7r-mp.d b/gas/testsuite/gas/arm/arch7r-mp.d
new file mode 100644
index 0000000..8908c98
--- /dev/null
+++ b/gas/testsuite/gas/arm/arch7r-mp.d
@@ -0,0 +1,30 @@
+#name: ARM V7-R+MP instructions
+#as: -march=armv7-r+mp
+#objdump: -dr --prefix-addresses --show-raw-insn
+#source: arch7ar-mp.s
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+0[0-9a-f]+ <[^>]+> f590f000 pldw \[r0\]
+0[0-9a-f]+ <[^>]+> f59ef000 pldw \[lr\]
+0[0-9a-f]+ <[^>]+> f591f000 pldw \[r1\]
+0[0-9a-f]+ <[^>]+> f590ffff pldw \[r0, #4095\] ; 0xfff
+0[0-9a-f]+ <[^>]+> f510ffff pldw \[r0, #-4095\] ; 0xfff
+0[0-9a-f]+ <[^>]+> f790f000 pldw \[r0, r0\]
+0[0-9a-f]+ <[^>]+> f791f000 pldw \[r1, r0\]
+0[0-9a-f]+ <[^>]+> f79ef000 pldw \[lr, r0\]
+0[0-9a-f]+ <[^>]+> f790f001 pldw \[r0, r1\]
+0[0-9a-f]+ <[^>]+> f790f00e pldw \[r0, lr\]
+0[0-9a-f]+ <[^>]+> f790f100 pldw \[r0, r0, lsl #2\]
+0[0-9a-f]+ <[^>]+> f8b0 f000 pldw \[r0\]
+0[0-9a-f]+ <[^>]+> f8be f000 pldw \[lr\]
+0[0-9a-f]+ <[^>]+> f8b1 f000 pldw \[r1\]
+0[0-9a-f]+ <[^>]+> f8b0 ffff pldw \[r0, #4095\] ; 0xfff
+0[0-9a-f]+ <[^>]+> f830 fcff pldw \[r0, #-255\]
+0[0-9a-f]+ <[^>]+> f830 f000 pldw \[r0, r0\]
+0[0-9a-f]+ <[^>]+> f831 f000 pldw \[r1, r0\]
+0[0-9a-f]+ <[^>]+> f83e f000 pldw \[lr, r0\]
+0[0-9a-f]+ <[^>]+> f830 f001 pldw \[r0, r1\]
+0[0-9a-f]+ <[^>]+> f830 f00e pldw \[r0, lr\]
+0[0-9a-f]+ <[^>]+> f830 f030 pldw \[r0, r0, lsl #3\]
diff --git a/gas/testsuite/gas/arm/armv2-mp-bad.d b/gas/testsuite/gas/arm/armv2-mp-bad.d
new file mode 100644
index 0000000..c43ba96
--- /dev/null
+++ b/gas/testsuite/gas/arm/armv2-mp-bad.d
@@ -0,0 +1,4 @@
+#name: ARM MP Extension errors
+#source: blank.s
+#as: -march=armv2+mp
+#error-output: armv2-mp-bad.l
diff --git a/gas/testsuite/gas/arm/armv2-mp-bad.l b/gas/testsuite/gas/arm/armv2-mp-bad.l
new file mode 100644
index 0000000..eb97135
--- /dev/null
+++ b/gas/testsuite/gas/arm/armv2-mp-bad.l
@@ -0,0 +1,3 @@
+Assembler messages:
+[^:]*: extension does not apply to the base architecture
+[^:]*: unrecognized option -march=armv2\+mp
diff --git a/gas/testsuite/gas/arm/attr-march-all.d b/gas/testsuite/gas/arm/attr-march-all.d
index ba446c3..0b888a2 100644
--- a/gas/testsuite/gas/arm/attr-march-all.d
+++ b/gas/testsuite/gas/arm/attr-march-all.d
@@ -12,3 +12,4 @@ File Attributes
Tag_CPU_arch_profile: Application
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-2
+ Tag_MPextension_use: Allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-a+mp.d b/gas/testsuite/gas/arm/attr-march-armv7-a+mp.d
new file mode 100644
index 0000000..663a889
--- /dev/null
+++ b/gas/testsuite/gas/arm/attr-march-armv7-a+mp.d
@@ -0,0 +1,16 @@
+# name: attributes for -march=armv7-a+mp
+# source: blank.s
+# as: -march=armv7-a+mp
+# readelf: -A
+# This test is only valid on EABI based ports.
+# target: *-*-*eabi
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7-A"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Application
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
+ Tag_MPextension_use: Allowed
+ Tag_DIV_use: Not allowed
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-r+mp.d b/gas/testsuite/gas/arm/attr-march-armv7-r+mp.d
new file mode 100644
index 0000000..a7fa3c6
--- /dev/null
+++ b/gas/testsuite/gas/arm/attr-march-armv7-r+mp.d
@@ -0,0 +1,15 @@
+# name: attributes for -march=armv7-r+mp
+# source: blank.s
+# as: -march=armv7-r+mp
+# readelf: -A
+# This test is only valid on EABI based ports.
+# target: *-*-*eabi
+
+Attribute Section: aeabi
+File Attributes
+ Tag_CPU_name: "7-R"
+ Tag_CPU_arch: v7
+ Tag_CPU_arch_profile: Realtime
+ Tag_ARM_ISA_use: Yes
+ Tag_THUMB_ISA_use: Thumb-2
+ Tag_MPextension_use: Allowed