# RUN: llvm-mc -triple=x86_64-apple-macosx10.9 -relocation-model=pic -filetype=obj -o %T/foo.o %s # RUN: sed "s,,%/T/foo.o,g" %s > %T/foo.s # RUN: llvm-rtdyld -triple=x86_64-apple-macosx10.9 -verify -check=%T/foo.s %T/foo.o .section __TEXT,__text,regular,pure_instructions .globl foo .align 4, 0x90 foo: retq .globl main .align 4, 0x90 main: # Test PC-rel branch. # rtdyld-check: decode_operand(insn1, 0) = foo - next_pc(insn1) insn1: callq foo # Test PC-rel signed. # rtdyld-check: decode_operand(insn2, 4) = x - next_pc(insn2) insn2: movl x(%rip), %eax # Test PC-rel GOT relocation. # Verify both the contents of the GOT entry for y, and that the movq instruction # references the correct GOT entry address: # rtdyld-check: *{8}(stub_addr(, __text, y)) = y # rtdyld-check: decode_operand(insn3, 4) = stub_addr(, __text, y) - next_pc(insn3) insn3: movq y@GOTPCREL(%rip), %rax movl $0, %eax retq .comm y,4,2 .section __DATA,__data .globl x .align 2 x: .long 5 .subsections_via_symbols