1 // Test the bits of .eh_frame on mips that are already implemented correctly.
3 // FIXME: This test would be a lot cleaner if llvm-objdump had the
4 // --dwarf=frames option.
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
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
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
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
22 // MIPS32: RELOCATION RECORDS FOR [.rel.eh_frame]:
23 // MIPS32-NEXT: R_MIPS_32
24 // MIPS32: Contents of section .eh_frame:
36 // Augmentation String
39 // Code Alignment Factor
42 // Data Alignment Factor (-4)
45 // Return Address Register
51 // MIPS32: .........zR..|..
54 // Augmentation (fde pointer encoding: DW_EH_PE_sdata4)
56 // FIXME: The instructions are different from the ones produces by gas.
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
72 // Augmentation String
75 // Code Alignment Factor
78 // Data Alignment Factor (-4)
81 // Return Address Register
87 // MIPS32EL: .........zR..|..
88 // MIPS32EL-NEXT: 0010
90 // Augmentation (fde pointer encoding: DW_EH_PE_sdata4)
92 // FIXME: The instructions are different from the ones produces by gas.
94 // MIPS64: RELOCATION RECORDS FOR [.rela.eh_frame]:
95 // MIPS64-NEXT: R_MIPS_64
96 // MIPS64: Contents of section .eh_frame:
108 // Augmentation String
111 // Code Alignment Factor
114 // Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all
115 // offsets we need are a multiple of 8.
118 // Return Address Register
124 // MIPS64: .........zR..x..
127 // Augmentation (fde pointer encoding: DW_EH_PE_sdata8)
129 // FIXME: The instructions are different from the ones produces by gas.
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
138 // MIPS64EL: 10000000
141 // MIPS64EL: 00000000
146 // Augmentation String
149 // Code Alignment Factor
152 // Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all
153 // offsets we need are a multiple of 8.
156 // Return Address Register
162 // MIPS64EL: .........zR..x..
163 // MIPS64EL-NEXT: 0010
165 // Augmentation (fde pointer encoding: DW_EH_PE_sdata8)
167 // FIXME: The instructions are different from the ones produces by gas.