This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Avoid explicit use of machine modes (11/n) conversions


It was a jumbo patch, so I'll forgive you this one little bug...

Unfortunately, it breaks the bootstrap on anything that uses soft-float 
libraries (eg arm-netbsdelf).

According to opcodes.h the convert arrays are in the form [dest][source], 
so the following initializer is inverted:

+static void
+init_intraclass_conv_libfuncs (convert_optab tab, const char *opname,
...
+	tab->handlers[widening ? nmode : wmode]
+	             [widening ? wmode : nmode].libfunc
+	  = init_one_libfunc (ggc_alloc_string (libfunc_name,

It should of course be

+	tab->handlers[widening ? wmode : nmode]
+	             [widening ? nmode : wmode].libfunc
+	  = init_one_libfunc (ggc_alloc_string (libfunc_name,

Since when widening the destination is the wider mode.

R.

2003-10-07  Richard Earnshaw  <rearnsha@arm.com>

	* optabs.c (init_intraclass_conv_libfuncs): Fix order of array
	indicees for floating-point conversersion libcalls.


Attachment: optab-intra.patch
Description: optab-intra.patch


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]