This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: long double trouble w/ ix86
- To: drepper at cygnus dot com (Ulrich Drepper)
- Subject: Re: long double trouble w/ ix86
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sun, 16 Aug 1998 02:24:06 -0600
- cc: egcs-bugs at cygnus dot com
- Reply-To: law at cygnus dot com
In message <r267k571t0.fsf@happy.cygnus.com>you write:
> Hi,
>
> egcs as of this morning (1998-04-19) still cannot compile glibc. The
> following small file crashes gcc:
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> extern int __finitel (long double __value) __attribute__ ((__const__));
> extern long double __scalbnl (long double __x, int __n);
> extern int *__errno_location (void) __attribute__ ((__const__));
>
> long double
> __ldexpl(long double value, int exp)
> {
> if(!__finitel(value)||value==0.0) return value;
> value = __scalbnl(value,exp);
> if(!__finitel(value)||value==0.0) (*__errno_location ()) = ( 34 ) ;
> return value;
> }
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> When called as `gcc -c -O3 -fPIC s_ldexpl.i' gcc crashes after
> printing this:
>
> s_ldexpl.i: In function `__ldexpl':
> s_ldexpl.i:13: Unable to find a register to spill.
> (insn:QI 12 10 14 (set (mem:XF (pre_dec:SI (reg:SI 7 %esp)))
> (reg/v:XF 21)) 76 {movxf_push} (insn_list 4 (nil))
> (insn_list:REG_LIBCALL 18 (nil)))
This seems to be working OK on the egcs-1.1 branch.
jeff