PR25042 (i386 libcalls)

Jan Hubicka jh@suse.cz
Wed Jan 11 08:04:00 GMT 2006


> On Tue, Jan 10, 2006 at 11:56:15PM +0100, Jan Hubicka wrote:
> > ... makes
> > ix86_function_regparm to not ICE on libcalls that pass identifier node
> > as fndecl.  I am somewhat puzzled that we didn't hit the ICE eariler in
> > other cases but we do relatively few libcalls overall on i386.
> 
> Uh, what?  That should Never Ever happen.
Not that it really matters, but without the patch to disable float128
I see it happening in expanding libcall for fix_trunc.
emit_library_call_value_1 builds the identifier node:
  emit_call_1 (fun, NULL,
	       get_identifier (XSTR (orgfun, 0)),
	       build_function_type (tfom, NULL_TREE),
	       original_args_size.constant, args_size.constant,
	       struct_value_size,
	       FUNCTION_ARG (args_so_far, VOIDmode, void_type_node, 1),
	       valreg,
	       old_inhibit_defer_pop + 1, call_fusage, flags, & args_so_far);
and emit_call_1 pass it around to i386 backend.  How this is supposed to
work?

Honza



More information about the Gcc-patches mailing list