grunwald@foobar.colorado.edu (Dirk Grunwald) (10/15/89)
configuration: decstation-3100 virgin gcc-1.36 installation
symptom: pattern not recognized by mips backend
repeat by: execute the following program. You can also use ``return(i=i+x)''
so I think it's a general problem of converting between floats and ints.
If anyone comes up with a patch for this before I do, please send me mail,
this is impeding my G++ progress.
[foobar-11] cat test.c
int
foo(int i, float x)
{
i = (int) x;
}
[foobar-12] gcc -c -v test.c
gcc version 1.36
/usr/local/Gnu/lib/gcc-cpp -v -undef -D__GNUC__ -Dmips -Dunix -D__mips__ -D__unix__ -DR3000 -DLANGUAGE_C -DMIPSEL -DSYSTYPE_BSD -Dultrix test.c /usr/tmp/cca28975.cpp
GNU CPP version 1.36
/usr/local/Gnu/lib/gcc-cc1 /usr/tmp/cca28975.cpp -quiet -dumpbase test.c -version -o /usr/tmp/cca28975.s
GNU C version 1.36 (AL-MIPS 1.11) <Decstation>
compiled by GNU C version 1.36.
default target switches: -munix -mnofixed-ovfl -mG0 -mG1
test.c: In function foo:
test.c:5: The following insn was not recognizable:
(insn 5 4 6 (parallel[
(set (mem:SF (plus:SI (reg:SI 30)
(const_int 4)))
(reg:DF 6))
(clobber (reg:SI 24))
] ) -1 (nil)
(nil))
gcc: Program cc1 got fatal signal 4.
[foobar-13]