Revision 23ec69ed tcg/optimize.c

b/tcg/optimize.c
727 727
            mask = temps[args[1]].mask & mask;
728 728
            break;
729 729

  
730
        CASE_OP_32_64(andc):
731
            /* Known-zeros does not imply known-ones.  Therefore unless
732
               args[2] is constant, we can't infer anything from it.  */
733
            if (temps[args[2]].state == TCG_TEMP_CONST) {
734
                mask = ~temps[args[2]].mask;
735
                goto and_const;
736
            }
737
            /* But we certainly know nothing outside args[1] may be set. */
738
            mask = temps[args[1]].mask;
739
            break;
740

  
730 741
        case INDEX_op_sar_i32:
731 742
            if (temps[args[2]].state == TCG_TEMP_CONST) {
732 743
                mask = (int32_t)temps[args[1]].mask >> temps[args[2]].val;

Also available in: Unified diff