brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · dac1423 Raw
101 lines · plain
1// Test the bits of .eh_frame on mips that are already implemented correctly.2 3// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mips-unknown-linux-gnu4// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,ABS32 %s5// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF32,DWARF32_ABS %s6 7// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mipsel-unknown-linux-gnu8// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,ABS32 %s9// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF32,DWARF32_ABS %s10 11// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mips64-unknown-linux-gnu12// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,ABS64 %s13// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF64,DWARF64_ABS %s14 15// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mips64el-unknown-linux-gnu16// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,ABS64 %s17// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF64,DWARF64_ABS %s18 19/// Check that position-indenpendent code use PC-relative relocations:20// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mips-unknown-linux-gnu --position-independent21// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,PIC32 %s22// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF32,DWARF32_PIC %s23 24// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mipsel-unknown-linux-gnu --position-independent25// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,PIC32 %s26// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF32,DWARF32_PIC %s27 28// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mips64-unknown-linux-gnu --position-independent29// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,PIC64 %s30// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF64,DWARF64_PIC %s31 32// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mips64el-unknown-linux-gnu --position-independent33// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,PIC64 %s34// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF64,DWARF64_PIC %s35 36// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mips64-unknown-linux-gnu --position-independent --large-code-model37// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,PIC64 %s38// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF64,DWARF64_PIC %s39 40// RUN: llvm-mc -filetype=obj %s -o %t.o -triple mips64el-unknown-linux-gnu --position-independent  --large-code-model41// RUN: llvm-readobj -r %t.o | FileCheck --check-prefixes=RELOCS,PIC64 %s42// RUN: llvm-dwarfdump -eh-frame %t.o | FileCheck --check-prefixes=DWARF64,DWARF64_PIC %s43 44func:45	.cfi_startproc46	.cfi_endproc47 48// RELOCS:      Relocations [49// RELOCS:        Section ({{.+}}) .rel{{a?}}.eh_frame {50// ABS32-NEXT:      R_MIPS_3251// ABS64-NEXT:      R_MIPS_64/R_MIPS_NONE/R_MIPS_NONE52// PIC32-NEXT:      R_MIPS_PC3253// PIC64-NEXT:      R_MIPS_PC32/R_MIPS_NONE/R_MIPS_NONE54// RELOCS-NEXT:   }55 56// DWARF32: 00000000 00000010 00000000 CIE57// DWARF32-NEXT:     Format:                DWARF3258// DWARF32-NEXT:     Version:               159// DWARF32-NEXT:     Augmentation:          "zR"60// DWARF32-NEXT:     Code alignment factor: 161// DWARF32-NEXT:     Data alignment factor: -462// DWARF32-NEXT:     Return address column: 3163// DWARF32_ABS-NEXT: Augmentation data: 0B64//                                      ^^ fde pointer encoding: DW_EH_PE_sdata465// DWARF32_PIC-NEXT: Augmentation data: 1B66//                                      ^^ fde pointer encoding: DW_EH_PE_pcrel | DW_EH_PE_sdata467// DWARF32-EMPTY:68// DWARF32-NEXT:     DW_CFA_def_cfa_register: SP_6469//70// DWARF32_ABS: 00000014 00000010 00000018 FDE cie=00000000 pc=00000000...0000000071// DWARF32_PIC: 00000014 00000010 00000018 FDE cie=00000000 pc=0000001c...0000001c72// DWARF32-NEXT:     Format:       DWARF3273// DWARF32-NEXT:     DW_CFA_nop:74// DWARF32-NEXT:     DW_CFA_nop:75// DWARF32-NEXT:     DW_CFA_nop:76 77 78// DWARF64: 00000000 00000010 00000000 CIE79// DWARF64-NEXT:     Format:                DWARF3280// DWARF64-NEXT:     Version:               181// DWARF64-NEXT:     Augmentation:          "zR"82// DWARF64-NEXT:     Code alignment factor: 183// DWARF64-NEXT:     Data alignment factor: -884//                                          ^^ GAS uses -4. Should be ok as long as85//                                             all offsets we need are a multiple of 8.86// DWARF64-NEXT:     Return address column: 3187// DWARF64_ABS-NEXT: Augmentation data: 0C88//                                      ^^ fde pointer encoding: DW_EH_PE_sdata889// DWARF64_PIC:      Augmentation data: 1B90//                                      ^^ fde pointer encoding: DW_EH_PE_pcrel | DW_EH_PE_sdata491// DWARF64-EMPTY:92// DWARF64-NEXT:     DW_CFA_def_cfa_register: SP_6493// DWARF64_PIC-NEXT: DW_CFA_nop:94//95// DWARF64_ABS:      00000014 00000018 00000018 FDE cie=00000000 pc=00000000...0000000096// DWARF64_PIC:      00000014 00000010 00000018 FDE cie=00000000 pc=00000000...0000000097// DWARF64-NEXT:     Format:       DWARF3298// DWARF64-NEXT:     DW_CFA_nop:99// DWARF64-NEXT:     DW_CFA_nop:100// DWARF64-NEXT:     DW_CFA_nop:101