Displaying 6 results from an estimated 6 matches for "non_lazy_symbol_pointers".
2009 Jun 16
0
[LLVMdev] PIC documentation ?
...gets value of PC into %ecx
(other registers can be used)
movl L_x$non_lazy_ptr-"L00000000001$pb"(%ecx), %eax <<
gets &x; PC relative
movl (%eax), %eax << gets x; indirect
ret
.comm _x,4,2
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_x$non_lazy_ptr:
.indirect_symbol _x << magic cookie for indirect
references, must be in this magic section
.long 0
Result of -mdynamic-no-pic:
_foo:
movl L_x$non_lazy_ptr, %eax << &x, not PC relative
movl (%eax), %eax...
2009 Jun 16
4
[LLVMdev] PIC documentation ?
Anton,
>> Can I ask what platform ABI's are documented other than Itanium ?
> I'd bet all platform ABI are more or less documented.
Right.
Maybe we should collect references and do some LLVM PIC documentation and
put it on LLVM website ?
>> I need to get to understand PIC on x86, x86_64 and PowerPC for the COFF
>> and MachO backends.
> ABI is normally induced
2013 Mar 08
0
[LLVMdev] ARM assembler's syntax in clang
...ta_table(void) {
* return &data_table[0];
* }
*/
movw r1, :lower16:(L_data_table$non_lazy_ptr-(LPC0_0+4))
movt r1, :upper16:(L_data_table$non_lazy_ptr-(LPC0_0+4))
LPC0_0:
add r1, pc
ldr r1, [r1]
bx lr
.section __DATA,__nl_symbol_ptr,non_lazy_symbol_pointers
.align 2
L_data_table$non_lazy_ptr:
.indirect_symbol _data_table
.long 0
.subsections_via_symbols
/* ==end use_table_m2.s== */
/* ==begin test.c ==*/
extern int data_table[];
int main(void)
{
int a = data_table[0];
return 0;
}
/* ==end test.c ==*/
/* ==Makefile== *...
2013 Mar 07
2
[LLVMdev] ARM assembler's syntax in clang
Hi Ashi,
> ld: illegal text-relocation to _data_table in table.o from foo in
> use_table.o for architecture armv7
It looks like you're using iOS. I'm not familiar with the exact
workings of that platform, but I think a similar message would occur
in ELF-land.
If iOS *is* comparable, your issue is that symbols in dynamically
loaded objects can't (usually) be referenced directly
2008 Sep 25
5
[LLVMdev] confused about llvm.memory.barrier
...1. llc -mcpu=core2 -mattr=+sse2,+sse3 -f -o test.s test.bc
becomes
1. .text
2. .align 4,0x90
3. .globl __Z3foov
4. __Z3foov:
5. movl L_a$non_lazy_ptr, %eax
6. movl $1, (%eax)
7. nop
8. movl L_b$non_lazy_ptr, %eax
9. movl (%eax), %eax
10. ret
11.
12. .section __IMPORT,__pointers,non_lazy_symbol_pointers
13. L_a$non_lazy_ptr:
14. .indirect_symbol _a
15. .long 0
16. L_b$non_lazy_ptr:
17. .indirect_symbol _b
18. .long 0
19. .subsections_via_symbols
Is the problem related to the fact that I get i386 from uname -m? If so,
how can I tell override this setting during compilation?
Thanks,
Luke
2010 Jun 21
2
[LLVMdev] MC: Object file specific parsing
...-
- // FIXME: The section names of these two are misspelled in the assembler
- // manual.
- if (IDVal == ".non_lazy_symbol_pointer")
- return ParseDirectiveSectionSwitch("__DATA", "__nl_symbol_ptr",
- MCSectionMachO::S_NON_LAZY_SYMBOL_POINTERS,
- 4);
- if (IDVal == ".lazy_symbol_pointer")
- return ParseDirectiveSectionSwitch("__DATA", "__la_symbol_ptr",
- MCSectionMachO::S_LAZY_SYMBOL_POINTERS,
-...