2013-04-03 11:13:19 +08:00
|
|
|
// Test the bits of .eh_frame on mips that are already implemented correctly.
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// FIXME: This test would be a lot cleaner if llvm-objdump had the
|
|
|
|
// --dwarf=frames option.
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips
|
|
|
|
// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS32 %s
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mipsel
|
|
|
|
// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS32EL %s
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips64
|
|
|
|
// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS64 %s
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// RUN: llvm-mc -filetype=obj %s -o %t.o -arch=mips64el
|
|
|
|
// RUN: llvm-objdump -r -s %t.o | FileCheck --check-prefix=MIPS64EL %s
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
func:
|
|
|
|
.cfi_startproc
|
|
|
|
.cfi_endproc
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-05-30 11:05:14 +08:00
|
|
|
// MIPS32: RELOCATION RECORDS FOR [.rel.eh_frame]:
|
2013-04-03 11:13:19 +08:00
|
|
|
// MIPS32-NEXT: R_MIPS_32
|
|
|
|
// MIPS32: Contents of section .eh_frame:
|
|
|
|
// MIPS32-NEXT: 0000
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// Length
|
|
|
|
// MIPS32: 00000010
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// CIE ID
|
|
|
|
// MIPS32: 00000000
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// Version
|
|
|
|
// MIPS32: 01
|
|
|
|
|
|
|
|
// Augmentation String
|
|
|
|
// MIPS32: 7a5200
|
|
|
|
|
|
|
|
// Code Alignment Factor
|
|
|
|
// MIPS32: 01
|
|
|
|
|
|
|
|
// Data Alignment Factor (-4)
|
|
|
|
// MIPS32: 7c
|
|
|
|
|
|
|
|
// Return Address Register
|
|
|
|
// MIPS32: 1f
|
|
|
|
|
|
|
|
// Augmentation Size
|
|
|
|
// MIPS32: 01
|
|
|
|
|
|
|
|
// MIPS32: .........zR..|..
|
|
|
|
// MIPS32-NEXT: 0010
|
|
|
|
|
|
|
|
// Augmentation (fde pointer encoding: DW_EH_PE_sdata4)
|
|
|
|
// MIPS32: 0b
|
|
|
|
// FIXME: The instructions are different from the ones produces by gas.
|
|
|
|
|
2013-05-30 11:05:14 +08:00
|
|
|
// MIPS32EL: RELOCATION RECORDS FOR [.rel.eh_frame]:
|
2013-04-03 11:13:19 +08:00
|
|
|
// MIPS32EL-NEXT: R_MIPS_32
|
|
|
|
// MIPS32EL: Contents of section .eh_frame:
|
|
|
|
// MIPS32EL-NEXT: 0000
|
|
|
|
|
|
|
|
// Length
|
|
|
|
// MIPS32EL: 10000000
|
|
|
|
|
|
|
|
// CIE ID
|
|
|
|
// MIPS32EL: 00000000
|
|
|
|
|
|
|
|
// Version
|
|
|
|
// MIPS32EL: 01
|
|
|
|
|
|
|
|
// Augmentation String
|
|
|
|
// MIPS32EL: 7a5200
|
|
|
|
|
|
|
|
// Code Alignment Factor
|
|
|
|
// MIPS32EL: 01
|
|
|
|
|
|
|
|
// Data Alignment Factor (-4)
|
|
|
|
// MIPS32EL: 7c
|
|
|
|
|
|
|
|
// Return Address Register
|
|
|
|
// MIPS32EL: 1f
|
|
|
|
|
|
|
|
// Augmentation Size
|
|
|
|
// MIPS32EL: 01
|
|
|
|
|
|
|
|
// MIPS32EL: .........zR..|..
|
|
|
|
// MIPS32EL-NEXT: 0010
|
|
|
|
|
|
|
|
// Augmentation (fde pointer encoding: DW_EH_PE_sdata4)
|
|
|
|
// MIPS32EL: 0b
|
|
|
|
// FIXME: The instructions are different from the ones produces by gas.
|
|
|
|
|
2013-05-30 11:05:14 +08:00
|
|
|
// MIPS64: RELOCATION RECORDS FOR [.rela.eh_frame]:
|
2013-04-03 11:13:19 +08:00
|
|
|
// MIPS64-NEXT: R_MIPS_64
|
|
|
|
// MIPS64: Contents of section .eh_frame:
|
|
|
|
// MIPS64-NEXT: 0000
|
|
|
|
|
|
|
|
// Length
|
|
|
|
// MIPS64: 00000010
|
|
|
|
|
|
|
|
// CIE ID
|
|
|
|
// MIPS64: 00000000
|
|
|
|
|
|
|
|
// Version
|
|
|
|
// MIPS64: 01
|
|
|
|
|
|
|
|
// Augmentation String
|
|
|
|
// MIPS64: 7a5200
|
|
|
|
|
|
|
|
// Code Alignment Factor
|
|
|
|
// MIPS64: 01
|
|
|
|
|
|
|
|
// Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all
|
|
|
|
// offsets we need are a multiple of 8.
|
|
|
|
// MIPS64: 78
|
|
|
|
|
|
|
|
// Return Address Register
|
|
|
|
// MIPS64: 1f
|
|
|
|
|
|
|
|
// Augmentation Size
|
|
|
|
// MIPS64: 01
|
|
|
|
|
|
|
|
// MIPS64: .........zR..x..
|
|
|
|
// MIPS64-NEXT: 0010
|
|
|
|
|
|
|
|
// Augmentation (fde pointer encoding: DW_EH_PE_sdata8)
|
|
|
|
// MIPS64: 0c
|
|
|
|
// FIXME: The instructions are different from the ones produces by gas.
|
|
|
|
|
|
|
|
|
2013-05-30 11:05:14 +08:00
|
|
|
// MIPS64EL: RELOCATION RECORDS FOR [.rela.eh_frame]:
|
2013-04-04 05:02:51 +08:00
|
|
|
// MIPS64EL-NEXT: R_MIPS_64
|
2013-04-03 11:13:19 +08:00
|
|
|
// MIPS64EL: Contents of section .eh_frame:
|
|
|
|
// MIPS64EL-NEXT: 0000
|
|
|
|
|
|
|
|
// Length
|
|
|
|
// MIPS64EL: 10000000
|
|
|
|
|
|
|
|
// CIE ID
|
|
|
|
// MIPS64EL: 00000000
|
|
|
|
|
|
|
|
// Version
|
|
|
|
// MIPS64EL: 01
|
|
|
|
|
|
|
|
// Augmentation String
|
|
|
|
// MIPS64EL: 7a5200
|
|
|
|
|
|
|
|
// Code Alignment Factor
|
|
|
|
// MIPS64EL: 01
|
|
|
|
|
|
|
|
// Data Alignment Factor (-8). GAS uses -4. Should be ok as long as all
|
|
|
|
// offsets we need are a multiple of 8.
|
|
|
|
// MIPS64EL: 78
|
|
|
|
|
|
|
|
// Return Address Register
|
|
|
|
// MIPS64EL: 1f
|
|
|
|
|
|
|
|
// Augmentation Size
|
|
|
|
// MIPS64EL: 01
|
|
|
|
|
|
|
|
// MIPS64EL: .........zR..x..
|
|
|
|
// MIPS64EL-NEXT: 0010
|
2013-04-02 05:55:15 +08:00
|
|
|
|
2013-04-03 11:13:19 +08:00
|
|
|
// Augmentation (fde pointer encoding: DW_EH_PE_sdata8)
|
|
|
|
// MIPS64EL: 0c
|
|
|
|
// FIXME: The instructions are different from the ones produces by gas.
|