Structure members in asm using one register only
Falk Hueffner
falk@debian.org
Fri May 6 23:09:00 GMT 2005
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
More information about the Gcc-help
mailing list