bfin.c (bfin_expand_builtin): Fix the argument order of __builtin_bfin_cmplx_mac...
authorJie Zhang <jie.zhang@analog.com>
Wed, 29 Aug 2007 09:35:52 +0000 (09:35 +0000)
committerJie Zhang <jiez@gcc.gnu.org>
Wed, 29 Aug 2007 09:35:52 +0000 (09:35 +0000)
* config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.

From-SVN: r127891

gcc/ChangeLog
gcc/config/bfin/bfin.c

index 4ffc94a743889f265a445061aca852b51083b908..6e32adea1c4e19cccc330c7efb17c6dd4f9b771b 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-29  Jie Zhang  <jie.zhang@analog.com>
+
+       * config/bfin/bfin.c (bfin_expand_builtin): Fix the argument
+       order of __builtin_bfin_cmplx_mac and __builtin_bfin_cmplx_msu.
+
 2007-08-29  Jie Zhang  <jie.zhang@analog.com>
 
        Revert
index c97f3a7ef6132c3d55e1d486ffbdefb84ea9609f..7b2f988064113d13cb6a95db32a11b5b7273b51d 100644 (file)
@@ -5411,25 +5411,25 @@ bfin_expand_builtin (tree exp, rtx target ATTRIBUTE_UNUSED,
          || GET_MODE (target) != V2HImode
          || ! (*insn_data[icode].operand[0].predicate) (target, V2HImode))
        target = gen_reg_rtx (tmode);
-      if (! register_operand (op0, GET_MODE (op0)))
-       op0 = copy_to_mode_reg (GET_MODE (op0), op0);
       if (! register_operand (op1, GET_MODE (op1)))
        op1 = copy_to_mode_reg (GET_MODE (op1), op1);
+      if (! register_operand (op2, GET_MODE (op2)))
+       op2 = copy_to_mode_reg (GET_MODE (op2), op2);
 
       tmp1 = gen_reg_rtx (SImode);
       tmp2 = gen_reg_rtx (SImode);
-      emit_insn (gen_ashlsi3 (tmp1, gen_lowpart (SImode, op2), GEN_INT (16)));
-      emit_move_insn (tmp2, gen_lowpart (SImode, op2));
+      emit_insn (gen_ashlsi3 (tmp1, gen_lowpart (SImode, op0), GEN_INT (16)));
+      emit_move_insn (tmp2, gen_lowpart (SImode, op0));
       emit_insn (gen_movstricthi_1 (gen_lowpart (HImode, tmp2), const0_rtx));
       emit_insn (gen_load_accumulator_pair (accvec, tmp1, tmp2));
-      emit_insn (gen_flag_macv2hi_parts_acconly (accvec, op0, op1, const0_rtx,
+      emit_insn (gen_flag_macv2hi_parts_acconly (accvec, op1, op2, const0_rtx,
                                                 const0_rtx, const0_rtx,
                                                 const1_rtx, accvec, const0_rtx,
                                                 const0_rtx,
                                                 GEN_INT (MACFLAG_W32)));
       tmp1 = (fcode == BFIN_BUILTIN_CPLX_MAC_16 ? const1_rtx : const0_rtx);
       tmp2 = (fcode == BFIN_BUILTIN_CPLX_MAC_16 ? const0_rtx : const1_rtx);
-      emit_insn (gen_flag_macv2hi_parts (target, op0, op1, const1_rtx,
+      emit_insn (gen_flag_macv2hi_parts (target, op1, op2, const1_rtx,
                                         const1_rtx, const1_rtx,
                                         const0_rtx, accvec, tmp1, tmp2,
                                         GEN_INT (MACFLAG_NONE), accvec));