Re: about named address space

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

 



On Tue, May 17, 2011 at 5:35 PM, Rony Paul <ronypaul77@xxxxxxxxx> wrote:
> Rony Paul <ronypaul77@xxxxxxxxx> writes:
>
>> On Wed, May 4, 2011 at 4:35 PM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote:
>>> Rony Paul <ronypaul77@xxxxxxxxx> writes:
>>>
>>>> Thank you for your reply. I am new in this development. so I am askig
>>>> you Âvery basic question. I dont have enough knowledge on "backend",
>>>> what did you man with this term?
>>>>
>>>> my task is to use one memory space as big endian, other as little
>>>> endian, and to use Âcopying of pointer from 1 memory space to another.
>>>> Just tell me what should be my beggining step? which files I should modify?
>>>
>>> Please reply to the mailing list, not just to me. ÂAlso, please don't
>>> top-post. ÂThanks.
>>>
>>> Re: backend: See http://en.wikipedia.org/wiki/Compilers . ÂIn gcc the
>>> backend is the CPU-specific code in config/CPU.
>>>
>>> You haven't said anything about your target. ÂIs your memory different
>>> at the hardware level? ÂIf not, named address spaces are probably not
>>> the right approach.
>>>
>>> Ian
>>>
>>>
>>>> Rony Paul <ronypaul77@xxxxxxxxx> writes:
>>>>
>>>>> I want to use named address space support to allow mixed endian
>>>>> applications. Specifying the endianness of address spaces.
>>>>> Can you suggest me what should I do in this purpose? and which files I
>>>>> need to modify ?
>>>>
>>>> In general named address space is described here:
>>>>
>>>> http://gcc.gnu.org/onlinedocs/gccint/Named-Address-Spaces.html
>>>>
>>>> You didn't mention which backend you are using and you didn't mention
>>>> how you mean to handle pointers to an address space of different
>>>> endianness. ÂNamed address spaces seem appropriate if some of your
>>>> memory is big-endian and some is little-endian. ÂI don't know whether
>>>> they are appropriate if you want to have both big-endian and
>>>> little-endian pointers to the same area of memory.
>>>>
>>>> Ian
>>>
>> Thank you for the reply.
>>
>> Yes I have separate memory at the hardware level. And as far I learnt
>> that named address space is already implemented for SPU processor. SPU
>> port uses the __ea address space to refer to memory in the host
>> processor, rather than memory local to the SPU processor.
>> I am now just in the learning phase. SO , if I want to modify that
>> code (just to learn) and want to add one more address space keyword
>> like "__ea"............what should I do?
>
> Start by reading the link I mentioned above:
>
> http://gcc.gnu.org/onlinedocs/gccint/Named-Address-Spaces.html
>
> That explains what you do to add more address spaces.  It requires
> modifying the gcc source code and rebuilding gcc.
>
> Ian
>
>
> Dear Ian,
>
> Thanks for your help. I have started according to the mentioned link.
> And I could give support for another address space. what I want to do
> now is, I want to store data in different byte order in the new
> address space. that is, suppose I have 2 address spaces supported. 1.)
> Generic address space. 2.) __net address space.
>
> when some variable is declared in the __net address space, I will
> store in Bigendian order. , and whrn variable is declared in generic
> address space, It will store in little Endian order.
>
> Do you have any suggestion or idea??
>
> -Rony
>

Hello,

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"));
      set_mem_align (ls, 128);

      result = gen_reg_rtx (Pmode);
      ls = force_reg (Pmode, convert_modes (Pmode, DImode, ls, 1));
      op = force_reg (Pmode, convert_modes (Pmode, EAmode, op, 1));
      ls = emit_conditional_move (ls, NE, op, const0_rtx, Pmode,
					  ls, const0_rtx, Pmode, 1);

      emit_insn (gen_subsi3 (result, op, ls));


-Rony



[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