Home | History | Annotate | Download | only in ARM
      1 @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
      2 @ RUN:   | llvm-readobj -s -sd -sr > %t
      3 @ RUN: FileCheck %s < %t
      4 @ RUN: FileCheck --check-prefix=RELOC %s < %t
      5 
      6 @ Check the .personality directive.
      7 
      8 	.syntax unified
      9 
     10 @-------------------------------------------------------------------------------
     11 @ TEST1
     12 @-------------------------------------------------------------------------------
     13 	.section	.TEST1
     14 	.globl	func1
     15 	.align	2
     16 	.type	func1,%function
     17 	.fnstart
     18 func1:
     19 	bx	lr
     20 	.personality __gxx_personality_v0
     21 	.handlerdata
     22 	.fnend
     23 
     24 
     25 @ CHECK: Section {
     26 @ CHECK:   Name: .TEST1
     27 @ CHECK:   SectionData (
     28 @ CHECK:     0000: 1EFF2FE1                             |../.|
     29 @ CHECK:   )
     30 @ CHECK: }
     31 @ CHECK: Section {
     32 @ CHECK:   Name: .ARM.extab.TEST1
     33 @ CHECK:   SectionData (
     34 @ CHECK:     0000: 00000000 B0B0B000                    |........|
     35 @ CHECK:   )
     36 @ CHECK: }
     37 
     38 @ RELOC: Section {
     39 @ RELOC:   Name: .rel.ARM.extab.TEST1
     40 @ RELOC:   Relocations [
     41 @ RELOC:     0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
     42 @ RELOC:   ]
     43 @ RELOC: }
     44 
     45 @ CHECK: Section {
     46 @ CHECK:   Name: .ARM.exidx.TEST1
     47 @ CHECK:   SectionData (
     48 @ CHECK:     0000: 00000000 00000000                    |........|
     49 @ CHECK:   )
     50 @ CHECK: }
     51 
     52 @ RELOC: Section {
     53 @ RELOC:   Name: .rel.ARM.exidx.TEST1
     54 @ RELOC:   Relocations [
     55 @ RELOC:     0x0 R_ARM_PREL31 .TEST1 0x0
     56 @ RELOC:     0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
     57 @ RELOC:   ]
     58 @ RELOC: }
     59 
     60 
     61 @-------------------------------------------------------------------------------
     62 @ TEST2
     63 @-------------------------------------------------------------------------------
     64 	.section	.TEST2
     65 	.globl	func2
     66 	.align	2
     67 	.type	func2,%function
     68 	.fnstart
     69 func2:
     70 	bx	lr
     71 	.personality __gxx_personality_v0
     72 	@ The .handlerdata directive is intentionally ignored.  The .fnend		@ directive should create the EXTAB entry and flush the unwind opcodes.
     73 	.fnend
     74 
     75 
     76 @ CHECK: Section {
     77 @ CHECK:   Name: .TEST2
     78 @ CHECK:   SectionData (
     79 @ CHECK:     0000: 1EFF2FE1                             |../.|
     80 @ CHECK:   )
     81 @ CHECK: }
     82 @ CHECK: Section {
     83 @ CHECK:   Name: .ARM.extab.TEST2
     84 @ CHECK:   SectionData (
     85 @ CHECK:     0000: 00000000 B0B0B000                    |........|
     86 @ CHECK:   )
     87 @ CHECK: }
     88 
     89 @ RELOC: Section {
     90 @ RELOC:   Name: .rel.ARM.extab.TEST2
     91 @ RELOC:   Relocations [
     92 @ RELOC:     0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
     93 @ RELOC:   ]
     94 @ RELOC: }
     95 
     96 @ CHECK: Section {
     97 @ CHECK:   Name: .ARM.exidx.TEST2
     98 @ CHECK:   SectionData (
     99 @ CHECK:     0000: 00000000 00000000                    |........|
    100 @ CHECK:   )
    101 @ CHECK: }
    102 
    103 @ RELOC: Section {
    104 @ RELOC:   Name: .rel.ARM.exidx.TEST2
    105 @ RELOC:   Relocations [
    106 @ RELOC:     0x0 R_ARM_PREL31 .TEST2 0x0
    107 @ RELOC:     0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
    108 @ RELOC:   ]
    109 @ RELOC: }
    110