# RUN: yaml2obj -format=elf -docnum=1 %s > %t.o32
# RUN: llvm-readobj -file-headers %t.o32 | FileCheck -check-prefix=O32OBJ %s
# RUN: obj2yaml %t.o32 | FileCheck -check-prefix=O32YAML %s

# O32OBJ:      Flags [ (0x50001002)
# O32OBJ-NEXT:   EF_MIPS_ABI_O32 (0x1000)
# O32OBJ-NEXT:   EF_MIPS_ARCH_32 (0x50000000)
# O32OBJ-NEXT:   EF_MIPS_PIC (0x2)
# O32OBJ-NEXT: ]

# O32YAML:  Flags:  [ EF_MIPS_PIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ]

# RUN: yaml2obj -format=elf -docnum=2 %s > %t.o64
# RUN: llvm-readobj -file-headers %t.o64 | FileCheck -check-prefix=O64OBJ %s
# RUN: obj2yaml %t.o64 | FileCheck -check-prefix=O64YAML %s

# O64OBJ:      Flags [ (0x60002002)
# O64OBJ-NEXT:   EF_MIPS_ABI_O64 (0x2000)
# O64OBJ-NEXT:   EF_MIPS_ARCH_64 (0x60000000)
# O64OBJ-NEXT:   EF_MIPS_PIC (0x2)
# O64OBJ-NEXT: ]

# O64YAML:  Flags:  [ EF_MIPS_PIC, EF_MIPS_ABI_O64, EF_MIPS_ARCH_64 ]

# RUN: yaml2obj -format=elf -docnum=3 %s > %t.eabi32
# RUN: llvm-readobj -file-headers %t.eabi32 | FileCheck -check-prefix=E32OBJ %s
# RUN: obj2yaml %t.eabi32 | FileCheck -check-prefix=E32YAML %s

# E32OBJ:      Flags [ (0x50003002)
# E32OBJ-NEXT:   EF_MIPS_ABI_EABI32 (0x3000)
# E32OBJ-NEXT:   EF_MIPS_ARCH_32 (0x50000000)
# E32OBJ-NEXT:   EF_MIPS_PIC (0x2)
# E32OBJ-NEXT: ]

# E32YAML:  Flags:  [ EF_MIPS_PIC, EF_MIPS_ABI_EABI32, EF_MIPS_ARCH_32 ]

# RUN: yaml2obj -format=elf -docnum=4 %s > %t.eabi64
# RUN: llvm-readobj -file-headers %t.eabi64 | FileCheck -check-prefix=E64OBJ %s
# RUN: obj2yaml %t.eabi64 | FileCheck -check-prefix=E64YAML %s

# E64OBJ:      Flags [ (0x60004002)
# E64OBJ-NEXT:   EF_MIPS_ABI_EABI64 (0x4000)
# E64OBJ-NEXT:   EF_MIPS_ARCH_64 (0x60000000)
# E64OBJ-NEXT:   EF_MIPS_PIC (0x2)
# E64OBJ-NEXT: ]

# E64YAML:  Flags:  [ EF_MIPS_PIC, EF_MIPS_ABI_EABI64, EF_MIPS_ARCH_64 ]

# o32
---
FileHeader:
  Class:           ELFCLASS32
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_MIPS
  Flags:           [ EF_MIPS_PIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32 ]
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    16
    Size:            4

Symbols:
  Global:
    - Name:    T1
      Section: .text
      Value:   0
      Size:    4

# o64
---
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_MIPS
  Flags:           [ EF_MIPS_PIC, EF_MIPS_ABI_O64, EF_MIPS_ARCH_64 ]
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    16
    Size:            4

Symbols:
  Global:
    - Name:    T1
      Section: .text
      Value:   0
      Size:    4

# eabio32
---
FileHeader:
  Class:           ELFCLASS32
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_MIPS
  Flags:           [ EF_MIPS_PIC, EF_MIPS_ABI_EABI32, EF_MIPS_ARCH_32 ]
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    16
    Size:            4

Symbols:
  Global:
    - Name:    T1
      Section: .text
      Value:   0
      Size:    4

# eabi64
---
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_MIPS
  Flags:           [ EF_MIPS_PIC, EF_MIPS_ABI_EABI64, EF_MIPS_ARCH_64 ]
Sections:
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    16
    Size:            4

Symbols:
  Global:
    - Name:    T1
      Section: .text
      Value:   0
      Size:    4
...
