1de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar# RUN: llvm-mc -triple=i386-apple-macosx10.4 -filetype=obj -o %T/test_i386.o %s 237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines# RUN: llvm-rtdyld -triple=i386-apple-macosx10.4 -verify -check=%s %/T/test_i386.o 337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 4f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar// Put the section used in the test at a non zero address. 5f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar .long 4 6f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar 7f3ef5332fa3f4d5ec72c178a2b19dac363a19383Pirama Arumuga Nainar .section __TEXT,__text2,regular,pure_instructions 837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .globl bar 937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .align 4, 0x90 1037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesbar: 1137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines calll tmp0$pb 1237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinestmp0$pb: 1337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines popl %eax 1437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines# Test section difference relocation to non-lazy ptr section. 156948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar# rtdyld-check: decode_operand(inst1, 4) = x$non_lazy_ptr - tmp0$pb + 8 1637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesinst1: 176948897e478cbd66626159776a8017b3c18579b9Pirama Arumuga Nainar movl (x$non_lazy_ptr-tmp0$pb)+8(%eax), %eax 1837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines movl (%eax), %ebx 1937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 2037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines# Test VANILLA relocation to jump table. 2137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines# rtdyld-check: decode_operand(inst2, 0) = bling$stub - next_pc(inst2) 2237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesinst2: 2337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines calll bling$stub 2437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines addl %ebx, %eax 2537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 2637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines# Test scattered VANILLA relocations. 2737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesinst3: 2837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines movl y+4, %ecx 2937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines addl %ecx, %eax 3037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines retl 3137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 3237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .section __IMPORT,__jump_table,symbol_stubs,pure_instructions+self_modifying_code,5 3337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesbling$stub: 3437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .indirect_symbol bling 3537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .ascii "\364\364\364\364\364" 3637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 3737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .section __IMPORT,__pointers,non_lazy_symbol_pointers 3837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hinesx$non_lazy_ptr: 3937ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .indirect_symbol x 4037ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .long 0 4137ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 4237ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .comm x,4,2 4337ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .comm bling,4,2 4437ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 4537ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines .globl y 4637ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.zerofill __DATA,__common,y,8,3 4737ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines 4837ed9c199ca639565f6ce88105f9e39e898d82d0Stephen Hines.subsections_via_symbols 49