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 18func: 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