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