Re: about named address space

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux