From: Andrew Pinski Date: Fri, 4 Jan 2013 22:30:37 +0000 (+0000) Subject: aarch64.c (aarch64_fixed_condition_code_regs): New function. X-Git-Tag: releases/gcc-4.8.0~1103 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=70f0918881ba6bb31047544723c2a4ed11b2eed5;p=thirdparty%2Fgcc.git aarch64.c (aarch64_fixed_condition_code_regs): New function. 2013-01-04 Andrew Pinski * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs): New function. (TARGET_FIXED_CONDITION_CODE_REGS): Define. 2013-01-04 Andrew Pinski * gcc.target/aarch64/cmp-1.c: New testcase. From-SVN: r194920 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index be15aa3b938b..c972d9cb13b4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-01-04 Andrew Pinski + + * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs): + New function. + (TARGET_FIXED_CONDITION_CODE_REGS): Define. + 2013-01-04 Uros Bizjak * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 03b13613c6ef..6bba8cc8a6dd 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -3041,6 +3041,16 @@ aarch64_const_double_zero_rtx_p (rtx x) return REAL_VALUES_EQUAL (r, dconst0); } +/* Return the fixed registers used for condition codes. */ + +static bool +aarch64_fixed_condition_code_regs (unsigned int *p1, unsigned int *p2) +{ + *p1 = CC_REGNUM; + *p2 = INVALID_REGNUM; + return true; +} + enum machine_mode aarch64_select_cc_mode (RTX_CODE code, rtx x, rtx y) { @@ -7551,6 +7561,9 @@ aarch64_vectorize_vec_perm_const_ok (enum machine_mode vmode, #define TARGET_VECTORIZE_VEC_PERM_CONST_OK \ aarch64_vectorize_vec_perm_const_ok + +#define TARGET_FIXED_CONDITION_CODE_REGS aarch64_fixed_condition_code_regs + struct gcc_target targetm = TARGET_INITIALIZER; #include "gt-aarch64.h" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9835a26ab151..388d1cef143a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-01-04 Andrew Pinski + + * gcc.target/aarch64/cmp-1.c: New testcase. + 2013-01-04 Paul Thomas PR fortran/55172 diff --git a/gcc/testsuite/gcc.target/aarch64/cmp-1.c b/gcc/testsuite/gcc.target/aarch64/cmp-1.c new file mode 100644 index 000000000000..4c082b484ab8 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/cmp-1.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +int f(int a, int b) +{ + if(ab) + return -1; + return 0; +} + +/* We should optimize away the second cmp. */ +/* { dg-final { scan-assembler-times "cmp\tw" 1 } } */ +