## Test how yaml2obj creates SHT_MIPS_ABIFLAGS sections. # RUN: yaml2obj %s -o %t # RUN: llvm-readobj -A %t | FileCheck %s # CHECK: MIPS ABI Flags { # CHECK-NEXT: Version: 0 # CHECK-NEXT: ISA: MIPS64r5 # CHECK-NEXT: ISA Extension: Cavium Networks Octeon3 (0x13) # CHECK-NEXT: ASEs [ (0x103) # CHECK-NEXT: DSP (0x1) # CHECK-NEXT: DSPR2 (0x2) # CHECK-NEXT: VZ (0x100) # CHECK-NEXT: ] # CHECK-NEXT: FP ABI: Hard float (double precision) (0x1) # CHECK-NEXT: GPR size: 64 # CHECK-NEXT: CPR1 size: 64 # CHECK-NEXT: CPR2 size: 0 # CHECK-NEXT: Flags 1 [ (0x1) # CHECK-NEXT: ODDSPREG (0x1) # CHECK-NEXT: ] # CHECK-NEXT: Flags 2: 0x0 # CHECK-NEXT: } --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2MSB Type: ET_REL Machine: [[MACHINE=EM_MIPS]] Sections: - Name: .MIPS.abiflags Type: SHT_MIPS_ABIFLAGS AddressAlign: 8 Version: 0 ISA: MIPS64 ISARevision: 5 ISAExtension: EXT_OCTEON3 ASEs: [ DSP, DSPR2, VIRT ] FpABI: FP_DOUBLE GPRSize: REG_64 CPR1Size: REG_64 CPR2Size: REG_NONE Flags1: [ ODDSPREG ] Flags2: 0x0 Content: [[CONTENT=]] Size: [[SIZE=]] ## Check we don't recognize the SHT_MIPS_ABIFLAGS section for non-MIPS targets. # RUN: not yaml2obj %s -DMACHINE=EM_NONE 2>&1 | FileCheck %s --check-prefix=ERR # ERR: error: invalid hex32 number # ERR-NEXT: Type: SHT_MIPS_ABIFLAGS ## Document we don't support the "Content" key yet. # RUN: not yaml2obj %s -DCONTENT="'00'" 2>&1 | FileCheck %s --check-prefix=ERR-CONTENT # ERR-CONTENT: error: "Content" key is not implemented for SHT_MIPS_ABIFLAGS section ## Document we don't support the "Size" key yet. # RUN: not yaml2obj %s -DSIZE=0 2>&1 | FileCheck %s --check-prefix=ERR-SIZE # ERR-SIZE: error: "Size" key is not implemented for SHT_MIPS_ABIFLAGS section