Re: [Qemu-devel] [PATCH 2/3] optimize: track nonzero bits of registers

2013-01-16 Thread Jay Foad
> @@ -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]].

Re: [Qemu-devel] [PATCH 2/3] optimize: track nonzero bits of registers

2013-01-16 Thread Paolo Bonzini
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

[Qemu-devel] [PATCH 2/3] optimize: track nonzero bits of registers

2013-01-11 Thread Richard Henderson
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