197 lines · plain
1# REQUIRES: mips2# Check generation of MIPS specific ELF header flags.3 4# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \5# RUN: %S/Inputs/mips-dynamic.s -o %t-so.o6# RUN: ld.lld %t-so.o --gc-sections -shared -o %t.so7# RUN: llvm-readobj -h -A %t.so | FileCheck -check-prefix=SO %s8 9# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o10# RUN: ld.lld %t.o -o %t.exe11# RUN: llvm-readobj -h -A %t.exe | FileCheck -check-prefix=EXE %s12 13# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \14# RUN: -mcpu=mips32r2 %s -o %t-r2.o15# RUN: ld.lld %t-r2.o -o %t-r2.exe16# RUN: llvm-readobj -h -A %t-r2.exe | FileCheck -check-prefix=EXE-R2 %s17 18# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \19# RUN: -mcpu=mips32r2 %s -o %t-r2.o20# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \21# RUN: -mcpu=mips32r5 %S/Inputs/mips-dynamic.s -o %t-r5.o22# RUN: ld.lld %t-r2.o %t-r5.o -o %t-r5.exe23# RUN: llvm-readobj -h -A %t-r5.exe | FileCheck -check-prefix=EXE-R5 %s24 25# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \26# RUN: -mcpu=mips32r6 %s -o %t-r6.o27# RUN: ld.lld %t-r6.o -o %t-r6.exe28# RUN: llvm-readobj -h -A %t-r6.exe | FileCheck -check-prefix=EXE-R6 %s29 30# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \31# RUN: -position-independent -mcpu=octeon %s -o %t.o32# RUN: ld.lld %t.o -o %t.exe33# RUN: llvm-readobj -h -A %t.exe | FileCheck -check-prefix=OCTEON %s34 35# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o36# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \37# RUN: -mattr=micromips %S/Inputs/mips-fpic.s -o %t-mm.o38# RUN: ld.lld %t.o %t-mm.o -o %t.exe39# RUN: llvm-readobj -h -A %t.exe | FileCheck -check-prefix=MICRO %s40 41 .text42 .globl __start43__start:44 nop45 46# SO: Flags [47# SO-NEXT: EF_MIPS_ABI_O3248# SO-NEXT: EF_MIPS_ARCH_3249# SO-NEXT: EF_MIPS_CPIC50# SO-NEXT: EF_MIPS_PIC51# SO-NEXT: ]52# SO: MIPS ABI Flags {53# SO-NEXT: Version: 054# SO-NEXT: ISA: MIPS3255# SO-NEXT: ISA Extension: None56# SO-NEXT: ASEs [57# SO-NEXT: ]58# SO-NEXT: FP ABI: Hard float (double precision)59# SO-NEXT: GPR size: 3260# SO-NEXT: CPR1 size: 3261# SO-NEXT: CPR2 size: 062# SO-NEXT: Flags 1 [63# SO-NEXT: ODDSPREG64# SO-NEXT: ]65# SO-NEXT: Flags 2: 0x066# SO-NEXT: }67 68# EXE: Flags [69# EXE-NEXT: EF_MIPS_ABI_O3270# EXE-NEXT: EF_MIPS_ARCH_3271# EXE-NEXT: EF_MIPS_CPIC72# EXE-NEXT: ]73# EXE: MIPS ABI Flags {74# EXE-NEXT: Version: 075# EXE-NEXT: ISA: MIPS3276# EXE-NEXT: ISA Extension: None77# EXE-NEXT: ASEs [78# EXE-NEXT: ]79# EXE-NEXT: FP ABI: Hard float (double precision)80# EXE-NEXT: GPR size: 3281# EXE-NEXT: CPR1 size: 3282# EXE-NEXT: CPR2 size: 083# EXE-NEXT: Flags 1 [84# EXE-NEXT: ODDSPREG85# EXE-NEXT: ]86# EXE-NEXT: Flags 2: 0x087# EXE-NEXT: }88 89# EXE-R2: Flags [90# EXE-R2-NEXT: EF_MIPS_ABI_O3291# EXE-R2-NEXT: EF_MIPS_ARCH_32R292# EXE-R2-NEXT: EF_MIPS_CPIC93# EXE-R2-NEXT: ]94# EXE-R2: MIPS ABI Flags {95# EXE-R2-NEXT: Version: 096# EXE-R2-NEXT: ISA: MIPS32r297# EXE-R2-NEXT: ISA Extension: None98# EXE-R2-NEXT: ASEs [99# EXE-R2-NEXT: ]100# EXE-R2-NEXT: FP ABI: Hard float (double precision)101# EXE-R2-NEXT: GPR size: 32102# EXE-R2-NEXT: CPR1 size: 32103# EXE-R2-NEXT: CPR2 size: 0104# EXE-R2-NEXT: Flags 1 [105# EXE-R2-NEXT: ODDSPREG106# EXE-R2-NEXT: ]107# EXE-R2-NEXT: Flags 2: 0x0108# EXE-R2-NEXT: }109 110# EXE-R5: Flags [111# EXE-R5-NEXT: EF_MIPS_ABI_O32112# EXE-R5-NEXT: EF_MIPS_ARCH_32R2113# EXE-R5-NEXT: EF_MIPS_CPIC114# EXE-R5-NEXT: ]115# EXE-R5: MIPS ABI Flags {116# EXE-R5-NEXT: Version: 0117# EXE-R5-NEXT: ISA: MIPS32r5118# EXE-R5-NEXT: ISA Extension: None119# EXE-R5-NEXT: ASEs [120# EXE-R5-NEXT: ]121# EXE-R5-NEXT: FP ABI: Hard float (double precision)122# EXE-R5-NEXT: GPR size: 32123# EXE-R5-NEXT: CPR1 size: 32124# EXE-R5-NEXT: CPR2 size: 0125# EXE-R5-NEXT: Flags 1 [126# EXE-R5-NEXT: ODDSPREG127# EXE-R5-NEXT: ]128# EXE-R5-NEXT: Flags 2: 0x0129# EXE-R5-NEXT: }130 131# EXE-R6: Flags [132# EXE-R6-NEXT: EF_MIPS_ABI_O32133# EXE-R6-NEXT: EF_MIPS_ARCH_32R6134# EXE-R6-NEXT: EF_MIPS_CPIC135# EXE-R6-NEXT: EF_MIPS_NAN2008136# EXE-R6-NEXT: ]137# EXE-R6: MIPS ABI Flags {138# EXE-R6-NEXT: Version: 0139# EXE-R6-NEXT: ISA: MIPS32140# EXE-R6-NEXT: ISA Extension: None141# EXE-R6-NEXT: ASEs [142# EXE-R6-NEXT: ]143# EXE-R6-NEXT: FP ABI: Hard float (32-bit CPU, 64-bit FPU)144# EXE-R6-NEXT: GPR size: 32145# EXE-R6-NEXT: CPR1 size: 64146# EXE-R6-NEXT: CPR2 size: 0147# EXE-R6-NEXT: Flags 1 [148# EXE-R6-NEXT: ODDSPREG149# EXE-R6-NEXT: ]150# EXE-R6-NEXT: Flags 2: 0x0151# EXE-R6-NEXT: }152 153# OCTEON: Flags [154# OCTEON-NEXT: EF_MIPS_ARCH_64R2155# OCTEON-NEXT: EF_MIPS_CPIC156# OCTEON-NEXT: EF_MIPS_MACH_OCTEON157# OCTEON-NEXT: EF_MIPS_PIC158# OCTEON-NEXT: ]159# OCTEON: MIPS ABI Flags {160# OCTEON-NEXT: Version: 0161# OCTEON-NEXT: ISA: MIPS64r2162# OCTEON-NEXT: ISA Extension: Cavium Networks Octeon163# OCTEON-NEXT: ASEs [164# OCTEON-NEXT: ]165# OCTEON-NEXT: FP ABI: Hard float (double precision)166# OCTEON-NEXT: GPR size: 64167# OCTEON-NEXT: CPR1 size: 64168# OCTEON-NEXT: CPR2 size: 0169# OCTEON-NEXT: Flags 1 [170# OCTEON-NEXT: ODDSPREG171# OCTEON-NEXT: ]172# OCTEON-NEXT: Flags 2: 0x0173# OCTEON-NEXT: }174 175# MICRO: Flags [176# MICRO-NEXT: EF_MIPS_ABI_O32177# MICRO-NEXT: EF_MIPS_ARCH_32178# MICRO-NEXT: EF_MIPS_CPIC179# MICRO-NEXT: EF_MIPS_MICROMIPS180# MICRO-NEXT: ]181# MICRO: MIPS ABI Flags {182# MICRO-NEXT: Version: 0183# MICRO-NEXT: ISA: MIPS32184# MICRO-NEXT: ISA Extension: None185# MICRO-NEXT: ASEs [186# MICRO-NEXT: microMIPS187# MICRO-NEXT: ]188# MICRO-NEXT: FP ABI: Hard float (double precision)189# MICRO-NEXT: GPR size: 32190# MICRO-NEXT: CPR1 size: 32191# MICRO-NEXT: CPR2 size: 0192# MICRO-NEXT: Flags 1 [193# MICRO-NEXT: ODDSPREG194# MICRO-NEXT: ]195# MICRO-NEXT: Flags 2: 0x0196# MICRO-NEXT: }197