about named address space
Ian Lance Taylor
iant@google.com
Sat May 21 07:15:00 GMT 2011
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
More information about the Gcc-help
mailing list