This fix add more test cases for routines check MIPS ELF header flags and flags from .MIPS.abiflags sections. The tests use yaml2obj for object files generation because not all combinations of flags can be produced by LLVM tools. llvm-svn: 336704
163 lines
3.7 KiB
Plaintext
163 lines
3.7 KiB
Plaintext
# REQUIRES: mips
|
|
#
|
|
# Check warning and errors in case of input
|
|
# files with incompatible floating point ABI flags.
|
|
|
|
# RUN: yaml2obj -docnum 1 %s -o %t-dbl.o
|
|
# RUN: yaml2obj -docnum 2 %s -o %t-sgl.o
|
|
# RUN: yaml2obj -docnum 3 %s -o %t-soft.o
|
|
# RUN: yaml2obj -docnum 4 %s -o %t-fp64.o
|
|
# RUN: yaml2obj -docnum 5 %s -o %t-fp64old.o
|
|
# RUN: yaml2obj -docnum 6 %s -o %t-fp64a.o
|
|
# RUN: yaml2obj -docnum 7 %s -o %t-fpxx.o
|
|
|
|
# RUN: not ld.lld %t-dbl.o %t-fp64.o -shared -o /dev/null 2>&1 \
|
|
# RUN: | FileCheck -check-prefixes=DBLFP64 %s
|
|
|
|
# RUN: not ld.lld %t-sgl.o %t-fp64old.o -shared -o /dev/null 2>&1 \
|
|
# RUN: | FileCheck -check-prefixes=SGLFP64OLD %s
|
|
|
|
# RUN: not ld.lld %t-soft.o %t-fp64a.o -shared -o /dev/null 2>&1 \
|
|
# RUN: | FileCheck -check-prefixes=SOFTFP64A %s
|
|
|
|
# RUN: not ld.lld %t-sgl.o %t-fpxx.o -shared -o /dev/null 2>&1 \
|
|
# RUN: | FileCheck -check-prefixes=SGLFPXX %s
|
|
|
|
# DBLFP64: {{.*}}fp64.o: floating point ABI '-mgp32 -mfp64' is incompatible with target floating point ABI '-mdouble-float'
|
|
# SGLFP64OLD: {{.*}}fp64old.o: floating point ABI '-mgp32 -mfp64 (old)' is incompatible with target floating point ABI '-msingle-float'
|
|
# SOFTFP64A: {{.*}}fp64a.o: floating point ABI '-mgp32 -mfp64 -mno-odd-spreg' is incompatible with target floating point ABI '-msoft-float'
|
|
# SGLFPXX: {{.*}}fpxx.o: floating point ABI '-mfpxx' is incompatible with target floating point ABI '-msingle-float'
|
|
|
|
# dbl.o
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2MSB
|
|
Type: ET_REL
|
|
Machine: EM_MIPS
|
|
Flags: [ EF_MIPS_ARCH_64 ]
|
|
|
|
Sections:
|
|
- Name: .MIPS.abiflags
|
|
Type: SHT_MIPS_ABIFLAGS
|
|
ISA: MIPS64
|
|
ASEs: []
|
|
FpABI: FP_DOUBLE
|
|
GPRSize: REG_64
|
|
CPR1Size: REG_64
|
|
CPR2Size: REG_NONE
|
|
|
|
# sgl.o
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2MSB
|
|
Type: ET_REL
|
|
Machine: EM_MIPS
|
|
Flags: [ EF_MIPS_ARCH_64 ]
|
|
|
|
Sections:
|
|
- Name: .MIPS.abiflags
|
|
Type: SHT_MIPS_ABIFLAGS
|
|
ISA: MIPS64
|
|
ASEs: []
|
|
FpABI: FP_SINGLE
|
|
GPRSize: REG_64
|
|
CPR1Size: REG_64
|
|
CPR2Size: REG_NONE
|
|
|
|
# soft.o
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2MSB
|
|
Type: ET_REL
|
|
Machine: EM_MIPS
|
|
Flags: [ EF_MIPS_ARCH_64 ]
|
|
|
|
Sections:
|
|
- Name: .MIPS.abiflags
|
|
Type: SHT_MIPS_ABIFLAGS
|
|
ISA: MIPS64
|
|
ASEs: []
|
|
FpABI: FP_SOFT
|
|
GPRSize: REG_64
|
|
CPR1Size: REG_64
|
|
CPR2Size: REG_NONE
|
|
|
|
# fp64.o
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2MSB
|
|
Type: ET_REL
|
|
Machine: EM_MIPS
|
|
Flags: [ EF_MIPS_ARCH_64 ]
|
|
|
|
Sections:
|
|
- Name: .MIPS.abiflags
|
|
Type: SHT_MIPS_ABIFLAGS
|
|
ISA: MIPS64
|
|
ASEs: []
|
|
FpABI: FP_64
|
|
GPRSize: REG_64
|
|
CPR1Size: REG_64
|
|
CPR2Size: REG_NONE
|
|
|
|
# fp64old.o
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2MSB
|
|
Type: ET_REL
|
|
Machine: EM_MIPS
|
|
Flags: [ EF_MIPS_ARCH_64 ]
|
|
|
|
Sections:
|
|
- Name: .MIPS.abiflags
|
|
Type: SHT_MIPS_ABIFLAGS
|
|
ISA: MIPS64
|
|
ASEs: []
|
|
FpABI: FP_OLD_64
|
|
GPRSize: REG_64
|
|
CPR1Size: REG_64
|
|
CPR2Size: REG_NONE
|
|
|
|
# fp64a.o
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2MSB
|
|
Type: ET_REL
|
|
Machine: EM_MIPS
|
|
Flags: [ EF_MIPS_ARCH_64 ]
|
|
|
|
Sections:
|
|
- Name: .MIPS.abiflags
|
|
Type: SHT_MIPS_ABIFLAGS
|
|
ISA: MIPS64
|
|
ASEs: []
|
|
FpABI: FP_64A
|
|
GPRSize: REG_64
|
|
CPR1Size: REG_64
|
|
CPR2Size: REG_NONE
|
|
|
|
# fpxx.o
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2MSB
|
|
Type: ET_REL
|
|
Machine: EM_MIPS
|
|
Flags: [ EF_MIPS_ARCH_64 ]
|
|
|
|
Sections:
|
|
- Name: .MIPS.abiflags
|
|
Type: SHT_MIPS_ABIFLAGS
|
|
ISA: MIPS64
|
|
ASEs: []
|
|
FpABI: FP_XX
|
|
GPRSize: REG_64
|
|
CPR1Size: REG_64
|
|
CPR2Size: REG_NONE
|