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