| ## Check how obj2yaml dumps SHT_MIPS_ABIFLAGS sections. |
| |
| # RUN: yaml2obj %s -o %t |
| # RUN: obj2yaml %t | FileCheck %s |
| |
| # CHECK: Sections: |
| # CHECK-NEXT: - Name: .MIPS.abiflags |
| # CHECK-NEXT: Type: SHT_MIPS_ABIFLAGS |
| # CHECK-NEXT: AddressAlign: 0x8 |
| # CHECK-NEXT: ISA: MIPS64 |
| # CHECK-NEXT: ISARevision: 0x5 |
| # CHECK-NEXT: ISAExtension: EXT_OCTEON3 |
| # CHECK-NEXT: ASEs: [ DSP, DSPR2, VIRT ] |
| # CHECK-NEXT: FpABI: FP_DOUBLE |
| # CHECK-NEXT: GPRSize: REG_64 |
| # CHECK-NEXT: CPR1Size: REG_64 |
| # CHECK-NEXT: Flags1: [ ODDSPREG ] |
| # CHECK-NEXT: ... |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2MSB |
| Type: ET_REL |
| 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 |
| |
| ## Check how we dump the SHT_MIPS_ABIFLAGS (0x7000002a) section when |
| ## the machine type is not EM_MIPS. It is dumped as a regular |
| ## section of an unknown type. |
| |
| # RUN: yaml2obj %s --docnum=2 -DMACHINE=EM_NONE -o %t2.notmips |
| # RUN: obj2yaml %t2.notmips | FileCheck %s --check-prefix=NOT-MIPS |
| |
| # RUN: yaml2obj %s --docnum=2 -DMACHINE=EM_MIPS -o %t2.mips |
| # RUN: obj2yaml %t2.mips | FileCheck %s --check-prefix=MIPS |
| |
| # MIPS: - Name: .MIPS.abiflags |
| # MIPS-NEXT: Type: SHT_MIPS_ABIFLAGS |
| ## We don't print the "EntSize" key, because 0x18 is the default value |
| ## for the sh_entsize field of SHT_MIPS_ABIFLAGS. |
| # MIPS-NEXT: ISA: 0x0 |
| # MIPS-NEXT: ... |
| |
| # NOT-MIPS: - Name: .MIPS.abiflags |
| # NOT-MIPS-NEXT: Type: 0x7000002A |
| ## We print the "EntSize" key, because 0x7000002A only means |
| ## "SHT_MIPS_ABIFLAGS" when machine is EM_MIPS, so 0x18 is not a known default value. |
| # NOT-MIPS-NEXT: EntSize: 0x18 |
| # NOT-MIPS-NEXT: Content: '000000000000000000000000000000000000000000000000' |
| # NOT-MIPS-NEXT: ... |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2MSB |
| Type: ET_REL |
| Machine: [[MACHINE]] |
| Sections: |
| - Name: .MIPS.abiflags |
| Type: SHT_PROGBITS |
| ShType: 0x7000002a ## SHT_MIPS_ABIFLAGS. |
| Size: 0x18 |
| EntSize: [[ENTSIZE=0x18]] |
| |
| ## Check we dump the "EntSize" key when the value of the "sh_entsize" field is not equal to 0x18. |
| |
| # RUN: yaml2obj %s --docnum=2 -DMACHINE=EM_MIPS -DENTSIZE=0x19 -o %t2.mips.entsize |
| # RUN: obj2yaml %t2.mips.entsize | FileCheck %s --check-prefix=MIPS-ENTSIZE |
| |
| # MIPS-ENTSIZE: - Name: .MIPS.abiflags |
| # MIPS-ENTSIZE-NEXT: Type: SHT_MIPS_ABIFLAGS |
| # MIPS-ENTSIZE-NEXT: EntSize: 0x19 |