johannes 02/09/03 16:44:50
Modified: gcc/config/rs6000 rs6000.c
Log:
Fix a lurker in Altivec table lookup, and a merge bug due to
changed semantics of sequences.
Revision Changes Path
1.170 +4 -3 gcc3/gcc/config/rs6000/rs6000.c
Index: rs6000.c
===================================================================
RCS file: /cvs/Darwin/gcc3/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.169
retrieving revision 1.170
diff -u -r1.169 -r1.170
--- rs6000.c 2002/09/02 03:50:00 1.169
+++ rs6000.c 2002/09/03 23:44:44 1.170
@@ -586,7 +586,7 @@
/* Check the predicates for the insn associated with the builtin. */
for (i = 0; i < 2; i++)
if (! (*insn_data[icode].operand[1+i].predicate) (ops[i],
- insn_data[icode].operand[i].mode))
+ insn_data[icode].operand[1+i].mode))
ops[i] = copy_to_mode_reg (
GET_MODE (ops[i]) != VOIDmode
? GET_MODE (ops[i])
@@ -621,11 +621,11 @@
/* Check the predicates for the insn associated with the builtin. */
for (i = 0; i < n; i++)
if (! (*insn_data[icode].operand[has_result+i].predicate) (ops[i],
- insn_data[icode].operand[i].mode))
+ insn_data[icode].operand[has_result+i].mode))
ops[i] = copy_to_mode_reg (
GET_MODE (ops[i]) != VOIDmode
? GET_MODE (ops[i])
- : insn_data[icode].operand[1+i].mode, ops[i]);
+ : insn_data[icode].operand[has_result+i].mode, ops[i]);
/* Generate the insn that computes the builtin. */
if (has_result)
@@ -662,6 +662,7 @@
}
insns = get_insns ();
end_sequence ();
+ emit_insn (insns);
return target;
}