# REQUIRES: mips
# Check generation of MIPS specific ELF header flags.

# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN:         %S/Inputs/mips-dynamic.s -o %t-so.o
# RUN: ld.lld %t-so.o --gc-sections -shared -o %t.so
# RUN: llvm-readobj -h -A %t.so | FileCheck -check-prefix=SO %s

# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -o %t.exe
# RUN: llvm-readobj -h -A %t.exe | FileCheck -check-prefix=EXE %s

# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN:         -mcpu=mips32r2 %s -o %t-r2.o
# RUN: ld.lld %t-r2.o -o %t-r2.exe
# RUN: llvm-readobj -h -A %t-r2.exe | FileCheck -check-prefix=EXE-R2 %s

# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN:         -mcpu=mips32r2 %s -o %t-r2.o
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN:         -mcpu=mips32r5 %S/Inputs/mips-dynamic.s -o %t-r5.o
# RUN: ld.lld %t-r2.o %t-r5.o -o %t-r5.exe
# RUN: llvm-readobj -h -A %t-r5.exe | FileCheck -check-prefix=EXE-R5 %s

# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN:         -mcpu=mips32r6 %s -o %t-r6.o
# RUN: ld.lld %t-r6.o -o %t-r6.exe
# RUN: llvm-readobj -h -A %t-r6.exe | FileCheck -check-prefix=EXE-R6 %s

# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
# RUN:         -position-independent -mcpu=octeon %s -o %t.o
# RUN: ld.lld %t.o -o %t.exe
# RUN: llvm-readobj -h -A %t.exe | FileCheck -check-prefix=OCTEON %s

# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
# RUN:         -mattr=micromips %S/Inputs/mips-fpic.s -o %t-mm.o
# RUN: ld.lld %t.o %t-mm.o -o %t.exe
# RUN: llvm-readobj -h -A %t.exe | FileCheck -check-prefix=MICRO %s

  .text
  .globl  __start
__start:
  nop

# SO:      Flags [
# SO-NEXT:   EF_MIPS_ABI_O32
# SO-NEXT:   EF_MIPS_ARCH_32
# SO-NEXT:   EF_MIPS_CPIC
# SO-NEXT:   EF_MIPS_PIC
# SO-NEXT: ]
# SO:      MIPS ABI Flags {
# SO-NEXT:   Version: 0
# SO-NEXT:   ISA: MIPS32
# SO-NEXT:   ISA Extension: None
# SO-NEXT:   ASEs [
# SO-NEXT:   ]
# SO-NEXT:   FP ABI: Hard float (double precision)
# SO-NEXT:   GPR size: 32
# SO-NEXT:   CPR1 size: 32
# SO-NEXT:   CPR2 size: 0
# SO-NEXT:   Flags 1 [
# SO-NEXT:     ODDSPREG
# SO-NEXT:   ]
# SO-NEXT:   Flags 2: 0x0
# SO-NEXT: }

# EXE:      Flags [
# EXE-NEXT:   EF_MIPS_ABI_O32
# EXE-NEXT:   EF_MIPS_ARCH_32
# EXE-NEXT:   EF_MIPS_CPIC
# EXE-NEXT: ]
# EXE:      MIPS ABI Flags {
# EXE-NEXT:   Version: 0
# EXE-NEXT:   ISA: MIPS32
# EXE-NEXT:   ISA Extension: None
# EXE-NEXT:   ASEs [
# EXE-NEXT:   ]
# EXE-NEXT:   FP ABI: Hard float (double precision)
# EXE-NEXT:   GPR size: 32
# EXE-NEXT:   CPR1 size: 32
# EXE-NEXT:   CPR2 size: 0
# EXE-NEXT:   Flags 1 [
# EXE-NEXT:     ODDSPREG
# EXE-NEXT:   ]
# EXE-NEXT:   Flags 2: 0x0
# EXE-NEXT: }

# EXE-R2:      Flags [
# EXE-R2-NEXT:   EF_MIPS_ABI_O32
# EXE-R2-NEXT:   EF_MIPS_ARCH_32R2
# EXE-R2-NEXT:   EF_MIPS_CPIC
# EXE-R2-NEXT: ]
# EXE-R2:      MIPS ABI Flags {
# EXE-R2-NEXT:   Version: 0
# EXE-R2-NEXT:   ISA: MIPS32r2
# EXE-R2-NEXT:   ISA Extension: None
# EXE-R2-NEXT:   ASEs [
# EXE-R2-NEXT:   ]
# EXE-R2-NEXT:   FP ABI: Hard float (double precision)
# EXE-R2-NEXT:   GPR size: 32
# EXE-R2-NEXT:   CPR1 size: 32
# EXE-R2-NEXT:   CPR2 size: 0
# EXE-R2-NEXT:   Flags 1 [
# EXE-R2-NEXT:     ODDSPREG
# EXE-R2-NEXT:   ]
# EXE-R2-NEXT:   Flags 2: 0x0
# EXE-R2-NEXT: }

# EXE-R5:      Flags [
# EXE-R5-NEXT:   EF_MIPS_ABI_O32
# EXE-R5-NEXT:   EF_MIPS_ARCH_32R2
# EXE-R5-NEXT:   EF_MIPS_CPIC
# EXE-R5-NEXT: ]
# EXE-R5:      MIPS ABI Flags {
# EXE-R5-NEXT:   Version: 0
# EXE-R5-NEXT:   ISA: MIPS32r5
# EXE-R5-NEXT:   ISA Extension: None
# EXE-R5-NEXT:   ASEs [
# EXE-R5-NEXT:   ]
# EXE-R5-NEXT:   FP ABI: Hard float (double precision)
# EXE-R5-NEXT:   GPR size: 32
# EXE-R5-NEXT:   CPR1 size: 32
# EXE-R5-NEXT:   CPR2 size: 0
# EXE-R5-NEXT:   Flags 1 [
# EXE-R5-NEXT:     ODDSPREG
# EXE-R5-NEXT:   ]
# EXE-R5-NEXT:   Flags 2: 0x0
# EXE-R5-NEXT: }

# EXE-R6:      Flags [
# EXE-R6-NEXT:   EF_MIPS_ABI_O32
# EXE-R6-NEXT:   EF_MIPS_ARCH_32R6
# EXE-R6-NEXT:   EF_MIPS_CPIC
# EXE-R6-NEXT:   EF_MIPS_NAN2008
# EXE-R6-NEXT: ]
# EXE-R6:      MIPS ABI Flags {
# EXE-R6-NEXT:   Version: 0
# EXE-R6-NEXT:   ISA: MIPS32
# EXE-R6-NEXT:   ISA Extension: None
# EXE-R6-NEXT:   ASEs [
# EXE-R6-NEXT:   ]
# EXE-R6-NEXT:   FP ABI: Hard float (32-bit CPU, 64-bit FPU)
# EXE-R6-NEXT:   GPR size: 32
# EXE-R6-NEXT:   CPR1 size: 64
# EXE-R6-NEXT:   CPR2 size: 0
# EXE-R6-NEXT:   Flags 1 [
# EXE-R6-NEXT:     ODDSPREG
# EXE-R6-NEXT:   ]
# EXE-R6-NEXT:   Flags 2: 0x0
# EXE-R6-NEXT: }

# OCTEON:      Flags [
# OCTEON-NEXT:   EF_MIPS_ARCH_64R2
# OCTEON-NEXT:   EF_MIPS_CPIC
# OCTEON-NEXT:   EF_MIPS_MACH_OCTEON
# OCTEON-NEXT:   EF_MIPS_PIC
# OCTEON-NEXT: ]
# OCTEON:      MIPS ABI Flags {
# OCTEON-NEXT:   Version: 0
# OCTEON-NEXT:   ISA: MIPS64r2
# OCTEON-NEXT:   ISA Extension: Cavium Networks Octeon
# OCTEON-NEXT:   ASEs [
# OCTEON-NEXT:   ]
# OCTEON-NEXT:   FP ABI: Hard float (double precision)
# OCTEON-NEXT:   GPR size: 64
# OCTEON-NEXT:   CPR1 size: 64
# OCTEON-NEXT:   CPR2 size: 0
# OCTEON-NEXT:   Flags 1 [
# OCTEON-NEXT:     ODDSPREG
# OCTEON-NEXT:   ]
# OCTEON-NEXT:   Flags 2: 0x0
# OCTEON-NEXT: }

# MICRO:      Flags [
# MICRO-NEXT:   EF_MIPS_ABI_O32
# MICRO-NEXT:   EF_MIPS_ARCH_32
# MICRO-NEXT:   EF_MIPS_CPIC
# MICRO-NEXT:   EF_MIPS_MICROMIPS
# MICRO-NEXT: ]
# MICRO:      MIPS ABI Flags {
# MICRO-NEXT:   Version: 0
# MICRO-NEXT:   ISA: MIPS32
# MICRO-NEXT:   ISA Extension: None
# MICRO-NEXT:   ASEs [
# MICRO-NEXT:     microMIPS
# MICRO-NEXT:   ]
# MICRO-NEXT:   FP ABI: Hard float (double precision)
# MICRO-NEXT:   GPR size: 32
# MICRO-NEXT:   CPR1 size: 32
# MICRO-NEXT:   CPR2 size: 0
# MICRO-NEXT:   Flags 1 [
# MICRO-NEXT:     ODDSPREG
# MICRO-NEXT:   ]
# MICRO-NEXT:   Flags 2: 0x0
# MICRO-NEXT: }
