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] | |
Avi Kivity <avi@qumranet.com> writes:
I'd like to access several members of a structure from inline assembly (x86):
asm ( "mov $1, %[member1](%[base]) \n\t" "mov $2, %[member2](%[base]) \n\t" : : [base]"r"(ptr), [member1]"i"(offsetof(struct the_struct, member1)), [member2]"i"(offsetof(struct the_struct, member2)));
However, the "i" constraint generates an immediate marker ('$'), so I get
mov $1, $4(%ecx) mov $2, $8(%ecx)
The second '$' is a bit unhelpful.
Is there any constraint which will emit the offset without the '$'?
Using %[member1]c should work.
-- Do not meddle in the internals of kernels, for they are subtle and quick to panic.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |