RE : problem of non-pic code due to asm code.
Ian Lance Taylor
iant@google.com
Sun Aug 23 13:04:00 GMT 2009
PICCA Frédéric-Emmanuel <frederic-emmanuel.picca@synchrotron-soleil.fr>
writes:
>> Note that you're going to need to tell gcc that you're clobbering %rax,
>> as described in the extended asm documentation.
>
> ok so I added
> : : "rax"
>
>> Use %%rax.
>
> ok but...
>
> now
>
> jpeg_color_mmx.cpp: In function ‘void jpeg_yh2v2_to_rgb32_mmx(unsigned char*, long int, unsigned char*)’:
> jpeg_color_mmx.cpp:474: error: can't find a register in class ‘AREG’ while reloading ‘asm’
> jpeg_color_mmx.cpp:474: error: ‘asm’ operand has impossible constraints
>
> so it seems that there is not enought register for this operation. I am right ?
>
> must I use another register or do a push rax ... pop rax to solve this problem
That's not the issue. If you want a definite answer you need to show us
the real test case, ideally simplified, but from the above it looks like
you are missing a colon. It looks like "rax" is in the output operand
list, not the clobber list.
Ian
More information about the Gcc-help
mailing list