about named address space

Rony Paul ronypaul77@gmail.com
Tue May 24 11:56:00 GMT 2011


On Sat, May 21, 2011 at 8:19 AM, Ian Lance Taylor <iant@google.com> wrote:
> Rony Paul <ronypaul77@gmail.com> writes:
>
>> Can you explain me the following piece of code?
>>
>>       rtx result, ls;
>>
>>       ls = gen_const_mem (DImode,
>>                         gen_rtx_SYMBOL_REF (Pmode, "__ea_local_store"));
>
> Build a memory reference to the address __ea_local_store in DImode
> (64-bit).
>
>>       set_mem_align (ls, 128);
>
> Set the alignment of that memory to 128 bits.
>
>>       result = gen_reg_rtx (Pmode);
>
> Build a pseudo-register of type Pmode.
>
>>       ls = force_reg (Pmode, convert_modes (Pmode, DImode, ls, 1));
>
> Copy ls to a new pseudo-register, converting it from DImode to Pmode.
>
>>       op = force_reg (Pmode, convert_modes (Pmode, EAmode, op, 1));
>
> Copy op to a new pseudo-register, converting it from EAmode to Pmode.
>
>>       ls = emit_conditional_move (ls, NE, op, const0_rtx, Pmode,
>>                                         ls, const0_rtx, Pmode, 1);
>
> Equivalent to ls = op != 0 ? ls : 0.
>
>>       emit_insn (gen_subsi3 (result, op, ls));
>
> Equivalent to result = op - ls.
>
> So basically if op is not 0, this subtracts __ea_local_store from it.
>
> Ian
>

Hello,

I user declare a variable "x", then when compiler executes that and
stores in memory, can  you tell me what is the rtx code for storing
that variable? and in which file in GCC it is done?

-Rony



More information about the Gcc-help mailing list