Richard,

I have noticed that gcc.target/mips/fpr-moves-7.c and
gcc.target/mips/fpr-moves-8.c fail when running the GCC
testsuite with -msoft-float.  I think it is because
of this code in mips.exp:

        if { [mips_using_mips16_p options]
             && ![mips_same_option_p $abi "-mabi=32"]
             && ![mips_same_option_p $abi "-mabi=o64"]
             && (![mips_have_option_p options "addressing=absolute"]
                 || [mips_have_option_p options "-mhard-float"]) } {
            if { [mips_test_option_p options mips16] } {
                mips_make_test_option options "addressing=absolute"
                mips_make_test_option options "-msoft-float"
            } else {
                mips_make_test_option options "-mno-mips16"
            }
        }

If we are running with -hard-float and the test specifies -mips16 then
we set addressing=absolute and -msoft-float.  But if we were -msoft-float
to begin with then we do not set addressing=absolute.  This matters because
later, addressing=absolute implies -mplt and -mplt implies -msym32 and it
is the -msym32 flag that is allowing these tests to pass with -mhard-float.
If I run with -msoft-float then -msym32 never gets set and the test fails.

Should addressing=absolute be set here for soft-float in mips.exp
or do you think these two tests should just not be run in soft-float mode?

Steve Ellcey
sell...@mips.com

Reply via email to