[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] tcg/optimize: Remember garbage high bits fo
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] tcg/optimize: Remember garbage high bits for 32-bit ops |
Date: |
Fri, 23 May 2014 13:01:28 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
On 05/23/2014 12:46 PM, Paolo Bonzini wrote:
>> @@ -166,11 +166,18 @@ static void tcg_opt_gen_mov(TCGContext *s, int
>> op_index, TCGArg *gen_args,
>> TCGOpcode old_op, TCGArg dst, TCGArg src)
>> {
>> TCGOpcode new_op = op_to_mov(old_op);
>> + tcg_target_ulong mask;
>>
>> s->gen_opc_buf[op_index] = new_op;
>>
>> reset_temp(dst);
>> - temps[dst].mask = temps[src].mask;
>> + mask = temps[src].mask;
>> + if (TCG_TARGET_REG_BITS > 32 && new_op == INDEX_op_mov_i32) {
>> + /* High bits of the destination are now garbage. */
>
> Or they are zero on x86_64... perhaps this could be some kind of TCG target
> hook.
Only if we actually issued a "mov" insn.
If the register allocator decided to adjust its tables instead, we won't issue
an insn, at which point we really do have garbage in the high bits. I don't
think we should be thinking about the target at all at this point.
r~