From c5b2a111dcea3bd2e618676d2761a1570c145dcd Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Sun, 14 Aug 2005 19:06:56 +0000 Subject: [PATCH] s390.c (s390_canonicalize_comparison): Prefer register over memory as first operand. * config/s390/s390.c (s390_canonicalize_comparison): Prefer register over memory as first operand. From-SVN: r103082 --- gcc/ChangeLog | 5 +++++ gcc/config/s390/s390.c | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f112f1ba291..fb927823d83 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-08-14 Ulrich Weigand + + * config/s390/s390.c (s390_canonicalize_comparison): Prefer register + over memory as first operand. + 2005-08-14 H.J. Lu PR target/23360 diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index aae04791284..1814ed0f1b5 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -673,6 +673,13 @@ s390_canonicalize_comparison (enum rtx_code *code, rtx *op0, rtx *op1) *code = NE; *op0 = XEXP (*op0, 0); } + + /* Prefer register over memory as first operand. */ + if (MEM_P (*op0) && REG_P (*op1)) + { + rtx tem = *op0; *op0 = *op1; *op1 = tem; + *code = swap_condition (*code); + } } /* Emit a compare instruction suitable to implement the comparison