[LLVMdev] LLC Bug x86 with thread local storage
echristo at apple.com
Thu Jul 8 00:37:51 PDT 2010
On Jul 7, 2010, at 11:20 AM, Eric Christopher wrote:
> On Jul 7, 2010, at 4:52 AM, Patrick Marlier wrote:
>> Which one is correct ?
>> - movl $tm_nest_level at TPOFF, %ecx
>> - movq $tm_nest_level at TPOFF, %rcx
>> - movl tm_nest_level at TPOFF, %ecx
> I believe this is initial exec and so from:
> it would be movl tm_nest_level at TPOFF, %ecx
As a correction, I don't know that any of these is correct.
I need to look into this a bit more. I think that it requires the
relocation to be off of a register, i.e.
movabs $foo at tpoff, %rax
add $foo at tpoff, %rax
mov foo at tpoff(%rbx), %eax
are all legal, while:
mov foo at tpoff(%ebx), %eax
call foo at tpoff
mov $foo at tpoff, %eax
mov $foo at tpoff, %ax
mov $foo at tpoff, %al
are all illegal.
So we appear to be lowering something, and trying to make
an illegal move out of it.
Unfortunately we're really short on testcases here. :) I've made
an attempt that works for the current test and passes our set of tests
Transmitting file data ..
Committed revision 107860.
Going to need some more testcases soon though if you run into
any more problems :)
More information about the llvm-dev