On Tue, Mar 27, 2012 at 7:28 PM, H.J. Lu <hjl.to...@gmail.com> wrote:
> GCC needs to move the value in the %fs segment > register into %r32 or %r64. This instruction > > "mov{l}\t{%%fs:0, %k0|%k0, DWORD PTR fs:0}" > > does exactly what GCC wants. Sorry, I really don't understand what you are trying to say. You are loading ptrmode (so, void *) pointer from %fs:0 to a DImode register. If you use movl, you can say that this instruction zero extends the value (void *, ptrmode, SImode) from a memory location pointed by %fs:0 to a DImode register. Please note the difference between: movl %fs:0, %eax and movl %fs, %eax. BTW: %fs is a 16bit register. Uros.