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