From: Michael Meissner Date: Mon, 15 Jan 1996 21:53:30 +0000 (+0000) Subject: Fix little endian adddi3/subdi3 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0f6453027705a3eeafe0a6b521624a75d7a7f58b;p=gcc.git Fix little endian adddi3/subdi3 From-SVN: r10997 --- diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index b2dec1a338e..8920c8ad232 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -3623,11 +3623,17 @@ (plus:DI (match_operand:DI 1 "gpc_reg_operand" "%r,r,0,0") (match_operand:DI 2 "reg_or_short_operand" "r,I,r,I")))] "! TARGET_POWERPC64" - "@ - {a|addc} %L0,%L1,%L2\;{ae|adde} %0,%1,%2 - {ai|addic} %L0,%L1,%2\;{a%G2e|add%G2e} %0,%1 - {a|addc} %L0,%L1,%L2\;{ae|adde} %0,%1,%2 - {ai|addic} %L0,%L1,%2\;{a%G2e|add%G2e} %0,%1" + "* +{ + if (WORDS_BIG_ENDIAN) + return (GET_CODE (operands[2])) != CONST_INT + ? \"{a|addc} %L0,%L1,%L2\;{ae|adde} %0,%1,%2\" + : \"{ai|addic} %L0,%L1,%2\;{a%G2e|add%G2e} %0,%1\"; + else + return (GET_CODE (operands[2])) != CONST_INT + ? \"{a|addc} %0,%1,%2\;{ae|adde} %L0,%L1,%L2\" + : \"{ai|addic} %0,%1,%2\;{a%G2e|add%G2e} %L0,%L1\"; +}" [(set_attr "length" "8")]) (define_insn "subddi3" @@ -3635,24 +3641,16 @@ (minus:DI (match_operand:DI 1 "reg_or_short_operand" "r,I,0,r,I") (match_operand:DI 2 "gpc_reg_operand" "r,r,r,0,0")))] "TARGET_POWER && ! TARGET_POWERPC64" - "@ - {sf|subfc} %L0,%L2,%L1\;{sfe|subfe} %0,%2,%1 - {sfi|subfic} %L0,%L2,%1\;{sf%G1e|subf%G1e} %0,%2 - {sf|subfc} %L0,%L2,%L1\;{sfe|subfe} %0,%2,%1 - {sf|subfc} %L0,%L2,%L1\;{sfe|subfe} %0,%2,%1 - {sfi|subfic} %L0,%L2,%1\;{sf%G1e|subf%G1e} %0,%2" - [(set_attr "length" "8")]) - -(define_insn "" - [(set (match_operand:DI 0 "gpc_reg_operand" "=&r,r,r") - (minus:DI (match_operand:DI 1 "gpc_reg_operand" "r,0,r") - (match_operand:DI 2 "gpc_reg_operand" "r,r,0")))] - "! TARGET_POWER && ! TARGET_POWERPC64" "* { - return (WORDS_BIG_ENDIAN) - ? \"{sf|subfc} %L0,%L2,%L1\;{sfe|subfe} %0,%2,%1\" - : \"{sf|subfc} %0,%2,%1\;{sfe|subfe} %L0,%L2,%L1\"; + if (WORDS_BIG_ENDIAN) + return (GET_CODE (operands[1]) != CONST_INT) + ? \"{sf|subfc} %L0,%L2,%L1\;{sfe|subfe} %0,%2,%1\" + : \"{sfi|subfic} %L0,%L2,%1\;{sf%G1e|subf%G1e} %0,%2\"; + else + return (GET_CODE (operands[1]) != CONST_INT) + ? \"{sf|subfc} %0,%2,%1\;{sfe|subfe} %L0,%L2,%L1\" + : \"{sfi|subfic} %0,%2,%1\;{sf%G1e|subf%G1e} %L0,%L2\"; }" [(set_attr "length" "8")])