Re: Structure members in asm using one register only

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

 



Maurizio Monge <maurizio.monge@xxxxxxxxx> writes:

> Hi, i am trying to make gcc access the members of a class
> using only one register (for the class address).
> If i do:
> [member1] "m" (this->member1),
> [member2] "m" (this->member2),
> etc.
> gcc will put the address of this->member1 in one register,
> address of this->member2 in another one, etc...
>
> i know that i can do
> [thiz]  "r" (this)
> and access the members as xyz([this]) with the right xyz,

gcc already does this automatically:

falk@juist:/tmp% cat test.c                               
struct s { int a, b; };
void f(struct s *s) {
    asm("frob %0 %1" : :"m"(s->a), "m"(s->b));
}
falk@juist:/tmp% gcc -O3 -S test.c && grep frob test.s 
        frob 0($16) 4($16)


-- 
	Falk

[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