brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · 94c9923 Raw
139 lines · plain
1@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \2@ RUN:   | llvm-readobj -S --sd --sr --symbols - > %t3@ RUN: FileCheck %s < %t4@ RUN: FileCheck --check-prefix=RELOC %s < %t5 6@ Check whether the section is switched back properly.7 8@ The assembler should switch the section back to the corresponding section9@ after it have emitted the exception handling indices and tables.  In this10@ test case, we are checking whether the section is correct when .section11@ directives is used.12 13@ In this example, func1 and func2 should be defined in .TEST1 section.14@ It is incorrect if the func2 is in .text, .ARM.extab.TEST1, or15@ .ARM.exidx.TEST1 sections.16 17	.syntax	unified18 19	.section	.TEST120 21	.globl	func122	.align	223	.type	func1,%function24	.fnstart25func1:26	bx	lr27	.personality	__gxx_personality_v028	.handlerdata29	.fnend30 31	.globl	func232	.align	233	.type	func2,%function34	.fnstart35func2:36	bx	lr37	.personality	__gxx_personality_v038	.handlerdata39	.fnend40 41 42@-------------------------------------------------------------------------------43@ Check the .text section.  This should be empty.44@-------------------------------------------------------------------------------45@ CHECK: Sections [46@ CHECK:   Section {47@ CHECK:     Name: .text48@ CHECK:     SectionData (49@ CHECK:     )50@ CHECK:   }51 52 53@-------------------------------------------------------------------------------54@ Check the .TEST1 section.  There should be two "bx lr" instructions.55@-------------------------------------------------------------------------------56@ CHECK:   Section {57@ CHECK:     Index: 358@ CHECK-NEXT:     Name: .TEST159@ CHECK:     SectionData (60@ CHECK:       0000: 1EFF2FE1 1EFF2FE1                    |../.../.|61@ CHECK:     )62@ CHECK:   }63 64 65 66@-------------------------------------------------------------------------------67@ Check the .ARM.extab.TEST1 section.68@-------------------------------------------------------------------------------69@ CHECK:   Section {70@ CHECK:     Name: .ARM.extab.TEST171@ CHECK:     SectionData (72@ CHECK:       0000: 00000000 B0B0B000 00000000 B0B0B000  |................|73@ CHECK:     )74@ CHECK:   }75 76@ RELOC:   Section {77@ RELOC:     Name: .rel.ARM.extab.TEST178@ RELOC:     Relocations [79@ RELOC:       0x0 R_ARM_PREL31 __gxx_personality_v080@ RELOC:       0x8 R_ARM_PREL31 __gxx_personality_v081@ RELOC:     ]82@ RELOC:   }83 84 85@-------------------------------------------------------------------------------86@ Check the .ARM.exidx.TEST1 section.87@-------------------------------------------------------------------------------88@ CHECK:   Section {89@ CHECK:     Name: .ARM.exidx.TEST190@ CHECK:     Link: 391@-------------------------------------------------------------------------------92@ The first word should be the offset to .TEST1.93@ The second word should be the offset to .ARM.extab.TEST194@-------------------------------------------------------------------------------95@ CHECK:     SectionData (96@ CHECK:       0000: 00000000 00000000 04000000 08000000  |................|97@ CHECK:     )98@ CHECK:   }99@-------------------------------------------------------------------------------100@ The first word of each entry should be relocated to .TEST1 section.101@ The second word of each entry should be relocated to102@ .ARM.extab.TESET1 section.103@-------------------------------------------------------------------------------104 105@ RELOC:   Section {106@ RELOC:     Name: .rel.ARM.exidx.TEST1107@ RELOC:     Relocations [108@ RELOC:       0x0 R_ARM_PREL31 .TEST1109@ RELOC:       0x4 R_ARM_PREL31 .ARM.extab.TEST1110@ RELOC:       0x8 R_ARM_PREL31 .TEST1111@ RELOC:       0xC R_ARM_PREL31 .ARM.extab.TEST1112@ RELOC:     ]113@ RELOC:   }114 115 116@-------------------------------------------------------------------------------117@ Check the symbols "func1" and "func2".  They should belong to .TEST1 section.118@-------------------------------------------------------------------------------119@ CHECK: Symbols [120@ CHECK:   Symbol {121@ CHECK:     Name: func1122@ CHECK:     Value: 0x0123@ CHECK:     Size: 0124@ CHECK:     Binding: Global (0x1)125@ CHECK:     Type: Function (0x2)126@ CHECK:     Other: 0127@ CHECK:     Section: .TEST1128@ CHECK:   }129@ CHECK:   Symbol {130@ CHECK:     Name: func2131@ CHECK:     Value: 0x4132@ CHECK:     Size: 0133@ CHECK:     Binding: Global (0x1)134@ CHECK:     Type: Function (0x2)135@ CHECK:     Other: 0136@ CHECK:     Section: .TEST1137@ CHECK:   }138@ CHECK: ]139