optimization/1931: Alpha->68K cross produces dough floating point instruction

gcc@treblig.org gcc@treblig.org
Sat Feb 10 16:56:00 GMT 2001


>Number:         1931
>Category:       optimization
>Synopsis:       Alpha->68K cross produces dough floating point instruction
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Feb 10 16:56:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Dr. David Alan Gilbert
>Release:        CVS as of 10th Feb 2001
>Organization:
>Environment:
Host Linux/Alpha (2.4.1-ac9 kernel)
Target 68K
Configured with: /home/gilbertd/egcs-source/gcc/configure --prefix=/discs/cross/m68k/tools --target=m68k-linux
gcc version 2.97 20010205 (experimental)
>Description:
During cross building of libgcc the build stops and complains of

 Error: cannot create floating-point number

from the assembler.

I've had previous binutils related problems like this, however using
a cut down file observing the assembler it looks like its gcc.


Source:

typedef float DFtype __attribute__ ((mode (DF)));

crossbug (DFtype a)
{
  int v=0;
  if (a < 0)
    v=1;
  return v;
}

included in the assembler is the line:

	fcmp.d #0r-1.08709117743770659141e-1257,%fp0

The build line used with the above source (x2.i) is:

/discs/c4/cross/m68k/build-gcc/gcc/xgcc -B/discs/c4/cross/m68k/build-gcc/gcc/ -B/discs/cross/m68k/tools/m68k-linux/bin/ -B/discs/cross/m68k/tools/m68k-linux/lib -O2  -c x2.i  -save-temps -s

Using -O1 does not exhibit the problem.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list