summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/mips
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-12 18:57:00 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-12 18:57:00 +0000
commit885edc78945790ece57dbb026210d0908661b1a5 (patch)
tree127335744264ccab49a1a4f40fc74ef39034a8d0 /gcc/testsuite/gcc.target/mips
parent7855598cdefed939f4ece3c0eec7917da45f0b91 (diff)
downloadgcc-885edc78945790ece57dbb026210d0908661b1a5.tar.gz
gcc/
* config/mips/mips.md (extended_mips16): Include GOT and constant-pool loads. (insn_count): New attribute, with most cases extracted from... (length): ...here. Redefine most cases in terms of insn_count. (single_insn): Delete. (can_delay): Use insn_count to check for single instructions. (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900) (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000) (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal) (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal) (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4) (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b) (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64) (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>) (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split) (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count" rather than "length". (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute. * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s): Use "insn_count" rather than "length". * config/mips/mips-dsp.md (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>) (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove length attributes. gcc/testsuite/ * gcc.target/mips/umips-branch-1.c, gcc.target/mips/umips-branch-2.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200037 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.target/mips')
-rw-r--r--gcc/testsuite/gcc.target/mips/umips-branch-1.c10
-rw-r--r--gcc/testsuite/gcc.target/mips/umips-branch-2.c10
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/mips/umips-branch-1.c b/gcc/testsuite/gcc.target/mips/umips-branch-1.c
new file mode 100644
index 00000000000..441abcaf3ad
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/umips-branch-1.c
@@ -0,0 +1,10 @@
+/* { dg-options "(-mmicromips)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
+
+int MICROMIPS
+foo (void)
+{
+ return 0;
+}
+
+/* { dg-final { scan-assembler "\tjr?\t\\\$31\n\tmove\t\\\$2,\\\$0" } } */
diff --git a/gcc/testsuite/gcc.target/mips/umips-branch-2.c b/gcc/testsuite/gcc.target/mips/umips-branch-2.c
new file mode 100644
index 00000000000..15647631180
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/umips-branch-2.c
@@ -0,0 +1,10 @@
+/* { dg-options "(-mmicromips)" } */
+/* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
+
+int MICROMIPS
+foo (int *x)
+{
+ return x[5000];
+}
+
+/* { dg-final { scan-assembler "\tjr?\t\\\$31\n\tlw\t\\\$2,20000\\(\\\$4\\)" } } */