Displaying 9 results from an estimated 9 matches for "tpoff".
2010 Jul 08
0
[LLVMdev] LLC Bug x86 with thread local storage
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
>> or
>> - movq $tm_nest_level at TPOFF, %rcx
>> or
>> - movl tm_nest_level at TPOFF, %ecx
>>
>
> I believe this is initial exec and so from:
>
> http://people.redhat.com/drepper/tls.pdf
>
> it would be movl tm_nest_level at TPOFF, %ec...
2010 Jul 07
4
[LLVMdev] LLC Bug x86 with thread local storage
On Jul 7, 2010, at 4:52 AM, Patrick Marlier wrote:
> Which one is correct ?
> - movl $tm_nest_level at TPOFF, %ecx
> or
> - movq $tm_nest_level at TPOFF, %rcx
> or
> - movl tm_nest_level at TPOFF, %ecx
>
I believe this is initial exec and so from:
http://people.redhat.com/drepper/tls.pdf
it would be movl tm_nest_level at TPOFF, %ecx
> Otherwise, Is there a way to remove this $...
2010 Jul 07
0
[LLVMdev] LLC Bug x86 with thread local storage
...estcase but the generated code is
> wrong if you try to compile it with "as".
>
> $ as select.s
> select.s: Assembler messages:
> select.s:8: Error: relocated field and relocation type differ in
signedness
>
> select.s
> 8: movl $tm_nest_level at TPOFF, %ecx
> 9: movq %fs:0, %rax
Which one is correct ?
- movl $tm_nest_level at TPOFF, %ecx
or
- movq $tm_nest_level at TPOFF, %rcx
or
- movl tm_nest_level at TPOFF, %ecx
Otherwise, Is there a way to remove this $ character?
I found that it is here in lib/Target/X86/AsmPrinter...
2010 Jun 22
2
[LLVMdev] LLC Bug x86 with thread local storage
...> -eric
Actually, now llc works with the testcase but the generated code is
wrong if you try to compile it with "as".
$ as select.s
select.s: Assembler messages:
select.s:8: Error: relocated field and relocation type differ in signedness
select.s
8: movl $tm_nest_level at TPOFF, %ecx
9: movq %fs:0, %rax
This is why I set MOV64ri32 and not MOV64ri64i32 in my patch (thus this
is why I asked for correctness).
Thank you,
Patrick Marlier.
2010 Jul 07
0
[LLVMdev] LLC Bug x86 with thread local storage
On 07/07/2010 08:20 PM, 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
>> or
>> - movq $tm_nest_level at TPOFF, %rcx
>> or
>> - movl tm_nest_level at TPOFF, %ecx
>>
>
> I believe this is initial exec and so from:
>
> http://people.redhat.com/drepper/tls.pdf
>
> it would be movl tm_nest_level at TPOFF, %ecx
&g...
2007 Apr 11
2
[LLVMdev] ideas for TLS implementation
...@ frame_needed = 0, uses_anonymous_args = 0
str lr, [sp, #-4]!
ldr r3, .L2
bl __aeabi_read_tp @ load_tp_soft <== get thread pointer
(abi dependent)
ldr r0, [r0, r3]
ldr pc, [sp], #4
.L3:
.align 2
.L2:
.word a(tpoff) <== offset of "a"
.size f, .-f
The idea of implementing TLS is to create the "thread_local" keyword.
The program above would be converted to this:
@a = thread_local global i32 1 ; <i32*> [#uses=1] <== Thread
local keyword
define i32 @f() {...
2010 Jun 21
0
[LLVMdev] LLC Bug x86 with thread local storage
On Jun 21, 2010, at 2:56 AM, Patrick Marlier wrote:
> Hello,
>
> This bug affects all LLVM versions from 2.6 to trunk :
> http://llvm.org/bugs/show_bug.cgi?id=5081
>
> The workaround I found is to add this :
>
> Index: lib/Target/X86/X86Instr64bit.td
> ===================================================================
> --- lib/Target/X86/X86Instr64bit.td
2007 Apr 11
0
[LLVMdev] ideas for TLS implementation
...0
> str lr, [sp, #-4]!
> ldr r3, .L2
> bl __aeabi_read_tp @ load_tp_soft <== get thread pointer
> (abi dependent)
> ldr r0, [r0, r3]
> ldr pc, [sp], #4
> .L3:
> .align 2
> .L2:
> .word a(tpoff) <== offset of "a"
> .size f, .-f
>
>
> The idea of implementing TLS is to create the "thread_local" keyword.
> The program above would be converted to this:
>
> @a = thread_local global i32 1 ; <i32*> [#uses=1] <== Threa...
2010 Jun 21
2
[LLVMdev] LLC Bug x86 with thread local storage
Hello,
This bug affects all LLVM versions from 2.6 to trunk :
http://llvm.org/bugs/show_bug.cgi?id=5081
The workaround I found is to add this :
Index: lib/Target/X86/X86Instr64bit.td
===================================================================
--- lib/Target/X86/X86Instr64bit.td (revision 105882)
+++ lib/Target/X86/X86Instr64bit.td (working copy)
@@ -1832,6 +1832,8 @@