reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
# RUN: rm -rf %t && mkdir -p %t
# RUN: llvm-mc -triple=i386-apple-macosx10.4 -filetype=obj -o %t/test_i386.o %s
# RUN: llvm-rtdyld -triple=i386-apple-macosx10.4 -verify -check=%s %t/test_i386.o

// Put the section used in the test at a non zero address.
	.long 4

	.section	__TEXT,__text2,regular,pure_instructions
	.globl	bar
	.align	4, 0x90
bar:
	calll	tmp0$pb
tmp0$pb:
	popl	%eax
# Test section difference relocation to non-lazy ptr section.
# rtdyld-check: decode_operand(inst1, 4) = x$non_lazy_ptr - tmp0$pb + 8
inst1:
	movl	(x$non_lazy_ptr-tmp0$pb)+8(%eax), %eax
        movl    (%eax), %ebx

# Test VANILLA relocation to jump table.
# rtdyld-check: decode_operand(inst2, 0) = bling$stub - next_pc(inst2)
inst2:
        calll	bling$stub
        addl    %ebx, %eax

# Test scattered VANILLA relocations.
inst3:
        movl    y+4, %ecx
        addl    %ecx, %eax
	retl

	.section	__IMPORT,__jump_table,symbol_stubs,pure_instructions+self_modifying_code,5
bling$stub:
	.indirect_symbol	bling
	.ascii	"\364\364\364\364\364"

	.section	__IMPORT,__pointers,non_lazy_symbol_pointers
x$non_lazy_ptr:
	.indirect_symbol	x
	.long	0

        .comm   x,4,2
        .comm   bling,4,2

        .globl	y
.zerofill __DATA,__common,y,8,3

.subsections_via_symbols