381 lines
10 KiB
YAML
381 lines
10 KiB
YAML
|
## 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 ]
|