diff options
author | Maxim Kuvyrkov <maxim@codesourcery.com> | 2010-08-18 10:34:02 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <mkuvyrkov@gcc.gnu.org> | 2010-08-18 10:34:02 +0000 |
commit | c701e857d83417daf6a691d1817c9aa08dcf3605 (patch) | |
tree | c5f3f41546d28f39779ef0690fb7793e6c4c41ff /gcc/optabs.c | |
parent | 63d90a96304b484a365e8411578413b40a2b1a35 (diff) | |
download | gcc-c701e857d83417daf6a691d1817c9aa08dcf3605.zip gcc-c701e857d83417daf6a691d1817c9aa08dcf3605.tar.gz gcc-c701e857d83417daf6a691d1817c9aa08dcf3605.tar.bz2 |
re PR rtl-optimization/42575 (arm-eabi-gcc 64-bit multiply weirdness)
gcc/
PR rtl-optimization/42575
* optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
live ranges.
gcc/testsuite/
PR rtl-optimization/42575
* gcc.target/pr42575.c: New test.
From-SVN: r163334
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r-- | gcc/optabs.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c index b9db02f..1fcbedc 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -1257,7 +1257,7 @@ expand_doubleword_mult (enum machine_mode mode, rtx op0, rtx op1, rtx target, /* OP1_HIGH should now be dead. */ adjust = expand_binop (word_mode, add_optab, adjust, temp, - adjust, 0, OPTAB_DIRECT); + NULL_RTX, 0, OPTAB_DIRECT); if (target && !REG_P (target)) target = NULL_RTX; @@ -1274,8 +1274,7 @@ expand_doubleword_mult (enum machine_mode mode, rtx op0, rtx op1, rtx target, product_high = operand_subword (product, high, 1, mode); adjust = expand_binop (word_mode, add_optab, product_high, adjust, - REG_P (product_high) ? product_high : adjust, - 0, OPTAB_DIRECT); + NULL_RTX, 0, OPTAB_DIRECT); emit_move_insn (product_high, adjust); return product; } |