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;
   }
  
  
  


Reply via email to