Home | History | Annotate | Download | only in Mips
      1 // Test the bits of .eh_frame on mips that are already implemented correctly.
      2 
      3 // FIXME: This test would be a lot cleaner if llvm-objdump had the
      4 // --dwarf=frames option.
      5 
      6 // RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips
      7 // RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS32 %s
      8 
      9 // RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mipsel
     10 // RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS32EL %s
     11 
     12 // RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips64
     13 // RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS64 %s
     14 
     15 // RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips64el
     16 // RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS64EL %s
     17 
     18 func:
     19 	.cfi_startproc
     20 	.cfi_endproc
     21 
     22 // MIPS32: RELOCATION RECORDS FOR [.rel.eh_frame]:
     23 // MIPS32-NEXT: R_MIPS_32
     24 // MIPS32: Contents of section .eh_frame:
     25 // MIPS32-NEXT: 0000
     26 
     27 // Length
     28 // MIPS32: 00000010
     29 
     30 // CIE ID
     31 // MIPS32: 00000000
     32 
     33 // Version
     34 // MIPS32: 01
     35 
     36 // Augmentation String
     37 // MIPS32: 7a5200
     38 
     39 // Code Alignment Factor
     40 // MIPS32: 01
     41 
     42 // Data Alignment Factor (-4)
     43 // MIPS32: 7c
     44 
     45 // Return Address Register
     46 // MIPS32: 1f
     47 
     48 // Augmentation Size
     49 // MIPS32: 01
     50 
     51 // MIPS32: .........zR..|..
     52 // MIPS32-NEXT: 0010
     53 
     54 // Augmentation (fde pointer encoding: DW_EH_PE_sdata4)
     55 // MIPS32: 0b
     56 // FIXME: The instructions are different from the ones produces by gas.
     57 
     58 // MIPS32EL: RELOCATION RECORDS FOR [.rel.eh_frame]:
     59 // MIPS32EL-NEXT: R_MIPS_32
     60 // MIPS32EL: Contents of section .eh_frame:
     61 // MIPS32EL-NEXT: 0000
     62 
     63 // Length
     64 // MIPS32EL: 10000000
     65 
     66 // CIE ID
     67 // MIPS32EL: 00000000
     68 
     69 // Version
     70 // MIPS32EL: 01
     71 
     72 // Augmentation String
     73 // MIPS32EL: 7a5200
     74 
     75 // Code Alignment Factor
     76 // MIPS32EL: 01
     77 
     78 // Data Alignment Factor (-4)
     79 // MIPS32EL: 7c
     80 
     81 // Return Address Register
     82 // MIPS32EL: 1f
     83 
     84 // Augmentation Size
     85 // MIPS32EL: 01
     86 
     87 // MIPS32EL: .........zR..|..
     88 // MIPS32EL-NEXT: 0010
     89 
     90 // Augmentation (fde pointer encoding: DW_EH_PE_sdata4)
     91 // MIPS32EL: 0b
     92 // FIXME: The instructions are different from the ones produces by gas.
     93 
     94 // MIPS64: RELOCATION RECORDS FOR [.rela.eh_frame]:
     95 // MIPS64-NEXT: R_MIPS_64
     96 // MIPS64: Contents of section .eh_frame:
     97 // MIPS64-NEXT: 0000
     98 
     99 // Length
    100 // MIPS64: 00000010
    101 
    102 // CIE ID
    103 // MIPS64: 00000000
    104 
    105 // Version
    106 // MIPS64: 01
    107 
    108 // Augmentation String
    109 // MIPS64: 7a5200
    110 
    111 // Code Alignment Factor
    112 // MIPS64: 01
    113 
    114 // Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all
    115 // offsets we need are a multiple of 8.
    116 // MIPS64: 78
    117 
    118 // Return Address Register
    119 // MIPS64: 1f
    120 
    121 // Augmentation Size
    122 // MIPS64: 01
    123 
    124 // MIPS64: .........zR..x..
    125 // MIPS64-NEXT: 0010
    126 
    127 // Augmentation (fde pointer encoding: DW_EH_PE_sdata8)
    128 // MIPS64: 0c
    129 // FIXME: The instructions are different from the ones produces by gas.
    130 
    131 
    132 // MIPS64EL: RELOCATION RECORDS FOR [.rela.eh_frame]:
    133 // MIPS64EL-NEXT: R_MIPS_64
    134 // MIPS64EL: Contents of section .eh_frame:
    135 // MIPS64EL-NEXT: 0000
    136 
    137 // Length
    138 // MIPS64EL: 10000000
    139 
    140 // CIE ID
    141 // MIPS64EL: 00000000
    142 
    143 // Version
    144 // MIPS64EL: 01
    145 
    146 // Augmentation String
    147 // MIPS64EL: 7a5200
    148 
    149 // Code Alignment Factor
    150 // MIPS64EL: 01
    151 
    152 // Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all
    153 // offsets we need are a multiple of 8.
    154 // MIPS64EL: 78
    155 
    156 // Return Address Register
    157 // MIPS64EL: 1f
    158 
    159 // Augmentation Size
    160 // MIPS64EL: 01
    161 
    162 // MIPS64EL: .........zR..x..
    163 // MIPS64EL-NEXT: 0010
    164 
    165 // Augmentation (fde pointer encoding: DW_EH_PE_sdata8)
    166 // MIPS64EL: 0c
    167 // FIXME: The instructions are different from the ones produces by gas.
    168