From 3b010fe32e4a3dde31344cf518daf0b016da5401 Mon Sep 17 00:00:00 2001 From: David Daney Date: Mon, 10 Sep 2007 03:18:30 +0000 Subject: [PATCH] optabs.c (expand_sync_operation): Use plus insn if minus CONST_INT_P(val). * optabs.c (expand_sync_operation): Use plus insn if minus CONST_INT_P(val). (expand_sync_fetch_operation): Ditto. From-SVN: r128322 --- gcc/ChangeLog | 6 ++++++ gcc/optabs.c | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8962b81ddaa..0a493c19e41 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-09-09 David Daney + + * optabs.c (expand_sync_operation): Use plus insn if minus + CONST_INT_P(val). + (expand_sync_fetch_operation): Ditto. + 2007-09-09 H.J. Lu * i386.md (*floatsisf2_mixed_vector): Use cvtdq2ps instead diff --git a/gcc/optabs.c b/gcc/optabs.c index e8ac1d707d4..7f2b5642ad7 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -7242,7 +7242,7 @@ expand_sync_operation (rtx mem, rtx val, enum rtx_code code) case MINUS: icode = sync_sub_optab[mode]; - if (icode == CODE_FOR_nothing) + if (icode == CODE_FOR_nothing || CONST_INT_P (val)) { icode = sync_add_optab[mode]; if (icode != CODE_FOR_nothing) @@ -7342,7 +7342,8 @@ expand_sync_fetch_operation (rtx mem, rtx val, enum rtx_code code, case MINUS: old_code = sync_old_sub_optab[mode]; new_code = sync_new_sub_optab[mode]; - if (old_code == CODE_FOR_nothing && new_code == CODE_FOR_nothing) + if ((old_code == CODE_FOR_nothing && new_code == CODE_FOR_nothing) + || CONST_INT_P (val)) { old_code = sync_old_add_optab[mode]; new_code = sync_new_add_optab[mode]; -- 2.30.2