| # 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 |