aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@cavium.com>2011-12-08 20:47:27 +0000
committerAndrew Pinski <apinski@cavium.com>2011-12-08 20:47:27 +0000
commit432233b3596b5ec50b6bfc84ce7458106d7afd7b (patch)
tree1e69c95d77f82f6e8215694040882f6185b930b1 /gas
parent280711e76caf982f48261a75b7b67c0029d4764a (diff)
downloadbinutils-432233b3596b5ec50b6bfc84ce7458106d7afd7b.zip
binutils-432233b3596b5ec50b6bfc84ce7458106d7afd7b.tar.gz
binutils-432233b3596b5ec50b6bfc84ce7458106d7afd7b.tar.bz2
bfd:
2011-12-08 Andrew Pinski <apinski@cavium.com> Adam Nemet <anemet@caviumnetworks.com> * archures.c (bfd_mach_mips_octeon2): New macro * bfd-in2.h: Regenerate. * cpu-mips.c (I_mipsocteon2): New enum value. (arch_info_struct): Add bfd_mach_mips_octeon2. * elfxx-mips.c (_bfd_elf_mips_mach): Support E_MIPS_MACH_OCTEON2. (mips_set_isa_flags): Add bfd_mach_mips_octeon2. (mips_mach_extensions): Add bfd_mach_mips_octeon2. gas: 2011-12-08 Andrew Pinski <apinski@cavium.com> Adam Nemet <anemet@caviumnetworks.com> * tc-mips.c (CPU_IS_OCTEON): Add Octeon2. (mips_cpu_info_table): Add Octeon2. * doc/c-mips.texi: Document octeon2 as an acceptable value for -march=. gas/testsuite: 2011-12-08 Andrew Pinski <apinski@cavium.com> Adam Nemet <anemet@caviumnetworks.com> * gas/mips/mips.exp: Add Octeon2 for an architecture. Run octeon2 test. * gas/mips/octeon2.d: New file. * gas/mips/octeon2.s: New file. include/opcode: 2011-12-08 Andrew Pinski <apinski@cavium.com> Adam Nemet <anemet@caviumnetworks.com> * mips.h (INSN_CHIP_MASK): Update according to INSN_OCTEON2. (INSN_OCTEON2): New macro. (CPU_OCTEON2): New macro. (OPCODE_IS_MEMBER): Add Octeon2. opcodes: 2011-12-08 Andrew Pinski <apinski@cavium.com> Adam Nemet <anemet@caviumnetworks.com> * mips-dis.c (mips_arch_choices): Add Octeon2. For "octeon+", just include OcteonP for the insn. * mips-opc.c (IOCT): Include Octeon2. (IOCTP): Include Octeon2. (IOCT2): New macro. (mips_builtin_opcodes): Add "laa", "laad", "lac", "lacd", "lad", "ladd", "lai", "laid", "las", "lasd", "law", "lawd". Move "lbux", "ldx", "lhx", "lwx", and "lwux" up to where the standard loads are, and add IOCT2 to them. Add "lbx" and "lhux". Add "qmac.00", "qmac.01", "qmac.02", "qmac.03", "qmacs.00", "qmacs.01", "qmacs.01", "qmacs.02" and "qmacs.03". Add "zcb" and "zcbt".
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-mips.c3
-rw-r--r--gas/doc/c-mips.texi1
-rw-r--r--gas/testsuite/ChangeLog8
-rw-r--r--gas/testsuite/gas/mips/mips.exp4
-rw-r--r--gas/testsuite/gas/mips/octeon2.d38
-rw-r--r--gas/testsuite/gas/mips/octeon2.s38
7 files changed, 98 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ebbd477..472738d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2011-12-08 Andrew Pinski <apinski@cavium.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ * tc-mips.c (CPU_IS_OCTEON): Add Octeon2.
+ (mips_cpu_info_table): Add Octeon2.
+ * doc/c-mips.texi: Document octeon2 as an acceptable value for -march=.
+
2011-12-07 Sameera Deshpande <sameera.deshpande@arm.com>
* config/tc-arm.c (do_t_ldstd): Warn for unpredictable cases.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 2a57393..50e5024 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -498,7 +498,7 @@ static int mips_32bitmode = 0;
#define CPU_HAS_ROR(CPU) CPU_HAS_DROR (CPU)
/* True if CPU is in the Octeon family */
-#define CPU_IS_OCTEON(CPU) ((CPU) == CPU_OCTEON || (CPU) == CPU_OCTEONP)
+#define CPU_IS_OCTEON(CPU) ((CPU) == CPU_OCTEON || (CPU) == CPU_OCTEONP || (CPU) == CPU_OCTEON2)
/* True if CPU has seq/sne and seqi/snei instructions. */
#define CPU_HAS_SEQ(CPU) (CPU_IS_OCTEON (CPU))
@@ -19075,6 +19075,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
/* Cavium Networks Octeon CPU core */
{ "octeon", 0, ISA_MIPS64R2, CPU_OCTEON },
{ "octeon+", 0, ISA_MIPS64R2, CPU_OCTEONP },
+ { "octeon2", 0, ISA_MIPS64R2, CPU_OCTEON2 },
/* RMI Xlr */
{ "xlr", 0, ISA_MIPS64, CPU_XLR },
diff --git a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi
index ddfcbd9..7fe9337 100644
--- a/gas/doc/c-mips.texi
+++ b/gas/doc/c-mips.texi
@@ -324,6 +324,7 @@ loongson2f,
loongson3a,
octeon,
octeon+,
+octeon2,
xlr
@end quotation
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 446f260..5296794 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2011-12-08 Andrew Pinski <apinski@cavium.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ * gas/mips/mips.exp: Add Octeon2 for an architecture.
+ Run octeon2 test.
+ * gas/mips/octeon2.d: New file.
+ * gas/mips/octeon2.s: New file.
+
2011-12-07 Sameera Deshpande <sameera.deshpande@arm.com>
* gas/arm/thumb2_ldstd_unpredictable.d: New testcase.
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index d47ebc6..4beb3e2 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -438,6 +438,9 @@ mips_arch_create octeon 64 mips64r2 {} \
mips_arch_create octeonp 64 octeon {} \
{ -march=octeon+ -mtune=octeon+ } { -mmips:octeon+ } \
{ }
+mips_arch_create octeon2 64 octeonp {} \
+ { -march=octeon2 -mtune=octeon2 } { -mmips:octeon2 } \
+ { }
mips_arch_create xlr 64 mips64 {} \
{ -march=xlr -mtune=xlr } { -mmips:xlr }
@@ -1016,6 +1019,7 @@ if { [istarget mips*-*-vxworks*] } {
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]
+ run_dump_test_arches "octeon2" [mips_arch_list_matching octeon2]
run_dump_test "smartmips"
run_dump_test "mips32-dsp"
diff --git a/gas/testsuite/gas/mips/octeon2.d b/gas/testsuite/gas/mips/octeon2.d
new file mode 100644
index 0000000..fd13be3
--- /dev/null
+++ b/gas/testsuite/gas/mips/octeon2.d
@@ -0,0 +1,38 @@
+#objdump: -M reg-names=numeric -dr
+#name: MIPS octeon2 instructions
+
+.*: file format .*
+
+Disassembly of section .text:
+
+[0-9a-f]+ <foo>:
+.*: 70700412 qmac.00 \$3,\$16
+.*: 71aa0452 qmac.01 \$13,\$10
+.*: 704d0492 qmac.02 \$2,\$13
+.*: 721704d2 qmac.03 \$16,\$23
+.*: 704a0012 qmacs.00 \$2,\$10
+.*: 73ca0052 qmacs.01 \$30,\$10
+.*: 718d0092 qmacs.02 \$12,\$13
+.*: 70c600d2 qmacs.03 \$6,\$6
+.*: 7c697d8a lbx \$15,\$9\(\$3\)
+.*: 7dfc298a lbux \$5,\$28\(\$15\)
+.*: 7cd9890a lhx \$17,\$25\(\$6\)
+.*: 7c15fd0a lhux \$31,\$21\(\$0\)
+.*: 7cbda80a lwx \$21,\$29\(\$5\)
+.*: 7cc5940a lwux \$18,\$5\(\$6\)
+.*: 7efdb20a ldx \$22,\$29\(\$23\)
+.*: 722d149f laa \$2,\(\$17\),\$13
+.*: 71d03cdf laad \$7,\(\$14\),\$16
+.*: 7105d59f law \$26,\(\$8\),\$5
+.*: 71f6a5df lawd \$20,\(\$15\),\$22
+.*: 7060389f lai \$7,\(\$3\)
+.*: 7160f8df laid \$31,\(\$11\)
+.*: 73e0c99f lad \$25,\(\$31\)
+.*: 7080f1df ladd \$30,\(\$4\)
+.*: 71006a9f las \$13,\(\$8\)
+.*: 73c0dadf lasd \$27,\(\$30\)
+.* 73806b9f lac \$13,\(\$28\)
+.* 71003bdf lacd \$7,\(\$8\)
+.* 7260071f zcb \(\$19\)
+.* 7220075f zcbt \(\$17\)
+#pass
diff --git a/gas/testsuite/gas/mips/octeon2.s b/gas/testsuite/gas/mips/octeon2.s
new file mode 100644
index 0000000..a2af362
--- /dev/null
+++ b/gas/testsuite/gas/mips/octeon2.s
@@ -0,0 +1,38 @@
+ .text
+ .set noreorder
+ .set noat
+
+foo:
+ qmac.00 $3,$16
+ qmac.01 $13,$10
+ qmac.02 $2,$13
+ qmac.03 $16,$23
+
+ qmacs.00 $2,$10
+ qmacs.01 $30,$10
+ qmacs.02 $12,$13
+ qmacs.03 $6,$6
+
+ lbx $15,$9($3)
+ lbux $5,$28($15)
+ lhx $17,$25($6)
+ lhux $31,$21
+ lwx $21,$29($5)
+ lwux $18,$5($6)
+ ldx $22,$29($23)
+
+ laa $2,($17),$13
+ laad $7,($14),$16
+ law $26,($8),$5
+ lawd $20,($15),$22
+ lai $7,($3)
+ laid $31,($11)
+ lad $25,($31)
+ ladd $30,($4)
+ las $13,($8)
+ lasd $27,($30)
+ lac $13,($28)
+ lacd $7,($8)
+
+ zcb ($19)
+ zcbt ($17)