[gnu.gcc.bug] asms that only work unoptimized

benson@HARVARD.HARVARD.EDU (Benson I. Margulies Kendall Square Research Corp.) (03/17/89)

In gcc 1.34, the following compiles correctly (it seems) and without
error only so long as -O is not provided on the command line.
When -O is given, I get:

sasm.c: In function set_fpastatus:
sasm.c:5: inconsistent operand constraints in an `asm'
gcc: Program cc1 got fatal signal 4.

This is also a test case for the rejection of "asm volatile"
in -traditional mode.

    void 
set_fpastatus(value)
    long value;
{
	asm volatile ("ld %0,%%fsr" : : "m" (value));
}

    long 
get_fpastatus()
{
    long ret;

    asm ("st %%fsr,%0" : "=m" (ret));
    return ret;
}

    void 
sparc_compare_single_floats(f1, f2)
    float f1;
    float f2;
{    
    asm volatile ("fcmps %0,%1" : : "f" (f1), "f" (f2));
}

    void 
sparc_compare_double_floats(f1, f2)
    double f1;
    double f2;
{    

    asm volatile ("fcmpd %0,%1" : : "f" (f1), "f" (f2));
}