## Test various combinations of ELF flag values for SPARC. # RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS32" -DMACHINE_NAME="EM_SPARC" -DFLAG_NAME="" # RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON -DFLAG_VALUE=0x0 # RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \ # RUN: -DFLAG_VALUE=0x0 -DGNU_FLAG_NAME="" # RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS32" -DMACHINE_NAME="EM_SPARC32PLUS" -DFLAG_NAME="EF_SPARC_32PLUS" # RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0 \ # RUN: -DFLAG0_NAME=EF_SPARC_32PLUS -DFLAG_VALUE=0x100 # RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \ # RUN: -DFLAG_VALUE=0x100 -DGNU_FLAG_NAME=", V8+ ABI" # RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS32" -DMACHINE_NAME="EM_SPARC32PLUS" \ # RUN: -DFLAG_NAME="EF_SPARC_32PLUS, EF_SPARC_SUN_US1" # RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0,LLVM-FLAG1\ # RUN: -DFLAG_VALUE=0x300 \ # RUN: -DFLAG0_NAME=EF_SPARC_32PLUS -DFLAG1_NAME=EF_SPARC_SUN_US1 # RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \ # RUN: -DFLAG_VALUE=0x300 \ # RUN: -DGNU_FLAG_NAME=", V8+ ABI, Sun UltraSPARC I extensions" # RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS32" -DMACHINE_NAME="EM_SPARC32PLUS" \ # RUN: -DFLAG_NAME="EF_SPARC_32PLUS, EF_SPARC_SUN_US1, EF_SPARC_HAL_R1, EF_SPARC_SUN_US3" # RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0,LLVM-FLAG1,LLVM-FLAG2,LLVM-FLAG3 \ # RUN: -DFLAG_VALUE=0xF00 \ # RUN: -DFLAG0_NAME=EF_SPARC_32PLUS -DFLAG1_NAME=EF_SPARC_HAL_R1 \ # RUN: -DFLAG2_NAME=EF_SPARC_SUN_US1 -DFLAG3_NAME=EF_SPARC_SUN_US3 # RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \ # RUN: -DFLAG_VALUE=0xF00 \ # RUN: -DGNU_FLAG_NAME=", V8+ ABI, Sun UltraSPARC I extensions, HAL/Fujitsu R1 extensions, Sun UltraSPARC III extensions" # RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS64" -DMACHINE_NAME="EM_SPARCV9" -DFLAG_NAME="" # RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON -DFLAG_VALUE=0x0 # RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \ # RUN: -DFLAG_VALUE=0x0 -DGNU_FLAG_NAME="" # RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS64" -DMACHINE_NAME="EM_SPARCV9" -DFLAG_NAME="EF_SPARC_SUN_US1" # RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0 \ # RUN: -DFLAG_VALUE=0x200 -DFLAG0_NAME=EF_SPARC_SUN_US1 # RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \ # RUN: -DFLAG_VALUE=0x200 -DGNU_FLAG_NAME=", Sun UltraSPARC I extensions" # RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS64" -DMACHINE_NAME="EM_SPARCV9" \ # RUN: -DFLAG_NAME="EF_SPARC_SUN_US1, EF_SPARCV9_RMO" # RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0,LLVM-FLAG1 \ # RUN: -DFLAG_VALUE=0x202 \ # RUN: -DFLAG0_NAME=EF_SPARCV9_RMO -DFLAG1_NAME=EF_SPARC_SUN_US1 # RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \ # RUN: -DFLAG_VALUE=0x202 \ # RUN: -DGNU_FLAG_NAME=", Sun UltraSPARC I extensions, Relaxed Memory Ordering" # RUN: yaml2obj %s -o %t -DCLASS_NAME="ELFCLASS64" -DMACHINE_NAME="EM_SPARCV9" \ # RUN: -DFLAG_NAME="EF_SPARC_SUN_US1, EF_SPARC_HAL_R1, EF_SPARC_SUN_US3, EF_SPARCV9_PSO" # RUN: llvm-readobj -h %t | FileCheck %s --check-prefixes=LLVM-COMMON,LLVM-FLAG0,LLVM-FLAG1,LLVM-FLAG2,LLVM-FLAG3 \ # RUN: -DFLAG_VALUE=0xE01 \ # RUN: -DFLAG0_NAME=EF_SPARCV9_PSO -DFLAG1_NAME=EF_SPARC_HAL_R1 \ # RUN: -DFLAG2_NAME=EF_SPARC_SUN_US1 -DFLAG3_NAME=EF_SPARC_SUN_US3 # RUN: llvm-readelf -h %t | FileCheck %s --match-full-lines --check-prefix=GNU \ # RUN: -DFLAG_VALUE=0xE01\ # RUN: -DGNU_FLAG_NAME=", Sun UltraSPARC I extensions, HAL/Fujitsu R1 extensions, Sun UltraSPARC III extensions, Partial Store Ordering" --- !ELF FileHeader: Class: [[CLASS_NAME]] Data: ELFDATA2MSB Type: ET_REL Machine: [[MACHINE_NAME]] Flags: [ [[FLAG_NAME]] ] # LLVM-COMMON: Flags [ ([[FLAG_VALUE]]) # LLVM-FLAG0-NEXT: [[FLAG0_NAME]] # LLVM-FLAG1-NEXT: [[FLAG1_NAME]] # LLVM-FLAG2-NEXT: [[FLAG2_NAME]] # LLVM-FLAG3-NEXT: [[FLAG3_NAME]] # LLVM-COMMON-NEXT: ] # GNU: Flags: [[FLAG_VALUE]][[GNU_FLAG_NAME]]