diff --git a/llvm/lib/ObjectYAML/ELFYAML.cpp b/llvm/lib/ObjectYAML/ELFYAML.cpp --- a/llvm/lib/ObjectYAML/ELFYAML.cpp +++ b/llvm/lib/ObjectYAML/ELFYAML.cpp @@ -823,6 +823,8 @@ BCase(MIPS16); BCase(MICROMIPS); BCase(XPA); + BCase(CRC); + BCase(GINV); #undef BCase } diff --git a/llvm/test/tools/llvm-readobj/ELF/Inputs/abiflags.obj.elf-mips b/llvm/test/tools/llvm-readobj/ELF/Inputs/abiflags.obj.elf-mips deleted file mode 100644 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@ 1. +# RUN: yaml2obj %s -DISAREV=2 -DISA=MIPS1 -o %t.isa1.r +# RUN: llvm-readelf -A %t.isa1.r | FileCheck %s --check-prefix=CHECK-ISA -DVAL=MIPS1r2 +# RUN: llvm-readobj -A %t.isa1.r | FileCheck %s --check-prefix=CHECK-ISA -DVAL=MIPS1r2 + +## Check how we dump the gpr_size field. + +# RUN: yaml2obj %s -DGPR=REG_NONE -o %t.gpr.none +# RUN: llvm-readelf -A %t.gpr.none | FileCheck %s --check-prefix=GPRSIZE -DVAL=0 +# RUN: llvm-readobj -A %t.gpr.none | FileCheck %s --check-prefix=GPRSIZE -DVAL=0 + +# GPRSIZE: GPR size: [[VAL]]{{$}} + +# RUN: yaml2obj %s -DGPR=REG_32 -o %t.gpr.32 +# RUN: llvm-readelf -A %t.gpr.32 | FileCheck %s --check-prefix=GPRSIZE -DVAL=32 +# RUN: llvm-readobj -A %t.gpr.32 | FileCheck %s --check-prefix=GPRSIZE -DVAL=32 + +# RUN: yaml2obj %s -DGPR=REG_64 -o %t.gpr.64 +# RUN: llvm-readelf -A %t.gpr.64 | FileCheck %s --check-prefix=GPRSIZE -DVAL=64 +# RUN: llvm-readobj -A %t.gpr.64 | FileCheck %s --check-prefix=GPRSIZE -DVAL=64 + +# RUN: yaml2obj %s -DGPR=REG_128 -o %t.gpr.128 +# RUN: llvm-readelf -A %t.gpr.128 | FileCheck %s --check-prefix=GPRSIZE -DVAL=128 +# RUN: llvm-readobj -A %t.gpr.128 | FileCheck %s --check-prefix=GPRSIZE -DVAL=128 + +## Check how we dump the cpr1_size field. + +# RUN: yaml2obj %s -DCPR1=REG_NONE -o %t.cpr1.none +# RUN: llvm-readelf -A %t.cpr1.none | FileCheck %s --check-prefix=CPR1SIZE -DVAL=0 +# RUN: llvm-readobj -A %t.cpr1.none | FileCheck %s --check-prefix=CPR1SIZE -DVAL=0 + +# CPR1SIZE: CPR1 size: [[VAL]]{{$}} + +# RUN: yaml2obj %s -DCPR1=REG_32 -o %t.cpr1.32 +# RUN: llvm-readelf -A %t.cpr1.32 | FileCheck %s --check-prefix=CPR1SIZE -DVAL=32 +# RUN: llvm-readobj -A %t.cpr1.32 | FileCheck %s --check-prefix=CPR1SIZE -DVAL=32 + +# RUN: yaml2obj %s -DCPR1=REG_64 -o %t.cpr1.64 +# RUN: llvm-readelf -A %t.cpr1.64 | FileCheck %s --check-prefix=CPR1SIZE -DVAL=64 +# RUN: llvm-readobj -A %t.cpr1.64 | FileCheck %s --check-prefix=CPR1SIZE -DVAL=64 + +# RUN: yaml2obj %s -DCPR1=REG_128 -o %t.cpr1.128 +# RUN: llvm-readelf -A %t.cpr1.128 | FileCheck %s --check-prefix=CPR1SIZE -DVAL=128 +# RUN: llvm-readobj -A %t.cpr1.128 | FileCheck %s --check-prefix=CPR1SIZE -DVAL=128 + +## Check how we dump the cpr2_size field. + +# RUN: yaml2obj %s -DCPR2=REG_NONE -o %t.cpr2.none +# RUN: llvm-readelf -A %t.cpr2.none | FileCheck %s --check-prefix=CPR2SIZE -DVAL=0 +# RUN: llvm-readobj -A %t.cpr2.none | FileCheck %s --check-prefix=CPR2SIZE -DVAL=0 + +# CPR2SIZE: CPR2 size: [[VAL]]{{$}} + +# RUN: yaml2obj %s -DCPR2=REG_32 -o %t.cpr2.32 +# RUN: llvm-readelf -A %t.cpr2.32 | FileCheck %s --check-prefix=CPR2SIZE -DVAL=32 +# RUN: llvm-readobj -A %t.cpr2.32 | FileCheck %s --check-prefix=CPR2SIZE -DVAL=32 + +# RUN: yaml2obj %s -DCPR2=REG_64 -o %t.cpr2.64 +# RUN: llvm-readelf -A %t.cpr2.64 | FileCheck %s --check-prefix=CPR2SIZE -DVAL=64 +# RUN: llvm-readobj -A %t.cpr2.64 | FileCheck %s --check-prefix=CPR2SIZE -DVAL=64 + +# RUN: yaml2obj %s -DCPR2=REG_128 -o %t.cpr2.128 +# RUN: llvm-readelf -A %t.cpr2.128 | FileCheck %s --check-prefix=CPR2SIZE -DVAL=128 +# RUN: llvm-readobj -A %t.cpr2.128 | FileCheck %s --check-prefix=CPR2SIZE -DVAL=128 + +## Check how we dump the fp_abi field. + +# RUN: yaml2obj %s -DFPABI=FP_ANY -o %t.fpabi.any +# RUN: llvm-readelf -A %t.fpabi.any | FileCheck %s --check-prefix=FPABI-ANY +# RUN: llvm-readobj -A %t.fpabi.any | FileCheck %s --check-prefix=FPABI-ANY + +# FPABI-ANY: FP ABI: Hard or soft float + +# RUN: yaml2obj %s -DFPABI=FP_DOUBLE -o %t.fpabi.double +# RUN: llvm-readelf -A %t.fpabi.double | FileCheck %s --check-prefix=FPABI-DOUBLE +# RUN: llvm-readobj -A %t.fpabi.double | FileCheck %s --check-prefix=FPABI-DOUBLE + +# FPABI-DOUBLE: FP ABI: Hard float (double precision) + +# RUN: yaml2obj %s -DFPABI=FP_SINGLE -o %t.fpabi.single +# RUN: llvm-readelf -A %t.fpabi.single | FileCheck %s --check-prefix=FPABI-SINGLE +# RUN: llvm-readobj -A %t.fpabi.single | FileCheck %s --check-prefix=FPABI-SINGLE + +# FPABI-SINGLE: FP ABI: Hard float (single precision) + +# RUN: yaml2obj %s -DFPABI=FP_SOFT -o %t.fpabi.soft +# RUN: llvm-readelf -A %t.fpabi.soft | FileCheck %s --check-prefix=FPABI-SOFT +# RUN: llvm-readobj -A %t.fpabi.soft | FileCheck %s --check-prefix=FPABI-SOFT + +# FPABI-SOFT: FP ABI: Soft float + +# RUN: yaml2obj %s -DFPABI=FP_OLD_64 -o %t.fpabi.old64 +# RUN: llvm-readelf -A %t.fpabi.old64 | FileCheck %s --check-prefix=FPABI-OLD64 +# RUN: llvm-readobj -A %t.fpabi.old64 | FileCheck %s --check-prefix=FPABI-OLD64 + +# FPABI-OLD64: FP ABI: Hard float (MIPS32r2 64-bit FPU 12 callee-saved) + +# RUN: yaml2obj %s -DFPABI=FP_XX -o %t.fpabi.xx +# RUN: llvm-readelf -A %t.fpabi.xx | FileCheck %s --check-prefix=FPABI-XX +# RUN: llvm-readobj -A %t.fpabi.xx | FileCheck %s --check-prefix=FPABI-XX + +# FPABI-XX: FP ABI: Hard float (32-bit CPU, Any FPU) + +# RUN: yaml2obj %s -DFPABI=FP_64 -o %t.fpabi.fp64 +# RUN: llvm-readelf -A %t.fpabi.fp64 | FileCheck %s --check-prefix=FPABI-FP64 +# RUN: llvm-readobj -A %t.fpabi.fp64 | FileCheck %s --check-prefix=FPABI-FP64 + +# FPABI-FP64: FP ABI: Hard float (32-bit CPU, 64-bit FPU) + +# RUN: yaml2obj %s -DFPABI=FP_64A -o %t.fpabi.fp64a +# RUN: llvm-readelf -A %t.fpabi.fp64a | FileCheck %s --check-prefix=FPABI-FP64A +# RUN: llvm-readobj -A %t.fpabi.fp64a | FileCheck %s --check-prefix=FPABI-FP64A + +# FPABI-FP64A: FP ABI: Hard float compat (32-bit CPU, 64-bit FPU) + +## Check how we dump ASEs. +# RUN: yaml2obj %s -DASES="" -o %t.ases.no +# RUN: llvm-readelf -A %t.ases.no | FileCheck %s --check-prefix=FPABI-ASES-NONE-GNU +# RUN: llvm-readobj -A %t.ases.no | FileCheck %s --check-prefix=FPABI-ASES-NONE-LLVM + +# FPABI-ASES-NONE-GNU: ASEs: None + +# FPABI-ASES-NONE-LLVM: ASEs [ (0x0) +# FPABI-ASES-NONE-LLVM-NEXT: ] + +# RUN: yaml2obj %s -DASES="DSP,DSPR2,EVA,MCU,MDMX,MIPS3D,MT,SMARTMIPS,VIRT,MSA,MIPS16,MICROMIPS,XPA,CRC,GINV" -o %t.ases.all +# RUN: llvm-readelf -A %t.ases.all | FileCheck %s --check-prefix=FPABI-ASES-ALL-GNU +# RUN: llvm-readobj -A %t.ases.all | FileCheck %s --check-prefix=FPABI-ASES-ALL-LLVM + +# FPABI-ASES-ALL-GNU: ASEs: DSP, DSPR2, Enhanced VA Scheme, MCU, MDMX, MIPS-3D, MT, SmartMIPS, VZ, MSA, MIPS16, microMIPS, XPA, CRC, GINV + +# FPABI-ASES-ALL-LLVM: ASEs [ (0x29FFF) +# FPABI-ASES-ALL-LLVM-NEXT: CRC (0x8000) +# FPABI-ASES-ALL-LLVM-NEXT: DSP (0x1) +# FPABI-ASES-ALL-LLVM-NEXT: DSPR2 (0x2) +# FPABI-ASES-ALL-LLVM-NEXT: Enhanced VA Scheme (0x4) +# FPABI-ASES-ALL-LLVM-NEXT: GINV (0x20000) +# FPABI-ASES-ALL-LLVM-NEXT: MCU (0x8) +# FPABI-ASES-ALL-LLVM-NEXT: MDMX (0x10) +# FPABI-ASES-ALL-LLVM-NEXT: MIPS-3D (0x20) +# FPABI-ASES-ALL-LLVM-NEXT: MIPS16 (0x400) +# FPABI-ASES-ALL-LLVM-NEXT: MSA (0x200) +# FPABI-ASES-ALL-LLVM-NEXT: MT (0x40) +# FPABI-ASES-ALL-LLVM-NEXT: SmartMIPS (0x80) +# FPABI-ASES-ALL-LLVM-NEXT: VZ (0x100) +# FPABI-ASES-ALL-LLVM-NEXT: XPA (0x1000) +# FPABI-ASES-ALL-LLVM-NEXT: microMIPS (0x800) +# FPABI-ASES-ALL-LLVM-NEXT: ] + +## Check how we dump the flags1 field. + +# RUN: yaml2obj %s -DFLAG1="" -o %t.flag1.empty +# RUN: llvm-readelf -A %t.flag1.empty | FileCheck %s --check-prefix=FLAG1-EMPTY-GNU +# RUN: llvm-readobj -A %t.flag1.empty | FileCheck %s --check-prefix=FLAG1-EMPTY-LLVM + +# FLAG1-EMPTY-GNU: FLAGS 1: 00000000 + +# FLAG1-EMPTY-LLVM: Flags 1 [ (0x0) +# FLAG1-EMPTY-LLVM-NEXT: ] + +# RUN: yaml2obj %s -DFLAG1="ODDSPREG" -o %t.flag1.all +# RUN: llvm-readelf -A %t.flag1.all | FileCheck %s --check-prefix=FLAG1-ALL-GNU +# RUN: llvm-readobj -A %t.flag1.all | FileCheck %s --check-prefix=FLAG1-ALL-LLVM + +# FLAG1-ALL-GNU: FLAGS 1: 00000001 + +# FLAG1-ALL-LLVM: Flags 1 [ (0x1) +# FLAG1-ALL-LLVM-NEXT: ODDSPREG (0x1) +# FLAG1-ALL-LLVM-NEXT: ] + +## Check how we dump the flags2 field. + +# RUN: yaml2obj %s -DFLAG2=0x0 -o %t.flag2.empty +# RUN: llvm-readelf -A %t.flag2.empty | FileCheck %s --check-prefix=FLAG2-EMPTY-GNU +# RUN: llvm-readobj -A %t.flag2.empty | FileCheck %s --check-prefix=FLAG2-EMPTY-LLVM + +# FLAG2-EMPTY-GNU: FLAGS 2: 00000000 +# FLAG2-EMPTY-LLVM: Flags 2: 0x0 + +# RUN: yaml2obj %s -DFLAG2=0xffffffff -o %t.flag2.all +# RUN: llvm-readelf -A %t.flag2.all | FileCheck %s --check-prefix=FLAG2-ALL-GNU +# RUN: llvm-readobj -A %t.flag2.all | FileCheck %s --check-prefix=FLAG2-ALL-LLVM + +# FLAG2-ALL-GNU: FLAGS 2: ffffffff +# FLAG2-ALL-LLVM: Flags 2: 0xFFFFFFF