Mercurial > hg > CbC > CbC_llvm
diff test/CodeGen/PowerPC/hello-reloc.s @ 0:95c75e76d11b LLVM3.4
LLVM 3.4
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 13:56:28 +0900 |
parents | |
children | 54457678186b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/CodeGen/PowerPC/hello-reloc.s Thu Dec 12 13:56:28 2013 +0900 @@ -0,0 +1,84 @@ +; This tests for the basic implementation of PPCMachObjectWriter.cpp, +; which is responsible for writing mach-o relocation entries for (PIC) +; PowerPC objects. +; NOTE: Darwin PPC asm syntax is not yet supported by PPCAsmParser, +; so this test case uses ELF PPC asm syntax to produce a mach-o object. +; Once PPCAsmParser supports darwin asm syntax, this test case should +; be updated accordingly. + +; RUN: llvm-mc -filetype=obj -relocation-model=pic -mcpu=g4 -triple=powerpc-apple-darwin8 %s -o - | llvm-readobj -relocations | FileCheck -check-prefix=DARWIN-G4-DUMP %s + +; .machine ppc7400 + .section __TEXT,__textcoal_nt,coalesced,pure_instructions + .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 + .section __TEXT,__text,regular,pure_instructions + .globl _main + .align 4 +_main: ; @main +; BB#0: ; %entry + mflr 0 + stw 31, -4(1) + stw 0, 8(1) + stwu 1, -80(1) + bl L0$pb +L0$pb: + mr 31, 1 + li 5, 0 + mflr 2 + stw 3, 68(31) + stw 5, 72(31) + stw 4, 64(31) + addis 2, 2, (L_.str-L0$pb)@ha + la 3, (L_.str-L0$pb)@l(2) + bl L_puts$stub + li 3, 0 + addi 1, 1, 80 + lwz 0, 8(1) + lwz 31, -4(1) + mtlr 0 + blr + + .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32 + .align 4 +L_puts$stub: + .indirect_symbol _puts + mflr 0 + bcl 20, 31, L_puts$stub$tmp +L_puts$stub$tmp: + mflr 11 + addis 11, 11, (L_puts$lazy_ptr-L_puts$stub$tmp)@ha + mtlr 0 + lwzu 12, (L_puts$lazy_ptr-L_puts$stub$tmp)@l(11) + mtctr 12 + bctr + .section __DATA,__la_symbol_ptr,lazy_symbol_pointers +L_puts$lazy_ptr: + .indirect_symbol _puts + .long dyld_stub_binding_helper + +.subsections_via_symbols + .section __TEXT,__cstring,cstring_literals +L_.str: ; @.str + .asciz "Hello, world!" + +; DARWIN-G4-DUMP:Format: Mach-O 32-bit ppc +; DARWIN-G4-DUMP:Arch: powerpc +; DARWIN-G4-DUMP:AddressSize: 32bit +; DARWIN-G4-DUMP:Relocations [ +; DARWIN-G4-DUMP: Section __text { +; DARWIN-G4-DUMP: 0x34 1 2 0 PPC_RELOC_BR24 0 - +; DARWIN-G4-DUMP: 0x30 0 2 n/a PPC_RELOC_LO16_SECTDIFF 1 _main +; DARWIN-G4-DUMP: 0x0 0 2 n/a PPC_RELOC_PAIR 1 _main +; DARWIN-G4-DUMP: 0x2C 0 2 n/a PPC_RELOC_HA16_SECTDIFF 1 _main +; DARWIN-G4-DUMP: 0x60 0 2 n/a PPC_RELOC_PAIR 1 _main +; DARWIN-G4-DUMP: } +; DARWIN-G4-DUMP: Section __picsymbolstub1 { +; DARWIN-G4-DUMP: 0x14 0 2 n/a PPC_RELOC_LO16_SECTDIFF 1 _main +; DARWIN-G4-DUMP: 0x0 0 2 n/a PPC_RELOC_PAIR 1 _main +; DARWIN-G4-DUMP: 0xC 0 2 n/a PPC_RELOC_HA16_SECTDIFF 1 _main +; DARWIN-G4-DUMP: 0x18 0 2 n/a PPC_RELOC_PAIR 1 _main +; DARWIN-G4-DUMP: } +; DARWIN-G4-DUMP: Section __la_symbol_ptr { +; DARWIN-G4-DUMP: 0x0 0 2 1 PPC_RELOC_VANILLA 0 dyld_stub_binding_helper +; DARWIN-G4-DUMP: } +; DARWIN-G4-DUMP:]