[llvm] r368140 - [obj2yaml] - MIPS: move and improve testing of the e_flags

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 7 02:35:04 PDT 2019


Author: grimar
Date: Wed Aug  7 02:35:04 2019
New Revision: 368140

URL: http://llvm.org/viewvc/llvm-project?rev=368140&view=rev
Log:
[obj2yaml] - MIPS: move and improve testing of the e_flags

Mips/elf-flags.yaml and Mips/elf-abi.yaml are tests that intention was to
show that yaml2obj/obj2yaml are able to read/dump MIPS specific e_flags.

They were not complete, contained an excessive YAML parts and were placed
at a wrong location.

I removed them and created the obj2yaml/elf-mips-eflags.yaml instead.

Differential revision: https://reviews.llvm.org/D65807

Added:
    llvm/trunk/test/tools/obj2yaml/elf-mips-eflags.yaml
Removed:
    llvm/trunk/test/Object/Mips/elf-abi.yaml
    llvm/trunk/test/Object/Mips/elf-flags.yaml

Removed: llvm/trunk/test/Object/Mips/elf-abi.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/Mips/elf-abi.yaml?rev=368139&view=auto
==============================================================================
--- llvm/trunk/test/Object/Mips/elf-abi.yaml (original)
+++ llvm/trunk/test/Object/Mips/elf-abi.yaml (removed)
@@ -1,136 +0,0 @@
-# RUN: yaml2obj -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 -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 -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 -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
---- !ELF
-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:
-  - Name:    T1
-    Section: .text
-    Value:   0
-    Size:    4
-    Binding: STB_GLOBAL
-
-# o64
---- !ELF
-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:
-  - Name:    T1
-    Section: .text
-    Value:   0
-    Size:    4
-    Binding:  STB_GLOBAL
-
-# eabio32
---- !ELF
-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:
-  - Name:    T1
-    Section: .text
-    Value:   0
-    Size:    4
-    Binding:  STB_GLOBAL
-
-# eabi64
---- !ELF
-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:
-  - Name:    T1
-    Section: .text
-    Value:   0
-    Size:    4
-    Binding:  STB_GLOBAL
-...

Removed: llvm/trunk/test/Object/Mips/elf-flags.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/Mips/elf-flags.yaml?rev=368139&view=auto
==============================================================================
--- llvm/trunk/test/Object/Mips/elf-flags.yaml (original)
+++ llvm/trunk/test/Object/Mips/elf-flags.yaml (removed)
@@ -1,52 +0,0 @@
-# RUN: yaml2obj %s > %t
-# RUN: llvm-readobj --file-headers %t | FileCheck -check-prefix=OBJ %s
-# RUN: obj2yaml %t | FileCheck -check-prefix=YAML %s
-
-# OBJ:      Flags [ (0x9E8B1727)
-# OBJ-NEXT:   EF_MIPS_32BITMODE (0x100)
-# OBJ-NEXT:   EF_MIPS_ABI2 (0x20)
-# OBJ-NEXT:   EF_MIPS_ABI_O32 (0x1000)
-# OBJ-NEXT:   EF_MIPS_ARCH_32R6 (0x90000000)
-# OBJ-NEXT:   EF_MIPS_ARCH_ASE_M16 (0x4000000)
-# OBJ-NEXT:   EF_MIPS_ARCH_ASE_MDMX (0x8000000)
-# OBJ-NEXT:   EF_MIPS_CPIC (0x4)
-# OBJ-NEXT:   EF_MIPS_FP64 (0x200)
-# OBJ-NEXT:   EF_MIPS_MACH_OCTEON (0x8B0000)
-# OBJ-NEXT:   EF_MIPS_MICROMIPS (0x2000000)
-# OBJ-NEXT:   EF_MIPS_NAN2008 (0x400)
-# OBJ-NEXT:   EF_MIPS_NOREORDER (0x1)
-# OBJ-NEXT:   EF_MIPS_PIC (0x2)
-# OBJ-NEXT: ]
-
-# YAML:      FileHeader:
-# YAML-NEXT:   Class:           ELFCLASS32
-# YAML-NEXT:   Data:            ELFDATA2LSB
-# YAML-NEXT:   Type:            ET_REL
-# YAML-NEXT:   Machine:         EM_MIPS
-# YAML-NEXT:   Flags:           [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2, EF_MIPS_32BITMODE, EF_MIPS_FP64, EF_MIPS_NAN2008, EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16, EF_MIPS_ARCH_ASE_MDMX, EF_MIPS_ABI_O32, EF_MIPS_MACH_OCTEON, EF_MIPS_ARCH_32R6 ]
-
---- !ELF
-FileHeader:
-  Class:    ELFCLASS32
-  Data:     ELFDATA2LSB
-  Type:     ET_REL
-  Machine:  EM_MIPS
-  Flags:    [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2,
-              EF_MIPS_32BITMODE, EF_MIPS_FP64, EF_MIPS_NAN2008,
-              EF_MIPS_ABI_O32, EF_MIPS_ARCH_32R6,
-              EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16,
-              EF_MIPS_ARCH_ASE_MDMX, EF_MIPS_MACH_OCTEON ]
-Sections:
-  - Name:          .text
-    Type:          SHT_PROGBITS
-    Flags:         [ SHF_ALLOC, SHF_EXECINSTR ]
-    AddressAlign:  16
-    Size:          4
-
-Symbols:
-  - Name:    T1
-    Section: .text
-    Value:   0
-    Size:    4
-    Binding: STB_GLOBAL
-...

Added: llvm/trunk/test/tools/obj2yaml/elf-mips-eflags.yaml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/obj2yaml/elf-mips-eflags.yaml?rev=368140&view=auto
==============================================================================
--- llvm/trunk/test/tools/obj2yaml/elf-mips-eflags.yaml (added)
+++ llvm/trunk/test/tools/obj2yaml/elf-mips-eflags.yaml Wed Aug  7 02:35:04 2019
@@ -0,0 +1,380 @@
+## Check obj2yaml is able to decode all possible MIPS e_flags field values.
+
+## e_flags might keep both flags and regular values in a different bits.
+## Here we test all flags at once.
+
+# RUN: yaml2obj --docnum=1 %s -o %t-non-flags
+# RUN: obj2yaml %t-non-flags | FileCheck %s --check-prefix=FLAGS
+
+# FLAGS: Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2, EF_MIPS_32BITMODE, EF_MIPS_FP64, EF_MIPS_NAN2008, EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16, EF_MIPS_ARCH_ASE_MDMX, EF_MIPS_ARCH_1 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2, EF_MIPS_32BITMODE,
+    EF_MIPS_FP64, EF_MIPS_NAN2008, EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16, EF_MIPS_ARCH_ASE_MDMX]
+
+## Test EF_MIPS_ABI values.
+
+# RUN: yaml2obj --docnum=2 %s -o %t-abi-o32 
+# RUN: obj2yaml %t-abi-o32 | FileCheck %s -DABI=EF_MIPS_ABI_O32 --check-prefix=ABI
+# RUN: yaml2obj --docnum=3 %s -o %t-abi-o64 
+# RUN: obj2yaml %t-abi-o64 | FileCheck -DABI=EF_MIPS_ABI_O64 %s --check-prefix=ABI
+# RUN: yaml2obj --docnum=4 %s -o %t-eabi32
+# RUN: obj2yaml %t-eabi32 | FileCheck -DABI=EF_MIPS_ABI_EABI32 %s --check-prefix=ABI
+# RUN: yaml2obj --docnum=5 %s -o %t-eabi64
+# RUN: obj2yaml %t-eabi64 | FileCheck -DABI=EF_MIPS_ABI_EABI64 %s --check-prefix=ABI
+
+# ABI: Flags: [ [[ABI]], EF_MIPS_ARCH_1 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags: [ EF_MIPS_ABI_O32 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags: [ EF_MIPS_ABI_O64 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags: [ EF_MIPS_ABI_EABI32 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags: [ EF_MIPS_ABI_EABI64 ]
+
+## Test EF_MIPS_MACH values.
+
+# RUN: yaml2obj --docnum=6 %s -o %t-mach-3900
+# RUN: obj2yaml %t-mach-3900 | FileCheck %s -DMACH=EF_MIPS_MACH_3900 --check-prefix=MACH
+# RUN: yaml2obj --docnum=7 %s -o %t-mach-4010
+# RUN: obj2yaml %t-mach-4010 | FileCheck %s -DMACH=EF_MIPS_MACH_4010 --check-prefix=MACH
+# RUN: yaml2obj --docnum=8 %s -o %t-mach-4100
+# RUN: obj2yaml %t-mach-4100 | FileCheck %s -DMACH=EF_MIPS_MACH_4100 --check-prefix=MACH
+# RUN: yaml2obj --docnum=9 %s -o %t-mach-4650
+# RUN: obj2yaml %t-mach-4650 | FileCheck %s -DMACH=EF_MIPS_MACH_4650 --check-prefix=MACH
+# RUN: yaml2obj --docnum=10 %s -o %t-mach-4120
+# RUN: obj2yaml %t-mach-4120 | FileCheck %s -DMACH=EF_MIPS_MACH_4120 --check-prefix=MACH
+# RUN: yaml2obj --docnum=11 %s -o %t-mach-4111
+# RUN: obj2yaml %t-mach-4111 | FileCheck %s -DMACH=EF_MIPS_MACH_4111 --check-prefix=MACH
+# RUN: yaml2obj --docnum=12 %s -o %t-mach-sb1
+# RUN: obj2yaml %t-mach-sb1 | FileCheck %s -DMACH=EF_MIPS_MACH_SB1 --check-prefix=MACH
+# RUN: yaml2obj --docnum=13 %s -o %t-mach-octeon
+# RUN: obj2yaml %t-mach-octeon | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON --check-prefix=MACH
+# RUN: yaml2obj --docnum=14 %s -o %t-mach-xlr
+# RUN: obj2yaml %t-mach-xlr | FileCheck %s -DMACH=EF_MIPS_MACH_XLR --check-prefix=MACH
+# RUN: yaml2obj --docnum=15 %s -o %t-mach-octeon2
+# RUN: obj2yaml %t-mach-octeon2 | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON2 --check-prefix=MACH
+# RUN: yaml2obj --docnum=16 %s -o %t-mach-octeon3
+# RUN: obj2yaml %t-mach-octeon3 | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON3 --check-prefix=MACH
+# RUN: yaml2obj --docnum=17 %s -o %t-mach-5400
+# RUN: obj2yaml %t-mach-5400 | FileCheck %s -DMACH=EF_MIPS_MACH_5400 --check-prefix=MACH
+# RUN: yaml2obj --docnum=18 %s -o %t-mach-5900
+# RUN: obj2yaml %t-mach-5900 | FileCheck %s -DMACH=EF_MIPS_MACH_5900 --check-prefix=MACH
+# RUN: yaml2obj --docnum=19 %s -o %t-mach-5500
+# RUN: obj2yaml %t-mach-5500 | FileCheck %s -DMACH=EF_MIPS_MACH_5500 --check-prefix=MACH
+# RUN: yaml2obj --docnum=20 %s -o %t-mach-9000
+# RUN: obj2yaml %t-mach-9000 | FileCheck %s -DMACH=EF_MIPS_MACH_9000 --check-prefix=MACH
+# RUN: yaml2obj --docnum=21 %s -o %t-mach-ls2e
+# RUN: obj2yaml %t-mach-ls2e | FileCheck %s -DMACH=EF_MIPS_MACH_LS2E --check-prefix=MACH
+# RUN: yaml2obj --docnum=22 %s -o %t-mach-ls2f
+# RUN: obj2yaml %t-mach-ls2f | FileCheck %s -DMACH=EF_MIPS_MACH_LS2F --check-prefix=MACH
+# RUN: yaml2obj --docnum=23 %s -o %t-mach-ls3a
+# RUN: obj2yaml %t-mach-ls3a | FileCheck %s -DMACH=EF_MIPS_MACH_LS3A --check-prefix=MACH
+
+# MACH: Flags: [ [[MACH]], EF_MIPS_ARCH_1 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_3900 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_4010 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_4100 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_4650 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_4120 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_4111 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_SB1 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_OCTEON ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_XLR ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_OCTEON2 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_OCTEON3 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_5400 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_5900 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_5500 ]
+
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_9000 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_LS2E ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_LS2F ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_MACH_LS3A ]
+
+## Test EF_MIPS_ARCH values.
+
+## EF_MIPS_ARCH_1 has value = 0x0, so it does not show up in obj2yaml output,
+## when there are no other flags.
+
+# RUN: yaml2obj --docnum=24 %s -o %t-arch-1a
+# RUN: obj2yaml %t-arch-1a | FileCheck %s --check-prefix=ARCH-1
+# RUN: yaml2obj --docnum=25 %s -o %t-arch-1b
+# RUN: obj2yaml %t-arch-1b | FileCheck %s --check-prefix=ARCH-1
+
+# ARCH-1-NOT: Flags:
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_1 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ ]
+
+# RUN: yaml2obj --docnum=26 %s -o %t-arch-2
+# RUN: obj2yaml %t-arch-2 | FileCheck %s -DARCH=EF_MIPS_ARCH_2 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=27 %s -o %t-arch-3
+# RUN: obj2yaml %t-arch-3 | FileCheck %s -DARCH=EF_MIPS_ARCH_3 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=28 %s -o %t-arch-4
+# RUN: obj2yaml %t-arch-4 | FileCheck %s -DARCH=EF_MIPS_ARCH_4 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=29 %s -o %t-arch-5
+# RUN: obj2yaml %t-arch-5 | FileCheck %s -DARCH=EF_MIPS_ARCH_5 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=30 %s -o %t-arch-32
+# RUN: obj2yaml %t-arch-32 | FileCheck %s -DARCH=EF_MIPS_ARCH_32 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=31 %s -o %t-arch-64
+# RUN: obj2yaml %t-arch-64 | FileCheck %s -DARCH=EF_MIPS_ARCH_64 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=32 %s -o %t-arch-32r2
+# RUN: obj2yaml %t-arch-32r2 | FileCheck %s -DARCH=EF_MIPS_ARCH_32R2 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=33 %s -o %t-arch-64r2
+# RUN: obj2yaml %t-arch-64r2 | FileCheck %s -DARCH=EF_MIPS_ARCH_64R2 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=34 %s -o %t-arch-32r6
+# RUN: obj2yaml %t-arch-32r6 | FileCheck %s -DARCH=EF_MIPS_ARCH_32R6 --check-prefix=ARCH
+# RUN: yaml2obj --docnum=35 %s -o %t-arch-64r6
+# RUN: obj2yaml %t-arch-64r6 | FileCheck %s -DARCH=EF_MIPS_ARCH_64R6 --check-prefix=ARCH
+
+# ARCH: Flags: [ [[ARCH]] ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_2 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_3 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_4 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_5 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_32 ]
+  
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_64 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_32R2 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_64R2 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_32R6 ]
+
+--- !ELF
+FileHeader:
+  Class:   ELFCLASS32
+  Data:    ELFDATA2LSB
+  Type:    ET_REL
+  Machine: EM_MIPS
+  Flags:   [ EF_MIPS_ARCH_64R6 ]




More information about the llvm-commits mailing list