aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@cavium.com>2011-11-29 20:28:55 +0000
committerAndrew Pinski <apinski@cavium.com>2011-11-29 20:28:55 +0000
commitdd6a37e700ab12b5f5e89b747992324e74981872 (patch)
tree85cfdc8abc67b5b005f7bbdeb123bf5730918ae4 /gas/testsuite
parentb3364cb9c21f33b0f0de633d10f6729134b9bd6f (diff)
downloadgdb-dd6a37e700ab12b5f5e89b747992324e74981872.zip
gdb-dd6a37e700ab12b5f5e89b747992324e74981872.tar.gz
gdb-dd6a37e700ab12b5f5e89b747992324e74981872.tar.bz2
opcode/
2011-11-29 Andrew Pinski <apinski@cavium.com> * mips-dis.c (mips_arch_choices): Add Octeon+. * mips-opc.c (IOCT): Include Octeon+. (IOCTP): New macro. (mips_builtin_opcodes): Add "saa" and "saad". bfd/ 2011-11-29 Andrew Pinski <apinski@cavium.com> * archures.c (bfd_mach_mips_octeonp): New macro. * bfd-in2.h: Regenerate. * bfd/cpu-mips.c (I_mipsocteonp): New enum value. (arch_info_struct): Add bfd_mach_mips_octeonp. * elfxx-mips.c (mips_set_isa_flags): Add bfd_mach_mips_octeonp. (mips_mach_extensions): Add bfd_mach_mips_octeonp. include/opcodes/ 2011-11-29 Andrew Pinski <apinski@cavium.com> * mips.h (INSN_CHIP_MASK): Update according to INSN_OCTEONP. (INSN_OCTEONP): New macro. (CPU_OCTEONP): New macro. (OPCODE_IS_MEMBER): Add Octeon+. (M_SAA_AB, M_SAAD_AB, M_SAA_OB, M_SAAD_OB): New enum values. gas/ 2011-11-29 Andrew Pinski <apinski@cavium.com> * config/tc-mips.c (CPU_IS_OCTEON): New macro function. (CPU_HAS_SEQ): Change to use CPU_IS_OCTEON. (NO_ISA_COP): Likewise. (macro) <ld_st>: Add support when off0 is true. Add support for M_SAA_AB, M_SAA_OB, M_SAAD_OB and M_SAAD_AB. (mips_cpu_info_table): Add octeon+. * doc/c-mips.texi: Document octeon+ as an acceptable value for -march=. gas/testsuite/ 2011-11-29 Andrew Pinski <apinski@cavium.com> * gas/mips/mips.exp: Add octeon+ for an architecture. Run octeon-saa-saad test. (run_dump_test_arch): For Octeon architectures, also try octeon@. * gas/mips/octeon-pref.d: Remove -march=octeon from command line. * gas/mips/octeon.d: Likewise. * gas/mips/octeon-saa-saad.d: New file. * gas/mips/octeon-saa-saad.s: New file
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog10
-rw-r--r--gas/testsuite/gas/mips/mips.exp12
-rw-r--r--gas/testsuite/gas/mips/octeon-pref.d2
-rw-r--r--gas/testsuite/gas/mips/octeon-saa-saad.d58
-rw-r--r--gas/testsuite/gas/mips/octeon-saa-saad.s33
-rw-r--r--gas/testsuite/gas/mips/octeon.d2
6 files changed, 114 insertions, 3 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 054eee3..6d0688b 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2011-11-29 Andrew Pinski <apinski@cavium.com>
+
+ * gas/mips/mips.exp: Add octeon+ for an architecture.
+ Run octeon-saa-saad test.
+ (run_dump_test_arch): For Octeon architectures, also try octeon@.
+ * gas/mips/octeon-pref.d: Remove -march=octeon from command line.
+ * gas/mips/octeon.d: Likewise.
+ * gas/mips/octeon-saa-saad.d: New file.
+ * gas/mips/octeon-saa-saad.s: New file
+
2011-11-25 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* gas/arm/mov-highregs-any.d: New testcase.
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 5d91aef..047c038 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -308,7 +308,13 @@ proc run_dump_test_arch { name arch } {
set format [expr { $elf ? "elf" : $ecoff ? "ecoff" : "aout" }]
set proparch [lindex [mips_arch_properties $arch 0] 0]
- foreach prefix [list ${proparch}@${format}@ ${proparch}@ ${format}@] {
+ set prefixes [list ${proparch}@${format}@ ${proparch}@ ]
+ if { [ string match "octeon*" $proparch ] && $proparch != "octeon" } {
+ lappend prefixes octeon@
+ lappend prefixes octeon@${format}@
+ }
+ lappend prefixes ${format}@
+ foreach prefix ${prefixes} {
set archname ${prefix}${name}
if { [file exists "$srcdir/$subdir/${archname}.d"] } {
set name $archname
@@ -412,6 +418,9 @@ mips_arch_create sb1 64 mips64 { mips3d } \
mips_arch_create octeon 64 mips64r2 {} \
{ -march=octeon -mtune=octeon } { -mmips:octeon } \
{ mips64octeon*-*-* }
+mips_arch_create octeonp 64 octeon {} \
+ { -march=octeon+ -mtune=octeon+ } { -mmips:octeon+ } \
+ { }
mips_arch_create xlr 64 mips64 {} \
{ -march=xlr -mtune=xlr } { -mmips:xlr }
@@ -981,6 +990,7 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "loongson-3a-3"
run_dump_test_arches "octeon" [mips_arch_list_matching octeon]
+ run_dump_test_arches "octeon-saa-saad" [mips_arch_list_matching octeonp]
run_list_test_arches "octeon-ill" "" \
[mips_arch_list_matching octeon]
run_dump_test_arches "octeon-pref" [mips_arch_list_matching octeon]
diff --git a/gas/testsuite/gas/mips/octeon-pref.d b/gas/testsuite/gas/mips/octeon-pref.d
index 6dcb184..0b536d6 100644
--- a/gas/testsuite/gas/mips/octeon-pref.d
+++ b/gas/testsuite/gas/mips/octeon-pref.d
@@ -1,4 +1,4 @@
-#as: -march=octeon -64 -mfix-cn63xxp1
+#as: -64 -mfix-cn63xxp1
#objdump: -M reg-names=numeric -dr
#name: MIPS octeon-pref mfix-cn63xxp1
diff --git a/gas/testsuite/gas/mips/octeon-saa-saad.d b/gas/testsuite/gas/mips/octeon-saa-saad.d
new file mode 100644
index 0000000..e5dff8e
--- /dev/null
+++ b/gas/testsuite/gas/mips/octeon-saa-saad.d
@@ -0,0 +1,58 @@
+#objdump: -d -r --show-raw-insn
+#name: MIPS-OCTEON octeon_saa_saad
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+
+[0-9a-f]+ <foo>:
+.*: 70450018 saa a1,\(v0\)
+.*: 70860019 saad a2,\(a0\)
+.*: 00000000 nop
+.*: 70450018 saa a1,\(v0\)
+.*: 70860019 saad a2,\(a0\)
+.*: 00000000 nop
+.*: 3c010000 lui at,0x0
+ 18: R_MIPS_HI16 .text
+.*: 24210000 addiu at,at,0
+ 1c: R_MIPS_LO16 .text
+.*: 70250018 saa a1,\(at\)
+.*: 3c010000 lui at,0x0
+ 24: R_MIPS_HI16 .text
+.*: 24210000 addiu at,at,0
+ 28: R_MIPS_LO16 .text
+.*: 70220019 saad v0,\(at\)
+.*: 00000000 nop
+.*: 3c011234 lui at,0x1234
+.*: 24215678 addiu at,at,22136
+.*: 70240018 saa a0,\(at\)
+.*: 3c011234 lui at,0x1234
+.*: 24215678 addiu at,at,22136
+.*: 70240019 saad a0,\(at\)
+.*: 00000000 nop
+.*: 24811234 addiu at,a0,4660
+.*: 70250018 saa a1,\(at\)
+.*: 2401003c li at,60
+.*: 70260019 saad a2,\(at\)
+.*: 00000000 nop
+.*: 3c010012 lui at,0x12
+.*: 00240821 addu at,at,a0
+.*: 24213456 addiu at,at,13398
+.*: 70250018 saa a1,\(at\)
+.*: 24c11234 addiu at,a2,4660
+.*: 70260018 saa a2,\(at\)
+.*: 00000000 nop
+.*: 24a15678 addiu at,a1,22136
+.*: 70240019 saad a0,\(at\)
+.*: 3c010056 lui at,0x56
+.*: 00250821 addu at,at,a1
+.*: 24217891 addiu at,at,30865
+.*: 70250019 saad a1,\(at\)
+.*: 00000000 nop
+.*: 24a10000 addiu at,a1,0
+ 9c: R_MIPS_LO16 .text
+.*: 70240018 saa a0,\(at\)
+.*: 24a10000 addiu at,a1,0
+ a4: R_MIPS_LO16 .text
+.*: 70240019 saad a0,\(at\)
+.*: 00000000 nop
diff --git a/gas/testsuite/gas/mips/octeon-saa-saad.s b/gas/testsuite/gas/mips/octeon-saa-saad.s
new file mode 100644
index 0000000..22d1a07
--- /dev/null
+++ b/gas/testsuite/gas/mips/octeon-saa-saad.s
@@ -0,0 +1,33 @@
+ .text
+foo:
+ saa $5,($2)
+ saad $6,($4)
+ nop
+
+ saa $5,0($2)
+ saad $6,0($4)
+ nop
+
+ saa $5, foo
+ saad $2, foo
+ nop
+
+ saa $4, 0x12345678
+ saad $4, 0x12345678
+ nop
+
+ saa $5, 0x1234($4)
+ saad $6, 60($0)
+ nop
+
+ saa $5, 0x123456($4)
+ saa $6, 0x1234($6)
+ nop
+
+ saad $4, 0x5678($5)
+ saad $5, 0x567891($5)
+ nop
+
+ saa $4, %lo(foo)($5)
+ saad $4, %lo(foo)($5)
+ nop
diff --git a/gas/testsuite/gas/mips/octeon.d b/gas/testsuite/gas/mips/octeon.d
index 79b4001..a0e15d8 100644
--- a/gas/testsuite/gas/mips/octeon.d
+++ b/gas/testsuite/gas/mips/octeon.d
@@ -1,4 +1,4 @@
-#as: -march=octeon -64
+#as: -64
#objdump: -M reg-names=numeric -dr
#name: MIPS octeon instructions