| ## 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=<none>]] |
| Size: [[SIZE=<none>]] |
| |
| ## 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 |