[MCJIT] Add an i386 RuntimeDyldMachO test case.
authorLang Hames <lhames@gmail.com>
Tue, 19 Aug 2014 21:26:36 +0000 (21:26 +0000)
committerLang Hames <lhames@gmail.com>
Tue, 19 Aug 2014 21:26:36 +0000 (21:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216024 91177308-0d34-0410-b5e6-96231b3b80d8

test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_DynNoPIC_relocations.s [new file with mode: 0644]
test/ExecutionEngine/RuntimeDyld/X86/MachO_x86-64_PIC_relocations.s

diff --git a/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_DynNoPIC_relocations.s b/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_DynNoPIC_relocations.s
new file mode 100644 (file)
index 0000000..f427b98
--- /dev/null
@@ -0,0 +1,45 @@
+# RUN: llvm-mc -triple=i386-apple-macosx10.4 -relocation-model=dynamic-no-pic -filetype=obj -o %T/test_i386.o %s
+# RUN: llvm-rtdyld -triple=i386-apple-macosx10.4 -verify -check=%s %/T/test_i386.o
+
+       .section        __TEXT,__text,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
+inst1:
+       movl    x$non_lazy_ptr-tmp0$pb(%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
index 00b2df6ecc71c572dba8b7e31e12d4fc55dd8344..7a40a24d312a975f4cb00652c4246bac7c0259c6 100644 (file)
@@ -1,5 +1,5 @@
-# RUN: llvm-mc -triple=x86_64-apple-macosx10.9 -relocation-model=pic -filetype=obj -o %T/foo.o %s
-# RUN: llvm-rtdyld -triple=x86_64-apple-macosx10.9 -verify -check=%s %/T/foo.o
+# RUN: llvm-mc -triple=x86_64-apple-macosx10.9 -relocation-model=pic -filetype=obj -o %T/test_x86-64.o %s
+# RUN: llvm-rtdyld -triple=x86_64-apple-macosx10.9 -verify -check=%s %/T/test_x86-64.o
 # XFAIL: mips
 
         .section       __TEXT,__text,regular,pure_instructions
@@ -24,8 +24,8 @@ insn2:
 # 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(foo.o, __text, y)) = y
-# rtdyld-check: decode_operand(insn3, 4) = stub_addr(foo.o, __text, y) - next_pc(insn3)
+# rtdyld-check: *{8}(stub_addr(test_x86-64.o, __text, y)) = y
+# rtdyld-check: decode_operand(insn3, 4) = stub_addr(test_x86-64.o, __text, y) - next_pc(insn3)
 insn3:
         movq   y@GOTPCREL(%rip), %rax