> @@ -621,6 +627,87 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
> uint16_t *tcg_opc_ptr,
> break;
> }
>
> +/* Simplify using known-zero bits */
> +mask = -1;
> +switch (op) {
> +CASE_OP_32_64(ext8s):
> +if ((temps[args[1]].
Il 16/01/2013 10:09, Jay Foad ha scritto:
>> @@ -621,6 +627,87 @@ static TCGArg *tcg_constant_folding(TCGContext *s,
>> uint16_t *tcg_opc_ptr,
>> break;
>> }
>>
>> +/* Simplify using known-zero bits */
>> +mask = -1;
>> +switch (op) {
>> +CASE_O
From: Paolo Bonzini
Add a "mask" field to the tcg_temp_info struct. A bit that is zero
in "mask" will always be zero in the corresponding temporary.
Zero bits in the mask can be produced from moves of immediates,
zero-extensions, ANDs with constants, shifts; they can then be
be propagated by log