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