[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 10/14] tcg: Introduce temp_load
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH v2 10/14] tcg: Introduce temp_load |
Date: |
Fri, 15 Jan 2016 14:08:50 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 |
On 12/31/2015 03:33 AM, Aurelien Jarno wrote:
>> - if (ts->val_type == TEMP_VAL_REG) {
>> - tcg_out_st(s, ts->type, ts->reg, TCG_REG_CALL_STACK,
>> stack_offset);
>> - } else if (ts->val_type == TEMP_VAL_MEM) {
>> - reg = tcg_reg_alloc(s, tcg_target_available_regs[ts->type],
>> - s->reserved_regs);
>> - /* XXX: not correct if reading values from the stack */
>
> Shouldn't we keep this comment by moving it to temp_load?
No, because I believe the comment to be inaccurate.
>
>> - tcg_out_ld(s, ts->type, reg, ts->mem_base->reg,
>> ts->mem_offset);
>> - tcg_out_st(s, ts->type, reg, TCG_REG_CALL_STACK,
>> stack_offset);
>> - } else if (ts->val_type == TEMP_VAL_CONST) {
>> - reg = tcg_reg_alloc(s, tcg_target_available_regs[ts->type],
>> - s->reserved_regs);
>> - /* XXX: sign extend may be needed on some targets */
>
> Same here.
>
>> - tcg_out_movi(s, ts->type, reg, ts->val);
Likewise. If the target needs sign-extend, it will do it here in movi given
the type.
>> - tcg_out_st(s, ts->type, reg, TCG_REG_CALL_STACK,
>> stack_offset);
>> - } else {
>> - tcg_abort();
>> - }
>> + temp_load(s, ts, tcg_target_available_regs[ts->type],
>> + s->reserved_regs);
>> + tcg_out_st(s, ts->type, ts->reg, TCG_REG_CALL_STACK,
>> stack_offset);
>> }
>> #ifndef TCG_TARGET_STACK_GROWSUP
>> stack_offset += sizeof(tcg_target_long);
>> @@ -2193,18 +2180,19 @@ static void tcg_reg_alloc_call(TCGContext *s, int
>> nb_oargs, int nb_iargs,
>> ts = &s->temps[arg];
>> reg = tcg_target_call_iarg_regs[i];
>> tcg_reg_free(s, reg);
>> +
>> if (ts->val_type == TEMP_VAL_REG) {
>> if (ts->reg != reg) {
>> tcg_out_mov(s, ts->type, reg, ts->reg);
>> }
>> - } else if (ts->val_type == TEMP_VAL_MEM) {
>> - tcg_out_ld(s, ts->type, reg, ts->mem_base->reg,
>> ts->mem_offset);
>> - } else if (ts->val_type == TEMP_VAL_CONST) {
>> - /* XXX: sign extend ? */
>
> And here.
>
>> - tcg_out_movi(s, ts->type, reg, ts->val);
Likewise.
r~
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v2 10/14] tcg: Introduce temp_load,
Richard Henderson <=