This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Structure members in asm using one register only


Maurizio Monge <maurizio.monge@gmail.com> 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 Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]