On Sat, May 21, 2011 at 8:19 AM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: > Rony Paul <ronypaul77@xxxxxxxxx> 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