search for: tpoff

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 @@