104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Test the bits of .eh_frame on mips that are already implemented correctly. 2732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// FIXME: This test would be a lot cleaner if llvm-objdump had the 404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// --dwarf=frames option. 5732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips 704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS32 %s 8732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mipsel 1004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS32EL %s 11732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 1204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips64 1304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS64 %s 14732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 1504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips64el 1604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS64EL %s 17732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 1804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindolafunc: 1904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola .cfi_startproc 2004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola .cfi_endproc 21732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 227486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// MIPS32: RELOCATION RECORDS FOR [.rel.eh_frame]: 2304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32-NEXT: R_MIPS_32 2404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: Contents of section .eh_frame: 2504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32-NEXT: 0000 26732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 2704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Length 2804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: 00000010 29732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 3004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// CIE ID 3104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: 00000000 32732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 3304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Version 34cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines// MIPS32: 03 3504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 3604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation String 3704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: 7a5200 3804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 3904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Code Alignment Factor 4004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: 01 4104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 4204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Data Alignment Factor (-4) 4304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: 7c 4404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 4504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Return Address Register 4604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: 1f 4704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 4804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation Size 4904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: 01 5004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 5104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: .........zR..|.. 5204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32-NEXT: 0010 5304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 5404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation (fde pointer encoding: DW_EH_PE_sdata4) 5504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32: 0b 5604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// FIXME: The instructions are different from the ones produces by gas. 5704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 587486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// MIPS32EL: RELOCATION RECORDS FOR [.rel.eh_frame]: 5904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL-NEXT: R_MIPS_32 6004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: Contents of section .eh_frame: 6104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL-NEXT: 0000 6204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 6304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Length 6404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: 10000000 6504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 6604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// CIE ID 6704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: 00000000 6804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 6904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Version 70cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines// MIPS32EL: 03 7104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 7204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation String 7304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: 7a5200 7404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 7504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Code Alignment Factor 7604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: 01 7704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 7804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Data Alignment Factor (-4) 7904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: 7c 8004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 8104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Return Address Register 8204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: 1f 8304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 8404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation Size 8504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: 01 8604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 8704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: .........zR..|.. 8804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL-NEXT: 0010 8904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 9004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation (fde pointer encoding: DW_EH_PE_sdata4) 9104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS32EL: 0b 9204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// FIXME: The instructions are different from the ones produces by gas. 9304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 947486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// MIPS64: RELOCATION RECORDS FOR [.rela.eh_frame]: 9504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64-NEXT: R_MIPS_64 9604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: Contents of section .eh_frame: 9704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64-NEXT: 0000 9804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 9904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Length 10004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: 00000010 10104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 10204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// CIE ID 10304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: 00000000 10404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 10504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Version 106cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines// MIPS64: 03 10704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 10804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation String 10904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: 7a5200 11004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 11104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Code Alignment Factor 11204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: 01 11304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 11404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all 11504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// offsets we need are a multiple of 8. 11604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: 78 11704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 11804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Return Address Register 11904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: 1f 12004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 12104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation Size 12204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: 01 12304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 12404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: .........zR..x.. 12504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64-NEXT: 0010 12604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 12704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation (fde pointer encoding: DW_EH_PE_sdata8) 12804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64: 0c 12904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// FIXME: The instructions are different from the ones produces by gas. 13004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 13104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 1327486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola// MIPS64EL: RELOCATION RECORDS FOR [.rela.eh_frame]: 133d787a41b118a3724d1df87dc3d38cc3fddb3a145Rafael Espindola// MIPS64EL-NEXT: R_MIPS_64 13404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: Contents of section .eh_frame: 13504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL-NEXT: 0000 13604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 13704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Length 13804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: 10000000 13904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 14004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// CIE ID 14104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: 00000000 14204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 14304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Version 144cd81d94322a39503e4a3e87b6ee03d4fcb3465fbStephen Hines// MIPS64EL: 03 14504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 14604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation String 14704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: 7a5200 14804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 14904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Code Alignment Factor 15004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: 01 15104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 15204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all 15304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// offsets we need are a multiple of 8. 15404011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: 78 15504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 15604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Return Address Register 15704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: 1f 15804011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 15904011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation Size 16004011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: 01 16104011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola 16204011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: .........zR..x.. 16304011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL-NEXT: 0010 164732f4bc7c4baa7546b0942f69562d4fb3f474999Jack Carter 16504011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// Augmentation (fde pointer encoding: DW_EH_PE_sdata8) 16604011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// MIPS64EL: 0c 16704011e8429033ae0623ea629527d2d13de3f8109Rafael Espindola// FIXME: The instructions are different from the ones produces by gas. 168