88be9a85fff6708153699b73daf3e5dc38354ac0
[openwrt/staging/chunkeey.git] / toolchain / gcc / patches / 4.4.1+cs / 000-codesourcery_2009q3_68.patch
1 diff -Nur a/config/mh-mingw b/config/mh-mingw
2 --- a/config/mh-mingw 2008-11-21 14:54:41.000000000 +0100
3 +++ b/config/mh-mingw 2010-01-25 09:50:28.945687353 +0100
4 @@ -1,6 +1,8 @@
5 # Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows
6 # Vista (see PR33281 for details).
7 -BOOT_CFLAGS += -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format
8 -CFLAGS += -D__USE_MINGW_ACCESS
9 +# Because we wrap access in libiberty/cygpath.c, we do not want to use
10 +# the MinGW wrappers for access.
11 +BOOT_CFLAGS += -Wno-pedantic-ms-format
12 +# CFLAGS += -D__USE_MINGW_ACCESS
13 # Increase stack limit to same as Linux default.
14 LDFLAGS += -Wl,--stack,8388608
15 diff -Nur a/config/stdint.m4 b/config/stdint.m4
16 --- a/config/stdint.m4 2007-04-12 15:06:43.000000000 +0200
17 +++ b/config/stdint.m4 2010-01-25 09:50:28.945687353 +0100
18 @@ -115,19 +115,19 @@
19
20 # Lacking an uintptr_t? Test size of void *
21 case "$acx_cv_header_stdint:$ac_cv_type_uintptr_t" in
22 - stddef.h:* | *:no) AC_CHECK_SIZEOF(void *) ;;
23 + stddef.h:* | *:no) AC_CHECK_SIZEOF(void *,,/* no standard headers */) ;;
24 esac
25
26 # Lacking an uint64_t? Test size of long
27 case "$acx_cv_header_stdint:$ac_cv_type_uint64_t:$ac_cv_type_u_int64_t" in
28 - stddef.h:*:* | *:no:no) AC_CHECK_SIZEOF(long) ;;
29 + stddef.h:*:* | *:no:no) AC_CHECK_SIZEOF(long,,/* no standard headers */) ;;
30 esac
31
32 if test $acx_cv_header_stdint = stddef.h; then
33 # Lacking a good header? Test size of everything and deduce all types.
34 - AC_CHECK_SIZEOF(int)
35 - AC_CHECK_SIZEOF(short)
36 - AC_CHECK_SIZEOF(char)
37 + AC_CHECK_SIZEOF(int,,/* no standard headers */)
38 + AC_CHECK_SIZEOF(short,,/* no standard headers */)
39 + AC_CHECK_SIZEOF(char,,/* no standard headers */)
40
41 AC_MSG_CHECKING(for type equivalent to int8_t)
42 case "$ac_cv_sizeof_char" in
43 diff -Nur a/config/tls.m4 b/config/tls.m4
44 --- a/config/tls.m4 2009-01-23 05:58:03.000000000 +0100
45 +++ b/config/tls.m4 2010-01-25 09:50:28.945687353 +0100
46 @@ -1,5 +1,6 @@
47 dnl Check whether the target supports TLS.
48 AC_DEFUN([GCC_CHECK_TLS], [
49 + AC_REQUIRE([AC_CANONICAL_HOST])
50 GCC_ENABLE(tls, yes, [], [Use thread-local storage])
51 AC_CACHE_CHECK([whether the target supports thread-local storage],
52 gcc_cv_have_tls, [
53 @@ -66,7 +67,24 @@
54 [dnl This is the cross-compiling case. Assume libc supports TLS if the
55 dnl binutils and the compiler do.
56 AC_LINK_IFELSE([__thread int a; int b; int main() { return a = b; }],
57 - [gcc_cv_have_tls=yes], [gcc_cv_have_tls=no])
58 + [chktls_save_LDFLAGS="$LDFLAGS"
59 + dnl Shared library options may depend on the host; this check
60 + dnl is only known to be needed for GNU/Linux.
61 + case $host in
62 + *-*-linux*)
63 + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
64 + ;;
65 + esac
66 + chktls_save_CFLAGS="$CFLAGS"
67 + CFLAGS="-fPIC $CFLAGS"
68 + dnl If -shared works, test if TLS works in a shared library.
69 + AC_LINK_IFELSE([int f() { return 0; }],
70 + [AC_LINK_IFELSE([__thread int a; int b; int f() { return a = b; }],
71 + [gcc_cv_have_tls=yes],
72 + [gcc_cv_have_tls=no])],
73 + [gcc_cv_have_tls=yes])
74 + CFLAGS="$chktls_save_CFLAGS"
75 + LDFLAGS="$chktls_save_LDFLAGS"], [gcc_cv_have_tls=no])
76 ]
77 )])
78 if test "$enable_tls $gcc_cv_have_tls" = "yes yes"; then
79 diff -Nur a/configure b/configure
80 --- a/configure 2009-04-25 06:10:29.000000000 +0200
81 +++ b/configure 2010-01-25 09:50:28.945687353 +0100
82 @@ -2277,7 +2277,7 @@
83 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
84 ;;
85 *-*-vxworks*)
86 - noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
87 + noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj}"
88 ;;
89 alpha*-dec-osf*)
90 # ld works, but does not support shared libraries.
91 diff -Nur a/configure.ac b/configure.ac
92 --- a/configure.ac 2009-04-25 06:10:29.000000000 +0200
93 +++ b/configure.ac 2010-01-25 09:50:28.945687353 +0100
94 @@ -512,7 +512,7 @@
95 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
96 ;;
97 *-*-vxworks*)
98 - noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
99 + noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj}"
100 ;;
101 alpha*-dec-osf*)
102 # ld works, but does not support shared libraries.
103 diff -Nur a/fixincludes/fixincl.tpl b/fixincludes/fixincl.tpl
104 --- a/fixincludes/fixincl.tpl 2008-09-06 21:57:26.000000000 +0200
105 +++ b/fixincludes/fixincl.tpl 2010-01-25 09:50:28.945687353 +0100
106 @@ -38,7 +38,7 @@
107 #ifndef SED_PROGRAM
108 #define SED_PROGRAM "/usr/bin/sed"
109 #endif
110 -static char const sed_cmd_z[] = SED_PROGRAM;
111 +static char const sed_cmd_z[] = "sed";
112 [=
113
114 FOR fix =]
115 diff -Nur a/fixincludes/fixincl.x b/fixincludes/fixincl.x
116 --- a/fixincludes/fixincl.x 2009-02-28 19:13:31.000000000 +0100
117 +++ b/fixincludes/fixincl.x 2010-01-25 09:50:28.945687353 +0100
118 @@ -2,11 +2,11 @@
119 *
120 * DO NOT EDIT THIS FILE (fixincl.x)
121 *
122 - * It has been AutoGen-ed Saturday February 28, 2009 at 10:11:41 AM PST
123 + * It has been AutoGen-ed Monday July 20, 2009 at 01:53:53 PM PDT
124 * From the definitions inclhack.def
125 * and the template file fixincl
126 */
127 -/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Feb 28 10:11:41 PST 2009
128 +/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Jul 20 13:53:53 PDT 2009
129 *
130 * You must regenerate it. Use the ./genfixes script.
131 *
132 @@ -15,7 +15,7 @@
133 * certain ANSI-incompatible system header files which are fixed to work
134 * correctly with ANSI C and placed in a directory that GNU C will search.
135 *
136 - * This file contains 180 fixup descriptions.
137 + * This file contains 181 fixup descriptions.
138 *
139 * See README for more information.
140 *
141 @@ -39,7 +39,7 @@
142 #ifndef SED_PROGRAM
143 #define SED_PROGRAM "/usr/bin/sed"
144 #endif
145 -static char const sed_cmd_z[] = SED_PROGRAM;
146 +static char const sed_cmd_z[] = "sed";
147
148 /* * * * * * * * * * * * * * * * * * * * * * * * * *
149 *
150 @@ -2300,6 +2300,42 @@
151
152 /* * * * * * * * * * * * * * * * * * * * * * * * * *
153 *
154 + * Description of Glibc_String2_Memset fix
155 + */
156 +tSCC zGlibc_String2_MemsetName[] =
157 + "glibc_string2_memset";
158 +
159 +/*
160 + * File name selection pattern
161 + */
162 +tSCC zGlibc_String2_MemsetList[] =
163 + "bits/string2.h\0";
164 +/*
165 + * Machine/OS name selection pattern
166 + */
167 +#define apzGlibc_String2_MemsetMachs (const char**)NULL
168 +
169 +/*
170 + * content selection pattern - do fix if pattern found
171 + */
172 +tSCC zGlibc_String2_MemsetSelect0[] =
173 + "#ifndef _HAVE_STRING_ARCH_memset\n\
174 +# if _STRING_ARCH_unaligned";
175 +
176 +#define GLIBC_STRING2_MEMSET_TEST_CT 1
177 +static tTestDesc aGlibc_String2_MemsetTests[] = {
178 + { TT_EGREP, zGlibc_String2_MemsetSelect0, (regex_t*)NULL }, };
179 +
180 +/*
181 + * Fix Command Arguments for Glibc_String2_Memset
182 + */
183 +static const char* apzGlibc_String2_MemsetPatch[] = {
184 + "format",
185 + "%0 && 0",
186 + (char*)NULL };
187 +
188 +/* * * * * * * * * * * * * * * * * * * * * * * * * *
189 + *
190 * Description of Gnu_Types fix
191 */
192 tSCC zGnu_TypesName[] =
193 @@ -5617,8 +5653,7 @@
194 * Machine/OS name selection pattern
195 */
196 tSCC* apzSolaris_Mutex_Init_2Machs[] = {
197 - "*-*-solaris2.[0-9]",
198 - "*-*-solaris2.[0-9][!0-9]*",
199 + "*-*-solaris*",
200 (const char*)NULL };
201
202 /*
203 @@ -5627,8 +5662,15 @@
204 tSCC zSolaris_Mutex_Init_2Select0[] =
205 "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
206
207 -#define SOLARIS_MUTEX_INIT_2_TEST_CT 1
208 +/*
209 + * perform the 'test' shell command - do fix on success
210 + */
211 +tSCC zSolaris_Mutex_Init_2Test0[] =
212 + " -n \"`grep '#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)' \\`dirname $file\\`/sys/types.h`\"";
213 +
214 +#define SOLARIS_MUTEX_INIT_2_TEST_CT 2
215 static tTestDesc aSolaris_Mutex_Init_2Tests[] = {
216 + { TT_TEST, zSolaris_Mutex_Init_2Test0, 0 /* unused */ },
217 { TT_EGREP, zSolaris_Mutex_Init_2Select0, (regex_t*)NULL }, };
218
219 /*
220 @@ -5670,8 +5712,15 @@
221 tSCC zSolaris_Rwlock_Init_1Select0[] =
222 "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
223
224 -#define SOLARIS_RWLOCK_INIT_1_TEST_CT 1
225 +/*
226 + * perform the 'test' shell command - do fix on success
227 + */
228 +tSCC zSolaris_Rwlock_Init_1Test0[] =
229 + " -n \"`grep '#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)' \\`dirname $file\\`/sys/types.h`\"";
230 +
231 +#define SOLARIS_RWLOCK_INIT_1_TEST_CT 2
232 static tTestDesc aSolaris_Rwlock_Init_1Tests[] = {
233 + { TT_TEST, zSolaris_Rwlock_Init_1Test0, 0 /* unused */ },
234 { TT_EGREP, zSolaris_Rwlock_Init_1Select0, (regex_t*)NULL }, };
235
236 /*
237 @@ -5741,8 +5790,7 @@
238 * Machine/OS name selection pattern
239 */
240 tSCC* apzSolaris_Once_Init_2Machs[] = {
241 - "*-*-solaris2.[0-9]",
242 - "*-*-solaris2.[0-9][!0-9]*",
243 + "*-*-solaris*",
244 (const char*)NULL };
245
246 /*
247 @@ -5751,8 +5799,15 @@
248 tSCC zSolaris_Once_Init_2Select0[] =
249 "@\\(#\\)pthread.h[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
250
251 -#define SOLARIS_ONCE_INIT_2_TEST_CT 1
252 +/*
253 + * perform the 'test' shell command - do fix on success
254 + */
255 +tSCC zSolaris_Once_Init_2Test0[] =
256 + " -n \"`grep '#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)' \\`dirname $file\\`/sys/types.h`\"";
257 +
258 +#define SOLARIS_ONCE_INIT_2_TEST_CT 2
259 static tTestDesc aSolaris_Once_Init_2Tests[] = {
260 + { TT_TEST, zSolaris_Once_Init_2Test0, 0 /* unused */ },
261 { TT_EGREP, zSolaris_Once_Init_2Select0, (regex_t*)NULL }, };
262
263 /*
264 @@ -7308,9 +7363,9 @@
265 *
266 * List of all fixes
267 */
268 -#define REGEX_COUNT 226
269 -#define MACH_LIST_SIZE_LIMIT 181
270 -#define FIX_COUNT 180
271 +#define REGEX_COUNT 227
272 +#define MACH_LIST_SIZE_LIMIT 169
273 +#define FIX_COUNT 181
274
275 /*
276 * Enumerate the fixes
277 @@ -7371,6 +7426,7 @@
278 GLIBC_C99_INLINE_3_FIXIDX,
279 GLIBC_C99_INLINE_4_FIXIDX,
280 GLIBC_MUTEX_INIT_FIXIDX,
281 + GLIBC_STRING2_MEMSET_FIXIDX,
282 GNU_TYPES_FIXIDX,
283 HP_INLINE_FIXIDX,
284 HP_SYSFILE_FIXIDX,
285 @@ -7774,6 +7830,11 @@
286 GLIBC_MUTEX_INIT_TEST_CT, FD_MACH_ONLY,
287 aGlibc_Mutex_InitTests, apzGlibc_Mutex_InitPatch, 0 },
288
289 + { zGlibc_String2_MemsetName, zGlibc_String2_MemsetList,
290 + apzGlibc_String2_MemsetMachs,
291 + GLIBC_STRING2_MEMSET_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
292 + aGlibc_String2_MemsetTests, apzGlibc_String2_MemsetPatch, 0 },
293 +
294 { zGnu_TypesName, zGnu_TypesList,
295 apzGnu_TypesMachs,
296 GNU_TYPES_TEST_CT, FD_MACH_IFNOT | FD_SUBROUTINE,
297 diff -Nur a/fixincludes/inclhack.def b/fixincludes/inclhack.def
298 --- a/fixincludes/inclhack.def 2009-02-28 19:13:31.000000000 +0100
299 +++ b/fixincludes/inclhack.def 2010-01-25 09:50:28.955687088 +0100
300 @@ -1302,6 +1302,21 @@
301 };
302
303
304 +/* glibc's bits/string2.h (before 2004-05-26) generates bogus
305 + -Wstrict-aliasing warnings from calls to memset. */
306 +fix = {
307 + hackname = glibc_string2_memset;
308 + files = "bits/string2.h";
309 + select = "#ifndef _HAVE_STRING_ARCH_memset\n# if _STRING_ARCH_unaligned";
310 + c_fix = format;
311 + c_fix_arg = "%0 && 0";
312 + test_text = "#ifndef _HAVE_STRING_ARCH_memset\n"
313 + "# if _STRING_ARCH_unaligned\n"
314 + "# endif\n"
315 + "#endif\n";
316 +};
317 +
318 +
319 /*
320 * Fix these files to use the types we think they should for
321 * ptrdiff_t, size_t, and wchar_t.
322 @@ -2939,24 +2954,32 @@
323 };
324
325 /*
326 - * Sun Solaris defines PTHREAD_MUTEX_INITIALIZER with a trailing
327 - * "0" for the last field of the pthread_mutex_t structure, which is
328 - * of type upad64_t, which itself is typedef'd to int64_t, but with
329 - * __STDC__ defined (e.g. by -ansi) it is a union. So change the
330 - * initializer to "{0}" instead
331 + * Sun Solaris defines the last field of the pthread_mutex_t structure
332 + * to have type upad64_t. Whether upad64_t is an integer type or a
333 + * union depends on whether or not the headers believe that a 64-bit
334 + * integer type is available. But, PTHREAD_MUTEX_INITIALIZER is not
335 + * appropriately conditionalized; it always uses "0", and never "{0}".
336 + * In order to avoid warnings/errors from the compiler, we must make
337 + * the initializer use braces where appropriate.
338 + *
339 + * Prior to Solaris 10, if __STDC__ is 1 (as when compiling with
340 + * -ansi), the definition would be a union. Beginning with Solaris
341 + * 10, the headers check for __GNUC__, and will never use a union with
342 + * GCC. We check /usr/include/sys/types.h to see if it checks for
343 + * __STDC__.
344 + *
345 + * A "mach" test for Solaris 10 is undesirable because we want to
346 + * allow a compiler built for Solaris <10 to be used on Solaris >=10,
347 + * but the installed version of fixincludes hard-wires the target
348 + * machine to the configure-time $target, rather than automatically
349 + * determining it at installation time.
350 */
351 fix = {
352 hackname = solaris_mutex_init_2;
353 select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
354 files = pthread.h;
355 - /*
356 - * On Solaris 10, this fix is unnecessary because upad64_t is
357 - * always defined correctly regardless of the definition of the
358 - * __STDC__ macro. The first "mach" pattern matches up to
359 - * solaris9. The second "mach" pattern will not match any two (or
360 - * more) digit solaris version, but it will match e.g. 2.5.1.
361 - */
362 - mach = '*-*-solaris2.[0-9]', '*-*-solaris2.[0-9][!0-9]*';
363 + mach = '*-*-solaris*';
364 + test = " -n \"`grep '#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)' \\`dirname $file\\`/sys/types.h`\"";
365 c_fix = format;
366 c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n"
367 "%0\n"
368 @@ -2967,6 +2990,7 @@
369 "(|/\*.*\*/[ \t]*\\\\\n[ \t]*)\\{.*)"
370 ",[ \t]*0\\}" "(|[ \t].*)$";
371 test_text =
372 + "`mkdir -p sys; echo '#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)' >> sys/types.h`"
373 '#ident "@(#)pthread.h 1.26 98/04/12 SMI"'"\n"
374 "#define PTHREAD_MUTEX_INITIALIZER\t{{{0},0}, {{{0}}}, 0}\n"
375 "#define PTHREAD_COND_INITIALIZER\t{{{0}, 0}, 0}\t/* DEFAULTCV */\n"
376 @@ -2978,17 +3002,14 @@
377
378
379 /*
380 - * Sun Solaris defines PTHREAD_RWLOCK_INITIALIZER with a "0" for some
381 - * fields of the pthread_rwlock_t structure, which are of type
382 - * upad64_t, which itself is typedef'd to int64_t, but with __STDC__
383 - * defined (e.g. by -ansi) it is a union. So change the initializer
384 - * to "{0}" instead.
385 + * See comments for solaris_mutex_init_2 re. upad64_t.
386 */
387 fix = {
388 hackname = solaris_rwlock_init_1;
389 select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
390 files = pthread.h;
391 mach = '*-*-solaris*';
392 + test = " -n \"`grep '#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)' \\`dirname $file\\`/sys/types.h`\"";
393 c_fix = format;
394 c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n"
395 "%0\n"
396 @@ -3024,24 +3045,14 @@
397
398
399 /*
400 - * Sun Solaris defines PTHREAD_ONCE_INIT with a "0" for some
401 - * fields of the pthread_once_t structure, which are of type
402 - * upad64_t, which itself is typedef'd to int64_t, but with __STDC__
403 - * defined (e.g. by -ansi) it is a union. So change the initializer
404 - * to "{0}" instead. This test relies on solaris_once_init_1.
405 + * See comments for solaris_mutex_init_2 re. upad64_t.
406 */
407 fix = {
408 hackname = solaris_once_init_2;
409 select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
410 files = pthread.h;
411 - /*
412 - * On Solaris 10, this fix is unnecessary because upad64_t is
413 - * always defined correctly regardless of the definition of the
414 - * __STDC__ macro. The first "mach" pattern matches up to
415 - * solaris9. The second "mach" pattern will not match any two (or
416 - * more) digit solaris version, but it will match e.g. 2.5.1.
417 - */
418 - mach = '*-*-solaris2.[0-9]', '*-*-solaris2.[0-9][!0-9]*';
419 + mach = '*-*-solaris*';
420 + test = " -n \"`grep '#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)' \\`dirname $file\\`/sys/types.h`\"";
421 c_fix = format;
422 c_fix_arg = "#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)\n"
423 "%0\n"
424 diff -Nur a/fixincludes/server.c b/fixincludes/server.c
425 --- a/fixincludes/server.c 2005-08-15 02:50:43.000000000 +0200
426 +++ b/fixincludes/server.c 2010-01-25 09:50:28.955687088 +0100
427 @@ -266,7 +266,7 @@
428 /* Make sure the process will pay attention to us, send the
429 supplied command, and then have it output a special marker that
430 we can find. */
431 - fprintf (server_pair.pf_write, "cd %s\n%s\n\necho\necho %s\n",
432 + fprintf (server_pair.pf_write, "cd '%s'\n%s\n\necho\necho %s\n",
433 p_cur_dir, pz_cmd, z_done);
434 fflush (server_pair.pf_write);
435
436 diff -Nur a/fixincludes/tests/base/bits/string2.h b/fixincludes/tests/base/bits/string2.h
437 --- a/fixincludes/tests/base/bits/string2.h 2007-03-26 15:25:26.000000000 +0200
438 +++ b/fixincludes/tests/base/bits/string2.h 2010-01-25 09:50:28.955687088 +0100
439 @@ -16,3 +16,12 @@
440 # define __STRING_INLINE extern __inline
441 # endif
442 #endif /* GLIBC_C99_INLINE_3_CHECK */
443 +
444 +
445 +#if defined( GLIBC_STRING2_MEMSET_CHECK )
446 +#ifndef _HAVE_STRING_ARCH_memset
447 +# if _STRING_ARCH_unaligned && 0
448 +# endif
449 +#endif
450 +
451 +#endif /* GLIBC_STRING2_MEMSET_CHECK */
452 diff -Nur a/fixincludes/tests/base/sys/types.h b/fixincludes/tests/base/sys/types.h
453 --- a/fixincludes/tests/base/sys/types.h 2004-08-31 11:27:00.000000000 +0200
454 +++ b/fixincludes/tests/base/sys/types.h 2010-01-25 09:50:28.955687088 +0100
455 @@ -28,3 +28,4 @@
456
457 #endif /* ushort_t */
458 #endif /* GNU_TYPES_CHECK */
459 +#if !defined(__STRICT_ANSI__) && !defined(_NO_LONGLONG)
460 diff -Nur a/gcc/acinclude.m4 b/gcc/acinclude.m4
461 --- a/gcc/acinclude.m4 2008-06-02 21:37:45.000000000 +0200
462 +++ b/gcc/acinclude.m4 2010-01-25 09:50:28.955687088 +0100
463 @@ -482,3 +482,53 @@
464 AC_DEFUN([gcc_AC_BUILD_EXEEXT], [
465 ac_executable_extensions="$build_exeext"])
466
467 +
468 +# --with-license=PATH
469 +AC_DEFUN([CSL_AC_LICENSE],[
470 + AC_ARG_WITH(license,
471 + AC_HELP_STRING([--with-license],
472 + [the path to the installed license component]),
473 + [case "$withval" in
474 + (yes) AC_MSG_ERROR([license not specified]) ;;
475 + (no) with_license= ;;
476 + (*) ;;
477 + esac],
478 + [with_license=])
479 + AC_SUBST(licensedir, $with_license)
480 +])
481 +
482 +# --with-csl-license-feature=FOO
483 +AC_DEFUN([CSL_AC_LICENSE_FEATURE],[
484 + AC_ARG_WITH(csl-license-feature,
485 + AC_HELP_STRING([--with-csl-license-feature=FEATURE],
486 + [Use FEATURE to communicate with the license manager]),
487 + [case "$withval" in
488 + (yes) AC_MSG_ERROR([license feature not specified]) ;;
489 + (no) CSL_LICENSE_FEATURE="" ;;
490 + (*) CSL_LICENSE_FEATURE="$withval" ;;
491 + esac],
492 + CSL_LICENSE_FEATURE=""
493 + )
494 + if test x"$CSL_LICENSE_FEATURE" != x; then
495 + AC_DEFINE_UNQUOTED(CSL_LICENSE_FEATURE, "$CSL_LICENSE_FEATURE",
496 + [Required license feature])
497 + fi
498 +])
499 +
500 +# --with-csl-license-version=VERSION
501 +AC_DEFUN([CSL_AC_LICENSE_VERSION],[
502 + AC_ARG_WITH(csl-license-version,
503 + AC_HELP_STRING([--with-csl-license-version=VERSION],
504 + [Use VERSION to communicate with the license manager]),
505 + [case "$withval" in
506 + (yes) AC_MSG_ERROR([license version not specified]) ;;
507 + (no) CSL_LICENSE_VERSION="" ;;
508 + (*) CSL_LICENSE_VERSION="$withval" ;;
509 + esac],
510 + CSL_LICENSE_VERSION=""
511 + )
512 + if test x"$CSL_LICENSE_VERSION" != x; then
513 + AC_DEFINE_UNQUOTED(CSL_LICENSE_VERSION, "$CSL_LICENSE_VERSION",
514 + [Required license version])
515 + fi
516 +])
517 diff -Nur a/gcc/addresses.h b/gcc/addresses.h
518 --- a/gcc/addresses.h 2007-07-26 10:37:01.000000000 +0200
519 +++ b/gcc/addresses.h 2010-01-25 09:50:28.955687088 +0100
520 @@ -78,3 +78,42 @@
521
522 return ok_for_base_p_1 (regno, mode, outer_code, index_code);
523 }
524 +
525 +/* Wrapper function to unify target macros MODE_INDEX_REG_CLASS and
526 + INDEX_REG_CLASS. Arguments as for the MODE_INDEX_REG_CLASS macro. */
527 +
528 +static inline enum reg_class
529 +index_reg_class (enum machine_mode mode ATTRIBUTE_UNUSED)
530 +{
531 +#ifdef MODE_INDEX_REG_CLASS
532 + return MODE_INDEX_REG_CLASS (mode);
533 +#else
534 + return INDEX_REG_CLASS;
535 +#endif
536 +}
537 +
538 +/* Wrapper function to unify target macros REGNO_MODE_OK_FOR_INDEX_P
539 + and REGNO_OK_FOR_INDEX_P. Arguments as for the
540 + REGNO_MODE_OK_FOR_INDEX_P macro. */
541 +
542 +static inline bool
543 +ok_for_index_p_1 (unsigned regno, enum machine_mode mode ATTRIBUTE_UNUSED)
544 +{
545 +#ifdef REGNO_MODE_OK_FOR_INDEX_P
546 + return REGNO_MODE_OK_FOR_INDEX_P (regno, mode);
547 +#else
548 + return REGNO_OK_FOR_INDEX_P (regno);
549 +#endif
550 +}
551 +
552 +/* Wrapper around ok_for_index_p_1, for use after register allocation is
553 + complete. Arguments as for the called function. */
554 +
555 +static inline bool
556 +regno_ok_for_index_p (unsigned regno, enum machine_mode mode)
557 +{
558 + if (regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] >= 0)
559 + regno = reg_renumber[regno];
560 +
561 + return ok_for_index_p_1 (regno, mode);
562 +}
563 diff -Nur a/gcc/calls.c b/gcc/calls.c
564 --- a/gcc/calls.c 2009-02-20 12:19:34.000000000 +0100
565 +++ b/gcc/calls.c 2010-01-25 09:50:28.955687088 +0100
566 @@ -3803,7 +3803,7 @@
567 cse'ing of library calls could delete a call and leave the pop. */
568 NO_DEFER_POP;
569 valreg = (mem_value == 0 && outmode != VOIDmode
570 - ? hard_libcall_value (outmode) : NULL_RTX);
571 + ? hard_libcall_value (outmode, orgfun) : NULL_RTX);
572
573 /* Stack must be properly aligned now. */
574 gcc_assert (!(stack_pointer_delta
575 @@ -4048,8 +4048,17 @@
576 /* We need to make a save area. */
577 unsigned int size = arg->locate.size.constant * BITS_PER_UNIT;
578 enum machine_mode save_mode = mode_for_size (size, MODE_INT, 1);
579 - rtx adr = memory_address (save_mode, XEXP (arg->stack_slot, 0));
580 - rtx stack_area = gen_rtx_MEM (save_mode, adr);
581 + rtx adr;
582 + rtx stack_area;
583 +
584 + /* We can only use save_mode if the arg is sufficiently
585 + aligned. */
586 + if (STRICT_ALIGNMENT
587 + && GET_MODE_ALIGNMENT (save_mode) > arg->locate.boundary)
588 + save_mode = BLKmode;
589 +
590 + adr = memory_address (save_mode, XEXP (arg->stack_slot, 0));
591 + stack_area = gen_rtx_MEM (save_mode, adr);
592
593 if (save_mode == BLKmode)
594 {
595 diff -Nur a/gcc/c-common.c b/gcc/c-common.c
596 --- a/gcc/c-common.c 2009-03-30 19:42:27.000000000 +0200
597 +++ b/gcc/c-common.c 2010-01-25 09:50:28.955687088 +0100
598 @@ -33,7 +33,6 @@
599 #include "varray.h"
600 #include "expr.h"
601 #include "c-common.h"
602 -#include "diagnostic.h"
603 #include "tm_p.h"
604 #include "obstack.h"
605 #include "cpplib.h"
606 @@ -42,6 +41,7 @@
607 #include "tree-inline.h"
608 #include "c-tree.h"
609 #include "toplev.h"
610 +#include "diagnostic.h"
611 #include "tree-iterator.h"
612 #include "hashtab.h"
613 #include "tree-mudflap.h"
614 @@ -497,6 +497,10 @@
615 This is a count, since unevaluated expressions can nest. */
616 int skip_evaluation;
617
618 +/* Whether lexing has been completed, so subsequent preprocessor
619 + errors should use the compiler's input_location. */
620 +bool done_lexing = false;
621 +
622 /* Information about how a function name is generated. */
623 struct fname_var_t
624 {
625 @@ -7522,6 +7526,68 @@
626 #undef catenate_messages
627 }
628
629 +/* Callback from cpp_error for PFILE to print diagnostics from the
630 + preprocessor. The diagnostic is of type LEVEL, at location
631 + LOCATION unless this is after lexing and the compiler's location
632 + should be used instead, with column number possibly overridden by
633 + COLUMN_OVERRIDE if not zero; MSG is the translated message and AP
634 + the arguments. Returns true if a diagnostic was emitted, false
635 + otherwise. */
636 +
637 +bool
638 +c_cpp_error (cpp_reader *pfile ATTRIBUTE_UNUSED, int level,
639 + location_t location, unsigned int column_override,
640 + const char *msg, va_list *ap)
641 +{
642 + diagnostic_info diagnostic;
643 + diagnostic_t dlevel;
644 + int save_warn_system_headers = warn_system_headers;
645 + bool ret;
646 +
647 + switch (level)
648 + {
649 + case CPP_DL_WARNING_SYSHDR:
650 + if (flag_no_output)
651 + return false;
652 + warn_system_headers = 1;
653 + /* Fall through. */
654 + case CPP_DL_WARNING:
655 + if (flag_no_output)
656 + return false;
657 + dlevel = DK_WARNING;
658 + break;
659 + case CPP_DL_PEDWARN:
660 + if (flag_no_output && !flag_pedantic_errors)
661 + return false;
662 + dlevel = DK_PEDWARN;
663 + break;
664 + case CPP_DL_ERROR:
665 + dlevel = DK_ERROR;
666 + break;
667 + case CPP_DL_ICE:
668 + dlevel = DK_ICE;
669 + break;
670 + case CPP_DL_NOTE:
671 + dlevel = DK_NOTE;
672 + break;
673 + case CPP_DL_FATAL:
674 + dlevel = DK_FATAL;
675 + break;
676 + default:
677 + gcc_unreachable ();
678 + }
679 + if (done_lexing)
680 + location = input_location;
681 + diagnostic_set_info_translated (&diagnostic, msg, ap,
682 + location, dlevel);
683 + if (column_override)
684 + diagnostic_override_column (&diagnostic, column_override);
685 + ret = report_diagnostic (&diagnostic);
686 + if (level == CPP_DL_WARNING_SYSHDR)
687 + warn_system_headers = save_warn_system_headers;
688 + return ret;
689 +}
690 +
691 /* Walk a gimplified function and warn for functions whose return value is
692 ignored and attribute((warn_unused_result)) is set. This is done before
693 inlining, so we don't have to worry about that. */
694 diff -Nur a/gcc/c-common.h b/gcc/c-common.h
695 --- a/gcc/c-common.h 2009-03-30 19:42:27.000000000 +0200
696 +++ b/gcc/c-common.h 2010-01-25 09:50:28.955687088 +0100
697 @@ -658,6 +658,11 @@
698
699 extern int skip_evaluation;
700
701 +/* Whether lexing has been completed, so subsequent preprocessor
702 + errors should use the compiler's input_location. */
703 +
704 +extern bool done_lexing;
705 +
706 /* C types are partitioned into three subsets: object, function, and
707 incomplete types. */
708 #define C_TYPE_OBJECT_P(type) \
709 diff -Nur a/gcc/c-convert.c b/gcc/c-convert.c
710 --- a/gcc/c-convert.c 2009-02-20 16:20:38.000000000 +0100
711 +++ b/gcc/c-convert.c 2010-01-25 09:50:28.955687088 +0100
712 @@ -70,6 +70,7 @@
713 tree e = expr;
714 enum tree_code code = TREE_CODE (type);
715 const char *invalid_conv_diag;
716 + tree ret;
717
718 if (type == error_mark_node
719 || expr == error_mark_node
720 @@ -85,6 +86,9 @@
721
722 if (type == TREE_TYPE (expr))
723 return expr;
724 + ret = targetm.convert_to_type (type, expr);
725 + if (ret)
726 + return ret;
727
728 if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (TREE_TYPE (expr)))
729 return fold_convert (type, expr);
730 diff -Nur a/gcc/c-decl.c b/gcc/c-decl.c
731 --- a/gcc/c-decl.c 2009-02-20 16:20:38.000000000 +0100
732 +++ b/gcc/c-decl.c 2010-01-25 09:50:28.955687088 +0100
733 @@ -3994,6 +3994,7 @@
734 bool bitfield = width != NULL;
735 tree element_type;
736 struct c_arg_info *arg_info = 0;
737 + const char *errmsg;
738
739 if (decl_context == FUNCDEF)
740 funcdef_flag = true, decl_context = NORMAL;
741 @@ -4531,6 +4532,12 @@
742 error ("%qs declared as function returning an array", name);
743 type = integer_type_node;
744 }
745 + errmsg = targetm.invalid_return_type (type);
746 + if (errmsg)
747 + {
748 + error (errmsg);
749 + type = integer_type_node;
750 + }
751
752 /* Construct the function type and go to the next
753 inner layer of declarator. */
754 @@ -5044,6 +5051,7 @@
755 {
756 tree parm, type, typelt;
757 unsigned int parmno;
758 + const char *errmsg;
759
760 /* If there is a parameter of incomplete type in a definition,
761 this is an error. In a declaration this is valid, and a
762 @@ -5087,6 +5095,14 @@
763 }
764 }
765
766 + errmsg = targetm.invalid_parameter_type (type);
767 + if (errmsg)
768 + {
769 + error (errmsg);
770 + TREE_VALUE (typelt) = error_mark_node;
771 + TREE_TYPE (parm) = error_mark_node;
772 + }
773 +
774 if (DECL_NAME (parm) && TREE_USED (parm))
775 warn_if_shadowing (parm);
776 }
777 @@ -8071,7 +8087,7 @@
778
779 /* Don't waste time on further processing if -fsyntax-only or we've
780 encountered errors. */
781 - if (flag_syntax_only || errorcount || sorrycount || cpp_errors (parse_in))
782 + if (flag_syntax_only || errorcount || sorrycount)
783 return;
784
785 /* Close the external scope. */
786 diff -Nur a/gcc/cfgexpand.c b/gcc/cfgexpand.c
787 --- a/gcc/cfgexpand.c 2009-07-11 21:06:26.000000000 +0200
788 +++ b/gcc/cfgexpand.c 2010-01-25 09:50:28.955687088 +0100
789 @@ -488,7 +488,8 @@
790 {
791 unsigned int align;
792
793 - align = LOCAL_DECL_ALIGNMENT (decl);
794 + align = alignment_for_aligned_arrays (TREE_TYPE (decl),
795 + LOCAL_DECL_ALIGNMENT (decl));
796
797 if (align > MAX_SUPPORTED_STACK_ALIGNMENT)
798 align = MAX_SUPPORTED_STACK_ALIGNMENT;
799 diff -Nur a/gcc/cgraph.c b/gcc/cgraph.c
800 --- a/gcc/cgraph.c 2008-11-16 23:31:58.000000000 +0100
801 +++ b/gcc/cgraph.c 2010-01-25 09:50:28.955687088 +0100
802 @@ -475,9 +475,11 @@
803 if (DECL_CONTEXT (decl) && TREE_CODE (DECL_CONTEXT (decl)) == FUNCTION_DECL)
804 {
805 node->origin = cgraph_node (DECL_CONTEXT (decl));
806 + node->origin->ever_was_nested = 1;
807 node->next_nested = node->origin->nested;
808 node->origin->nested = node;
809 node->master_clone = node;
810 + node->ever_was_nested = 1;
811 }
812 if (assembler_name_hash)
813 {
814 diff -Nur a/gcc/cgraph.h b/gcc/cgraph.h
815 --- a/gcc/cgraph.h 2009-03-23 17:29:33.000000000 +0100
816 +++ b/gcc/cgraph.h 2010-01-25 09:50:28.955687088 +0100
817 @@ -185,6 +185,8 @@
818 unsigned output : 1;
819 /* Set for aliases once they got through assemble_alias. */
820 unsigned alias : 1;
821 + /* Set if the function is a nested function or has nested functions. */
822 + unsigned ever_was_nested : 1;
823
824 /* In non-unit-at-a-time mode the function body of inline candidates is saved
825 into clone before compiling so the function in original form can be
826 diff -Nur a/gcc/common.opt b/gcc/common.opt
827 --- a/gcc/common.opt 2009-03-28 18:28:45.000000000 +0100
828 +++ b/gcc/common.opt 2010-01-25 09:50:28.955687088 +0100
829 @@ -153,6 +153,10 @@
830 Common Var(warn_padded) Warning
831 Warn when padding is required to align structure members
832
833 +Wpoison-system-directories
834 +Common Var(flag_poison_system_directories) Init(1)
835 +Warn for -I and -L options using system directories if cross compiling
836 +
837 Wshadow
838 Common Var(warn_shadow) Warning
839 Warn when one local variable shadows another
840 @@ -270,6 +274,12 @@
841 fabi-version=
842 Common Joined UInteger Var(flag_abi_version) Init(2)
843
844 +falign-arrays
845 +Target Report Var(flag_align_arrays)
846 +Set the minimum alignment for array variables to be the largest power
847 +of two less than or equal to their total storage size, or the biggest
848 +alignment used on the machine, whichever is smaller.
849 +
850 falign-functions
851 Common Report Var(align_functions,0) Optimization UInteger
852 Align the start of functions
853 @@ -467,6 +477,10 @@
854 Common Report Var(flag_early_inlining) Init(1) Optimization
855 Perform early inlining
856
857 +feglibc=
858 +Common Report Joined Undocumented
859 +EGLIBC configuration specifier, serves multilib purposes.
860 +
861 feliminate-dwarf2-dups
862 Common Report Var(flag_eliminate_dwarf2_dups)
863 Perform DWARF2 duplicate elimination
864 @@ -895,6 +909,10 @@
865 Common Report Var(flag_profile_values)
866 Insert code to profile values of expressions
867
868 +fpromote-loop-indices
869 +Common Report Var(flag_promote_loop_indices) Optimization
870 +Promote loop indices to word-sized indices when safe
871 +
872 frandom-seed
873 Common
874
875 @@ -1227,6 +1245,15 @@
876 Common Report Var(flag_tree_pre) Optimization
877 Enable SSA-PRE optimization on trees
878
879 +ftree-pre-partial-partial
880 +Common Report Var(flag_tree_pre_partial_partial) Optimization
881 +In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
882 +
883 +ftree-pre-partial-partial-obliviously
884 +Common Report Var(flag_tree_pre_partial_partial_obliviously) Optimization
885 +In SSA-PRE optimization on trees, enable partial-partial redundancy
886 +elimination without regard for the cost of the inserted phi nodes.
887 +
888 ftree-reassoc
889 Common Report Var(flag_tree_reassoc) Init(1) Optimization
890 Enable reassociation on tree level
891 diff -Nur a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
892 --- a/gcc/config/arm/arm.c 2009-06-02 09:18:16.000000000 +0200
893 +++ b/gcc/config/arm/arm.c 2010-01-25 09:50:28.975687047 +0100
894 @@ -43,6 +43,7 @@
895 #include "optabs.h"
896 #include "toplev.h"
897 #include "recog.h"
898 +#include "cgraph.h"
899 #include "ggc.h"
900 #include "except.h"
901 #include "c-pragma.h"
902 @@ -53,6 +54,8 @@
903 #include "debug.h"
904 #include "langhooks.h"
905 #include "df.h"
906 +#include "intl.h"
907 +#include "params.h"
908
909 /* Forward definitions of types. */
910 typedef struct minipool_node Mnode;
911 @@ -110,6 +113,7 @@
912 static unsigned long arm_isr_value (tree);
913 static unsigned long arm_compute_func_type (void);
914 static tree arm_handle_fndecl_attribute (tree *, tree, tree, int, bool *);
915 +static tree arm_handle_pcs_attribute (tree *, tree, tree, int, bool *);
916 static tree arm_handle_isr_attribute (tree *, tree, tree, int, bool *);
917 #if TARGET_DLLIMPORT_DECL_ATTRIBUTES
918 static tree arm_handle_notshared_attribute (tree *, tree, tree, int, bool *);
919 @@ -123,6 +127,10 @@
920 static int count_insns_for_constant (HOST_WIDE_INT, int);
921 static int arm_get_strip_length (int);
922 static bool arm_function_ok_for_sibcall (tree, tree);
923 +static bool arm_return_in_memory (const_tree, const_tree);
924 +static rtx arm_function_value (const_tree, const_tree, bool);
925 +static rtx arm_libcall_value (enum machine_mode, rtx);
926 +
927 static void arm_internal_label (FILE *, const char *, unsigned long);
928 static void arm_output_mi_thunk (FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT,
929 tree);
930 @@ -148,6 +156,9 @@
931 static rtx emit_set_insn (rtx, rtx);
932 static int arm_arg_partial_bytes (CUMULATIVE_ARGS *, enum machine_mode,
933 tree, bool);
934 +static rtx aapcs_allocate_return_reg (enum machine_mode, const_tree,
935 + const_tree);
936 +static int aapcs_select_return_coproc (const_tree, const_tree);
937
938 #ifdef OBJECT_FORMAT_ELF
939 static void arm_elf_asm_constructor (rtx, int) ATTRIBUTE_UNUSED;
940 @@ -175,6 +186,7 @@
941 static bool arm_output_ttype (rtx);
942 #endif
943 static void arm_dwarf_handle_frame_unspec (const char *, rtx, int);
944 +static rtx arm_dwarf_register_span(rtx);
945
946 static tree arm_cxx_guard_type (void);
947 static bool arm_cxx_guard_mask_bit (void);
948 @@ -197,6 +209,15 @@
949 static int arm_issue_rate (void);
950 static void arm_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
951 static bool arm_allocate_stack_slots_for_args (void);
952 +static bool arm_warn_func_result (void);
953 +static int arm_multipass_dfa_lookahead (void);
954 +static const char *arm_invalid_parameter_type (const_tree t);
955 +static const char *arm_invalid_return_type (const_tree t);
956 +static tree arm_promoted_type (const_tree t);
957 +static tree arm_convert_to_type (tree type, tree expr);
958 +static bool arm_scalar_mode_supported_p (enum machine_mode);
959 +static int arm_vector_min_alignment (const_tree type);
960 +static bool arm_vector_always_misalign(const_tree);
961
962 \f
963 /* Initialize the GCC target structure. */
964 @@ -256,6 +277,12 @@
965 #undef TARGET_FUNCTION_OK_FOR_SIBCALL
966 #define TARGET_FUNCTION_OK_FOR_SIBCALL arm_function_ok_for_sibcall
967
968 +#undef TARGET_FUNCTION_VALUE
969 +#define TARGET_FUNCTION_VALUE arm_function_value
970 +
971 +#undef TARGET_LIBCALL_VALUE
972 +#define TARGET_LIBCALL_VALUE arm_libcall_value
973 +
974 #undef TARGET_ASM_OUTPUT_MI_THUNK
975 #define TARGET_ASM_OUTPUT_MI_THUNK arm_output_mi_thunk
976 #undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
977 @@ -299,6 +326,9 @@
978 #undef TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS
979 #define TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS arm_allocate_stack_slots_for_args
980
981 +#undef TARGET_WARN_FUNC_RESULT
982 +#define TARGET_WARN_FUNC_RESULT arm_warn_func_result
983 +
984 #undef TARGET_DEFAULT_SHORT_ENUMS
985 #define TARGET_DEFAULT_SHORT_ENUMS arm_default_short_enums
986
987 @@ -353,6 +383,9 @@
988 #undef TARGET_ASM_TTYPE
989 #define TARGET_ASM_TTYPE arm_output_ttype
990
991 +#undef TARGET_CXX_TTYPE_REF_ENCODE
992 +#define TARGET_CXX_TTYPE_REF_ENCODE hook_cxx_ttype_ref_in_bit0
993 +
994 #undef TARGET_ARM_EABI_UNWINDER
995 #define TARGET_ARM_EABI_UNWINDER true
996 #endif /* TARGET_UNWIND_INFO */
997 @@ -360,6 +393,9 @@
998 #undef TARGET_DWARF_HANDLE_FRAME_UNSPEC
999 #define TARGET_DWARF_HANDLE_FRAME_UNSPEC arm_dwarf_handle_frame_unspec
1000
1001 +#undef TARGET_DWARF_REGISTER_SPAN
1002 +#define TARGET_DWARF_REGISTER_SPAN arm_dwarf_register_span
1003 +
1004 #undef TARGET_CANNOT_COPY_INSN_P
1005 #define TARGET_CANNOT_COPY_INSN_P arm_cannot_copy_insn_p
1006
1007 @@ -398,6 +434,30 @@
1008 #define TARGET_ASM_OUTPUT_DWARF_DTPREL arm_output_dwarf_dtprel
1009 #endif
1010
1011 +#undef TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD
1012 +#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD arm_multipass_dfa_lookahead
1013 +
1014 +#undef TARGET_INVALID_PARAMETER_TYPE
1015 +#define TARGET_INVALID_PARAMETER_TYPE arm_invalid_parameter_type
1016 +
1017 +#undef TARGET_INVALID_RETURN_TYPE
1018 +#define TARGET_INVALID_RETURN_TYPE arm_invalid_return_type
1019 +
1020 +#undef TARGET_PROMOTED_TYPE
1021 +#define TARGET_PROMOTED_TYPE arm_promoted_type
1022 +
1023 +#undef TARGET_CONVERT_TO_TYPE
1024 +#define TARGET_CONVERT_TO_TYPE arm_convert_to_type
1025 +
1026 +#undef TARGET_SCALAR_MODE_SUPPORTED_P
1027 +#define TARGET_SCALAR_MODE_SUPPORTED_P arm_scalar_mode_supported_p
1028 +
1029 +#undef TARGET_VECTOR_MIN_ALIGNMENT
1030 +#define TARGET_VECTOR_MIN_ALIGNMENT arm_vector_min_alignment
1031 +
1032 +#undef TARGET_VECTOR_ALWAYS_MISALIGN
1033 +#define TARGET_VECTOR_ALWAYS_MISALIGN arm_vector_always_misalign
1034 +
1035 struct gcc_target targetm = TARGET_INITIALIZER;
1036 \f
1037 /* Obstack for minipool constant handling. */
1038 @@ -423,18 +483,18 @@
1039 /* The default processor used if not overridden by commandline. */
1040 static enum processor_type arm_default_cpu = arm_none;
1041
1042 -/* Which floating point model to use. */
1043 -enum arm_fp_model arm_fp_model;
1044 -
1045 -/* Which floating point hardware is available. */
1046 -enum fputype arm_fpu_arch;
1047 -
1048 /* Which floating point hardware to schedule for. */
1049 -enum fputype arm_fpu_tune;
1050 +int arm_fpu_attr;
1051 +
1052 +/* Which floating popint hardware to use. */
1053 +const struct arm_fpu_desc *arm_fpu_desc;
1054
1055 /* Whether to use floating point hardware. */
1056 enum float_abi_type arm_float_abi;
1057
1058 +/* Which __fp16 format to use. */
1059 +enum arm_fp16_format_type arm_fp16_format;
1060 +
1061 /* Which ABI to use. */
1062 enum arm_abi_type arm_abi;
1063
1064 @@ -473,9 +533,19 @@
1065 #define FL_DIV (1 << 18) /* Hardware divide. */
1066 #define FL_VFPV3 (1 << 19) /* Vector Floating Point V3. */
1067 #define FL_NEON (1 << 20) /* Neon instructions. */
1068 +#define FL_MARVELL_F (1 << 21) /* Marvell Feroceon. */
1069 +#define FL_ARCH7EM (1 << 22) /* Instructions present in ARMv7E-M. */
1070
1071 #define FL_IWMMXT (1 << 29) /* XScale v2 or "Intel Wireless MMX technology". */
1072
1073 +/* Some flags are ignored when comparing -mcpu and -march:
1074 + FL_MARVELL_F so that -mcpu=marvell-f -march=v5te works.
1075 + FL_LDSCHED and FL_WBUF only effect tuning,
1076 + FL_CO_PROC, FL_VFPV2, FL_VFPV3 and FL_NEON because FP
1077 + coprocessors are handled separately. */
1078 +#define FL_COMPAT (FL_MARVELL_F | FL_LDSCHED | FL_WBUF | FL_CO_PROC | \
1079 + FL_VFPV2 | FL_VFPV3 | FL_NEON)
1080 +
1081 #define FL_FOR_ARCH2 FL_NOTM
1082 #define FL_FOR_ARCH3 (FL_FOR_ARCH2 | FL_MODE32)
1083 #define FL_FOR_ARCH3M (FL_FOR_ARCH3 | FL_ARCH3M)
1084 @@ -497,6 +567,7 @@
1085 #define FL_FOR_ARCH7A (FL_FOR_ARCH7 | FL_NOTM)
1086 #define FL_FOR_ARCH7R (FL_FOR_ARCH7A | FL_DIV)
1087 #define FL_FOR_ARCH7M (FL_FOR_ARCH7 | FL_DIV)
1088 +#define FL_FOR_ARCH7EM (FL_FOR_ARCH7M | FL_ARCH7EM)
1089
1090 /* The bits in this mask specify which
1091 instructions we are allowed to generate. */
1092 @@ -533,6 +604,9 @@
1093 /* Nonzero if instructions not present in the 'M' profile can be used. */
1094 int arm_arch_notm = 0;
1095
1096 +/* Nonzero if instructions present in ARMv7E-M can be used. */
1097 +int arm_arch7em = 0;
1098 +
1099 /* Nonzero if this chip can benefit from load scheduling. */
1100 int arm_ld_sched = 0;
1101
1102 @@ -551,6 +625,9 @@
1103 /* Nonzero if tuning for XScale */
1104 int arm_tune_xscale = 0;
1105
1106 +/* Nonzero if tuning for Marvell Feroceon. */
1107 +int arm_tune_marvell_f = 0;
1108 +
1109 /* Nonzero if we want to tune for stores that access the write-buffer.
1110 This typically means an ARM6 or ARM7 with MMU or MPU. */
1111 int arm_tune_wbuf = 0;
1112 @@ -561,6 +638,9 @@
1113 /* Nonzero if generating Thumb instructions. */
1114 int thumb_code = 0;
1115
1116 +/* Nonzero if generating code for Janus2. */
1117 +int janus2_code = 0;
1118 +
1119 /* Nonzero if we should define __THUMB_INTERWORK__ in the
1120 preprocessor.
1121 XXX This is a bit of a hack, it's intended to help work around
1122 @@ -593,6 +673,8 @@
1123 /* The maximum number of insns to be used when loading a constant. */
1124 static int arm_constant_limit = 3;
1125
1126 +static enum arm_pcs arm_pcs_default;
1127 +
1128 /* For an explanation of these variables, see final_prescan_insn below. */
1129 int arm_ccfsm_state;
1130 /* arm_current_cc is also used for Thumb-2 cond_exec blocks. */
1131 @@ -673,9 +755,11 @@
1132 {"armv7-a", cortexa8, "7A", FL_CO_PROC | FL_FOR_ARCH7A, NULL},
1133 {"armv7-r", cortexr4, "7R", FL_CO_PROC | FL_FOR_ARCH7R, NULL},
1134 {"armv7-m", cortexm3, "7M", FL_CO_PROC | FL_FOR_ARCH7M, NULL},
1135 + {"armv7e-m", cortexm3, "7EM", FL_CO_PROC | FL_FOR_ARCH7EM, NULL},
1136 {"ep9312", ep9312, "4T", FL_LDSCHED | FL_CIRRUS | FL_FOR_ARCH4, NULL},
1137 {"iwmmxt", iwmmxt, "5TE", FL_LDSCHED | FL_STRONG | FL_FOR_ARCH5TE | FL_XSCALE | FL_IWMMXT , NULL},
1138 {"iwmmxt2", iwmmxt2, "5TE", FL_LDSCHED | FL_STRONG | FL_FOR_ARCH5TE | FL_XSCALE | FL_IWMMXT , NULL},
1139 + {"marvell-f", marvell_f, "5TE", FL_CO_PROC | FL_FOR_ARCH5TE | FL_MARVELL_F, NULL},
1140 {NULL, arm_none, NULL, 0 , NULL}
1141 };
1142
1143 @@ -705,49 +789,34 @@
1144
1145 /* The name of the preprocessor macro to define for this architecture. */
1146
1147 -char arm_arch_name[] = "__ARM_ARCH_0UNK__";
1148 -
1149 -struct fpu_desc
1150 -{
1151 - const char * name;
1152 - enum fputype fpu;
1153 -};
1154 -
1155 +#define ARM_ARCH_NAME_SIZE 25
1156 +char arm_arch_name[ARM_ARCH_NAME_SIZE] = "__ARM_ARCH_0UNK__";
1157
1158 /* Available values for -mfpu=. */
1159
1160 -static const struct fpu_desc all_fpus[] =
1161 +static const struct arm_fpu_desc all_fpus[] =
1162 {
1163 - {"fpa", FPUTYPE_FPA},
1164 - {"fpe2", FPUTYPE_FPA_EMU2},
1165 - {"fpe3", FPUTYPE_FPA_EMU2},
1166 - {"maverick", FPUTYPE_MAVERICK},
1167 - {"vfp", FPUTYPE_VFP},
1168 - {"vfp3", FPUTYPE_VFP3},
1169 - {"vfpv3", FPUTYPE_VFP3},
1170 - {"vfpv3-d16", FPUTYPE_VFP3D16},
1171 - {"neon", FPUTYPE_NEON}
1172 + {"fpa", ARM_FP_MODEL_FPA, 0, 0, false, false},
1173 + {"fpe2", ARM_FP_MODEL_FPA, 2, 0, false, false},
1174 + {"fpe3", ARM_FP_MODEL_FPA, 3, 0, false, false},
1175 + {"maverick", ARM_FP_MODEL_MAVERICK, 0, 0, false, false},
1176 + {"vfp", ARM_FP_MODEL_VFP, 2, VFP_REG_D16, false, false},
1177 + {"vfpv3", ARM_FP_MODEL_VFP, 3, VFP_REG_D32, false, false},
1178 + {"vfpv3-fp16", ARM_FP_MODEL_VFP, 3, VFP_REG_D32, false, true },
1179 + {"vfpv3-d16", ARM_FP_MODEL_VFP, 3, VFP_REG_D16, false, false},
1180 + {"vfpv3xd", ARM_FP_MODEL_VFP, 3, VFP_REG_SINGLE, false, false},
1181 + {"vfpv3xd-fp16", ARM_FP_MODEL_VFP, 3, VFP_REG_SINGLE, false, true },
1182 + {"vfpv3-d16-fp16", ARM_FP_MODEL_VFP, 3, VFP_REG_D16, false, true },
1183 + {"neon", ARM_FP_MODEL_VFP, 3, VFP_REG_D32, true , false},
1184 + {"neon-fp16", ARM_FP_MODEL_VFP, 3, VFP_REG_D32, true , true },
1185 + {"vfpv4", ARM_FP_MODEL_VFP, 4, VFP_REG_D32, false, true },
1186 + {"vfpv4-d16", ARM_FP_MODEL_VFP, 4, VFP_REG_D16, false, true },
1187 + {"fpv4-sp-d16", ARM_FP_MODEL_VFP, 4, VFP_REG_SINGLE, false, true },
1188 + {"neon-vfpv4", ARM_FP_MODEL_VFP, 4, VFP_REG_D32, true , true },
1189 + /* Compatibility aliases. */
1190 + {"vfp3", ARM_FP_MODEL_VFP, 3, VFP_REG_D32, false, false},
1191 };
1192
1193 -
1194 -/* Floating point models used by the different hardware.
1195 - See fputype in arm.h. */
1196 -
1197 -static const enum fputype fp_model_for_fpu[] =
1198 -{
1199 - /* No FP hardware. */
1200 - ARM_FP_MODEL_UNKNOWN, /* FPUTYPE_NONE */
1201 - ARM_FP_MODEL_FPA, /* FPUTYPE_FPA */
1202 - ARM_FP_MODEL_FPA, /* FPUTYPE_FPA_EMU2 */
1203 - ARM_FP_MODEL_FPA, /* FPUTYPE_FPA_EMU3 */
1204 - ARM_FP_MODEL_MAVERICK, /* FPUTYPE_MAVERICK */
1205 - ARM_FP_MODEL_VFP, /* FPUTYPE_VFP */
1206 - ARM_FP_MODEL_VFP, /* FPUTYPE_VFP3D16 */
1207 - ARM_FP_MODEL_VFP, /* FPUTYPE_VFP3 */
1208 - ARM_FP_MODEL_VFP /* FPUTYPE_NEON */
1209 -};
1210 -
1211 -
1212 struct float_abi
1213 {
1214 const char * name;
1215 @@ -765,6 +834,23 @@
1216 };
1217
1218
1219 +struct fp16_format
1220 +{
1221 + const char *name;
1222 + enum arm_fp16_format_type fp16_format_type;
1223 +};
1224 +
1225 +
1226 +/* Available values for -mfp16-format=. */
1227 +
1228 +static const struct fp16_format all_fp16_formats[] =
1229 +{
1230 + {"none", ARM_FP16_FORMAT_NONE},
1231 + {"ieee", ARM_FP16_FORMAT_IEEE},
1232 + {"alternative", ARM_FP16_FORMAT_ALTERNATIVE}
1233 +};
1234 +
1235 +
1236 struct abi_name
1237 {
1238 const char *name;
1239 @@ -922,6 +1008,44 @@
1240 set_optab_libfunc (umod_optab, DImode, NULL);
1241 set_optab_libfunc (smod_optab, SImode, NULL);
1242 set_optab_libfunc (umod_optab, SImode, NULL);
1243 +
1244 + /* Half-precision float operations. The compiler handles all operations
1245 + with NULL libfuncs by converting the SFmode. */
1246 + switch (arm_fp16_format)
1247 + {
1248 + case ARM_FP16_FORMAT_IEEE:
1249 + case ARM_FP16_FORMAT_ALTERNATIVE:
1250 +
1251 + /* Conversions. */
1252 + set_conv_libfunc (trunc_optab, HFmode, SFmode,
1253 + (arm_fp16_format == ARM_FP16_FORMAT_IEEE
1254 + ? "__gnu_f2h_ieee"
1255 + : "__gnu_f2h_alternative"));
1256 + set_conv_libfunc (sext_optab, SFmode, HFmode,
1257 + (arm_fp16_format == ARM_FP16_FORMAT_IEEE
1258 + ? "__gnu_h2f_ieee"
1259 + : "__gnu_h2f_alternative"));
1260 +
1261 + /* Arithmetic. */
1262 + set_optab_libfunc (add_optab, HFmode, NULL);
1263 + set_optab_libfunc (sdiv_optab, HFmode, NULL);
1264 + set_optab_libfunc (smul_optab, HFmode, NULL);
1265 + set_optab_libfunc (neg_optab, HFmode, NULL);
1266 + set_optab_libfunc (sub_optab, HFmode, NULL);
1267 +
1268 + /* Comparisons. */
1269 + set_optab_libfunc (eq_optab, HFmode, NULL);
1270 + set_optab_libfunc (ne_optab, HFmode, NULL);
1271 + set_optab_libfunc (lt_optab, HFmode, NULL);
1272 + set_optab_libfunc (le_optab, HFmode, NULL);
1273 + set_optab_libfunc (ge_optab, HFmode, NULL);
1274 + set_optab_libfunc (gt_optab, HFmode, NULL);
1275 + set_optab_libfunc (unord_optab, HFmode, NULL);
1276 + break;
1277 +
1278 + default:
1279 + break;
1280 + }
1281 }
1282
1283 /* On AAPCS systems, this is the "struct __va_list". */
1284 @@ -1135,6 +1259,7 @@
1285 arm_override_options (void)
1286 {
1287 unsigned i;
1288 + int len;
1289 enum processor_type target_arch_cpu = arm_none;
1290 enum processor_type selected_cpu = arm_none;
1291
1292 @@ -1152,7 +1277,11 @@
1293 {
1294 /* Set the architecture define. */
1295 if (i != ARM_OPT_SET_TUNE)
1296 - sprintf (arm_arch_name, "__ARM_ARCH_%s__", sel->arch);
1297 + {
1298 + len = snprintf (arm_arch_name, ARM_ARCH_NAME_SIZE,
1299 + "__ARM_ARCH_%s__", sel->arch);
1300 + gcc_assert (len < ARM_ARCH_NAME_SIZE);
1301 + }
1302
1303 /* Determine the processor core for which we should
1304 tune code-generation. */
1305 @@ -1178,8 +1307,8 @@
1306 make sure that they are compatible. We only generate
1307 a warning though, and we prefer the CPU over the
1308 architecture. */
1309 - if (insn_flags != 0 && (insn_flags ^ sel->flags))
1310 - warning (0, "switch -mcpu=%s conflicts with -march= switch",
1311 + if (insn_flags != 0 && ((insn_flags ^ sel->flags) & ~FL_COMPAT))
1312 + warning (0, "switch -mcpu=%s conflicts with -march= switch, assuming CPU feature set",
1313 ptr->string);
1314
1315 insn_flags = sel->flags;
1316 @@ -1279,7 +1408,11 @@
1317
1318 insn_flags = sel->flags;
1319 }
1320 - sprintf (arm_arch_name, "__ARM_ARCH_%s__", sel->arch);
1321 +
1322 + len = snprintf (arm_arch_name, ARM_ARCH_NAME_SIZE,
1323 + "__ARM_ARCH_%s__", sel->arch);
1324 + gcc_assert (len < ARM_ARCH_NAME_SIZE);
1325 +
1326 arm_default_cpu = (enum processor_type) (sel - all_cores);
1327 if (arm_tune == arm_none)
1328 arm_tune = arm_default_cpu;
1329 @@ -1289,8 +1422,35 @@
1330 chosen. */
1331 gcc_assert (arm_tune != arm_none);
1332
1333 + if (arm_tune == cortexa8 && optimize >= 3)
1334 + {
1335 + /* These alignments were experimentally determined to improve SPECint
1336 + performance on SPECCPU 2000. */
1337 + if (align_functions <= 0)
1338 + align_functions = 16;
1339 + if (align_jumps <= 0)
1340 + align_jumps = 16;
1341 + }
1342 +
1343 tune_flags = all_cores[(int)arm_tune].flags;
1344
1345 + if (target_fp16_format_name)
1346 + {
1347 + for (i = 0; i < ARRAY_SIZE (all_fp16_formats); i++)
1348 + {
1349 + if (streq (all_fp16_formats[i].name, target_fp16_format_name))
1350 + {
1351 + arm_fp16_format = all_fp16_formats[i].fp16_format_type;
1352 + break;
1353 + }
1354 + }
1355 + if (i == ARRAY_SIZE (all_fp16_formats))
1356 + error ("invalid __fp16 format option: -mfp16-format=%s",
1357 + target_fp16_format_name);
1358 + }
1359 + else
1360 + arm_fp16_format = ARM_FP16_FORMAT_NONE;
1361 +
1362 if (target_abi_name)
1363 {
1364 for (i = 0; i < ARRAY_SIZE (arm_all_abis); i++)
1365 @@ -1383,6 +1543,7 @@
1366 arm_arch6 = (insn_flags & FL_ARCH6) != 0;
1367 arm_arch6k = (insn_flags & FL_ARCH6K) != 0;
1368 arm_arch_notm = (insn_flags & FL_NOTM) != 0;
1369 + arm_arch7em = (insn_flags & FL_ARCH7EM) != 0;
1370 arm_arch_thumb2 = (insn_flags & FL_THUMB2) != 0;
1371 arm_arch_xscale = (insn_flags & FL_XSCALE) != 0;
1372 arm_arch_cirrus = (insn_flags & FL_CIRRUS) != 0;
1373 @@ -1390,12 +1551,25 @@
1374 arm_ld_sched = (tune_flags & FL_LDSCHED) != 0;
1375 arm_tune_strongarm = (tune_flags & FL_STRONG) != 0;
1376 thumb_code = (TARGET_ARM == 0);
1377 + janus2_code = (TARGET_FIX_JANUS != 0);
1378 + if (janus2_code && TARGET_THUMB2)
1379 + error ("janus2 fix is not applicable when targeting a thumb2 core");
1380 arm_tune_wbuf = (tune_flags & FL_WBUF) != 0;
1381 arm_tune_xscale = (tune_flags & FL_XSCALE) != 0;
1382 + arm_tune_marvell_f = (tune_flags & FL_MARVELL_F) != 0;
1383 arm_arch_iwmmxt = (insn_flags & FL_IWMMXT) != 0;
1384 - arm_arch_hwdiv = (insn_flags & FL_DIV) != 0;
1385 arm_tune_cortex_a9 = (arm_tune == cortexa9) != 0;
1386
1387 + /* Hardware integer division is supported by some variants of the ARM
1388 + architecture in Thumb-2 mode. In addition some (but not all) Marvell
1389 + CPUs support their own hardware integer division instructions.
1390 + The assembler will pick the correct encoding. */
1391 + if (TARGET_MARVELL_DIV && (insn_flags & FL_MARVELL_F) == 0)
1392 + error ("-mmarvell-div is only supported when targeting a Marvell core");
1393 +
1394 + arm_arch_hwdiv = (TARGET_ARM && TARGET_MARVELL_DIV)
1395 + || (TARGET_THUMB2 && (insn_flags & FL_DIV) != 0);
1396 +
1397 /* If we are not using the default (ARM mode) section anchor offset
1398 ranges, then set the correct ranges now. */
1399 if (TARGET_THUMB1)
1400 @@ -1434,7 +1608,6 @@
1401 if (TARGET_IWMMXT_ABI && !TARGET_IWMMXT)
1402 error ("iwmmxt abi requires an iwmmxt capable cpu");
1403
1404 - arm_fp_model = ARM_FP_MODEL_UNKNOWN;
1405 if (target_fpu_name == NULL && target_fpe_name != NULL)
1406 {
1407 if (streq (target_fpe_name, "2"))
1408 @@ -1445,46 +1618,52 @@
1409 error ("invalid floating point emulation option: -mfpe=%s",
1410 target_fpe_name);
1411 }
1412 - if (target_fpu_name != NULL)
1413 - {
1414 - /* The user specified a FPU. */
1415 - for (i = 0; i < ARRAY_SIZE (all_fpus); i++)
1416 - {
1417 - if (streq (all_fpus[i].name, target_fpu_name))
1418 - {
1419 - arm_fpu_arch = all_fpus[i].fpu;
1420 - arm_fpu_tune = arm_fpu_arch;
1421 - arm_fp_model = fp_model_for_fpu[arm_fpu_arch];
1422 - break;
1423 - }
1424 - }
1425 - if (arm_fp_model == ARM_FP_MODEL_UNKNOWN)
1426 - error ("invalid floating point option: -mfpu=%s", target_fpu_name);
1427 - }
1428 - else
1429 +
1430 + if (target_fpu_name == NULL)
1431 {
1432 #ifdef FPUTYPE_DEFAULT
1433 - /* Use the default if it is specified for this platform. */
1434 - arm_fpu_arch = FPUTYPE_DEFAULT;
1435 - arm_fpu_tune = FPUTYPE_DEFAULT;
1436 + target_fpu_name = FPUTYPE_DEFAULT;
1437 #else
1438 - /* Pick one based on CPU type. */
1439 - /* ??? Some targets assume FPA is the default.
1440 - if ((insn_flags & FL_VFP) != 0)
1441 - arm_fpu_arch = FPUTYPE_VFP;
1442 - else
1443 - */
1444 if (arm_arch_cirrus)
1445 - arm_fpu_arch = FPUTYPE_MAVERICK;
1446 + target_fpu_name = "maverick";
1447 else
1448 - arm_fpu_arch = FPUTYPE_FPA_EMU2;
1449 + target_fpu_name = "fpe2";
1450 #endif
1451 - if (tune_flags & FL_CO_PROC && arm_fpu_arch == FPUTYPE_FPA_EMU2)
1452 - arm_fpu_tune = FPUTYPE_FPA;
1453 + }
1454 +
1455 + arm_fpu_desc = NULL;
1456 + for (i = 0; i < ARRAY_SIZE (all_fpus); i++)
1457 + {
1458 + if (streq (all_fpus[i].name, target_fpu_name))
1459 + {
1460 + arm_fpu_desc = &all_fpus[i];
1461 + break;
1462 + }
1463 + }
1464 + if (!arm_fpu_desc)
1465 + error ("invalid floating point option: -mfpu=%s", target_fpu_name);
1466 +
1467 + switch (arm_fpu_desc->model)
1468 + {
1469 + case ARM_FP_MODEL_FPA:
1470 + if (arm_fpu_desc->rev == 2)
1471 + arm_fpu_attr = FPU_FPE2;
1472 + else if (arm_fpu_desc->rev == 3)
1473 + arm_fpu_attr = FPU_FPE3;
1474 else
1475 - arm_fpu_tune = arm_fpu_arch;
1476 - arm_fp_model = fp_model_for_fpu[arm_fpu_arch];
1477 - gcc_assert (arm_fp_model != ARM_FP_MODEL_UNKNOWN);
1478 + arm_fpu_attr = FPU_FPA;
1479 + break;
1480 +
1481 + case ARM_FP_MODEL_MAVERICK:
1482 + arm_fpu_attr = FPU_MAVERICK;
1483 + break;
1484 +
1485 + case ARM_FP_MODEL_VFP:
1486 + arm_fpu_attr = FPU_VFP;
1487 + break;
1488 +
1489 + default:
1490 + gcc_unreachable();
1491 }
1492
1493 if (target_float_abi_name != NULL)
1494 @@ -1505,9 +1684,6 @@
1495 else
1496 arm_float_abi = TARGET_DEFAULT_FLOAT_ABI;
1497
1498 - if (arm_float_abi == ARM_FLOAT_ABI_HARD && TARGET_VFP)
1499 - sorry ("-mfloat-abi=hard and VFP");
1500 -
1501 /* FPA and iWMMXt are incompatible because the insn encodings overlap.
1502 VFP and iWMMXt can theoretically coexist, but it's unlikely such silicon
1503 will ever exist. GCC makes no attempt to support this combination. */
1504 @@ -1518,15 +1694,40 @@
1505 if (TARGET_THUMB2 && TARGET_IWMMXT)
1506 sorry ("Thumb-2 iWMMXt");
1507
1508 + /* __fp16 support currently assumes the core has ldrh. */
1509 + if (!arm_arch4 && arm_fp16_format != ARM_FP16_FORMAT_NONE)
1510 + sorry ("__fp16 and no ldrh");
1511 +
1512 /* If soft-float is specified then don't use FPU. */
1513 if (TARGET_SOFT_FLOAT)
1514 - arm_fpu_arch = FPUTYPE_NONE;
1515 + arm_fpu_attr = FPU_NONE;
1516 +
1517 + if (TARGET_AAPCS_BASED)
1518 + {
1519 + if (arm_abi == ARM_ABI_IWMMXT)
1520 + arm_pcs_default = ARM_PCS_AAPCS_IWMMXT;
1521 + else if (arm_float_abi == ARM_FLOAT_ABI_HARD
1522 + && TARGET_HARD_FLOAT
1523 + && TARGET_VFP)
1524 + arm_pcs_default = ARM_PCS_AAPCS_VFP;
1525 + else
1526 + arm_pcs_default = ARM_PCS_AAPCS;
1527 + }
1528 + else
1529 + {
1530 + if (arm_float_abi == ARM_FLOAT_ABI_HARD && TARGET_VFP)
1531 + sorry ("-mfloat-abi=hard and VFP");
1532 +
1533 + if (arm_abi == ARM_ABI_APCS)
1534 + arm_pcs_default = ARM_PCS_APCS;
1535 + else
1536 + arm_pcs_default = ARM_PCS_ATPCS;
1537 + }
1538
1539 /* For arm2/3 there is no need to do any scheduling if there is only
1540 a floating point emulator, or we are doing software floating-point. */
1541 if ((TARGET_SOFT_FLOAT
1542 - || arm_fpu_tune == FPUTYPE_FPA_EMU2
1543 - || arm_fpu_tune == FPUTYPE_FPA_EMU3)
1544 + || (TARGET_FPA && arm_fpu_desc->rev))
1545 && (tune_flags & FL_MODE32) == 0)
1546 flag_schedule_insns = flag_schedule_insns_after_reload = 0;
1547
1548 @@ -1616,8 +1817,7 @@
1549 fix_cm3_ldrd = 0;
1550 }
1551
1552 - /* ??? We might want scheduling for thumb2. */
1553 - if (TARGET_THUMB && flag_schedule_insns)
1554 + if (TARGET_THUMB1 && flag_schedule_insns)
1555 {
1556 /* Don't warn since it's on by default in -O2. */
1557 flag_schedule_insns = 0;
1558 @@ -1653,6 +1853,36 @@
1559
1560 /* Register global variables with the garbage collector. */
1561 arm_add_gc_roots ();
1562 +
1563 + if (low_irq_latency && TARGET_THUMB)
1564 + {
1565 + warning (0,
1566 + "-low-irq-latency has no effect when compiling for the Thumb");
1567 + low_irq_latency = 0;
1568 + }
1569 +
1570 + /* CSL LOCAL */
1571 + /* Loop unrolling can be a substantial win. At -O2, limit to 2x
1572 + unrolling by default to prevent excessive code growth; at -O3,
1573 + limit to 4x unrolling by default. We know we are not optimizing
1574 + for size if this is set (see arm_optimization_options). */
1575 + if (flag_unroll_loops == 2)
1576 + {
1577 + if (optimize == 2)
1578 + {
1579 + flag_unroll_loops = 1;
1580 + if (!PARAM_SET_P (PARAM_MAX_UNROLL_TIMES))
1581 + set_param_value ("max-unroll-times", 2);
1582 + }
1583 + else if (optimize > 2)
1584 + {
1585 + flag_unroll_loops = 1;
1586 + if (!PARAM_SET_P (PARAM_MAX_UNROLL_TIMES))
1587 + set_param_value ("max-unroll-times", 4);
1588 + }
1589 + else
1590 + flag_unroll_loops = 0;
1591 + }
1592 }
1593
1594 static void
1595 @@ -1782,6 +2012,14 @@
1596 return !IS_NAKED (arm_current_func_type ());
1597 }
1598
1599 +static bool
1600 +arm_warn_func_result (void)
1601 +{
1602 + /* Naked functions are implemented entirely in assembly, including the
1603 + return sequence, so suppress warnings about this. */
1604 + return !IS_NAKED (arm_current_func_type ());
1605 +}
1606 +
1607 \f
1608 /* Return 1 if it is possible to return using a single instruction.
1609 If SIBLING is non-null, this is a test for a return before a sibling
1610 @@ -2873,14 +3111,19 @@
1611
1612 /* Define how to find the value returned by a function. */
1613
1614 -rtx
1615 -arm_function_value(const_tree type, const_tree func ATTRIBUTE_UNUSED)
1616 +static rtx
1617 +arm_function_value(const_tree type, const_tree func,
1618 + bool outgoing ATTRIBUTE_UNUSED)
1619 {
1620 enum machine_mode mode;
1621 int unsignedp ATTRIBUTE_UNUSED;
1622 rtx r ATTRIBUTE_UNUSED;
1623
1624 mode = TYPE_MODE (type);
1625 +
1626 + if (TARGET_AAPCS_BASED)
1627 + return aapcs_allocate_return_reg (mode, type, func);
1628 +
1629 /* Promote integer types. */
1630 if (INTEGRAL_TYPE_P (type))
1631 PROMOTE_FUNCTION_MODE (mode, unsignedp, type);
1632 @@ -2897,7 +3140,36 @@
1633 }
1634 }
1635
1636 - return LIBCALL_VALUE(mode);
1637 + return LIBCALL_VALUE (mode);
1638 +}
1639 +
1640 +rtx
1641 +arm_libcall_value (enum machine_mode mode, rtx libcall)
1642 +{
1643 + if (TARGET_AAPCS_BASED && arm_pcs_default != ARM_PCS_AAPCS
1644 + && GET_MODE_CLASS (mode) == MODE_FLOAT)
1645 + {
1646 + /* The following libcalls return their result in integer registers,
1647 + even though they return a floating point value. */
1648 + if (rtx_equal_p (libcall,
1649 + convert_optab_libfunc (sfloat_optab, mode, SImode))
1650 + || rtx_equal_p (libcall,
1651 + convert_optab_libfunc (ufloat_optab, mode, SImode))
1652 + || rtx_equal_p (libcall,
1653 + convert_optab_libfunc (sfloat_optab, mode, DImode))
1654 + || rtx_equal_p (libcall,
1655 + convert_optab_libfunc (ufloat_optab, mode, DImode))
1656 + || rtx_equal_p (libcall,
1657 + convert_optab_libfunc (trunc_optab, HFmode, SFmode))
1658 + || rtx_equal_p (libcall,
1659 + convert_optab_libfunc (sext_optab, SFmode, HFmode)))
1660 + return gen_rtx_REG (mode, ARG_REGISTER(1));
1661 +
1662 + /* XXX There are other libcalls that return in integer registers,
1663 + but I think they are all handled by hard insns. */
1664 + }
1665 +
1666 + return LIBCALL_VALUE (mode);
1667 }
1668
1669 /* Determine the amount of memory needed to store the possible return
1670 @@ -2907,10 +3179,12 @@
1671 {
1672 int size = 16;
1673
1674 - if (TARGET_ARM)
1675 + if (TARGET_32BIT)
1676 {
1677 if (TARGET_HARD_FLOAT_ABI)
1678 {
1679 + if (TARGET_VFP)
1680 + size += 32;
1681 if (TARGET_FPA)
1682 size += 12;
1683 if (TARGET_MAVERICK)
1684 @@ -2923,27 +3197,56 @@
1685 return size;
1686 }
1687
1688 -/* Decide whether a type should be returned in memory (true)
1689 - or in a register (false). This is called as the target hook
1690 - TARGET_RETURN_IN_MEMORY. */
1691 +/* Decide whether TYPE should be returned in memory (true)
1692 + or in a register (false). FNTYPE is the type of the function making
1693 + the call. */
1694 static bool
1695 -arm_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
1696 +arm_return_in_memory (const_tree type, const_tree fntype)
1697 {
1698 HOST_WIDE_INT size;
1699
1700 - size = int_size_in_bytes (type);
1701 + size = int_size_in_bytes (type); /* Negative if not fixed size. */
1702 +
1703 + if (TARGET_AAPCS_BASED)
1704 + {
1705 + /* Simple, non-aggregate types (ie not including vectors and
1706 + complex) are always returned in a register (or registers).
1707 + We don't care about which register here, so we can short-cut
1708 + some of the detail. */
1709 + if (!AGGREGATE_TYPE_P (type)
1710 + && TREE_CODE (type) != VECTOR_TYPE
1711 + && TREE_CODE (type) != COMPLEX_TYPE)
1712 + return false;
1713 +
1714 + /* Any return value that is no larger than one word can be
1715 + returned in r0. */
1716 + if (((unsigned HOST_WIDE_INT) size) <= UNITS_PER_WORD)
1717 + return false;
1718 +
1719 + /* Check any available co-processors to see if they accept the
1720 + type as a register candidate (VFP, for example, can return
1721 + some aggregates in consecutive registers). These aren't
1722 + available if the call is variadic. */
1723 + if (aapcs_select_return_coproc (type, fntype) >= 0)
1724 + return false;
1725 +
1726 + /* Vector values should be returned using ARM registers, not
1727 + memory (unless they're over 16 bytes, which will break since
1728 + we only have four call-clobbered registers to play with). */
1729 + if (TREE_CODE (type) == VECTOR_TYPE)
1730 + return (size < 0 || size > (4 * UNITS_PER_WORD));
1731 +
1732 + /* The rest go in memory. */
1733 + return true;
1734 + }
1735
1736 - /* Vector values should be returned using ARM registers, not memory (unless
1737 - they're over 16 bytes, which will break since we only have four
1738 - call-clobbered registers to play with). */
1739 if (TREE_CODE (type) == VECTOR_TYPE)
1740 return (size < 0 || size > (4 * UNITS_PER_WORD));
1741
1742 if (!AGGREGATE_TYPE_P (type) &&
1743 - !(TARGET_AAPCS_BASED && TREE_CODE (type) == COMPLEX_TYPE))
1744 - /* All simple types are returned in registers.
1745 - For AAPCS, complex types are treated the same as aggregates. */
1746 - return 0;
1747 + (TREE_CODE (type) != VECTOR_TYPE))
1748 + /* All simple types are returned in registers. */
1749 + return false;
1750
1751 if (arm_abi != ARM_ABI_APCS)
1752 {
1753 @@ -2960,7 +3263,7 @@
1754 the aggregate is either huge or of variable size, and in either case
1755 we will want to return it via memory and not in a register. */
1756 if (size < 0 || size > UNITS_PER_WORD)
1757 - return 1;
1758 + return true;
1759
1760 if (TREE_CODE (type) == RECORD_TYPE)
1761 {
1762 @@ -2980,18 +3283,18 @@
1763 continue;
1764
1765 if (field == NULL)
1766 - return 0; /* An empty structure. Allowed by an extension to ANSI C. */
1767 + return false; /* An empty structure. Allowed by an extension to ANSI C. */
1768
1769 /* Check that the first field is valid for returning in a register. */
1770
1771 /* ... Floats are not allowed */
1772 if (FLOAT_TYPE_P (TREE_TYPE (field)))
1773 - return 1;
1774 + return true;
1775
1776 /* ... Aggregates that are not themselves valid for returning in
1777 a register are not allowed. */
1778 if (arm_return_in_memory (TREE_TYPE (field), NULL_TREE))
1779 - return 1;
1780 + return true;
1781
1782 /* Now check the remaining fields, if any. Only bitfields are allowed,
1783 since they are not addressable. */
1784 @@ -3003,10 +3306,10 @@
1785 continue;
1786
1787 if (!DECL_BIT_FIELD_TYPE (field))
1788 - return 1;
1789 + return true;
1790 }
1791
1792 - return 0;
1793 + return false;
1794 }
1795
1796 if (TREE_CODE (type) == UNION_TYPE)
1797 @@ -3023,18 +3326,18 @@
1798 continue;
1799
1800 if (FLOAT_TYPE_P (TREE_TYPE (field)))
1801 - return 1;
1802 + return true;
1803
1804 if (arm_return_in_memory (TREE_TYPE (field), NULL_TREE))
1805 - return 1;
1806 + return true;
1807 }
1808
1809 - return 0;
1810 + return false;
1811 }
1812 #endif /* not ARM_WINCE */
1813
1814 /* Return all other types in memory. */
1815 - return 1;
1816 + return true;
1817 }
1818
1819 /* Indicate whether or not words of a double are in big-endian order. */
1820 @@ -3059,14 +3362,780 @@
1821 return 1;
1822 }
1823
1824 +const struct pcs_attribute_arg
1825 +{
1826 + const char *arg;
1827 + enum arm_pcs value;
1828 +} pcs_attribute_args[] =
1829 + {
1830 + {"aapcs", ARM_PCS_AAPCS},
1831 + {"aapcs-vfp", ARM_PCS_AAPCS_VFP},
1832 + {"aapcs-iwmmxt", ARM_PCS_AAPCS_IWMMXT},
1833 + {"atpcs", ARM_PCS_ATPCS},
1834 + {"apcs", ARM_PCS_APCS},
1835 + {NULL, ARM_PCS_UNKNOWN}
1836 + };
1837 +
1838 +static enum arm_pcs
1839 +arm_pcs_from_attribute (tree attr)
1840 +{
1841 + const struct pcs_attribute_arg *ptr;
1842 + const char *arg;
1843 +
1844 + /* Get the value of the argument. */
1845 + if (TREE_VALUE (attr) == NULL_TREE
1846 + || TREE_CODE (TREE_VALUE (attr)) != STRING_CST)
1847 + return ARM_PCS_UNKNOWN;
1848 +
1849 + arg = TREE_STRING_POINTER (TREE_VALUE (attr));
1850 +
1851 + /* Check it against the list of known arguments. */
1852 + for (ptr = pcs_attribute_args; ptr->arg != NULL; ptr++)
1853 + if (streq (arg, ptr->arg))
1854 + return ptr->value;
1855 +
1856 + /* An unrecognized interrupt type. */
1857 + return ARM_PCS_UNKNOWN;
1858 +}
1859 +
1860 +/* Get the PCS variant to use for this call. TYPE is the function's type
1861 + specification, DECL is the specific declartion. DECL may be null if
1862 + the call could be indirect or if this is a library call. */
1863 +static enum arm_pcs
1864 +arm_get_pcs_model (const_tree type, const_tree decl)
1865 +{
1866 + bool user_convention = false;
1867 + enum arm_pcs user_pcs = arm_pcs_default;
1868 + tree attr;
1869 +
1870 + gcc_assert (type);
1871 +
1872 + attr = lookup_attribute ("pcs", TYPE_ATTRIBUTES (type));
1873 + if (attr)
1874 + {
1875 + user_pcs = arm_pcs_from_attribute (TREE_VALUE (attr));
1876 + user_convention = true;
1877 + }
1878 +
1879 + if (TARGET_AAPCS_BASED)
1880 + {
1881 + /* Detect varargs functions. These always use the base rules
1882 + (no argument is ever a candidate for a co-processor
1883 + register). */
1884 + bool base_rules = (TYPE_ARG_TYPES (type) != 0
1885 + && (TREE_VALUE (tree_last (TYPE_ARG_TYPES (type)))
1886 + != void_type_node));
1887 +
1888 + if (user_convention)
1889 + {
1890 + if (user_pcs > ARM_PCS_AAPCS_LOCAL)
1891 + sorry ("Non-AAPCS derived PCS variant");
1892 + else if (base_rules && user_pcs != ARM_PCS_AAPCS)
1893 + error ("Variadic functions must use the base AAPCS variant");
1894 + }
1895 +
1896 + if (base_rules)
1897 + return ARM_PCS_AAPCS;
1898 + else if (user_convention)
1899 + return user_pcs;
1900 + else if (decl && flag_unit_at_a_time)
1901 + {
1902 + /* Local functions never leak outside this compilation unit,
1903 + so we are free to use whatever conventions are
1904 + appropriate. */
1905 + /* FIXME: remove CONST_CAST_TREE when cgraph is constified. */
1906 + struct cgraph_local_info *i = cgraph_local_info (CONST_CAST_TREE(decl));
1907 + if (i && i->local)
1908 + return ARM_PCS_AAPCS_LOCAL;
1909 + }
1910 + }
1911 + else if (user_convention && user_pcs != arm_pcs_default)
1912 + sorry ("PCS variant");
1913 +
1914 + /* For everything else we use the target's default. */
1915 + return arm_pcs_default;
1916 +}
1917 +
1918 +
1919 +static void
1920 +aapcs_vfp_cum_init (CUMULATIVE_ARGS *pcum ATTRIBUTE_UNUSED,
1921 + const_tree fntype ATTRIBUTE_UNUSED,
1922 + rtx libcall ATTRIBUTE_UNUSED,
1923 + const_tree fndecl ATTRIBUTE_UNUSED)
1924 +{
1925 + /* Record the unallocated VFP registers. */
1926 + pcum->aapcs_vfp_regs_free = (1 << NUM_VFP_ARG_REGS) - 1;
1927 + pcum->aapcs_vfp_reg_alloc = 0;
1928 +}
1929 +
1930 +/* Walk down the type tree of TYPE counting consecutive base elements.
1931 + If *MODEP is VOIDmode, then set it to the first valid floating point
1932 + type. If a non-floating point type is found, or if a floating point
1933 + type that doesn't match a non-VOIDmode *MODEP is found, then return -1,
1934 + otherwise return the count in the sub-tree. */
1935 +static int
1936 +aapcs_vfp_sub_candidate (const_tree type, enum machine_mode *modep)
1937 +{
1938 + enum machine_mode mode;
1939 + HOST_WIDE_INT size;
1940 +
1941 + switch (TREE_CODE (type))
1942 + {
1943 + case REAL_TYPE:
1944 + mode = TYPE_MODE (type);
1945 + if (mode != DFmode && mode != SFmode)
1946 + return -1;
1947 +
1948 + if (*modep == VOIDmode)
1949 + *modep = mode;
1950 +
1951 + if (*modep == mode)
1952 + return 1;
1953 +
1954 + break;
1955 +
1956 + case COMPLEX_TYPE:
1957 + mode = TYPE_MODE (TREE_TYPE (type));
1958 + if (mode != DFmode && mode != SFmode)
1959 + return -1;
1960 +
1961 + if (*modep == VOIDmode)
1962 + *modep = mode;
1963 +
1964 + if (*modep == mode)
1965 + return 2;
1966 +
1967 + break;
1968 +
1969 + case VECTOR_TYPE:
1970 + /* Use V2SImode and V4SImode as representatives of all 64-bit
1971 + and 128-bit vector types, whether or not those modes are
1972 + supported with the present options. */
1973 + size = int_size_in_bytes (type);
1974 + switch (size)
1975 + {
1976 + case 8:
1977 + mode = V2SImode;
1978 + break;
1979 + case 16:
1980 + mode = V4SImode;
1981 + break;
1982 + default:
1983 + return -1;
1984 + }
1985 +
1986 + if (*modep == VOIDmode)
1987 + *modep = mode;
1988 +
1989 + /* Vector modes are considered to be opaque: two vectors are
1990 + equivalent for the purposes of being homogeneous aggregates
1991 + if they are the same size. */
1992 + if (*modep == mode)
1993 + return 1;
1994 +
1995 + break;
1996 +
1997 + case ARRAY_TYPE:
1998 + {
1999 + int count;
2000 + tree index = TYPE_DOMAIN (type);
2001 +
2002 + /* Can't handle incomplete types. */
2003 + if (!COMPLETE_TYPE_P(type))
2004 + return -1;
2005 +
2006 + count = aapcs_vfp_sub_candidate (TREE_TYPE (type), modep);
2007 + if (count == -1
2008 + || !index
2009 + || !TYPE_MAX_VALUE (index)
2010 + || !host_integerp (TYPE_MAX_VALUE (index), 1)
2011 + || !TYPE_MIN_VALUE (index)
2012 + || !host_integerp (TYPE_MIN_VALUE (index), 1)
2013 + || count < 0)
2014 + return -1;
2015 +
2016 + count *= (1 + tree_low_cst (TYPE_MAX_VALUE (index), 1)
2017 + - tree_low_cst (TYPE_MIN_VALUE (index), 1));
2018 +
2019 + /* There must be no padding. */
2020 + if (!host_integerp (TYPE_SIZE (type), 1)
2021 + || (tree_low_cst (TYPE_SIZE (type), 1)
2022 + != count * GET_MODE_BITSIZE (*modep)))
2023 + return -1;
2024 +
2025 + return count;
2026 + }
2027 +
2028 + case RECORD_TYPE:
2029 + {
2030 + int count = 0;
2031 + int sub_count;
2032 + tree field;
2033 +
2034 + /* Can't handle incomplete types. */
2035 + if (!COMPLETE_TYPE_P(type))
2036 + return -1;
2037 +
2038 + for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
2039 + {
2040 + if (TREE_CODE (field) != FIELD_DECL)
2041 + continue;
2042 +
2043 + sub_count = aapcs_vfp_sub_candidate (TREE_TYPE (field), modep);
2044 + if (sub_count < 0)
2045 + return -1;
2046 + count += sub_count;
2047 + }
2048 +
2049 + /* There must be no padding. */
2050 + if (!host_integerp (TYPE_SIZE (type), 1)
2051 + || (tree_low_cst (TYPE_SIZE (type), 1)
2052 + != count * GET_MODE_BITSIZE (*modep)))
2053 + return -1;
2054 +
2055 + return count;
2056 + }
2057 +
2058 + case UNION_TYPE:
2059 + case QUAL_UNION_TYPE:
2060 + {
2061 + /* These aren't very interesting except in a degenerate case. */
2062 + int count = 0;
2063 + int sub_count;
2064 + tree field;
2065 +
2066 + /* Can't handle incomplete types. */
2067 + if (!COMPLETE_TYPE_P(type))
2068 + return -1;
2069 +
2070 + for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
2071 + {
2072 + if (TREE_CODE (field) != FIELD_DECL)
2073 + continue;
2074 +
2075 + sub_count = aapcs_vfp_sub_candidate (TREE_TYPE (field), modep);
2076 + if (sub_count < 0)
2077 + return -1;
2078 + count = count > sub_count ? count : sub_count;
2079 + }
2080 +
2081 + /* There must be no padding. */
2082 + if (!host_integerp (TYPE_SIZE (type), 1)
2083 + || (tree_low_cst (TYPE_SIZE (type), 1)
2084 + != count * GET_MODE_BITSIZE (*modep)))
2085 + return -1;
2086 +
2087 + return count;
2088 + }
2089 +
2090 + default:
2091 + break;
2092 + }
2093 +
2094 + return -1;
2095 +}
2096 +
2097 +/* Return true if PCS_VARIANT should use VFP registers. */
2098 +static bool
2099 +use_vfp_abi (enum arm_pcs pcs_variant, bool is_double)
2100 +{
2101 + if (pcs_variant == ARM_PCS_AAPCS_VFP)
2102 + return true;
2103 +
2104 + if (pcs_variant != ARM_PCS_AAPCS_LOCAL)
2105 + return false;
2106 +
2107 + return (TARGET_32BIT && TARGET_VFP && TARGET_HARD_FLOAT &&
2108 + (TARGET_VFP_DOUBLE || !is_double));
2109 +}
2110 +
2111 +static bool
2112 +aapcs_vfp_is_call_or_return_candidate (enum arm_pcs pcs_variant,
2113 + enum machine_mode mode, const_tree type,
2114 + int *base_mode, int *count)
2115 +{
2116 + enum machine_mode new_mode = VOIDmode;
2117 +
2118 + if (GET_MODE_CLASS (mode) == MODE_FLOAT
2119 + || GET_MODE_CLASS (mode) == MODE_VECTOR_INT
2120 + || GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT)
2121 + {
2122 + *count = 1;
2123 + new_mode = mode;
2124 + }
2125 + else if (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT)
2126 + {
2127 + *count = 2;
2128 + new_mode = (mode == DCmode ? DFmode : SFmode);
2129 + }
2130 + else if (type && (mode == BLKmode || TREE_CODE (type) == VECTOR_TYPE))
2131 + {
2132 + int ag_count = aapcs_vfp_sub_candidate (type, &new_mode);
2133 +
2134 + if (ag_count > 0 && ag_count <= 4)
2135 + *count = ag_count;
2136 + else
2137 + return false;
2138 + }
2139 + else
2140 + return false;
2141 +
2142 +
2143 + if (!use_vfp_abi (pcs_variant, ARM_NUM_REGS (new_mode) > 1))
2144 + return false;
2145 +
2146 + *base_mode = new_mode;
2147 + return true;
2148 +}
2149 +
2150 +static bool
2151 +aapcs_vfp_is_return_candidate (enum arm_pcs pcs_variant,
2152 + enum machine_mode mode, const_tree type)
2153 +{
2154 + int count ATTRIBUTE_UNUSED;
2155 + int ag_mode ATTRIBUTE_UNUSED;
2156 +
2157 + if (!use_vfp_abi (pcs_variant, false))
2158 + return false;
2159 + return aapcs_vfp_is_call_or_return_candidate (pcs_variant, mode, type,
2160 + &ag_mode, &count);
2161 +}
2162 +
2163 +static bool
2164 +aapcs_vfp_is_call_candidate (CUMULATIVE_ARGS *pcum, enum machine_mode mode,
2165 + const_tree type)
2166 +{
2167 + if (!use_vfp_abi (pcum->pcs_variant, false))
2168 + return false;
2169 +
2170 + return aapcs_vfp_is_call_or_return_candidate (pcum->pcs_variant, mode, type,
2171 + &pcum->aapcs_vfp_rmode,
2172 + &pcum->aapcs_vfp_rcount);
2173 +}
2174 +
2175 +static bool
2176 +aapcs_vfp_allocate (CUMULATIVE_ARGS *pcum, enum machine_mode mode,
2177 + const_tree type ATTRIBUTE_UNUSED)
2178 +{
2179 + int shift = GET_MODE_SIZE (pcum->aapcs_vfp_rmode) / GET_MODE_SIZE (SFmode);
2180 + unsigned mask = (1 << (shift * pcum->aapcs_vfp_rcount)) - 1;
2181 + int regno;
2182 +
2183 + for (regno = 0; regno < NUM_VFP_ARG_REGS; regno += shift)
2184 + if (((pcum->aapcs_vfp_regs_free >> regno) & mask) == mask)
2185 + {
2186 + pcum->aapcs_vfp_reg_alloc = mask << regno;
2187 + if (mode == BLKmode || (mode == TImode && !TARGET_NEON))
2188 + {
2189 + int i;
2190 + int rcount = pcum->aapcs_vfp_rcount;
2191 + int rshift = shift;
2192 + enum machine_mode rmode = pcum->aapcs_vfp_rmode;
2193 + rtx par;
2194 + if (!TARGET_NEON)
2195 + {
2196 + /* Avoid using unsupported vector modes. */
2197 + if (rmode == V2SImode)
2198 + rmode = DImode;
2199 + else if (rmode == V4SImode)
2200 + {
2201 + rmode = DImode;
2202 + rcount *= 2;
2203 + rshift /= 2;
2204 + }
2205 + }
2206 + par = gen_rtx_PARALLEL (mode, rtvec_alloc (rcount));
2207 + for (i = 0; i < rcount; i++)
2208 + {
2209 + rtx tmp = gen_rtx_REG (rmode,
2210 + FIRST_VFP_REGNUM + regno + i * rshift);
2211 + tmp = gen_rtx_EXPR_LIST
2212 + (VOIDmode, tmp,
2213 + GEN_INT (i * GET_MODE_SIZE (rmode)));
2214 + XVECEXP (par, 0, i) = tmp;
2215 + }
2216 +
2217 + pcum->aapcs_reg = par;
2218 + }
2219 + else
2220 + pcum->aapcs_reg = gen_rtx_REG (mode, FIRST_VFP_REGNUM + regno);
2221 + return true;
2222 + }
2223 + return false;
2224 +}
2225 +
2226 +static rtx
2227 +aapcs_vfp_allocate_return_reg (enum arm_pcs pcs_variant ATTRIBUTE_UNUSED,
2228 + enum machine_mode mode,
2229 + const_tree type ATTRIBUTE_UNUSED)
2230 +{
2231 + if (!use_vfp_abi (pcs_variant, false))
2232 + return false;
2233 +
2234 + if (mode == BLKmode || (mode == TImode && !TARGET_NEON))
2235 + {
2236 + int count;
2237 + int ag_mode;
2238 + int i;
2239 + rtx par;
2240 + int shift;
2241 +
2242 + aapcs_vfp_is_call_or_return_candidate (pcs_variant, mode, type,
2243 + &ag_mode, &count);
2244 +
2245 + if (!TARGET_NEON)
2246 + {
2247 + if (ag_mode == V2SImode)
2248 + ag_mode = DImode;
2249 + else if (ag_mode == V4SImode)
2250 + {
2251 + ag_mode = DImode;
2252 + count *= 2;
2253 + }
2254 + }
2255 + shift = GET_MODE_SIZE(ag_mode) / GET_MODE_SIZE(SFmode);
2256 + par = gen_rtx_PARALLEL (mode, rtvec_alloc (count));
2257 + for (i = 0; i < count; i++)
2258 + {
2259 + rtx tmp = gen_rtx_REG (ag_mode, FIRST_VFP_REGNUM + i * shift);
2260 + tmp = gen_rtx_EXPR_LIST (VOIDmode, tmp,
2261 + GEN_INT (i * GET_MODE_SIZE (ag_mode)));
2262 + XVECEXP (par, 0, i) = tmp;
2263 + }
2264 +
2265 + return par;
2266 + }
2267 +
2268 + return gen_rtx_REG (mode, FIRST_VFP_REGNUM);
2269 +}
2270 +
2271 +static void
2272 +aapcs_vfp_advance (CUMULATIVE_ARGS *pcum ATTRIBUTE_UNUSED,
2273 + enum machine_mode mode ATTRIBUTE_UNUSED,
2274 + const_tree type ATTRIBUTE_UNUSED)
2275 +{
2276 + pcum->aapcs_vfp_regs_free &= ~pcum->aapcs_vfp_reg_alloc;
2277 + pcum->aapcs_vfp_reg_alloc = 0;
2278 + return;
2279 +}
2280 +
2281 +#define AAPCS_CP(X) \
2282 + { \
2283 + aapcs_ ## X ## _cum_init, \
2284 + aapcs_ ## X ## _is_call_candidate, \
2285 + aapcs_ ## X ## _allocate, \
2286 + aapcs_ ## X ## _is_return_candidate, \
2287 + aapcs_ ## X ## _allocate_return_reg, \
2288 + aapcs_ ## X ## _advance \
2289 + }
2290 +
2291 +/* Table of co-processors that can be used to pass arguments in
2292 + registers. Idealy no arugment should be a candidate for more than
2293 + one co-processor table entry, but the table is processed in order
2294 + and stops after the first match. If that entry then fails to put
2295 + the argument into a co-processor register, the argument will go on
2296 + the stack. */
2297 +static struct
2298 +{
2299 + /* Initialize co-processor related state in CUMULATIVE_ARGS structure. */
2300 + void (*cum_init) (CUMULATIVE_ARGS *, const_tree, rtx, const_tree);
2301 +
2302 + /* Return true if an argument of mode MODE (or type TYPE if MODE is
2303 + BLKmode) is a candidate for this co-processor's registers; this
2304 + function should ignore any position-dependent state in
2305 + CUMULATIVE_ARGS and only use call-type dependent information. */
2306 + bool (*is_call_candidate) (CUMULATIVE_ARGS *, enum machine_mode, const_tree);
2307 +
2308 + /* Return true if the argument does get a co-processor register; it
2309 + should set aapcs_reg to an RTX of the register allocated as is
2310 + required for a return from FUNCTION_ARG. */
2311 + bool (*allocate) (CUMULATIVE_ARGS *, enum machine_mode, const_tree);
2312 +
2313 + /* Return true if a result of mode MODE (or type TYPE if MODE is
2314 + BLKmode) is can be returned in this co-processor's registers. */
2315 + bool (*is_return_candidate) (enum arm_pcs, enum machine_mode, const_tree);
2316 +
2317 + /* Allocate and return an RTX element to hold the return type of a
2318 + call, this routine must not fail and will only be called if
2319 + is_return_candidate returned true with the same parameters. */
2320 + rtx (*allocate_return_reg) (enum arm_pcs, enum machine_mode, const_tree);
2321 +
2322 + /* Finish processing this argument and prepare to start processing
2323 + the next one. */
2324 + void (*advance) (CUMULATIVE_ARGS *, enum machine_mode, const_tree);
2325 +} aapcs_cp_arg_layout[ARM_NUM_COPROC_SLOTS] =
2326 + {
2327 + AAPCS_CP(vfp)
2328 + };
2329 +
2330 +#undef AAPCS_CP
2331 +
2332 +static int
2333 +aapcs_select_call_coproc (CUMULATIVE_ARGS *pcum, enum machine_mode mode,
2334 + tree type)
2335 +{
2336 + int i;
2337 +
2338 + for (i = 0; i < ARM_NUM_COPROC_SLOTS; i++)
2339 + if (aapcs_cp_arg_layout[i].is_call_candidate (pcum, mode, type))
2340 + return i;
2341 +
2342 + return -1;
2343 +}
2344 +
2345 +static int
2346 +aapcs_select_return_coproc (const_tree type, const_tree fntype)
2347 +{
2348 + /* We aren't passed a decl, so we can't check that a call is local.
2349 + However, it isn't clear that that would be a win anyway, since it
2350 + might limit some tail-calling opportunities. */
2351 + enum arm_pcs pcs_variant;
2352 +
2353 + if (fntype)
2354 + {
2355 + const_tree fndecl = NULL_TREE;
2356 +
2357 + if (TREE_CODE (fntype) == FUNCTION_DECL)
2358 + {
2359 + fndecl = fntype;
2360 + fntype = TREE_TYPE (fntype);
2361 + }
2362 +
2363 + pcs_variant = arm_get_pcs_model (fntype, fndecl);
2364 + }
2365 + else
2366 + pcs_variant = arm_pcs_default;
2367 +
2368 + if (pcs_variant != ARM_PCS_AAPCS)
2369 + {
2370 + int i;
2371 +
2372 + for (i = 0; i < ARM_NUM_COPROC_SLOTS; i++)
2373 + if (aapcs_cp_arg_layout[i].is_return_candidate (pcs_variant,
2374 + TYPE_MODE (type),
2375 + type))
2376 + return i;
2377 + }
2378 + return -1;
2379 +}
2380 +
2381 +static rtx
2382 +aapcs_allocate_return_reg (enum machine_mode mode, const_tree type,
2383 + const_tree fntype)
2384 +{
2385 + /* We aren't passed a decl, so we can't check that a call is local.
2386 + However, it isn't clear that that would be a win anyway, since it
2387 + might limit some tail-calling opportunities. */
2388 + enum arm_pcs pcs_variant;
2389 +
2390 + if (fntype)
2391 + {
2392 + const_tree fndecl = NULL_TREE;
2393 +
2394 + if (TREE_CODE (fntype) == FUNCTION_DECL)
2395 + {
2396 + fndecl = fntype;
2397 + fntype = TREE_TYPE (fntype);
2398 + }
2399 +
2400 + pcs_variant = arm_get_pcs_model (fntype, fndecl);
2401 + }
2402 + else
2403 + pcs_variant = arm_pcs_default;
2404 +
2405 + /* Promote integer types. */
2406 + if (type && INTEGRAL_TYPE_P (type))
2407 + PROMOTE_FUNCTION_MODE (mode, unsignedp, type);
2408 +
2409 + if (pcs_variant != ARM_PCS_AAPCS)
2410 + {
2411 + int i;
2412 +
2413 + for (i = 0; i < ARM_NUM_COPROC_SLOTS; i++)
2414 + if (aapcs_cp_arg_layout[i].is_return_candidate (pcs_variant, mode,
2415 + type))
2416 + return aapcs_cp_arg_layout[i].allocate_return_reg (pcs_variant,
2417 + mode, type);
2418 + }
2419 +
2420 + /* Promotes small structs returned in a register to full-word size
2421 + for big-endian AAPCS. */
2422 + if (type && arm_return_in_msb (type))
2423 + {
2424 + HOST_WIDE_INT size = int_size_in_bytes (type);
2425 + if (size % UNITS_PER_WORD != 0)
2426 + {
2427 + size += UNITS_PER_WORD - size % UNITS_PER_WORD;
2428 + mode = mode_for_size (size * BITS_PER_UNIT, MODE_INT, 0);
2429 + }
2430 + }
2431 +
2432 + return gen_rtx_REG (mode, R0_REGNUM);
2433 +}
2434 +
2435 +rtx
2436 +aapcs_libcall_value (enum machine_mode mode)
2437 +{
2438 + return aapcs_allocate_return_reg (mode, NULL_TREE, NULL_TREE);
2439 +}
2440 +
2441 +/* Lay out a function argument using the AAPCS rules. The rule
2442 + numbers referred to here are those in the AAPCS. */
2443 +static void
2444 +aapcs_layout_arg (CUMULATIVE_ARGS *pcum, enum machine_mode mode,
2445 + tree type, int named)
2446 +{
2447 + int nregs, nregs2;
2448 + int ncrn;
2449 +
2450 + /* We only need to do this once per argument. */
2451 + if (pcum->aapcs_arg_processed)
2452 + return;
2453 +
2454 + pcum->aapcs_arg_processed = true;
2455 +
2456 + /* Special case: if named is false then we are handling an incoming
2457 + anonymous argument which is on the stack. */
2458 + if (!named)
2459 + return;
2460 +
2461 + /* Is this a potential co-processor register candidate? */
2462 + if (pcum->pcs_variant != ARM_PCS_AAPCS)
2463 + {
2464 + int slot = aapcs_select_call_coproc (pcum, mode, type);
2465 + pcum->aapcs_cprc_slot = slot;
2466 +
2467 + /* We don't have to apply any of the rules from part B of the
2468 + preparation phase, these are handled elsewhere in the
2469 + compiler. */
2470 +
2471 + if (slot >= 0)
2472 + {
2473 + /* A Co-processor register candidate goes either in its own
2474 + class of registers or on the stack. */
2475 + if (!pcum->aapcs_cprc_failed[slot])
2476 + {
2477 + /* C1.cp - Try to allocate the argument to co-processor
2478 + registers. */
2479 + if (aapcs_cp_arg_layout[slot].allocate (pcum, mode, type))
2480 + return;
2481 +
2482 + /* C2.cp - Put the argument on the stack and note that we
2483 + can't assign any more candidates in this slot. We also
2484 + need to note that we have allocated stack space, so that
2485 + we won't later try to split a non-cprc candidate between
2486 + core registers and the stack. */
2487 + pcum->aapcs_cprc_failed[slot] = true;
2488 + pcum->can_split = false;
2489 + }
2490 +
2491 + /* We didn't get a register, so this argument goes on the
2492 + stack. */
2493 + gcc_assert (pcum->can_split == false);
2494 + return;
2495 + }
2496 + }
2497 +
2498 + /* C3 - For double-word aligned arguments, round the NCRN up to the
2499 + next even number. */
2500 + ncrn = pcum->aapcs_ncrn;
2501 + if ((ncrn & 1) && arm_needs_doubleword_align (mode, type))
2502 + ncrn++;
2503 +
2504 + nregs = ARM_NUM_REGS2(mode, type);
2505 +
2506 + /* Sigh, this test should really assert that nregs > 0, but a GCC
2507 + extension allows empty structs and then gives them empty size; it
2508 + then allows such a structure to be passed by value. For some of
2509 + the code below we have to pretend that such an argument has
2510 + non-zero size so that we 'locate' it correctly either in
2511 + registers or on the stack. */
2512 + gcc_assert (nregs >= 0);
2513 +
2514 + nregs2 = nregs ? nregs : 1;
2515 +
2516 + /* C4 - Argument fits entirely in core registers. */
2517 + if (ncrn + nregs2 <= NUM_ARG_REGS)
2518 + {
2519 + pcum->aapcs_reg = gen_rtx_REG (mode, ncrn);
2520 + pcum->aapcs_next_ncrn = ncrn + nregs;
2521 + return;
2522 + }
2523 +
2524 + /* C5 - Some core registers left and there are no arguments already
2525 + on the stack: split this argument between the remaining core
2526 + registers and the stack. */
2527 + if (ncrn < NUM_ARG_REGS && pcum->can_split)
2528 + {
2529 + pcum->aapcs_reg = gen_rtx_REG (mode, ncrn);
2530 + pcum->aapcs_next_ncrn = NUM_ARG_REGS;
2531 + pcum->aapcs_partial = (NUM_ARG_REGS - ncrn) * UNITS_PER_WORD;
2532 + return;
2533 + }
2534 +
2535 + /* C6 - NCRN is set to 4. */
2536 + pcum->aapcs_next_ncrn = NUM_ARG_REGS;
2537 +
2538 + /* C7,C8 - arugment goes on the stack. We have nothing to do here. */
2539 + return;
2540 +}
2541 +
2542 /* Initialize a variable CUM of type CUMULATIVE_ARGS
2543 for a call to a function whose data type is FNTYPE.
2544 For a library call, FNTYPE is NULL. */
2545 void
2546 arm_init_cumulative_args (CUMULATIVE_ARGS *pcum, tree fntype,
2547 - rtx libname ATTRIBUTE_UNUSED,
2548 + rtx libname,
2549 tree fndecl ATTRIBUTE_UNUSED)
2550 {
2551 + /* Long call handling. */
2552 + if (fntype)
2553 + pcum->pcs_variant = arm_get_pcs_model (fntype, fndecl);
2554 + else
2555 + pcum->pcs_variant = arm_pcs_default;
2556 +
2557 + if (pcum->pcs_variant <= ARM_PCS_AAPCS_LOCAL)
2558 + {
2559 + /* XXX We should also detect some library calls here and handle
2560 + them using the base rules too; for example the floating point
2561 + support functions always work this way. */
2562 +
2563 + if (rtx_equal_p (libname,
2564 + convert_optab_libfunc (sfix_optab, DImode, DFmode))
2565 + || rtx_equal_p (libname,
2566 + convert_optab_libfunc (ufix_optab, DImode, DFmode))
2567 + || rtx_equal_p (libname,
2568 + convert_optab_libfunc (sfix_optab, DImode, SFmode))
2569 + || rtx_equal_p (libname,
2570 + convert_optab_libfunc (ufix_optab, DImode, SFmode))
2571 + || rtx_equal_p (libname,
2572 + convert_optab_libfunc (trunc_optab, HFmode, SFmode))
2573 + || rtx_equal_p (libname,
2574 + convert_optab_libfunc (sext_optab, SFmode, HFmode)))
2575 + pcum->pcs_variant = ARM_PCS_AAPCS;
2576 +
2577 + pcum->aapcs_ncrn = pcum->aapcs_next_ncrn = 0;
2578 + pcum->aapcs_reg = NULL_RTX;
2579 + pcum->aapcs_partial = 0;
2580 + pcum->aapcs_arg_processed = false;
2581 + pcum->aapcs_cprc_slot = -1;
2582 + pcum->can_split = true;
2583 +
2584 + if (pcum->pcs_variant != ARM_PCS_AAPCS)
2585 + {
2586 + int i;
2587 +
2588 + for (i = 0; i < ARM_NUM_COPROC_SLOTS; i++)
2589 + {
2590 + pcum->aapcs_cprc_failed[i] = false;
2591 + aapcs_cp_arg_layout[i].cum_init (pcum, fntype, libname, fndecl);
2592 + }
2593 + }
2594 + return;
2595 + }
2596 +
2597 + /* Legacy ABIs */
2598 +
2599 /* On the ARM, the offset starts at 0. */
2600 pcum->nregs = 0;
2601 pcum->iwmmxt_nregs = 0;
2602 @@ -3120,6 +4189,17 @@
2603 {
2604 int nregs;
2605
2606 + /* Handle the special case quickly. Pick an arbitrary value for op2 of
2607 + a call insn (op3 of a call_value insn). */
2608 + if (mode == VOIDmode)
2609 + return const0_rtx;
2610 +
2611 + if (pcum->pcs_variant <= ARM_PCS_AAPCS_LOCAL)
2612 + {
2613 + aapcs_layout_arg (pcum, mode, type, named);
2614 + return pcum->aapcs_reg;
2615 + }
2616 +
2617 /* Varargs vectors are treated the same as long long.
2618 named_count avoids having to change the way arm handles 'named' */
2619 if (TARGET_IWMMXT_ABI
2620 @@ -3161,10 +4241,16 @@
2621
2622 static int
2623 arm_arg_partial_bytes (CUMULATIVE_ARGS *pcum, enum machine_mode mode,
2624 - tree type, bool named ATTRIBUTE_UNUSED)
2625 + tree type, bool named)
2626 {
2627 int nregs = pcum->nregs;
2628
2629 + if (pcum->pcs_variant <= ARM_PCS_AAPCS_LOCAL)
2630 + {
2631 + aapcs_layout_arg (pcum, mode, type, named);
2632 + return pcum->aapcs_partial;
2633 + }
2634 +
2635 if (TARGET_IWMMXT_ABI && arm_vector_mode_supported_p (mode))
2636 return 0;
2637
2638 @@ -3173,7 +4259,40 @@
2639 && pcum->can_split)
2640 return (NUM_ARG_REGS - nregs) * UNITS_PER_WORD;
2641
2642 - return 0;
2643 + return 0;
2644 +}
2645 +
2646 +void
2647 +arm_function_arg_advance (CUMULATIVE_ARGS *pcum, enum machine_mode mode,
2648 + tree type, bool named)
2649 +{
2650 + if (pcum->pcs_variant <= ARM_PCS_AAPCS_LOCAL)
2651 + {
2652 + aapcs_layout_arg (pcum, mode, type, named);
2653 +
2654 + if (pcum->aapcs_cprc_slot >= 0)
2655 + {
2656 + aapcs_cp_arg_layout[pcum->aapcs_cprc_slot].advance (pcum, mode,
2657 + type);
2658 + pcum->aapcs_cprc_slot = -1;
2659 + }
2660 +
2661 + /* Generic stuff. */
2662 + pcum->aapcs_arg_processed = false;
2663 + pcum->aapcs_ncrn = pcum->aapcs_next_ncrn;
2664 + pcum->aapcs_reg = NULL_RTX;
2665 + pcum->aapcs_partial = 0;
2666 + }
2667 + else
2668 + {
2669 + pcum->nargs += 1;
2670 + if (arm_vector_mode_supported_p (mode)
2671 + && pcum->named_count > pcum->nargs
2672 + && TARGET_IWMMXT_ABI)
2673 + pcum->iwmmxt_nregs += 1;
2674 + else
2675 + pcum->nregs += ARM_NUM_REGS2 (mode, type);
2676 + }
2677 }
2678
2679 /* Variable sized types are passed by reference. This is a GCC
2680 @@ -3226,6 +4345,8 @@
2681 /* Whereas these functions are always known to reside within the 26 bit
2682 addressing range. */
2683 { "short_call", 0, 0, false, true, true, NULL },
2684 + /* Specify the procedure call conventions for a function. */
2685 + { "pcs", 1, 1, false, true, true, arm_handle_pcs_attribute },
2686 /* Interrupt Service Routines have special prologue and epilogue requirements. */
2687 { "isr", 0, 1, false, false, false, arm_handle_isr_attribute },
2688 { "interrupt", 0, 1, false, false, false, arm_handle_isr_attribute },
2689 @@ -3328,6 +4449,21 @@
2690 return NULL_TREE;
2691 }
2692
2693 +/* Handle a "pcs" attribute; arguments as in struct
2694 + attribute_spec.handler. */
2695 +static tree
2696 +arm_handle_pcs_attribute (tree *node ATTRIBUTE_UNUSED, tree name, tree args,
2697 + int flags ATTRIBUTE_UNUSED, bool *no_add_attrs)
2698 +{
2699 + if (arm_pcs_from_attribute (args) == ARM_PCS_UNKNOWN)
2700 + {
2701 + warning (OPT_Wattributes, "%qs attribute ignored",
2702 + IDENTIFIER_POINTER (name));
2703 + *no_add_attrs = true;
2704 + }
2705 + return NULL_TREE;
2706 +}
2707 +
2708 #if TARGET_DLLIMPORT_DECL_ATTRIBUTES
2709 /* Handle the "notshared" attribute. This attribute is another way of
2710 requesting hidden visibility. ARM's compiler supports
2711 @@ -3489,7 +4625,7 @@
2712
2713 /* Return nonzero if it is ok to make a tail-call to DECL. */
2714 static bool
2715 -arm_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
2716 +arm_function_ok_for_sibcall (tree decl, tree exp)
2717 {
2718 unsigned long func_type;
2719
2720 @@ -3522,6 +4658,21 @@
2721 if (IS_INTERRUPT (func_type))
2722 return false;
2723
2724 + if (!VOID_TYPE_P (TREE_TYPE (DECL_RESULT (cfun->decl))))
2725 + {
2726 + /* Check that the return value locations are the same. For
2727 + example that we aren't returning a value from the sibling in
2728 + a VFP register but then need to transfer it to a core
2729 + register. */
2730 + rtx a, b;
2731 +
2732 + a = arm_function_value (TREE_TYPE (exp), decl, false);
2733 + b = arm_function_value (TREE_TYPE (DECL_RESULT (cfun->decl)),
2734 + cfun->decl, false);
2735 + if (!rtx_equal_p (a, b))
2736 + return false;
2737 + }
2738 +
2739 /* Never tailcall if function may be called with a misaligned SP. */
2740 if (IS_STACKALIGN (func_type))
2741 return false;
2742 @@ -4120,6 +5271,7 @@
2743 if (GET_MODE_SIZE (mode) <= 4
2744 && ! (arm_arch4
2745 && (mode == HImode
2746 + || mode == HFmode
2747 || (mode == QImode && outer == SIGN_EXTEND))))
2748 {
2749 if (code == MULT)
2750 @@ -4148,13 +5300,15 @@
2751 load. */
2752 if (arm_arch4)
2753 {
2754 - if (mode == HImode || (outer == SIGN_EXTEND && mode == QImode))
2755 + if (mode == HImode
2756 + || mode == HFmode
2757 + || (outer == SIGN_EXTEND && mode == QImode))
2758 range = 256;
2759 else
2760 range = 4096;
2761 }
2762 else
2763 - range = (mode == HImode) ? 4095 : 4096;
2764 + range = (mode == HImode || mode == HFmode) ? 4095 : 4096;
2765
2766 return (code == CONST_INT
2767 && INTVAL (index) < range
2768 @@ -4325,7 +5479,8 @@
2769 return 1;
2770
2771 /* This is PC relative data after arm_reorg runs. */
2772 - else if (GET_MODE_SIZE (mode) >= 4 && reload_completed
2773 + else if ((GET_MODE_SIZE (mode) >= 4 || mode == HFmode)
2774 + && reload_completed
2775 && (GET_CODE (x) == LABEL_REF
2776 || (GET_CODE (x) == CONST
2777 && GET_CODE (XEXP (x, 0)) == PLUS
2778 @@ -5024,7 +6179,7 @@
2779 case UMOD:
2780 if (TARGET_HARD_FLOAT && mode == SFmode)
2781 *total = COSTS_N_INSNS (2);
2782 - else if (TARGET_HARD_FLOAT && mode == DFmode)
2783 + else if (TARGET_HARD_FLOAT && mode == DFmode && !TARGET_VFP_SINGLE)
2784 *total = COSTS_N_INSNS (4);
2785 else
2786 *total = COSTS_N_INSNS (20);
2787 @@ -5063,23 +6218,6 @@
2788 return true;
2789
2790 case MINUS:
2791 - if (TARGET_THUMB2)
2792 - {
2793 - if (GET_MODE_CLASS (mode) == MODE_FLOAT)
2794 - {
2795 - if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
2796 - *total = COSTS_N_INSNS (1);
2797 - else
2798 - *total = COSTS_N_INSNS (20);
2799 - }
2800 - else
2801 - *total = COSTS_N_INSNS (ARM_NUM_REGS (mode));
2802 - /* Thumb2 does not have RSB, so all arguments must be
2803 - registers (subtracting a constant is canonicalized as
2804 - addition of the negated constant). */
2805 - return false;
2806 - }
2807 -
2808 if (mode == DImode)
2809 {
2810 *total = COSTS_N_INSNS (ARM_NUM_REGS (mode));
2811 @@ -5102,7 +6240,9 @@
2812
2813 if (GET_MODE_CLASS (mode) == MODE_FLOAT)
2814 {
2815 - if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
2816 + if (TARGET_HARD_FLOAT
2817 + && (mode == SFmode
2818 + || (mode == DFmode && !TARGET_VFP_SINGLE)))
2819 {
2820 *total = COSTS_N_INSNS (1);
2821 if (GET_CODE (XEXP (x, 0)) == CONST_DOUBLE
2822 @@ -5143,6 +6283,17 @@
2823 return true;
2824 }
2825
2826 + /* A shift as a part of RSB costs no more than RSB itself. */
2827 + if (GET_CODE (XEXP (x, 0)) == MULT
2828 + && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT
2829 + && ((INTVAL (XEXP (XEXP (x, 0), 1))
2830 + & (INTVAL (XEXP (XEXP (x, 0), 1)) - 1)) == 0))
2831 + {
2832 + *total += rtx_cost (XEXP (XEXP (x, 0), 0), code, speed);
2833 + *total += rtx_cost (XEXP (x, 1), code, speed);
2834 + return true;
2835 + }
2836 +
2837 if (subcode == MULT
2838 && GET_CODE (XEXP (XEXP (x, 1), 1)) == CONST_INT
2839 && ((INTVAL (XEXP (XEXP (x, 1), 1)) &
2840 @@ -5164,6 +6315,19 @@
2841 return true;
2842 }
2843
2844 + /* MLS is just as expensive as its underlying multiplication.
2845 + Exclude a shift by a constant, which is expressed as a
2846 + multiplication. */
2847 + if (TARGET_32BIT && arm_arch_thumb2
2848 + && GET_CODE (XEXP (x, 1)) == MULT
2849 + && ! (GET_CODE (XEXP (XEXP (x, 1), 1)) == CONST_INT
2850 + && ((INTVAL (XEXP (XEXP (x, 1), 1)) &
2851 + (INTVAL (XEXP (XEXP (x, 1), 1)) - 1)) == 0)))
2852 + {
2853 + /* The cost comes from the cost of the multiply. */
2854 + return false;
2855 + }
2856 +
2857 /* Fall through */
2858
2859 case PLUS:
2860 @@ -5192,7 +6356,9 @@
2861
2862 if (GET_MODE_CLASS (mode) == MODE_FLOAT)
2863 {
2864 - if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
2865 + if (TARGET_HARD_FLOAT
2866 + && (mode == SFmode
2867 + || (mode == DFmode && !TARGET_VFP_SINGLE)))
2868 {
2869 *total = COSTS_N_INSNS (1);
2870 if (GET_CODE (XEXP (x, 1)) == CONST_DOUBLE
2871 @@ -5307,7 +6473,9 @@
2872 case NEG:
2873 if (GET_MODE_CLASS (mode) == MODE_FLOAT)
2874 {
2875 - if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
2876 + if (TARGET_HARD_FLOAT
2877 + && (mode == SFmode
2878 + || (mode == DFmode && !TARGET_VFP_SINGLE)))
2879 {
2880 *total = COSTS_N_INSNS (1);
2881 return false;
2882 @@ -5460,7 +6628,9 @@
2883 case ABS:
2884 if (GET_MODE_CLASS (mode == MODE_FLOAT))
2885 {
2886 - if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
2887 + if (TARGET_HARD_FLOAT
2888 + && (mode == SFmode
2889 + || (mode == DFmode && !TARGET_VFP_SINGLE)))
2890 {
2891 *total = COSTS_N_INSNS (1);
2892 return false;
2893 @@ -5563,7 +6733,8 @@
2894 return true;
2895
2896 case CONST_DOUBLE:
2897 - if (TARGET_HARD_FLOAT && vfp3_const_double_rtx (x))
2898 + if (TARGET_HARD_FLOAT && vfp3_const_double_rtx (x)
2899 + && (mode == SFmode || !TARGET_VFP_SINGLE))
2900 *total = COSTS_N_INSNS (1);
2901 else
2902 *total = COSTS_N_INSNS (4);
2903 @@ -5638,7 +6809,8 @@
2904 return false;
2905
2906 case MINUS:
2907 - if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT)
2908 + if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT
2909 + && (mode == SFmode || !TARGET_VFP_SINGLE))
2910 {
2911 *total = COSTS_N_INSNS (1);
2912 return false;
2913 @@ -5668,7 +6840,8 @@
2914 return false;
2915
2916 case PLUS:
2917 - if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT)
2918 + if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT
2919 + && (mode == SFmode || !TARGET_VFP_SINGLE))
2920 {
2921 *total = COSTS_N_INSNS (1);
2922 return false;
2923 @@ -5698,7 +6871,8 @@
2924 return false;
2925
2926 case NEG:
2927 - if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT)
2928 + if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT
2929 + && (mode == SFmode || !TARGET_VFP_SINGLE))
2930 {
2931 *total = COSTS_N_INSNS (1);
2932 return false;
2933 @@ -5722,7 +6896,8 @@
2934 return false;
2935
2936 case ABS:
2937 - if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT)
2938 + if (TARGET_HARD_FLOAT && GET_MODE_CLASS (mode) == MODE_FLOAT
2939 + && (mode == SFmode || !TARGET_VFP_SINGLE))
2940 *total = COSTS_N_INSNS (1);
2941 else
2942 *total = COSTS_N_INSNS (1 + ARM_NUM_REGS (mode));
2943 @@ -5939,7 +7114,9 @@
2944
2945 if (GET_MODE_CLASS (mode) == MODE_FLOAT)
2946 {
2947 - if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
2948 + if (TARGET_HARD_FLOAT
2949 + && (mode == SFmode
2950 + || (mode == DFmode && !TARGET_VFP_SINGLE)))
2951 {
2952 *total = COSTS_N_INSNS (1);
2953 return false;
2954 @@ -6096,7 +7273,9 @@
2955
2956 if (GET_MODE_CLASS (mode) == MODE_FLOAT)
2957 {
2958 - if (TARGET_HARD_FLOAT && (mode == SFmode || mode == DFmode))
2959 + if (TARGET_HARD_FLOAT
2960 + && (mode == SFmode
2961 + || (mode == DFmode && !TARGET_VFP_SINGLE)))
2962 {
2963 *total = COSTS_N_INSNS (1);
2964 return false;
2965 @@ -6919,10 +8098,13 @@
2966 }
2967
2968 /* Return TRUE if OP is a memory operand which we can load or store a vector
2969 - to/from. If CORE is true, we're moving from ARM registers not Neon
2970 - registers. */
2971 + to/from. TYPE is one of the following values:
2972 + 0 - Vector load/stor (vldr)
2973 + 1 - Core registers (ldm)
2974 + 2 - Element/structure loads (vld1)
2975 + */
2976 int
2977 -neon_vector_mem_operand (rtx op, bool core)
2978 +neon_vector_mem_operand (rtx op, int type)
2979 {
2980 rtx ind;
2981
2982 @@ -6955,23 +8137,16 @@
2983 return arm_address_register_rtx_p (ind, 0);
2984
2985 /* Allow post-increment with Neon registers. */
2986 - if (!core && GET_CODE (ind) == POST_INC)
2987 + if ((type != 1 && GET_CODE (ind) == POST_INC)
2988 + || (type == 0 && GET_CODE (ind) == PRE_DEC))
2989 return arm_address_register_rtx_p (XEXP (ind, 0), 0);
2990
2991 -#if 0
2992 - /* FIXME: We can support this too if we use VLD1/VST1. */
2993 - if (!core
2994 - && GET_CODE (ind) == POST_MODIFY
2995 - && arm_address_register_rtx_p (XEXP (ind, 0), 0)
2996 - && GET_CODE (XEXP (ind, 1)) == PLUS
2997 - && rtx_equal_p (XEXP (XEXP (ind, 1), 0), XEXP (ind, 0)))
2998 - ind = XEXP (ind, 1);
2999 -#endif
3000 + /* FIXME: vld1 allows register post-modify. */
3001
3002 /* Match:
3003 (plus (reg)
3004 (const)). */
3005 - if (!core
3006 + if (type == 0
3007 && GET_CODE (ind) == PLUS
3008 && GET_CODE (XEXP (ind, 0)) == REG
3009 && REG_MODE_OK_FOR_BASE_P (XEXP (ind, 0), VOIDmode)
3010 @@ -7038,10 +8213,19 @@
3011 enum reg_class
3012 coproc_secondary_reload_class (enum machine_mode mode, rtx x, bool wb)
3013 {
3014 + if (mode == HFmode)
3015 + {
3016 + if (!TARGET_NEON_FP16)
3017 + return GENERAL_REGS;
3018 + if (s_register_operand (x, mode) || neon_vector_mem_operand (x, 2))
3019 + return NO_REGS;
3020 + return GENERAL_REGS;
3021 + }
3022 +
3023 if (TARGET_NEON
3024 && (GET_MODE_CLASS (mode) == MODE_VECTOR_INT
3025 || GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT)
3026 - && neon_vector_mem_operand (x, FALSE))
3027 + && neon_vector_mem_operand (x, 0))
3028 return NO_REGS;
3029
3030 if (arm_coproc_mem_operand (x, wb) || s_register_operand (x, mode))
3031 @@ -7438,6 +8622,9 @@
3032 int base_reg = -1;
3033 int i;
3034
3035 + if (low_irq_latency)
3036 + return 0;
3037 +
3038 /* Can only handle 2, 3, or 4 insns at present,
3039 though could be easily extended if required. */
3040 gcc_assert (nops >= 2 && nops <= 4);
3041 @@ -7667,6 +8854,9 @@
3042 int base_reg = -1;
3043 int i;
3044
3045 + if (low_irq_latency)
3046 + return 0;
3047 +
3048 /* Can only handle 2, 3, or 4 insns at present, though could be easily
3049 extended if required. */
3050 gcc_assert (nops >= 2 && nops <= 4);
3051 @@ -7874,7 +9064,7 @@
3052
3053 As a compromise, we use ldr for counts of 1 or 2 regs, and ldm
3054 for counts of 3 or 4 regs. */
3055 - if (arm_tune_xscale && count <= 2 && ! optimize_size)
3056 + if (low_irq_latency || (arm_tune_xscale && count <= 2 && ! optimize_size))
3057 {
3058 rtx seq;
3059
3060 @@ -7937,7 +9127,7 @@
3061
3062 /* See arm_gen_load_multiple for discussion of
3063 the pros/cons of ldm/stm usage for XScale. */
3064 - if (arm_tune_xscale && count <= 2 && ! optimize_size)
3065 + if (low_irq_latency || (arm_tune_xscale && count <= 2 && ! optimize_size))
3066 {
3067 rtx seq;
3068
3069 @@ -9555,7 +10745,10 @@
3070 gcc_assert (GET_CODE (from) != BARRIER);
3071
3072 /* Count the length of this insn. */
3073 - count += get_attr_length (from);
3074 + if (LABEL_P (from) && (align_jumps > 0 || align_loops > 0))
3075 + count += MAX (align_jumps, align_loops);
3076 + else
3077 + count += get_attr_length (from);
3078
3079 /* If there is a jump table, add its length. */
3080 tmp = is_jump_table (from);
3081 @@ -9867,6 +11060,8 @@
3082 insn = table;
3083 }
3084 }
3085 + else if (LABEL_P (insn) && (align_jumps > 0 || align_loops > 0))
3086 + address += MAX (align_jumps, align_loops);
3087 }
3088
3089 fix = minipool_fix_head;
3090 @@ -10072,6 +11267,21 @@
3091 vfp_output_fldmd (FILE * stream, unsigned int base, int reg, int count)
3092 {
3093 int i;
3094 + int offset;
3095 +
3096 + if (low_irq_latency)
3097 + {
3098 + /* Output a sequence of FLDD instructions. */
3099 + offset = 0;
3100 + for (i = reg; i < reg + count; ++i, offset += 8)
3101 + {
3102 + fputc ('\t', stream);
3103 + asm_fprintf (stream, "fldd\td%d, [%r,#%d]\n", i, base, offset);
3104 + }
3105 + asm_fprintf (stream, "\tadd\tsp, sp, #%d\n", count * 8);
3106 + return;
3107 + }
3108 +
3109
3110 /* Workaround ARM10 VFPr1 bug. */
3111 if (count == 2 && !arm_arch6)
3112 @@ -10142,6 +11352,56 @@
3113 rtx tmp, reg;
3114 int i;
3115
3116 + if (low_irq_latency)
3117 + {
3118 + int saved_size;
3119 + rtx sp_insn;
3120 +
3121 + if (!count)
3122 + return 0;
3123 +
3124 + saved_size = count * GET_MODE_SIZE (DFmode);
3125 +
3126 + /* Since fstd does not have postdecrement addressing mode,
3127 + we first decrement stack pointer and then use base+offset
3128 + stores for VFP registers. The ARM EABI unwind information
3129 + can't easily describe base+offset loads, so we attach
3130 + a note for the effects of the whole block in the first insn,
3131 + and avoid marking the subsequent instructions
3132 + with RTX_FRAME_RELATED_P. */
3133 + sp_insn = gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
3134 + GEN_INT (-saved_size));
3135 + sp_insn = emit_insn (sp_insn);
3136 + RTX_FRAME_RELATED_P (sp_insn) = 1;
3137 +
3138 + dwarf = gen_rtx_SEQUENCE (VOIDmode, rtvec_alloc (count + 1));
3139 + XVECEXP (dwarf, 0, 0) =
3140 + gen_rtx_SET (VOIDmode, stack_pointer_rtx,
3141 + plus_constant (stack_pointer_rtx, -saved_size));
3142 +
3143 + /* push double VFP registers to stack */
3144 + for (i = 0; i < count; ++i )
3145 + {
3146 + rtx reg;
3147 + rtx mem;
3148 + rtx addr;
3149 + rtx insn;
3150 + reg = gen_rtx_REG (DFmode, base_reg + 2*i);
3151 + addr = (i == 0) ? stack_pointer_rtx
3152 + : gen_rtx_PLUS (SImode, stack_pointer_rtx,
3153 + GEN_INT (i * GET_MODE_SIZE (DFmode)));
3154 + mem = gen_frame_mem (DFmode, addr);
3155 + insn = emit_move_insn (mem, reg);
3156 + XVECEXP (dwarf, 0, i+1) =
3157 + gen_rtx_SET (VOIDmode, mem, reg);
3158 + }
3159 +
3160 + REG_NOTES (sp_insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, dwarf,
3161 + REG_NOTES (sp_insn));
3162 +
3163 + return saved_size;
3164 + }
3165 +
3166 /* Workaround ARM10 VFPr1 bug. Data corruption can occur when exactly two
3167 register pairs are stored by a store multiple insn. We avoid this
3168 by pushing an extra pair. */
3169 @@ -10758,7 +12018,7 @@
3170 }
3171
3172 /* Output a move, load or store for quad-word vectors in ARM registers. Only
3173 - handles MEMs accepted by neon_vector_mem_operand with CORE=true. */
3174 + handles MEMs accepted by neon_vector_mem_operand with TYPE=1. */
3175
3176 const char *
3177 output_move_quad (rtx *operands)
3178 @@ -10954,6 +12214,12 @@
3179 ops[1] = reg;
3180 break;
3181
3182 + case PRE_DEC:
3183 + templ = "v%smdb%%?\t%%0!, %%h1";
3184 + ops[0] = XEXP (addr, 0);
3185 + ops[1] = reg;
3186 + break;
3187 +
3188 case POST_MODIFY:
3189 /* FIXME: Not currently enabled in neon_vector_mem_operand. */
3190 gcc_unreachable ();
3191 @@ -10968,7 +12234,7 @@
3192 {
3193 /* We're only using DImode here because it's a convenient size. */
3194 ops[0] = gen_rtx_REG (DImode, REGNO (reg) + 2 * i);
3195 - ops[1] = adjust_address (mem, SImode, 8 * i);
3196 + ops[1] = adjust_address (mem, DImode, 8 * i);
3197 if (reg_overlap_mentioned_p (ops[0], mem))
3198 {
3199 gcc_assert (overlap == -1);
3200 @@ -11557,7 +12823,7 @@
3201 if (count > 0)
3202 {
3203 /* Workaround ARM10 VFPr1 bug. */
3204 - if (count == 2 && !arm_arch6)
3205 + if (count == 2 && !arm_arch6 && !low_irq_latency)
3206 count++;
3207 saved += count * 8;
3208 }
3209 @@ -11886,6 +13152,41 @@
3210 return_used_this_function = 0;
3211 }
3212
3213 +/* Generate to STREAM a code sequence that pops registers identified
3214 + in REGS_MASK from SP. SP is incremented as the result.
3215 +*/
3216 +static void
3217 +print_pop_reg_by_ldr (FILE *stream, int regs_mask, int rfe)
3218 +{
3219 + int reg;
3220 +
3221 + gcc_assert (! (regs_mask & (1 << SP_REGNUM)));
3222 +
3223 + for (reg = 0; reg < PC_REGNUM; ++reg)
3224 + if (regs_mask & (1 << reg))
3225 + asm_fprintf (stream, "\tldr\t%r, [%r], #4\n",
3226 + reg, SP_REGNUM);
3227 +
3228 + if (regs_mask & (1 << PC_REGNUM))
3229 + {
3230 + if (rfe)
3231 + /* When returning from exception, we need to
3232 + copy SPSR to CPSR. There are two ways to do
3233 + that: the ldm instruction with "^" suffix,
3234 + and movs instruction. The latter would
3235 + require that we load from stack to some
3236 + scratch register, and then move to PC.
3237 + Therefore, we'd need extra instruction and
3238 + have to make sure we actually have a spare
3239 + register. Using ldm with a single register
3240 + is simler. */
3241 + asm_fprintf (stream, "\tldm\tsp!, {pc}^\n");
3242 + else
3243 + asm_fprintf (stream, "\tldr\t%r, [%r], #4\n",
3244 + PC_REGNUM, SP_REGNUM);
3245 + }
3246 +}
3247 +
3248 const char *
3249 arm_output_epilogue (rtx sibling)
3250 {
3251 @@ -11946,7 +13247,7 @@
3252 /* This variable is for the Virtual Frame Pointer, not VFP regs. */
3253 int vfp_offset = offsets->frame;
3254
3255 - if (arm_fpu_arch == FPUTYPE_FPA_EMU2)
3256 + if (TARGET_FPA_EMU2)
3257 {
3258 for (reg = LAST_FPA_REGNUM; reg >= FIRST_FPA_REGNUM; reg--)
3259 if (df_regs_ever_live_p (reg) && !call_used_regs[reg])
3260 @@ -12169,7 +13470,7 @@
3261 SP_REGNUM, HARD_FRAME_POINTER_REGNUM);
3262 }
3263
3264 - if (arm_fpu_arch == FPUTYPE_FPA_EMU2)
3265 + if (TARGET_FPA_EMU2)
3266 {
3267 for (reg = FIRST_FPA_REGNUM; reg <= LAST_FPA_REGNUM; reg++)
3268 if (df_regs_ever_live_p (reg) && !call_used_regs[reg])
3269 @@ -12253,22 +13554,19 @@
3270 to load use the LDR instruction - it is faster. For Thumb-2
3271 always use pop and the assembler will pick the best instruction.*/
3272 if (TARGET_ARM && saved_regs_mask == (1 << LR_REGNUM)
3273 - && !IS_INTERRUPT(func_type))
3274 + && !IS_INTERRUPT (func_type))
3275 {
3276 asm_fprintf (f, "\tldr\t%r, [%r], #4\n", LR_REGNUM, SP_REGNUM);
3277 }
3278 else if (saved_regs_mask)
3279 {
3280 - if (saved_regs_mask & (1 << SP_REGNUM))
3281 - /* Note - write back to the stack register is not enabled
3282 - (i.e. "ldmfd sp!..."). We know that the stack pointer is
3283 - in the list of registers and if we add writeback the
3284 - instruction becomes UNPREDICTABLE. */
3285 - print_multi_reg (f, "ldmfd\t%r, ", SP_REGNUM, saved_regs_mask,
3286 - rfe);
3287 - else if (TARGET_ARM)
3288 - print_multi_reg (f, "ldmfd\t%r!, ", SP_REGNUM, saved_regs_mask,
3289 - rfe);
3290 + gcc_assert ( ! (saved_regs_mask & (1 << SP_REGNUM)));
3291 + if (TARGET_ARM)
3292 + if (low_irq_latency)
3293 + print_pop_reg_by_ldr (f, saved_regs_mask, rfe);
3294 + else
3295 + print_multi_reg (f, "ldmfd\t%r!, ", SP_REGNUM, saved_regs_mask,
3296 + rfe);
3297 else
3298 print_multi_reg (f, "pop\t", SP_REGNUM, saved_regs_mask, 0);
3299 }
3300 @@ -12389,6 +13687,32 @@
3301
3302 gcc_assert (num_regs && num_regs <= 16);
3303
3304 + if (low_irq_latency)
3305 + {
3306 + rtx insn = 0;
3307 +
3308 + /* Emit a series of ldr instructions rather rather than a single ldm. */
3309 + /* TODO: Use ldrd where possible. */
3310 + gcc_assert (! (mask & (1 << SP_REGNUM)));
3311 +
3312 + for (i = LAST_ARM_REGNUM; i >= 0; --i)
3313 + {
3314 + if (mask & (1 << i))
3315 +
3316 + {
3317 + rtx reg, where, mem;
3318 +
3319 + reg = gen_rtx_REG (SImode, i);
3320 + where = gen_rtx_PRE_DEC (SImode, stack_pointer_rtx);
3321 + mem = gen_rtx_MEM (SImode, where);
3322 + insn = emit_move_insn (mem, reg);
3323 + RTX_FRAME_RELATED_P (insn) = 1;
3324 + }
3325 + }
3326 +
3327 + return insn;
3328 + }
3329 +
3330 /* We don't record the PC in the dwarf frame information. */
3331 num_dwarf_regs = num_regs;
3332 if (mask & (1 << PC_REGNUM))
3333 @@ -12737,22 +14061,23 @@
3334 {
3335 int reg = -1;
3336
3337 - for (i = 4; i <= (TARGET_THUMB1 ? LAST_LO_REGNUM : 11); i++)
3338 - {
3339 - if ((offsets->saved_regs_mask & (1 << i)) == 0)
3340 - {
3341 - reg = i;
3342 - break;
3343 - }
3344 - }
3345 -
3346 - if (reg == -1 && arm_size_return_regs () <= 12
3347 - && !crtl->tail_call_emit)
3348 + /* If it is safe to use r3, then do so. This sometimes
3349 + generates better code on Thumb-2 by avoiding the need to
3350 + use 32-bit push/pop instructions. */
3351 + if (!crtl->tail_call_emit
3352 + && arm_size_return_regs () <= 12)
3353 {
3354 - /* Push/pop an argument register (r3) if all callee saved
3355 - registers are already being pushed. */
3356 reg = 3;
3357 }
3358 + else
3359 + for (i = 4; i <= (TARGET_THUMB1 ? LAST_LO_REGNUM : 11); i++)
3360 + {
3361 + if ((offsets->saved_regs_mask & (1 << i)) == 0)
3362 + {
3363 + reg = i;
3364 + break;
3365 + }
3366 + }
3367
3368 if (reg != -1)
3369 {
3370 @@ -12876,7 +14201,7 @@
3371
3372 /* Save any floating point call-saved registers used by this
3373 function. */
3374 - if (arm_fpu_arch == FPUTYPE_FPA_EMU2)
3375 + if (TARGET_FPA_EMU2)
3376 {
3377 for (reg = LAST_FPA_REGNUM; reg >= FIRST_FPA_REGNUM; reg--)
3378 if (df_regs_ever_live_p (reg) && !call_used_regs[reg])
3379 @@ -13483,7 +14808,11 @@
3380 {
3381 fprintf (stream, ", %s ", shift);
3382 if (val == -1)
3383 - arm_print_operand (stream, XEXP (x, 1), 0);
3384 + {
3385 + arm_print_operand (stream, XEXP (x, 1), 0);
3386 + if (janus2_code)
3387 + fprintf(stream, "\n\tnop");
3388 + }
3389 else
3390 fprintf (stream, "#" HOST_WIDE_INT_PRINT_DEC, val);
3391 }
3392 @@ -13704,6 +15033,30 @@
3393 }
3394 return;
3395
3396 + /* Print the high single-precision register of a VFP double-precision
3397 + register. */
3398 + case 'p':
3399 + {
3400 + int mode = GET_MODE (x);
3401 + int regno;
3402 +
3403 + if (GET_MODE_SIZE (mode) != 8 || GET_CODE (x) != REG)
3404 + {
3405 + output_operand_lossage ("invalid operand for code '%c'", code);
3406 + return;
3407 + }
3408 +
3409 + regno = REGNO (x);
3410 + if (!VFP_REGNO_OK_FOR_DOUBLE (regno))
3411 + {
3412 + output_operand_lossage ("invalid operand for code '%c'", code);
3413 + return;
3414 + }
3415 +
3416 + fprintf (stream, "s%d", regno - FIRST_VFP_REGNUM + 1);
3417 + }
3418 + return;
3419 +
3420 /* Print a VFP/Neon double precision or quad precision register name. */
3421 case 'P':
3422 case 'q':
3423 @@ -13821,6 +15174,57 @@
3424 }
3425 return;
3426
3427 + /* Memory operand for vld1/vst1 instruction. */
3428 + case 'A':
3429 + {
3430 + rtx addr;
3431 + bool postinc = FALSE;
3432 + unsigned align;
3433 +
3434 + gcc_assert (GET_CODE (x) == MEM);
3435 + addr = XEXP (x, 0);
3436 + if (GET_CODE (addr) == POST_INC)
3437 + {
3438 + postinc = 1;
3439 + addr = XEXP (addr, 0);
3440 + }
3441 + align = MEM_ALIGN (x) >> 3;
3442 + asm_fprintf (stream, "[%r", REGNO (addr));
3443 + if (align > GET_MODE_SIZE (GET_MODE (x)))
3444 + align = GET_MODE_SIZE (GET_MODE (x));
3445 + if (align >= 8)
3446 + asm_fprintf (stream, ", :%d", align << 3);
3447 + asm_fprintf (stream, "]");
3448 + if (postinc)
3449 + fputs("!", stream);
3450 + }
3451 + return;
3452 +
3453 + /* Register specifier for vld1.16/vst1.16. Translate the S register
3454 + number into a D register number and element index. */
3455 + case 'z':
3456 + {
3457 + int mode = GET_MODE (x);
3458 + int regno;
3459 +
3460 + if (GET_MODE_SIZE (mode) != 2 || GET_CODE (x) != REG)
3461 + {
3462 + output_operand_lossage ("invalid operand for code '%c'", code);
3463 + return;
3464 + }
3465 +
3466 + regno = REGNO (x);
3467 + if (!VFP_REGNO_OK_FOR_SINGLE (regno))
3468 + {
3469 + output_operand_lossage ("invalid operand for code '%c'", code);
3470 + return;
3471 + }
3472 +
3473 + regno = regno - FIRST_VFP_REGNUM;
3474 + fprintf (stream, "d%d[%d]", regno/2, ((regno % 2) ? 2 : 0));
3475 + }
3476 + return;
3477 +
3478 default:
3479 if (x == 0)
3480 {
3481 @@ -13854,6 +15258,12 @@
3482 default:
3483 gcc_assert (GET_CODE (x) != NEG);
3484 fputc ('#', stream);
3485 + if (GET_CODE (x) == HIGH)
3486 + {
3487 + fputs (":lower16:", stream);
3488 + x = XEXP (x, 0);
3489 + }
3490 +
3491 output_addr_const (stream, x);
3492 break;
3493 }
3494 @@ -14245,6 +15655,10 @@
3495 first insn after the following code_label if REVERSE is true. */
3496 rtx start_insn = insn;
3497
3498 + /* Don't do this if we're not considering conditional execution. */
3499 + if (TARGET_NO_SINGLE_COND_EXEC)
3500 + return;
3501 +
3502 /* If in state 4, check if the target branch is reached, in order to
3503 change back to state 0. */
3504 if (arm_ccfsm_state == 4)
3505 @@ -14618,6 +16032,11 @@
3506 if (mode == DFmode)
3507 return VFP_REGNO_OK_FOR_DOUBLE (regno);
3508
3509 + /* VFP registers can hold HFmode values, but there is no point in
3510 + putting them there unless we have hardware conversion insns. */
3511 + if (mode == HFmode)
3512 + return TARGET_FP16 && VFP_REGNO_OK_FOR_SINGLE (regno);
3513 +
3514 if (TARGET_NEON)
3515 return (VALID_NEON_DREG_MODE (mode) && VFP_REGNO_OK_FOR_DOUBLE (regno))
3516 || (VALID_NEON_QREG_MODE (mode)
3517 @@ -14637,16 +16056,16 @@
3518 return mode == SImode;
3519
3520 if (IS_IWMMXT_REGNUM (regno))
3521 - return VALID_IWMMXT_REG_MODE (mode);
3522 + return VALID_IWMMXT_REG_MODE (mode) && mode != SImode;
3523 }
3524
3525 - /* We allow any value to be stored in the general registers.
3526 + /* We allow almost any value to be stored in the general registers.
3527 Restrict doubleword quantities to even register pairs so that we can
3528 - use ldrd. Do not allow Neon structure opaque modes in general registers;
3529 - they would use too many. */
3530 + use ldrd. Do not allow very large Neon structure opaque modes in
3531 + general registers; they would use too many. */
3532 if (regno <= LAST_ARM_REGNUM)
3533 return !(TARGET_LDRD && GET_MODE_SIZE (mode) > 4 && (regno & 1) != 0)
3534 - && !VALID_NEON_STRUCT_MODE (mode);
3535 + && ARM_NUM_REGS (mode) <= 4;
3536
3537 if (regno == FRAME_POINTER_REGNUM
3538 || regno == ARG_POINTER_REGNUM)
3539 @@ -16103,6 +17522,15 @@
3540 }
3541
3542 static void
3543 +arm_init_fp16_builtins (void)
3544 +{
3545 + tree fp16_type = make_node (REAL_TYPE);
3546 + TYPE_PRECISION (fp16_type) = 16;
3547 + layout_type (fp16_type);
3548 + (*lang_hooks.types.register_builtin_type) (fp16_type, "__fp16");
3549 +}
3550 +
3551 +static void
3552 arm_init_builtins (void)
3553 {
3554 arm_init_tls_builtins ();
3555 @@ -16112,6 +17540,71 @@
3556
3557 if (TARGET_NEON)
3558 arm_init_neon_builtins ();
3559 +
3560 + if (arm_fp16_format)
3561 + arm_init_fp16_builtins ();
3562 +}
3563 +
3564 +/* Implement TARGET_INVALID_PARAMETER_TYPE. */
3565 +
3566 +static const char *
3567 +arm_invalid_parameter_type (const_tree t)
3568 +{
3569 + if (SCALAR_FLOAT_TYPE_P (t) && TYPE_PRECISION (t) == 16)
3570 + return N_("function parameters cannot have __fp16 type");
3571 + return NULL;
3572 +}
3573 +
3574 +/* Implement TARGET_INVALID_PARAMETER_TYPE. */
3575 +
3576 +static const char *
3577 +arm_invalid_return_type (const_tree t)
3578 +{
3579 + if (SCALAR_FLOAT_TYPE_P (t) && TYPE_PRECISION (t) == 16)
3580 + return N_("functions cannot return __fp16 type");
3581 + return NULL;
3582 +}
3583 +
3584 +/* Implement TARGET_PROMOTED_TYPE. */
3585 +
3586 +static tree
3587 +arm_promoted_type (const_tree t)
3588 +{
3589 + if (SCALAR_FLOAT_TYPE_P (t) && TYPE_PRECISION (t) == 16)
3590 + return float_type_node;
3591 + return NULL_TREE;
3592 +}
3593 +
3594 +/* Implement TARGET_CONVERT_TO_TYPE.
3595 + Specifically, this hook implements the peculiarity of the ARM
3596 + half-precision floating-point C semantics that requires conversions between
3597 + __fp16 to or from double to do an intermediate conversion to float. */
3598 +
3599 +static tree
3600 +arm_convert_to_type (tree type, tree expr)
3601 +{
3602 + tree fromtype = TREE_TYPE (expr);
3603 + if (!SCALAR_FLOAT_TYPE_P (fromtype) || !SCALAR_FLOAT_TYPE_P (type))
3604 + return NULL_TREE;
3605 + if ((TYPE_PRECISION (fromtype) == 16 && TYPE_PRECISION (type) > 32)
3606 + || (TYPE_PRECISION (type) == 16 && TYPE_PRECISION (fromtype) > 32))
3607 + return convert (type, convert (float_type_node, expr));
3608 + return NULL_TREE;
3609 +}
3610 +
3611 +/* Implement TARGET_SCALAR_MODE_SUPPORTED_P.
3612 + This simply adds HFmode as a supported mode; even though we don't
3613 + implement arithmetic on this type directly, it's supported by
3614 + optabs conversions, much the way the double-word arithmetic is
3615 + special-cased in the default hook. */
3616 +
3617 +static bool
3618 +arm_scalar_mode_supported_p (enum machine_mode mode)
3619 +{
3620 + if (mode == HFmode)
3621 + return (arm_fp16_format != ARM_FP16_FORMAT_NONE);
3622 + else
3623 + return default_scalar_mode_supported_p (mode);
3624 }
3625
3626 /* Errors in the source file can cause expand_expr to return const0_rtx
3627 @@ -17191,6 +18684,7 @@
3628 unsigned HOST_WIDE_INT mask = 0xff;
3629 int i;
3630
3631 + val = val & (unsigned HOST_WIDE_INT)0xffffffffu;
3632 if (val == 0) /* XXX */
3633 return 0;
3634
3635 @@ -18279,40 +19773,8 @@
3636 else
3637 {
3638 int set_float_abi_attributes = 0;
3639 - switch (arm_fpu_arch)
3640 - {
3641 - case FPUTYPE_FPA:
3642 - fpu_name = "fpa";
3643 - break;
3644 - case FPUTYPE_FPA_EMU2:
3645 - fpu_name = "fpe2";
3646 - break;
3647 - case FPUTYPE_FPA_EMU3:
3648 - fpu_name = "fpe3";
3649 - break;
3650 - case FPUTYPE_MAVERICK:
3651 - fpu_name = "maverick";
3652 - break;
3653 - case FPUTYPE_VFP:
3654 - fpu_name = "vfp";
3655 - set_float_abi_attributes = 1;
3656 - break;
3657 - case FPUTYPE_VFP3D16:
3658 - fpu_name = "vfpv3-d16";
3659 - set_float_abi_attributes = 1;
3660 - break;
3661 - case FPUTYPE_VFP3:
3662 - fpu_name = "vfpv3";
3663 - set_float_abi_attributes = 1;
3664 - break;
3665 - case FPUTYPE_NEON:
3666 - fpu_name = "neon";
3667 - set_float_abi_attributes = 1;
3668 - break;
3669 - default:
3670 - abort();
3671 - }
3672 - if (set_float_abi_attributes)
3673 + fpu_name = arm_fpu_desc->name;
3674 + if (arm_fp_model == ARM_FP_MODEL_VFP)
3675 {
3676 if (TARGET_HARD_FLOAT)
3677 asm_fprintf (asm_out_file, "\t.eabi_attribute 27, 3\n");
3678 @@ -18362,6 +19824,11 @@
3679 val = 6;
3680 asm_fprintf (asm_out_file, "\t.eabi_attribute 30, %d\n", val);
3681
3682 + /* Tag_ABI_FP_16bit_format. */
3683 + if (arm_fp16_format)
3684 + asm_fprintf (asm_out_file, "\t.eabi_attribute 38, %d\n",
3685 + (int)arm_fp16_format);
3686 +
3687 if (arm_lang_output_object_attributes_hook)
3688 arm_lang_output_object_attributes_hook();
3689 }
3690 @@ -18591,6 +20058,23 @@
3691 return 1;
3692 }
3693
3694 +/* Emit a fp16 constant appropriately padded to occupy a 4-byte word.
3695 + HFmode constant pool entries are actually loaded with ldr. */
3696 +void
3697 +arm_emit_fp16_const (rtx c)
3698 +{
3699 + REAL_VALUE_TYPE r;
3700 + long bits;
3701 +
3702 + REAL_VALUE_FROM_CONST_DOUBLE (r, c);
3703 + bits = real_to_target (NULL, &r, HFmode);
3704 + if (WORDS_BIG_ENDIAN)
3705 + assemble_zeros (2);
3706 + assemble_integer (GEN_INT (bits), 2, BITS_PER_WORD, 1);
3707 + if (!WORDS_BIG_ENDIAN)
3708 + assemble_zeros (2);
3709 +}
3710 +
3711 const char *
3712 arm_output_load_gr (rtx *operands)
3713 {
3714 @@ -18628,19 +20112,24 @@
3715 that way. */
3716
3717 static void
3718 -arm_setup_incoming_varargs (CUMULATIVE_ARGS *cum,
3719 +arm_setup_incoming_varargs (CUMULATIVE_ARGS *pcum,
3720 enum machine_mode mode,
3721 tree type,
3722 int *pretend_size,
3723 int second_time ATTRIBUTE_UNUSED)
3724 {
3725 - int nregs = cum->nregs;
3726 - if (nregs & 1
3727 - && ARM_DOUBLEWORD_ALIGN
3728 - && arm_needs_doubleword_align (mode, type))
3729 - nregs++;
3730 -
3731 + int nregs;
3732 +
3733 cfun->machine->uses_anonymous_args = 1;
3734 + if (pcum->pcs_variant <= ARM_PCS_AAPCS_LOCAL)
3735 + {
3736 + nregs = pcum->aapcs_ncrn;
3737 + if ((nregs & 1) && arm_needs_doubleword_align (mode, type))
3738 + nregs++;
3739 + }
3740 + else
3741 + nregs = pcum->nregs;
3742 +
3743 if (nregs < NUM_ARG_REGS)
3744 *pretend_size = (NUM_ARG_REGS - nregs) * UNITS_PER_WORD;
3745 }
3746 @@ -19024,9 +20513,10 @@
3747 || mode == V16QImode || mode == V4SFmode || mode == V2DImode))
3748 return true;
3749
3750 - if ((mode == V2SImode)
3751 - || (mode == V4HImode)
3752 - || (mode == V8QImode))
3753 + if ((TARGET_NEON || TARGET_IWMMXT)
3754 + && ((mode == V2SImode)
3755 + || (mode == V4HImode)
3756 + || (mode == V8QImode)))
3757 return true;
3758
3759 return false;
3760 @@ -19057,9 +20547,14 @@
3761 if (IS_FPA_REGNUM (regno))
3762 return (TARGET_AAPCS_BASED ? 96 : 16) + regno - FIRST_FPA_REGNUM;
3763
3764 - /* FIXME: VFPv3 register numbering. */
3765 if (IS_VFP_REGNUM (regno))
3766 - return 64 + regno - FIRST_VFP_REGNUM;
3767 + {
3768 + /* See comment in arm_dwarf_register_span. */
3769 + if (VFP_REGNO_OK_FOR_SINGLE (regno))
3770 + return 64 + regno - FIRST_VFP_REGNUM;
3771 + else
3772 + return 256 + (regno - FIRST_VFP_REGNUM) / 2;
3773 + }
3774
3775 if (IS_IWMMXT_GR_REGNUM (regno))
3776 return 104 + regno - FIRST_IWMMXT_GR_REGNUM;
3777 @@ -19070,6 +20565,39 @@
3778 gcc_unreachable ();
3779 }
3780
3781 +/* Dwarf models VFPv3 registers as 32 64-bit registers.
3782 + GCC models tham as 64 32-bit registers, so we need to describe this to
3783 + the DWARF generation code. Other registers can use the default. */
3784 +static rtx
3785 +arm_dwarf_register_span(rtx rtl)
3786 +{
3787 + unsigned regno;
3788 + int nregs;
3789 + int i;
3790 + rtx p;
3791 +
3792 + regno = REGNO (rtl);
3793 + if (!IS_VFP_REGNUM (regno))
3794 + return NULL_RTX;
3795 +
3796 + /* The EABI defines two VFP register ranges:
3797 + 64-95: Legacy VFPv2 numbering for S0-S31 (obsolescent)
3798 + 256-287: D0-D31
3799 + The recommended encodings for s0-s31 is a DW_OP_bit_piece of the
3800 + corresponding D register. However gdb6.6 does not support this, so
3801 + we use the legacy encodings. We also use these encodings for D0-D15
3802 + for compatibility with older debuggers. */
3803 + if (VFP_REGNO_OK_FOR_SINGLE (regno))
3804 + return NULL_RTX;
3805 +
3806 + nregs = GET_MODE_SIZE (GET_MODE (rtl)) / 8;
3807 + p = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc(nregs));
3808 + regno = (regno - FIRST_VFP_REGNUM) / 2;
3809 + for (i = 0; i < nregs; i++)
3810 + XVECEXP (p, 0, i) = gen_rtx_REG (DImode, 256 + regno + i);
3811 +
3812 + return p;
3813 +}
3814
3815 #ifdef TARGET_UNWIND_INFO
3816 /* Emit unwind directives for a store-multiple instruction or stack pointer
3817 @@ -19556,6 +21084,7 @@
3818 case cortexr4f:
3819 case cortexa8:
3820 case cortexa9:
3821 + case marvell_f:
3822 return 2;
3823
3824 default:
3825 @@ -19620,6 +21149,10 @@
3826 return "St9__va_list";
3827 }
3828
3829 + /* Half-precision float. */
3830 + if (TREE_CODE (type) == REAL_TYPE && TYPE_PRECISION (type) == 16)
3831 + return "Dh";
3832 +
3833 if (TREE_CODE (type) != VECTOR_TYPE)
3834 return NULL;
3835
3836 @@ -19676,6 +21209,86 @@
3837 given on the command line. */
3838 if (level > 0)
3839 flag_section_anchors = 2;
3840 +
3841 + if (size)
3842 + {
3843 + /* Select optimizations that are a win for code size.
3844 +
3845 + The inlining options set below have two important
3846 + consequences for functions not explicitly marked
3847 + inline:
3848 + - Static functions used once are inlined if
3849 + sufficiently small. Static functions used twice
3850 + are not inlined.
3851 + - Non-static functions are never inlined.
3852 + So in effect, inlining will never cause two copies
3853 + of function bodies to be created. */
3854 + /* Empirical results show that these options benefit code
3855 + size on arm. */
3856 + /* FIXME: -fsee seems to be broken for Thumb-2. */
3857 + /* flag_see = 1; */
3858 + flag_move_loop_invariants = 0;
3859 + /* In Thumb mode the function call code size overhead is typically very
3860 + small, and narrow branch instructions have very limited range.
3861 + Inlining even medium sized functions tends to bloat the caller and
3862 + require the use of long branch instructions. On average the long
3863 + branches cost more than eliminating the function call overhead saves,
3864 + so we use extremely restrictive automatic inlining heuristics. In ARM
3865 + mode the results are fairly neutral, probably due to better constant
3866 + pool placement. */
3867 + set_param_value ("max-inline-insns-single", 1);
3868 + set_param_value ("max-inline-insns-auto", 1);
3869 + }
3870 + else
3871 + {
3872 + /* CSL LOCAL */
3873 + /* Set flag_unroll_loops to a default value, so that we can tell
3874 + if it was specified on the command line; see
3875 + arm_override_options. */
3876 + flag_unroll_loops = 2;
3877 + /* Promote loop indices to int where possible. Consider moving this
3878 + to -Os, also. */
3879 + flag_promote_loop_indices = 1;
3880 + }
3881 +}
3882 +
3883 +/* Return how many instructions to look ahead for better insn
3884 + scheduling. */
3885 +static int
3886 +arm_multipass_dfa_lookahead (void)
3887 +{
3888 + return (arm_tune == marvell_f) ? 4 : 0;
3889 +}
3890 +
3891 +/* Return the minimum alignment required to load or store a
3892 + vector of the given type, which may be less than the
3893 + natural alignment of the type. */
3894 +
3895 +static int
3896 +arm_vector_min_alignment (const_tree type)
3897 +{
3898 + if (TARGET_NEON)
3899 + {
3900 + /* The NEON element load and store instructions only require the
3901 + alignment of the element type. They can benefit from higher
3902 + statically reported alignment, but we do not take advantage
3903 + of that yet. */
3904 + gcc_assert (TREE_CODE (type) == VECTOR_TYPE);
3905 + return TYPE_ALIGN_UNIT (TREE_TYPE (type));
3906 + }
3907 +
3908 + return default_vector_min_alignment (type);
3909 +}
3910 +
3911 +static bool
3912 +arm_vector_always_misalign(const_tree type ATTRIBUTE_UNUSED)
3913 +{
3914 + /* On big-endian targets array loads (vld1) and vector loads (vldm)
3915 + use a different format. Always use the "misaligned" array variant.
3916 + FIXME: this still doesn't work for big-endian because of constant
3917 + loads and other operations using vldm ordering. See
3918 + issue 6722. */
3919 + return TARGET_NEON && !BYTES_BIG_ENDIAN;
3920 }
3921
3922 #include "gt-arm.h"
3923 diff -Nur a/gcc/config/arm/arm-cores.def b/gcc/config/arm/arm-cores.def
3924 --- a/gcc/config/arm/arm-cores.def 2009-02-20 16:20:38.000000000 +0100
3925 +++ b/gcc/config/arm/arm-cores.def 2010-01-25 09:50:28.975687047 +0100
3926 @@ -104,6 +104,7 @@
3927 ARM_CORE("xscale", xscale, 5TE, FL_LDSCHED | FL_STRONG | FL_XSCALE, xscale)
3928 ARM_CORE("iwmmxt", iwmmxt, 5TE, FL_LDSCHED | FL_STRONG | FL_XSCALE | FL_IWMMXT, xscale)
3929 ARM_CORE("iwmmxt2", iwmmxt2, 5TE, FL_LDSCHED | FL_STRONG | FL_XSCALE | FL_IWMMXT, xscale)
3930 +ARM_CORE("marvell-f", marvell_f, 5TE, FL_LDSCHED | FL_VFPV2 | FL_MARVELL_F, 9e)
3931
3932 /* V5TEJ Architecture Processors */
3933 ARM_CORE("arm926ej-s", arm926ejs, 5TEJ, FL_LDSCHED, 9e)
3934 @@ -117,9 +118,13 @@
3935 ARM_CORE("mpcorenovfp", mpcorenovfp, 6K, FL_LDSCHED, 9e)
3936 ARM_CORE("mpcore", mpcore, 6K, FL_LDSCHED | FL_VFPV2, 9e)
3937 ARM_CORE("arm1156t2-s", arm1156t2s, 6T2, FL_LDSCHED, 9e)
3938 +
3939 +/* V7 Architecture Processors */
3940 +ARM_CORE("cortex-a5", cortexa5, 7A, FL_LDSCHED, 9e)
3941 ARM_CORE("cortex-a8", cortexa8, 7A, FL_LDSCHED, 9e)
3942 ARM_CORE("cortex-a9", cortexa9, 7A, FL_LDSCHED, 9e)
3943 ARM_CORE("cortex-r4", cortexr4, 7R, FL_LDSCHED, 9e)
3944 ARM_CORE("cortex-r4f", cortexr4f, 7R, FL_LDSCHED, 9e)
3945 ARM_CORE("cortex-m3", cortexm3, 7M, FL_LDSCHED, 9e)
3946 ARM_CORE("cortex-m1", cortexm1, 6M, FL_LDSCHED, 9e)
3947 +ARM_CORE("cortex-m0", cortexm0, 6M, FL_LDSCHED, 9e)
3948 diff -Nur a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
3949 --- a/gcc/config/arm/arm.h 2009-04-23 02:31:13.000000000 +0200
3950 +++ b/gcc/config/arm/arm.h 2010-01-25 09:50:28.975687047 +0100
3951 @@ -85,6 +85,10 @@
3952 builtin_define ("__IWMMXT__"); \
3953 if (TARGET_AAPCS_BASED) \
3954 builtin_define ("__ARM_EABI__"); \
3955 + if (arm_tune_marvell_f) \
3956 + builtin_define ("__ARM_TUNE_MARVELL_F__"); \
3957 + if (low_irq_latency) \
3958 + builtin_define ("__low_irq_latency__"); \
3959 } while (0)
3960
3961 /* The various ARM cores. */
3962 @@ -199,6 +203,13 @@
3963 #define TARGET_AAPCS_BASED \
3964 (arm_abi != ARM_ABI_APCS && arm_abi != ARM_ABI_ATPCS)
3965
3966 +/* True if we should avoid generating conditional execution instructions. */
3967 +#define TARGET_NO_COND_EXEC (arm_tune_marvell_f && !optimize_size)
3968 +/* Avoid most conditional instructions, but allow pairs with opposite
3969 + conditions and the same destination. */
3970 +#define TARGET_NO_SINGLE_COND_EXEC \
3971 + ((arm_tune_cortex_a9 || arm_tune_marvell_f) && !optimize_size)
3972 +
3973 #define TARGET_HARD_TP (target_thread_pointer == TP_CP15)
3974 #define TARGET_SOFT_TP (target_thread_pointer == TP_SOFT)
3975
3976 @@ -211,35 +222,43 @@
3977 /* Thumb-1 only. */
3978 #define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm)
3979
3980 +#define TARGET_FPA_EMU2 (TARGET_FPA && arm_fpu_desc->rev == 2)
3981 /* The following two macros concern the ability to execute coprocessor
3982 instructions for VFPv3 or NEON. TARGET_VFP3/TARGET_VFPD32 are currently
3983 only ever tested when we know we are generating for VFP hardware; we need
3984 to be more careful with TARGET_NEON as noted below. */
3985
3986 /* FPU is has the full VFPv3/NEON register file of 32 D registers. */
3987 -#define TARGET_VFPD32 (arm_fp_model == ARM_FP_MODEL_VFP \
3988 - && (arm_fpu_arch == FPUTYPE_VFP3 \
3989 - || arm_fpu_arch == FPUTYPE_NEON))
3990 +#define TARGET_VFPD32 (TARGET_VFP && arm_arch_vfp_regs == VFP_REG_D32)
3991
3992 /* FPU supports VFPv3 instructions. */
3993 -#define TARGET_VFP3 (arm_fp_model == ARM_FP_MODEL_VFP \
3994 - && (arm_fpu_arch == FPUTYPE_VFP3D16 \
3995 - || TARGET_VFPD32))
3996 +#define TARGET_VFP3 (TARGET_VFP && arm_arch_vfp_rev >= 3)
3997 +
3998 +/* FPU only supports VFP single-precision instructions. */
3999 +#define TARGET_VFP_SINGLE (TARGET_VFP && arm_arch_vfp_regs == VFP_REG_SINGLE)
4000 +
4001 +/* FPU supports VFP double-precision instructions. */
4002 +#define TARGET_VFP_DOUBLE (TARGET_VFP && arm_arch_vfp_regs != VFP_REG_SINGLE)
4003 +
4004 +/* FPU supports half-precision floating-point with NEON element load/store. */
4005 +#define TARGET_NEON_FP16 (TARGET_VFP && arm_arch_vfp_neon && arm_arch_vfp_fp16)
4006 +
4007 +/* FPU supports VFP half-precision floating-point. */
4008 +#define TARGET_FP16 (TARGET_VFP && arm_arch_vfp_fp16)
4009
4010 /* FPU supports Neon instructions. The setting of this macro gets
4011 revealed via __ARM_NEON__ so we add extra guards upon TARGET_32BIT
4012 and TARGET_HARD_FLOAT to ensure that NEON instructions are
4013 available. */
4014 #define TARGET_NEON (TARGET_32BIT && TARGET_HARD_FLOAT \
4015 - && arm_fp_model == ARM_FP_MODEL_VFP \
4016 - && arm_fpu_arch == FPUTYPE_NEON)
4017 + && TARGET_VFP && arm_arch_vfp_neon)
4018
4019 /* "DSP" multiply instructions, eg. SMULxy. */
4020 #define TARGET_DSP_MULTIPLY \
4021 - (TARGET_32BIT && arm_arch5e && arm_arch_notm)
4022 + (TARGET_32BIT && arm_arch5e && (arm_arch_notm || arm_arch7em))
4023 /* Integer SIMD instructions, and extend-accumulate instructions. */
4024 #define TARGET_INT_SIMD \
4025 - (TARGET_32BIT && arm_arch6 && arm_arch_notm)
4026 + (TARGET_32BIT && arm_arch6 && (arm_arch_notm || arm_arch7em))
4027
4028 /* Should MOVW/MOVT be used in preference to a constant pool. */
4029 #define TARGET_USE_MOVT (arm_arch_thumb2 && !optimize_size)
4030 @@ -289,40 +308,30 @@
4031 ARM_FP_MODEL_VFP
4032 };
4033
4034 -extern enum arm_fp_model arm_fp_model;
4035 -
4036 -/* Which floating point hardware is available. Also update
4037 - fp_model_for_fpu in arm.c when adding entries to this list. */
4038 -enum fputype
4039 -{
4040 - /* No FP hardware. */
4041 - FPUTYPE_NONE,
4042 - /* Full FPA support. */
4043 - FPUTYPE_FPA,
4044 - /* Emulated FPA hardware, Issue 2 emulator (no LFM/SFM). */
4045 - FPUTYPE_FPA_EMU2,
4046 - /* Emulated FPA hardware, Issue 3 emulator. */
4047 - FPUTYPE_FPA_EMU3,
4048 - /* Cirrus Maverick floating point co-processor. */
4049 - FPUTYPE_MAVERICK,
4050 - /* VFP. */
4051 - FPUTYPE_VFP,
4052 - /* VFPv3-D16. */
4053 - FPUTYPE_VFP3D16,
4054 - /* VFPv3. */
4055 - FPUTYPE_VFP3,
4056 - /* Neon. */
4057 - FPUTYPE_NEON
4058 +enum vfp_reg_type {
4059 + VFP_REG_D16,
4060 + VFP_REG_D32,
4061 + VFP_REG_SINGLE
4062 };
4063
4064 -/* Recast the floating point class to be the floating point attribute. */
4065 -#define arm_fpu_attr ((enum attr_fpu) arm_fpu_tune)
4066 -
4067 -/* What type of floating point to tune for */
4068 -extern enum fputype arm_fpu_tune;
4069 +extern const struct arm_fpu_desc
4070 +{
4071 + const char *name;
4072 + enum arm_fp_model model;
4073 + int rev;
4074 + enum vfp_reg_type myregs;
4075 + int neon;
4076 + int fp16;
4077 +} *arm_fpu_desc;
4078 +
4079 +#define arm_fp_model arm_fpu_desc->model
4080 +#define arm_arch_vfp_rev arm_fpu_desc->rev
4081 +#define arm_arch_vfp_regs arm_fpu_desc->myregs
4082 +#define arm_arch_vfp_neon arm_fpu_desc->neon
4083 +#define arm_arch_vfp_fp16 arm_fpu_desc->fp16
4084
4085 -/* What type of floating point instructions are available */
4086 -extern enum fputype arm_fpu_arch;
4087 +/* Which floating point hardware to schedule for. */
4088 +extern int arm_fpu_attr;
4089
4090 enum float_abi_type
4091 {
4092 @@ -337,6 +346,21 @@
4093 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
4094 #endif
4095
4096 +/* Which __fp16 format to use.
4097 + The enumeration values correspond to the numbering for the
4098 + Tag_ABI_FP_16bit_format attribute.
4099 + */
4100 +enum arm_fp16_format_type
4101 +{
4102 + ARM_FP16_FORMAT_NONE = 0,
4103 + ARM_FP16_FORMAT_IEEE = 1,
4104 + ARM_FP16_FORMAT_ALTERNATIVE = 2
4105 +};
4106 +
4107 +extern enum arm_fp16_format_type arm_fp16_format;
4108 +#define LARGEST_EXPONENT_IS_NORMAL(bits) \
4109 + ((bits) == 16 && arm_fp16_format == ARM_FP16_FORMAT_ALTERNATIVE)
4110 +
4111 /* Which ABI to use. */
4112 enum arm_abi_type
4113 {
4114 @@ -383,12 +407,18 @@
4115 /* Nonzero if instructions not present in the 'M' profile can be used. */
4116 extern int arm_arch_notm;
4117
4118 +/* Nonzero if instructions present in ARMv7E-M can be used. */
4119 +extern int arm_arch7em;
4120 +
4121 /* Nonzero if this chip can benefit from load scheduling. */
4122 extern int arm_ld_sched;
4123
4124 /* Nonzero if generating thumb code. */
4125 extern int thumb_code;
4126
4127 +/* Nonzero if generating Janus2 code. */
4128 +extern int janus2_code;
4129 +
4130 /* Nonzero if this chip is a StrongARM. */
4131 extern int arm_tune_strongarm;
4132
4133 @@ -404,6 +434,9 @@
4134 /* Nonzero if tuning for XScale. */
4135 extern int arm_tune_xscale;
4136
4137 +/* Nonzero if tuning for Marvell Feroceon. */
4138 +extern int arm_tune_marvell_f;
4139 +
4140 /* Nonzero if tuning for stores via the write buffer. */
4141 extern int arm_tune_wbuf;
4142
4143 @@ -423,6 +456,10 @@
4144 /* Nonzero if chip supports integer division instruction. */
4145 extern int arm_arch_hwdiv;
4146
4147 +/* Nonzero if we should minimize interrupt latency of the
4148 + generated code. */
4149 +extern int low_irq_latency;
4150 +
4151 #ifndef TARGET_DEFAULT
4152 #define TARGET_DEFAULT (MASK_APCS_FRAME)
4153 #endif
4154 @@ -757,12 +794,11 @@
4155 fixed_regs[regno] = call_used_regs[regno] = 1; \
4156 } \
4157 \
4158 - if (TARGET_THUMB && optimize_size) \
4159 - { \
4160 - /* When optimizing for size, it's better not to use \
4161 - the HI regs, because of the overhead of stacking \
4162 - them. */ \
4163 - /* ??? Is this still true for thumb2? */ \
4164 + if (TARGET_THUMB1 && optimize_size) \
4165 + { \
4166 + /* When optimizing for size on Thumb-1, it's better not \
4167 + to use the HI regs, because of the overhead of \
4168 + stacking them. */ \
4169 for (regno = FIRST_HI_REGNUM; \
4170 regno <= LAST_HI_REGNUM; ++regno) \
4171 fixed_regs[regno] = call_used_regs[regno] = 1; \
4172 @@ -881,6 +917,9 @@
4173 /* The number of (integer) argument register available. */
4174 #define NUM_ARG_REGS 4
4175
4176 +/* And similarly for the VFP. */
4177 +#define NUM_VFP_ARG_REGS 16
4178 +
4179 /* Return the register number of the N'th (integer) argument. */
4180 #define ARG_REGISTER(N) (N - 1)
4181
4182 @@ -1059,7 +1098,7 @@
4183 (GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2))
4184
4185 #define VALID_IWMMXT_REG_MODE(MODE) \
4186 - (arm_vector_mode_supported_p (MODE) || (MODE) == DImode)
4187 + (arm_vector_mode_supported_p (MODE) || (MODE) == DImode || (MODE) == SImode)
4188
4189 /* Modes valid for Neon D registers. */
4190 #define VALID_NEON_DREG_MODE(MODE) \
4191 @@ -1230,11 +1269,14 @@
4192 || reg_classes_intersect_p (VFP_REGS, (CLASS)) \
4193 : 0)
4194
4195 -/* We need to define this for LO_REGS on thumb. Otherwise we can end up
4196 - using r0-r4 for function arguments, r7 for the stack frame and don't
4197 - have enough left over to do doubleword arithmetic. */
4198 +/* We need to define this for LO_REGS on Thumb-1. Otherwise we can end up
4199 + using r0-r4 for function arguments, r7 for the stack frame and don't have
4200 + enough left over to do doubleword arithmetic. For Thumb-2 all the
4201 + potentially problematic instructions accept high registers so this is not
4202 + necessary. Care needs to be taken to avoid adding new Thumb-2 patterns
4203 + that require many low registers. */
4204 #define CLASS_LIKELY_SPILLED_P(CLASS) \
4205 - ((TARGET_THUMB && (CLASS) == LO_REGS) \
4206 + ((TARGET_THUMB1 && (CLASS) == LO_REGS) \
4207 || (CLASS) == CC_REG)
4208
4209 /* The class value for index registers, and the one for base regs. */
4210 @@ -1245,7 +1287,7 @@
4211 when addressing quantities in QI or HI mode; if we don't know the
4212 mode, then we must be conservative. */
4213 #define MODE_BASE_REG_CLASS(MODE) \
4214 - (TARGET_32BIT ? CORE_REGS : \
4215 + (TARGET_32BIT ? (TARGET_THUMB2 ? LO_REGS : CORE_REGS) : \
4216 (((MODE) == SImode) ? BASE_REGS : LO_REGS))
4217
4218 /* For Thumb we can not support SP+reg addressing, so we return LO_REGS
4219 @@ -1346,6 +1388,9 @@
4220 else if (TARGET_MAVERICK && TARGET_HARD_FLOAT) \
4221 /* Need to be careful, -256 is not a valid offset. */ \
4222 low = val >= 0 ? (val & 0xff) : -((-val) & 0xff); \
4223 + else if (TARGET_REALLY_IWMMXT && MODE == SImode) \
4224 + /* Need to be careful, -1024 is not a valid offset. */ \
4225 + low = val >= 0 ? (val & 0x3ff) : -((-val) & 0x3ff); \
4226 else if (MODE == SImode \
4227 || (MODE == SFmode && TARGET_SOFT_FLOAT) \
4228 || ((MODE == HImode || MODE == QImode) && ! arm_arch4)) \
4229 @@ -1416,13 +1461,17 @@
4230 /* If defined, gives a class of registers that cannot be used as the
4231 operand of a SUBREG that changes the mode of the object illegally. */
4232
4233 -/* Moves between FPA_REGS and GENERAL_REGS are two memory insns. */
4234 +/* Moves between FPA_REGS and GENERAL_REGS are two memory insns.
4235 + Moves between VFP_REGS and GENERAL_REGS are a single insn, but
4236 + it is typically more expensive than a single memory access. We set
4237 + the cost to less than two memory accesses so that floating
4238 + point to integer conversion does not go through memory. */
4239 #define REGISTER_MOVE_COST(MODE, FROM, TO) \
4240 (TARGET_32BIT ? \
4241 ((FROM) == FPA_REGS && (TO) != FPA_REGS ? 20 : \
4242 (FROM) != FPA_REGS && (TO) == FPA_REGS ? 20 : \
4243 - IS_VFP_CLASS (FROM) && !IS_VFP_CLASS (TO) ? 10 : \
4244 - !IS_VFP_CLASS (FROM) && IS_VFP_CLASS (TO) ? 10 : \
4245 + IS_VFP_CLASS (FROM) && !IS_VFP_CLASS (TO) ? 15 : \
4246 + !IS_VFP_CLASS (FROM) && IS_VFP_CLASS (TO) ? 15 : \
4247 (FROM) == IWMMXT_REGS && (TO) != IWMMXT_REGS ? 4 : \
4248 (FROM) != IWMMXT_REGS && (TO) == IWMMXT_REGS ? 4 : \
4249 (FROM) == IWMMXT_GR_REGS || (TO) == IWMMXT_GR_REGS ? 20 : \
4250 @@ -1491,9 +1540,10 @@
4251
4252 /* Define how to find the value returned by a library function
4253 assuming the value has mode MODE. */
4254 -#define LIBCALL_VALUE(MODE) \
4255 - (TARGET_32BIT && TARGET_HARD_FLOAT_ABI && TARGET_FPA \
4256 - && GET_MODE_CLASS (MODE) == MODE_FLOAT \
4257 +#define LIBCALL_VALUE(MODE) \
4258 + (TARGET_AAPCS_BASED ? aapcs_libcall_value (MODE) \
4259 + : (TARGET_32BIT && TARGET_HARD_FLOAT_ABI && TARGET_FPA \
4260 + && GET_MODE_CLASS (MODE) == MODE_FLOAT) \
4261 ? gen_rtx_REG (MODE, FIRST_FPA_REGNUM) \
4262 : TARGET_32BIT && TARGET_HARD_FLOAT_ABI && TARGET_MAVERICK \
4263 && GET_MODE_CLASS (MODE) == MODE_FLOAT \
4264 @@ -1502,22 +1552,16 @@
4265 ? gen_rtx_REG (MODE, FIRST_IWMMXT_REGNUM) \
4266 : gen_rtx_REG (MODE, ARG_REGISTER (1)))
4267
4268 -/* Define how to find the value returned by a function.
4269 - VALTYPE is the data type of the value (as a tree).
4270 - If the precise function being called is known, FUNC is its FUNCTION_DECL;
4271 - otherwise, FUNC is 0. */
4272 -#define FUNCTION_VALUE(VALTYPE, FUNC) \
4273 - arm_function_value (VALTYPE, FUNC);
4274 -
4275 -/* 1 if N is a possible register number for a function value.
4276 - On the ARM, only r0 and f0 can return results. */
4277 -/* On a Cirrus chip, mvf0 can return results. */
4278 -#define FUNCTION_VALUE_REGNO_P(REGNO) \
4279 - ((REGNO) == ARG_REGISTER (1) \
4280 - || (TARGET_32BIT && ((REGNO) == FIRST_CIRRUS_FP_REGNUM) \
4281 - && TARGET_HARD_FLOAT_ABI && TARGET_MAVERICK) \
4282 - || ((REGNO) == FIRST_IWMMXT_REGNUM && TARGET_IWMMXT_ABI) \
4283 - || (TARGET_32BIT && ((REGNO) == FIRST_FPA_REGNUM) \
4284 +/* 1 if REGNO is a possible register number for a function value. */
4285 +#define FUNCTION_VALUE_REGNO_P(REGNO) \
4286 + ((REGNO) == ARG_REGISTER (1) \
4287 + || (TARGET_AAPCS_BASED && TARGET_32BIT \
4288 + && TARGET_VFP && TARGET_HARD_FLOAT \
4289 + && (REGNO) == FIRST_VFP_REGNUM) \
4290 + || (TARGET_32BIT && ((REGNO) == FIRST_CIRRUS_FP_REGNUM) \
4291 + && TARGET_HARD_FLOAT_ABI && TARGET_MAVERICK) \
4292 + || ((REGNO) == FIRST_IWMMXT_REGNUM && TARGET_IWMMXT_ABI) \
4293 + || (TARGET_32BIT && ((REGNO) == FIRST_FPA_REGNUM) \
4294 && TARGET_HARD_FLOAT_ABI && TARGET_FPA))
4295
4296 /* Amount of memory needed for an untyped call to save all possible return
4297 @@ -1617,9 +1661,27 @@
4298 that is in text_section. */
4299 extern GTY(()) rtx thumb_call_via_label[14];
4300
4301 +/* The number of potential ways of assigning to a co-processor. */
4302 +#define ARM_NUM_COPROC_SLOTS 1
4303 +
4304 +/* Enumeration of procedure calling standard variants. We don't really
4305 + support all of these yet. */
4306 +enum arm_pcs
4307 +{
4308 + ARM_PCS_AAPCS, /* Base standard AAPCS. */
4309 + ARM_PCS_AAPCS_VFP, /* Use VFP registers for floating point values. */
4310 + ARM_PCS_AAPCS_IWMMXT, /* Use iWMMXT registers for vectors. */
4311 + /* This must be the last AAPCS variant. */
4312 + ARM_PCS_AAPCS_LOCAL, /* Private call within this compilation unit. */
4313 + ARM_PCS_ATPCS, /* ATPCS. */
4314 + ARM_PCS_APCS, /* APCS (legacy Linux etc). */
4315 + ARM_PCS_UNKNOWN
4316 +};
4317 +
4318 +/* We can't define this inside a generator file because it needs enum
4319 + machine_mode. */
4320 /* A C type for declaring a variable that is used as the first argument of
4321 - `FUNCTION_ARG' and other related values. For some target machines, the
4322 - type `int' suffices and can hold the number of bytes of argument so far. */
4323 + `FUNCTION_ARG' and other related values. */
4324 typedef struct
4325 {
4326 /* This is the number of registers of arguments scanned so far. */
4327 @@ -1628,9 +1690,33 @@
4328 int iwmmxt_nregs;
4329 int named_count;
4330 int nargs;
4331 - int can_split;
4332 + /* Which procedure call variant to use for this call. */
4333 + enum arm_pcs pcs_variant;
4334 +
4335 + /* AAPCS related state tracking. */
4336 + int aapcs_arg_processed; /* No need to lay out this argument again. */
4337 + int aapcs_cprc_slot; /* Index of co-processor rules to handle
4338 + this argument, or -1 if using core
4339 + registers. */
4340 + int aapcs_ncrn;
4341 + int aapcs_next_ncrn;
4342 + rtx aapcs_reg; /* Register assigned to this argument. */
4343 + int aapcs_partial; /* How many bytes are passed in regs (if
4344 + split between core regs and stack.
4345 + Zero otherwise. */
4346 + int aapcs_cprc_failed[ARM_NUM_COPROC_SLOTS];
4347 + int can_split; /* Argument can be split between core regs
4348 + and the stack. */
4349 + /* Private data for tracking VFP register allocation */
4350 + unsigned aapcs_vfp_regs_free;
4351 + unsigned aapcs_vfp_reg_alloc;
4352 + int aapcs_vfp_rcount;
4353 + /* Can't include insn-modes.h because this header is needed before we
4354 + generate it. */
4355 + int /* enum machine_mode */ aapcs_vfp_rmode;
4356 } CUMULATIVE_ARGS;
4357
4358 +
4359 /* Define where to put the arguments to a function.
4360 Value is zero to push the argument on the stack,
4361 or a hard register in which to store the argument.
4362 @@ -1674,13 +1760,7 @@
4363 of mode MODE and data type TYPE.
4364 (TYPE is null for libcalls where that information may not be available.) */
4365 #define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
4366 - (CUM).nargs += 1; \
4367 - if (arm_vector_mode_supported_p (MODE) \
4368 - && (CUM).named_count > (CUM).nargs \
4369 - && TARGET_IWMMXT_ABI) \
4370 - (CUM).iwmmxt_nregs += 1; \
4371 - else \
4372 - (CUM).nregs += ARM_NUM_REGS2 (MODE, TYPE)
4373 + arm_function_arg_advance (&(CUM), (MODE), (TYPE), (NAMED))
4374
4375 /* If defined, a C expression that gives the alignment boundary, in bits, of an
4376 argument with the specified mode and type. If it is not defined,
4377 @@ -1692,9 +1772,11 @@
4378
4379 /* 1 if N is a possible register number for function argument passing.
4380 On the ARM, r0-r3 are used to pass args. */
4381 -#define FUNCTION_ARG_REGNO_P(REGNO) \
4382 - (IN_RANGE ((REGNO), 0, 3) \
4383 - || (TARGET_IWMMXT_ABI \
4384 +#define FUNCTION_ARG_REGNO_P(REGNO) \
4385 + (IN_RANGE ((REGNO), 0, 3) \
4386 + || (TARGET_AAPCS_BASED && TARGET_VFP && TARGET_HARD_FLOAT \
4387 + && IN_RANGE ((REGNO), FIRST_VFP_REGNUM, FIRST_VFP_REGNUM + 15)) \
4388 + || (TARGET_IWMMXT_ABI \
4389 && IN_RANGE ((REGNO), FIRST_IWMMXT_REGNUM, FIRST_IWMMXT_REGNUM + 9)))
4390
4391 \f
4392 @@ -2324,7 +2406,8 @@
4393 /* Try to generate sequences that don't involve branches, we can then use
4394 conditional instructions */
4395 #define BRANCH_COST(speed_p, predictable_p) \
4396 - (TARGET_32BIT ? 4 : (optimize > 0 ? 2 : 0))
4397 + (TARGET_32BIT ? (TARGET_THUMB2 && optimize_size ? 1 : 4) \
4398 + : (optimize > 0 ? 2 : 0))
4399 \f
4400 /* Position Independent Code. */
4401 /* We decide which register to use based on the compilation options and
4402 @@ -2392,6 +2475,7 @@
4403
4404 /* The arm5 clz instruction returns 32. */
4405 #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = 32, 1)
4406 +#define CTZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = 32, 1)
4407 \f
4408 #undef ASM_APP_OFF
4409 #define ASM_APP_OFF (TARGET_THUMB1 ? "\t.code\t16\n" : \
4410 @@ -2404,6 +2488,19 @@
4411 if (TARGET_ARM) \
4412 asm_fprintf (STREAM,"\tstmfd\t%r!,{%r}\n", \
4413 STACK_POINTER_REGNUM, REGNO); \
4414 + else if (TARGET_THUMB1 \
4415 + && (REGNO) == STATIC_CHAIN_REGNUM) \
4416 + { \
4417 + /* We can't push STATIC_CHAIN_REGNUM (r12) directly with Thumb-1.
4418 + We know that ASM_OUTPUT_REG_PUSH will be matched with
4419 + ASM_OUTPUT_REG_POP, and that r7 isn't used by the function
4420 + profiler, so we can use it as a scratch reg. WARNING: This isn't
4421 + safe in the general case! It may be sensitive to future changes
4422 + in final.c:profile_function. */ \
4423 + asm_fprintf (STREAM, "\tpush\t{r7}\n"); \
4424 + asm_fprintf (STREAM, "\tmov\tr7, %r\n", REGNO);\
4425 + asm_fprintf (STREAM, "\tpush\t{r7}\n"); \
4426 + } \
4427 else \
4428 asm_fprintf (STREAM, "\tpush {%r}\n", REGNO); \
4429 } while (0)
4430 @@ -2415,6 +2512,14 @@
4431 if (TARGET_ARM) \
4432 asm_fprintf (STREAM, "\tldmfd\t%r!,{%r}\n", \
4433 STACK_POINTER_REGNUM, REGNO); \
4434 + else if (TARGET_THUMB1 \
4435 + && (REGNO) == STATIC_CHAIN_REGNUM) \
4436 + { \
4437 + /* See comment in ASM_OUTPUT_REG_PUSH. */ \
4438 + asm_fprintf (STREAM, "\tpop\t{r7}\n"); \
4439 + asm_fprintf (STREAM, "\tmov\t%r, r7\n", REGNO);\
4440 + asm_fprintf (STREAM, "\tpop\t{r7}\n"); \
4441 + } \
4442 else \
4443 asm_fprintf (STREAM, "\tpop {%r}\n", REGNO); \
4444 } while (0)
4445 diff -Nur a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
4446 --- a/gcc/config/arm/arm.md 2009-05-16 15:28:27.000000000 +0200
4447 +++ b/gcc/config/arm/arm.md 2010-01-25 09:50:28.985687200 +0100
4448 @@ -99,6 +99,7 @@
4449 ; correctly for PIC usage.
4450 (UNSPEC_GOTSYM_OFF 24) ; The offset of the start of the the GOT from a
4451 ; a given symbolic address.
4452 + (UNSPEC_RBIT 25) ; rbit operation.
4453 ]
4454 )
4455
4456 @@ -131,6 +132,8 @@
4457 (VUNSPEC_WCMP_EQ 12) ; Used by the iWMMXt WCMPEQ instructions
4458 (VUNSPEC_WCMP_GTU 13) ; Used by the iWMMXt WCMPGTU instructions
4459 (VUNSPEC_WCMP_GT 14) ; Used by the iwMMXT WCMPGT instructions
4460 + (VUNSPEC_ALIGN16 15) ; Used to force 16-byte alignment.
4461 + (VUNSPEC_ALIGN32 16) ; Used to force 32-byte alignment.
4462 (VUNSPEC_EH_RETURN 20); Use to override the return address for exception
4463 ; handling.
4464 ]
4465 @@ -144,6 +147,10 @@
4466 ; patterns that share the same RTL in both ARM and Thumb code.
4467 (define_attr "is_thumb" "no,yes" (const (symbol_ref "thumb_code")))
4468
4469 +; FIX_JANUS is set to 'yes' when compiling for Janus2, it causes to
4470 +; add a nop after shifts, in order to work around a Janus2 bug
4471 +(define_attr "fix_janus" "no,yes" (const (symbol_ref "janus2_code")))
4472 +
4473 ; IS_STRONGARM is set to 'yes' when compiling for StrongARM, it affects
4474 ; scheduling decisions for the load unit and the multiplier.
4475 (define_attr "is_strongarm" "no,yes" (const (symbol_ref "arm_tune_strongarm")))
4476 @@ -158,7 +165,7 @@
4477 ; Floating Point Unit. If we only have floating point emulation, then there
4478 ; is no point in scheduling the floating point insns. (Well, for best
4479 ; performance we should try and group them together).
4480 -(define_attr "fpu" "none,fpa,fpe2,fpe3,maverick,vfp,vfpv3d16,vfpv3,neon"
4481 +(define_attr "fpu" "none,fpa,fpe2,fpe3,maverick,vfp"
4482 (const (symbol_ref "arm_fpu_attr")))
4483
4484 ; LENGTH of an instruction (in bytes)
4485 @@ -185,7 +192,7 @@
4486 ;; scheduling information.
4487
4488 (define_attr "insn"
4489 - "mov,mvn,smulxy,smlaxy,smlalxy,smulwy,smlawx,mul,muls,mla,mlas,umull,umulls,umlal,umlals,smull,smulls,smlal,smlals,smlawy,smuad,smuadx,smlad,smladx,smusd,smusdx,smlsd,smlsdx,smmul,smmulr,smmla,umaal,smlald,smlsld,clz,mrs,msr,xtab,sdiv,udiv,other"
4490 + "mov,mvn,and,orr,eor,smulxy,smlaxy,smlalxy,smulwy,smlawx,mul,muls,mla,mlas,umull,umulls,umlal,umlals,smull,smulls,smlal,smlals,smlawy,smuad,smuadx,smlad,smladx,smusd,smusdx,smlsd,smlsdx,smmul,smmulr,smmla,umaal,smlald,smlsld,clz,mrs,msr,xtab,sdiv,udiv,other"
4491 (const_string "other"))
4492
4493 ; TYPE attribute is used to detect floating point instructions which, if
4494 @@ -251,8 +258,6 @@
4495 (define_attr "ldsched" "no,yes" (const (symbol_ref "arm_ld_sched")))
4496
4497 ;; Classification of NEON instructions for scheduling purposes.
4498 -;; Do not set this attribute and the "type" attribute together in
4499 -;; any one instruction pattern.
4500 (define_attr "neon_type"
4501 "neon_int_1,\
4502 neon_int_2,\
4503 @@ -415,7 +420,7 @@
4504
4505 (define_attr "generic_sched" "yes,no"
4506 (const (if_then_else
4507 - (ior (eq_attr "tune" "arm926ejs,arm1020e,arm1026ejs,arm1136js,arm1136jfs,cortexa8,cortexa9")
4508 + (ior (eq_attr "tune" "arm926ejs,arm1020e,arm1026ejs,arm1136js,arm1136jfs,cortexa8,cortexa9,marvell_f")
4509 (eq_attr "tune_cortexr4" "yes"))
4510 (const_string "no")
4511 (const_string "yes"))))
4512 @@ -423,7 +428,7 @@
4513 (define_attr "generic_vfp" "yes,no"
4514 (const (if_then_else
4515 (and (eq_attr "fpu" "vfp")
4516 - (eq_attr "tune" "!arm1020e,arm1022e,cortexa8,cortexa9")
4517 + (eq_attr "tune" "!arm1020e,arm1022e,cortexa8,cortexa9,marvell_f")
4518 (eq_attr "tune_cortexr4" "no"))
4519 (const_string "yes")
4520 (const_string "no"))))
4521 @@ -437,6 +442,8 @@
4522 (include "cortex-a9.md")
4523 (include "cortex-r4.md")
4524 (include "cortex-r4f.md")
4525 +(include "marvell-f.md")
4526 +(include "marvell-f-vfp.md")
4527 (include "vfp11.md")
4528
4529 \f
4530 @@ -472,9 +479,9 @@
4531 if (TARGET_THUMB1)
4532 {
4533 if (GET_CODE (operands[1]) != REG)
4534 - operands[1] = force_reg (SImode, operands[1]);
4535 + operands[1] = force_reg (DImode, operands[1]);
4536 if (GET_CODE (operands[2]) != REG)
4537 - operands[2] = force_reg (SImode, operands[2]);
4538 + operands[2] = force_reg (DImode, operands[2]);
4539 }
4540 "
4541 )
4542 @@ -620,10 +627,11 @@
4543 sub%?\\t%0, %1, #%n2
4544 sub%?\\t%0, %1, #%n2
4545 #"
4546 - "TARGET_32BIT &&
4547 - GET_CODE (operands[2]) == CONST_INT
4548 + "TARGET_32BIT
4549 + && GET_CODE (operands[2]) == CONST_INT
4550 && !(const_ok_for_arm (INTVAL (operands[2]))
4551 - || const_ok_for_arm (-INTVAL (operands[2])))"
4552 + || const_ok_for_arm (-INTVAL (operands[2])))
4553 + && (reload_completed || !arm_eliminable_register (operands[1]))"
4554 [(clobber (const_int 0))]
4555 "
4556 arm_split_constant (PLUS, SImode, curr_insn,
4557 @@ -639,10 +647,10 @@
4558 ;; register. Trying to reload it will always fail catastrophically,
4559 ;; so never allow those alternatives to match if reloading is needed.
4560
4561 -(define_insn "*thumb1_addsi3"
4562 - [(set (match_operand:SI 0 "register_operand" "=l,l,l,*rk,*hk,l,!k")
4563 - (plus:SI (match_operand:SI 1 "register_operand" "%0,0,l,*0,*0,!k,!k")
4564 - (match_operand:SI 2 "nonmemory_operand" "I,J,lL,*hk,*rk,!M,!O")))]
4565 +(define_insn_and_split "*thumb1_addsi3"
4566 + [(set (match_operand:SI 0 "register_operand" "=l,l,l,*rk,*hk,l,!k,l,l")
4567 + (plus:SI (match_operand:SI 1 "register_operand" "%0,0,l,*0,*0,!k,!k,0,l")
4568 + (match_operand:SI 2 "nonmemory_operand" "I,J,lL,*hk,*rk,!M,!O,Pa,Pb")))]
4569 "TARGET_THUMB1"
4570 "*
4571 static const char * const asms[] =
4572 @@ -653,7 +661,9 @@
4573 \"add\\t%0, %0, %2\",
4574 \"add\\t%0, %0, %2\",
4575 \"add\\t%0, %1, %2\",
4576 - \"add\\t%0, %1, %2\"
4577 + \"add\\t%0, %1, %2\",
4578 + \"#\",
4579 + \"#\"
4580 };
4581 if ((which_alternative == 2 || which_alternative == 6)
4582 && GET_CODE (operands[2]) == CONST_INT
4583 @@ -661,7 +671,22 @@
4584 return \"sub\\t%0, %1, #%n2\";
4585 return asms[which_alternative];
4586 "
4587 - [(set_attr "length" "2")]
4588 + "&& reload_completed && CONST_INT_P (operands[2])
4589 + && operands[1] != stack_pointer_rtx
4590 + && (INTVAL (operands[2]) > 255 || INTVAL (operands[2]) < -255)"
4591 + [(set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))
4592 + (set (match_dup 0) (plus:SI (match_dup 0) (match_dup 3)))]
4593 + {
4594 + HOST_WIDE_INT offset = INTVAL (operands[2]);
4595 + if (offset > 255)
4596 + offset = 255;
4597 + else if (offset < -255)
4598 + offset = -255;
4599 +
4600 + operands[3] = GEN_INT (offset);
4601 + operands[2] = GEN_INT (INTVAL (operands[2]) - offset);
4602 + }
4603 + [(set_attr "length" "2,2,2,2,2,2,2,4,4")]
4604 )
4605
4606 ;; Reloading and elimination of the frame pointer can
4607 @@ -854,7 +879,11 @@
4608 [(set_attr "conds" "use")
4609 (set (attr "type") (if_then_else (match_operand 4 "const_int_operand" "")
4610 (const_string "alu_shift")
4611 - (const_string "alu_shift_reg")))]
4612 + (const_string "alu_shift_reg")))
4613 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
4614 + (eq_attr "fix_janus" "yes"))
4615 + (const_int 8)
4616 + (const_int 4)))]
4617 )
4618
4619 (define_insn "*addsi3_carryin_alt1"
4620 @@ -938,7 +967,7 @@
4621 [(set (match_operand:DF 0 "s_register_operand" "")
4622 (plus:DF (match_operand:DF 1 "s_register_operand" "")
4623 (match_operand:DF 2 "arm_float_add_operand" "")))]
4624 - "TARGET_32BIT && TARGET_HARD_FLOAT"
4625 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
4626 "
4627 if (TARGET_MAVERICK
4628 && !cirrus_fp_register (operands[2], DFmode))
4629 @@ -1176,7 +1205,7 @@
4630 [(set (match_operand:DF 0 "s_register_operand" "")
4631 (minus:DF (match_operand:DF 1 "arm_float_rhs_operand" "")
4632 (match_operand:DF 2 "arm_float_rhs_operand" "")))]
4633 - "TARGET_32BIT && TARGET_HARD_FLOAT"
4634 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
4635 "
4636 if (TARGET_MAVERICK)
4637 {
4638 @@ -1332,6 +1361,49 @@
4639 (set_attr "predicable" "yes")]
4640 )
4641
4642 +; The combiner cannot combine the first and last insns in the
4643 +; following sequence because of the intervening insn, so help the
4644 +; combiner with this splitter. The combiner does attempt to split
4645 +; this particular combination but does not know this exact split.
4646 +; Note that the combiner puts the constant at the outermost operation
4647 +; as a part of canonicalization.
4648 +;
4649 +; mul r3, r2, r1
4650 +; <add/sub> r3, r3, <constant>
4651 +; add r3, r3, r4
4652 +
4653 +(define_split
4654 + [(set (match_operand:SI 0 "s_register_operand" "")
4655 + (match_operator:SI 1 "plusminus_operator"
4656 + [(plus:SI (mult:SI (match_operand:SI 2 "s_register_operand" "")
4657 + (match_operand:SI 3 "s_register_operand" ""))
4658 + (match_operand:SI 4 "s_register_operand" ""))
4659 + (match_operand:SI 5 "arm_immediate_operand" "")]))]
4660 + "TARGET_32BIT"
4661 + [(set (match_dup 0)
4662 + (plus:SI (mult:SI (match_dup 2) (match_dup 3))
4663 + (match_dup 4)))
4664 + (set (match_dup 0)
4665 + (match_op_dup:SI 1 [(match_dup 0) (match_dup 5)]))]
4666 + "")
4667 +
4668 +; Likewise for MLS. MLS is available only on select architectures.
4669 +
4670 +(define_split
4671 + [(set (match_operand:SI 0 "s_register_operand" "")
4672 + (match_operator:SI 1 "plusminus_operator"
4673 + [(minus:SI (match_operand:SI 2 "s_register_operand" "")
4674 + (mult:SI (match_operand:SI 3 "s_register_operand" "")
4675 + (match_operand:SI 4 "s_register_operand" "")))
4676 + (match_operand:SI 5 "arm_immediate_operand" "")]))]
4677 + "TARGET_32BIT && arm_arch_thumb2"
4678 + [(set (match_dup 0)
4679 + (minus:SI (match_dup 2)
4680 + (mult:SI (match_dup 3) (match_dup 4))))
4681 + (set (match_dup 0)
4682 + (match_op_dup:SI 1 [(match_dup 0) (match_dup 5)]))]
4683 + "")
4684 +
4685 (define_insn "*mulsi3addsi_compare0"
4686 [(set (reg:CC_NOOV CC_REGNUM)
4687 (compare:CC_NOOV
4688 @@ -1713,7 +1785,7 @@
4689 [(set (match_operand:DF 0 "s_register_operand" "")
4690 (mult:DF (match_operand:DF 1 "s_register_operand" "")
4691 (match_operand:DF 2 "arm_float_rhs_operand" "")))]
4692 - "TARGET_32BIT && TARGET_HARD_FLOAT"
4693 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
4694 "
4695 if (TARGET_MAVERICK
4696 && !cirrus_fp_register (operands[2], DFmode))
4697 @@ -1733,7 +1805,7 @@
4698 [(set (match_operand:DF 0 "s_register_operand" "")
4699 (div:DF (match_operand:DF 1 "arm_float_rhs_operand" "")
4700 (match_operand:DF 2 "arm_float_rhs_operand" "")))]
4701 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
4702 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP_DOUBLE)"
4703 "")
4704 \f
4705 ;; Modulo insns
4706 @@ -1960,6 +2032,7 @@
4707 DONE;
4708 "
4709 [(set_attr "length" "4,4,16")
4710 + (set_attr "insn" "and")
4711 (set_attr "predicable" "yes")]
4712 )
4713
4714 @@ -1969,7 +2042,8 @@
4715 (match_operand:SI 2 "register_operand" "l")))]
4716 "TARGET_THUMB1"
4717 "and\\t%0, %0, %2"
4718 - [(set_attr "length" "2")]
4719 + [(set_attr "length" "2")
4720 + (set_attr "insn" "and")]
4721 )
4722
4723 (define_insn "*andsi3_compare0"
4724 @@ -1984,7 +2058,8 @@
4725 "@
4726 and%.\\t%0, %1, %2
4727 bic%.\\t%0, %1, #%B2"
4728 - [(set_attr "conds" "set")]
4729 + [(set_attr "conds" "set")
4730 + (set_attr "insn" "and,*")]
4731 )
4732
4733 (define_insn "*andsi3_compare0_scratch"
4734 @@ -2280,7 +2355,7 @@
4735 }
4736 }
4737
4738 - target = operands[0];
4739 + target = copy_rtx (operands[0]);
4740 /* Avoid using a subreg as a subtarget, and avoid writing a paradoxical
4741 subreg as the final target. */
4742 if (GET_CODE (target) == SUBREG)
4743 @@ -2528,7 +2603,11 @@
4744 (set_attr "shift" "2")
4745 (set (attr "type") (if_then_else (match_operand 3 "const_int_operand" "")
4746 (const_string "alu_shift")
4747 - (const_string "alu_shift_reg")))]
4748 + (const_string "alu_shift_reg")))
4749 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
4750 + (eq_attr "fix_janus" "yes"))
4751 + (const_int 8)
4752 + (const_int 4)))]
4753 )
4754
4755 (define_insn "*andsi_notsi_si_compare0"
4756 @@ -2576,6 +2655,7 @@
4757 orr%?\\t%Q0, %Q1, %2
4758 #"
4759 [(set_attr "length" "4,8")
4760 + (set_attr "insn" "orr")
4761 (set_attr "predicable" "yes")]
4762 )
4763
4764 @@ -2638,7 +2718,8 @@
4765 (match_operand:SI 2 "register_operand" "l")))]
4766 "TARGET_THUMB1"
4767 "orr\\t%0, %0, %2"
4768 - [(set_attr "length" "2")]
4769 + [(set_attr "length" "2")
4770 + (set_attr "insn" "orr")]
4771 )
4772
4773 (define_peephole2
4774 @@ -2663,7 +2744,8 @@
4775 (ior:SI (match_dup 1) (match_dup 2)))]
4776 "TARGET_32BIT"
4777 "orr%.\\t%0, %1, %2"
4778 - [(set_attr "conds" "set")]
4779 + [(set_attr "conds" "set")
4780 + (set_attr "insn" "orr")]
4781 )
4782
4783 (define_insn "*iorsi3_compare0_scratch"
4784 @@ -2674,7 +2756,8 @@
4785 (clobber (match_scratch:SI 0 "=r"))]
4786 "TARGET_32BIT"
4787 "orr%.\\t%0, %1, %2"
4788 - [(set_attr "conds" "set")]
4789 + [(set_attr "conds" "set")
4790 + (set_attr "insn" "orr")]
4791 )
4792
4793 (define_insn "xordi3"
4794 @@ -2697,7 +2780,8 @@
4795 eor%?\\t%Q0, %Q1, %2
4796 #"
4797 [(set_attr "length" "4,8")
4798 - (set_attr "predicable" "yes")]
4799 + (set_attr "predicable" "yes")
4800 + (set_attr "insn" "eor")]
4801 )
4802
4803 (define_insn "*xordi_sesidi_di"
4804 @@ -2728,7 +2812,8 @@
4805 (match_operand:SI 2 "arm_rhs_operand" "rI")))]
4806 "TARGET_32BIT"
4807 "eor%?\\t%0, %1, %2"
4808 - [(set_attr "predicable" "yes")]
4809 + [(set_attr "predicable" "yes")
4810 + (set_attr "insn" "eor")]
4811 )
4812
4813 (define_insn "*thumb1_xorsi3"
4814 @@ -2737,7 +2822,8 @@
4815 (match_operand:SI 2 "register_operand" "l")))]
4816 "TARGET_THUMB1"
4817 "eor\\t%0, %0, %2"
4818 - [(set_attr "length" "2")]
4819 + [(set_attr "length" "2")
4820 + (set_attr "insn" "eor")]
4821 )
4822
4823 (define_insn "*xorsi3_compare0"
4824 @@ -2749,7 +2835,8 @@
4825 (xor:SI (match_dup 1) (match_dup 2)))]
4826 "TARGET_32BIT"
4827 "eor%.\\t%0, %1, %2"
4828 - [(set_attr "conds" "set")]
4829 + [(set_attr "conds" "set")
4830 + (set_attr "insn" "eor")]
4831 )
4832
4833 (define_insn "*xorsi3_compare0_scratch"
4834 @@ -2906,7 +2993,7 @@
4835 (smax:SI (match_operand:SI 1 "s_register_operand" "")
4836 (match_operand:SI 2 "arm_rhs_operand" "")))
4837 (clobber (reg:CC CC_REGNUM))])]
4838 - "TARGET_32BIT"
4839 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
4840 "
4841 if (operands[2] == const0_rtx || operands[2] == constm1_rtx)
4842 {
4843 @@ -2933,7 +3020,8 @@
4844 (const_int -1)))]
4845 "TARGET_32BIT"
4846 "orr%?\\t%0, %1, %1, asr #31"
4847 - [(set_attr "predicable" "yes")]
4848 + [(set_attr "predicable" "yes")
4849 + (set_attr "insn" "orr")]
4850 )
4851
4852 (define_insn "*arm_smax_insn"
4853 @@ -2941,7 +3029,7 @@
4854 (smax:SI (match_operand:SI 1 "s_register_operand" "%0,?r")
4855 (match_operand:SI 2 "arm_rhs_operand" "rI,rI")))
4856 (clobber (reg:CC CC_REGNUM))]
4857 - "TARGET_ARM"
4858 + "TARGET_ARM && !TARGET_NO_COND_EXEC"
4859 "@
4860 cmp\\t%1, %2\;movlt\\t%0, %2
4861 cmp\\t%1, %2\;movge\\t%0, %1\;movlt\\t%0, %2"
4862 @@ -2955,7 +3043,7 @@
4863 (smin:SI (match_operand:SI 1 "s_register_operand" "")
4864 (match_operand:SI 2 "arm_rhs_operand" "")))
4865 (clobber (reg:CC CC_REGNUM))])]
4866 - "TARGET_32BIT"
4867 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
4868 "
4869 if (operands[2] == const0_rtx)
4870 {
4871 @@ -2973,7 +3061,8 @@
4872 (const_int 0)))]
4873 "TARGET_32BIT"
4874 "and%?\\t%0, %1, %1, asr #31"
4875 - [(set_attr "predicable" "yes")]
4876 + [(set_attr "predicable" "yes")
4877 + (set_attr "insn" "and")]
4878 )
4879
4880 (define_insn "*arm_smin_insn"
4881 @@ -2981,7 +3070,7 @@
4882 (smin:SI (match_operand:SI 1 "s_register_operand" "%0,?r")
4883 (match_operand:SI 2 "arm_rhs_operand" "rI,rI")))
4884 (clobber (reg:CC CC_REGNUM))]
4885 - "TARGET_ARM"
4886 + "TARGET_ARM && !TARGET_NO_COND_EXEC"
4887 "@
4888 cmp\\t%1, %2\;movge\\t%0, %2
4889 cmp\\t%1, %2\;movlt\\t%0, %1\;movge\\t%0, %2"
4890 @@ -2995,7 +3084,7 @@
4891 (umax:SI (match_operand:SI 1 "s_register_operand" "")
4892 (match_operand:SI 2 "arm_rhs_operand" "")))
4893 (clobber (reg:CC CC_REGNUM))])]
4894 - "TARGET_32BIT"
4895 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
4896 ""
4897 )
4898
4899 @@ -3004,7 +3093,7 @@
4900 (umax:SI (match_operand:SI 1 "s_register_operand" "0,r,?r")
4901 (match_operand:SI 2 "arm_rhs_operand" "rI,0,rI")))
4902 (clobber (reg:CC CC_REGNUM))]
4903 - "TARGET_ARM"
4904 + "TARGET_ARM && !TARGET_NO_COND_EXEC"
4905 "@
4906 cmp\\t%1, %2\;movcc\\t%0, %2
4907 cmp\\t%1, %2\;movcs\\t%0, %1
4908 @@ -3019,7 +3108,7 @@
4909 (umin:SI (match_operand:SI 1 "s_register_operand" "")
4910 (match_operand:SI 2 "arm_rhs_operand" "")))
4911 (clobber (reg:CC CC_REGNUM))])]
4912 - "TARGET_32BIT"
4913 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
4914 ""
4915 )
4916
4917 @@ -3028,7 +3117,7 @@
4918 (umin:SI (match_operand:SI 1 "s_register_operand" "0,r,?r")
4919 (match_operand:SI 2 "arm_rhs_operand" "rI,0,rI")))
4920 (clobber (reg:CC CC_REGNUM))]
4921 - "TARGET_ARM"
4922 + "TARGET_ARM && !TARGET_NO_COND_EXEC"
4923 "@
4924 cmp\\t%1, %2\;movcs\\t%0, %2
4925 cmp\\t%1, %2\;movcc\\t%0, %1
4926 @@ -3043,7 +3132,7 @@
4927 [(match_operand:SI 1 "s_register_operand" "r")
4928 (match_operand:SI 2 "s_register_operand" "r")]))
4929 (clobber (reg:CC CC_REGNUM))]
4930 - "TARGET_32BIT"
4931 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
4932 "*
4933 operands[3] = gen_rtx_fmt_ee (minmax_code (operands[3]), SImode,
4934 operands[1], operands[2]);
4935 @@ -3163,11 +3252,23 @@
4936 [(set (match_operand:SI 0 "register_operand" "=l,l")
4937 (ashift:SI (match_operand:SI 1 "register_operand" "l,0")
4938 (match_operand:SI 2 "nonmemory_operand" "N,l")))]
4939 - "TARGET_THUMB1"
4940 + "TARGET_THUMB1 && !janus2_code"
4941 "lsl\\t%0, %1, %2"
4942 [(set_attr "length" "2")]
4943 )
4944
4945 +(define_insn "*thumb1_ashlsi3_janus2"
4946 + [(set (match_operand:SI 0 "register_operand" "=l,l")
4947 + (ashift:SI (match_operand:SI 1 "register_operand" "l,0")
4948 + (match_operand:SI 2 "nonmemory_operand" "N,l")))]
4949 + "TARGET_THUMB1 && janus2_code"
4950 + "@
4951 + lsl\\t%0, %1, %2
4952 + lsl\\t%0, %1, %2\;nop"
4953 + [(set_attr "length" "2,4")]
4954 +)
4955 +
4956 +
4957 (define_expand "ashrdi3"
4958 [(set (match_operand:DI 0 "s_register_operand" "")
4959 (ashiftrt:DI (match_operand:DI 1 "s_register_operand" "")
4960 @@ -3200,6 +3301,7 @@
4961 "TARGET_32BIT"
4962 "movs\\t%R0, %R1, asr #1\;mov\\t%Q0, %Q1, rrx"
4963 [(set_attr "conds" "clob")
4964 + (set_attr "insn" "mov")
4965 (set_attr "length" "8")]
4966 )
4967
4968 @@ -3219,11 +3321,22 @@
4969 [(set (match_operand:SI 0 "register_operand" "=l,l")
4970 (ashiftrt:SI (match_operand:SI 1 "register_operand" "l,0")
4971 (match_operand:SI 2 "nonmemory_operand" "N,l")))]
4972 - "TARGET_THUMB1"
4973 + "TARGET_THUMB1 && !janus2_code"
4974 "asr\\t%0, %1, %2"
4975 [(set_attr "length" "2")]
4976 )
4977
4978 +(define_insn "*thumb1_ashrsi3_janus2"
4979 + [(set (match_operand:SI 0 "register_operand" "=l,l")
4980 + (ashiftrt:SI (match_operand:SI 1 "register_operand" "l,0")
4981 + (match_operand:SI 2 "nonmemory_operand" "N,l")))]
4982 + "TARGET_THUMB1 && janus2_code"
4983 + "@
4984 + asr\\t%0, %1, %2
4985 + asr\\t%0, %1, %2\;nop"
4986 + [(set_attr "length" "2,4")]
4987 +)
4988 +
4989 (define_expand "lshrdi3"
4990 [(set (match_operand:DI 0 "s_register_operand" "")
4991 (lshiftrt:DI (match_operand:DI 1 "s_register_operand" "")
4992 @@ -3256,6 +3369,7 @@
4993 "TARGET_32BIT"
4994 "movs\\t%R0, %R1, lsr #1\;mov\\t%Q0, %Q1, rrx"
4995 [(set_attr "conds" "clob")
4996 + (set_attr "insn" "mov")
4997 (set_attr "length" "8")]
4998 )
4999
5000 @@ -3278,11 +3392,22 @@
5001 [(set (match_operand:SI 0 "register_operand" "=l,l")
5002 (lshiftrt:SI (match_operand:SI 1 "register_operand" "l,0")
5003 (match_operand:SI 2 "nonmemory_operand" "N,l")))]
5004 - "TARGET_THUMB1"
5005 + "TARGET_THUMB1 && !janus2_code"
5006 "lsr\\t%0, %1, %2"
5007 [(set_attr "length" "2")]
5008 )
5009
5010 +(define_insn "*thumb1_lshrsi3_janus2"
5011 + [(set (match_operand:SI 0 "register_operand" "=l,l")
5012 + (lshiftrt:SI (match_operand:SI 1 "register_operand" "l,0")
5013 + (match_operand:SI 2 "nonmemory_operand" "N,l")))]
5014 + "TARGET_THUMB1 && janus2_code"
5015 + "@
5016 + lsr\\t%0, %1, %2
5017 + lsr\\t%0, %1, %2; nop"
5018 + [(set_attr "length" "2,4")]
5019 +)
5020 +
5021 (define_expand "rotlsi3"
5022 [(set (match_operand:SI 0 "s_register_operand" "")
5023 (rotatert:SI (match_operand:SI 1 "s_register_operand" "")
5024 @@ -3324,11 +3449,20 @@
5025 [(set (match_operand:SI 0 "register_operand" "=l")
5026 (rotatert:SI (match_operand:SI 1 "register_operand" "0")
5027 (match_operand:SI 2 "register_operand" "l")))]
5028 - "TARGET_THUMB1"
5029 + "TARGET_THUMB1 && !janus2_code"
5030 "ror\\t%0, %0, %2"
5031 [(set_attr "length" "2")]
5032 )
5033
5034 +(define_insn "*thumb1_rotrsi3_janus2"
5035 + [(set (match_operand:SI 0 "register_operand" "=l")
5036 + (rotatert:SI (match_operand:SI 1 "register_operand" "0")
5037 + (match_operand:SI 2 "register_operand" "l")))]
5038 + "TARGET_THUMB1 && janus2_code"
5039 + "ror\\t%0, %0, %2; nop"
5040 + [(set_attr "length" "4")]
5041 +)
5042 +
5043 (define_insn "*arm_shiftsi3"
5044 [(set (match_operand:SI 0 "s_register_operand" "=r")
5045 (match_operator:SI 3 "shift_operator"
5046 @@ -3340,7 +3474,11 @@
5047 (set_attr "shift" "1")
5048 (set (attr "type") (if_then_else (match_operand 2 "const_int_operand" "")
5049 (const_string "alu_shift")
5050 - (const_string "alu_shift_reg")))]
5051 + (const_string "alu_shift_reg")))
5052 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
5053 + (eq_attr "fix_janus" "yes"))
5054 + (const_int 8)
5055 + (const_int 4)))]
5056 )
5057
5058 (define_insn "*shiftsi3_compare0"
5059 @@ -3357,7 +3495,11 @@
5060 (set_attr "shift" "1")
5061 (set (attr "type") (if_then_else (match_operand 2 "const_int_operand" "")
5062 (const_string "alu_shift")
5063 - (const_string "alu_shift_reg")))]
5064 + (const_string "alu_shift_reg")))
5065 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
5066 + (eq_attr "fix_janus" "yes"))
5067 + (const_int 8)
5068 + (const_int 4)))]
5069 )
5070
5071 (define_insn "*shiftsi3_compare0_scratch"
5072 @@ -3370,7 +3512,11 @@
5073 "TARGET_32BIT"
5074 "* return arm_output_shift(operands, 1);"
5075 [(set_attr "conds" "set")
5076 - (set_attr "shift" "1")]
5077 + (set_attr "shift" "1")
5078 + (set (attr "length") (if_then_else (and (match_operand 2 "s_register_operand" "")
5079 + (eq_attr "fix_janus" "yes"))
5080 + (const_int 8)
5081 + (const_int 4)))]
5082 )
5083
5084 (define_insn "*arm_notsi_shiftsi"
5085 @@ -3382,9 +3528,14 @@
5086 "mvn%?\\t%0, %1%S3"
5087 [(set_attr "predicable" "yes")
5088 (set_attr "shift" "1")
5089 + (set_attr "insn" "mvn")
5090 (set (attr "type") (if_then_else (match_operand 2 "const_int_operand" "")
5091 (const_string "alu_shift")
5092 - (const_string "alu_shift_reg")))]
5093 + (const_string "alu_shift_reg")))
5094 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
5095 + (eq_attr "fix_janus" "yes"))
5096 + (const_int 8)
5097 + (const_int 4)))]
5098 )
5099
5100 (define_insn "*arm_notsi_shiftsi_compare0"
5101 @@ -3399,9 +3550,14 @@
5102 "mvn%.\\t%0, %1%S3"
5103 [(set_attr "conds" "set")
5104 (set_attr "shift" "1")
5105 + (set_attr "insn" "mvn")
5106 (set (attr "type") (if_then_else (match_operand 2 "const_int_operand" "")
5107 (const_string "alu_shift")
5108 - (const_string "alu_shift_reg")))]
5109 + (const_string "alu_shift_reg")))
5110 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
5111 + (eq_attr "fix_janus" "yes"))
5112 + (const_int 8)
5113 + (const_int 4)))]
5114 )
5115
5116 (define_insn "*arm_not_shiftsi_compare0_scratch"
5117 @@ -3415,9 +3571,14 @@
5118 "mvn%.\\t%0, %1%S3"
5119 [(set_attr "conds" "set")
5120 (set_attr "shift" "1")
5121 + (set_attr "insn" "mvn")
5122 (set (attr "type") (if_then_else (match_operand 2 "const_int_operand" "")
5123 (const_string "alu_shift")
5124 - (const_string "alu_shift_reg")))]
5125 + (const_string "alu_shift_reg")))
5126 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
5127 + (eq_attr "fix_janus" "yes"))
5128 + (const_int 8)
5129 + (const_int 4)))]
5130 )
5131
5132 ;; We don't really have extzv, but defining this using shifts helps
5133 @@ -3550,12 +3711,12 @@
5134 (define_expand "negdf2"
5135 [(set (match_operand:DF 0 "s_register_operand" "")
5136 (neg:DF (match_operand:DF 1 "s_register_operand" "")))]
5137 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
5138 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP_DOUBLE)"
5139 "")
5140
5141 ;; abssi2 doesn't really clobber the condition codes if a different register
5142 ;; is being set. To keep things simple, assume during rtl manipulations that
5143 -;; it does, but tell the final scan operator the truth. Similarly for
5144 +;; it does, and the splitter will eliminate it. Similarly for
5145 ;; (neg (abs...))
5146
5147 (define_expand "abssi2"
5148 @@ -3567,22 +3728,28 @@
5149 "
5150 if (TARGET_THUMB1)
5151 operands[2] = gen_rtx_SCRATCH (SImode);
5152 + else if (TARGET_NO_SINGLE_COND_EXEC)
5153 + {
5154 + emit_insn(gen_rtx_SET(VOIDmode, operands[0],
5155 + gen_rtx_ABS(SImode, operands[1])));
5156 + DONE;
5157 + }
5158 else
5159 operands[2] = gen_rtx_REG (CCmode, CC_REGNUM);
5160 ")
5161
5162 (define_insn "*arm_abssi2"
5163 - [(set (match_operand:SI 0 "s_register_operand" "=r,&r")
5164 - (abs:SI (match_operand:SI 1 "s_register_operand" "0,r")))
5165 + [(set (match_operand:SI 0 "s_register_operand" "=r")
5166 + (abs:SI (match_operand:SI 1 "s_register_operand" "r")))
5167 (clobber (reg:CC CC_REGNUM))]
5168 - "TARGET_ARM"
5169 - "@
5170 - cmp\\t%0, #0\;rsblt\\t%0, %0, #0
5171 - eor%?\\t%0, %1, %1, asr #31\;sub%?\\t%0, %0, %1, asr #31"
5172 - [(set_attr "conds" "clob,*")
5173 - (set_attr "shift" "1")
5174 + "TARGET_32BIT && !TARGET_NO_SINGLE_COND_EXEC"
5175 + "#"
5176 + [(set_attr "shift" "1")
5177 ;; predicable can't be set based on the variant, so left as no
5178 - (set_attr "length" "8")]
5179 + (set (attr "length")
5180 + (if_then_else (eq_attr "is_thumb" "yes")
5181 + (const_int 10)
5182 + (const_int 8)))]
5183 )
5184
5185 (define_insn_and_split "*thumb1_abssi2"
5186 @@ -3600,17 +3767,17 @@
5187 )
5188
5189 (define_insn "*arm_neg_abssi2"
5190 - [(set (match_operand:SI 0 "s_register_operand" "=r,&r")
5191 - (neg:SI (abs:SI (match_operand:SI 1 "s_register_operand" "0,r"))))
5192 + [(set (match_operand:SI 0 "s_register_operand" "=r")
5193 + (neg:SI (abs:SI (match_operand:SI 1 "s_register_operand" "r"))))
5194 (clobber (reg:CC CC_REGNUM))]
5195 - "TARGET_ARM"
5196 - "@
5197 - cmp\\t%0, #0\;rsbgt\\t%0, %0, #0
5198 - eor%?\\t%0, %1, %1, asr #31\;rsb%?\\t%0, %0, %1, asr #31"
5199 - [(set_attr "conds" "clob,*")
5200 - (set_attr "shift" "1")
5201 + "TARGET_32BIT && !TARGET_NO_SINGLE_COND_EXEC"
5202 + "#"
5203 + [(set_attr "shift" "1")
5204 ;; predicable can't be set based on the variant, so left as no
5205 - (set_attr "length" "8")]
5206 + (set (attr "length")
5207 + (if_then_else (eq_attr "is_thumb" "yes")
5208 + (const_int 10)
5209 + (const_int 8)))]
5210 )
5211
5212 (define_insn_and_split "*thumb1_neg_abssi2"
5213 @@ -3627,6 +3794,93 @@
5214 [(set_attr "length" "6")]
5215 )
5216
5217 +;; Simplified version for when avoiding conditional execution
5218 +(define_insn "*arm_nocond_abssi2"
5219 + [(set (match_operand:SI 0 "s_register_operand" "=&r")
5220 + (abs:SI (match_operand:SI 1 "s_register_operand" "r")))]
5221 + "TARGET_32BIT && TARGET_NO_SINGLE_COND_EXEC"
5222 + "#"
5223 + [(set_attr "shift" "1")
5224 + (set_attr "length" "8")
5225 + (set_attr "predicable" "yes")]
5226 +)
5227 +
5228 +(define_insn "*arm_nocond_neg_abssi2"
5229 + [(set (match_operand:SI 0 "s_register_operand" "=&r")
5230 + (neg:SI (abs:SI (match_operand:SI 1 "s_register_operand" "r"))))]
5231 + "TARGET_32BIT && TARGET_NO_SINGLE_COND_EXEC"
5232 + "#"
5233 + [(set_attr "shift" "1")
5234 + (set_attr "length" "8")
5235 + (set_attr "predicable" "yes")]
5236 +)
5237 +
5238 +;; Splitters for ABS patterns.
5239 +
5240 +(define_split
5241 + [(set (match_operand:SI 0 "s_register_operand" "")
5242 + (abs:SI (match_operand:SI 1 "s_register_operand" "")))
5243 + (clobber (reg:CC CC_REGNUM))]
5244 + "TARGET_32BIT && reload_completed && rtx_equal_p(operands[0], operands[1])"
5245 + [(set (reg:CC CC_REGNUM) (compare:CC (match_dup 1) (const_int 0)))
5246 + (cond_exec (lt (reg:CC CC_REGNUM) (const_int 0))
5247 + (set (match_dup 0) (neg:SI (match_dup 1))))]
5248 +)
5249 +
5250 +(define_split
5251 + [(set (match_operand:SI 0 "s_register_operand" "")
5252 + (neg:SI (abs:SI (match_operand:SI 1 "s_register_operand" ""))))
5253 + (clobber (reg:CC CC_REGNUM))]
5254 + "TARGET_32BIT && reload_completed && rtx_equal_p(operands[0], operands[1])"
5255 + [(set (reg:CC CC_REGNUM) (compare:CC (match_dup 1) (const_int 0)))
5256 + (cond_exec (gt (reg:CC CC_REGNUM) (const_int 0))
5257 + (set (match_dup 0) (neg:SI (match_dup 1))))]
5258 +)
5259 +
5260 +;; GCC does not add/remove clobbers when matching splitters, so we need
5261 +;; variants with and without the CC clobber.
5262 +(define_split
5263 + [(set (match_operand:SI 0 "s_register_operand" "")
5264 + (abs:SI (match_operand:SI 1 "s_register_operand" "")))]
5265 + "TARGET_32BIT && reload_completed && !rtx_equal_p(operands[0], operands[1])"
5266 + [(set (match_dup 0) (xor:SI (ashiftrt:SI (match_dup 1) (const_int 31))
5267 + (match_dup 1)))
5268 + (set (match_dup 0) (minus:SI (match_dup 0)
5269 + (ashiftrt:SI (match_dup 1) (const_int 31))))]
5270 +)
5271 +
5272 +(define_split
5273 + [(set (match_operand:SI 0 "s_register_operand" "")
5274 + (abs:SI (match_operand:SI 1 "s_register_operand" "")))
5275 + (clobber (reg:CC CC_REGNUM))]
5276 + "TARGET_32BIT && reload_completed && !rtx_equal_p(operands[0], operands[1])"
5277 + [(set (match_dup 0) (xor:SI (ashiftrt:SI (match_dup 1) (const_int 31))
5278 + (match_dup 1)))
5279 + (set (match_dup 0) (minus:SI (match_dup 0)
5280 + (ashiftrt:SI (match_dup 1) (const_int 31))))]
5281 +)
5282 +
5283 +(define_split
5284 + [(set (match_operand:SI 0 "s_register_operand" "")
5285 + (neg:SI (abs:SI (match_operand:SI 1 "s_register_operand" ""))))]
5286 + "TARGET_32BIT && reload_completed && !rtx_equal_p(operands[0], operands[1])"
5287 + [(set (match_dup 0) (xor:SI (ashiftrt:SI (match_dup 1) (const_int 31))
5288 + (match_dup 1)))
5289 + (set (match_dup 0) (minus:SI (ashiftrt:SI (match_dup 1) (const_int 31))
5290 + (match_dup 0)))]
5291 +)
5292 +
5293 +(define_split
5294 + [(set (match_operand:SI 0 "s_register_operand" "")
5295 + (neg:SI (abs:SI (match_operand:SI 1 "s_register_operand" ""))))
5296 + (clobber (reg:CC CC_REGNUM))]
5297 + "TARGET_32BIT && reload_completed && !rtx_equal_p(operands[0], operands[1])"
5298 + [(set (match_dup 0) (xor:SI (ashiftrt:SI (match_dup 1) (const_int 31))
5299 + (match_dup 1)))
5300 + (set (match_dup 0) (minus:SI (ashiftrt:SI (match_dup 1) (const_int 31))
5301 + (match_dup 0)))]
5302 +)
5303 +
5304 (define_expand "abssf2"
5305 [(set (match_operand:SF 0 "s_register_operand" "")
5306 (abs:SF (match_operand:SF 1 "s_register_operand" "")))]
5307 @@ -3636,7 +3890,7 @@
5308 (define_expand "absdf2"
5309 [(set (match_operand:DF 0 "s_register_operand" "")
5310 (abs:DF (match_operand:DF 1 "s_register_operand" "")))]
5311 - "TARGET_32BIT && TARGET_HARD_FLOAT"
5312 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
5313 "")
5314
5315 (define_expand "sqrtsf2"
5316 @@ -3648,7 +3902,7 @@
5317 (define_expand "sqrtdf2"
5318 [(set (match_operand:DF 0 "s_register_operand" "")
5319 (sqrt:DF (match_operand:DF 1 "s_register_operand" "")))]
5320 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
5321 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP_DOUBLE)"
5322 "")
5323
5324 (define_insn_and_split "one_cmpldi2"
5325 @@ -3682,7 +3936,8 @@
5326 (not:SI (match_operand:SI 1 "s_register_operand" "r")))]
5327 "TARGET_32BIT"
5328 "mvn%?\\t%0, %1"
5329 - [(set_attr "predicable" "yes")]
5330 + [(set_attr "predicable" "yes")
5331 + (set_attr "insn" "mvn")]
5332 )
5333
5334 (define_insn "*thumb1_one_cmplsi2"
5335 @@ -3690,7 +3945,8 @@
5336 (not:SI (match_operand:SI 1 "register_operand" "l")))]
5337 "TARGET_THUMB1"
5338 "mvn\\t%0, %1"
5339 - [(set_attr "length" "2")]
5340 + [(set_attr "length" "2")
5341 + (set_attr "insn" "mvn")]
5342 )
5343
5344 (define_insn "*notsi_compare0"
5345 @@ -3701,7 +3957,8 @@
5346 (not:SI (match_dup 1)))]
5347 "TARGET_32BIT"
5348 "mvn%.\\t%0, %1"
5349 - [(set_attr "conds" "set")]
5350 + [(set_attr "conds" "set")
5351 + (set_attr "insn" "mvn")]
5352 )
5353
5354 (define_insn "*notsi_compare0_scratch"
5355 @@ -3711,11 +3968,40 @@
5356 (clobber (match_scratch:SI 0 "=r"))]
5357 "TARGET_32BIT"
5358 "mvn%.\\t%0, %1"
5359 - [(set_attr "conds" "set")]
5360 + [(set_attr "conds" "set")
5361 + (set_attr "insn" "mvn")]
5362 )
5363 \f
5364 ;; Fixed <--> Floating conversion insns
5365
5366 +(define_expand "floatsihf2"
5367 + [(set (match_operand:HF 0 "general_operand" "")
5368 + (float:HF (match_operand:SI 1 "general_operand" "")))]
5369 + "TARGET_EITHER"
5370 + "
5371 + {
5372 + rtx op1 = gen_reg_rtx (SFmode);
5373 + expand_float (op1, operands[1], 0);
5374 + op1 = convert_to_mode (HFmode, op1, 0);
5375 + emit_move_insn (operands[0], op1);
5376 + DONE;
5377 + }"
5378 +)
5379 +
5380 +(define_expand "floatdihf2"
5381 + [(set (match_operand:HF 0 "general_operand" "")
5382 + (float:HF (match_operand:DI 1 "general_operand" "")))]
5383 + "TARGET_EITHER"
5384 + "
5385 + {
5386 + rtx op1 = gen_reg_rtx (SFmode);
5387 + expand_float (op1, operands[1], 0);
5388 + op1 = convert_to_mode (HFmode, op1, 0);
5389 + emit_move_insn (operands[0], op1);
5390 + DONE;
5391 + }"
5392 +)
5393 +
5394 (define_expand "floatsisf2"
5395 [(set (match_operand:SF 0 "s_register_operand" "")
5396 (float:SF (match_operand:SI 1 "s_register_operand" "")))]
5397 @@ -3731,7 +4017,7 @@
5398 (define_expand "floatsidf2"
5399 [(set (match_operand:DF 0 "s_register_operand" "")
5400 (float:DF (match_operand:SI 1 "s_register_operand" "")))]
5401 - "TARGET_32BIT && TARGET_HARD_FLOAT"
5402 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
5403 "
5404 if (TARGET_MAVERICK)
5405 {
5406 @@ -3740,6 +4026,30 @@
5407 }
5408 ")
5409
5410 +(define_expand "fix_trunchfsi2"
5411 + [(set (match_operand:SI 0 "general_operand" "")
5412 + (fix:SI (fix:HF (match_operand:HF 1 "general_operand" ""))))]
5413 + "TARGET_EITHER"
5414 + "
5415 + {
5416 + rtx op1 = convert_to_mode (SFmode, operands[1], 0);
5417 + expand_fix (operands[0], op1, 0);
5418 + DONE;
5419 + }"
5420 +)
5421 +
5422 +(define_expand "fix_trunchfdi2"
5423 + [(set (match_operand:DI 0 "general_operand" "")
5424 + (fix:DI (fix:HF (match_operand:HF 1 "general_operand" ""))))]
5425 + "TARGET_EITHER"
5426 + "
5427 + {
5428 + rtx op1 = convert_to_mode (SFmode, operands[1], 0);
5429 + expand_fix (operands[0], op1, 0);
5430 + DONE;
5431 + }"
5432 +)
5433 +
5434 (define_expand "fix_truncsfsi2"
5435 [(set (match_operand:SI 0 "s_register_operand" "")
5436 (fix:SI (fix:SF (match_operand:SF 1 "s_register_operand" ""))))]
5437 @@ -3759,7 +4069,7 @@
5438 (define_expand "fix_truncdfsi2"
5439 [(set (match_operand:SI 0 "s_register_operand" "")
5440 (fix:SI (fix:DF (match_operand:DF 1 "s_register_operand" ""))))]
5441 - "TARGET_32BIT && TARGET_HARD_FLOAT"
5442 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
5443 "
5444 if (TARGET_MAVERICK)
5445 {
5446 @@ -3776,9 +4086,25 @@
5447 [(set (match_operand:SF 0 "s_register_operand" "")
5448 (float_truncate:SF
5449 (match_operand:DF 1 "s_register_operand" "")))]
5450 - "TARGET_32BIT && TARGET_HARD_FLOAT"
5451 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
5452 ""
5453 )
5454 +
5455 +/* DFmode -> HFmode conversions have to go through SFmode. */
5456 +(define_expand "truncdfhf2"
5457 + [(set (match_operand:HF 0 "general_operand" "")
5458 + (float_truncate:HF
5459 + (match_operand:DF 1 "general_operand" "")))]
5460 + "TARGET_EITHER"
5461 + "
5462 + {
5463 + rtx op1;
5464 + op1 = convert_to_mode (SFmode, operands[1], 0);
5465 + op1 = convert_to_mode (HFmode, op1, 0);
5466 + emit_move_insn (operands[0], op1);
5467 + DONE;
5468 + }"
5469 +)
5470 \f
5471 ;; Zero and sign extension instructions.
5472
5473 @@ -3800,6 +4126,7 @@
5474 return \"mov%?\\t%R0, #0\";
5475 "
5476 [(set_attr "length" "8")
5477 + (set_attr "insn" "mov")
5478 (set_attr "predicable" "yes")]
5479 )
5480
5481 @@ -3843,6 +4170,7 @@
5482 "
5483 [(set_attr "length" "8")
5484 (set_attr "shift" "1")
5485 + (set_attr "insn" "mov")
5486 (set_attr "predicable" "yes")]
5487 )
5488
5489 @@ -4123,6 +4451,28 @@
5490 ""
5491 )
5492
5493 +(define_code_iterator ior_xor [ior xor])
5494 +
5495 +(define_split
5496 + [(set (match_operand:SI 0 "s_register_operand" "")
5497 + (ior_xor:SI (and:SI (ashift:SI
5498 + (match_operand:SI 1 "s_register_operand" "")
5499 + (match_operand:SI 2 "const_int_operand" ""))
5500 + (match_operand:SI 3 "const_int_operand" ""))
5501 + (zero_extend:SI
5502 + (match_operator 5 "subreg_lowpart_operator"
5503 + [(match_operand:SI 4 "s_register_operand" "")]))))]
5504 + "TARGET_32BIT
5505 + && (INTVAL (operands[3])
5506 + == (GET_MODE_MASK (GET_MODE (operands[5]))
5507 + & (GET_MODE_MASK (GET_MODE (operands[5]))
5508 + << (INTVAL (operands[2])))))"
5509 + [(set (match_dup 0) (ior_xor:SI (ashift:SI (match_dup 1) (match_dup 2))
5510 + (match_dup 4)))
5511 + (set (match_dup 0) (zero_extend:SI (match_dup 5)))]
5512 + "operands[5] = gen_lowpart (GET_MODE (operands[5]), operands[0]);"
5513 +)
5514 +
5515 (define_insn "*compareqi_eq0"
5516 [(set (reg:CC_Z CC_REGNUM)
5517 (compare:CC_Z (match_operand:QI 0 "s_register_operand" "r")
5518 @@ -4639,9 +4989,24 @@
5519 (define_expand "extendsfdf2"
5520 [(set (match_operand:DF 0 "s_register_operand" "")
5521 (float_extend:DF (match_operand:SF 1 "s_register_operand" "")))]
5522 - "TARGET_32BIT && TARGET_HARD_FLOAT"
5523 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
5524 ""
5525 )
5526 +
5527 +/* HFmode -> DFmode conversions have to go through SFmode. */
5528 +(define_expand "extendhfdf2"
5529 + [(set (match_operand:DF 0 "general_operand" "")
5530 + (float_extend:DF (match_operand:HF 1 "general_operand" "")))]
5531 + "TARGET_EITHER"
5532 + "
5533 + {
5534 + rtx op1;
5535 + op1 = convert_to_mode (SFmode, operands[1], 0);
5536 + op1 = convert_to_mode (DFmode, op1, 0);
5537 + emit_insn (gen_movdf (operands[0], op1));
5538 + DONE;
5539 + }"
5540 +)
5541 \f
5542 ;; Move insns (including loads and stores)
5543
5544 @@ -4877,6 +5242,7 @@
5545 }"
5546 [(set_attr "length" "4,4,6,2,2,6,4,4")
5547 (set_attr "type" "*,*,*,load2,store2,load2,store2,*")
5548 + (set_attr "insn" "*,mov,*,*,*,*,*,mov")
5549 (set_attr "pool_range" "*,*,*,*,*,1020,*,*")]
5550 )
5551
5552 @@ -4903,14 +5269,6 @@
5553 optimize && can_create_pseudo_p ());
5554 DONE;
5555 }
5556 -
5557 - if (TARGET_USE_MOVT && !target_word_relocations
5558 - && GET_CODE (operands[1]) == SYMBOL_REF
5559 - && !flag_pic && !arm_tls_referenced_p (operands[1]))
5560 - {
5561 - arm_emit_movpair (operands[0], operands[1]);
5562 - DONE;
5563 - }
5564 }
5565 else /* TARGET_THUMB1... */
5566 {
5567 @@ -4984,18 +5342,9 @@
5568 (set_attr "length" "4")]
5569 )
5570
5571 -(define_insn "*arm_movw"
5572 - [(set (match_operand:SI 0 "nonimmediate_operand" "=r")
5573 - (high:SI (match_operand:SI 1 "general_operand" "i")))]
5574 - "TARGET_32BIT"
5575 - "movw%?\t%0, #:lower16:%c1"
5576 - [(set_attr "predicable" "yes")
5577 - (set_attr "length" "4")]
5578 -)
5579 -
5580 (define_insn "*arm_movsi_insn"
5581 [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r,rk,m")
5582 - (match_operand:SI 1 "general_operand" "rk, I,K,N,mi,rk"))]
5583 + (match_operand:SI 1 "general_operand" "rk, I,K,j,mi,rk"))]
5584 "TARGET_ARM && ! TARGET_IWMMXT
5585 && !(TARGET_HARD_FLOAT && TARGET_VFP)
5586 && ( register_operand (operands[0], SImode)
5587 @@ -5008,6 +5357,7 @@
5588 ldr%?\\t%0, %1
5589 str%?\\t%1, %0"
5590 [(set_attr "type" "*,*,*,*,load1,store1")
5591 + (set_attr "insn" "mov,mov,mvn,mov,*,*")
5592 (set_attr "predicable" "yes")
5593 (set_attr "pool_range" "*,*,*,*,4096,*")
5594 (set_attr "neg_pool_range" "*,*,*,*,4084,*")]
5595 @@ -5027,6 +5377,19 @@
5596 "
5597 )
5598
5599 +(define_split
5600 + [(set (match_operand:SI 0 "arm_general_register_operand" "")
5601 + (match_operand:SI 1 "general_operand" ""))]
5602 + "TARGET_32BIT
5603 + && TARGET_USE_MOVT && GET_CODE (operands[1]) == SYMBOL_REF
5604 + && !flag_pic && !target_word_relocations
5605 + && !arm_tls_referenced_p (operands[1])"
5606 + [(clobber (const_int 0))]
5607 +{
5608 + arm_emit_movpair (operands[0], operands[1]);
5609 + DONE;
5610 +})
5611 +
5612 (define_insn "*thumb1_movsi_insn"
5613 [(set (match_operand:SI 0 "nonimmediate_operand" "=l,l,l,l,l,>,l, m,*lhk")
5614 (match_operand:SI 1 "general_operand" "l, I,J,K,>,l,mi,l,*lhk"))]
5615 @@ -5065,7 +5428,7 @@
5616 (set (match_dup 0) (ashift:SI (match_dup 0) (match_dup 2)))]
5617 "
5618 {
5619 - unsigned HOST_WIDE_INT val = INTVAL (operands[1]);
5620 + unsigned HOST_WIDE_INT val = INTVAL (operands[1]) & 0xffffffffu;
5621 unsigned HOST_WIDE_INT mask = 0xff;
5622 int i;
5623
5624 @@ -5627,6 +5990,7 @@
5625 ldr%(h%)\\t%0, %1\\t%@ movhi"
5626 [(set_attr "type" "*,*,store1,load1")
5627 (set_attr "predicable" "yes")
5628 + (set_attr "insn" "mov,mvn,*,*")
5629 (set_attr "pool_range" "*,*,*,256")
5630 (set_attr "neg_pool_range" "*,*,*,244")]
5631 )
5632 @@ -5638,7 +6002,8 @@
5633 "@
5634 mov%?\\t%0, %1\\t%@ movhi
5635 mvn%?\\t%0, #%B1\\t%@ movhi"
5636 - [(set_attr "predicable" "yes")]
5637 + [(set_attr "predicable" "yes")
5638 + (set_attr "insn" "mov,mvn")]
5639 )
5640
5641 (define_expand "thumb_movhi_clobber"
5642 @@ -5769,6 +6134,7 @@
5643 ldr%(b%)\\t%0, %1
5644 str%(b%)\\t%1, %0"
5645 [(set_attr "type" "*,*,load1,store1")
5646 + (set_attr "insn" "mov,mvn,*,*")
5647 (set_attr "predicable" "yes")]
5648 )
5649
5650 @@ -5787,9 +6153,111 @@
5651 mov\\t%0, %1"
5652 [(set_attr "length" "2")
5653 (set_attr "type" "*,load1,store1,*,*,*")
5654 + (set_attr "insn" "*,*,*,mov,mov,mov")
5655 (set_attr "pool_range" "*,32,*,*,*,*")]
5656 )
5657
5658 +;; HFmode moves
5659 +(define_expand "movhf"
5660 + [(set (match_operand:HF 0 "general_operand" "")
5661 + (match_operand:HF 1 "general_operand" ""))]
5662 + "TARGET_EITHER"
5663 + "
5664 + if (TARGET_32BIT)
5665 + {
5666 + if (GET_CODE (operands[0]) == MEM)
5667 + operands[1] = force_reg (HFmode, operands[1]);
5668 + }
5669 + else /* TARGET_THUMB1 */
5670 + {
5671 + if (can_create_pseudo_p ())
5672 + {
5673 + if (GET_CODE (operands[0]) != REG)
5674 + operands[1] = force_reg (HFmode, operands[1]);
5675 + }
5676 + }
5677 + "
5678 +)
5679 +
5680 +(define_insn "*arm32_movhf"
5681 + [(set (match_operand:HF 0 "nonimmediate_operand" "=r,m,r,r")
5682 + (match_operand:HF 1 "general_operand" " m,r,r,F"))]
5683 + "TARGET_32BIT && !(TARGET_HARD_FLOAT && TARGET_FP16)
5684 + && ( s_register_operand (operands[0], HFmode)
5685 + || s_register_operand (operands[1], HFmode))"
5686 + "*
5687 + switch (which_alternative)
5688 + {
5689 + case 0: /* ARM register from memory */
5690 + return \"ldr%(h%)\\t%0, %1\\t%@ __fp16\";
5691 + case 1: /* memory from ARM register */
5692 + return \"str%(h%)\\t%1, %0\\t%@ __fp16\";
5693 + case 2: /* ARM register from ARM register */
5694 + return \"mov%?\\t%0, %1\\t%@ __fp16\";
5695 + case 3: /* ARM register from constant */
5696 + {
5697 + REAL_VALUE_TYPE r;
5698 + long bits;
5699 + rtx ops[4];
5700 +
5701 + REAL_VALUE_FROM_CONST_DOUBLE (r, operands[1]);
5702 + bits = real_to_target (NULL, &r, HFmode);
5703 + ops[0] = operands[0];
5704 + ops[1] = GEN_INT (bits);
5705 + ops[2] = GEN_INT (bits & 0xff00);
5706 + ops[3] = GEN_INT (bits & 0x00ff);
5707 +
5708 + if (arm_arch_thumb2)
5709 + output_asm_insn (\"movw%?\\t%0, %1\", ops);
5710 + else
5711 + output_asm_insn (\"mov%?\\t%0, %2\;orr%?\\t%0, %0, %3\", ops);
5712 + return \"\";
5713 + }
5714 + default:
5715 + gcc_unreachable ();
5716 + }
5717 + "
5718 + [(set_attr "conds" "unconditional")
5719 + (set_attr "type" "load1,store1,*,*")
5720 + (set_attr "length" "4,4,4,8")
5721 + (set_attr "predicable" "yes")
5722 + ]
5723 +)
5724 +
5725 +(define_insn "*thumb1_movhf"
5726 + [(set (match_operand:HF 0 "nonimmediate_operand" "=l,l,m,*r,*h")
5727 + (match_operand:HF 1 "general_operand" "l,mF,l,*h,*r"))]
5728 + "TARGET_THUMB1
5729 + && ( s_register_operand (operands[0], HFmode)
5730 + || s_register_operand (operands[1], HFmode))"
5731 + "*
5732 + switch (which_alternative)
5733 + {
5734 + case 1:
5735 + {
5736 + rtx addr;
5737 + gcc_assert (GET_CODE(operands[1]) == MEM);
5738 + addr = XEXP (operands[1], 0);
5739 + if (GET_CODE (addr) == LABEL_REF
5740 + || (GET_CODE (addr) == CONST
5741 + && GET_CODE (XEXP (addr, 0)) == PLUS
5742 + && GET_CODE (XEXP (XEXP (addr, 0), 0)) == LABEL_REF
5743 + && GET_CODE (XEXP (XEXP (addr, 0), 1)) == CONST_INT))
5744 + {
5745 + /* Constant pool entry. */
5746 + return \"ldr\\t%0, %1\";
5747 + }
5748 + return \"ldrh\\t%0, %1\";
5749 + }
5750 + case 2: return \"strh\\t%1, %0\";
5751 + default: return \"mov\\t%0, %1\";
5752 + }
5753 + "
5754 + [(set_attr "length" "2")
5755 + (set_attr "type" "*,load1,store1,*,*")
5756 + (set_attr "pool_range" "*,1020,*,*,*")]
5757 +)
5758 +
5759 (define_expand "movsf"
5760 [(set (match_operand:SF 0 "general_operand" "")
5761 (match_operand:SF 1 "general_operand" ""))]
5762 @@ -5842,6 +6310,7 @@
5763 [(set_attr "length" "4,4,4")
5764 (set_attr "predicable" "yes")
5765 (set_attr "type" "*,load1,store1")
5766 + (set_attr "insn" "mov,*,*")
5767 (set_attr "pool_range" "*,4096,*")
5768 (set_attr "neg_pool_range" "*,4084,*")]
5769 )
5770 @@ -6297,7 +6766,7 @@
5771 (match_operand:BLK 1 "general_operand" "")
5772 (match_operand:SI 2 "const_int_operand" "")
5773 (match_operand:SI 3 "const_int_operand" "")]
5774 - "TARGET_EITHER"
5775 + "TARGET_EITHER && !low_irq_latency"
5776 "
5777 if (TARGET_32BIT)
5778 {
5779 @@ -7476,7 +7945,7 @@
5780 (define_expand "cmpdf"
5781 [(match_operand:DF 0 "s_register_operand" "")
5782 (match_operand:DF 1 "arm_float_compare_operand" "")]
5783 - "TARGET_32BIT && TARGET_HARD_FLOAT"
5784 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_VFP_SINGLE"
5785 "
5786 arm_compare_op0 = operands[0];
5787 arm_compare_op1 = operands[1];
5788 @@ -7507,7 +7976,11 @@
5789 (set_attr "shift" "1")
5790 (set (attr "type") (if_then_else (match_operand 2 "const_int_operand" "")
5791 (const_string "alu_shift")
5792 - (const_string "alu_shift_reg")))]
5793 + (const_string "alu_shift_reg")))
5794 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
5795 + (eq_attr "fix_janus" "yes"))
5796 + (const_int 8)
5797 + (const_int 4)))]
5798 )
5799
5800 (define_insn "*arm_cmpsi_shiftsi_swp"
5801 @@ -7522,7 +7995,11 @@
5802 (set_attr "shift" "1")
5803 (set (attr "type") (if_then_else (match_operand 2 "const_int_operand" "")
5804 (const_string "alu_shift")
5805 - (const_string "alu_shift_reg")))]
5806 + (const_string "alu_shift_reg")))
5807 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
5808 + (eq_attr "fix_janus" "yes"))
5809 + (const_int 8)
5810 + (const_int 4)))]
5811 )
5812
5813 (define_insn "*arm_cmpsi_negshiftsi_si"
5814 @@ -7537,7 +8014,11 @@
5815 [(set_attr "conds" "set")
5816 (set (attr "type") (if_then_else (match_operand 3 "const_int_operand" "")
5817 (const_string "alu_shift")
5818 - (const_string "alu_shift_reg")))]
5819 + (const_string "alu_shift_reg")))
5820 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
5821 + (eq_attr "fix_janus" "yes"))
5822 + (const_int 8)
5823 + (const_int 4)))]
5824 )
5825
5826 ;; Cirrus SF compare instruction
5827 @@ -7879,77 +8360,77 @@
5828 (define_expand "seq"
5829 [(set (match_operand:SI 0 "s_register_operand" "")
5830 (eq:SI (match_dup 1) (const_int 0)))]
5831 - "TARGET_32BIT"
5832 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5833 "operands[1] = arm_gen_compare_reg (EQ, arm_compare_op0, arm_compare_op1);"
5834 )
5835
5836 (define_expand "sne"
5837 [(set (match_operand:SI 0 "s_register_operand" "")
5838 (ne:SI (match_dup 1) (const_int 0)))]
5839 - "TARGET_32BIT"
5840 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5841 "operands[1] = arm_gen_compare_reg (NE, arm_compare_op0, arm_compare_op1);"
5842 )
5843
5844 (define_expand "sgt"
5845 [(set (match_operand:SI 0 "s_register_operand" "")
5846 (gt:SI (match_dup 1) (const_int 0)))]
5847 - "TARGET_32BIT"
5848 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5849 "operands[1] = arm_gen_compare_reg (GT, arm_compare_op0, arm_compare_op1);"
5850 )
5851
5852 (define_expand "sle"
5853 [(set (match_operand:SI 0 "s_register_operand" "")
5854 (le:SI (match_dup 1) (const_int 0)))]
5855 - "TARGET_32BIT"
5856 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5857 "operands[1] = arm_gen_compare_reg (LE, arm_compare_op0, arm_compare_op1);"
5858 )
5859
5860 (define_expand "sge"
5861 [(set (match_operand:SI 0 "s_register_operand" "")
5862 (ge:SI (match_dup 1) (const_int 0)))]
5863 - "TARGET_32BIT"
5864 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5865 "operands[1] = arm_gen_compare_reg (GE, arm_compare_op0, arm_compare_op1);"
5866 )
5867
5868 (define_expand "slt"
5869 [(set (match_operand:SI 0 "s_register_operand" "")
5870 (lt:SI (match_dup 1) (const_int 0)))]
5871 - "TARGET_32BIT"
5872 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5873 "operands[1] = arm_gen_compare_reg (LT, arm_compare_op0, arm_compare_op1);"
5874 )
5875
5876 (define_expand "sgtu"
5877 [(set (match_operand:SI 0 "s_register_operand" "")
5878 (gtu:SI (match_dup 1) (const_int 0)))]
5879 - "TARGET_32BIT"
5880 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5881 "operands[1] = arm_gen_compare_reg (GTU, arm_compare_op0, arm_compare_op1);"
5882 )
5883
5884 (define_expand "sleu"
5885 [(set (match_operand:SI 0 "s_register_operand" "")
5886 (leu:SI (match_dup 1) (const_int 0)))]
5887 - "TARGET_32BIT"
5888 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5889 "operands[1] = arm_gen_compare_reg (LEU, arm_compare_op0, arm_compare_op1);"
5890 )
5891
5892 (define_expand "sgeu"
5893 [(set (match_operand:SI 0 "s_register_operand" "")
5894 (geu:SI (match_dup 1) (const_int 0)))]
5895 - "TARGET_32BIT"
5896 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5897 "operands[1] = arm_gen_compare_reg (GEU, arm_compare_op0, arm_compare_op1);"
5898 )
5899
5900 (define_expand "sltu"
5901 [(set (match_operand:SI 0 "s_register_operand" "")
5902 (ltu:SI (match_dup 1) (const_int 0)))]
5903 - "TARGET_32BIT"
5904 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5905 "operands[1] = arm_gen_compare_reg (LTU, arm_compare_op0, arm_compare_op1);"
5906 )
5907
5908 (define_expand "sunordered"
5909 [(set (match_operand:SI 0 "s_register_operand" "")
5910 (unordered:SI (match_dup 1) (const_int 0)))]
5911 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
5912 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP) && !TARGET_NO_COND_EXEC"
5913 "operands[1] = arm_gen_compare_reg (UNORDERED, arm_compare_op0,
5914 arm_compare_op1);"
5915 )
5916 @@ -7957,7 +8438,7 @@
5917 (define_expand "sordered"
5918 [(set (match_operand:SI 0 "s_register_operand" "")
5919 (ordered:SI (match_dup 1) (const_int 0)))]
5920 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
5921 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP) && !TARGET_NO_COND_EXEC"
5922 "operands[1] = arm_gen_compare_reg (ORDERED, arm_compare_op0,
5923 arm_compare_op1);"
5924 )
5925 @@ -7965,7 +8446,7 @@
5926 (define_expand "sungt"
5927 [(set (match_operand:SI 0 "s_register_operand" "")
5928 (ungt:SI (match_dup 1) (const_int 0)))]
5929 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
5930 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP) && !TARGET_NO_COND_EXEC"
5931 "operands[1] = arm_gen_compare_reg (UNGT, arm_compare_op0,
5932 arm_compare_op1);"
5933 )
5934 @@ -7973,7 +8454,7 @@
5935 (define_expand "sunge"
5936 [(set (match_operand:SI 0 "s_register_operand" "")
5937 (unge:SI (match_dup 1) (const_int 0)))]
5938 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
5939 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP) && !TARGET_NO_COND_EXEC"
5940 "operands[1] = arm_gen_compare_reg (UNGE, arm_compare_op0,
5941 arm_compare_op1);"
5942 )
5943 @@ -7981,7 +8462,7 @@
5944 (define_expand "sunlt"
5945 [(set (match_operand:SI 0 "s_register_operand" "")
5946 (unlt:SI (match_dup 1) (const_int 0)))]
5947 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
5948 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP) && !TARGET_NO_COND_EXEC"
5949 "operands[1] = arm_gen_compare_reg (UNLT, arm_compare_op0,
5950 arm_compare_op1);"
5951 )
5952 @@ -7989,7 +8470,7 @@
5953 (define_expand "sunle"
5954 [(set (match_operand:SI 0 "s_register_operand" "")
5955 (unle:SI (match_dup 1) (const_int 0)))]
5956 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
5957 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP) && !TARGET_NO_COND_EXEC"
5958 "operands[1] = arm_gen_compare_reg (UNLE, arm_compare_op0,
5959 arm_compare_op1);"
5960 )
5961 @@ -8018,6 +8499,7 @@
5962 "TARGET_ARM"
5963 "mov%D1\\t%0, #0\;mov%d1\\t%0, #1"
5964 [(set_attr "conds" "use")
5965 + (set_attr "insn" "mov")
5966 (set_attr "length" "8")]
5967 )
5968
5969 @@ -8028,6 +8510,7 @@
5970 "TARGET_ARM"
5971 "mov%D1\\t%0, #0\;mvn%d1\\t%0, #0"
5972 [(set_attr "conds" "use")
5973 + (set_attr "insn" "mov")
5974 (set_attr "length" "8")]
5975 )
5976
5977 @@ -8038,6 +8521,7 @@
5978 "TARGET_ARM"
5979 "mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
5980 [(set_attr "conds" "use")
5981 + (set_attr "insn" "mov")
5982 (set_attr "length" "8")]
5983 )
5984
5985 @@ -8241,7 +8725,7 @@
5986 (if_then_else:SI (match_operand 1 "arm_comparison_operator" "")
5987 (match_operand:SI 2 "arm_not_operand" "")
5988 (match_operand:SI 3 "arm_not_operand" "")))]
5989 - "TARGET_32BIT"
5990 + "TARGET_32BIT && !TARGET_NO_COND_EXEC"
5991 "
5992 {
5993 enum rtx_code code = GET_CODE (operands[1]);
5994 @@ -8260,7 +8744,7 @@
5995 (if_then_else:SF (match_operand 1 "arm_comparison_operator" "")
5996 (match_operand:SF 2 "s_register_operand" "")
5997 (match_operand:SF 3 "nonmemory_operand" "")))]
5998 - "TARGET_32BIT && TARGET_HARD_FLOAT"
5999 + "TARGET_32BIT && TARGET_HARD_FLOAT && !TARGET_NO_COND_EXEC"
6000 "
6001 {
6002 enum rtx_code code = GET_CODE (operands[1]);
6003 @@ -8285,7 +8769,7 @@
6004 (if_then_else:DF (match_operand 1 "arm_comparison_operator" "")
6005 (match_operand:DF 2 "s_register_operand" "")
6006 (match_operand:DF 3 "arm_float_add_operand" "")))]
6007 - "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP)"
6008 + "TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FPA || TARGET_VFP_DOUBLE) && !TARGET_NO_COND_EXEC"
6009 "
6010 {
6011 enum rtx_code code = GET_CODE (operands[1]);
6012 @@ -8317,7 +8801,8 @@
6013 mvn%d3\\t%0, #%B1\;mov%D3\\t%0, %2
6014 mvn%d3\\t%0, #%B1\;mvn%D3\\t%0, #%B2"
6015 [(set_attr "length" "4,4,4,4,8,8,8,8")
6016 - (set_attr "conds" "use")]
6017 + (set_attr "conds" "use")
6018 + (set_attr "insn" "mov,mvn,mov,mvn,mov,mov,mvn,mvn")]
6019 )
6020
6021 (define_insn "*movsfcc_soft_insn"
6022 @@ -8330,7 +8815,8 @@
6023 "@
6024 mov%D3\\t%0, %2
6025 mov%d3\\t%0, %1"
6026 - [(set_attr "conds" "use")]
6027 + [(set_attr "conds" "use")
6028 + (set_attr "insn" "mov")]
6029 )
6030
6031 \f
6032 @@ -8733,7 +9219,7 @@
6033 [(match_operand 1 "cc_register" "") (const_int 0)])
6034 (return)
6035 (pc)))]
6036 - "TARGET_ARM && USE_RETURN_INSN (TRUE)"
6037 + "TARGET_ARM && USE_RETURN_INSN (TRUE) && !TARGET_NO_COND_EXEC"
6038 "*
6039 {
6040 if (arm_ccfsm_state == 2)
6041 @@ -8754,7 +9240,7 @@
6042 [(match_operand 1 "cc_register" "") (const_int 0)])
6043 (pc)
6044 (return)))]
6045 - "TARGET_ARM && USE_RETURN_INSN (TRUE)"
6046 + "TARGET_ARM && USE_RETURN_INSN (TRUE) && !TARGET_NO_COND_EXEC"
6047 "*
6048 {
6049 if (arm_ccfsm_state == 2)
6050 @@ -9072,7 +9558,11 @@
6051 (set_attr "shift" "4")
6052 (set (attr "type") (if_then_else (match_operand 5 "const_int_operand" "")
6053 (const_string "alu_shift")
6054 - (const_string "alu_shift_reg")))]
6055 + (const_string "alu_shift_reg")))
6056 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
6057 + (eq_attr "fix_janus" "yes"))
6058 + (const_int 8)
6059 + (const_int 4)))]
6060 )
6061
6062 (define_split
6063 @@ -9110,7 +9600,11 @@
6064 (set_attr "shift" "4")
6065 (set (attr "type") (if_then_else (match_operand 5 "const_int_operand" "")
6066 (const_string "alu_shift")
6067 - (const_string "alu_shift_reg")))]
6068 + (const_string "alu_shift_reg")))
6069 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
6070 + (eq_attr "fix_janus" "yes"))
6071 + (const_int 8)
6072 + (const_int 4)))]
6073 )
6074
6075 (define_insn "*arith_shiftsi_compare0_scratch"
6076 @@ -9128,7 +9622,11 @@
6077 (set_attr "shift" "4")
6078 (set (attr "type") (if_then_else (match_operand 5 "const_int_operand" "")
6079 (const_string "alu_shift")
6080 - (const_string "alu_shift_reg")))]
6081 + (const_string "alu_shift_reg")))
6082 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
6083 + (eq_attr "fix_janus" "yes"))
6084 + (const_int 8)
6085 + (const_int 4)))]
6086 )
6087
6088 (define_insn "*sub_shiftsi"
6089 @@ -9143,7 +9641,11 @@
6090 (set_attr "shift" "3")
6091 (set (attr "type") (if_then_else (match_operand 4 "const_int_operand" "")
6092 (const_string "alu_shift")
6093 - (const_string "alu_shift_reg")))]
6094 + (const_string "alu_shift_reg")))
6095 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
6096 + (eq_attr "fix_janus" "yes"))
6097 + (const_int 8)
6098 + (const_int 4)))]
6099 )
6100
6101 (define_insn "*sub_shiftsi_compare0"
6102 @@ -9163,7 +9665,11 @@
6103 (set_attr "shift" "3")
6104 (set (attr "type") (if_then_else (match_operand 4 "const_int_operand" "")
6105 (const_string "alu_shift")
6106 - (const_string "alu_shift_reg")))]
6107 + (const_string "alu_shift_reg")))
6108 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
6109 + (eq_attr "fix_janus" "yes"))
6110 + (const_int 8)
6111 + (const_int 4)))]
6112 )
6113
6114 (define_insn "*sub_shiftsi_compare0_scratch"
6115 @@ -9181,7 +9687,11 @@
6116 (set_attr "shift" "3")
6117 (set (attr "type") (if_then_else (match_operand 4 "const_int_operand" "")
6118 (const_string "alu_shift")
6119 - (const_string "alu_shift_reg")))]
6120 + (const_string "alu_shift_reg")))
6121 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
6122 + (eq_attr "fix_janus" "yes"))
6123 + (const_int 8)
6124 + (const_int 4)))]
6125 )
6126
6127 \f
6128 @@ -9194,6 +9704,7 @@
6129 "TARGET_ARM"
6130 "mov%D1\\t%0, #0\;and%d1\\t%0, %2, #1"
6131 [(set_attr "conds" "use")
6132 + (set_attr "insn" "mov")
6133 (set_attr "length" "8")]
6134 )
6135
6136 @@ -9207,6 +9718,7 @@
6137 orr%d2\\t%0, %1, #1
6138 mov%D2\\t%0, %1\;orr%d2\\t%0, %1, #1"
6139 [(set_attr "conds" "use")
6140 + (set_attr "insn" "orr")
6141 (set_attr "length" "4,8")]
6142 )
6143
6144 @@ -9216,7 +9728,7 @@
6145 [(match_operand:SI 2 "s_register_operand" "r,r")
6146 (match_operand:SI 3 "arm_add_operand" "rI,L")]))
6147 (clobber (reg:CC CC_REGNUM))]
6148 - "TARGET_ARM"
6149 + "TARGET_ARM && !TARGET_NO_COND_EXEC"
6150 "*
6151 if (operands[3] == const0_rtx)
6152 {
6153 @@ -9271,6 +9783,7 @@
6154 return \"\";
6155 "
6156 [(set_attr "conds" "use")
6157 + (set_attr "insn" "mov")
6158 (set_attr "length" "4,4,8")]
6159 )
6160
6161 @@ -9282,7 +9795,7 @@
6162 (match_operand:SI 3 "arm_rhs_operand" "rI,rI")])
6163 (match_operand:SI 1 "s_register_operand" "0,?r")]))
6164 (clobber (reg:CC CC_REGNUM))]
6165 - "TARGET_ARM"
6166 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6167 "*
6168 if (GET_CODE (operands[4]) == LT && operands[3] == const0_rtx)
6169 return \"%i5\\t%0, %1, %2, lsr #31\";
6170 @@ -9678,7 +10191,7 @@
6171 (match_operand:SI 1 "arm_rhs_operand" "0,rI,?rI")
6172 (match_operand:SI 2 "arm_rhs_operand" "rI,0,rI")))
6173 (clobber (reg:CC CC_REGNUM))]
6174 - "TARGET_ARM"
6175 + "TARGET_ARM && !TARGET_NO_COND_EXEC"
6176 "*
6177 if (GET_CODE (operands[5]) == LT
6178 && (operands[4] == const0_rtx))
6179 @@ -9744,7 +10257,7 @@
6180 (match_operand:SI 3 "arm_add_operand" "rIL,rIL"))
6181 (match_operand:SI 1 "arm_rhs_operand" "0,?rI")))
6182 (clobber (reg:CC CC_REGNUM))]
6183 - "TARGET_ARM"
6184 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6185 "#"
6186 [(set_attr "conds" "clob")
6187 (set_attr "length" "8,12")]
6188 @@ -9780,7 +10293,7 @@
6189 (match_operand:SI 2 "s_register_operand" "r,r")
6190 (match_operand:SI 3 "arm_add_operand" "rIL,rIL"))))
6191 (clobber (reg:CC CC_REGNUM))]
6192 - "TARGET_ARM"
6193 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6194 "#"
6195 [(set_attr "conds" "clob")
6196 (set_attr "length" "8,12")]
6197 @@ -9818,7 +10331,7 @@
6198 [(match_operand:SI 3 "s_register_operand" "r")
6199 (match_operand:SI 4 "arm_rhs_operand" "rI")])))
6200 (clobber (reg:CC CC_REGNUM))]
6201 - "TARGET_ARM"
6202 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6203 "#"
6204 [(set_attr "conds" "clob")
6205 (set_attr "length" "12")]
6206 @@ -9968,7 +10481,7 @@
6207 (not:SI
6208 (match_operand:SI 2 "s_register_operand" "r,r"))))
6209 (clobber (reg:CC CC_REGNUM))]
6210 - "TARGET_ARM"
6211 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6212 "#"
6213 [(set_attr "conds" "clob")
6214 (set_attr "length" "8,12")]
6215 @@ -9987,6 +10500,7 @@
6216 mov%d4\\t%0, %1\;mvn%D4\\t%0, %2
6217 mvn%d4\\t%0, #%B1\;mvn%D4\\t%0, %2"
6218 [(set_attr "conds" "use")
6219 + (set_attr "insn" "mvn")
6220 (set_attr "length" "4,8,8")]
6221 )
6222
6223 @@ -10000,7 +10514,7 @@
6224 (match_operand:SI 2 "s_register_operand" "r,r"))
6225 (match_operand:SI 1 "arm_not_operand" "0,?rIK")))
6226 (clobber (reg:CC CC_REGNUM))]
6227 - "TARGET_ARM"
6228 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6229 "#"
6230 [(set_attr "conds" "clob")
6231 (set_attr "length" "8,12")]
6232 @@ -10019,6 +10533,7 @@
6233 mov%D4\\t%0, %1\;mvn%d4\\t%0, %2
6234 mvn%D4\\t%0, #%B1\;mvn%d4\\t%0, %2"
6235 [(set_attr "conds" "use")
6236 + (set_attr "insn" "mvn")
6237 (set_attr "length" "4,8,8")]
6238 )
6239
6240 @@ -10033,7 +10548,7 @@
6241 (match_operand:SI 3 "arm_rhs_operand" "rM,rM")])
6242 (match_operand:SI 1 "arm_not_operand" "0,?rIK")))
6243 (clobber (reg:CC CC_REGNUM))]
6244 - "TARGET_ARM"
6245 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6246 "#"
6247 [(set_attr "conds" "clob")
6248 (set_attr "length" "8,12")]
6249 @@ -10055,10 +10570,23 @@
6250 mvn%D5\\t%0, #%B1\;mov%d5\\t%0, %2%S4"
6251 [(set_attr "conds" "use")
6252 (set_attr "shift" "2")
6253 - (set_attr "length" "4,8,8")
6254 + (set_attr "insn" "mov")
6255 (set (attr "type") (if_then_else (match_operand 3 "const_int_operand" "")
6256 (const_string "alu_shift")
6257 - (const_string "alu_shift_reg")))]
6258 + (const_string "alu_shift_reg")))
6259 + (set_attr_alternative "length"
6260 + [(if_then_else (and (eq_attr "type" "alu_shift_reg")
6261 + (eq_attr "fix_janus" "yes"))
6262 + (const_int 8)
6263 + (const_int 4))
6264 + (if_then_else (and (eq_attr "type" "alu_shift_reg")
6265 + (eq_attr "fix_janus" "yes"))
6266 + (const_int 12)
6267 + (const_int 8))
6268 + (if_then_else (and (eq_attr "type" "alu_shift_reg")
6269 + (eq_attr "fix_janus" "yes"))
6270 + (const_int 12)
6271 + (const_int 8))])]
6272 )
6273
6274 (define_insn "*ifcompare_move_shift"
6275 @@ -10072,7 +10600,7 @@
6276 [(match_operand:SI 2 "s_register_operand" "r,r")
6277 (match_operand:SI 3 "arm_rhs_operand" "rM,rM")])))
6278 (clobber (reg:CC CC_REGNUM))]
6279 - "TARGET_ARM"
6280 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6281 "#"
6282 [(set_attr "conds" "clob")
6283 (set_attr "length" "8,12")]
6284 @@ -10094,10 +10622,24 @@
6285 mvn%d5\\t%0, #%B1\;mov%D5\\t%0, %2%S4"
6286 [(set_attr "conds" "use")
6287 (set_attr "shift" "2")
6288 - (set_attr "length" "4,8,8")
6289 + (set_attr "insn" "mov")
6290 (set (attr "type") (if_then_else (match_operand 3 "const_int_operand" "")
6291 (const_string "alu_shift")
6292 - (const_string "alu_shift_reg")))]
6293 + (const_string "alu_shift_reg")))
6294 + (set_attr_alternative "length"
6295 + [(if_then_else (and (eq_attr "type" "alu_shift_reg")
6296 + (eq_attr "fix_janus" "yes"))
6297 + (const_int 8)
6298 + (const_int 4))
6299 + (if_then_else (and (eq_attr "type" "alu_shift_reg")
6300 + (eq_attr "fix_janus" "yes"))
6301 + (const_int 12)
6302 + (const_int 8))
6303 + (if_then_else (and (eq_attr "type" "alu_shift_reg")
6304 + (eq_attr "fix_janus" "yes"))
6305 + (const_int 12)
6306 + (const_int 8))])
6307 + (set_attr "insn" "mov")]
6308 )
6309
6310 (define_insn "*ifcompare_shift_shift"
6311 @@ -10113,7 +10655,7 @@
6312 [(match_operand:SI 3 "s_register_operand" "r")
6313 (match_operand:SI 4 "arm_rhs_operand" "rM")])))
6314 (clobber (reg:CC CC_REGNUM))]
6315 - "TARGET_ARM"
6316 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6317 "#"
6318 [(set_attr "conds" "clob")
6319 (set_attr "length" "12")]
6320 @@ -10134,12 +10676,16 @@
6321 "mov%d5\\t%0, %1%S6\;mov%D5\\t%0, %3%S7"
6322 [(set_attr "conds" "use")
6323 (set_attr "shift" "1")
6324 - (set_attr "length" "8")
6325 + (set_attr "insn" "mov")
6326 (set (attr "type") (if_then_else
6327 (and (match_operand 2 "const_int_operand" "")
6328 (match_operand 4 "const_int_operand" ""))
6329 (const_string "alu_shift")
6330 - (const_string "alu_shift_reg")))]
6331 + (const_string "alu_shift_reg")))
6332 + (set (attr "length") (if_then_else (and (eq_attr "type" "alu_shift_reg")
6333 + (eq_attr "fix_janus" "yes"))
6334 + (const_int 16)
6335 + (const_int 8)))]
6336 )
6337
6338 (define_insn "*ifcompare_not_arith"
6339 @@ -10153,7 +10699,7 @@
6340 [(match_operand:SI 2 "s_register_operand" "r")
6341 (match_operand:SI 3 "arm_rhs_operand" "rI")])))
6342 (clobber (reg:CC CC_REGNUM))]
6343 - "TARGET_ARM"
6344 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6345 "#"
6346 [(set_attr "conds" "clob")
6347 (set_attr "length" "12")]
6348 @@ -10171,6 +10717,7 @@
6349 "TARGET_ARM"
6350 "mvn%d5\\t%0, %1\;%I6%D5\\t%0, %2, %3"
6351 [(set_attr "conds" "use")
6352 + (set_attr "insn" "mvn")
6353 (set_attr "length" "8")]
6354 )
6355
6356 @@ -10185,7 +10732,7 @@
6357 (match_operand:SI 3 "arm_rhs_operand" "rI")])
6358 (not:SI (match_operand:SI 1 "s_register_operand" "r"))))
6359 (clobber (reg:CC CC_REGNUM))]
6360 - "TARGET_ARM"
6361 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6362 "#"
6363 [(set_attr "conds" "clob")
6364 (set_attr "length" "12")]
6365 @@ -10203,6 +10750,7 @@
6366 "TARGET_ARM"
6367 "mvn%D5\\t%0, %1\;%I6%d5\\t%0, %2, %3"
6368 [(set_attr "conds" "use")
6369 + (set_attr "insn" "mvn")
6370 (set_attr "length" "8")]
6371 )
6372
6373 @@ -10215,7 +10763,7 @@
6374 (neg:SI (match_operand:SI 2 "s_register_operand" "r,r"))
6375 (match_operand:SI 1 "arm_not_operand" "0,?rIK")))
6376 (clobber (reg:CC CC_REGNUM))]
6377 - "TARGET_ARM"
6378 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6379 "#"
6380 [(set_attr "conds" "clob")
6381 (set_attr "length" "8,12")]
6382 @@ -10246,7 +10794,7 @@
6383 (match_operand:SI 1 "arm_not_operand" "0,?rIK")
6384 (neg:SI (match_operand:SI 2 "s_register_operand" "r,r"))))
6385 (clobber (reg:CC CC_REGNUM))]
6386 - "TARGET_ARM"
6387 + "TARGET_ARM && !TARGET_NO_SINGLE_COND_EXEC"
6388 "#"
6389 [(set_attr "conds" "clob")
6390 (set_attr "length" "8,12")]
6391 @@ -10614,7 +11162,7 @@
6392 (match_dup 0)
6393 (match_operand 4 "" "")))
6394 (clobber (reg:CC CC_REGNUM))]
6395 - "TARGET_ARM && reload_completed"
6396 + "TARGET_ARM && reload_completed && !TARGET_NO_SINGLE_COND_EXEC"
6397 [(set (match_dup 5) (match_dup 6))
6398 (cond_exec (match_dup 7)
6399 (set (match_dup 0) (match_dup 4)))]
6400 @@ -10642,7 +11190,7 @@
6401 (match_operand 4 "" "")
6402 (match_dup 0)))
6403 (clobber (reg:CC CC_REGNUM))]
6404 - "TARGET_ARM && reload_completed"
6405 + "TARGET_ARM && reload_completed && !TARGET_NO_SINGLE_COND_EXEC"
6406 [(set (match_dup 5) (match_dup 6))
6407 (cond_exec (match_op_dup 1 [(match_dup 5) (const_int 0)])
6408 (set (match_dup 0) (match_dup 4)))]
6409 @@ -10663,7 +11211,7 @@
6410 (match_operand 4 "" "")
6411 (match_operand 5 "" "")))
6412 (clobber (reg:CC CC_REGNUM))]
6413 - "TARGET_ARM && reload_completed"
6414 + "TARGET_ARM && reload_completed && !TARGET_NO_SINGLE_COND_EXEC"
6415 [(set (match_dup 6) (match_dup 7))
6416 (cond_exec (match_op_dup 1 [(match_dup 6) (const_int 0)])
6417 (set (match_dup 0) (match_dup 4)))
6418 @@ -10695,7 +11243,7 @@
6419 (not:SI
6420 (match_operand:SI 5 "s_register_operand" ""))))
6421 (clobber (reg:CC CC_REGNUM))]
6422 - "TARGET_ARM && reload_completed"
6423 + "TARGET_ARM && reload_completed && !TARGET_NO_SINGLE_COND_EXEC"
6424 [(set (match_dup 6) (match_dup 7))
6425 (cond_exec (match_op_dup 1 [(match_dup 6) (const_int 0)])
6426 (set (match_dup 0) (match_dup 4)))
6427 @@ -10730,6 +11278,7 @@
6428 mvn%D4\\t%0, %2
6429 mov%d4\\t%0, %1\;mvn%D4\\t%0, %2"
6430 [(set_attr "conds" "use")
6431 + (set_attr "insn" "mvn")
6432 (set_attr "length" "4,8")]
6433 )
6434
6435 @@ -10864,6 +11413,24 @@
6436 "
6437 )
6438
6439 +(define_insn "align_16"
6440 + [(unspec_volatile [(const_int 0)] VUNSPEC_ALIGN16)]
6441 + "TARGET_EITHER"
6442 + "*
6443 + assemble_align (128);
6444 + return \"\";
6445 + "
6446 +)
6447 +
6448 +(define_insn "align_32"
6449 + [(unspec_volatile [(const_int 0)] VUNSPEC_ALIGN32)]
6450 + "TARGET_EITHER"
6451 + "*
6452 + assemble_align (256);
6453 + return \"\";
6454 + "
6455 +)
6456 +
6457 (define_insn "consttable_end"
6458 [(unspec_volatile [(const_int 0)] VUNSPEC_POOL_END)]
6459 "TARGET_EITHER"
6460 @@ -10890,6 +11457,7 @@
6461 "TARGET_THUMB1"
6462 "*
6463 making_const_table = TRUE;
6464 + gcc_assert (GET_MODE_CLASS (GET_MODE (operands[0])) != MODE_FLOAT);
6465 assemble_integer (operands[0], 2, BITS_PER_WORD, 1);
6466 assemble_zeros (2);
6467 return \"\";
6468 @@ -10902,19 +11470,30 @@
6469 "TARGET_EITHER"
6470 "*
6471 {
6472 + rtx x = operands[0];
6473 making_const_table = TRUE;
6474 - switch (GET_MODE_CLASS (GET_MODE (operands[0])))
6475 + switch (GET_MODE_CLASS (GET_MODE (x)))
6476 {
6477 case MODE_FLOAT:
6478 - {
6479 - REAL_VALUE_TYPE r;
6480 - REAL_VALUE_FROM_CONST_DOUBLE (r, operands[0]);
6481 - assemble_real (r, GET_MODE (operands[0]), BITS_PER_WORD);
6482 - break;
6483 - }
6484 + if (GET_MODE (x) == HFmode)
6485 + arm_emit_fp16_const (x);
6486 + else
6487 + {
6488 + REAL_VALUE_TYPE r;
6489 + REAL_VALUE_FROM_CONST_DOUBLE (r, x);
6490 + assemble_real (r, GET_MODE (x), BITS_PER_WORD);
6491 + }
6492 + break;
6493 default:
6494 - assemble_integer (operands[0], 4, BITS_PER_WORD, 1);
6495 - mark_symbol_refs_as_used (operands[0]);
6496 + /* XXX: Sometimes gcc does something really dumb and ends up with
6497 + a HIGH in a constant pool entry, usually because it's trying to
6498 + load into a VFP register. We know this will always be used in
6499 + combination with a LO_SUM which ignores the high bits, so just
6500 + strip off the HIGH. */
6501 + if (GET_CODE (x) == HIGH)
6502 + x = XEXP (x, 0);
6503 + assemble_integer (x, 4, BITS_PER_WORD, 1);
6504 + mark_symbol_refs_as_used (x);
6505 break;
6506 }
6507 return \"\";
6508 @@ -11008,6 +11587,28 @@
6509 [(set_attr "predicable" "yes")
6510 (set_attr "insn" "clz")])
6511
6512 +(define_insn "rbitsi2"
6513 + [(set (match_operand:SI 0 "s_register_operand" "=r")
6514 + (unspec:SI [(match_operand:SI 1 "s_register_operand" "r")] UNSPEC_RBIT))]
6515 + "TARGET_32BIT && arm_arch_thumb2"
6516 + "rbit%?\\t%0, %1"
6517 + [(set_attr "predicable" "yes")
6518 + (set_attr "insn" "clz")])
6519 +
6520 +(define_expand "ctzsi2"
6521 + [(set (match_operand:SI 0 "s_register_operand" "")
6522 + (ctz:SI (match_operand:SI 1 "s_register_operand" "")))]
6523 + "TARGET_32BIT && arm_arch_thumb2"
6524 + "
6525 + {
6526 + rtx tmp = gen_reg_rtx (SImode);
6527 + emit_insn (gen_rbitsi2 (tmp, operands[1]));
6528 + emit_insn (gen_clzsi2 (operands[0], tmp));
6529 + }
6530 + DONE;
6531 + "
6532 +)
6533 +
6534 ;; V5E instructions.
6535
6536 (define_insn "prefetch"
6537 @@ -11017,13 +11618,15 @@
6538 "TARGET_32BIT && arm_arch5e"
6539 "pld\\t%a0")
6540
6541 -;; General predication pattern
6542 +;; General predication pattern.
6543 +;; Conditional branches are available as both arm_cond_branch and
6544 +;; predicated arm_jump, so it doesn't matter if we disable the latter.
6545
6546 (define_cond_exec
6547 [(match_operator 0 "arm_comparison_operator"
6548 [(match_operand 1 "cc_register" "")
6549 (const_int 0)])]
6550 - "TARGET_32BIT"
6551 + "TARGET_32BIT && !TARGET_NO_SINGLE_COND_EXEC"
6552 ""
6553 )
6554
6555 diff -Nur a/gcc/config/arm/arm-modes.def b/gcc/config/arm/arm-modes.def
6556 --- a/gcc/config/arm/arm-modes.def 2007-08-02 12:49:31.000000000 +0200
6557 +++ b/gcc/config/arm/arm-modes.def 2010-01-25 09:50:28.985687200 +0100
6558 @@ -25,6 +25,11 @@
6559 FIXME What format is this? */
6560 FLOAT_MODE (XF, 12, 0);
6561
6562 +/* Half-precision floating point */
6563 +FLOAT_MODE (HF, 2, 0);
6564 +ADJUST_FLOAT_FORMAT (HF, ((arm_fp16_format == ARM_FP16_FORMAT_ALTERNATIVE)
6565 + ? &arm_half_format : &ieee_half_format));
6566 +
6567 /* CCFPEmode should be used with floating inequalities,
6568 CCFPmode should be used with floating equalities.
6569 CC_NOOVmode should be used with SImode integer equalities.
6570 @@ -62,6 +67,4 @@
6571 INT_MODE (EI, 24);
6572 INT_MODE (OI, 32);
6573 INT_MODE (CI, 48);
6574 -/* ??? This should actually have 512 bits but the precision only has 9
6575 - bits. */
6576 -FRACTIONAL_INT_MODE (XI, 511, 64);
6577 +INT_MODE (XI, 64);
6578 diff -Nur a/gcc/config/arm/arm_neon.h b/gcc/config/arm/arm_neon.h
6579 --- a/gcc/config/arm/arm_neon.h 2009-04-10 01:23:07.000000000 +0200
6580 +++ b/gcc/config/arm/arm_neon.h 2010-01-25 09:50:28.985687200 +0100
6581 @@ -36,7 +36,11 @@
6582 extern "C" {
6583 #endif
6584
6585 +#if defined (__vxworks) && defined (_WRS_KERNEL)
6586 +#include <vxWorks.h>
6587 +#else
6588 #include <stdint.h>
6589 +#endif
6590
6591 typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8)));
6592 typedef __builtin_neon_hi int16x4_t __attribute__ ((__vector_size__ (8)));
6593 @@ -61,7 +65,7 @@
6594 typedef __builtin_neon_usi uint32x4_t __attribute__ ((__vector_size__ (16)));
6595 typedef __builtin_neon_udi uint64x2_t __attribute__ ((__vector_size__ (16)));
6596
6597 -typedef __builtin_neon_sf float32_t;
6598 +typedef float float32_t;
6599 typedef __builtin_neon_poly8 poly8_t;
6600 typedef __builtin_neon_poly16 poly16_t;
6601
6602 @@ -5085,7 +5089,7 @@
6603 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6604 vset_lane_f32 (float32_t __a, float32x2_t __b, const int __c)
6605 {
6606 - return (float32x2_t)__builtin_neon_vset_lanev2sf (__a, __b, __c);
6607 + return (float32x2_t)__builtin_neon_vset_lanev2sf ((__builtin_neon_sf) __a, __b, __c);
6608 }
6609
6610 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6611 @@ -5151,7 +5155,7 @@
6612 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6613 vsetq_lane_f32 (float32_t __a, float32x4_t __b, const int __c)
6614 {
6615 - return (float32x4_t)__builtin_neon_vset_lanev4sf (__a, __b, __c);
6616 + return (float32x4_t)__builtin_neon_vset_lanev4sf ((__builtin_neon_sf) __a, __b, __c);
6617 }
6618
6619 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
6620 @@ -5283,7 +5287,7 @@
6621 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6622 vdup_n_f32 (float32_t __a)
6623 {
6624 - return (float32x2_t)__builtin_neon_vdup_nv2sf (__a);
6625 + return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6626 }
6627
6628 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6629 @@ -5349,7 +5353,7 @@
6630 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6631 vdupq_n_f32 (float32_t __a)
6632 {
6633 - return (float32x4_t)__builtin_neon_vdup_nv4sf (__a);
6634 + return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6635 }
6636
6637 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
6638 @@ -5415,7 +5419,7 @@
6639 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6640 vmov_n_f32 (float32_t __a)
6641 {
6642 - return (float32x2_t)__builtin_neon_vdup_nv2sf (__a);
6643 + return (float32x2_t)__builtin_neon_vdup_nv2sf ((__builtin_neon_sf) __a);
6644 }
6645
6646 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6647 @@ -5481,7 +5485,7 @@
6648 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6649 vmovq_n_f32 (float32_t __a)
6650 {
6651 - return (float32x4_t)__builtin_neon_vdup_nv4sf (__a);
6652 + return (float32x4_t)__builtin_neon_vdup_nv4sf ((__builtin_neon_sf) __a);
6653 }
6654
6655 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
6656 @@ -6591,7 +6595,7 @@
6657 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6658 vmul_n_f32 (float32x2_t __a, float32_t __b)
6659 {
6660 - return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, __b, 3);
6661 + return (float32x2_t)__builtin_neon_vmul_nv2sf (__a, (__builtin_neon_sf) __b, 3);
6662 }
6663
6664 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6665 @@ -6621,7 +6625,7 @@
6666 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6667 vmulq_n_f32 (float32x4_t __a, float32_t __b)
6668 {
6669 - return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, __b, 3);
6670 + return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, (__builtin_neon_sf) __b, 3);
6671 }
6672
6673 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6674 @@ -6735,7 +6739,7 @@
6675 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6676 vmla_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
6677 {
6678 - return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, __c, 3);
6679 + return (float32x2_t)__builtin_neon_vmla_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
6680 }
6681
6682 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6683 @@ -6765,7 +6769,7 @@
6684 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6685 vmlaq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
6686 {
6687 - return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, __c, 3);
6688 + return (float32x4_t)__builtin_neon_vmla_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
6689 }
6690
6691 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6692 @@ -6831,7 +6835,7 @@
6693 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6694 vmls_n_f32 (float32x2_t __a, float32x2_t __b, float32_t __c)
6695 {
6696 - return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, __c, 3);
6697 + return (float32x2_t)__builtin_neon_vmls_nv2sf (__a, __b, (__builtin_neon_sf) __c, 3);
6698 }
6699
6700 __extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
6701 @@ -6861,7 +6865,7 @@
6702 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6703 vmlsq_n_f32 (float32x4_t __a, float32x4_t __b, float32_t __c)
6704 {
6705 - return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, __c, 3);
6706 + return (float32x4_t)__builtin_neon_vmls_nv4sf (__a, __b, (__builtin_neon_sf) __c, 3);
6707 }
6708
6709 __extension__ static __inline uint16x8_t __attribute__ ((__always_inline__))
6710 @@ -7851,7 +7855,7 @@
6711 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6712 vld1_f32 (const float32_t * __a)
6713 {
6714 - return (float32x2_t)__builtin_neon_vld1v2sf (__a);
6715 + return (float32x2_t)__builtin_neon_vld1v2sf ((const __builtin_neon_sf *) __a);
6716 }
6717
6718 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6719 @@ -7917,7 +7921,7 @@
6720 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6721 vld1q_f32 (const float32_t * __a)
6722 {
6723 - return (float32x4_t)__builtin_neon_vld1v4sf (__a);
6724 + return (float32x4_t)__builtin_neon_vld1v4sf ((const __builtin_neon_sf *) __a);
6725 }
6726
6727 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
6728 @@ -7977,7 +7981,7 @@
6729 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6730 vld1_lane_f32 (const float32_t * __a, float32x2_t __b, const int __c)
6731 {
6732 - return (float32x2_t)__builtin_neon_vld1_lanev2sf (__a, __b, __c);
6733 + return (float32x2_t)__builtin_neon_vld1_lanev2sf ((const __builtin_neon_sf *) __a, __b, __c);
6734 }
6735
6736 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6737 @@ -8043,7 +8047,7 @@
6738 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6739 vld1q_lane_f32 (const float32_t * __a, float32x4_t __b, const int __c)
6740 {
6741 - return (float32x4_t)__builtin_neon_vld1_lanev4sf (__a, __b, __c);
6742 + return (float32x4_t)__builtin_neon_vld1_lanev4sf ((const __builtin_neon_sf *) __a, __b, __c);
6743 }
6744
6745 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
6746 @@ -8109,7 +8113,7 @@
6747 __extension__ static __inline float32x2_t __attribute__ ((__always_inline__))
6748 vld1_dup_f32 (const float32_t * __a)
6749 {
6750 - return (float32x2_t)__builtin_neon_vld1_dupv2sf (__a);
6751 + return (float32x2_t)__builtin_neon_vld1_dupv2sf ((const __builtin_neon_sf *) __a);
6752 }
6753
6754 __extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
6755 @@ -8175,7 +8179,7 @@
6756 __extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
6757 vld1q_dup_f32 (const float32_t * __a)
6758 {
6759 - return (float32x4_t)__builtin_neon_vld1_dupv4sf (__a);
6760 + return (float32x4_t)__builtin_neon_vld1_dupv4sf ((const __builtin_neon_sf *) __a);
6761 }
6762
6763 __extension__ static __inline uint8x16_t __attribute__ ((__always_inline__))
6764 @@ -8247,7 +8251,7 @@
6765 __extension__ static __inline void __attribute__ ((__always_inline__))
6766 vst1_f32 (float32_t * __a, float32x2_t __b)
6767 {
6768 - __builtin_neon_vst1v2sf (__a, __b);
6769 + __builtin_neon_vst1v2sf ((__builtin_neon_sf *) __a, __b);
6770 }
6771
6772 __extension__ static __inline void __attribute__ ((__always_inline__))
6773 @@ -8313,7 +8317,7 @@
6774 __extension__ static __inline void __attribute__ ((__always_inline__))
6775 vst1q_f32 (float32_t * __a, float32x4_t __b)
6776 {
6777 - __builtin_neon_vst1v4sf (__a, __b);
6778 + __builtin_neon_vst1v4sf ((__builtin_neon_sf *) __a, __b);
6779 }
6780
6781 __extension__ static __inline void __attribute__ ((__always_inline__))
6782 @@ -8373,7 +8377,7 @@
6783 __extension__ static __inline void __attribute__ ((__always_inline__))
6784 vst1_lane_f32 (float32_t * __a, float32x2_t __b, const int __c)
6785 {
6786 - __builtin_neon_vst1_lanev2sf (__a, __b, __c);
6787 + __builtin_neon_vst1_lanev2sf ((__builtin_neon_sf *) __a, __b, __c);
6788 }
6789
6790 __extension__ static __inline void __attribute__ ((__always_inline__))
6791 @@ -8439,7 +8443,7 @@
6792 __extension__ static __inline void __attribute__ ((__always_inline__))
6793 vst1q_lane_f32 (float32_t * __a, float32x4_t __b, const int __c)
6794 {
6795 - __builtin_neon_vst1_lanev4sf (__a, __b, __c);
6796 + __builtin_neon_vst1_lanev4sf ((__builtin_neon_sf *) __a, __b, __c);
6797 }
6798
6799 __extension__ static __inline void __attribute__ ((__always_inline__))
6800 @@ -8512,7 +8516,7 @@
6801 vld2_f32 (const float32_t * __a)
6802 {
6803 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
6804 - __rv.__o = __builtin_neon_vld2v2sf (__a);
6805 + __rv.__o = __builtin_neon_vld2v2sf ((const __builtin_neon_sf *) __a);
6806 return __rv.__i;
6807 }
6808
6809 @@ -8600,7 +8604,7 @@
6810 vld2q_f32 (const float32_t * __a)
6811 {
6812 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
6813 - __rv.__o = __builtin_neon_vld2v4sf (__a);
6814 + __rv.__o = __builtin_neon_vld2v4sf ((const __builtin_neon_sf *) __a);
6815 return __rv.__i;
6816 }
6817
6818 @@ -8676,7 +8680,7 @@
6819 {
6820 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6821 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
6822 - __rv.__o = __builtin_neon_vld2_lanev2sf (__a, __bu.__o, __c);
6823 + __rv.__o = __builtin_neon_vld2_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
6824 return __rv.__i;
6825 }
6826
6827 @@ -8748,7 +8752,7 @@
6828 {
6829 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
6830 union { float32x4x2_t __i; __builtin_neon_oi __o; } __rv;
6831 - __rv.__o = __builtin_neon_vld2_lanev4sf (__a, __bu.__o, __c);
6832 + __rv.__o = __builtin_neon_vld2_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
6833 return __rv.__i;
6834 }
6835
6836 @@ -8807,7 +8811,7 @@
6837 vld2_dup_f32 (const float32_t * __a)
6838 {
6839 union { float32x2x2_t __i; __builtin_neon_ti __o; } __rv;
6840 - __rv.__o = __builtin_neon_vld2_dupv2sf (__a);
6841 + __rv.__o = __builtin_neon_vld2_dupv2sf ((const __builtin_neon_sf *) __a);
6842 return __rv.__i;
6843 }
6844
6845 @@ -8892,7 +8896,7 @@
6846 vst2_f32 (float32_t * __a, float32x2x2_t __b)
6847 {
6848 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6849 - __builtin_neon_vst2v2sf (__a, __bu.__o);
6850 + __builtin_neon_vst2v2sf ((__builtin_neon_sf *) __a, __bu.__o);
6851 }
6852
6853 __extension__ static __inline void __attribute__ ((__always_inline__))
6854 @@ -8969,7 +8973,7 @@
6855 vst2q_f32 (float32_t * __a, float32x4x2_t __b)
6856 {
6857 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
6858 - __builtin_neon_vst2v4sf (__a, __bu.__o);
6859 + __builtin_neon_vst2v4sf ((__builtin_neon_sf *) __a, __bu.__o);
6860 }
6861
6862 __extension__ static __inline void __attribute__ ((__always_inline__))
6863 @@ -9032,7 +9036,7 @@
6864 vst2_lane_f32 (float32_t * __a, float32x2x2_t __b, const int __c)
6865 {
6866 union { float32x2x2_t __i; __builtin_neon_ti __o; } __bu = { __b };
6867 - __builtin_neon_vst2_lanev2sf (__a, __bu.__o, __c);
6868 + __builtin_neon_vst2_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
6869 }
6870
6871 __extension__ static __inline void __attribute__ ((__always_inline__))
6872 @@ -9088,7 +9092,7 @@
6873 vst2q_lane_f32 (float32_t * __a, float32x4x2_t __b, const int __c)
6874 {
6875 union { float32x4x2_t __i; __builtin_neon_oi __o; } __bu = { __b };
6876 - __builtin_neon_vst2_lanev4sf (__a, __bu.__o, __c);
6877 + __builtin_neon_vst2_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
6878 }
6879
6880 __extension__ static __inline void __attribute__ ((__always_inline__))
6881 @@ -9140,7 +9144,7 @@
6882 vld3_f32 (const float32_t * __a)
6883 {
6884 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
6885 - __rv.__o = __builtin_neon_vld3v2sf (__a);
6886 + __rv.__o = __builtin_neon_vld3v2sf ((const __builtin_neon_sf *) __a);
6887 return __rv.__i;
6888 }
6889
6890 @@ -9228,7 +9232,7 @@
6891 vld3q_f32 (const float32_t * __a)
6892 {
6893 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
6894 - __rv.__o = __builtin_neon_vld3v4sf (__a);
6895 + __rv.__o = __builtin_neon_vld3v4sf ((const __builtin_neon_sf *) __a);
6896 return __rv.__i;
6897 }
6898
6899 @@ -9304,7 +9308,7 @@
6900 {
6901 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6902 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
6903 - __rv.__o = __builtin_neon_vld3_lanev2sf (__a, __bu.__o, __c);
6904 + __rv.__o = __builtin_neon_vld3_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
6905 return __rv.__i;
6906 }
6907
6908 @@ -9376,7 +9380,7 @@
6909 {
6910 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
6911 union { float32x4x3_t __i; __builtin_neon_ci __o; } __rv;
6912 - __rv.__o = __builtin_neon_vld3_lanev4sf (__a, __bu.__o, __c);
6913 + __rv.__o = __builtin_neon_vld3_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
6914 return __rv.__i;
6915 }
6916
6917 @@ -9435,7 +9439,7 @@
6918 vld3_dup_f32 (const float32_t * __a)
6919 {
6920 union { float32x2x3_t __i; __builtin_neon_ei __o; } __rv;
6921 - __rv.__o = __builtin_neon_vld3_dupv2sf (__a);
6922 + __rv.__o = __builtin_neon_vld3_dupv2sf ((const __builtin_neon_sf *) __a);
6923 return __rv.__i;
6924 }
6925
6926 @@ -9520,7 +9524,7 @@
6927 vst3_f32 (float32_t * __a, float32x2x3_t __b)
6928 {
6929 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6930 - __builtin_neon_vst3v2sf (__a, __bu.__o);
6931 + __builtin_neon_vst3v2sf ((__builtin_neon_sf *) __a, __bu.__o);
6932 }
6933
6934 __extension__ static __inline void __attribute__ ((__always_inline__))
6935 @@ -9597,7 +9601,7 @@
6936 vst3q_f32 (float32_t * __a, float32x4x3_t __b)
6937 {
6938 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
6939 - __builtin_neon_vst3v4sf (__a, __bu.__o);
6940 + __builtin_neon_vst3v4sf ((__builtin_neon_sf *) __a, __bu.__o);
6941 }
6942
6943 __extension__ static __inline void __attribute__ ((__always_inline__))
6944 @@ -9660,7 +9664,7 @@
6945 vst3_lane_f32 (float32_t * __a, float32x2x3_t __b, const int __c)
6946 {
6947 union { float32x2x3_t __i; __builtin_neon_ei __o; } __bu = { __b };
6948 - __builtin_neon_vst3_lanev2sf (__a, __bu.__o, __c);
6949 + __builtin_neon_vst3_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
6950 }
6951
6952 __extension__ static __inline void __attribute__ ((__always_inline__))
6953 @@ -9716,7 +9720,7 @@
6954 vst3q_lane_f32 (float32_t * __a, float32x4x3_t __b, const int __c)
6955 {
6956 union { float32x4x3_t __i; __builtin_neon_ci __o; } __bu = { __b };
6957 - __builtin_neon_vst3_lanev4sf (__a, __bu.__o, __c);
6958 + __builtin_neon_vst3_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
6959 }
6960
6961 __extension__ static __inline void __attribute__ ((__always_inline__))
6962 @@ -9768,7 +9772,7 @@
6963 vld4_f32 (const float32_t * __a)
6964 {
6965 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
6966 - __rv.__o = __builtin_neon_vld4v2sf (__a);
6967 + __rv.__o = __builtin_neon_vld4v2sf ((const __builtin_neon_sf *) __a);
6968 return __rv.__i;
6969 }
6970
6971 @@ -9856,7 +9860,7 @@
6972 vld4q_f32 (const float32_t * __a)
6973 {
6974 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
6975 - __rv.__o = __builtin_neon_vld4v4sf (__a);
6976 + __rv.__o = __builtin_neon_vld4v4sf ((const __builtin_neon_sf *) __a);
6977 return __rv.__i;
6978 }
6979
6980 @@ -9932,7 +9936,7 @@
6981 {
6982 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
6983 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
6984 - __rv.__o = __builtin_neon_vld4_lanev2sf (__a, __bu.__o, __c);
6985 + __rv.__o = __builtin_neon_vld4_lanev2sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
6986 return __rv.__i;
6987 }
6988
6989 @@ -10004,7 +10008,7 @@
6990 {
6991 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
6992 union { float32x4x4_t __i; __builtin_neon_xi __o; } __rv;
6993 - __rv.__o = __builtin_neon_vld4_lanev4sf (__a, __bu.__o, __c);
6994 + __rv.__o = __builtin_neon_vld4_lanev4sf ((const __builtin_neon_sf *) __a, __bu.__o, __c);
6995 return __rv.__i;
6996 }
6997
6998 @@ -10063,7 +10067,7 @@
6999 vld4_dup_f32 (const float32_t * __a)
7000 {
7001 union { float32x2x4_t __i; __builtin_neon_oi __o; } __rv;
7002 - __rv.__o = __builtin_neon_vld4_dupv2sf (__a);
7003 + __rv.__o = __builtin_neon_vld4_dupv2sf ((const __builtin_neon_sf *) __a);
7004 return __rv.__i;
7005 }
7006
7007 @@ -10148,7 +10152,7 @@
7008 vst4_f32 (float32_t * __a, float32x2x4_t __b)
7009 {
7010 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7011 - __builtin_neon_vst4v2sf (__a, __bu.__o);
7012 + __builtin_neon_vst4v2sf ((__builtin_neon_sf *) __a, __bu.__o);
7013 }
7014
7015 __extension__ static __inline void __attribute__ ((__always_inline__))
7016 @@ -10225,7 +10229,7 @@
7017 vst4q_f32 (float32_t * __a, float32x4x4_t __b)
7018 {
7019 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
7020 - __builtin_neon_vst4v4sf (__a, __bu.__o);
7021 + __builtin_neon_vst4v4sf ((__builtin_neon_sf *) __a, __bu.__o);
7022 }
7023
7024 __extension__ static __inline void __attribute__ ((__always_inline__))
7025 @@ -10288,7 +10292,7 @@
7026 vst4_lane_f32 (float32_t * __a, float32x2x4_t __b, const int __c)
7027 {
7028 union { float32x2x4_t __i; __builtin_neon_oi __o; } __bu = { __b };
7029 - __builtin_neon_vst4_lanev2sf (__a, __bu.__o, __c);
7030 + __builtin_neon_vst4_lanev2sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
7031 }
7032
7033 __extension__ static __inline void __attribute__ ((__always_inline__))
7034 @@ -10344,7 +10348,7 @@
7035 vst4q_lane_f32 (float32_t * __a, float32x4x4_t __b, const int __c)
7036 {
7037 union { float32x4x4_t __i; __builtin_neon_xi __o; } __bu = { __b };
7038 - __builtin_neon_vst4_lanev4sf (__a, __bu.__o, __c);
7039 + __builtin_neon_vst4_lanev4sf ((__builtin_neon_sf *) __a, __bu.__o, __c);
7040 }
7041
7042 __extension__ static __inline void __attribute__ ((__always_inline__))
7043 diff -Nur a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt
7044 --- a/gcc/config/arm/arm.opt 2009-02-20 16:20:38.000000000 +0100
7045 +++ b/gcc/config/arm/arm.opt 2010-01-25 09:50:28.985687200 +0100
7046 @@ -78,6 +78,10 @@
7047 mfp=
7048 Target RejectNegative Joined Undocumented Var(target_fpe_name)
7049
7050 +mfp16-format=
7051 +Target RejectNegative Joined Var(target_fp16_format_name)
7052 +Specify the __fp16 floating-point format
7053 +
7054 ;; Now ignored.
7055 mfpe
7056 Target RejectNegative Mask(FPE) Undocumented
7057 @@ -93,6 +97,10 @@
7058 Target RejectNegative
7059 Alias for -mfloat-abi=hard
7060
7061 +mfix-janus-2cc
7062 +Target Report Mask(FIX_JANUS)
7063 +Work around hardware errata for Avalent Janus 2CC cores.
7064 +
7065 mlittle-endian
7066 Target Report RejectNegative InverseMask(BIG_END)
7067 Assume target CPU is configured as little endian
7068 @@ -101,6 +109,10 @@
7069 Target Report Mask(LONG_CALLS)
7070 Generate call insns as indirect calls, if necessary
7071
7072 +mmarvell-div
7073 +Target Report Mask(MARVELL_DIV)
7074 +Generate hardware integer division instructions supported by some Marvell cores.
7075 +
7076 mpic-register=
7077 Target RejectNegative Joined Var(arm_pic_register_string)
7078 Specify the register to be used for PIC addressing
7079 @@ -157,6 +169,10 @@
7080 Target Report Mask(NEON_VECTORIZE_QUAD)
7081 Use Neon quad-word (rather than double-word) registers for vectorization
7082
7083 +mlow-irq-latency
7084 +Target Report Var(low_irq_latency)
7085 +Try to reduce interrupt latency of the generated code
7086 +
7087 mword-relocations
7088 Target Report Var(target_word_relocations) Init(TARGET_DEFAULT_WORD_RELOCATIONS)
7089 Only generate absolute relocations on word sized values.
7090 diff -Nur a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h
7091 --- a/gcc/config/arm/arm-protos.h 2009-02-20 16:20:38.000000000 +0100
7092 +++ b/gcc/config/arm/arm-protos.h 2010-01-25 09:50:28.985687200 +0100
7093 @@ -88,7 +88,7 @@
7094
7095 extern int cirrus_memory_offset (rtx);
7096 extern int arm_coproc_mem_operand (rtx, bool);
7097 -extern int neon_vector_mem_operand (rtx, bool);
7098 +extern int neon_vector_mem_operand (rtx, int);
7099 extern int neon_struct_mem_operand (rtx);
7100 extern int arm_no_early_store_addr_dep (rtx, rtx);
7101 extern int arm_no_early_alu_shift_dep (rtx, rtx);
7102 @@ -144,6 +144,7 @@
7103 extern int arm_debugger_arg_offset (int, rtx);
7104 extern bool arm_is_long_call_p (tree);
7105 extern int arm_emit_vector_const (FILE *, rtx);
7106 +extern void arm_emit_fp16_const (rtx c);
7107 extern const char * arm_output_load_gr (rtx *);
7108 extern const char *vfp_output_fstmd (rtx *);
7109 extern void arm_set_return_address (rtx, rtx);
7110 @@ -154,13 +155,15 @@
7111
7112 #if defined TREE_CODE
7113 extern rtx arm_function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
7114 +extern void arm_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode,
7115 + tree, bool);
7116 extern void arm_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree);
7117 extern bool arm_pad_arg_upward (enum machine_mode, const_tree);
7118 extern bool arm_pad_reg_upward (enum machine_mode, tree, int);
7119 extern bool arm_needs_doubleword_align (enum machine_mode, tree);
7120 -extern rtx arm_function_value(const_tree, const_tree);
7121 #endif
7122 extern int arm_apply_result_size (void);
7123 +extern rtx aapcs_libcall_value (enum machine_mode);
7124
7125 #endif /* RTX_CODE */
7126
7127 diff -Nur a/gcc/config/arm/arm-tune.md b/gcc/config/arm/arm-tune.md
7128 --- a/gcc/config/arm/arm-tune.md 2009-07-22 09:43:59.000000000 +0200
7129 +++ b/gcc/config/arm/arm-tune.md 2010-01-25 09:50:28.985687200 +0100
7130 @@ -1,5 +1,5 @@
7131 ;; -*- buffer-read-only: t -*-
7132 ;; Generated automatically by gentune.sh from arm-cores.def
7133 (define_attr "tune"
7134 - "arm2,arm250,arm3,arm6,arm60,arm600,arm610,arm620,arm7,arm7d,arm7di,arm70,arm700,arm700i,arm710,arm720,arm710c,arm7100,arm7500,arm7500fe,arm7m,arm7dm,arm7dmi,arm8,arm810,strongarm,strongarm110,strongarm1100,strongarm1110,arm7tdmi,arm7tdmis,arm710t,arm720t,arm740t,arm9,arm9tdmi,arm920,arm920t,arm922t,arm940t,ep9312,arm10tdmi,arm1020t,arm9e,arm946es,arm966es,arm968es,arm10e,arm1020e,arm1022e,xscale,iwmmxt,iwmmxt2,arm926ejs,arm1026ejs,arm1136js,arm1136jfs,arm1176jzs,arm1176jzfs,mpcorenovfp,mpcore,arm1156t2s,cortexa8,cortexa9,cortexr4,cortexr4f,cortexm3,cortexm1"
7135 + "arm2,arm250,arm3,arm6,arm60,arm600,arm610,arm620,arm7,arm7d,arm7di,arm70,arm700,arm700i,arm710,arm720,arm710c,arm7100,arm7500,arm7500fe,arm7m,arm7dm,arm7dmi,arm8,arm810,strongarm,strongarm110,strongarm1100,strongarm1110,arm7tdmi,arm7tdmis,arm710t,arm720t,arm740t,arm9,arm9tdmi,arm920,arm920t,arm922t,arm940t,ep9312,arm10tdmi,arm1020t,arm9e,arm946es,arm966es,arm968es,arm10e,arm1020e,arm1022e,xscale,iwmmxt,iwmmxt2,marvell_f,arm926ejs,arm1026ejs,arm1136js,arm1136jfs,arm1176jzs,arm1176jzfs,mpcorenovfp,mpcore,arm1156t2s,cortexa5,cortexa8,cortexa9,cortexr4,cortexr4f,cortexm3,cortexm1,cortexm0"
7136 (const (symbol_ref "arm_tune")))
7137 diff -Nur a/gcc/config/arm/bpabi.h b/gcc/config/arm/bpabi.h
7138 --- a/gcc/config/arm/bpabi.h 2009-02-20 16:20:38.000000000 +0100
7139 +++ b/gcc/config/arm/bpabi.h 2010-01-25 09:50:28.985687200 +0100
7140 @@ -30,7 +30,7 @@
7141
7142 /* Section 4.1 of the AAPCS requires the use of VFP format. */
7143 #undef FPUTYPE_DEFAULT
7144 -#define FPUTYPE_DEFAULT FPUTYPE_VFP
7145 +#define FPUTYPE_DEFAULT "vfp"
7146
7147 /* TARGET_BIG_ENDIAN_DEFAULT is set in
7148 config.gcc for big endian configurations. */
7149 @@ -53,6 +53,8 @@
7150
7151 #define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4:--fix-v4bx}"
7152
7153 +#define BE8_LINK_SPEC " %{mbig-endian:%{march=armv7-a|mcpu=cortex-a5|mcpu=cortex-a8|mcpu=cortex-a9:%{!r:--be8}}}"
7154 +
7155 /* Tell the assembler to build BPABI binaries. */
7156 #undef SUBTARGET_EXTRA_ASM_SPEC
7157 #define SUBTARGET_EXTRA_ASM_SPEC "%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu;:-meabi=5}" TARGET_FIX_V4BX_SPEC
7158 @@ -65,7 +67,7 @@
7159 #define BPABI_LINK_SPEC \
7160 "%{mbig-endian:-EB} %{mlittle-endian:-EL} " \
7161 "%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic} " \
7162 - "-X" SUBTARGET_EXTRA_LINK_SPEC TARGET_FIX_V4BX_SPEC
7163 + "-X" SUBTARGET_EXTRA_LINK_SPEC TARGET_FIX_V4BX_SPEC BE8_LINK_SPEC
7164
7165 #undef LINK_SPEC
7166 #define LINK_SPEC BPABI_LINK_SPEC
7167 @@ -90,16 +92,22 @@
7168 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (muldi3, lmul)
7169 #endif
7170 #ifdef L_fixdfdi
7171 -#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, d2lz)
7172 +#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixdfdi, d2lz) \
7173 + extern DWtype __fixdfdi (DFtype) __attribute__((pcs("aapcs"))); \
7174 + extern UDWtype __fixunsdfdi (DFtype) __asm__("__aeabi_d2ulz") __attribute__((pcs("aapcs")));
7175 #endif
7176 #ifdef L_fixunsdfdi
7177 -#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, d2ulz)
7178 +#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunsdfdi, d2ulz) \
7179 + extern UDWtype __fixunsdfdi (DFtype) __attribute__((pcs("aapcs")));
7180 #endif
7181 #ifdef L_fixsfdi
7182 -#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, f2lz)
7183 +#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixsfdi, f2lz) \
7184 + extern DWtype __fixsfdi (SFtype) __attribute__((pcs("aapcs"))); \
7185 + extern UDWtype __fixunssfdi (SFtype) __asm__("__aeabi_f2ulz") __attribute__((pcs("aapcs")));
7186 #endif
7187 #ifdef L_fixunssfdi
7188 -#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, f2ulz)
7189 +#define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (fixunssfdi, f2ulz) \
7190 + extern UDWtype __fixunssfdi (SFtype) __attribute__((pcs("aapcs")));
7191 #endif
7192 #ifdef L_floatdidf
7193 #define DECLARE_LIBRARY_RENAMES RENAME_LIBRARY (floatdidf, l2d)
7194 diff -Nur a/gcc/config/arm/bpabi.S b/gcc/config/arm/bpabi.S
7195 --- a/gcc/config/arm/bpabi.S 2009-04-10 01:23:07.000000000 +0200
7196 +++ b/gcc/config/arm/bpabi.S 2010-01-25 09:50:28.985687200 +0100
7197 @@ -64,20 +64,69 @@
7198
7199 #endif /* L_aeabi_ulcmp */
7200
7201 +.macro test_div_by_zero signed
7202 +/* Tail-call to divide-by-zero handlers which may be overridden by the user,
7203 + so unwinding works properly. */
7204 +#if defined(__thumb2__)
7205 + cbnz yyh, 1f
7206 + cbnz yyl, 1f
7207 + cmp xxh, #0
7208 + do_it eq
7209 + cmpeq xxl, #0
7210 + .ifc \signed, unsigned
7211 + beq 2f
7212 + mov xxh, #0xffffffff
7213 + mov xxl, xxh
7214 +2:
7215 + .else
7216 + do_it lt, t
7217 + movlt xxl, #0
7218 + movlt xxh, #0x80000000
7219 + do_it gt, t
7220 + movgt xxh, #0x7fffffff
7221 + movgt xxl, #0xffffffff
7222 + .endif
7223 + b SYM (__aeabi_ldiv0) __PLT__
7224 +1:
7225 +#else
7226 + /* Note: Thumb-1 code calls via an ARM shim on processors which
7227 + support ARM mode. */
7228 + cmp yyh, #0
7229 + cmpeq yyl, #0
7230 + bne 2f
7231 + cmp xxh, #0
7232 + cmpeq xxl, #0
7233 + .ifc \signed, unsigned
7234 + movne xxh, #0xffffffff
7235 + movne xxl, #0xffffffff
7236 + .else
7237 + movlt xxh, #0x80000000
7238 + movlt xxl, #0
7239 + movgt xxh, #0x7fffffff
7240 + movgt xxl, #0xffffffff
7241 + .endif
7242 + b SYM (__aeabi_ldiv0) __PLT__
7243 +2:
7244 +#endif
7245 +.endm
7246 +
7247 #ifdef L_aeabi_ldivmod
7248
7249 ARM_FUNC_START aeabi_ldivmod
7250 + test_div_by_zero signed
7251 +
7252 sub sp, sp, #8
7253 -#if defined(__thumb2__)
7254 +/* Low latency and Thumb-2 do_push implementations can't push sp directly. */
7255 +#if defined(__thumb2__) || defined(__irq_low_latency__)
7256 mov ip, sp
7257 - push {ip, lr}
7258 + do_push (ip, lr)
7259 #else
7260 - do_push {sp, lr}
7261 + stmfd sp!, {sp, lr}
7262 #endif
7263 bl SYM(__gnu_ldivmod_helper) __PLT__
7264 ldr lr, [sp, #4]
7265 add sp, sp, #8
7266 - do_pop {r2, r3}
7267 + do_pop (r2, r3)
7268 RET
7269
7270 #endif /* L_aeabi_ldivmod */
7271 @@ -85,17 +134,20 @@
7272 #ifdef L_aeabi_uldivmod
7273
7274 ARM_FUNC_START aeabi_uldivmod
7275 + test_div_by_zero unsigned
7276 +
7277 sub sp, sp, #8
7278 -#if defined(__thumb2__)
7279 +/* Low latency and Thumb-2 do_push implementations can't push sp directly. */
7280 +#if defined(__thumb2__) || defined(__irq_low_latency__)
7281 mov ip, sp
7282 - push {ip, lr}
7283 + do_push (ip, lr)
7284 #else
7285 - do_push {sp, lr}
7286 + stmfd sp!, {sp, lr}
7287 #endif
7288 bl SYM(__gnu_uldivmod_helper) __PLT__
7289 ldr lr, [sp, #4]
7290 add sp, sp, #8
7291 - do_pop {r2, r3}
7292 + do_pop (r2, r3)
7293 RET
7294
7295 #endif /* L_aeabi_divmod */
7296 diff -Nur a/gcc/config/arm/bpabi-v6m.S b/gcc/config/arm/bpabi-v6m.S
7297 --- a/gcc/config/arm/bpabi-v6m.S 2009-04-10 01:23:07.000000000 +0200
7298 +++ b/gcc/config/arm/bpabi-v6m.S 2010-01-25 09:50:28.985687200 +0100
7299 @@ -69,9 +69,52 @@
7300
7301 #endif /* L_aeabi_ulcmp */
7302
7303 +.macro test_div_by_zero signed
7304 + cmp yyh, #0
7305 + bne 7f
7306 + cmp yyl, #0
7307 + bne 7f
7308 + cmp xxh, #0
7309 + bne 2f
7310 + cmp xxl, #0
7311 +2:
7312 + .ifc \signed, unsigned
7313 + beq 3f
7314 + mov xxh, #0
7315 + mvn xxh, xxh @ 0xffffffff
7316 + mov xxl, xxh
7317 +3:
7318 + .else
7319 + beq 5f
7320 + blt 6f
7321 + mov xxl, #0
7322 + mvn xxl, xxl @ 0xffffffff
7323 + lsr xxh, xxl, #1 @ 0x7fffffff
7324 + b 5f
7325 +6: mov xxh, #0x80
7326 + lsl xxh, xxh, #24 @ 0x80000000
7327 + mov xxl, #0
7328 +5:
7329 + .endif
7330 + @ tailcalls are tricky on v6-m.
7331 + push {r0, r1, r2}
7332 + ldr r0, 1f
7333 + adr r1, 1f
7334 + add r0, r1
7335 + str r0, [sp, #8]
7336 + @ We know we are not on armv4t, so pop pc is safe.
7337 + pop {r0, r1, pc}
7338 + .align 2
7339 +1:
7340 + .word __aeabi_ldiv0 - 1b
7341 +7:
7342 +.endm
7343 +
7344 #ifdef L_aeabi_ldivmod
7345
7346 FUNC_START aeabi_ldivmod
7347 + test_div_by_zero signed
7348 +
7349 push {r0, r1}
7350 mov r0, sp
7351 push {r0, lr}
7352 @@ -89,6 +132,8 @@
7353 #ifdef L_aeabi_uldivmod
7354
7355 FUNC_START aeabi_uldivmod
7356 + test_div_by_zero unsigned
7357 +
7358 push {r0, r1}
7359 mov r0, sp
7360 push {r0, lr}
7361 diff -Nur a/gcc/config/arm/constraints.md b/gcc/config/arm/constraints.md
7362 --- a/gcc/config/arm/constraints.md 2009-02-20 16:20:38.000000000 +0100
7363 +++ b/gcc/config/arm/constraints.md 2010-01-25 09:50:28.985687200 +0100
7364 @@ -25,14 +25,15 @@
7365 ;; In ARM state, 'l' is an alias for 'r'
7366
7367 ;; The following normal constraints have been used:
7368 -;; in ARM/Thumb-2 state: G, H, I, J, K, L, M
7369 +;; in ARM/Thumb-2 state: G, H, I, j, J, K, L, M
7370 ;; in Thumb-1 state: I, J, K, L, M, N, O
7371
7372 ;; The following multi-letter normal constraints have been used:
7373 -;; in ARM/Thumb-2 state: Da, Db, Dc, Dn, Dl, DL, Dv
7374 +;; in ARM/Thumb-2 state: Da, Db, Dc, Dn, Dl, DL, Dv, Dy
7375 +;; in Thumb-1 state: Pa, Pb
7376
7377 ;; The following memory constraints have been used:
7378 -;; in ARM/Thumb-2 state: Q, Ut, Uv, Uy, Un, Us
7379 +;; in ARM/Thumb-2 state: Q, Ut, Uv, Uy, Un, Um, Us
7380 ;; in ARM state: Uq
7381
7382
7383 @@ -65,6 +66,13 @@
7384 (define_register_constraint "h" "TARGET_THUMB ? HI_REGS : NO_REGS"
7385 "In Thumb state the core registers @code{r8}-@code{r15}.")
7386
7387 +(define_constraint "j"
7388 + "A constant suitable for a MOVW instruction. (ARM/Thumb-2)"
7389 + (and (match_test "TARGET_32BIT && arm_arch_thumb2")
7390 + (ior (match_code "high")
7391 + (and (match_code "const_int")
7392 + (match_test "(ival & 0xffff0000) == 0")))))
7393 +
7394 (define_register_constraint "k" "STACK_REG"
7395 "@internal The stack register.")
7396
7397 @@ -116,11 +124,9 @@
7398 : ((ival >= 0 && ival <= 1020) && ((ival & 3) == 0))")))
7399
7400 (define_constraint "N"
7401 - "In ARM/Thumb-2 state a constant suitable for a MOVW instruction.
7402 - In Thumb-1 state a constant in the range 0-31."
7403 + "Thumb-1 state a constant in the range 0-31."
7404 (and (match_code "const_int")
7405 - (match_test "TARGET_32BIT ? arm_arch_thumb2 && ((ival & 0xffff0000) == 0)
7406 - : (ival >= 0 && ival <= 31)")))
7407 + (match_test "!TARGET_32BIT && (ival >= 0 && ival <= 31)")))
7408
7409 (define_constraint "O"
7410 "In Thumb-1 state a constant that is a multiple of 4 in the range
7411 @@ -129,6 +135,18 @@
7412 (match_test "TARGET_THUMB1 && ival >= -508 && ival <= 508
7413 && ((ival & 3) == 0)")))
7414
7415 +(define_constraint "Pa"
7416 + "@internal In Thumb-1 state a constant in the range -510 to +510"
7417 + (and (match_code "const_int")
7418 + (match_test "TARGET_THUMB1 && ival >= -510 && ival <= 510
7419 + && (ival > 255 || ival < -255)")))
7420 +
7421 +(define_constraint "Pb"
7422 + "@internal In Thumb-1 state a constant in the range -262 to +262"
7423 + (and (match_code "const_int")
7424 + (match_test "TARGET_THUMB1 && ival >= -262 && ival <= 262
7425 + && (ival > 255 || ival < -255)")))
7426 +
7427 (define_constraint "G"
7428 "In ARM/Thumb-2 state a valid FPA immediate constant."
7429 (and (match_code "const_double")
7430 @@ -189,10 +207,17 @@
7431 (define_constraint "Dv"
7432 "@internal
7433 In ARM/Thumb-2 state a const_double which can be used with a VFP fconsts
7434 - or fconstd instruction."
7435 + instruction."
7436 (and (match_code "const_double")
7437 (match_test "TARGET_32BIT && vfp3_const_double_rtx (op)")))
7438
7439 +(define_constraint "Dy"
7440 + "@internal
7441 + In ARM/Thumb-2 state a const_double which can be used with a VFP fconstd
7442 + instruction."
7443 + (and (match_code "const_double")
7444 + (match_test "TARGET_32BIT && TARGET_VFP_DOUBLE && vfp3_const_double_rtx (op)")))
7445 +
7446 (define_memory_constraint "Ut"
7447 "@internal
7448 In ARM/Thumb-2 state an address valid for loading/storing opaque structure
7449 @@ -214,17 +239,24 @@
7450
7451 (define_memory_constraint "Un"
7452 "@internal
7453 + In ARM/Thumb-2 state a valid address for Neon doubleword vector
7454 + load/store instructions."
7455 + (and (match_code "mem")
7456 + (match_test "TARGET_32BIT && neon_vector_mem_operand (op, 0)")))
7457 +
7458 +(define_memory_constraint "Um"
7459 + "@internal
7460 In ARM/Thumb-2 state a valid address for Neon element and structure
7461 load/store instructions."
7462 (and (match_code "mem")
7463 - (match_test "TARGET_32BIT && neon_vector_mem_operand (op, FALSE)")))
7464 + (match_test "TARGET_32BIT && neon_vector_mem_operand (op, 2)")))
7465
7466 (define_memory_constraint "Us"
7467 "@internal
7468 In ARM/Thumb-2 state a valid address for non-offset loads/stores of
7469 quad-word values in four ARM registers."
7470 (and (match_code "mem")
7471 - (match_test "TARGET_32BIT && neon_vector_mem_operand (op, TRUE)")))
7472 + (match_test "TARGET_32BIT && neon_vector_mem_operand (op, 1)")))
7473
7474 (define_memory_constraint "Uq"
7475 "@internal
7476 diff -Nur a/gcc/config/arm/fp16.c b/gcc/config/arm/fp16.c
7477 --- a/gcc/config/arm/fp16.c 1970-01-01 01:00:00.000000000 +0100
7478 +++ b/gcc/config/arm/fp16.c 2010-01-25 09:50:28.985687200 +0100
7479 @@ -0,0 +1,145 @@
7480 +/* Half-float conversion routines.
7481 +
7482 + Copyright (C) 2008, 2009 Free Software Foundation, Inc.
7483 + Contributed by CodeSourcery.
7484 +
7485 + This file is free software; you can redistribute it and/or modify it
7486 + under the terms of the GNU General Public License as published by the
7487 + Free Software Foundation; either version 3, or (at your option) any
7488 + later version.
7489 +
7490 + This file is distributed in the hope that it will be useful, but
7491 + WITHOUT ANY WARRANTY; without even the implied warranty of
7492 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
7493 + General Public License for more details.
7494 +
7495 + Under Section 7 of GPL version 3, you are granted additional
7496 + permissions described in the GCC Runtime Library Exception, version
7497 + 3.1, as published by the Free Software Foundation.
7498 +
7499 + You should have received a copy of the GNU General Public License and
7500 + a copy of the GCC Runtime Library Exception along with this program;
7501 + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
7502 + <http://www.gnu.org/licenses/>. */
7503 +
7504 +static inline unsigned short
7505 +__gnu_f2h_internal(unsigned int a, int ieee)
7506 +{
7507 + unsigned short sign = (a >> 16) & 0x8000;
7508 + int aexp = (a >> 23) & 0xff;
7509 + unsigned int mantissa = a & 0x007fffff;
7510 + unsigned int mask;
7511 + unsigned int increment;
7512 +
7513 + if (aexp == 0xff)
7514 + {
7515 + if (!ieee)
7516 + return sign;
7517 + return sign | 0x7e00 | (mantissa >> 13);
7518 + }
7519 +
7520 + if (aexp == 0 && mantissa == 0)
7521 + return sign;
7522 +
7523 + aexp -= 127;
7524 +
7525 + /* Decimal point between bits 22 and 23. */
7526 + mantissa |= 0x00800000;
7527 + if (aexp < -14)
7528 + {
7529 + mask = 0x007fffff;
7530 + if (aexp < -25)
7531 + aexp = -26;
7532 + else if (aexp != -25)
7533 + mask >>= 24 + aexp;
7534 + }
7535 + else
7536 + mask = 0x00001fff;
7537 +
7538 + /* Round. */
7539 + if (mantissa & mask)
7540 + {
7541 + increment = (mask + 1) >> 1;
7542 + if ((mantissa & mask) == increment)
7543 + increment = mantissa & (increment << 1);
7544 + mantissa += increment;
7545 + if (mantissa >= 0x01000000)
7546 + {
7547 + mantissa >>= 1;
7548 + aexp++;
7549 + }
7550 + }
7551 +
7552 + if (ieee)
7553 + {
7554 + if (aexp > 15)
7555 + return sign | 0x7c00;
7556 + }
7557 + else
7558 + {
7559 + if (aexp > 16)
7560 + return sign | 0x7fff;
7561 + }
7562 +
7563 + if (aexp < -24)
7564 + return sign;
7565 +
7566 + if (aexp < -14)
7567 + {
7568 + mantissa >>= -14 - aexp;
7569 + aexp = -14;
7570 + }
7571 +
7572 + /* We leave the leading 1 in the mantissa, and subtract one
7573 + from the exponent bias to compensate. */
7574 + return sign | (((aexp + 14) << 10) + (mantissa >> 13));
7575 +}
7576 +
7577 +unsigned int
7578 +__gnu_h2f_internal(unsigned short a, int ieee)
7579 +{
7580 + unsigned int sign = (unsigned int)(a & 0x8000) << 16;
7581 + int aexp = (a >> 10) & 0x1f;
7582 + unsigned int mantissa = a & 0x3ff;
7583 +
7584 + if (aexp == 0x1f && ieee)
7585 + return sign | 0x7f800000 | (mantissa << 13);
7586 +
7587 + if (aexp == 0)
7588 + {
7589 + int shift;
7590 +
7591 + if (mantissa == 0)
7592 + return sign;
7593 +
7594 + shift = __builtin_clz(mantissa) - 21;
7595 + mantissa <<= shift;
7596 + aexp = -shift;
7597 + }
7598 +
7599 + return sign | (((aexp + 0x70) << 23) + (mantissa << 13));
7600 +}
7601 +
7602 +unsigned short
7603 +__gnu_f2h_ieee(unsigned int a)
7604 +{
7605 + return __gnu_f2h_internal(a, 1);
7606 +}
7607 +
7608 +unsigned int
7609 +__gnu_h2f_ieee(unsigned short a)
7610 +{
7611 + return __gnu_h2f_internal(a, 1);
7612 +}
7613 +
7614 +unsigned short
7615 +__gnu_f2h_alternative(unsigned int x)
7616 +{
7617 + return __gnu_f2h_internal(x, 0);
7618 +}
7619 +
7620 +unsigned int
7621 +__gnu_h2f_alternative(unsigned short a)
7622 +{
7623 + return __gnu_h2f_internal(a, 0);
7624 +}
7625 diff -Nur a/gcc/config/arm/fpa.md b/gcc/config/arm/fpa.md
7626 --- a/gcc/config/arm/fpa.md 2007-08-02 12:49:31.000000000 +0200
7627 +++ b/gcc/config/arm/fpa.md 2010-01-25 09:50:28.985687200 +0100
7628 @@ -599,10 +599,10 @@
7629 {
7630 default:
7631 case 0: return \"mvf%?e\\t%0, %1\";
7632 - case 1: if (arm_fpu_arch == FPUTYPE_FPA_EMU2)
7633 + case 1: if (TARGET_FPA_EMU2)
7634 return \"ldf%?e\\t%0, %1\";
7635 return \"lfm%?\\t%0, 1, %1\";
7636 - case 2: if (arm_fpu_arch == FPUTYPE_FPA_EMU2)
7637 + case 2: if (TARGET_FPA_EMU2)
7638 return \"stf%?e\\t%1, %0\";
7639 return \"sfm%?\\t%1, 1, %0\";
7640 }
7641 diff -Nur a/gcc/config/arm/hwdiv.md b/gcc/config/arm/hwdiv.md
7642 --- a/gcc/config/arm/hwdiv.md 1970-01-01 01:00:00.000000000 +0100
7643 +++ b/gcc/config/arm/hwdiv.md 2010-01-25 09:50:28.985687200 +0100
7644 @@ -0,0 +1,41 @@
7645 +;; ARM instruction patterns for hardware division
7646 +;; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
7647 +;; Written by CodeSourcery, LLC.
7648 +;;
7649 +;; This file is part of GCC.
7650 +;;
7651 +;; GCC is free software; you can redistribute it and/or modify it
7652 +;; under the terms of the GNU General Public License as published by
7653 +;; the Free Software Foundation; either version 2, or (at your option)
7654 +;; any later version.
7655 +;;
7656 +;; GCC is distributed in the hope that it will be useful, but
7657 +;; WITHOUT ANY WARRANTY; without even the implied warranty of
7658 +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
7659 +;; General Public License for more details.
7660 +;;
7661 +;; You should have received a copy of the GNU General Public License
7662 +;; along with GCC; see the file COPYING. If not, write to
7663 +;; the Free Software Foundation, 51 Franklin Street, Fifth Floor,
7664 +;; Boston, MA 02110-1301, USA.
7665 +
7666 +(define_insn "divsi3"
7667 + [(set (match_operand:SI 0 "s_register_operand" "=r")
7668 + (div:SI (match_operand:SI 1 "s_register_operand" "r")
7669 + (match_operand:SI 2 "s_register_operand" "r")))]
7670 + "arm_arch_hwdiv"
7671 + "sdiv%?\t%0, %1, %2"
7672 + [(set_attr "predicable" "yes")
7673 + (set_attr "insn" "sdiv")]
7674 +)
7675 +
7676 +(define_insn "udivsi3"
7677 + [(set (match_operand:SI 0 "s_register_operand" "=r")
7678 + (udiv:SI (match_operand:SI 1 "s_register_operand" "r")
7679 + (match_operand:SI 2 "s_register_operand" "r")))]
7680 + "arm_arch_hwdiv"
7681 + "udiv%?\t%0, %1, %2"
7682 + [(set_attr "predicable" "yes")
7683 + (set_attr "insn" "udiv")]
7684 +)
7685 +
7686 diff -Nur a/gcc/config/arm/ieee754-df.S b/gcc/config/arm/ieee754-df.S
7687 --- a/gcc/config/arm/ieee754-df.S 2009-04-10 01:23:07.000000000 +0200
7688 +++ b/gcc/config/arm/ieee754-df.S 2010-01-25 09:50:28.985687200 +0100
7689 @@ -83,7 +83,7 @@
7690 ARM_FUNC_START adddf3
7691 ARM_FUNC_ALIAS aeabi_dadd adddf3
7692
7693 -1: do_push {r4, r5, lr}
7694 +1: do_push (r4, r5, lr)
7695
7696 @ Look for zeroes, equal values, INF, or NAN.
7697 shift1 lsl, r4, xh, #1
7698 @@ -427,7 +427,7 @@
7699 do_it eq, t
7700 moveq r1, #0
7701 RETc(eq)
7702 - do_push {r4, r5, lr}
7703 + do_push (r4, r5, lr)
7704 mov r4, #0x400 @ initial exponent
7705 add r4, r4, #(52-1 - 1)
7706 mov r5, #0 @ sign bit is 0
7707 @@ -447,7 +447,7 @@
7708 do_it eq, t
7709 moveq r1, #0
7710 RETc(eq)
7711 - do_push {r4, r5, lr}
7712 + do_push (r4, r5, lr)
7713 mov r4, #0x400 @ initial exponent
7714 add r4, r4, #(52-1 - 1)
7715 ands r5, r0, #0x80000000 @ sign bit in r5
7716 @@ -481,7 +481,7 @@
7717 RETc(eq) @ we are done already.
7718
7719 @ value was denormalized. We can normalize it now.
7720 - do_push {r4, r5, lr}
7721 + do_push (r4, r5, lr)
7722 mov r4, #0x380 @ setup corresponding exponent
7723 and r5, xh, #0x80000000 @ move sign bit in r5
7724 bic xh, xh, #0x80000000
7725 @@ -508,9 +508,9 @@
7726 @ compatibility.
7727 adr ip, LSYM(f0_ret)
7728 @ Push pc as well so that RETLDM works correctly.
7729 - do_push {r4, r5, ip, lr, pc}
7730 + do_push (r4, r5, ip, lr, pc)
7731 #else
7732 - do_push {r4, r5, lr}
7733 + do_push (r4, r5, lr)
7734 #endif
7735
7736 mov r5, #0
7737 @@ -534,9 +534,9 @@
7738 @ compatibility.
7739 adr ip, LSYM(f0_ret)
7740 @ Push pc as well so that RETLDM works correctly.
7741 - do_push {r4, r5, ip, lr, pc}
7742 + do_push (r4, r5, ip, lr, pc)
7743 #else
7744 - do_push {r4, r5, lr}
7745 + do_push (r4, r5, lr)
7746 #endif
7747
7748 ands r5, ah, #0x80000000 @ sign bit in r5
7749 @@ -585,7 +585,7 @@
7750 @ Legacy code expects the result to be returned in f0. Copy it
7751 @ there as well.
7752 LSYM(f0_ret):
7753 - do_push {r0, r1}
7754 + do_push (r0, r1)
7755 ldfd f0, [sp], #8
7756 RETLDM
7757
7758 @@ -602,7 +602,7 @@
7759
7760 ARM_FUNC_START muldf3
7761 ARM_FUNC_ALIAS aeabi_dmul muldf3
7762 - do_push {r4, r5, r6, lr}
7763 + do_push (r4, r5, r6, lr)
7764
7765 @ Mask out exponents, trap any zero/denormal/INF/NAN.
7766 mov ip, #0xff
7767 @@ -910,7 +910,7 @@
7768 ARM_FUNC_START divdf3
7769 ARM_FUNC_ALIAS aeabi_ddiv divdf3
7770
7771 - do_push {r4, r5, r6, lr}
7772 + do_push (r4, r5, r6, lr)
7773
7774 @ Mask out exponents, trap any zero/denormal/INF/NAN.
7775 mov ip, #0xff
7776 @@ -1117,7 +1117,7 @@
7777 ARM_FUNC_ALIAS eqdf2 cmpdf2
7778 mov ip, #1 @ how should we specify unordered here?
7779
7780 -1: str ip, [sp, #-4]
7781 +1: str ip, [sp, #-4]!
7782
7783 @ Trap any INF/NAN first.
7784 mov ip, xh, lsl #1
7785 @@ -1129,7 +1129,8 @@
7786
7787 @ Test for equality.
7788 @ Note that 0.0 is equal to -0.0.
7789 -2: orrs ip, xl, xh, lsl #1 @ if x == 0.0 or -0.0
7790 +2: add sp, sp, #4
7791 + orrs ip, xl, xh, lsl #1 @ if x == 0.0 or -0.0
7792 do_it eq, e
7793 COND(orr,s,eq) ip, yl, yh, lsl #1 @ and y == 0.0 or -0.0
7794 teqne xh, yh @ or xh == yh
7795 @@ -1168,7 +1169,7 @@
7796 bne 2b
7797 orrs ip, yl, yh, lsl #12
7798 beq 2b @ y is not NAN
7799 -5: ldr r0, [sp, #-4] @ unordered return code
7800 +5: ldr r0, [sp], #4 @ unordered return code
7801 RET
7802
7803 FUNC_END gedf2
7804 @@ -1194,7 +1195,7 @@
7805
7806 @ The status-returning routines are required to preserve all
7807 @ registers except ip, lr, and cpsr.
7808 -6: do_push {r0, lr}
7809 +6: do_push (r0, lr)
7810 ARM_CALL cmpdf2
7811 @ Set the Z flag correctly, and the C flag unconditionally.
7812 cmp r0, #0
7813 diff -Nur a/gcc/config/arm/ieee754-sf.S b/gcc/config/arm/ieee754-sf.S
7814 --- a/gcc/config/arm/ieee754-sf.S 2009-04-10 01:23:07.000000000 +0200
7815 +++ b/gcc/config/arm/ieee754-sf.S 2010-01-25 09:50:28.985687200 +0100
7816 @@ -481,7 +481,7 @@
7817 and r3, ip, #0x80000000
7818
7819 @ Well, no way to make it shorter without the umull instruction.
7820 - do_push {r3, r4, r5}
7821 + do_push (r3, r4, r5)
7822 mov r4, r0, lsr #16
7823 mov r5, r1, lsr #16
7824 bic r0, r0, r4, lsl #16
7825 @@ -492,7 +492,7 @@
7826 mla r0, r4, r1, r0
7827 adds r3, r3, r0, lsl #16
7828 adc r1, ip, r0, lsr #16
7829 - do_pop {r0, r4, r5}
7830 + do_pop (r0, r4, r5)
7831
7832 #else
7833
7834 @@ -822,7 +822,7 @@
7835 ARM_FUNC_ALIAS eqsf2 cmpsf2
7836 mov ip, #1 @ how should we specify unordered here?
7837
7838 -1: str ip, [sp, #-4]
7839 +1: str ip, [sp, #-4]!
7840
7841 @ Trap any INF/NAN first.
7842 mov r2, r0, lsl #1
7843 @@ -834,7 +834,8 @@
7844
7845 @ Compare values.
7846 @ Note that 0.0 is equal to -0.0.
7847 -2: orrs ip, r2, r3, lsr #1 @ test if both are 0, clear C flag
7848 +2: add sp, sp, #4
7849 + orrs ip, r2, r3, lsr #1 @ test if both are 0, clear C flag
7850 do_it ne
7851 teqne r0, r1 @ if not 0 compare sign
7852 do_it pl
7853 @@ -858,7 +859,7 @@
7854 bne 2b
7855 movs ip, r1, lsl #9
7856 beq 2b @ r1 is not NAN
7857 -5: ldr r0, [sp, #-4] @ return unordered code.
7858 +5: ldr r0, [sp], #4 @ return unordered code.
7859 RET
7860
7861 FUNC_END gesf2
7862 @@ -881,7 +882,7 @@
7863
7864 @ The status-returning routines are required to preserve all
7865 @ registers except ip, lr, and cpsr.
7866 -6: do_push {r0, r1, r2, r3, lr}
7867 +6: do_push (r0, r1, r2, r3, lr)
7868 ARM_CALL cmpsf2
7869 @ Set the Z flag correctly, and the C flag unconditionally.
7870 cmp r0, #0
7871 diff -Nur a/gcc/config/arm/lib1funcs.asm b/gcc/config/arm/lib1funcs.asm
7872 --- a/gcc/config/arm/lib1funcs.asm 2009-04-10 01:23:07.000000000 +0200
7873 +++ b/gcc/config/arm/lib1funcs.asm 2010-01-25 09:50:28.985687200 +0100
7874 @@ -27,8 +27,17 @@
7875 #if defined(__ELF__) && defined(__linux__)
7876 .section .note.GNU-stack,"",%progbits
7877 .previous
7878 -#endif
7879 +#endif /* __ELF__ and __linux__ */
7880
7881 +#ifdef __ARM_EABI__
7882 +/* Some attributes that are common to all routines in this file. */
7883 + /* Tag_ABI_align8_needed: This code does not require 8-byte
7884 + alignment from the caller. */
7885 + /* .eabi_attribute 24, 0 -- default setting. */
7886 + /* Tag_ABI_align8_preserved: This code preserves 8-byte
7887 + alignment in any callee. */
7888 + .eabi_attribute 25, 1
7889 +#endif /* __ARM_EABI__ */
7890 /* ------------------------------------------------------------------------ */
7891
7892 /* We need to know what prefix to add to function names. */
7893 @@ -233,8 +242,8 @@
7894 .macro shift1 op, arg0, arg1, arg2
7895 \op \arg0, \arg1, \arg2
7896 .endm
7897 -#define do_push push
7898 -#define do_pop pop
7899 +#define do_push(...) push {__VA_ARGS__}
7900 +#define do_pop(...) pop {__VA_ARGS__}
7901 #define COND(op1, op2, cond) op1 ## op2 ## cond
7902 /* Perform an arithmetic operation with a variable shift operand. This
7903 requires two instructions and a scratch register on Thumb-2. */
7904 @@ -248,24 +257,133 @@
7905 .macro shift1 op, arg0, arg1, arg2
7906 mov \arg0, \arg1, \op \arg2
7907 .endm
7908 -#define do_push stmfd sp!,
7909 -#define do_pop ldmfd sp!,
7910 +#if defined(__low_irq_latency__)
7911 +#define do_push(...) \
7912 + _buildN1(do_push, _buildC1(__VA_ARGS__))( __VA_ARGS__)
7913 +#define _buildN1(BASE, X) _buildN2(BASE, X)
7914 +#define _buildN2(BASE, X) BASE##X
7915 +#define _buildC1(...) _buildC2(__VA_ARGS__,9,8,7,6,5,4,3,2,1)
7916 +#define _buildC2(a1,a2,a3,a4,a5,a6,a7,a8,a9,c,...) c
7917 +
7918 +#define do_push1(r1) str r1, [sp, #-4]!
7919 +#define do_push2(r1, r2) str r2, [sp, #-4]! ; str r1, [sp, #-4]!
7920 +#define do_push3(r1, r2, r3) str r3, [sp, #-4]! ; str r2, [sp, #-4]!; str r1, [sp, #-4]!
7921 +#define do_push4(r1, r2, r3, r4) \
7922 + do_push3 (r2, r3, r4);\
7923 + do_push1 (r1)
7924 +#define do_push5(r1, r2, r3, r4, r5) \
7925 + do_push4 (r2, r3, r4, r5);\
7926 + do_push1 (r1)
7927 +
7928 +#define do_pop(...) \
7929 +_buildN1(do_pop, _buildC1(__VA_ARGS__))( __VA_ARGS__)
7930 +
7931 +#define do_pop1(r1) ldr r1, [sp], #4
7932 +#define do_pop2(r1, r2) ldr r1, [sp], #4 ; ldr r2, [sp], #4
7933 +#define do_pop3(r1, r2, r3) ldr r1, [sp], #4 ; str r2, [sp], #4; str r3, [sp], #4
7934 +#define do_pop4(r1, r2, r3, r4) \
7935 + do_pop1 (r1);\
7936 + do_pup3 (r2, r3, r4)
7937 +#define do_pop5(r1, r2, r3, r4, r5) \
7938 + do_pop1 (r1);\
7939 + do_pop4 (r2, r3, r4, r5)
7940 +#else
7941 +#define do_push(...) stmfd sp!, { __VA_ARGS__}
7942 +#define do_pop(...) ldmfd sp!, {__VA_ARGS__}
7943 +#endif
7944 +
7945 +
7946 #define COND(op1, op2, cond) op1 ## cond ## op2
7947 .macro shiftop name, dest, src1, src2, shiftop, shiftreg, tmp
7948 \name \dest, \src1, \src2, \shiftop \shiftreg
7949 .endm
7950 #endif
7951
7952 -.macro ARM_LDIV0 name
7953 +#ifdef __ARM_EABI__
7954 +.macro ARM_LDIV0 name signed
7955 + cmp r0, #0
7956 + .ifc \signed, unsigned
7957 + movne r0, #0xffffffff
7958 + .else
7959 + movgt r0, #0x7fffffff
7960 + movlt r0, #0x80000000
7961 + .endif
7962 + b SYM (__aeabi_idiv0) __PLT__
7963 +.endm
7964 +#else
7965 +.macro ARM_LDIV0 name signed
7966 str lr, [sp, #-8]!
7967 98: cfi_push 98b - __\name, 0xe, -0x8, 0x8
7968 bl SYM (__div0) __PLT__
7969 mov r0, #0 @ About as wrong as it could be.
7970 RETLDM unwind=98b
7971 .endm
7972 +#endif
7973
7974
7975 -.macro THUMB_LDIV0 name
7976 +#ifdef __ARM_EABI__
7977 +.macro THUMB_LDIV0 name signed
7978 +#if defined(__ARM_ARCH_6M__)
7979 + .ifc \signed, unsigned
7980 + cmp r0, #0
7981 + beq 1f
7982 + mov r0, #0
7983 + mvn r0, r0 @ 0xffffffff
7984 +1:
7985 + .else
7986 + cmp r0, #0
7987 + beq 2f
7988 + blt 3f
7989 + mov r0, #0
7990 + mvn r0, r0
7991 + lsr r0, r0, #1 @ 0x7fffffff
7992 + b 2f
7993 +3: mov r0, #0x80
7994 + lsl r0, r0, #24 @ 0x80000000
7995 +2:
7996 + .endif
7997 + push {r0, r1, r2}
7998 + ldr r0, 4f
7999 + adr r1, 4f
8000 + add r0, r1
8001 + str r0, [sp, #8]
8002 + @ We know we are not on armv4t, so pop pc is safe.
8003 + pop {r0, r1, pc}
8004 + .align 2
8005 +4:
8006 + .word __aeabi_idiv0 - 4b
8007 +#elif defined(__thumb2__)
8008 + .syntax unified
8009 + .ifc \signed, unsigned
8010 + cbz r0, 1f
8011 + mov r0, #0xffffffff
8012 +1:
8013 + .else
8014 + cmp r0, #0
8015 + do_it gt
8016 + movgt r0, #0x7fffffff
8017 + do_it lt
8018 + movlt r0, #0x80000000
8019 + .endif
8020 + b.w SYM(__aeabi_idiv0) __PLT__
8021 +#else
8022 + .align 2
8023 + bx pc
8024 + nop
8025 + .arm
8026 + cmp r0, #0
8027 + .ifc \signed, unsigned
8028 + movne r0, #0xffffffff
8029 + .else
8030 + movgt r0, #0x7fffffff
8031 + movlt r0, #0x80000000
8032 + .endif
8033 + b SYM(__aeabi_idiv0) __PLT__
8034 + .thumb
8035 +#endif
8036 +.endm
8037 +#else
8038 +.macro THUMB_LDIV0 name signed
8039 push { r1, lr }
8040 98: cfi_push 98b - __\name, 0xe, -0x4, 0x8
8041 bl SYM (__div0)
8042 @@ -277,18 +395,19 @@
8043 pop { r1, pc }
8044 #endif
8045 .endm
8046 +#endif
8047
8048 .macro FUNC_END name
8049 SIZE (__\name)
8050 .endm
8051
8052 -.macro DIV_FUNC_END name
8053 +.macro DIV_FUNC_END name signed
8054 cfi_start __\name, LSYM(Lend_div0)
8055 LSYM(Ldiv0):
8056 #ifdef __thumb__
8057 - THUMB_LDIV0 \name
8058 + THUMB_LDIV0 \name \signed
8059 #else
8060 - ARM_LDIV0 \name
8061 + ARM_LDIV0 \name \signed
8062 #endif
8063 cfi_end LSYM(Lend_div0)
8064 FUNC_END \name
8065 @@ -413,6 +532,12 @@
8066 #define yyl r2
8067 #endif
8068
8069 +#ifdef __ARM_EABI__
8070 +.macro WEAK name
8071 + .weak SYM (__\name)
8072 +.endm
8073 +#endif
8074 +
8075 #ifdef __thumb__
8076 /* Register aliases. */
8077
8078 @@ -437,6 +562,43 @@
8079
8080 #if __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__)
8081
8082 +#if defined (__thumb2__)
8083 + clz \curbit, \dividend
8084 + clz \result, \divisor
8085 + sub \curbit, \result, \curbit
8086 + rsb \curbit, \curbit, #31
8087 + adr \result, 1f
8088 + add \curbit, \result, \curbit, lsl #4
8089 + mov \result, #0
8090 + mov pc, \curbit
8091 +.p2align 3
8092 +1:
8093 + .set shift, 32
8094 + .rept 32
8095 + .set shift, shift - 1
8096 + cmp.w \dividend, \divisor, lsl #shift
8097 + nop.n
8098 + adc.w \result, \result, \result
8099 + it cs
8100 + subcs.w \dividend, \dividend, \divisor, lsl #shift
8101 + .endr
8102 +#elif defined(__ARM_TUNE_MARVELL_F__)
8103 + clz \curbit, \dividend
8104 + clz \result, \divisor
8105 + sub \curbit, \result, \curbit
8106 + mov \divisor, \divisor, lsl \curbit
8107 + rsb \curbit, \curbit, #31
8108 + mov \curbit, \curbit, lsl #2
8109 + mov \result, #0
8110 + add pc, pc, \curbit, lsl #2
8111 + nop
8112 + .rept 32
8113 + cmp \dividend, \divisor
8114 + subcs \dividend, \dividend, \divisor
8115 + mov \divisor, \divisor, lsr #1
8116 + adc \result, \result, \result
8117 + .endr
8118 +#else /* ! defined(__ARM_TUNE_MARVELL_F__) */
8119 clz \curbit, \dividend
8120 clz \result, \divisor
8121 sub \curbit, \result, \curbit
8122 @@ -452,6 +614,7 @@
8123 adc \result, \result, \result
8124 subcs \dividend, \dividend, \divisor, lsl #shift
8125 .endr
8126 +#endif /* defined(__ARM_TUNE_MARVELL_F__) */
8127
8128 #else /* __ARM_ARCH__ < 5 || defined (__OPTIMIZE_SIZE__) */
8129 #if __ARM_ARCH__ >= 5
8130 @@ -499,18 +662,23 @@
8131
8132 @ Division loop
8133 1: cmp \dividend, \divisor
8134 + do_it hs, t
8135 subhs \dividend, \dividend, \divisor
8136 orrhs \result, \result, \curbit
8137 cmp \dividend, \divisor, lsr #1
8138 + do_it hs, t
8139 subhs \dividend, \dividend, \divisor, lsr #1
8140 orrhs \result, \result, \curbit, lsr #1
8141 cmp \dividend, \divisor, lsr #2
8142 + do_it hs, t
8143 subhs \dividend, \dividend, \divisor, lsr #2
8144 orrhs \result, \result, \curbit, lsr #2
8145 cmp \dividend, \divisor, lsr #3
8146 + do_it hs, t
8147 subhs \dividend, \dividend, \divisor, lsr #3
8148 orrhs \result, \result, \curbit, lsr #3
8149 cmp \dividend, #0 @ Early termination?
8150 + do_it ne, t
8151 movnes \curbit, \curbit, lsr #4 @ No, any more bits to do?
8152 movne \divisor, \divisor, lsr #4
8153 bne 1b
8154 @@ -799,13 +967,14 @@
8155 /* ------------------------------------------------------------------------ */
8156 #ifdef L_udivsi3
8157
8158 +#if defined(__ARM_ARCH_6M__)
8159 +
8160 FUNC_START udivsi3
8161 FUNC_ALIAS aeabi_uidiv udivsi3
8162
8163 -#ifdef __thumb__
8164 -
8165 cmp divisor, #0
8166 beq LSYM(Ldiv0)
8167 +LSYM(udivsi3_nodiv0):
8168 mov curbit, #1
8169 mov result, #0
8170
8171 @@ -819,9 +988,16 @@
8172 pop { work }
8173 RET
8174
8175 -#else /* ARM version. */
8176 +#else /* ARM/Thumb-2 version. */
8177 +
8178 + ARM_FUNC_START udivsi3
8179 + ARM_FUNC_ALIAS aeabi_uidiv udivsi3
8180
8181 + /* Note: if called via udivsi3_nodiv0, this will unnecessarily check
8182 + for division-by-zero a second time. */
8183 +LSYM(udivsi3_nodiv0):
8184 subs r2, r1, #1
8185 + do_it eq
8186 RETc(eq)
8187 bcc LSYM(Ldiv0)
8188 cmp r0, r1
8189 @@ -834,7 +1010,8 @@
8190 mov r0, r2
8191 RET
8192
8193 -11: moveq r0, #1
8194 +11: do_it eq, e
8195 + moveq r0, #1
8196 movne r0, #0
8197 RET
8198
8199 @@ -845,19 +1022,24 @@
8200
8201 #endif /* ARM version */
8202
8203 - DIV_FUNC_END udivsi3
8204 + DIV_FUNC_END udivsi3 unsigned
8205
8206 +#if defined(__ARM_ARCH_6M__)
8207 FUNC_START aeabi_uidivmod
8208 -#ifdef __thumb__
8209 + cmp r1, #0
8210 + beq LSYM(Ldiv0)
8211 push {r0, r1, lr}
8212 - bl SYM(__udivsi3)
8213 + bl LSYM(udivsi3_nodiv0)
8214 POP {r1, r2, r3}
8215 mul r2, r0
8216 sub r1, r1, r2
8217 bx r3
8218 #else
8219 +ARM_FUNC_START aeabi_uidivmod
8220 + cmp r1, #0
8221 + beq LSYM(Ldiv0)
8222 stmfd sp!, { r0, r1, lr }
8223 - bl SYM(__udivsi3)
8224 + bl LSYM(udivsi3_nodiv0)
8225 ldmfd sp!, { r1, r2, lr }
8226 mul r3, r2, r0
8227 sub r1, r1, r3
8228 @@ -904,19 +1086,20 @@
8229
8230 #endif /* ARM version. */
8231
8232 - DIV_FUNC_END umodsi3
8233 + DIV_FUNC_END umodsi3 unsigned
8234
8235 #endif /* L_umodsi3 */
8236 /* ------------------------------------------------------------------------ */
8237 #ifdef L_divsi3
8238
8239 +#if defined(__ARM_ARCH_6M__)
8240 +
8241 FUNC_START divsi3
8242 FUNC_ALIAS aeabi_idiv divsi3
8243
8244 -#ifdef __thumb__
8245 cmp divisor, #0
8246 beq LSYM(Ldiv0)
8247 -
8248 +LSYM(divsi3_nodiv0):
8249 push { work }
8250 mov work, dividend
8251 eor work, divisor @ Save the sign of the result.
8252 @@ -945,15 +1128,21 @@
8253 pop { work }
8254 RET
8255
8256 -#else /* ARM version. */
8257 +#else /* ARM/Thumb-2 version. */
8258
8259 + ARM_FUNC_START divsi3
8260 + ARM_FUNC_ALIAS aeabi_idiv divsi3
8261 +
8262 cmp r1, #0
8263 - eor ip, r0, r1 @ save the sign of the result.
8264 beq LSYM(Ldiv0)
8265 +LSYM(divsi3_nodiv0):
8266 + eor ip, r0, r1 @ save the sign of the result.
8267 + do_it mi
8268 rsbmi r1, r1, #0 @ loops below use unsigned.
8269 subs r2, r1, #1 @ division by 1 or -1 ?
8270 beq 10f
8271 movs r3, r0
8272 + do_it mi
8273 rsbmi r3, r0, #0 @ positive dividend value
8274 cmp r3, r1
8275 bls 11f
8276 @@ -963,14 +1152,18 @@
8277 ARM_DIV_BODY r3, r1, r0, r2
8278
8279 cmp ip, #0
8280 + do_it mi
8281 rsbmi r0, r0, #0
8282 RET
8283
8284 10: teq ip, r0 @ same sign ?
8285 + do_it mi
8286 rsbmi r0, r0, #0
8287 RET
8288
8289 -11: movlo r0, #0
8290 +11: do_it lo
8291 + movlo r0, #0
8292 + do_it eq,t
8293 moveq r0, ip, asr #31
8294 orreq r0, r0, #1
8295 RET
8296 @@ -979,24 +1172,30 @@
8297
8298 cmp ip, #0
8299 mov r0, r3, lsr r2
8300 + do_it mi
8301 rsbmi r0, r0, #0
8302 RET
8303
8304 #endif /* ARM version */
8305
8306 - DIV_FUNC_END divsi3
8307 + DIV_FUNC_END divsi3 signed
8308
8309 +#if defined(__ARM_ARCH_6M__)
8310 FUNC_START aeabi_idivmod
8311 -#ifdef __thumb__
8312 + cmp r1, #0
8313 + beq LSYM(Ldiv0)
8314 push {r0, r1, lr}
8315 - bl SYM(__divsi3)
8316 + bl LSYM(divsi3_nodiv0)
8317 POP {r1, r2, r3}
8318 mul r2, r0
8319 sub r1, r1, r2
8320 bx r3
8321 #else
8322 +ARM_FUNC_START aeabi_idivmod
8323 + cmp r1, #0
8324 + beq LSYM(Ldiv0)
8325 stmfd sp!, { r0, r1, lr }
8326 - bl SYM(__divsi3)
8327 + bl LSYM(divsi3_nodiv0)
8328 ldmfd sp!, { r1, r2, lr }
8329 mul r3, r2, r0
8330 sub r1, r1, r3
8331 @@ -1062,21 +1261,25 @@
8332
8333 #endif /* ARM version */
8334
8335 - DIV_FUNC_END modsi3
8336 + DIV_FUNC_END modsi3 signed
8337
8338 #endif /* L_modsi3 */
8339 /* ------------------------------------------------------------------------ */
8340 #ifdef L_dvmd_tls
8341
8342 - FUNC_START div0
8343 - FUNC_ALIAS aeabi_idiv0 div0
8344 - FUNC_ALIAS aeabi_ldiv0 div0
8345 -
8346 +#ifdef __ARM_EABI__
8347 + WEAK aeabi_idiv0
8348 + WEAK aeabi_ldiv0
8349 + FUNC_START aeabi_idiv0
8350 + FUNC_START aeabi_ldiv0
8351 RET
8352 -
8353 FUNC_END aeabi_ldiv0
8354 FUNC_END aeabi_idiv0
8355 +#else
8356 + FUNC_START div0
8357 + RET
8358 FUNC_END div0
8359 +#endif
8360
8361 #endif /* L_divmodsi_tools */
8362 /* ------------------------------------------------------------------------ */
8363 @@ -1086,16 +1289,49 @@
8364 /* Constant taken from <asm/signal.h>. */
8365 #define SIGFPE 8
8366
8367 +#ifdef __ARM_EABI__
8368 + WEAK aeabi_idiv0
8369 + WEAK aeabi_ldiv0
8370 + ARM_FUNC_START aeabi_idiv0
8371 + ARM_FUNC_START aeabi_ldiv0
8372 +#else
8373 ARM_FUNC_START div0
8374 +#endif
8375
8376 - do_push {r1, lr}
8377 + do_push (r1, lr)
8378 mov r0, #SIGFPE
8379 bl SYM(raise) __PLT__
8380 RETLDM r1
8381
8382 +#ifdef __ARM_EABI__
8383 + FUNC_END aeabi_ldiv0
8384 + FUNC_END aeabi_idiv0
8385 +#else
8386 FUNC_END div0
8387 +#endif
8388
8389 #endif /* L_dvmd_lnx */
8390 +#ifdef L_clear_cache
8391 +#if defined __ARM_EABI__ && defined __linux__
8392 +@ EABI GNU/Linux call to cacheflush syscall.
8393 + ARM_FUNC_START clear_cache
8394 + do_push (r7)
8395 +#if __ARM_ARCH__ >= 7 || defined(__ARM_ARCH_6T2__)
8396 + movw r7, #2
8397 + movt r7, #0xf
8398 +#else
8399 + mov r7, #0xf0000
8400 + add r7, r7, #2
8401 +#endif
8402 + mov r2, #0
8403 + swi 0
8404 + do_pop (r7)
8405 + RET
8406 + FUNC_END clear_cache
8407 +#else
8408 +#error "This is only for ARM EABI GNU/Linux"
8409 +#endif
8410 +#endif /* L_clear_cache */
8411 /* ------------------------------------------------------------------------ */
8412 /* Dword shift operations. */
8413 /* All the following Dword shift variants rely on the fact that
8414 @@ -1292,7 +1528,7 @@
8415 push {r4, lr}
8416 # else
8417 ARM_FUNC_START clzdi2
8418 - do_push {r4, lr}
8419 + do_push (r4, lr)
8420 # endif
8421 cmp xxh, #0
8422 bne 1f
8423 diff -Nur a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
8424 --- a/gcc/config/arm/linux-eabi.h 2007-11-08 14:44:09.000000000 +0100
8425 +++ b/gcc/config/arm/linux-eabi.h 2010-01-25 09:50:28.995687913 +0100
8426 @@ -66,22 +66,14 @@
8427 /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
8428 use the GNU/Linux version, not the generic BPABI version. */
8429 #undef LINK_SPEC
8430 -#define LINK_SPEC LINUX_TARGET_LINK_SPEC
8431 +#define LINK_SPEC LINUX_TARGET_LINK_SPEC BE8_LINK_SPEC
8432
8433 /* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
8434 do not use -lfloat. */
8435 #undef LIBGCC_SPEC
8436
8437 -/* Clear the instruction cache from `beg' to `end'. This makes an
8438 - inline system call to SYS_cacheflush. */
8439 +/* Clear the instruction cache from `beg' to `end'. This is
8440 + implemented in lib1funcs.asm, so ensure an error if this definition
8441 + is used. */
8442 #undef CLEAR_INSN_CACHE
8443 -#define CLEAR_INSN_CACHE(BEG, END) \
8444 -{ \
8445 - register unsigned long _beg __asm ("a1") = (unsigned long) (BEG); \
8446 - register unsigned long _end __asm ("a2") = (unsigned long) (END); \
8447 - register unsigned long _flg __asm ("a3") = 0; \
8448 - register unsigned long _scno __asm ("r7") = 0xf0002; \
8449 - __asm __volatile ("swi 0 @ sys_cacheflush" \
8450 - : "=r" (_beg) \
8451 - : "0" (_beg), "r" (_end), "r" (_flg), "r" (_scno)); \
8452 -}
8453 +#define CLEAR_INSN_CACHE(BEG, END) not used
8454 diff -Nur a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
8455 --- a/gcc/config/arm/linux-elf.h 2009-02-20 16:20:38.000000000 +0100
8456 +++ b/gcc/config/arm/linux-elf.h 2010-01-25 09:50:28.995687913 +0100
8457 @@ -98,7 +98,7 @@
8458
8459 /* NWFPE always understands FPA instructions. */
8460 #undef FPUTYPE_DEFAULT
8461 -#define FPUTYPE_DEFAULT FPUTYPE_FPA_EMU3
8462 +#define FPUTYPE_DEFAULT "fpe3"
8463
8464 /* Call the function profiler with a given profile label. */
8465 #undef ARM_FUNCTION_PROFILER
8466 diff -Nur a/gcc/config/arm/marvell-f.md b/gcc/config/arm/marvell-f.md
8467 --- a/gcc/config/arm/marvell-f.md 1970-01-01 01:00:00.000000000 +0100
8468 +++ b/gcc/config/arm/marvell-f.md 2010-01-25 09:50:28.995687913 +0100
8469 @@ -0,0 +1,365 @@
8470 +;; Marvell 2850 pipeline description
8471 +;; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
8472 +;; Written by Marvell and CodeSourcery, Inc.
8473 +
8474 +;; This file is part of GCC.
8475 +
8476 +;; GCC is free software; you can redistribute it and/or modify it
8477 +;; under the terms of the GNU General Public License as published
8478 +;; by the Free Software Foundation; either version 2, or (at your
8479 +;; option) any later version.
8480 +
8481 +;; GCC is distributed in the hope that it will be useful, but WITHOUT
8482 +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
8483 +;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
8484 +;; License for more details.
8485 +
8486 +;; You should have received a copy of the GNU General Public License
8487 +;; along with GCC; see the file COPYING. If not, write to
8488 +;; the Free Software Foundation, 51 Franklin Street, Fifth Floor,
8489 +;; Boston, MA 02110-1301, USA.
8490 +
8491 +;; This automaton provides a pipeline description for the Marvell
8492 +;; 2850 core.
8493 +;;
8494 +;; The model given here assumes that the condition for all conditional
8495 +;; instructions is "true", i.e., that all of the instructions are
8496 +;; actually executed.
8497 +
8498 +(define_automaton "marvell_f")
8499 +
8500 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8501 +;; Pipelines
8502 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8503 +
8504 +;; This is a dual-issue processor with three pipelines:
8505 +;;
8506 +;; 1. Arithmetic and load/store pipeline A1.
8507 +;; Issue | E1 | E2 | OF | WR | WB for load-store instructions
8508 +;; Issue | E1 | E2 | WB for arithmetic instructions
8509 +;;
8510 +;; 2. Arithmetic pipeline A2.
8511 +;; Issue | E1 | E2 | WB
8512 +;;
8513 +;; 3. Multiply and multiply-accumulate pipeline.
8514 +;; Issue | MAC1 | MAC2 | MAC3 | WB
8515 +;;
8516 +;; There are various bypasses modelled to a greater or lesser extent.
8517 +;;
8518 +;; Latencies in this file correspond to the number of cycles after
8519 +;; the issue stage that it takes for the result of the instruction to
8520 +;; be computed, or for its side-effects to occur.
8521 +
8522 +(define_cpu_unit "a1_e1,a1_e2,a1_of,a1_wr,a1_wb" "marvell_f") ; ALU 1
8523 +(define_cpu_unit "a2_e1,a2_e2,a2_wb" "marvell_f") ; ALU 2
8524 +(define_cpu_unit "m_1,m_2,m_3,m_wb" "marvell_f") ; MAC
8525 +
8526 +;; We define an SRAM cpu unit to enable us to describe conflicts
8527 +;; between loads at the E2 stage and stores at the WR stage.
8528 +
8529 +(define_cpu_unit "sram" "marvell_f")
8530 +
8531 +;; Handling of dual-issue constraints.
8532 +;;
8533 +;; Certain pairs of instructions can be issued in parallel, and certain
8534 +;; pairs cannot. We divide a subset of the instructions into groups as
8535 +;; follows.
8536 +;;
8537 +;; - data processing 1 (mov, mvn);
8538 +;; - data processing 2 (adc, add, and, bic, cmn, cmp, eor, orr, rsb,
8539 +;; rsc, sbc, sub, teq, tst);
8540 +;; - load single (ldr, ldrb, ldrbt, ldrt, ldrh, ldrsb, ldrsh);
8541 +;; - store single (str, strb, strbt, strt, strh);
8542 +;; - swap (swp, swpb);
8543 +;; - pld;
8544 +;; - count leading zeros and DSP add/sub (clz, qadd, qdadd, qsub, qdsub);
8545 +;; - multiply 2 (mul, muls, smull, umull, smulxy, smulls, umulls);
8546 +;; - multiply 3 (mla, mlas, smlal, umlal, smlaxy, smlalxy, smlawx,
8547 +;; smlawy, smlals, umlals);
8548 +;; - branches (b, bl, blx, bx).
8549 +;;
8550 +;; Ignoring conditional execution, it is a good approximation to the core
8551 +;; to model that two instructions may only be issued in parallel if the
8552 +;; following conditions are met.
8553 +;; I. The instructions both fall into one of the above groups and their
8554 +;; corresponding groups have a entry in the matrix below that is not X.
8555 +;; II. The second instruction does not read any register updated by the
8556 +;; first instruction (already enforced by the GCC scheduler).
8557 +;; III. The second instruction does not need the carry flag updated by the
8558 +;; first instruction. Currently we do not model this.
8559 +;;
8560 +;; First Second instruction group
8561 +;; insn
8562 +;; DP1 DP2 L S SWP PLD CLZ M2 M3 B
8563 +;;
8564 +;; DP1 ok ok ok ok ok ok ok ok ok ok
8565 +;; DP2(1) ok ok ok ok ok ok ok ok ok ok
8566 +;; DP2(2) ok (2) ok (4) ok ok ok ok X ok
8567 +;; L }
8568 +;; SWP } ok ok X X X X ok ok ok ok
8569 +;; PLD }
8570 +;; S(3) ok ok X X X X ok ok ok ok
8571 +;; S(4) ok (2) X X X X ok ok X ok
8572 +;; CLZ ok ok ok ok ok ok ok ok ok ok
8573 +;; M2 ok ok ok ok ok ok ok X X ok
8574 +;; M3 ok (2) ok (4) ok ok ok X X ok
8575 +;; B ok ok ok ok ok ok ok ok ok ok
8576 +;;
8577 +;; (1) without register shift
8578 +;; (2) with register shift
8579 +;; (3) with immediate offset
8580 +;; (4) with register offset
8581 +;;
8582 +;; We define a fake cpu unit "reg_shift_lock" to enforce constraints
8583 +;; between instructions in groups DP2(2) and M3. All other
8584 +;; constraints are enforced automatically by virtue of the limited
8585 +;; number of pipelines available for the various operations, with
8586 +;; the exception of constraints involving S(4) that we do not model.
8587 +
8588 +(define_cpu_unit "reg_shift_lock" "marvell_f")
8589 +
8590 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8591 +;; ALU instructions
8592 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8593 +
8594 +;; 1. Certain logic operations can be retired after the E1 stage if
8595 +;; the pipeline is not already retiring another instruction. In this
8596 +;; model we assume this behaviour always holds for mov, mvn, and, orr, eor
8597 +;; instructions. If a register shift is involved and the instruction is
8598 +;; not mov or mvn, then a dual-issue constraint must be enforced.
8599 +
8600 +;; The first two cases are separate so they can be identified for
8601 +;; bypasses below.
8602 +
8603 +(define_insn_reservation "marvell_f_alu_early_retire" 1
8604 + (and (eq_attr "tune" "marvell_f")
8605 + (and (eq_attr "type" "alu")
8606 + (eq_attr "insn" "mov,mvn,and,orr,eor")))
8607 + "(a1_e1,a1_wb)|(a2_e1,a2_wb)")
8608 +
8609 +(define_insn_reservation "marvell_f_alu_early_retire_shift" 1
8610 + (and (eq_attr "tune" "marvell_f")
8611 + (and (eq_attr "type" "alu_shift_reg")
8612 + (eq_attr "insn" "mov,mvn,and,orr,eor")))
8613 + "(a1_e1,a1_wb)|(a2_e1,a2_wb)")
8614 +
8615 +(define_insn_reservation "marvell_f_alu_early_retire_reg_shift1" 1
8616 + (and (eq_attr "tune" "marvell_f")
8617 + (and (eq_attr "type" "alu_shift_reg")
8618 + (eq_attr "insn" "mov,mvn")))
8619 + "(a1_e1,a1_wb)|(a2_e1,a2_wb)")
8620 +
8621 +(define_insn_reservation "marvell_f_alu_early_retire_reg_shift2" 1
8622 + (and (eq_attr "tune" "marvell_f")
8623 + (and (eq_attr "type" "alu_shift_reg")
8624 + (eq_attr "insn" "and,orr,eor")))
8625 + "(reg_shift_lock+a1_e1,a1_wb)|(reg_shift_lock+a2_e1,a2_wb)")
8626 +
8627 +;; 2. ALU operations with no shifted operand. These bypass the E1 stage if
8628 +;; the E2 stage of the corresponding pipeline is clear; here, we always
8629 +;; model this scenario [*]. We give the operation a latency of 1 yet reserve
8630 +;; both E1 and E2 for it (thus preventing the GCC scheduler, in the case
8631 +;; where both E1 and E2 of one pipeline are clear, from issuing one
8632 +;; instruction to each).
8633 +;;
8634 +;; [*] The non-bypass case is a latency of two, reserving E1 on the first
8635 +;; cycle and E2 on the next. Due to the way the scheduler works we
8636 +;; have to choose between taking this as the default and taking the
8637 +;; above case (with latency one) as the default; we choose the latter.
8638 +
8639 +(define_insn_reservation "marvell_f_alu_op_bypass_e1" 1
8640 + (and (eq_attr "tune" "marvell_f")
8641 + (and (eq_attr "type" "alu")
8642 + (not (eq_attr "insn" "mov,mvn,and,orr,eor"))))
8643 + "(a1_e1+a1_e2,a1_wb)|(a2_e1+a2_e2,a2_wb)")
8644 +
8645 +;; 3. ALU operations with a shift-by-constant operand.
8646 +
8647 +(define_insn_reservation "marvell_f_alu_shift_op" 2
8648 + (and (eq_attr "tune" "marvell_f")
8649 + (and (eq_attr "type" "alu_shift")
8650 + (not (eq_attr "insn" "mov,mvn,and,orr,eor"))))
8651 + "(a1_e1,a1_e2,a1_wb)|(a2_e1,a2_e2,a2_wb)")
8652 +
8653 +;; 4. ALU operations with a shift-by-register operand. Since the
8654 +;; instruction is never mov or mvn, a dual-issue constraint must
8655 +;; be enforced.
8656 +
8657 +(define_insn_reservation "marvell_f_alu_shift_reg_op" 2
8658 + (and (eq_attr "tune" "marvell_f")
8659 + (and (eq_attr "type" "alu_shift_reg")
8660 + (not (eq_attr "insn" "mov,mvn,and,orr,eor"))))
8661 + "(reg_shift_lock+a1_e1,a1_e2,a1_wb)|(reg_shift_lock+a2_e1,a2_e2,a2_wb)")
8662 +
8663 +;; Given an ALU operation with shift (I1) followed by another ALU
8664 +;; operation (I2), with I2 depending on the destination register Rd of I1
8665 +;; and with I2 not using that value as the amount or the starting value for
8666 +;; a shift, then I1 and I2 may be issued to the same pipeline on
8667 +;; consecutive cycles. In terms of this model that corresponds to I1
8668 +;; having a latency of one cycle. There are three cases for various
8669 +;; I1 and I2 as follows.
8670 +
8671 +;; (a) I1 has a constant or register shift and I2 doesn't have a shift at all.
8672 +(define_bypass 1 "marvell_f_alu_shift_op,\
8673 + marvell_f_alu_shift_reg_op"
8674 + "marvell_f_alu_op_bypass_e1,marvell_f_alu_early_retire")
8675 +
8676 +;; (b) I1 has a constant or register shift and I2 has a constant shift.
8677 +;; Rd must not provide the starting value for the shift.
8678 +(define_bypass 1 "marvell_f_alu_shift_op,\
8679 + marvell_f_alu_shift_reg_op"
8680 + "marvell_f_alu_shift_op,marvell_f_alu_early_retire_shift"
8681 + "arm_no_early_alu_shift_value_dep")
8682 +
8683 +;; (c) I1 has a constant or register shift and I2 has a register shift.
8684 +;; Rd must not provide the amount by which to shift.
8685 +(define_bypass 1 "marvell_f_alu_shift_op,\
8686 + marvell_f_alu_shift_reg_op"
8687 + "marvell_f_alu_shift_reg_op,\
8688 + marvell_f_alu_early_retire_reg_shift1,\
8689 + marvell_f_alu_early_retire_reg_shift2"
8690 + "arm_no_early_alu_shift_dep")
8691 +
8692 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8693 +;; Multiplication instructions
8694 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8695 +
8696 +;; Multiplication instructions in group "Multiply 2".
8697 +
8698 +(define_insn_reservation "marvell_f_multiply_2" 3
8699 + (and (eq_attr "tune" "marvell_f")
8700 + (eq_attr "insn" "mul,muls,smull,umull,smulxy,smulls,umulls"))
8701 + "m_1,m_2,m_3,m_wb")
8702 +
8703 +;; Multiplication instructions in group "Multiply 3". There is a
8704 +;; dual-issue constraint with non-multiplication ALU instructions
8705 +;; to be respected here.
8706 +
8707 +(define_insn_reservation "marvell_f_multiply_3" 3
8708 + (and (eq_attr "tune" "marvell_f")
8709 + (eq_attr "insn" "mla,mlas,smlal,umlal,smlaxy,smlalxy,smlawx,\
8710 + smlawy,smlals,umlals"))
8711 + "reg_shift_lock+m_1,m_2,m_3,m_wb")
8712 +
8713 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8714 +;; Branch instructions
8715 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8716 +
8717 +;; Conditional backward b instructions can have a zero-cycle penalty, and
8718 +;; other conditional b and bl instructions have a one-cycle penalty if
8719 +;; predicted correctly. Currently we model the zero-cycle case for all
8720 +;; branches.
8721 +
8722 +(define_insn_reservation "marvell_f_branches" 0
8723 + (and (eq_attr "tune" "marvell_f")
8724 + (eq_attr "type" "branch"))
8725 + "nothing")
8726 +
8727 +;; Call latencies are not predictable; a semi-arbitrary very large
8728 +;; number is used as "positive infinity" for such latencies.
8729 +
8730 +(define_insn_reservation "marvell_f_call" 32
8731 + (and (eq_attr "tune" "marvell_f")
8732 + (eq_attr "type" "call"))
8733 + "nothing")
8734 +
8735 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8736 +;; Load/store instructions
8737 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8738 +
8739 +;; The models for load/store instructions do not accurately describe
8740 +;; the difference between operations with a base register writeback.
8741 +;; These models assume that all memory references hit in dcache.
8742 +
8743 +;; 1. Load/store for single registers.
8744 +
8745 +;; The worst case for a load is when the load result is needed in E1
8746 +;; (for example for a register shift), giving a latency of four. Loads
8747 +;; skip E1 and access memory at the E2 stage.
8748 +
8749 +(define_insn_reservation "marvell_f_load1" 4
8750 + (and (eq_attr "tune" "marvell_f")
8751 + (eq_attr "type" "load1,load_byte"))
8752 + "a1_e2+sram,a1_of,a1_wr,a1_wb")
8753 +
8754 +;; The result for a load may be bypassed (to be available at the same
8755 +;; time as the load arrives in the WR stage, so effectively at the OF
8756 +;; stage) to the Rn operand at E2 with a latency of two. The result may
8757 +;; be bypassed to a non-Rn operand at E2 with a latency of three. For
8758 +;; instructions without shifts, detection of an Rn bypass situation is
8759 +;; difficult (because some of the instruction patterns switch their
8760 +;; operands), and so we do not model that here. For instructions with
8761 +;; shifts, the operand used at E2 will always be Rn, and so we can
8762 +;; model the latency-two bypass for these.
8763 +
8764 +(define_bypass 2 "marvell_f_load1"
8765 + "marvell_f_alu_shift_op"
8766 + "arm_no_early_alu_shift_value_dep")
8767 +
8768 +(define_bypass 2 "marvell_f_load1"
8769 + "marvell_f_alu_shift_reg_op"
8770 + "arm_no_early_alu_shift_dep")
8771 +
8772 +;; Stores write at the WR stage and loads read at the E2 stage, giving
8773 +;; a store latency of three.
8774 +
8775 +(define_insn_reservation "marvell_f_store1" 3
8776 + (and (eq_attr "tune" "marvell_f")
8777 + (eq_attr "type" "store1"))
8778 + "a1_e2,a1_of,a1_wr+sram,a1_wb")
8779 +
8780 +;; 2. Load/store for two consecutive registers. These may be dealt
8781 +;; with in the same number of cycles as single loads and stores.
8782 +
8783 +(define_insn_reservation "marvell_f_load2" 4
8784 + (and (eq_attr "tune" "marvell_f")
8785 + (eq_attr "type" "load2"))
8786 + "a1_e2+sram,a1_of,a1_wr,a1_wb")
8787 +
8788 +(define_insn_reservation "marvell_f_store2" 3
8789 + (and (eq_attr "tune" "marvell_f")
8790 + (eq_attr "type" "store2"))
8791 + "a1_e2,a1_of,a1_wr+sram,a1_wb")
8792 +
8793 +;; The first word of a doubleword load is eligible for the latency-two
8794 +;; bypass described above for single loads, but this is not modelled here.
8795 +;; We do however assume that either word may also be bypassed with
8796 +;; latency three for ALU operations with shifts (where the shift value and
8797 +;; amount do not depend on the loaded value) and latency four for ALU
8798 +;; operations without shifts. The latency four case is of course the default.
8799 +
8800 +(define_bypass 3 "marvell_f_load2"
8801 + "marvell_f_alu_shift_op"
8802 + "arm_no_early_alu_shift_value_dep")
8803 +
8804 +(define_bypass 3 "marvell_f_load2"
8805 + "marvell_f_alu_shift_reg_op"
8806 + "arm_no_early_alu_shift_dep")
8807 +
8808 +;; 3. Load/store for more than two registers.
8809 +
8810 +;; These instructions stall for an extra cycle in the decode stage;
8811 +;; individual load/store instructions for each register are then issued.
8812 +;; The load/store multiple instruction itself is removed from the decode
8813 +;; stage at the same time as the final load/store instruction is issued.
8814 +;; To complicate matters, pairs of loads/stores referencing two
8815 +;; consecutive registers will be issued together as doubleword operations.
8816 +;; We model a 3-word load as an LDR plus an LDRD, and a 4-word load
8817 +;; as two LDRDs; thus, these are allocated the same latencies (the
8818 +;; latency for two consecutive loads plus one for the setup stall).
8819 +;; The extra stall is modelled by reserving E1.
8820 +
8821 +(define_insn_reservation "marvell_f_load3_4" 6
8822 + (and (eq_attr "tune" "marvell_f")
8823 + (eq_attr "type" "load3,load4"))
8824 + "a1_e1,a1_e1+a1_e2+sram,a1_e2+sram+a1_of,a1_of+a1_wr,a1_wr+a1_wb,a1_wb")
8825 +
8826 +;; Bypasses are possible for ldm as for single loads, but we do not
8827 +;; model them here since the order of the constituent loads is
8828 +;; difficult to predict.
8829 +
8830 +(define_insn_reservation "marvell_f_store3_4" 5
8831 + (and (eq_attr "tune" "marvell_f")
8832 + (eq_attr "type" "store3,store4"))
8833 + "a1_e1,a1_e1+a1_e2,a1_e2+a1_of,a1_of+a1_wr+sram,a1_wr+sram+a1_wb,a1_wb")
8834 +
8835 diff -Nur a/gcc/config/arm/marvell-f-vfp.md b/gcc/config/arm/marvell-f-vfp.md
8836 --- a/gcc/config/arm/marvell-f-vfp.md 1970-01-01 01:00:00.000000000 +0100
8837 +++ b/gcc/config/arm/marvell-f-vfp.md 2010-01-25 09:50:28.995687913 +0100
8838 @@ -0,0 +1,153 @@
8839 +;; Marvell 2850 VFP pipeline description
8840 +;; Copyright (C) 2007 Free Software Foundation, Inc.
8841 +;; Written by CodeSourcery, Inc.
8842 +
8843 +;; This file is part of GCC.
8844 +
8845 +;; GCC is distributed in the hope that it will be useful, but WITHOUT
8846 +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
8847 +;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
8848 +;; License for more details.
8849 +
8850 +;; You should have received a copy of the GNU General Public License
8851 +;; along with GCC; see the file COPYING. If not, write to
8852 +;; the Free Software Foundation, 51 Franklin Street, Fifth Floor,
8853 +;; Boston, MA 02110-1301, USA.
8854 +
8855 +;; This automaton provides a pipeline description for the Marvell
8856 +;; 2850 core.
8857 +;;
8858 +;; The model given here assumes that the condition for all conditional
8859 +;; instructions is "true", i.e., that all of the instructions are
8860 +;; actually executed.
8861 +
8862 +(define_automaton "marvell_f_vfp")
8863 +
8864 +;; This is a single-issue VFPv2 implementation with the following execution
8865 +;; units:
8866 +;;
8867 +;; 1. Addition/subtraction unit; takes three cycles, pipelined.
8868 +;; 2. Multiplication unit; takes four cycles, pipelined.
8869 +;; 3. Add buffer, used for multiply-accumulate (see below).
8870 +;; 4. Divide/square root unit, not pipelined.
8871 +;; For single-precision: takes sixteen cycles, can accept another insn
8872 +;; after fifteen cycles.
8873 +;; For double-precision: takes thirty-one cycles, can accept another insn
8874 +;; after thirty cycles.
8875 +;; 5. Single-cycle unit, pipelined.
8876 +;; This does absolute value/copy/negate/compare in one cycle and
8877 +;; conversion in two cycles.
8878 +;;
8879 +;; When all three operands of a multiply-accumulate instruction are ready,
8880 +;; one is issued to the add buffer (which can hold six operands in a FIFO)
8881 +;; and the two to be multiplied are issued to the multiply unit. After
8882 +;; four cycles in the multiply unit, one cycle is taken to issue the
8883 +;; operand from the add buffer plus the multiplication result to the
8884 +;; addition/subtraction unit. That issue takes priority over any add/sub
8885 +;; instruction waiting at the normal issue stage, but may be performed in
8886 +;; parallel with the issue of a non-add/sub instruction. The total time
8887 +;; for a multiply-accumulate instruction to pass through the execution
8888 +;; units is hence eight cycles.
8889 +;;
8890 +;; We do not need to explicitly model the add buffer because it can
8891 +;; always issue the instruction at the head of its FIFO (due to the above
8892 +;; priority rule) and there are more spaces in the add buffer (six) than
8893 +;; there are stages (four) in the multiplication unit.
8894 +;;
8895 +;; Two instructions may be retired at once from the head of an 8-entry
8896 +;; reorder buffer. Data from these first two instructions only may be
8897 +;; forwarded to the inputs of the issue unit. We assume that the
8898 +;; pressure on the reorder buffer will be sufficiently low that every
8899 +;; instruction entering it will be eligible for data forwarding. Since
8900 +;; data is forwarded to the issue unit and not the execution units (so
8901 +;; for example single-cycle instructions cannot be issued back-to-back),
8902 +;; the latencies given below are the cycle counts above plus one.
8903 +
8904 +(define_cpu_unit "mf_vfp_issue" "marvell_f_vfp")
8905 +(define_cpu_unit "mf_vfp_add" "marvell_f_vfp")
8906 +(define_cpu_unit "mf_vfp_mul" "marvell_f_vfp")
8907 +(define_cpu_unit "mf_vfp_div" "marvell_f_vfp")
8908 +(define_cpu_unit "mf_vfp_single_cycle" "marvell_f_vfp")
8909 +
8910 +;; An attribute to indicate whether our reservations are applicable.
8911 +
8912 +(define_attr "marvell_f_vfp" "yes,no"
8913 + (const (if_then_else (and (eq_attr "tune" "marvell_f")
8914 + (eq_attr "fpu" "vfp"))
8915 + (const_string "yes") (const_string "no"))))
8916 +
8917 +;; Reservations of functional units. The nothing*2 reservations at the
8918 +;; start of many of the reservation strings correspond to the decode
8919 +;; stages. We need to have these reservations so that we can correctly
8920 +;; reserve parts of the core's A1 pipeline for loads and stores. For
8921 +;; that case (since loads skip E1) the pipelines line up thus:
8922 +;; A1 pipe: Issue E2 OF WR WB ...
8923 +;; VFP pipe: Fetch Decode1 Decode2 Issue Execute1 ...
8924 +;; For a load, we need to make a reservation of E2, and thus we must
8925 +;; use Decode1 as the starting point for all VFP reservations here.
8926 +;;
8927 +;; For reservations of pipelined VFP execution units we only reserve
8928 +;; the execution unit for the first execution cycle, omitting any trailing
8929 +;; "nothing" reservations.
8930 +
8931 +(define_insn_reservation "marvell_f_vfp_add" 4
8932 + (and (eq_attr "marvell_f_vfp" "yes")
8933 + (eq_attr "type" "farith"))
8934 + "nothing*2,mf_vfp_issue,mf_vfp_add")
8935 +
8936 +(define_insn_reservation "marvell_f_vfp_mul" 5
8937 + (and (eq_attr "marvell_f_vfp" "yes")
8938 + (eq_attr "type" "fmuls,fmuld"))
8939 + "nothing*2,mf_vfp_issue,mf_vfp_mul")
8940 +
8941 +(define_insn_reservation "marvell_f_vfp_divs" 17
8942 + (and (eq_attr "marvell_f_vfp" "yes")
8943 + (eq_attr "type" "fdivs"))
8944 + "nothing*2,mf_vfp_issue,mf_vfp_div*15")
8945 +
8946 +(define_insn_reservation "marvell_f_vfp_divd" 32
8947 + (and (eq_attr "marvell_f_vfp" "yes")
8948 + (eq_attr "type" "fdivd"))
8949 + "nothing*2,mf_vfp_issue,mf_vfp_div*30")
8950 +
8951 +;; The DFA lookahead is small enough that the "add" reservation here
8952 +;; will always take priority over any addition/subtraction instruction
8953 +;; issued five cycles after the multiply-accumulate instruction, as
8954 +;; required.
8955 +(define_insn_reservation "marvell_f_vfp_mac" 9
8956 + (and (eq_attr "marvell_f_vfp" "yes")
8957 + (eq_attr "type" "fmacs,fmacd"))
8958 + "nothing*2,mf_vfp_issue,mf_vfp_mul,nothing*4,mf_vfp_add")
8959 +
8960 +(define_insn_reservation "marvell_f_vfp_single" 2
8961 + (and (eq_attr "marvell_f_vfp" "yes")
8962 + (eq_attr "type" "ffarith"))
8963 + "nothing*2,mf_vfp_issue,mf_vfp_single_cycle")
8964 +
8965 +(define_insn_reservation "marvell_f_vfp_convert" 3
8966 + (and (eq_attr "marvell_f_vfp" "yes")
8967 + (eq_attr "type" "f_cvt"))
8968 + "nothing*2,mf_vfp_issue,mf_vfp_single_cycle")
8969 +
8970 +(define_insn_reservation "marvell_f_vfp_load" 2
8971 + (and (eq_attr "marvell_f_vfp" "yes")
8972 + (eq_attr "type" "f_loads,f_loadd"))
8973 + "a1_e2+sram,a1_of,a1_wr+mf_vfp_issue,a1_wb+mf_vfp_single_cycle")
8974 +
8975 +(define_insn_reservation "marvell_f_vfp_from_core" 2
8976 + (and (eq_attr "marvell_f_vfp" "yes")
8977 + (eq_attr "type" "r_2_f"))
8978 + "a1_e2,a1_of,a1_wr+mf_vfp_issue,a1_wb+mf_vfp_single_cycle")
8979 +
8980 +;; The interaction between the core and VFP pipelines during VFP
8981 +;; store operations and core <-> VFP moves is not clear, so we guess.
8982 +(define_insn_reservation "marvell_f_vfp_store" 3
8983 + (and (eq_attr "marvell_f_vfp" "yes")
8984 + (eq_attr "type" "f_stores,f_stored"))
8985 + "a1_e2,a1_of,mf_vfp_issue,a1_wr+sram+mf_vfp_single_cycle")
8986 +
8987 +(define_insn_reservation "marvell_f_vfp_to_core" 4
8988 + (and (eq_attr "marvell_f_vfp" "yes")
8989 + (eq_attr "type" "f_2_r"))
8990 + "a1_e2,a1_of,a1_wr+mf_vfp_issue,a1_wb+mf_vfp_single_cycle")
8991 +
8992 diff -Nur a/gcc/config/arm/montavista-linux.h b/gcc/config/arm/montavista-linux.h
8993 --- a/gcc/config/arm/montavista-linux.h 1970-01-01 01:00:00.000000000 +0100
8994 +++ b/gcc/config/arm/montavista-linux.h 2010-01-25 09:50:28.995687913 +0100
8995 @@ -0,0 +1,33 @@
8996 +/* MontaVista GNU/Linux Configuration.
8997 + Copyright (C) 2009
8998 + Free Software Foundation, Inc.
8999 +
9000 +This file is part of GCC.
9001 +
9002 +GCC is free software; you can redistribute it and/or modify
9003 +it under the terms of the GNU General Public License as published by
9004 +the Free Software Foundation; either version 3, or (at your option)
9005 +any later version.
9006 +
9007 +GCC is distributed in the hope that it will be useful,
9008 +but WITHOUT ANY WARRANTY; without even the implied warranty of
9009 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9010 +GNU General Public License for more details.
9011 +
9012 +You should have received a copy of the GNU General Public License
9013 +along with GCC; see the file COPYING3. If not see
9014 +<http://www.gnu.org/licenses/>. */
9015 +
9016 +/* Add -tarmv6 and -tthumb2 options for convenience in generating multilibs.
9017 +*/
9018 +#undef CC1_SPEC
9019 +#define CC1_SPEC " \
9020 + %{tarmv6: -march=armv6 -mfloat-abi=softfp ; \
9021 + tthumb2: -mthumb -march=armv7-a -mfloat-abi=softfp ; \
9022 + : -march=armv5t}"
9023 +
9024 +/* The various C libraries each have their own subdirectory. */
9025 +#undef SYSROOT_SUFFIX_SPEC
9026 +#define SYSROOT_SUFFIX_SPEC \
9027 + "%{tarmv6:/armv6 ; \
9028 + tthumb2:/thumb2}"
9029 diff -Nur a/gcc/config/arm/neon-gen.ml b/gcc/config/arm/neon-gen.ml
9030 --- a/gcc/config/arm/neon-gen.ml 2009-04-10 01:23:07.000000000 +0200
9031 +++ b/gcc/config/arm/neon-gen.ml 2010-01-25 09:50:28.995687913 +0100
9032 @@ -122,6 +122,7 @@
9033 | T_uint16 | T_int16 -> T_intHI
9034 | T_uint32 | T_int32 -> T_intSI
9035 | T_uint64 | T_int64 -> T_intDI
9036 + | T_float32 -> T_floatSF
9037 | T_poly8 -> T_intQI
9038 | T_poly16 -> T_intHI
9039 | T_arrayof (n, elt) -> T_arrayof (n, signed_ctype elt)
9040 @@ -320,7 +321,7 @@
9041 typeinfo;
9042 Format.print_newline ();
9043 (* Extra types not in <stdint.h>. *)
9044 - Format.printf "typedef __builtin_neon_sf float32_t;\n";
9045 + Format.printf "typedef float float32_t;\n";
9046 Format.printf "typedef __builtin_neon_poly8 poly8_t;\n";
9047 Format.printf "typedef __builtin_neon_poly16 poly16_t;\n"
9048
9049 @@ -399,7 +400,11 @@
9050 "extern \"C\" {";
9051 "#endif";
9052 "";
9053 +"#if defined (__vxworks) && defined (_WRS_KERNEL)";
9054 +"#include <vxWorks.h>";
9055 +"#else";
9056 "#include <stdint.h>";
9057 +"#endif";
9058 ""];
9059 deftypes ();
9060 arrtypes ();
9061 diff -Nur a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md
9062 --- a/gcc/config/arm/neon.md 2009-02-20 16:20:38.000000000 +0100
9063 +++ b/gcc/config/arm/neon.md 2010-01-25 09:50:28.995687913 +0100
9064 @@ -159,7 +159,8 @@
9065 (UNSPEC_VUZP1 201)
9066 (UNSPEC_VUZP2 202)
9067 (UNSPEC_VZIP1 203)
9068 - (UNSPEC_VZIP2 204)])
9069 + (UNSPEC_VZIP2 204)
9070 + (UNSPEC_MISALIGNED_ACCESS 205)])
9071
9072 ;; Double-width vector modes.
9073 (define_mode_iterator VD [V8QI V4HI V2SI V2SF])
9074 @@ -459,7 +460,9 @@
9075 "=w,Uv,w, w, ?r,?w,?r,?r, ?Us")
9076 (match_operand:VD 1 "general_operand"
9077 " w,w, Dn,Uvi, w, r, r, Usi,r"))]
9078 - "TARGET_NEON"
9079 + "TARGET_NEON
9080 + && (register_operand (operands[0], <MODE>mode)
9081 + || register_operand (operands[1], <MODE>mode))"
9082 {
9083 if (which_alternative == 2)
9084 {
9085 @@ -481,7 +484,7 @@
9086
9087 /* FIXME: If the memory layout is changed in big-endian mode, output_move_vfp
9088 below must be changed to output_move_neon (which will use the
9089 - element/structure loads/stores), and the constraint changed to 'Un' instead
9090 + element/structure loads/stores), and the constraint changed to 'Um' instead
9091 of 'Uv'. */
9092
9093 switch (which_alternative)
9094 @@ -506,7 +509,9 @@
9095 "=w,Un,w, w, ?r,?w,?r,?r, ?Us")
9096 (match_operand:VQXMOV 1 "general_operand"
9097 " w,w, Dn,Uni, w, r, r, Usi, r"))]
9098 - "TARGET_NEON"
9099 + "TARGET_NEON
9100 + && (register_operand (operands[0], <MODE>mode)
9101 + || register_operand (operands[1], <MODE>mode))"
9102 {
9103 if (which_alternative == 2)
9104 {
9105 @@ -549,6 +554,11 @@
9106 (match_operand:TI 1 "general_operand" ""))]
9107 "TARGET_NEON"
9108 {
9109 + if (can_create_pseudo_p ())
9110 + {
9111 + if (GET_CODE (operands[0]) != REG)
9112 + operands[1] = force_reg (TImode, operands[1]);
9113 + }
9114 })
9115
9116 (define_expand "mov<mode>"
9117 @@ -556,12 +566,19 @@
9118 (match_operand:VSTRUCT 1 "general_operand" ""))]
9119 "TARGET_NEON"
9120 {
9121 + if (can_create_pseudo_p ())
9122 + {
9123 + if (GET_CODE (operands[0]) != REG)
9124 + operands[1] = force_reg (<MODE>mode, operands[1]);
9125 + }
9126 })
9127
9128 (define_insn "*neon_mov<mode>"
9129 [(set (match_operand:VSTRUCT 0 "nonimmediate_operand" "=w,Ut,w")
9130 (match_operand:VSTRUCT 1 "general_operand" " w,w, Ut"))]
9131 - "TARGET_NEON"
9132 + "TARGET_NEON
9133 + && (register_operand (operands[0], <MODE>mode)
9134 + || register_operand (operands[1], <MODE>mode))"
9135 {
9136 switch (which_alternative)
9137 {
9138 @@ -658,6 +675,49 @@
9139 neon_disambiguate_copy (operands, dest, src, 4);
9140 })
9141
9142 +(define_expand "movmisalign<mode>"
9143 + [(set (match_operand:VDQX 0 "nonimmediate_operand" "")
9144 + (unspec:VDQX [(match_operand:VDQX 1 "general_operand" "")]
9145 + UNSPEC_MISALIGNED_ACCESS))]
9146 + "TARGET_NEON && !BYTES_BIG_ENDIAN"
9147 +{
9148 + if (!s_register_operand (operands[0], <MODE>mode)
9149 + && !s_register_operand (operands[1], <MODE>mode))
9150 + FAIL;
9151 +})
9152 +
9153 +(define_insn "*movmisalign<mode>_neon_store"
9154 + [(set (match_operand:VDX 0 "memory_operand" "=Um")
9155 + (unspec:VDX [(match_operand:VDX 1 "s_register_operand" " w")]
9156 + UNSPEC_MISALIGNED_ACCESS))]
9157 + "TARGET_NEON && !BYTES_BIG_ENDIAN"
9158 + "vst1.<V_sz_elem>\t{%P1}, %A0"
9159 + [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")])
9160 +
9161 +(define_insn "*movmisalign<mode>_neon_load"
9162 + [(set (match_operand:VDX 0 "s_register_operand" "=w")
9163 + (unspec:VDX [(match_operand:VDX 1 "memory_operand" " Um")]
9164 + UNSPEC_MISALIGNED_ACCESS))]
9165 + "TARGET_NEON && !BYTES_BIG_ENDIAN"
9166 + "vld1.<V_sz_elem>\t{%P0}, %A1"
9167 + [(set_attr "neon_type" "neon_vld1_1_2_regs")])
9168 +
9169 +(define_insn "*movmisalign<mode>_neon_store"
9170 + [(set (match_operand:VQX 0 "memory_operand" "=Um")
9171 + (unspec:VQX [(match_operand:VQX 1 "s_register_operand" " w")]
9172 + UNSPEC_MISALIGNED_ACCESS))]
9173 + "TARGET_NEON && !BYTES_BIG_ENDIAN"
9174 + "vst1.<V_sz_elem>\t{%q1}, %A0"
9175 + [(set_attr "neon_type" "neon_vst1_1_2_regs_vst2_2_regs")])
9176 +
9177 +(define_insn "*movmisalign<mode>_neon_load"
9178 + [(set (match_operand:VQX 0 "s_register_operand" "=w")
9179 + (unspec:VQX [(match_operand:VQX 1 "general_operand" " Um")]
9180 + UNSPEC_MISALIGNED_ACCESS))]
9181 + "TARGET_NEON && !BYTES_BIG_ENDIAN"
9182 + "vld1.<V_sz_elem>\t{%q0}, %A1"
9183 + [(set_attr "neon_type" "neon_vld1_1_2_regs")])
9184 +
9185 (define_insn "vec_set<mode>_internal"
9186 [(set (match_operand:VD 0 "s_register_operand" "=w")
9187 (vec_merge:VD
9188 @@ -862,6 +922,50 @@
9189 (const_string "neon_mul_qqq_8_16_32_ddd_32")))))]
9190 )
9191
9192 +(define_insn "*mul<mode>3add<mode>_neon"
9193 + [(set (match_operand:VDQ 0 "s_register_operand" "=w")
9194 + (plus:VDQ (mult:VDQ (match_operand:VDQ 2 "s_register_operand" "w")
9195 + (match_operand:VDQ 3 "s_register_operand" "w"))
9196 + (match_operand:VDQ 1 "s_register_operand" "0")))]
9197 + "TARGET_NEON"
9198 + "vmla.<V_if_elem>\t%<V_reg>0, %<V_reg>2, %<V_reg>3"
9199 + [(set (attr "neon_type")
9200 + (if_then_else (ne (symbol_ref "<Is_float_mode>") (const_int 0))
9201 + (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
9202 + (const_string "neon_fp_vmla_ddd")
9203 + (const_string "neon_fp_vmla_qqq"))
9204 + (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
9205 + (if_then_else
9206 + (ne (symbol_ref "<Scalar_mul_8_16>") (const_int 0))
9207 + (const_string "neon_mla_ddd_8_16_qdd_16_8_long_32_16_long")
9208 + (const_string "neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long"))
9209 + (if_then_else (ne (symbol_ref "<Scalar_mul_8_16>") (const_int 0))
9210 + (const_string "neon_mla_qqq_8_16")
9211 + (const_string "neon_mla_qqq_32_qqd_32_scalar")))))]
9212 +)
9213 +
9214 +(define_insn "*mul<mode>3neg<mode>add<mode>_neon"
9215 + [(set (match_operand:VDQ 0 "s_register_operand" "=w")
9216 + (minus:VDQ (match_operand:VDQ 1 "s_register_operand" "0")
9217 + (mult:VDQ (match_operand:VDQ 2 "s_register_operand" "w")
9218 + (match_operand:VDQ 3 "s_register_operand" "w"))))]
9219 + "TARGET_NEON"
9220 + "vmls.<V_if_elem>\t%<V_reg>0, %<V_reg>2, %<V_reg>3"
9221 + [(set (attr "neon_type")
9222 + (if_then_else (ne (symbol_ref "<Is_float_mode>") (const_int 0))
9223 + (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
9224 + (const_string "neon_fp_vmla_ddd")
9225 + (const_string "neon_fp_vmla_qqq"))
9226 + (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
9227 + (if_then_else
9228 + (ne (symbol_ref "<Scalar_mul_8_16>") (const_int 0))
9229 + (const_string "neon_mla_ddd_8_16_qdd_16_8_long_32_16_long")
9230 + (const_string "neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long"))
9231 + (if_then_else (ne (symbol_ref "<Scalar_mul_8_16>") (const_int 0))
9232 + (const_string "neon_mla_qqq_8_16")
9233 + (const_string "neon_mla_qqq_32_qqd_32_scalar")))))]
9234 +)
9235 +
9236 (define_insn "ior<mode>3"
9237 [(set (match_operand:VDQ 0 "s_register_operand" "=w,w")
9238 (ior:VDQ (match_operand:VDQ 1 "s_register_operand" "w,0")
9239 @@ -3611,7 +3715,8 @@
9240 UNSPEC_VSHLL_N))]
9241 "TARGET_NEON"
9242 {
9243 - neon_const_bounds (operands[2], 0, neon_element_bits (<MODE>mode));
9244 + /* The boundaries are: 0 < imm <= size. */
9245 + neon_const_bounds (operands[2], 0, neon_element_bits (<MODE>mode) + 1);
9246 return "vshll.%T3%#<V_sz_elem>\t%q0, %P1, %2";
9247 }
9248 [(set_attr "neon_type" "neon_shift_1")]
9249 diff -Nur a/gcc/config/arm/neon.ml b/gcc/config/arm/neon.ml
9250 --- a/gcc/config/arm/neon.ml 2007-08-02 12:49:31.000000000 +0200
9251 +++ b/gcc/config/arm/neon.ml 2010-01-25 09:50:28.995687913 +0100
9252 @@ -50,7 +50,7 @@
9253 | T_ptrto of vectype | T_const of vectype
9254 | T_void | T_intQI
9255 | T_intHI | T_intSI
9256 - | T_intDI
9257 + | T_intDI | T_floatSF
9258
9259 (* The meanings of the following are:
9260 TImode : "Tetra", two registers (four words).
9261 @@ -1693,6 +1693,7 @@
9262 | T_intHI -> "__builtin_neon_hi"
9263 | T_intSI -> "__builtin_neon_si"
9264 | T_intDI -> "__builtin_neon_di"
9265 + | T_floatSF -> "__builtin_neon_sf"
9266 | T_arrayof (num, base) ->
9267 let basename = name (fun x -> x) base in
9268 affix (Printf.sprintf "%sx%d" basename num)
9269 diff -Nur a/gcc/config/arm/neon-testgen.ml b/gcc/config/arm/neon-testgen.ml
9270 --- a/gcc/config/arm/neon-testgen.ml 2007-08-02 12:49:31.000000000 +0200
9271 +++ b/gcc/config/arm/neon-testgen.ml 2010-01-25 09:50:28.995687913 +0100
9272 @@ -51,8 +51,8 @@
9273 Printf.fprintf chan "/* This file was autogenerated by neon-testgen. */\n\n";
9274 Printf.fprintf chan "/* { dg-do assemble } */\n";
9275 Printf.fprintf chan "/* { dg-require-effective-target arm_neon_ok } */\n";
9276 - Printf.fprintf chan
9277 - "/* { dg-options \"-save-temps -O0 -mfpu=neon -mfloat-abi=softfp\" } */\n";
9278 + Printf.fprintf chan "/* { dg-options \"-save-temps -O0\" } */\n";
9279 + Printf.fprintf chan "/* { dg-add-options arm_neon } */\n";
9280 Printf.fprintf chan "\n#include \"arm_neon.h\"\n\n";
9281 Printf.fprintf chan "void test_%s (void)\n{\n" test_name
9282
9283 diff -Nur a/gcc/config/arm/netbsd-elf.h b/gcc/config/arm/netbsd-elf.h
9284 --- a/gcc/config/arm/netbsd-elf.h 2007-08-02 12:49:31.000000000 +0200
9285 +++ b/gcc/config/arm/netbsd-elf.h 2010-01-25 09:50:28.995687913 +0100
9286 @@ -153,5 +153,5 @@
9287 while (0)
9288
9289 #undef FPUTYPE_DEFAULT
9290 -#define FPUTYPE_DEFAULT FPUTYPE_VFP
9291 +#define FPUTYPE_DEFAULT "vfp"
9292
9293 diff -Nur a/gcc/config/arm/nocrt0.h b/gcc/config/arm/nocrt0.h
9294 --- a/gcc/config/arm/nocrt0.h 1970-01-01 01:00:00.000000000 +0100
9295 +++ b/gcc/config/arm/nocrt0.h 2010-01-25 09:50:28.995687913 +0100
9296 @@ -0,0 +1,25 @@
9297 +/* Definitions for generic libgloss based cofigs where crt0 is supplied by
9298 + the linker script.
9299 + Copyright (C) 2006 Free Software Foundation, Inc.
9300 +
9301 + This file is part of GCC.
9302 +
9303 + GCC is free software; you can redistribute it and/or modify it
9304 + under the terms of the GNU General Public License as published
9305 + by the Free Software Foundation; either version 3, or (at your
9306 + option) any later version.
9307 +
9308 + GCC is distributed in the hope that it will be useful, but WITHOUT
9309 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
9310 + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
9311 + License for more details.
9312 +
9313 + You should have received a copy of the GNU General Public License
9314 + along with GCC; see the file COPYING3. If not see
9315 + <http://www.gnu.org/licenses/>. */
9316 +
9317 +#undef STARTFILE_SPEC
9318 +#define STARTFILE_SPEC " crti%O%s crtbegin%O%s"
9319 +
9320 +#undef LIB_SPEC
9321 +#define LIB_SPEC "-lc"
9322 diff -Nur a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md
9323 --- a/gcc/config/arm/predicates.md 2009-02-20 16:20:38.000000000 +0100
9324 +++ b/gcc/config/arm/predicates.md 2010-01-25 09:50:28.995687913 +0100
9325 @@ -73,6 +73,10 @@
9326 || REGNO_REG_CLASS (REGNO (op)) == FPA_REGS));
9327 })
9328
9329 +(define_special_predicate "subreg_lowpart_operator"
9330 + (and (match_code "subreg")
9331 + (match_test "subreg_lowpart_p (op)")))
9332 +
9333 ;; Reg, subreg(reg) or const_int.
9334 (define_predicate "reg_or_int_operand"
9335 (ior (match_code "const_int")
9336 @@ -168,6 +172,11 @@
9337 (and (match_code "plus,minus,ior,xor,and")
9338 (match_test "mode == GET_MODE (op)")))
9339
9340 +;; True for plus/minus operators
9341 +(define_special_predicate "plusminus_operator"
9342 + (and (match_code "plus,minus")
9343 + (match_test "mode == GET_MODE (op)")))
9344 +
9345 ;; True for logical binary operators.
9346 (define_special_predicate "logical_binary_operator"
9347 (and (match_code "ior,xor,and")
9348 @@ -295,6 +304,9 @@
9349 HOST_WIDE_INT i = 1, base = 0;
9350 rtx elt;
9351
9352 + if (low_irq_latency)
9353 + return false;
9354 +
9355 if (count <= 1
9356 || GET_CODE (XVECEXP (op, 0, 0)) != SET)
9357 return false;
9358 @@ -352,6 +364,9 @@
9359 HOST_WIDE_INT i = 1, base = 0;
9360 rtx elt;
9361
9362 + if (low_irq_latency)
9363 + return false;
9364 +
9365 if (count <= 1
9366 || GET_CODE (XVECEXP (op, 0, 0)) != SET)
9367 return false;
9368 diff -Nur a/gcc/config/arm/sfp-machine.h b/gcc/config/arm/sfp-machine.h
9369 --- a/gcc/config/arm/sfp-machine.h 2008-03-03 15:30:48.000000000 +0100
9370 +++ b/gcc/config/arm/sfp-machine.h 2010-01-25 09:50:28.995687913 +0100
9371 @@ -14,9 +14,11 @@
9372 #define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
9373 #define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
9374
9375 +#define _FP_NANFRAC_H ((_FP_QNANBIT_H << 1) - 1)
9376 #define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
9377 #define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
9378 #define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
9379 +#define _FP_NANSIGN_H 0
9380 #define _FP_NANSIGN_S 0
9381 #define _FP_NANSIGN_D 0
9382 #define _FP_NANSIGN_Q 0
9383 @@ -92,5 +94,7 @@
9384 #define __fixdfdi __aeabi_d2lz
9385 #define __fixunsdfdi __aeabi_d2ulz
9386 #define __floatdidf __aeabi_l2d
9387 +#define __extendhfsf2 __gnu_h2f_ieee
9388 +#define __truncsfhf2 __gnu_f2h_ieee
9389
9390 #endif /* __ARM_EABI__ */
9391 diff -Nur a/gcc/config/arm/t-arm b/gcc/config/arm/t-arm
9392 --- a/gcc/config/arm/t-arm 2008-03-27 20:20:18.000000000 +0100
9393 +++ b/gcc/config/arm/t-arm 2010-01-25 09:50:28.995687913 +0100
9394 @@ -13,7 +13,9 @@
9395 $(srcdir)/config/arm/iwmmxt.md \
9396 $(srcdir)/config/arm/vfp.md \
9397 $(srcdir)/config/arm/neon.md \
9398 - $(srcdir)/config/arm/thumb2.md
9399 + $(srcdir)/config/arm/thumb2.md \
9400 + $(srcdir)/config/arm/marvell-f.md \
9401 + $(srcdir)/config/arm/hwdiv.md
9402
9403 s-config s-conditions s-flags s-codes s-constants s-emit s-recog s-preds \
9404 s-opinit s-extract s-peep s-attr s-attrtab s-output: $(MD_INCLUDES)
9405 diff -Nur a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf
9406 --- a/gcc/config/arm/t-arm-elf 2008-06-12 19:29:47.000000000 +0200
9407 +++ b/gcc/config/arm/t-arm-elf 2010-01-25 09:50:28.995687913 +0100
9408 @@ -24,10 +24,18 @@
9409 #MULTILIB_MATCHES += march?armv7=march?armv7-a
9410 #MULTILIB_MATCHES += march?armv7=march?armv7-r
9411 #MULTILIB_MATCHES += march?armv7=march?armv7-m
9412 +#MULTILIB_MATCHES += march?armv7=march?armv7e-m
9413 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
9414 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
9415 #MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
9416
9417 +# Not quite true. We can support hard-vfp calling in Thumb2, but how do we
9418 +# express that here? Also, we really need architecture v5e or later
9419 +# (mcrr etc).
9420 +MULTILIB_OPTIONS += mfloat-abi=hard
9421 +MULTILIB_DIRNAMES += fpu
9422 +MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
9423 +
9424 # MULTILIB_OPTIONS += mcpu=ep9312
9425 # MULTILIB_DIRNAMES += ep9312
9426 # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
9427 diff -Nur a/gcc/config/arm/t-asa b/gcc/config/arm/t-asa
9428 --- a/gcc/config/arm/t-asa 1970-01-01 01:00:00.000000000 +0100
9429 +++ b/gcc/config/arm/t-asa 2010-01-25 09:50:28.995687913 +0100
9430 @@ -0,0 +1,45 @@
9431 +# Overrides for ASA
9432 +
9433 +# Here is the expected output from xgcc -print-multi-lib.
9434 +#
9435 +# .;@fno-omit-frame-pointer@mapcs-frame
9436 +# armv4t;@march=armv4t@fno-omit-frame-pointer@mapcs-frame
9437 +# armv6;@march=armv6@fno-omit-frame-pointer@mapcs-frame
9438 +# armv7a;@march=armv7-a@fno-omit-frame-pointer@mapcs-frame
9439 +# armv6f;@march=armv6@mfloat-abi=softfp@fno-omit-frame-pointer@mapcs-frame
9440 +# armv7af;@march=armv7-a@mfpu=neon@mfloat-abi=softfp@fno-omit-frame-pointer@mapcs-frame
9441 +# thumb2;@mthumb@march=armv7-a@fno-omit-frame-pointer@mapcs-frame
9442 +# thumb2f;@mthumb@march=armv7-a@mfpu=neon@mfloat-abi=softfp@fno-omit-frame-pointer@mapcs-frame
9443 +
9444 +MULTILIB_OPTIONS = mthumb march=armv4t/march=armv6/march=armv7-a mfpu=neon mfloat-abi=softfp
9445 +MULTILIB_DIRNAMES = thumb v4t v6 v7a neon softfp
9446 +MULTILIB_MATCHES =
9447 +
9448 +MULTILIB_EXTRA_OPTS = fno-omit-frame-pointer mapcs-frame
9449 +
9450 +MULTILIB_EXCEPTIONS = mthumb
9451 +MULTILIB_EXCEPTIONS += mfpu=neon*
9452 +MULTILIB_EXCEPTIONS += mfloat-abi=softfp
9453 +MULTILIB_EXCEPTIONS += *march=armv4t*/*mfpu=neon*
9454 +MULTILIB_EXCEPTIONS += *march=armv4t*/*mfloat-abi=softfp*
9455 +MULTILIB_EXCEPTIONS += march=armv6/*mfpu=neon*
9456 +MULTILIB_EXCEPTIONS += mthumb/mfpu=neon
9457 +MULTILIB_EXCEPTIONS += mthumb/mfloat-abi=softfp
9458 +MULTILIB_EXCEPTIONS += mthumb/mfpu=neon*
9459 +MULTILIB_EXCEPTIONS += mthumb/march=armv6/mfpu=neon*
9460 +
9461 +MULTILIB_OSDIRNAMES = march.armv4t=!armv4t
9462 +MULTILIB_OSDIRNAMES += march.armv6=!armv6
9463 +MULTILIB_OSDIRNAMES += march.armv6/mfloat-abi.softfp=!armv6f
9464 +MULTILIB_OSDIRNAMES += march.armv7-a=!armv7a
9465 +MULTILIB_OSDIRNAMES += march.armv7-a/mfpu.neon/mfloat-abi.softfp=!armv7af
9466 +MULTILIB_OSDIRNAMES += mthumb/march.armv7-a=!thumb2
9467 +MULTILIB_OSDIRNAMES += mthumb/march.armv7-a/mfpu.neon/mfloat-abi.softfp=!thumb2f
9468 +
9469 +MULTILIB_ALIASES = march?armv4t=mthumb/march?armv4t
9470 +MULTILIB_ALIASES += march?armv6=mthumb/march?armv6
9471 +MULTILIB_ALIASES += march?armv6/mfloat-abi?softfp=mthumb/march?armv6/mfloat-abi?softfp
9472 +MULTILIB_ALIASES += march?armv7-a/mfpu?neon/mfloat-abi?softfp=march?armv7-a/mfpu?neon
9473 +MULTILIB_ALIASES += march?armv7-a/mfpu?neon/mfloat-abi?softfp=march?armv7-a/mfloat-abi?softfp
9474 +MULTILIB_ALIASES += mthumb/march?armv7-a/mfpu?neon/mfloat-abi?softfp=mthumb/march?armv7-a/mfpu?neon
9475 +MULTILIB_ALIASES += mthumb/march?armv7-a/mfpu?neon/mfloat-abi?softfp=mthumb/march?armv7-a/mfloat-abi?softfp
9476 diff -Nur a/gcc/config/arm/t-bpabi b/gcc/config/arm/t-bpabi
9477 --- a/gcc/config/arm/t-bpabi 2005-11-04 15:51:20.000000000 +0100
9478 +++ b/gcc/config/arm/t-bpabi 2010-01-25 09:50:28.995687913 +0100
9479 @@ -1,10 +1,13 @@
9480 # Add the bpabi.S functions.
9481 -LIB1ASMFUNCS += _aeabi_lcmp _aeabi_ulcmp _aeabi_ldivmod _aeabi_uldivmod
9482 +LIB1ASMFUNCS += _aeabi_lcmp _aeabi_ulcmp _aeabi_ldivmod _aeabi_uldivmod \
9483 + _aeabi_idiv0 _aeabi_ldiv0
9484
9485 # Add the BPABI C functions.
9486 LIB2FUNCS_EXTRA = $(srcdir)/config/arm/bpabi.c \
9487 $(srcdir)/config/arm/unaligned-funcs.c
9488
9489 +LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/arm/fp16.c
9490 +
9491 UNWIND_H = $(srcdir)/config/arm/unwind-arm.h
9492 LIB2ADDEH = $(srcdir)/config/arm/unwind-arm.c \
9493 $(srcdir)/config/arm/libunwind.S \
9494 diff -Nur a/gcc/config/arm/t-cs-eabi b/gcc/config/arm/t-cs-eabi
9495 --- a/gcc/config/arm/t-cs-eabi 1970-01-01 01:00:00.000000000 +0100
9496 +++ b/gcc/config/arm/t-cs-eabi 2010-01-25 09:50:28.995687913 +0100
9497 @@ -0,0 +1,198 @@
9498 +# Multilibs for SourceryG++ arm-none-eabi
9499 +
9500 +MULTILIB_OPTIONS = mthumb
9501 +MULTILIB_DIRNAMES = t
9502 +MULTILIB_EXCEPTIONS =
9503 +MULTILIB_MATCHES =
9504 +MULTILIB_ALIASES =
9505 +
9506 +MULTILIB_OPTIONS += march=armv7/march=armv7-a/march=armv5te/march=armv6-m
9507 +MULTILIB_DIRNAMES += v7 v7a v5te v6m
9508 +MULTILIB_MATCHES += march?armv7-a=march?armv7a
9509 +MULTILIB_MATCHES += march?armv7=march?armv7r
9510 +MULTILIB_MATCHES += march?armv7=march?armv7m
9511 +MULTILIB_MATCHES += march?armv7=march?armv7-r
9512 +MULTILIB_MATCHES += march?armv7=march?armv7-m
9513 +MULTILIB_MATCHES += march?armv7=march?armv7e-m
9514 +MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a9
9515 +MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a8
9516 +MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a5
9517 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
9518 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f
9519 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
9520 +MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m1
9521 +MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m0
9522 +MULTILIB_MATCHES += march?armv5te=march?armv6
9523 +MULTILIB_MATCHES += march?armv5te=march?armv6j
9524 +MULTILIB_MATCHES += march?armv5te=march?armv6k
9525 +MULTILIB_MATCHES += march?armv5te=march?armv6z
9526 +MULTILIB_MATCHES += march?armv5te=march?armv6zk
9527 +MULTILIB_MATCHES += march?armv5te=march?armv6t2
9528 +MULTILIB_MATCHES += march?armv5te=march?iwmmxt
9529 +MULTILIB_MATCHES += march?armv5te=march?iwmmxt2
9530 +MULTILIB_MATCHES += march?armv5te=mcpu?arm9e
9531 +MULTILIB_MATCHES += march?armv5te=mcpu?arm946e-s
9532 +MULTILIB_MATCHES += march?armv5te=mcpu?arm966e-s
9533 +MULTILIB_MATCHES += march?armv5te=mcpu?arm968e-s
9534 +MULTILIB_MATCHES += march?armv5te=mcpu?arm10e
9535 +MULTILIB_MATCHES += march?armv5te=mcpu?arm1020e
9536 +MULTILIB_MATCHES += march?armv5te=mcpu?arm1022e
9537 +MULTILIB_MATCHES += march?armv5te=mcpu?xscale
9538 +MULTILIB_MATCHES += march?armv5te=mcpu?iwmmxt
9539 +MULTILIB_MATCHES += march?armv5te=mcpu?iwmmxt2
9540 +MULTILIB_MATCHES += march?armv5te=mcpu?marvell-f
9541 +MULTILIB_MATCHES += march?armv5te=mcpu?arm926ej-s
9542 +MULTILIB_MATCHES += march?armv5te=mcpu?arm1026ej-s
9543 +MULTILIB_MATCHES += march?armv5te=mcpu?arm1136j-s
9544 +MULTILIB_MATCHES += march?armv5te=mcpu?arm1136jf-s
9545 +MULTILIB_MATCHES += march?armv5te=mcpu?arm1176jz-s
9546 +MULTILIB_MATCHES += march?armv5te=mcpu?arm1176jzf-s
9547 +MULTILIB_MATCHES += march?armv5te=mcpu?mpcorenovfp
9548 +MULTILIB_MATCHES += march?armv5te=mcpu?mpcore
9549 +MULTILIB_MATCHES += march?armv5te=mcpu?arm1156t2-s
9550 +
9551 +MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard
9552 +MULTILIB_DIRNAMES += softfp hard
9553 +MULTILIB_MATCHES += mfloat-abi?hard=mhard-float
9554 +
9555 +MULTILIB_OPTIONS += mfpu=neon
9556 +MULTILIB_DIRNAMES += neon
9557 +MULTILIB_EXCEPTIONS += mfpu=neon
9558 +MULTILIB_MATCHES += mfpu?neon=mfpu?neon-fp16
9559 +MULTILIB_MATCHES += mfpu?neon=mfpu?neon-vfpv4
9560 +
9561 +MULTILIB_ALIASES += mthumb=mthumb/mfpu?neon
9562 +MULTILIB_ALIASES += mthumb=mthumb/march?armv5te/mfpu?neon
9563 +MULTILIB_ALIASES += mbig-endian=mthumb/mfpu?neon/mbig-endian
9564 +#MULTILIB_ALIASES += mfloat-abi?softfp=mthumb/mfloat-abi?softfp/mfpu?neon
9565 +#MULTILIB_ALIASES += mfloat-abi?softfp=mfloat-abi?softfp/mfpu?neon
9566 +#MULTILIB_ALIASES += mfloat-abi?softfp/mbig-endian=mfloat-abi?softfp/mfpu?neon/mbig-endian
9567 +#MULTILIB_ALIASES += mfloat-abi?softfp/mbig-endian=mthumb/mfloat-abi?softfp/mfpu?neon/mbig-endian
9568 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7-a/mfpu?neon
9569 +MULTILIB_ALIASES += mthumb/march?armv7/mbig-endian=mthumb/march?armv7-a/mfpu?neon/mbig-endian
9570 +MULTILIB_ALIASES += march?armv7-a/mfloat-abi?softfp/mfpu?neon=mthumb/march?armv7-a/mfloat-abi?softfp/mfpu?neon
9571 +MULTILIB_ALIASES += march?armv7-a/mfloat-abi?hard/mfpu?neon=mthumb/march?armv7-a/mfloat-abi?hard/mfpu?neon
9572 +
9573 +MULTILIB_OPTIONS += mbig-endian
9574 +MULTILIB_DIRNAMES += be
9575 +MULTILIB_ALIASES += mbig-endian=mfpu?neon/mbig-endian
9576 +
9577 +# ARMv6-M does not have ARM mode.
9578 +MULTILIB_EXCEPTIONS += march=armv6-m
9579 +
9580 +# Some ARMv7 variants have ARM mode. Use the ARM libraries.
9581 +MULTILIB_EXCEPTIONS += march=armv7 march=armv7/*
9582 +MULTILIB_ALIASES += mbig-endian=march?armv7/mbig-endian
9583 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp=march?armv7/mfloat-abi?softfp
9584 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp=march?armv7/mfloat-abi?softfp/mfpu?neon
9585 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp/mbig-endian=march?armv7/mfloat-abi?softfp/mbig-endian
9586 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp/mbig-endian=march?armv7/mfloat-abi?softfp/mfpu?neon/mbig-endian
9587 +MULTILIB_ALIASES += mbig-endian=march?armv7/mfpu?neon/mbig-endian
9588 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7/mfloat-abi?softfp/mfpu?neon
9589 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7/mfpu?neon
9590 +MULTILIB_ALIASES += mthumb/march?armv7/mbig-endian=mthumb/march?armv7/mfpu?neon/mbig-endian
9591 +MULTILIB_ALIASES += mthumb/march?armv7/mbig-endian=mthumb/march?armv7/mfloat-abi?softfp/mfpu?neon/mbig-endian
9592 +
9593 +# ARMv7-A is specially useful used with VFPv3 (enabled by NEON). Rest of the cases behaves as ARMv7.
9594 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7-a
9595 +MULTILIB_ALIASES += mbig-endian=march?armv7-a/mbig-endian
9596 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp/mbig-endian=march?armv7-a/mfloat-abi?softfp/mbig-endian
9597 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp/mbig-endian=march?armv7-a/mfloat-abi?softfp/mfpu?neon/mbig-endian
9598 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7-a/mfloat-abi?softfp
9599 +MULTILIB_ALIASES += mthumb/march?armv7/mbig-endian=mthumb/march?armv7-a/mbig-endian
9600 +MULTILIB_ALIASES += mthumb/march?armv7/mbig-endian=mthumb/march?armv7-a/mfloat-abi?softfp/mbig-endian
9601 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7/mfloat-abi?softfp
9602 +MULTILIB_ALIASES += march?armv5te=march?armv7-a
9603 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp=march?armv7-a/mfloat-abi?softfp
9604 +MULTILIB_ALIASES += march?armv5te=march?armv7-a/mfpu?neon
9605 +MULTILIB_ALIASES += mbig-endian=march?armv7-a/mfpu?neon/mbig-endian
9606 +MULTILIB_ALIASES += mthumb/march?armv7/mbig-endian=mthumb/march?armv7-a/mfloat-abi?softfp/mfpu?neon/mbig-endian
9607 +
9608 +# ARMv5T thumb uses the ARMv5T ARM libraries (with or without VFP).
9609 +MULTILIB_ALIASES += mthumb=mthumb/march?armv5te
9610 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp=mthumb/march?armv5te/mfloat-abi?softfp
9611 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp=march?armv5te/mfloat-abi?softfp/mfpu?neon
9612 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp=mthumb/march?armv5te/mfloat-abi?softfp/mfpu?neon
9613 +MULTILIB_ALIASES += march?armv5te=march?armv5te/mfpu?neon
9614 +MULTILIB_ALIASES += mbig-endian=march?armv5te/mfpu?neon/mbig-endian
9615 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp/mbig-endian=march?armv5te/mfloat-abi?softfp/mfpu?neon/mbig-endian
9616 +MULTILIB_ALIASES += mbig-endian=mthumb/march?armv5te/mfpu?neon/mbig-endian
9617 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp/mbig-endian=mthumb/march?armv5te/mfloat-abi?softfp/mfpu?neon/mbig-endian
9618 +
9619 +# ARMv6-M and VFP are incompatible.
9620 +# FIXME: The compiler should probably error.
9621 +MULTILIB_EXCEPTIONS += *march=armv6-m/mfloat-abi=softfp
9622 +MULTILIB_ALIASES += mthumb/march?armv6-m=mthumb/march?armv6-m/mfpu?neon
9623 +MULTILIB_EXCEPTIONS += march=armv6-m*mfpu=neon
9624 +MULTILIB_EXCEPTIONS += mthumb/march=armv6-m/mfloat-abi=softfp/mfpu=neon
9625 +
9626 +# ARMv4t VFP isn't really supported, so use the soft-float libraries.
9627 +MULTILIB_EXCEPTIONS += mfloat-abi?softfp
9628 +MULTILIB_EXCEPTIONS += mfloat-abi?softfp/mfpu?neon
9629 +MULTILIB_ALIASES += mthumb=mthumb/mfloat-abi?softfp
9630 +MULTILIB_ALIASES += mthumb=mthumb/mfloat-abi?softfp/mfpu?neon
9631 +
9632 +MULTILIB_ALIASES += mbig-endian=mfloat-abi?softfp/mbig-endian
9633 +MULTILIB_ALIASES += mbig-endian=mfloat-abi?softfp/mfpu?neon/mbig-endian
9634 +MULTILIB_ALIASES += mbig-endian=mthumb/mfloat-abi?softfp/mbig-endian
9635 +MULTILIB_ALIASES += mbig-endian=mthumb/mfloat-abi?softfp/mfpu?neon/mbig-endian
9636 +
9637 +# We don't have a big-endian ARMv6-M compatible multilibs.
9638 +MULTILIB_EXCEPTIONS += *march=armv6-m*mbig-endian
9639 +
9640 +# Use the generic libraries for big-endian ARMv5T
9641 +MULTILIB_ALIASES += mbig-endian=march?armv5te/mbig-endian
9642 +MULTILIB_ALIASES += mbig-endian=mfloat-abi?softfp/mbig-endian
9643 +MULTILIB_ALIASES += mbig-endian=mthumb/march?armv5te/mbig-endian
9644 +MULTILIB_ALIASES += march?armv5te/mfloat-abi?softfp/mbig-endian=mthumb/march?armv5te/mfloat-abi?softfp/mbig-endian
9645 +
9646 +# Use ARM libraries for big-endian Thumb.
9647 +MULTILIB_ALIASES += mbig-endian=mthumb/mbig-endian
9648 +
9649 +# Don't bother with big-endian Thumb-2 VFP. Use the soft-float libraries
9650 +# for now.
9651 +MULTILIB_ALIASES += mthumb/march?armv7/mbig-endian=mthumb/march?armv7/mfloat-abi?softfp/mbig-endian
9652 +
9653 +# The only -mfloat-abi=hard libraries provided are for little-endian
9654 +# v7-A NEON.
9655 +MULTILIB_EXCEPTIONS += mfloat-abi=hard*
9656 +MULTILIB_EXCEPTIONS += *march=armv5te*mfloat-abi=hard*
9657 +MULTILIB_EXCEPTIONS += *march=armv7/*mfloat-abi=hard*
9658 +MULTILIB_EXCEPTIONS += *march=armv6-m*mfloat-abi=hard*
9659 +MULTILIB_EXCEPTIONS += mthumb/mfloat-abi=hard*
9660 +MULTILIB_EXCEPTIONS += *mfloat-abi=hard*mbig-endian
9661 +MULTILIB_EXCEPTIONS += *mfloat-abi=hard
9662 +
9663 +# FIXME: We need a sane way of doing this.
9664 +# This isn't really a multilib, it's a hack to add an extra option
9665 +# to the v7-m multilib.
9666 +MULTILIB_OPTIONS += mfix-cortex-m3-ldrd
9667 +MULTILIB_DIRNAMES += broken_ldrd
9668 +
9669 +MULTILIB_EXCEPTIONS += mfix-cortex-m3-ldrd
9670 +MULTILIB_EXCEPTIONS += mthumb/mfix-cortex-m3-ldrd
9671 +MULTILIB_EXCEPTIONS += *march=armv6-m*mfix-cortex-m3-ldrd
9672 +MULTILIB_EXCEPTIONS += *march=armv7-a*mfix-cortex-m3-ldrd
9673 +MULTILIB_EXCEPTIONS += *mcpu=*mfix-cortex-m3-ldrd
9674 +MULTILIB_EXCEPTIONS += *mbig-endian*mfix-cortex-m3-ldrd
9675 +MULTILIB_EXCEPTIONS += *mfloat-abi=softfp*mfix-cortex-m3-ldrd
9676 +MULTILIB_EXCEPTIONS += *march=armv5te*mfix-cortex-m3-ldrd
9677 +MULTILIB_EXCEPTIONS += *mfpu=neon*mfix-cortex-m3-ldrd
9678 +
9679 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7
9680 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7-a/mfix-cortex-m3-ldrd
9681 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7/mfpu?neon/mfix-cortex-m3-ldrd
9682 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7-a/mfpu?neon/mfix-cortex-m3-ldrd
9683 +
9684 +# As of at least 4.2, gcc passes the wrong -L options if some multilibs are
9685 +# omitted from MULTILIB_OSDIRNAMES
9686 +MULTILIB_OSDIRNAMES = mthumb=!thumb
9687 +MULTILIB_OSDIRNAMES += mbig-endian=!be
9688 +MULTILIB_OSDIRNAMES += march.armv5te=!armv5te
9689 +MULTILIB_OSDIRNAMES += march.armv5te/mfloat-abi.softfp=!vfp
9690 +MULTILIB_OSDIRNAMES += march.armv5te/mfloat-abi.softfp/mbig-endian=!vfp-be
9691 +MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfix-cortex-m3-ldrd=!thumb2
9692 +MULTILIB_OSDIRNAMES += march.armv7-a/mfloat-abi.softfp/mfpu.neon=!armv7-a-neon
9693 +MULTILIB_OSDIRNAMES += march.armv7-a/mfloat-abi.hard/mfpu.neon=!armv7-a-hard
9694 +MULTILIB_OSDIRNAMES += mthumb/march.armv7/mbig-endian=!thumb2-be
9695 +MULTILIB_OSDIRNAMES += mthumb/march.armv6-m=!armv6-m
9696 diff -Nur a/gcc/config/arm/t-cs-eabi-lite b/gcc/config/arm/t-cs-eabi-lite
9697 --- a/gcc/config/arm/t-cs-eabi-lite 1970-01-01 01:00:00.000000000 +0100
9698 +++ b/gcc/config/arm/t-cs-eabi-lite 2010-01-25 09:50:28.995687913 +0100
9699 @@ -0,0 +1,47 @@
9700 +# We build 4 multilibs:
9701 +# ./ (default)
9702 +# thumb/ -mthumb
9703 +# thumb2/ -mthumb -march=armv7
9704 +# armv6-m/ -mthumb -march=armv6-m
9705 +
9706 +MULTILIB_OPTIONS = mthumb
9707 +MULTILIB_DIRNAMES = thumb
9708 +MULTILIB_EXCEPTIONS =
9709 +MULTILIB_MATCHES =
9710 +MULTILIB_ALIASES =
9711 +
9712 +MULTILIB_OPTIONS += march=armv7/march=armv6-m
9713 +MULTILIB_DIRNAMES += v7 v6-m
9714 +MULTILIB_EXCEPTIONS += march=armv7*
9715 +MULTILIB_MATCHES += march?armv7=march?armv7-a
9716 +MULTILIB_MATCHES += march?armv7=march?armv7-r
9717 +MULTILIB_MATCHES += march?armv7=march?armv7-m
9718 +MULTILIB_MATCHES += march?armv7=march?armv7e-m
9719 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9
9720 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
9721 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a5
9722 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
9723 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f
9724 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
9725 +
9726 +MULTILIB_EXCEPTIONS += march=armv6-m
9727 +MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m1
9728 +MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m0
9729 +
9730 +# FIXME: We need a sane way of doing this.
9731 +# This isn't really a multilib, it's a hack to add an extra option
9732 +# to the v7-m multilib.
9733 +MULTILIB_OPTIONS += mfix-cortex-m3-ldrd
9734 +MULTILIB_DIRNAMES += broken_ldrd
9735 +
9736 +MULTILIB_EXCEPTIONS += mfix-cortex-m3-ldrd
9737 +MULTILIB_EXCEPTIONS += mthumb/mfix-cortex-m3-ldrd
9738 +MULTILIB_EXCEPTIONS += *march=armv6-m*mfix-cortex-m3-ldrd
9739 +
9740 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7
9741 +
9742 +# As of at least 4.2, gcc passes the wrong -L options if some multilibs are
9743 +# omitted from MULTILIB_OSDIRNAMES
9744 +MULTILIB_OSDIRNAMES = mthumb=!thumb
9745 +MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfix-cortex-m3-ldrd=!thumb2
9746 +MULTILIB_OSDIRNAMES += mthumb/march.armv6-m=!armv6-m
9747 diff -Nur a/gcc/config/arm/t-cs-linux b/gcc/config/arm/t-cs-linux
9748 --- a/gcc/config/arm/t-cs-linux 1970-01-01 01:00:00.000000000 +0100
9749 +++ b/gcc/config/arm/t-cs-linux 2010-01-25 09:50:28.995687913 +0100
9750 @@ -0,0 +1,112 @@
9751 +# Multilibs for SourceryG++ arm-none-linux-gnueabi
9752 +
9753 +MULTILIB_OPTIONS = mthumb
9754 +MULTILIB_DIRNAMES = t
9755 +MULTILIB_EXCEPTIONS =
9756 +MULTILIB_MATCHES =
9757 +MULTILIB_ALIASES =
9758 +
9759 +MULTILIB_OPTIONS += march=armv4t/march=armv7-a
9760 +MULTILIB_DIRNAMES += v4t v7a
9761 +
9762 +MULTILIB_MATCHES += march?armv7-a=march?armv7a
9763 +MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a9
9764 +MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a8
9765 +MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a5
9766 +MULTILIB_MATCHES += march?armv4t=march?ep9312
9767 +MULTILIB_MATCHES += march?armv4t=mcpu?arm7tdmi
9768 +MULTILIB_MATCHES += march?armv4t=mcpu?arm7tdmi-s
9769 +MULTILIB_MATCHES += march?armv4t=mcpu?arm710t
9770 +MULTILIB_MATCHES += march?armv4t=mcpu?arm720t
9771 +MULTILIB_MATCHES += march?armv4t=mcpu?arm740t
9772 +MULTILIB_MATCHES += march?armv4t=mcpu?arm9
9773 +MULTILIB_MATCHES += march?armv4t=mcpu?arm9tdmi
9774 +MULTILIB_MATCHES += march?armv4t=mcpu?arm920
9775 +MULTILIB_MATCHES += march?armv4t=mcpu?arm920t
9776 +MULTILIB_MATCHES += march?armv4t=mcpu?arm922t
9777 +MULTILIB_MATCHES += march?armv4t=mcpu?arm940t
9778 +MULTILIB_MATCHES += march?armv4t=mcpu?ep9312
9779 +MULTILIB_MATCHES += march?armv4t=march?armv5
9780 +MULTILIB_MATCHES += march?armv4t=march?armv5t
9781 +MULTILIB_MATCHES += march?armv4t=march?arm10tdmi
9782 +MULTILIB_MATCHES += march?armv4t=march?arm1020t
9783 +
9784 +MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard
9785 +MULTILIB_DIRNAMES += softfp hard
9786 +MULTILIB_MATCHES += mfloat-abi?hard=mhard-float
9787 +
9788 +MULTILIB_OPTIONS += mfpu=neon
9789 +MULTILIB_DIRNAMES += neon
9790 +MULTILIB_EXCEPTIONS += mfpu=neon
9791 +MULTILIB_MATCHES += mfpu?neon=mfpu?neon-fp16
9792 +MULTILIB_MATCHES += mfpu?neon=mfpu?neon-vfpv4
9793 +MULTILIB_ALIASES += mfloat-abi?softfp=mfloat-abi?softfp/mfpu?neon
9794 +MULTILIB_ALIASES += mfloat-abi?softfp=mthumb/mfloat-abi?softfp/mfpu?neon
9795 +MULTILIB_ALIASES += march?armv7-a/mfloat-abi?hard/mfpu?neon=mthumb/march?armv7-a/mfloat-abi?hard/mfpu?neon
9796 +
9797 +MULTILIB_OPTIONS += mbig-endian
9798 +MULTILIB_DIRNAMES += be
9799 +MULTILIB_ALIASES += mbig-endian=mfpu?neon/mbig-endian
9800 +MULTILIB_ALIASES += mfloat-abi?softfp/mbig-endian=mfloat-abi?softfp/mfpu?neon/mbig-endian
9801 +MULTILIB_ALIASES += mbig-endian=mthumb/mfpu?neon/mbig-endian
9802 +MULTILIB_ALIASES += mfloat-abi?softfp/mbig-endian=mthumb/mfloat-abi?softfp/mfpu?neon/mbig-endian
9803 +
9804 +# Do not build Thumb libraries.
9805 +MULTILIB_EXCEPTIONS += mthumb
9806 +MULTILIB_EXCEPTIONS += mthumb/mfpu=neon
9807 +
9808 +# Use ARM libraries for ARMv4t Thumb and VFP.
9809 +MULTILIB_ALIASES += march?armv4t=mthumb/march?armv4t
9810 +MULTILIB_ALIASES += march?armv4t=march?armv4t/mfloat-abi?softfp
9811 +MULTILIB_ALIASES += march?armv4t=mthumb/march?armv4t/mfloat-abi?softfp
9812 +MULTILIB_ALIASES += march?armv4t=march?armv4t/mfpu?neon
9813 +MULTILIB_ALIASES += march?armv4t=march?armv4t/mfloat-abi?softfp/mfpu?neon
9814 +MULTILIB_ALIASES += march?armv4t=mthumb/march?armv4t/mfpu?neon
9815 +MULTILIB_ALIASES += march?armv4t=mthumb/march?armv4t/mfloat-abi?softfp/mfpu?neon
9816 +
9817 +# We do not support ARMv4t big-endian.
9818 +MULTILIB_EXCEPTIONS += *march=armv4t*mbig-endian
9819 +
9820 +# Behave ARMv7-A as ARMv7 for some cases.
9821 +MULTILIB_EXCEPTIONS += march=armv7-a
9822 +MULTILIB_EXCEPTIONS += march=armv7-a/mfpu=neon
9823 +MULTILIB_ALIASES += mfloat-abi?softfp=march?armv7-a/mfloat-abi?softfp
9824 +MULTILIB_ALIASES += mbig-endian=march?armv7-a/mbig-endian
9825 +MULTILIB_ALIASES += mbig-endian=march?armv7-a/mfpu?neon/mbig-endian
9826 +MULTILIB_ALIASES += mfloat-abi?softfp/mbig-endian=march?armv7-a/mfloat-abi?softfp/mbig-endian
9827 +MULTILIB_ALIASES += mfloat-abi?softfp/mbig-endian=march?armv7-a/mfloat-abi?softfp/mfpu?neon/mbig-endian
9828 +MULTILIB_ALIASES += mthumb/march?armv7-a=mthumb/march?armv7-a/mfpu?neon
9829 +MULTILIB_ALIASES += mthumb/march?armv7-a/mbig-endian=mthumb/march?armv7-a/mfpu?neon/mbig-endian
9830 +MULTILIB_ALIASES += mthumb/march?armv7-a/mbig-endian=mthumb/march?armv7-a/mfloat-abi?softfp/mfpu?neon/mbig-endian
9831 +MULTILIB_ALIASES += mthumb/march?armv7-a=mthumb/march?armv7-a/mfloat-abi?softfp
9832 +
9833 +# Thumb-1 VFP isn't really a meaningful combination. Use the ARM VFP.
9834 +MULTILIB_ALIASES += mfloat-abi?softfp=mthumb/mfloat-abi?softfp
9835 +MULTILIB_ALIASES += mfloat-abi?softfp/mbig-endian=mthumb/mfloat-abi?softfp/mbig-endian
9836 +
9837 +# Use ARM libraries for big-endian Thumb.
9838 +MULTILIB_ALIASES += mbig-endian=mthumb/mbig-endian
9839 +
9840 +# Don't bother with big-endian Thumb-2 VFP. Use the soft-float libraries
9841 +# for now.
9842 +MULTILIB_ALIASES += mthumb/march?armv7-a/mbig-endian=mthumb/march?armv7-a/mfloat-abi?softfp/mbig-endian
9843 +
9844 +# The only -mfloat-abi=hard libraries provided are for little-endian
9845 +# v7-A NEON.
9846 +MULTILIB_EXCEPTIONS += mfloat-abi=hard*
9847 +MULTILIB_EXCEPTIONS += *march=armv4t*mfloat-abi=hard*
9848 +MULTILIB_EXCEPTIONS += mthumb/mfloat-abi=hard*
9849 +MULTILIB_EXCEPTIONS += *mfloat-abi=hard*mbig-endian
9850 +MULTILIB_EXCEPTIONS += *mfloat-abi=hard
9851 +
9852 +# As of at least 4.2, gcc passes the wrong -L options if some multilibs are
9853 +# omitted from MULTILIB_OSDIRNAMES
9854 +MULTILIB_OSDIRNAMES = march.armv4t=!armv4t
9855 +MULTILIB_OSDIRNAMES += mbig-endian=!be
9856 +MULTILIB_OSDIRNAMES += mfloat-abi.softfp=!vfp
9857 +MULTILIB_OSDIRNAMES += mfloat-abi.softfp/mbig-endian=!vfp-be
9858 +MULTILIB_OSDIRNAMES += mthumb/march.armv7-a=!thumb2
9859 +MULTILIB_OSDIRNAMES += march.armv7-a/mfloat-abi.softfp/mfpu.neon=!armv7-a-neon
9860 +MULTILIB_OSDIRNAMES += mthumb/march.armv7-a/mfloat-abi.softfp/mfpu.neon=!thumb2-neon
9861 +MULTILIB_OSDIRNAMES += march.armv7-a/mfloat-abi.hard/mfpu.neon=!armv7-a-hard
9862 +MULTILIB_OSDIRNAMES += mthumb/march.armv7-a/mbig-endian=!thumb2-be
9863 diff -Nur a/gcc/config/arm/t-cs-linux-lite b/gcc/config/arm/t-cs-linux-lite
9864 --- a/gcc/config/arm/t-cs-linux-lite 1970-01-01 01:00:00.000000000 +0100
9865 +++ b/gcc/config/arm/t-cs-linux-lite 2010-01-25 09:50:28.995687913 +0100
9866 @@ -0,0 +1,48 @@
9867 +# We build 3 multilibs:
9868 +# ./ (default)
9869 +# armv4t/ -march=armv4t [-mthumb]
9870 +# thumb2/ -mthumb -march=armv7
9871 +MULTILIB_OPTIONS = mthumb
9872 +MULTILIB_DIRNAMES = thumb
9873 +MULTILIB_OPTIONS += march=armv4t/march=armv7
9874 +MULTILIB_DIRNAMES += v4t v7
9875 +MULTILIB_EXCEPTIONS += march=armv7
9876 +MULTILIB_EXCEPTIONS += mthumb
9877 +
9878 +MULTILIB_ALIASES = march?armv4t=mthumb/march?armv4t
9879 +
9880 +# As of at least 4.2, gcc passes the wrong -L options if some multilibs are
9881 +# omitted from MULTILIB_OSDIRNAMES
9882 +MULTILIB_OSDIRNAMES = march.armv4t=!armv4t
9883 +MULTILIB_OSDIRNAMES += mthumb/march.armv7=!thumb2
9884 +
9885 +MULTILIB_MATCHES += march?armv7=march?armv7a
9886 +MULTILIB_MATCHES += march?armv7=march?armv7r
9887 +MULTILIB_MATCHES += march?armv7=march?armv7m
9888 +MULTILIB_MATCHES += march?armv7=march?armv7-a
9889 +MULTILIB_MATCHES += march?armv7=march?armv7-r
9890 +MULTILIB_MATCHES += march?armv7=march?armv7-m
9891 +MULTILIB_MATCHES += march?armv7=march?armv7e-m
9892 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9
9893 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
9894 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a5
9895 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
9896 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f
9897 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
9898 +MULTILIB_MATCHES += march?armv4t=march?ep9312
9899 +MULTILIB_MATCHES += march?armv4t=mcpu?arm7tdmi
9900 +MULTILIB_MATCHES += march?armv4t=mcpu?arm7tdmi-s
9901 +MULTILIB_MATCHES += march?armv4t=mcpu?arm710t
9902 +MULTILIB_MATCHES += march?armv4t=mcpu?arm720t
9903 +MULTILIB_MATCHES += march?armv4t=mcpu?arm740t
9904 +MULTILIB_MATCHES += march?armv4t=mcpu?arm9
9905 +MULTILIB_MATCHES += march?armv4t=mcpu?arm9tdmi
9906 +MULTILIB_MATCHES += march?armv4t=mcpu?arm920
9907 +MULTILIB_MATCHES += march?armv4t=mcpu?arm920t
9908 +MULTILIB_MATCHES += march?armv4t=mcpu?arm922t
9909 +MULTILIB_MATCHES += march?armv4t=mcpu?arm940t
9910 +MULTILIB_MATCHES += march?armv4t=mcpu?ep9312
9911 +MULTILIB_MATCHES += march?armv4t=march?armv5
9912 +MULTILIB_MATCHES += march?armv4t=march?armv5t
9913 +MULTILIB_MATCHES += march?armv4t=march?arm10tdmi
9914 +MULTILIB_MATCHES += march?armv4t=march?arm1020t
9915 diff -Nur a/gcc/config/arm/t-cs-uclinux-eabi b/gcc/config/arm/t-cs-uclinux-eabi
9916 --- a/gcc/config/arm/t-cs-uclinux-eabi 1970-01-01 01:00:00.000000000 +0100
9917 +++ b/gcc/config/arm/t-cs-uclinux-eabi 2010-01-25 09:50:28.995687913 +0100
9918 @@ -0,0 +1,55 @@
9919 +# EABI uClinux multilib selection. Other setting are inherited from t-arm-elf
9920 +
9921 +# We build 3 multilibs:
9922 +# . (default)
9923 +# thumb2/ -mthumb -march=armv7 -mfix-cortex-m3-ldrd
9924 +# armv6-m/ -mthumb -march=armv6-m
9925 +
9926 +MULTILIB_OPTIONS = mthumb
9927 +MULTILIB_DIRNAMES = thumb
9928 +MULTILIB_EXCEPTIONS =
9929 +MULTILIB_MATCHES =
9930 +
9931 +MULTILIB_OPTIONS += march=armv7/march=armv6-m
9932 +MULTILIB_DIRNAMES += armv7 armv6-m
9933 +
9934 +MULTILIB_EXCEPTIONS += mthumb
9935 +
9936 +MULTILIB_EXCEPTIONS += march=armv7
9937 +MULTILIB_MATCHES += march?armv7=march?armv7a
9938 +MULTILIB_MATCHES += march?armv7=march?armv7r
9939 +MULTILIB_MATCHES += march?armv7=march?armv7m
9940 +MULTILIB_MATCHES += march?armv7=march?armv7-a
9941 +MULTILIB_MATCHES += march?armv7=march?armv7-r
9942 +MULTILIB_MATCHES += march?armv7=march?armv7-m
9943 +MULTILIB_MATCHES += march?armv7=march?armv7e-m
9944 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9
9945 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
9946 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-a5
9947 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
9948 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f
9949 +MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
9950 +
9951 +MULTILIB_EXCEPTIONS += march=armv6-m
9952 +MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m1
9953 +MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m0
9954 +
9955 +MULTILIB_ALIASES =
9956 +
9957 +# FIXME: We need a sane way of doing this.
9958 +# This isn't really a multilib, it's a hack to add an extra option
9959 +# to the v7-m multilib.
9960 +MULTILIB_OPTIONS += mfix-cortex-m3-ldrd
9961 +MULTILIB_DIRNAMES += broken_ldrd
9962 +
9963 +MULTILIB_EXCEPTIONS += mfix-cortex-m3-ldrd
9964 +MULTILIB_EXCEPTIONS += mthumb/mfix-cortex-m3-ldrd
9965 +MULTILIB_EXCEPTIONS += march=armv7/mfix-cortex-m3-ldrd
9966 +MULTILIB_EXCEPTIONS += *march=armv6-m*mfix-cortex-m3-ldrd
9967 +
9968 +MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7
9969 +
9970 +
9971 +MULTILIB_OSDIRNAMES = mthumb/march.armv7/mfix-cortex-m3-ldrd=!thumb2
9972 +MULTILIB_OSDIRNAMES += mthumb/march.armv6-m=!armv6-m
9973 +
9974 diff -Nur a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md
9975 --- a/gcc/config/arm/thumb2.md 2008-11-21 00:00:00.000000000 +0100
9976 +++ b/gcc/config/arm/thumb2.md 2010-01-25 09:50:28.995687913 +0100
9977 @@ -24,6 +24,8 @@
9978 ;; changes made in armv5t as "thumb2". These are considered part
9979 ;; the 16-bit Thumb-1 instruction set.
9980
9981 +(include "hwdiv.md")
9982 +
9983 (define_insn "*thumb2_incscc"
9984 [(set (match_operand:SI 0 "s_register_operand" "=r,r")
9985 (plus:SI (match_operator:SI 2 "arm_comparison_operator"
9986 @@ -172,34 +174,6 @@
9987 (set_attr "length" "8")]
9988 )
9989
9990 -(define_insn "*thumb2_abssi2"
9991 - [(set (match_operand:SI 0 "s_register_operand" "=r,&r")
9992 - (abs:SI (match_operand:SI 1 "s_register_operand" "0,r")))
9993 - (clobber (reg:CC CC_REGNUM))]
9994 - "TARGET_THUMB2"
9995 - "@
9996 - cmp\\t%0, #0\;it\tlt\;rsblt\\t%0, %0, #0
9997 - eor%?\\t%0, %1, %1, asr #31\;sub%?\\t%0, %0, %1, asr #31"
9998 - [(set_attr "conds" "clob,*")
9999 - (set_attr "shift" "1")
10000 - ;; predicable can't be set based on the variant, so left as no
10001 - (set_attr "length" "10,8")]
10002 -)
10003 -
10004 -(define_insn "*thumb2_neg_abssi2"
10005 - [(set (match_operand:SI 0 "s_register_operand" "=r,&r")
10006 - (neg:SI (abs:SI (match_operand:SI 1 "s_register_operand" "0,r"))))
10007 - (clobber (reg:CC CC_REGNUM))]
10008 - "TARGET_THUMB2"
10009 - "@
10010 - cmp\\t%0, #0\;it\\tgt\;rsbgt\\t%0, %0, #0
10011 - eor%?\\t%0, %1, %1, asr #31\;rsb%?\\t%0, %0, %1, asr #31"
10012 - [(set_attr "conds" "clob,*")
10013 - (set_attr "shift" "1")
10014 - ;; predicable can't be set based on the variant, so left as no
10015 - (set_attr "length" "10,8")]
10016 -)
10017 -
10018 (define_insn "*thumb2_movdi"
10019 [(set (match_operand:DI 0 "nonimmediate_di_operand" "=r, r, r, r, m")
10020 (match_operand:DI 1 "di_operand" "rDa,Db,Dc,mi,r"))]
10021 @@ -223,9 +197,14 @@
10022 (set_attr "neg_pool_range" "*,*,*,0,*")]
10023 )
10024
10025 +;; We have two alternatives here for memory loads (and similarly for stores)
10026 +;; to reflect the fact that the permissible constant pool ranges differ
10027 +;; between ldr instructions taking low regs and ldr instructions taking high
10028 +;; regs. The high register alternatives are not taken into account when
10029 +;; choosing register preferences in order to reflect their expense.
10030 (define_insn "*thumb2_movsi_insn"
10031 - [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r,rk,m")
10032 - (match_operand:SI 1 "general_operand" "rk ,I,K,N,mi,rk"))]
10033 + [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r,l,*hk,m,*m")
10034 + (match_operand:SI 1 "general_operand" "rk ,I,K,j,mi,*mi,l,*hk"))]
10035 "TARGET_THUMB2 && ! TARGET_IWMMXT
10036 && !(TARGET_HARD_FLOAT && TARGET_VFP)
10037 && ( register_operand (operands[0], SImode)
10038 @@ -236,11 +215,13 @@
10039 mvn%?\\t%0, #%B1
10040 movw%?\\t%0, %1
10041 ldr%?\\t%0, %1
10042 + ldr%?\\t%0, %1
10043 + str%?\\t%1, %0
10044 str%?\\t%1, %0"
10045 - [(set_attr "type" "*,*,*,*,load1,store1")
10046 + [(set_attr "type" "*,*,*,*,load1,load1,store1,store1")
10047 (set_attr "predicable" "yes")
10048 - (set_attr "pool_range" "*,*,*,*,4096,*")
10049 - (set_attr "neg_pool_range" "*,*,*,*,0,*")]
10050 + (set_attr "pool_range" "*,*,*,*,1020,4096,*,*")
10051 + (set_attr "neg_pool_range" "*,*,*,*,0,0,*,*")]
10052 )
10053
10054 ;; ??? We can probably do better with thumb2
10055 @@ -1128,27 +1109,7 @@
10056 return \"add%!\\t%0, %1, %2\";
10057 "
10058 [(set_attr "predicable" "yes")
10059 - (set_attr "length" "2")]
10060 -)
10061 -
10062 -(define_insn "divsi3"
10063 - [(set (match_operand:SI 0 "s_register_operand" "=r")
10064 - (div:SI (match_operand:SI 1 "s_register_operand" "r")
10065 - (match_operand:SI 2 "s_register_operand" "r")))]
10066 - "TARGET_THUMB2 && arm_arch_hwdiv"
10067 - "sdiv%?\t%0, %1, %2"
10068 - [(set_attr "predicable" "yes")
10069 - (set_attr "insn" "sdiv")]
10070 -)
10071 -
10072 -(define_insn "udivsi3"
10073 - [(set (match_operand:SI 0 "s_register_operand" "=r")
10074 - (udiv:SI (match_operand:SI 1 "s_register_operand" "r")
10075 - (match_operand:SI 2 "s_register_operand" "r")))]
10076 - "TARGET_THUMB2 && arm_arch_hwdiv"
10077 - "udiv%?\t%0, %1, %2"
10078 - [(set_attr "predicable" "yes")
10079 - (set_attr "insn" "udiv")]
10080 + (set_attr "length" "4")]
10081 )
10082
10083 (define_insn "*thumb2_subsi_short"
10084 @@ -1162,6 +1123,71 @@
10085 (set_attr "length" "2")]
10086 )
10087
10088 +;; 16-bit encodings of "muls" and "mul<c>". We only use these when
10089 +;; optimizing for size since "muls" is slow on all known
10090 +;; implementations and since "mul<c>" will be generated by
10091 +;; "*arm_mulsi3_v6" anyhow. The assembler will use a 16-bit encoding
10092 +;; for "mul<c>" whenever possible anyhow.
10093 +(define_peephole2
10094 + [(set (match_operand:SI 0 "low_register_operand" "")
10095 + (mult:SI (match_operand:SI 1 "low_register_operand" "")
10096 + (match_dup 0)))]
10097 + "TARGET_THUMB2 && optimize_size && peep2_regno_dead_p (0, CC_REGNUM)"
10098 + [(parallel
10099 + [(set (match_dup 0)
10100 + (mult:SI (match_dup 0) (match_dup 1)))
10101 + (clobber (reg:CC CC_REGNUM))])]
10102 + ""
10103 +)
10104 +
10105 +(define_peephole2
10106 + [(set (match_operand:SI 0 "low_register_operand" "")
10107 + (mult:SI (match_dup 0)
10108 + (match_operand:SI 1 "low_register_operand" "")))]
10109 + "TARGET_THUMB2 && optimize_size && peep2_regno_dead_p (0, CC_REGNUM)"
10110 + [(parallel
10111 + [(set (match_dup 0)
10112 + (mult:SI (match_dup 0) (match_dup 1)))
10113 + (clobber (reg:CC CC_REGNUM))])]
10114 + ""
10115 +)
10116 +
10117 +(define_insn "*thumb2_mulsi_short"
10118 + [(set (match_operand:SI 0 "low_register_operand" "=l")
10119 + (mult:SI (match_operand:SI 1 "low_register_operand" "%0")
10120 + (match_operand:SI 2 "low_register_operand" "l")))
10121 + (clobber (reg:CC CC_REGNUM))]
10122 + "TARGET_THUMB2 && optimize_size && reload_completed"
10123 + "mul%!\\t%0, %2, %0"
10124 + [(set_attr "predicable" "yes")
10125 + (set_attr "length" "2")
10126 + (set_attr "insn" "muls")])
10127 +
10128 +(define_insn "*thumb2_mulsi_short_compare0"
10129 + [(set (reg:CC_NOOV CC_REGNUM)
10130 + (compare:CC_NOOV
10131 + (mult:SI (match_operand:SI 1 "register_operand" "%0")
10132 + (match_operand:SI 2 "register_operand" "l"))
10133 + (const_int 0)))
10134 + (set (match_operand:SI 0 "register_operand" "=l")
10135 + (mult:SI (match_dup 1) (match_dup 2)))]
10136 + "TARGET_THUMB2 && optimize_size"
10137 + "muls\\t%0, %2, %0"
10138 + [(set_attr "length" "2")
10139 + (set_attr "insn" "muls")])
10140 +
10141 +(define_insn "*thumb2_mulsi_short_compare0_scratch"
10142 + [(set (reg:CC_NOOV CC_REGNUM)
10143 + (compare:CC_NOOV
10144 + (mult:SI (match_operand:SI 1 "register_operand" "%0")
10145 + (match_operand:SI 2 "register_operand" "l"))
10146 + (const_int 0)))
10147 + (clobber (match_scratch:SI 0 "=r"))]
10148 + "TARGET_THUMB2 && optimize_size"
10149 + "muls\\t%0, %2, %0"
10150 + [(set_attr "length" "2")
10151 + (set_attr "insn" "muls")])
10152 +
10153 (define_insn "*thumb2_cbz"
10154 [(set (pc) (if_then_else
10155 (eq (match_operand:SI 0 "s_register_operand" "l,?r")
10156 @@ -1171,7 +1197,7 @@
10157 (clobber (reg:CC CC_REGNUM))]
10158 "TARGET_THUMB2"
10159 "*
10160 - if (get_attr_length (insn) == 2 && which_alternative == 0)
10161 + if (get_attr_length (insn) == 2)
10162 return \"cbz\\t%0, %l1\";
10163 else
10164 return \"cmp\\t%0, #0\;beq\\t%l1\";
10165 @@ -1179,7 +1205,8 @@
10166 [(set (attr "length")
10167 (if_then_else
10168 (and (ge (minus (match_dup 1) (pc)) (const_int 2))
10169 - (le (minus (match_dup 1) (pc)) (const_int 128)))
10170 + (le (minus (match_dup 1) (pc)) (const_int 128))
10171 + (eq (symbol_ref ("which_alternative")) (const_int 0)))
10172 (const_int 2)
10173 (const_int 8)))]
10174 )
10175 @@ -1193,7 +1220,7 @@
10176 (clobber (reg:CC CC_REGNUM))]
10177 "TARGET_THUMB2"
10178 "*
10179 - if (get_attr_length (insn) == 2 && which_alternative == 0)
10180 + if (get_attr_length (insn) == 2)
10181 return \"cbnz\\t%0, %l1\";
10182 else
10183 return \"cmp\\t%0, #0\;bne\\t%l1\";
10184 @@ -1201,7 +1228,8 @@
10185 [(set (attr "length")
10186 (if_then_else
10187 (and (ge (minus (match_dup 1) (pc)) (const_int 2))
10188 - (le (minus (match_dup 1) (pc)) (const_int 128)))
10189 + (le (minus (match_dup 1) (pc)) (const_int 128))
10190 + (eq (symbol_ref ("which_alternative")) (const_int 0)))
10191 (const_int 2)
10192 (const_int 8)))]
10193 )
10194 diff -Nur a/gcc/config/arm/t-linux-eabi b/gcc/config/arm/t-linux-eabi
10195 --- a/gcc/config/arm/t-linux-eabi 2009-01-24 22:06:08.000000000 +0100
10196 +++ b/gcc/config/arm/t-linux-eabi 2010-01-25 09:50:28.995687913 +0100
10197 @@ -6,8 +6,8 @@
10198 MULTILIB_OPTIONS =
10199 MULTILIB_DIRNAMES =
10200
10201 -# Use a version of div0 which raises SIGFPE.
10202 -LIB1ASMFUNCS := $(filter-out _dvmd_tls,$(LIB1ASMFUNCS)) _dvmd_lnx
10203 +# Use a version of div0 which raises SIGFPE, and a special __clear_cache.
10204 +LIB1ASMFUNCS := $(filter-out _dvmd_tls,$(LIB1ASMFUNCS)) _dvmd_lnx _clear_cache
10205
10206 # Multilib the standard Linux files. Don't include crti.o or crtn.o,
10207 # which are provided by glibc.
10208 diff -Nur a/gcc/config/arm/t-montavista-linux b/gcc/config/arm/t-montavista-linux
10209 --- a/gcc/config/arm/t-montavista-linux 1970-01-01 01:00:00.000000000 +0100
10210 +++ b/gcc/config/arm/t-montavista-linux 2010-01-25 09:50:28.995687913 +0100
10211 @@ -0,0 +1,33 @@
10212 +# MontaVista GNU/Linux Configuration.
10213 +# Copyright (C) 2009
10214 +# Free Software Foundation, Inc.
10215 +#
10216 +# This file is part of GCC.
10217 +#
10218 +# GCC is free software; you can redistribute it and/or modify
10219 +# it under the terms of the GNU General Public License as published by
10220 +# the Free Software Foundation; either version 3, or (at your option)
10221 +# any later version.
10222 +#
10223 +# GCC is distributed in the hope that it will be useful,
10224 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
10225 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10226 +# GNU General Public License for more details.
10227 +#
10228 +# You should have received a copy of the GNU General Public License
10229 +# along with GCC; see the file COPYING3. If not see
10230 +# <http://www.gnu.org/licenses/>.
10231 +
10232 +MULTILIB_OPTIONS = tarmv6/tthumb2
10233 +MULTILIB_DIRNAMES = armv6 thumb2
10234 +
10235 +MULTILIB_EXCEPTIONS =
10236 +
10237 +MULTILIB_OSDIRNAMES =
10238 +
10239 +MULTILIB_ALIASES =
10240 +
10241 +MULTILIB_MATCHES =
10242 +
10243 +# These files must be built for each multilib.
10244 +EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
10245 diff -Nur a/gcc/config/arm/t-symbian b/gcc/config/arm/t-symbian
10246 --- a/gcc/config/arm/t-symbian 2008-06-12 19:29:47.000000000 +0200
10247 +++ b/gcc/config/arm/t-symbian 2010-01-25 09:50:28.995687913 +0100
10248 @@ -17,6 +17,9 @@
10249 LIB2ADDEH = $(srcdir)/unwind-c.c $(srcdir)/config/arm/pr-support.c
10250 LIB2ADDEHDEP = $(UNWIND_H)
10251
10252 +# Include half-float helpers.
10253 +LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/arm/fp16.c
10254 +
10255 # Create a multilib for processors with VFP floating-point, and a
10256 # multilib for those without -- using the soft-float ABI in both
10257 # cases. Symbian OS object should be compiled with interworking
10258 diff -Nur a/gcc/config/arm/t-wrs-linux b/gcc/config/arm/t-wrs-linux
10259 --- a/gcc/config/arm/t-wrs-linux 1970-01-01 01:00:00.000000000 +0100
10260 +++ b/gcc/config/arm/t-wrs-linux 2010-01-25 09:50:28.995687913 +0100
10261 @@ -0,0 +1,43 @@
10262 +# Wind River GNU/Linux Configuration.
10263 +# Copyright (C) 2006, 2007, 2008
10264 +# Free Software Foundation, Inc.
10265 +#
10266 +# This file is part of GCC.
10267 +#
10268 +# GCC is free software; you can redistribute it and/or modify
10269 +# it under the terms of the GNU General Public License as published by
10270 +# the Free Software Foundation; either version 3, or (at your option)
10271 +# any later version.
10272 +#
10273 +# GCC is distributed in the hope that it will be useful,
10274 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
10275 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10276 +# GNU General Public License for more details.
10277 +#
10278 +# You should have received a copy of the GNU General Public License
10279 +# along with GCC; see the file COPYING3. If not see
10280 +# <http://www.gnu.org/licenses/>.
10281 +
10282 +MULTILIB_OPTIONS = muclibc
10283 +MULTILIB_OPTIONS += tarm926ej-s/tiwmmxt/txscale/tarm920t/tthumb2/tcortex-a8-be8
10284 +MULTILIB_OPTIONS += mfloat-abi=softfp
10285 +MULTILIB_DIRNAMES = uclibc
10286 +MULTILIB_DIRNAMES += tarm926ej-s tiwmmxt txscale tarm920t thumb2 cortex-a8-be8
10287 +MULTILIB_DIRNAMES += softfp
10288 +
10289 +MULTILIB_EXCEPTIONS = *muclibc*/*tarm920t*
10290 +MULTILIB_EXCEPTIONS += *muclibc*/*cortex-a8-be8*
10291 +
10292 +MULTILIB_EXCEPTIONS += *tiwmmxt*/*mfloat-abi=softfp*
10293 +MULTILIB_EXCEPTIONS += *txscale*/*mfloat-abi=softfp*
10294 +MULTILIB_EXCEPTIONS += *tarm920t*/*mfloat-abi=softfp*
10295 +MULTILIB_EXCEPTIONS += *thumb2*/*mfloat-abi=softfp*
10296 +
10297 +MULTILIB_MATCHES = tiwmmxt=tiwmmxt2
10298 +
10299 +MULTILIB_ALIASES = tcortex-a8-be8=tcortex-a8-be8/mfloat-abi?softfp
10300 +MULTILIB_OSDIRNAMES =
10301 +
10302 +# These files must be built for each multilib.
10303 +EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
10304 +
10305 diff -Nur a/gcc/config/arm/uclinux-eabi.h b/gcc/config/arm/uclinux-eabi.h
10306 --- a/gcc/config/arm/uclinux-eabi.h 2009-02-20 16:20:38.000000000 +0100
10307 +++ b/gcc/config/arm/uclinux-eabi.h 2010-01-25 09:50:28.995687913 +0100
10308 @@ -50,6 +50,10 @@
10309 #undef ARM_DEFAULT_ABI
10310 #define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
10311
10312 +#undef LINK_GCC_C_SEQUENCE_SPEC
10313 +#define LINK_GCC_C_SEQUENCE_SPEC \
10314 + "--start-group %G %L --end-group"
10315 +
10316 /* Clear the instruction cache from `beg' to `end'. This makes an
10317 inline system call to SYS_cacheflush. */
10318 #undef CLEAR_INSN_CACHE
10319 diff -Nur a/gcc/config/arm/unwind-arm.c b/gcc/config/arm/unwind-arm.c
10320 --- a/gcc/config/arm/unwind-arm.c 2009-04-10 01:23:07.000000000 +0200
10321 +++ b/gcc/config/arm/unwind-arm.c 2010-01-25 09:50:28.995687913 +0100
10322 @@ -1000,7 +1000,6 @@
10323 while (code != _URC_END_OF_STACK
10324 && code != _URC_FAILURE);
10325
10326 - finish:
10327 restore_non_core_regs (&saved_vrs);
10328 return code;
10329 }
10330 @@ -1168,6 +1167,9 @@
10331 {
10332 matched = (void *)(ucbp + 1);
10333 rtti = _Unwind_decode_target2 ((_uw) &data[i + 1]);
10334 + /* There is no way to encode an exception
10335 + specification for 'class X * &', so
10336 + always pass false for is_reference. */
10337 if (__cxa_type_match (ucbp, (type_info *) rtti, 0,
10338 &matched))
10339 break;
10340 @@ -1197,8 +1199,6 @@
10341 ucbp->barrier_cache.bitpattern[4] = (_uw) &data[1];
10342
10343 if (data[0] & uint32_highbit)
10344 - phase2_call_unexpected_after_unwind = 1;
10345 - else
10346 {
10347 data += rtti_count + 1;
10348 /* Setup for entry to the handler. */
10349 @@ -1208,6 +1208,8 @@
10350 _Unwind_SetGR (context, 0, (_uw) ucbp);
10351 return _URC_INSTALL_CONTEXT;
10352 }
10353 + else
10354 + phase2_call_unexpected_after_unwind = 1;
10355 }
10356 if (data[0] & uint32_highbit)
10357 data++;
10358 diff -Nur a/gcc/config/arm/unwind-arm.h b/gcc/config/arm/unwind-arm.h
10359 --- a/gcc/config/arm/unwind-arm.h 2009-04-10 01:23:07.000000000 +0200
10360 +++ b/gcc/config/arm/unwind-arm.h 2010-01-25 09:50:28.995687913 +0100
10361 @@ -229,9 +229,10 @@
10362 return 0;
10363
10364 #if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__)
10365 - /* Pc-relative indirect. */
10366 + /* Pc-relative indirect. Propagate the bottom 2 bits, which can
10367 + contain referenceness information in gnu unwinding tables. */
10368 tmp += ptr;
10369 - tmp = *(_Unwind_Word *) tmp;
10370 + tmp = *(_Unwind_Word *) (tmp & ~(_Unwind_Word)3) | (tmp & 3);
10371 #elif defined(__symbian__) || defined(__uClinux__)
10372 /* Absolute pointer. Nothing more to do. */
10373 #else
10374 diff -Nur a/gcc/config/arm/vec-common.md b/gcc/config/arm/vec-common.md
10375 --- a/gcc/config/arm/vec-common.md 2007-08-22 22:32:18.000000000 +0200
10376 +++ b/gcc/config/arm/vec-common.md 2010-01-25 09:50:28.995687913 +0100
10377 @@ -38,6 +38,11 @@
10378 "TARGET_NEON
10379 || (TARGET_REALLY_IWMMXT && VALID_IWMMXT_REG_MODE (<MODE>mode))"
10380 {
10381 + if (can_create_pseudo_p ())
10382 + {
10383 + if (GET_CODE (operands[0]) != REG)
10384 + operands[1] = force_reg (<MODE>mode, operands[1]);
10385 + }
10386 })
10387
10388 ;; Vector arithmetic. Expanders are blank, then unnamed insns implement
10389 diff -Nur a/gcc/config/arm/vfp.md b/gcc/config/arm/vfp.md
10390 --- a/gcc/config/arm/vfp.md 2008-09-01 15:40:49.000000000 +0200
10391 +++ b/gcc/config/arm/vfp.md 2010-01-25 09:50:28.995687913 +0100
10392 @@ -51,7 +51,7 @@
10393 ;; problems because small constants get converted into adds.
10394 (define_insn "*arm_movsi_vfp"
10395 [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r,rk,m ,*t,r,*t,*t, *Uv")
10396 - (match_operand:SI 1 "general_operand" "rk, I,K,N,mi,rk,r,*t,*t,*Uvi,*t"))]
10397 + (match_operand:SI 1 "general_operand" "rk, I,K,j,mi,rk,r,*t,*t,*Uvi,*t"))]
10398 "TARGET_ARM && TARGET_VFP && TARGET_HARD_FLOAT
10399 && ( s_register_operand (operands[0], SImode)
10400 || s_register_operand (operands[1], SImode))"
10401 @@ -82,13 +82,17 @@
10402 "
10403 [(set_attr "predicable" "yes")
10404 (set_attr "type" "*,*,*,*,load1,store1,r_2_f,f_2_r,fcpys,f_loads,f_stores")
10405 + (set_attr "neon_type" "*,*,*,*,*,*,neon_mcr,neon_mrc,neon_vmov,*,*")
10406 + (set_attr "insn" "mov,mov,mvn,mov,*,*,*,*,*,*,*")
10407 (set_attr "pool_range" "*,*,*,*,4096,*,*,*,*,1020,*")
10408 (set_attr "neg_pool_range" "*,*,*,*,4084,*,*,*,*,1008,*")]
10409 )
10410
10411 +;; See thumb2.md:thumb2_movsi_insn for an explanation of the split
10412 +;; high/low register alternatives for loads and stores here.
10413 (define_insn "*thumb2_movsi_vfp"
10414 - [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r,rk,m,*t,r, *t,*t, *Uv")
10415 - (match_operand:SI 1 "general_operand" "rk, I,K,N,mi,rk,r,*t,*t,*Uvi,*t"))]
10416 + [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r,l,*hk,m,*m,*t,r, *t,*t, *Uv")
10417 + (match_operand:SI 1 "general_operand" "rk, I,K,j,mi,*mi,l,*hk,r,*t,*t,*Uvi,*t"))]
10418 "TARGET_THUMB2 && TARGET_VFP && TARGET_HARD_FLOAT
10419 && ( s_register_operand (operands[0], SImode)
10420 || s_register_operand (operands[1], SImode))"
10421 @@ -102,25 +106,29 @@
10422 case 3:
10423 return \"movw%?\\t%0, %1\";
10424 case 4:
10425 - return \"ldr%?\\t%0, %1\";
10426 case 5:
10427 - return \"str%?\\t%1, %0\";
10428 + return \"ldr%?\\t%0, %1\";
10429 case 6:
10430 - return \"fmsr%?\\t%0, %1\\t%@ int\";
10431 case 7:
10432 - return \"fmrs%?\\t%0, %1\\t%@ int\";
10433 + return \"str%?\\t%1, %0\";
10434 case 8:
10435 + return \"fmsr%?\\t%0, %1\\t%@ int\";
10436 + case 9:
10437 + return \"fmrs%?\\t%0, %1\\t%@ int\";
10438 + case 10:
10439 return \"fcpys%?\\t%0, %1\\t%@ int\";
10440 - case 9: case 10:
10441 + case 11: case 12:
10442 return output_move_vfp (operands);
10443 default:
10444 gcc_unreachable ();
10445 }
10446 "
10447 [(set_attr "predicable" "yes")
10448 - (set_attr "type" "*,*,*,*,load1,store1,r_2_f,f_2_r,fcpys,f_load,f_store")
10449 - (set_attr "pool_range" "*,*,*,*,4096,*,*,*,*,1020,*")
10450 - (set_attr "neg_pool_range" "*,*,*,*, 0,*,*,*,*,1008,*")]
10451 + (set_attr "type" "*,*,*,*,load1,load1,store1,store1,r_2_f,f_2_r,fcpys,f_load,f_store")
10452 + (set_attr "neon_type" "*,*,*,*,*,*,*,*,neon_mcr,neon_mrc,neon_vmov,*,*")
10453 + (set_attr "insn" "mov,mov,mvn,mov,*,*,*,*,*,*,*,*,*")
10454 + (set_attr "pool_range" "*,*,*,*,1020,4096,*,*,*,*,*,1020,*")
10455 + (set_attr "neg_pool_range" "*,*,*,*, 0, 0,*,*,*,*,*,1008,*")]
10456 )
10457
10458
10459 @@ -145,7 +153,10 @@
10460 case 4:
10461 return \"fmrrd%?\\t%Q0, %R0, %P1\\t%@ int\";
10462 case 5:
10463 - return \"fcpyd%?\\t%P0, %P1\\t%@ int\";
10464 + if (TARGET_VFP_SINGLE)
10465 + return \"fcpys%?\\t%0, %1\\t%@ int\;fcpys%?\\t%p0, %p1\\t%@ int\";
10466 + else
10467 + return \"fcpyd%?\\t%P0, %P1\\t%@ int\";
10468 case 6: case 7:
10469 return output_move_vfp (operands);
10470 default:
10471 @@ -153,7 +164,14 @@
10472 }
10473 "
10474 [(set_attr "type" "*,load2,store2,r_2_f,f_2_r,ffarithd,f_loadd,f_stored")
10475 - (set_attr "length" "8,8,8,4,4,4,4,4")
10476 + (set_attr "neon_type" "*,*,*,neon_mcr_2_mcrr,neon_mrrc,neon_vmov,*,*")
10477 + (set (attr "length") (cond [(eq_attr "alternative" "0,1,2") (const_int 8)
10478 + (eq_attr "alternative" "5")
10479 + (if_then_else
10480 + (eq (symbol_ref "TARGET_VFP_SINGLE") (const_int 1))
10481 + (const_int 8)
10482 + (const_int 4))]
10483 + (const_int 4)))
10484 (set_attr "pool_range" "*,1020,*,*,*,*,1020,*")
10485 (set_attr "neg_pool_range" "*,1008,*,*,*,*,1008,*")]
10486 )
10487 @@ -172,7 +190,10 @@
10488 case 4:
10489 return \"fmrrd%?\\t%Q0, %R0, %P1\\t%@ int\";
10490 case 5:
10491 - return \"fcpyd%?\\t%P0, %P1\\t%@ int\";
10492 + if (TARGET_VFP_SINGLE)
10493 + return \"fcpys%?\\t%0, %1\\t%@ int\;fcpys%?\\t%p0, %p1\\t%@ int\";
10494 + else
10495 + return \"fcpyd%?\\t%P0, %P1\\t%@ int\";
10496 case 6: case 7:
10497 return output_move_vfp (operands);
10498 default:
10499 @@ -180,11 +201,123 @@
10500 }
10501 "
10502 [(set_attr "type" "*,load2,store2,r_2_f,f_2_r,ffarithd,f_load,f_store")
10503 - (set_attr "length" "8,8,8,4,4,4,4,4")
10504 + (set_attr "neon_type" "*,*,*,neon_mcr_2_mcrr,neon_mrrc,neon_vmov,*,*")
10505 + (set (attr "length") (cond [(eq_attr "alternative" "0,1,2") (const_int 8)
10506 + (eq_attr "alternative" "5")
10507 + (if_then_else
10508 + (eq (symbol_ref "TARGET_VFP_SINGLE") (const_int 1))
10509 + (const_int 8)
10510 + (const_int 4))]
10511 + (const_int 4)))
10512 (set_attr "pool_range" "*,4096,*,*,*,*,1020,*")
10513 (set_attr "neg_pool_range" "*, 0,*,*,*,*,1008,*")]
10514 )
10515
10516 +;; HFmode moves
10517 +(define_insn "*movhf_vfp_neon"
10518 + [(set (match_operand:HF 0 "nonimmediate_operand" "= t,Um,r,m,t,r,t,r,r")
10519 + (match_operand:HF 1 "general_operand" " Um, t,m,r,t,r,r,t,F"))]
10520 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_NEON_FP16
10521 + && ( s_register_operand (operands[0], HFmode)
10522 + || s_register_operand (operands[1], HFmode))"
10523 + "*
10524 + switch (which_alternative)
10525 + {
10526 + case 0: /* S register from memory */
10527 + return \"vld1.16\\t{%z0}, %A1\";
10528 + case 1: /* memory from S register */
10529 + return \"vst1.16\\t{%z1}, %A0\";
10530 + case 2: /* ARM register from memory */
10531 + return \"ldrh\\t%0, %1\\t%@ __fp16\";
10532 + case 3: /* memory from ARM register */
10533 + return \"strh\\t%1, %0\\t%@ __fp16\";
10534 + case 4: /* S register from S register */
10535 + return \"fcpys\\t%0, %1\";
10536 + case 5: /* ARM register from ARM register */
10537 + return \"mov\\t%0, %1\\t%@ __fp16\";
10538 + case 6: /* S register from ARM register */
10539 + return \"fmsr\\t%0, %1\";
10540 + case 7: /* ARM register from S register */
10541 + return \"fmrs\\t%0, %1\";
10542 + case 8: /* ARM register from constant */
10543 + {
10544 + REAL_VALUE_TYPE r;
10545 + long bits;
10546 + rtx ops[4];
10547 +
10548 + REAL_VALUE_FROM_CONST_DOUBLE (r, operands[1]);
10549 + bits = real_to_target (NULL, &r, HFmode);
10550 + ops[0] = operands[0];
10551 + ops[1] = GEN_INT (bits);
10552 + ops[2] = GEN_INT (bits & 0xff00);
10553 + ops[3] = GEN_INT (bits & 0x00ff);
10554 +
10555 + if (arm_arch_thumb2)
10556 + output_asm_insn (\"movw\\t%0, %1\", ops);
10557 + else
10558 + output_asm_insn (\"mov\\t%0, %2\;orr\\t%0, %0, %3\", ops);
10559 + return \"\";
10560 + }
10561 + default:
10562 + gcc_unreachable ();
10563 + }
10564 + "
10565 + [(set_attr "conds" "unconditional")
10566 + (set_attr "type" "*,*,load1,store1,fcpys,*,r_2_f,f_2_r,*")
10567 + (set_attr "neon_type" "neon_vld1_1_2_regs,neon_vst1_1_2_regs_vst2_2_regs,*,*,*,*,*,*,*")
10568 + (set_attr "length" "4,4,4,4,4,4,4,4,8")]
10569 +)
10570 +
10571 +;; FP16 without element load/store instructions.
10572 +(define_insn "*movhf_vfp"
10573 + [(set (match_operand:HF 0 "nonimmediate_operand" "=r,m,t,r,t,r,r")
10574 + (match_operand:HF 1 "general_operand" " m,r,t,r,r,t,F"))]
10575 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FP16 && !TARGET_NEON_FP16
10576 + && ( s_register_operand (operands[0], HFmode)
10577 + || s_register_operand (operands[1], HFmode))"
10578 + "*
10579 + switch (which_alternative)
10580 + {
10581 + case 0: /* ARM register from memory */
10582 + return \"ldrh\\t%0, %1\\t%@ __fp16\";
10583 + case 1: /* memory from ARM register */
10584 + return \"strh\\t%1, %0\\t%@ __fp16\";
10585 + case 2: /* S register from S register */
10586 + return \"fcpys\\t%0, %1\";
10587 + case 3: /* ARM register from ARM register */
10588 + return \"mov\\t%0, %1\\t%@ __fp16\";
10589 + case 4: /* S register from ARM register */
10590 + return \"fmsr\\t%0, %1\";
10591 + case 5: /* ARM register from S register */
10592 + return \"fmrs\\t%0, %1\";
10593 + case 6: /* ARM register from constant */
10594 + {
10595 + REAL_VALUE_TYPE r;
10596 + long bits;
10597 + rtx ops[4];
10598 +
10599 + REAL_VALUE_FROM_CONST_DOUBLE (r, operands[1]);
10600 + bits = real_to_target (NULL, &r, HFmode);
10601 + ops[0] = operands[0];
10602 + ops[1] = GEN_INT (bits);
10603 + ops[2] = GEN_INT (bits & 0xff00);
10604 + ops[3] = GEN_INT (bits & 0x00ff);
10605 +
10606 + if (arm_arch_thumb2)
10607 + output_asm_insn (\"movw\\t%0, %1\", ops);
10608 + else
10609 + output_asm_insn (\"mov\\t%0, %2\;orr\\t%0, %0, %3\", ops);
10610 + return \"\";
10611 + }
10612 + default:
10613 + gcc_unreachable ();
10614 + }
10615 + "
10616 + [(set_attr "conds" "unconditional")
10617 + (set_attr "type" "load1,store1,fcpys,*,r_2_f,f_2_r,*")
10618 + (set_attr "length" "4,4,4,4,4,4,8")]
10619 +)
10620 +
10621
10622 ;; SFmode moves
10623 ;; Disparage the w<->r cases because reloading an invalid address is
10624 @@ -222,6 +355,8 @@
10625 [(set_attr "predicable" "yes")
10626 (set_attr "type"
10627 "r_2_f,f_2_r,fconsts,f_loads,f_stores,load1,store1,fcpys,*")
10628 + (set_attr "neon_type" "neon_mcr,neon_mrc,*,*,*,*,*,neon_vmov,*")
10629 + (set_attr "insn" "*,*,*,*,*,*,*,*,mov")
10630 (set_attr "pool_range" "*,*,*,1020,*,4096,*,*,*")
10631 (set_attr "neg_pool_range" "*,*,*,1008,*,4080,*,*,*")]
10632 )
10633 @@ -258,6 +393,8 @@
10634 [(set_attr "predicable" "yes")
10635 (set_attr "type"
10636 "r_2_f,f_2_r,fconsts,f_load,f_store,load1,store1,fcpys,*")
10637 + (set_attr "neon_type" "neon_mcr,neon_mrc,*,*,*,*,*,neon_vmov,*")
10638 + (set_attr "insn" "*,*,*,*,*,*,*,*,mov")
10639 (set_attr "pool_range" "*,*,*,1020,*,4092,*,*,*")
10640 (set_attr "neg_pool_range" "*,*,*,1008,*,0,*,*,*")]
10641 )
10642 @@ -267,7 +404,7 @@
10643
10644 (define_insn "*movdf_vfp"
10645 [(set (match_operand:DF 0 "nonimmediate_soft_df_operand" "=w,?r,w ,r, m,w ,Uv,w,r")
10646 - (match_operand:DF 1 "soft_df_operand" " ?r,w,Dv,mF,r,UvF,w, w,r"))]
10647 + (match_operand:DF 1 "soft_df_operand" " ?r,w,Dy,mF,r,UvF,w, w,r"))]
10648 "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP
10649 && ( register_operand (operands[0], DFmode)
10650 || register_operand (operands[1], DFmode))"
10651 @@ -280,13 +417,17 @@
10652 case 1:
10653 return \"fmrrd%?\\t%Q0, %R0, %P1\";
10654 case 2:
10655 + gcc_assert (TARGET_VFP_DOUBLE);
10656 return \"fconstd%?\\t%P0, #%G1\";
10657 case 3: case 4:
10658 return output_move_double (operands);
10659 case 5: case 6:
10660 return output_move_vfp (operands);
10661 case 7:
10662 - return \"fcpyd%?\\t%P0, %P1\";
10663 + if (TARGET_VFP_SINGLE)
10664 + return \"fcpys%?\\t%0, %1\;fcpys%?\\t%p0, %p1\";
10665 + else
10666 + return \"fcpyd%?\\t%P0, %P1\";
10667 case 8:
10668 return \"#\";
10669 default:
10670 @@ -296,14 +437,21 @@
10671 "
10672 [(set_attr "type"
10673 "r_2_f,f_2_r,fconstd,f_loadd,f_stored,load2,store2,ffarithd,*")
10674 - (set_attr "length" "4,4,4,8,8,4,4,4,8")
10675 + (set_attr "neon_type" "neon_mcr_2_mcrr,neon_mrrc,*,*,*,*,*,neon_vmov,*")
10676 + (set (attr "length") (cond [(eq_attr "alternative" "3,4,8") (const_int 8)
10677 + (eq_attr "alternative" "7")
10678 + (if_then_else
10679 + (eq (symbol_ref "TARGET_VFP_SINGLE") (const_int 1))
10680 + (const_int 8)
10681 + (const_int 4))]
10682 + (const_int 4)))
10683 (set_attr "pool_range" "*,*,*,1020,*,1020,*,*,*")
10684 (set_attr "neg_pool_range" "*,*,*,1008,*,1008,*,*,*")]
10685 )
10686
10687 (define_insn "*thumb2_movdf_vfp"
10688 [(set (match_operand:DF 0 "nonimmediate_soft_df_operand" "=w,?r,w ,r, m,w ,Uv,w,r")
10689 - (match_operand:DF 1 "soft_df_operand" " ?r,w,Dv,mF,r,UvF,w, w,r"))]
10690 + (match_operand:DF 1 "soft_df_operand" " ?r,w,Dy,mF,r,UvF,w, w,r"))]
10691 "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP"
10692 "*
10693 {
10694 @@ -314,13 +462,17 @@
10695 case 1:
10696 return \"fmrrd%?\\t%Q0, %R0, %P1\";
10697 case 2:
10698 + gcc_assert (TARGET_VFP_DOUBLE);
10699 return \"fconstd%?\\t%P0, #%G1\";
10700 case 3: case 4: case 8:
10701 return output_move_double (operands);
10702 case 5: case 6:
10703 return output_move_vfp (operands);
10704 case 7:
10705 - return \"fcpyd%?\\t%P0, %P1\";
10706 + if (TARGET_VFP_SINGLE)
10707 + return \"fcpys%?\\t%0, %1\;fcpys%?\\t%p0, %p1\";
10708 + else
10709 + return \"fcpyd%?\\t%P0, %P1\";
10710 default:
10711 abort ();
10712 }
10713 @@ -328,7 +480,14 @@
10714 "
10715 [(set_attr "type"
10716 "r_2_f,f_2_r,fconstd,load2,store2,f_load,f_store,ffarithd,*")
10717 - (set_attr "length" "4,4,4,8,8,4,4,4,8")
10718 + (set_attr "neon_type" "neon_mcr_2_mcrr,neon_mrrc,*,*,*,*,*,neon_vmov,*")
10719 + (set (attr "length") (cond [(eq_attr "alternative" "3,4,8") (const_int 8)
10720 + (eq_attr "alternative" "7")
10721 + (if_then_else
10722 + (eq (symbol_ref "TARGET_VFP_SINGLE") (const_int 1))
10723 + (const_int 8)
10724 + (const_int 4))]
10725 + (const_int 4)))
10726 (set_attr "pool_range" "*,*,*,4096,*,1020,*,*,*")
10727 (set_attr "neg_pool_range" "*,*,*,0,*,1008,*,*,*")]
10728 )
10729 @@ -356,7 +515,8 @@
10730 fmrs%D3\\t%0, %2\;fmrs%d3\\t%0, %1"
10731 [(set_attr "conds" "use")
10732 (set_attr "length" "4,4,8,4,4,8,4,4,8")
10733 - (set_attr "type" "fcpys,fcpys,fcpys,r_2_f,r_2_f,r_2_f,f_2_r,f_2_r,f_2_r")]
10734 + (set_attr "type" "fcpys,fcpys,fcpys,r_2_f,r_2_f,r_2_f,f_2_r,f_2_r,f_2_r")
10735 + (set_attr "neon_type" "neon_vmov,neon_vmov,neon_vmov,neon_mcr,neon_mcr,neon_mcr,neon_mrc,neon_mrc,neon_mrc")]
10736 )
10737
10738 (define_insn "*thumb2_movsfcc_vfp"
10739 @@ -379,7 +539,8 @@
10740 ite\\t%D3\;fmrs%D3\\t%0, %2\;fmrs%d3\\t%0, %1"
10741 [(set_attr "conds" "use")
10742 (set_attr "length" "6,6,10,6,6,10,6,6,10")
10743 - (set_attr "type" "fcpys,fcpys,fcpys,r_2_f,r_2_f,r_2_f,f_2_r,f_2_r,f_2_r")]
10744 + (set_attr "type" "fcpys,fcpys,fcpys,r_2_f,r_2_f,r_2_f,f_2_r,f_2_r,f_2_r")
10745 + (set_attr "neon_type" "neon_vmov,neon_vmov,neon_vmov,neon_mcr,neon_mcr,neon_mcr,neon_mrc,neon_mrc,neon_mrc")]
10746 )
10747
10748 (define_insn "*movdfcc_vfp"
10749 @@ -389,7 +550,7 @@
10750 [(match_operand 4 "cc_register" "") (const_int 0)])
10751 (match_operand:DF 1 "s_register_operand" "0,w,w,0,?r,?r,0,w,w")
10752 (match_operand:DF 2 "s_register_operand" "w,0,w,?r,0,?r,w,0,w")))]
10753 - "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP"
10754 + "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10755 "@
10756 fcpyd%D3\\t%P0, %P2
10757 fcpyd%d3\\t%P0, %P1
10758 @@ -402,7 +563,8 @@
10759 fmrrd%D3\\t%Q0, %R0, %P2\;fmrrd%d3\\t%Q0, %R0, %P1"
10760 [(set_attr "conds" "use")
10761 (set_attr "length" "4,4,8,4,4,8,4,4,8")
10762 - (set_attr "type" "ffarithd,ffarithd,ffarithd,r_2_f,r_2_f,r_2_f,f_2_r,f_2_r,f_2_r")]
10763 + (set_attr "type" "ffarithd,ffarithd,ffarithd,r_2_f,r_2_f,r_2_f,f_2_r,f_2_r,f_2_r")
10764 + (set_attr "neon_type" "neon_vmov,neon_vmov,neon_vmov,neon_mcr_2_mcrr,neon_mcr_2_mcrr,neon_mcr_2_mcrr,neon_mrrc,neon_mrrc,neon_mrrc")]
10765 )
10766
10767 (define_insn "*thumb2_movdfcc_vfp"
10768 @@ -412,7 +574,7 @@
10769 [(match_operand 4 "cc_register" "") (const_int 0)])
10770 (match_operand:DF 1 "s_register_operand" "0,w,w,0,?r,?r,0,w,w")
10771 (match_operand:DF 2 "s_register_operand" "w,0,w,?r,0,?r,w,0,w")))]
10772 - "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP"
10773 + "TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10774 "@
10775 it\\t%D3\;fcpyd%D3\\t%P0, %P2
10776 it\\t%d3\;fcpyd%d3\\t%P0, %P1
10777 @@ -425,7 +587,8 @@
10778 ite\\t%D3\;fmrrd%D3\\t%Q0, %R0, %P2\;fmrrd%d3\\t%Q0, %R0, %P1"
10779 [(set_attr "conds" "use")
10780 (set_attr "length" "6,6,10,6,6,10,6,6,10")
10781 - (set_attr "type" "ffarithd,ffarithd,ffarithd,r_2_f,r_2_f,r_2_f,f_2_r,f_2_r,f_2_r")]
10782 + (set_attr "type" "ffarithd,ffarithd,ffarithd,r_2_f,r_2_f,r_2_f,f_2_r,f_2_r,f_2_r")
10783 + (set_attr "neon_type" "neon_vmov,neon_vmov,neon_vmov,neon_mcr_2_mcrr,neon_mcr_2_mcrr,neon_mcr_2_mcrr,neon_mrrc,neon_mrrc,neon_mrrc")]
10784 )
10785
10786
10787 @@ -443,7 +606,7 @@
10788 (define_insn "*absdf2_vfp"
10789 [(set (match_operand:DF 0 "s_register_operand" "=w")
10790 (abs:DF (match_operand:DF 1 "s_register_operand" "w")))]
10791 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10792 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10793 "fabsd%?\\t%P0, %P1"
10794 [(set_attr "predicable" "yes")
10795 (set_attr "type" "ffarithd")]
10796 @@ -463,12 +626,12 @@
10797 (define_insn_and_split "*negdf2_vfp"
10798 [(set (match_operand:DF 0 "s_register_operand" "=w,?r,?r")
10799 (neg:DF (match_operand:DF 1 "s_register_operand" "w,0,r")))]
10800 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10801 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10802 "@
10803 fnegd%?\\t%P0, %P1
10804 #
10805 #"
10806 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP && reload_completed
10807 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE && reload_completed
10808 && arm_general_register_operand (operands[0], DFmode)"
10809 [(set (match_dup 0) (match_dup 1))]
10810 "
10811 @@ -523,7 +686,7 @@
10812 [(set (match_operand:DF 0 "s_register_operand" "=w")
10813 (plus:DF (match_operand:DF 1 "s_register_operand" "w")
10814 (match_operand:DF 2 "s_register_operand" "w")))]
10815 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10816 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10817 "faddd%?\\t%P0, %P1, %P2"
10818 [(set_attr "predicable" "yes")
10819 (set_attr "type" "faddd")]
10820 @@ -544,7 +707,7 @@
10821 [(set (match_operand:DF 0 "s_register_operand" "=w")
10822 (minus:DF (match_operand:DF 1 "s_register_operand" "w")
10823 (match_operand:DF 2 "s_register_operand" "w")))]
10824 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10825 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10826 "fsubd%?\\t%P0, %P1, %P2"
10827 [(set_attr "predicable" "yes")
10828 (set_attr "type" "faddd")]
10829 @@ -567,7 +730,7 @@
10830 [(set (match_operand:DF 0 "s_register_operand" "+w")
10831 (div:DF (match_operand:DF 1 "s_register_operand" "w")
10832 (match_operand:DF 2 "s_register_operand" "w")))]
10833 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10834 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10835 "fdivd%?\\t%P0, %P1, %P2"
10836 [(set_attr "predicable" "yes")
10837 (set_attr "type" "fdivd")]
10838 @@ -590,7 +753,7 @@
10839 [(set (match_operand:DF 0 "s_register_operand" "+w")
10840 (mult:DF (match_operand:DF 1 "s_register_operand" "w")
10841 (match_operand:DF 2 "s_register_operand" "w")))]
10842 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10843 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10844 "fmuld%?\\t%P0, %P1, %P2"
10845 [(set_attr "predicable" "yes")
10846 (set_attr "type" "fmuld")]
10847 @@ -611,7 +774,7 @@
10848 [(set (match_operand:DF 0 "s_register_operand" "+w")
10849 (mult:DF (neg:DF (match_operand:DF 1 "s_register_operand" "w"))
10850 (match_operand:DF 2 "s_register_operand" "w")))]
10851 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10852 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10853 "fnmuld%?\\t%P0, %P1, %P2"
10854 [(set_attr "predicable" "yes")
10855 (set_attr "type" "fmuld")]
10856 @@ -626,7 +789,8 @@
10857 (plus:SF (mult:SF (match_operand:SF 2 "s_register_operand" "t")
10858 (match_operand:SF 3 "s_register_operand" "t"))
10859 (match_operand:SF 1 "s_register_operand" "0")))]
10860 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10861 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP
10862 + && (!arm_tune_marvell_f || optimize_size)"
10863 "fmacs%?\\t%0, %2, %3"
10864 [(set_attr "predicable" "yes")
10865 (set_attr "type" "fmacs")]
10866 @@ -637,7 +801,8 @@
10867 (plus:DF (mult:DF (match_operand:DF 2 "s_register_operand" "w")
10868 (match_operand:DF 3 "s_register_operand" "w"))
10869 (match_operand:DF 1 "s_register_operand" "0")))]
10870 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10871 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
10872 + && (!arm_tune_marvell_f || optimize_size)"
10873 "fmacd%?\\t%P0, %P2, %P3"
10874 [(set_attr "predicable" "yes")
10875 (set_attr "type" "fmacd")]
10876 @@ -649,7 +814,8 @@
10877 (minus:SF (mult:SF (match_operand:SF 2 "s_register_operand" "t")
10878 (match_operand:SF 3 "s_register_operand" "t"))
10879 (match_operand:SF 1 "s_register_operand" "0")))]
10880 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10881 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP
10882 + && (!arm_tune_marvell_f || optimize_size)"
10883 "fmscs%?\\t%0, %2, %3"
10884 [(set_attr "predicable" "yes")
10885 (set_attr "type" "fmacs")]
10886 @@ -660,7 +826,8 @@
10887 (minus:DF (mult:DF (match_operand:DF 2 "s_register_operand" "w")
10888 (match_operand:DF 3 "s_register_operand" "w"))
10889 (match_operand:DF 1 "s_register_operand" "0")))]
10890 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10891 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
10892 + && (!arm_tune_marvell_f || optimize_size)"
10893 "fmscd%?\\t%P0, %P2, %P3"
10894 [(set_attr "predicable" "yes")
10895 (set_attr "type" "fmacd")]
10896 @@ -672,7 +839,8 @@
10897 (minus:SF (match_operand:SF 1 "s_register_operand" "0")
10898 (mult:SF (match_operand:SF 2 "s_register_operand" "t")
10899 (match_operand:SF 3 "s_register_operand" "t"))))]
10900 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10901 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP
10902 + && (!arm_tune_marvell_f || optimize_size)"
10903 "fnmacs%?\\t%0, %2, %3"
10904 [(set_attr "predicable" "yes")
10905 (set_attr "type" "fmacs")]
10906 @@ -683,7 +851,8 @@
10907 (minus:DF (match_operand:DF 1 "s_register_operand" "0")
10908 (mult:DF (match_operand:DF 2 "s_register_operand" "w")
10909 (match_operand:DF 3 "s_register_operand" "w"))))]
10910 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10911 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
10912 + && (!arm_tune_marvell_f || optimize_size)"
10913 "fnmacd%?\\t%P0, %P2, %P3"
10914 [(set_attr "predicable" "yes")
10915 (set_attr "type" "fmacd")]
10916 @@ -697,7 +866,8 @@
10917 (neg:SF (match_operand:SF 2 "s_register_operand" "t"))
10918 (match_operand:SF 3 "s_register_operand" "t"))
10919 (match_operand:SF 1 "s_register_operand" "0")))]
10920 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10921 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP
10922 + && (!arm_tune_marvell_f || optimize_size)"
10923 "fnmscs%?\\t%0, %2, %3"
10924 [(set_attr "predicable" "yes")
10925 (set_attr "type" "fmacs")]
10926 @@ -709,7 +879,8 @@
10927 (neg:DF (match_operand:DF 2 "s_register_operand" "w"))
10928 (match_operand:DF 3 "s_register_operand" "w"))
10929 (match_operand:DF 1 "s_register_operand" "0")))]
10930 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10931 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
10932 + && (!arm_tune_marvell_f || optimize_size)"
10933 "fnmscd%?\\t%P0, %P2, %P3"
10934 [(set_attr "predicable" "yes")
10935 (set_attr "type" "fmacd")]
10936 @@ -721,7 +892,7 @@
10937 (define_insn "*extendsfdf2_vfp"
10938 [(set (match_operand:DF 0 "s_register_operand" "=w")
10939 (float_extend:DF (match_operand:SF 1 "s_register_operand" "t")))]
10940 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10941 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10942 "fcvtds%?\\t%P0, %1"
10943 [(set_attr "predicable" "yes")
10944 (set_attr "type" "f_cvt")]
10945 @@ -730,12 +901,30 @@
10946 (define_insn "*truncdfsf2_vfp"
10947 [(set (match_operand:SF 0 "s_register_operand" "=t")
10948 (float_truncate:SF (match_operand:DF 1 "s_register_operand" "w")))]
10949 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10950 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10951 "fcvtsd%?\\t%0, %P1"
10952 [(set_attr "predicable" "yes")
10953 (set_attr "type" "f_cvt")]
10954 )
10955
10956 +(define_insn "extendhfsf2"
10957 + [(set (match_operand:SF 0 "s_register_operand" "=t")
10958 + (float_extend:SF (match_operand:HF 1 "s_register_operand" "t")))]
10959 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FP16"
10960 + "vcvtb%?.f32.f16\\t%0, %1"
10961 + [(set_attr "predicable" "yes")
10962 + (set_attr "type" "f_cvt")]
10963 +)
10964 +
10965 +(define_insn "truncsfhf2"
10966 + [(set (match_operand:HF 0 "s_register_operand" "=t")
10967 + (float_truncate:HF (match_operand:SF 1 "s_register_operand" "t")))]
10968 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FP16"
10969 + "vcvtb%?.f16.f32\\t%0, %1"
10970 + [(set_attr "predicable" "yes")
10971 + (set_attr "type" "f_cvt")]
10972 +)
10973 +
10974 (define_insn "*truncsisf2_vfp"
10975 [(set (match_operand:SI 0 "s_register_operand" "=t")
10976 (fix:SI (fix:SF (match_operand:SF 1 "s_register_operand" "t"))))]
10977 @@ -748,7 +937,7 @@
10978 (define_insn "*truncsidf2_vfp"
10979 [(set (match_operand:SI 0 "s_register_operand" "=t")
10980 (fix:SI (fix:DF (match_operand:DF 1 "s_register_operand" "w"))))]
10981 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10982 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10983 "ftosizd%?\\t%0, %P1"
10984 [(set_attr "predicable" "yes")
10985 (set_attr "type" "f_cvt")]
10986 @@ -767,7 +956,7 @@
10987 (define_insn "fixuns_truncdfsi2"
10988 [(set (match_operand:SI 0 "s_register_operand" "=t")
10989 (unsigned_fix:SI (fix:DF (match_operand:DF 1 "s_register_operand" "t"))))]
10990 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
10991 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
10992 "ftouizd%?\\t%0, %P1"
10993 [(set_attr "predicable" "yes")
10994 (set_attr "type" "f_cvt")]
10995 @@ -786,7 +975,7 @@
10996 (define_insn "*floatsidf2_vfp"
10997 [(set (match_operand:DF 0 "s_register_operand" "=w")
10998 (float:DF (match_operand:SI 1 "s_register_operand" "t")))]
10999 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11000 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11001 "fsitod%?\\t%P0, %1"
11002 [(set_attr "predicable" "yes")
11003 (set_attr "type" "f_cvt")]
11004 @@ -805,7 +994,7 @@
11005 (define_insn "floatunssidf2"
11006 [(set (match_operand:DF 0 "s_register_operand" "=w")
11007 (unsigned_float:DF (match_operand:SI 1 "s_register_operand" "t")))]
11008 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11009 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11010 "fuitod%?\\t%P0, %1"
11011 [(set_attr "predicable" "yes")
11012 (set_attr "type" "f_cvt")]
11013 @@ -826,7 +1015,7 @@
11014 (define_insn "*sqrtdf2_vfp"
11015 [(set (match_operand:DF 0 "s_register_operand" "=w")
11016 (sqrt:DF (match_operand:DF 1 "s_register_operand" "w")))]
11017 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11018 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11019 "fsqrtd%?\\t%P0, %P1"
11020 [(set_attr "predicable" "yes")
11021 (set_attr "type" "fdivd")]
11022 @@ -878,9 +1067,9 @@
11023 [(set (reg:CCFP CC_REGNUM)
11024 (compare:CCFP (match_operand:DF 0 "s_register_operand" "w")
11025 (match_operand:DF 1 "vfp_compare_operand" "wG")))]
11026 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11027 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11028 "#"
11029 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11030 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11031 [(set (reg:CCFP VFPCC_REGNUM)
11032 (compare:CCFP (match_dup 0)
11033 (match_dup 1)))
11034 @@ -893,9 +1082,9 @@
11035 [(set (reg:CCFPE CC_REGNUM)
11036 (compare:CCFPE (match_operand:DF 0 "s_register_operand" "w")
11037 (match_operand:DF 1 "vfp_compare_operand" "wG")))]
11038 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11039 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11040 "#"
11041 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11042 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11043 [(set (reg:CCFPE VFPCC_REGNUM)
11044 (compare:CCFPE (match_dup 0)
11045 (match_dup 1)))
11046 @@ -935,7 +1124,7 @@
11047 [(set (reg:CCFP VFPCC_REGNUM)
11048 (compare:CCFP (match_operand:DF 0 "s_register_operand" "w,w")
11049 (match_operand:DF 1 "vfp_compare_operand" "w,G")))]
11050 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11051 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11052 "@
11053 fcmpd%?\\t%P0, %P1
11054 fcmpzd%?\\t%P0"
11055 @@ -947,7 +1136,7 @@
11056 [(set (reg:CCFPE VFPCC_REGNUM)
11057 (compare:CCFPE (match_operand:DF 0 "s_register_operand" "w,w")
11058 (match_operand:DF 1 "vfp_compare_operand" "w,G")))]
11059 - "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP"
11060 + "TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE"
11061 "@
11062 fcmped%?\\t%P0, %P1
11063 fcmpezd%?\\t%P0"
11064 diff -Nur a/gcc/config/arm/vxworks.h b/gcc/config/arm/vxworks.h
11065 --- a/gcc/config/arm/vxworks.h 2009-02-20 16:20:38.000000000 +0100
11066 +++ b/gcc/config/arm/vxworks.h 2010-01-25 09:50:28.995687913 +0100
11067 @@ -97,7 +97,7 @@
11068 /* There is no default multilib. */
11069 #undef MULTILIB_DEFAULTS
11070
11071 -#define FPUTYPE_DEFAULT FPUTYPE_VFP
11072 +#define FPUTYPE_DEFAULT "vfp"
11073
11074 #undef FUNCTION_PROFILER
11075 #define FUNCTION_PROFILER VXWORKS_FUNCTION_PROFILER
11076 diff -Nur a/gcc/config/arm/wrs-linux.h b/gcc/config/arm/wrs-linux.h
11077 --- a/gcc/config/arm/wrs-linux.h 1970-01-01 01:00:00.000000000 +0100
11078 +++ b/gcc/config/arm/wrs-linux.h 2010-01-25 09:50:28.995687913 +0100
11079 @@ -0,0 +1,76 @@
11080 +/* Wind River GNU/Linux Configuration.
11081 + Copyright (C) 2006, 2007, 2008
11082 + Free Software Foundation, Inc.
11083 +
11084 +This file is part of GCC.
11085 +
11086 +GCC is free software; you can redistribute it and/or modify
11087 +it under the terms of the GNU General Public License as published by
11088 +the Free Software Foundation; either version 3, or (at your option)
11089 +any later version.
11090 +
11091 +GCC is distributed in the hope that it will be useful,
11092 +but WITHOUT ANY WARRANTY; without even the implied warranty of
11093 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11094 +GNU General Public License for more details.
11095 +
11096 +You should have received a copy of the GNU General Public License
11097 +along with GCC; see the file COPYING3. If not see
11098 +<http://www.gnu.org/licenses/>. */
11099 +
11100 +/* Use the ARM926EJ-S by default. */
11101 +#undef SUBTARGET_CPU_DEFAULT
11102 +#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm926ejs
11103 +
11104 +/* Add a -tiwmmxt option for convenience in generating multilibs.
11105 + This option generates big-endian IWMMXT code. */
11106 +#undef CC1_SPEC
11107 +#define CC1_SPEC " \
11108 + %{tarm926ej-s: -mcpu=arm926ej-s ; \
11109 + tiwmmxt: -mcpu=iwmmxt ; \
11110 + tiwmmxt2: -mcpu=iwmmxt ; \
11111 + txscale: -mcpu=xscale -mbig-endian ; \
11112 + tarm920t: -mcpu=arm920t ; \
11113 + tthumb2: %{!mcpu=*:%{!march=*:-march=armv6t2}} -mthumb ; \
11114 + tcortex-a8-be8: -mcpu=cortex-a8 -mbig-endian -mfloat-abi=softfp \
11115 + -mfpu=neon } \
11116 + %{txscale:%{mfloat-abi=softfp:%eXScale VFP multilib not provided}} \
11117 + %{tarm920t:%{mfloat-abi=softfp:%eARM920T VFP multilib not provided}} \
11118 + %{profile:-p}"
11119 +
11120 +/* Since the ARM926EJ-S is the default processor, we do not need to
11121 + provide an explicit multilib for that processor. */
11122 +#undef MULTILIB_DEFAULTS
11123 +#define MULTILIB_DEFAULTS \
11124 + { "tarm926ej-s" }
11125 +
11126 +/* The GLIBC headers are in /usr/include, relative to the sysroot; the
11127 + uClibc headers are in /uclibc/usr/include. */
11128 +#undef SYSROOT_HEADERS_SUFFIX_SPEC
11129 +#define SYSROOT_HEADERS_SUFFIX_SPEC \
11130 + "%{muclibc:/uclibc}"
11131 +
11132 +/* Translate -tiwmmxt appropriately for the assembler. The -meabi=5
11133 + option is the relevant part of SUBTARGET_EXTRA_ASM_SPEC in bpabi.h. */
11134 +#undef SUBTARGET_EXTRA_ASM_SPEC
11135 +#define SUBTARGET_EXTRA_ASM_SPEC \
11136 + "%{tiwmmxt2:-mcpu=iwmmxt2} %{tiwmmxt:-mcpu=iwmmxt} %{txscale:-mcpu=xscale -EB} %{tcortex-a8-be8:-mcpu=cortex-a8 -EB} -meabi=5"
11137 +
11138 +/* Translate -tiwmmxt for the linker. */
11139 +#undef SUBTARGET_EXTRA_LINK_SPEC
11140 +#define SUBTARGET_EXTRA_LINK_SPEC \
11141 + " %{tiwmmxt:-m armelf_linux_eabi ; \
11142 + txscale:-m armelfb_linux_eabi ; \
11143 + tcortex-a8-be8:-m armelfb_linux_eabi %{!r:--be8} ; \
11144 + : -m armelf_linux_eabi}"
11145 +
11146 +/* The various C libraries each have their own subdirectory. */
11147 +#undef SYSROOT_SUFFIX_SPEC
11148 +#define SYSROOT_SUFFIX_SPEC \
11149 + "%{muclibc:/uclibc}%{tiwmmxt:/tiwmmxt ; \
11150 + tiwmmxt2:/tiwmmxt ; \
11151 + txscale:/txscale ; \
11152 + tarm920t:/tarm920t ; \
11153 + tthumb2:/thumb2 ; \
11154 + tcortex-a8-be8:/cortex-a8-be8}%{!tthumb2:%{!tcortex-a8-be8:%{mfloat-abi=softfp:/softfp}}}"
11155 +
11156 diff -Nur a/gcc/config/i386/atom.md b/gcc/config/i386/atom.md
11157 --- a/gcc/config/i386/atom.md 1970-01-01 01:00:00.000000000 +0100
11158 +++ b/gcc/config/i386/atom.md 2010-01-25 09:50:28.995687913 +0100
11159 @@ -0,0 +1,795 @@
11160 +;; Atom Scheduling
11161 +;; Copyright (C) 2009 Free Software Foundation, Inc.
11162 +;;
11163 +;; This file is part of GCC.
11164 +;;
11165 +;; GCC is free software; you can redistribute it and/or modify
11166 +;; it under the terms of the GNU General Public License as published by
11167 +;; the Free Software Foundation; either version 3, or (at your option)
11168 +;; any later version.
11169 +;;
11170 +;; GCC is distributed in the hope that it will be useful,
11171 +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
11172 +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11173 +;; GNU General Public License for more details.
11174 +;;
11175 +;; You should have received a copy of the GNU General Public License
11176 +;; along with GCC; see the file COPYING3. If not see
11177 +;; <http://www.gnu.org/licenses/>.
11178 +;;
11179 +;; Atom is an in-order core with two integer pipelines.
11180 +
11181 +
11182 +(define_attr "atom_unit" "sishuf,simul,jeu,complex,other"
11183 + (const_string "other"))
11184 +
11185 +(define_attr "atom_sse_attr" "rcp,movdup,lfence,fence,prefetch,sqrt,mxcsr,other"
11186 + (const_string "other"))
11187 +
11188 +(define_automaton "atom")
11189 +
11190 +;; Atom has two ports: port 0 and port 1 connecting to all execution units
11191 +(define_cpu_unit "atom-port-0,atom-port-1" "atom")
11192 +
11193 +;; EU: Execution Unit
11194 +;; Atom EUs are connected by port 0 or port 1.
11195 +
11196 +(define_cpu_unit "atom-eu-0, atom-eu-1,
11197 + atom-imul-1, atom-imul-2, atom-imul-3, atom-imul-4"
11198 + "atom")
11199 +
11200 +;; Some EUs have duplicated copied and can be accessed via either
11201 +;; port 0 or port 1
11202 +;; (define_reservation "atom-port-either" "(atom-port-0 | atom-port-1)")
11203 +
11204 +;;; Some instructions is dual-pipe execution, need both ports
11205 +;;; Complex multi-op macro-instructoins need both ports and all EUs
11206 +(define_reservation "atom-port-dual" "(atom-port-0 + atom-port-1)")
11207 +(define_reservation "atom-all-eu" "(atom-eu-0 + atom-eu-1 +
11208 + atom-imul-1 + atom-imul-2 + atom-imul-3 +
11209 + atom-imul-4)")
11210 +
11211 +;;; Most of simple instructions have 1 cycle latency. Some of them
11212 +;;; issue in port 0, some in port 0 and some in either port.
11213 +(define_reservation "atom-simple-0" "(atom-port-0 + atom-eu-0)")
11214 +(define_reservation "atom-simple-1" "(atom-port-1 + atom-eu-1)")
11215 +(define_reservation "atom-simple-either" "(atom-simple-0 | atom-simple-1)")
11216 +
11217 +;;; Some insn issues in port 0 with 3 cycle latency and 1 cycle tput
11218 +(define_reservation "atom-eu-0-3-1" "(atom-port-0 + atom-eu-0, nothing*2)")
11219 +
11220 +;;; fmul insn can have 4 or 5 cycles latency
11221 +(define_reservation "atom-fmul-5c" "(atom-port-0 + atom-eu-0), nothing*4")
11222 +(define_reservation "atom-fmul-4c" "(atom-port-0 + atom-eu-0), nothing*3")
11223 +
11224 +;;; fadd can has 5 cycles latency depends on instruction forms
11225 +(define_reservation "atom-fadd-5c" "(atom-port-1 + atom-eu-1), nothing*5")
11226 +
11227 +;;; imul insn has 5 cycles latency
11228 +(define_reservation "atom-imul-32"
11229 + "atom-imul-1, atom-imul-2, atom-imul-3, atom-imul-4,
11230 + atom-port-0")
11231 +;;; imul instruction excludes other non-FP instructions.
11232 +(exclusion_set "atom-eu-0, atom-eu-1"
11233 + "atom-imul-1, atom-imul-2, atom-imul-3, atom-imul-4")
11234 +
11235 +;;; dual-execution instructions can have 1,2,4,5 cycles latency depends on
11236 +;;; instruction forms
11237 +(define_reservation "atom-dual-1c" "(atom-port-dual + atom-eu-0 + atom-eu-1)")
11238 +(define_reservation "atom-dual-2c"
11239 + "(atom-port-dual + atom-eu-0 + atom-eu-1, nothing)")
11240 +(define_reservation "atom-dual-5c"
11241 + "(atom-port-dual + atom-eu-0 + atom-eu-1, nothing*4)")
11242 +
11243 +;;; Complex macro-instruction has variants of latency, and uses both ports.
11244 +(define_reservation "atom-complex" "(atom-port-dual + atom-all-eu)")
11245 +
11246 +(define_insn_reservation "atom_other" 9
11247 + (and (eq_attr "cpu" "atom")
11248 + (and (eq_attr "type" "other")
11249 + (eq_attr "atom_unit" "!jeu")))
11250 + "atom-complex, atom-all-eu*8")
11251 +
11252 +;; return has type "other" with atom_unit "jeu"
11253 +(define_insn_reservation "atom_other_2" 1
11254 + (and (eq_attr "cpu" "atom")
11255 + (and (eq_attr "type" "other")
11256 + (eq_attr "atom_unit" "jeu")))
11257 + "atom-dual-1c")
11258 +
11259 +(define_insn_reservation "atom_multi" 9
11260 + (and (eq_attr "cpu" "atom")
11261 + (eq_attr "type" "multi"))
11262 + "atom-complex, atom-all-eu*8")
11263 +
11264 +;; Normal alu insns without carry
11265 +(define_insn_reservation "atom_alu" 1
11266 + (and (eq_attr "cpu" "atom")
11267 + (and (eq_attr "type" "alu")
11268 + (and (eq_attr "memory" "none")
11269 + (eq_attr "use_carry" "0"))))
11270 + "atom-simple-either")
11271 +
11272 +;; Normal alu insns without carry
11273 +(define_insn_reservation "atom_alu_mem" 1
11274 + (and (eq_attr "cpu" "atom")
11275 + (and (eq_attr "type" "alu")
11276 + (and (eq_attr "memory" "!none")
11277 + (eq_attr "use_carry" "0"))))
11278 + "atom-simple-either")
11279 +
11280 +;; Alu insn consuming CF, such as add/sbb
11281 +(define_insn_reservation "atom_alu_carry" 1
11282 + (and (eq_attr "cpu" "atom")
11283 + (and (eq_attr "type" "alu")
11284 + (and (eq_attr "memory" "none")
11285 + (eq_attr "use_carry" "1"))))
11286 + "atom-simple-either")
11287 +
11288 +;; Alu insn consuming CF, such as add/sbb
11289 +(define_insn_reservation "atom_alu_carry_mem" 1
11290 + (and (eq_attr "cpu" "atom")
11291 + (and (eq_attr "type" "alu")
11292 + (and (eq_attr "memory" "!none")
11293 + (eq_attr "use_carry" "1"))))
11294 + "atom-simple-either")
11295 +
11296 +(define_insn_reservation "atom_alu1" 1
11297 + (and (eq_attr "cpu" "atom")
11298 + (and (eq_attr "type" "alu1")
11299 + (eq_attr "memory" "none")))
11300 + "atom-simple-either")
11301 +
11302 +(define_insn_reservation "atom_alu1_mem" 1
11303 + (and (eq_attr "cpu" "atom")
11304 + (and (eq_attr "type" "alu1")
11305 + (eq_attr "memory" "!none")))
11306 + "atom-simple-either")
11307 +
11308 +(define_insn_reservation "atom_negnot" 1
11309 + (and (eq_attr "cpu" "atom")
11310 + (and (eq_attr "type" "negnot")
11311 + (eq_attr "memory" "none")))
11312 + "atom-simple-either")
11313 +
11314 +(define_insn_reservation "atom_negnot_mem" 1
11315 + (and (eq_attr "cpu" "atom")
11316 + (and (eq_attr "type" "negnot")
11317 + (eq_attr "memory" "!none")))
11318 + "atom-simple-either")
11319 +
11320 +(define_insn_reservation "atom_imov" 1
11321 + (and (eq_attr "cpu" "atom")
11322 + (and (eq_attr "type" "imov")
11323 + (eq_attr "memory" "none")))
11324 + "atom-simple-either")
11325 +
11326 +(define_insn_reservation "atom_imov_mem" 1
11327 + (and (eq_attr "cpu" "atom")
11328 + (and (eq_attr "type" "imov")
11329 + (eq_attr "memory" "!none")))
11330 + "atom-simple-either")
11331 +
11332 +;; 16<-16, 32<-32
11333 +(define_insn_reservation "atom_imovx" 1
11334 + (and (eq_attr "cpu" "atom")
11335 + (and (eq_attr "type" "imovx")
11336 + (and (eq_attr "memory" "none")
11337 + (ior (and (match_operand:HI 0 "register_operand")
11338 + (match_operand:HI 1 "general_operand"))
11339 + (and (match_operand:SI 0 "register_operand")
11340 + (match_operand:SI 1 "general_operand"))))))
11341 + "atom-simple-either")
11342 +
11343 +;; 16<-16, 32<-32, mem
11344 +(define_insn_reservation "atom_imovx_mem" 1
11345 + (and (eq_attr "cpu" "atom")
11346 + (and (eq_attr "type" "imovx")
11347 + (and (eq_attr "memory" "!none")
11348 + (ior (and (match_operand:HI 0 "register_operand")
11349 + (match_operand:HI 1 "general_operand"))
11350 + (and (match_operand:SI 0 "register_operand")
11351 + (match_operand:SI 1 "general_operand"))))))
11352 + "atom-simple-either")
11353 +
11354 +;; 32<-16, 32<-8, 64<-16, 64<-8, 64<-32, 8<-8
11355 +(define_insn_reservation "atom_imovx_2" 1
11356 + (and (eq_attr "cpu" "atom")
11357 + (and (eq_attr "type" "imovx")
11358 + (and (eq_attr "memory" "none")
11359 + (ior (match_operand:QI 0 "register_operand")
11360 + (ior (and (match_operand:SI 0 "register_operand")
11361 + (not (match_operand:SI 1 "general_operand")))
11362 + (match_operand:DI 0 "register_operand"))))))
11363 + "atom-simple-0")
11364 +
11365 +;; 32<-16, 32<-8, 64<-16, 64<-8, 64<-32, 8<-8, mem
11366 +(define_insn_reservation "atom_imovx_2_mem" 1
11367 + (and (eq_attr "cpu" "atom")
11368 + (and (eq_attr "type" "imovx")
11369 + (and (eq_attr "memory" "!none")
11370 + (ior (match_operand:QI 0 "register_operand")
11371 + (ior (and (match_operand:SI 0 "register_operand")
11372 + (not (match_operand:SI 1 "general_operand")))
11373 + (match_operand:DI 0 "register_operand"))))))
11374 + "atom-simple-0")
11375 +
11376 +;; 16<-8
11377 +(define_insn_reservation "atom_imovx_3" 3
11378 + (and (eq_attr "cpu" "atom")
11379 + (and (eq_attr "type" "imovx")
11380 + (and (match_operand:HI 0 "register_operand")
11381 + (match_operand:QI 1 "general_operand"))))
11382 + "atom-complex, atom-all-eu*2")
11383 +
11384 +(define_insn_reservation "atom_lea" 1
11385 + (and (eq_attr "cpu" "atom")
11386 + (and (eq_attr "type" "lea")
11387 + (eq_attr "mode" "!HI")))
11388 + "atom-simple-either")
11389 +
11390 +;; lea 16bit address is complex insn
11391 +(define_insn_reservation "atom_lea_2" 2
11392 + (and (eq_attr "cpu" "atom")
11393 + (and (eq_attr "type" "lea")
11394 + (eq_attr "mode" "HI")))
11395 + "atom-complex, atom-all-eu")
11396 +
11397 +(define_insn_reservation "atom_incdec" 1
11398 + (and (eq_attr "cpu" "atom")
11399 + (and (eq_attr "type" "incdec")
11400 + (eq_attr "memory" "none")))
11401 + "atom-simple-either")
11402 +
11403 +(define_insn_reservation "atom_incdec_mem" 1
11404 + (and (eq_attr "cpu" "atom")
11405 + (and (eq_attr "type" "incdec")
11406 + (eq_attr "memory" "!none")))
11407 + "atom-simple-either")
11408 +
11409 +;; simple shift instruction use SHIFT eu, none memory
11410 +(define_insn_reservation "atom_ishift" 1
11411 + (and (eq_attr "cpu" "atom")
11412 + (and (eq_attr "type" "ishift")
11413 + (and (eq_attr "memory" "none") (eq_attr "prefix_0f" "0"))))
11414 + "atom-simple-0")
11415 +
11416 +;; simple shift instruction use SHIFT eu, memory
11417 +(define_insn_reservation "atom_ishift_mem" 1
11418 + (and (eq_attr "cpu" "atom")
11419 + (and (eq_attr "type" "ishift")
11420 + (and (eq_attr "memory" "!none") (eq_attr "prefix_0f" "0"))))
11421 + "atom-simple-0")
11422 +
11423 +;; DF shift (prefixed with 0f) is complex insn with latency of 7 cycles
11424 +(define_insn_reservation "atom_ishift_3" 7
11425 + (and (eq_attr "cpu" "atom")
11426 + (and (eq_attr "type" "ishift")
11427 + (eq_attr "prefix_0f" "1")))
11428 + "atom-complex, atom-all-eu*6")
11429 +
11430 +(define_insn_reservation "atom_ishift1" 1
11431 + (and (eq_attr "cpu" "atom")
11432 + (and (eq_attr "type" "ishift1")
11433 + (eq_attr "memory" "none")))
11434 + "atom-simple-0")
11435 +
11436 +(define_insn_reservation "atom_ishift1_mem" 1
11437 + (and (eq_attr "cpu" "atom")
11438 + (and (eq_attr "type" "ishift1")
11439 + (eq_attr "memory" "!none")))
11440 + "atom-simple-0")
11441 +
11442 +(define_insn_reservation "atom_rotate" 1
11443 + (and (eq_attr "cpu" "atom")
11444 + (and (eq_attr "type" "rotate")
11445 + (eq_attr "memory" "none")))
11446 + "atom-simple-0")
11447 +
11448 +(define_insn_reservation "atom_rotate_mem" 1
11449 + (and (eq_attr "cpu" "atom")
11450 + (and (eq_attr "type" "rotate")
11451 + (eq_attr "memory" "!none")))
11452 + "atom-simple-0")
11453 +
11454 +(define_insn_reservation "atom_rotate1" 1
11455 + (and (eq_attr "cpu" "atom")
11456 + (and (eq_attr "type" "rotate1")
11457 + (eq_attr "memory" "none")))
11458 + "atom-simple-0")
11459 +
11460 +(define_insn_reservation "atom_rotate1_mem" 1
11461 + (and (eq_attr "cpu" "atom")
11462 + (and (eq_attr "type" "rotate1")
11463 + (eq_attr "memory" "!none")))
11464 + "atom-simple-0")
11465 +
11466 +(define_insn_reservation "atom_imul" 5
11467 + (and (eq_attr "cpu" "atom")
11468 + (and (eq_attr "type" "imul")
11469 + (and (eq_attr "memory" "none") (eq_attr "mode" "SI"))))
11470 + "atom-imul-32")
11471 +
11472 +(define_insn_reservation "atom_imul_mem" 5
11473 + (and (eq_attr "cpu" "atom")
11474 + (and (eq_attr "type" "imul")
11475 + (and (eq_attr "memory" "!none") (eq_attr "mode" "SI"))))
11476 + "atom-imul-32")
11477 +
11478 +;; latency set to 10 as common 64x64 imul
11479 +(define_insn_reservation "atom_imul_3" 10
11480 + (and (eq_attr "cpu" "atom")
11481 + (and (eq_attr "type" "imul")
11482 + (eq_attr "mode" "!SI")))
11483 + "atom-complex, atom-all-eu*9")
11484 +
11485 +(define_insn_reservation "atom_idiv" 65
11486 + (and (eq_attr "cpu" "atom")
11487 + (eq_attr "type" "idiv"))
11488 + "atom-complex, atom-all-eu*32, nothing*32")
11489 +
11490 +(define_insn_reservation "atom_icmp" 1
11491 + (and (eq_attr "cpu" "atom")
11492 + (and (eq_attr "type" "icmp")
11493 + (eq_attr "memory" "none")))
11494 + "atom-simple-either")
11495 +
11496 +(define_insn_reservation "atom_icmp_mem" 1
11497 + (and (eq_attr "cpu" "atom")
11498 + (and (eq_attr "type" "icmp")
11499 + (eq_attr "memory" "!none")))
11500 + "atom-simple-either")
11501 +
11502 +(define_insn_reservation "atom_test" 1
11503 + (and (eq_attr "cpu" "atom")
11504 + (and (eq_attr "type" "test")
11505 + (eq_attr "memory" "none")))
11506 + "atom-simple-either")
11507 +
11508 +(define_insn_reservation "atom_test_mem" 1
11509 + (and (eq_attr "cpu" "atom")
11510 + (and (eq_attr "type" "test")
11511 + (eq_attr "memory" "!none")))
11512 + "atom-simple-either")
11513 +
11514 +(define_insn_reservation "atom_ibr" 1
11515 + (and (eq_attr "cpu" "atom")
11516 + (and (eq_attr "type" "ibr")
11517 + (eq_attr "memory" "!load")))
11518 + "atom-simple-1")
11519 +
11520 +;; complex if jump target is from address
11521 +(define_insn_reservation "atom_ibr_2" 2
11522 + (and (eq_attr "cpu" "atom")
11523 + (and (eq_attr "type" "ibr")
11524 + (eq_attr "memory" "load")))
11525 + "atom-complex, atom-all-eu")
11526 +
11527 +(define_insn_reservation "atom_setcc" 1
11528 + (and (eq_attr "cpu" "atom")
11529 + (and (eq_attr "type" "setcc")
11530 + (eq_attr "memory" "!store")))
11531 + "atom-simple-either")
11532 +
11533 +;; 2 cycles complex if target is in memory
11534 +(define_insn_reservation "atom_setcc_2" 2
11535 + (and (eq_attr "cpu" "atom")
11536 + (and (eq_attr "type" "setcc")
11537 + (eq_attr "memory" "store")))
11538 + "atom-complex, atom-all-eu")
11539 +
11540 +(define_insn_reservation "atom_icmov" 1
11541 + (and (eq_attr "cpu" "atom")
11542 + (and (eq_attr "type" "icmov")
11543 + (eq_attr "memory" "none")))
11544 + "atom-simple-either")
11545 +
11546 +(define_insn_reservation "atom_icmov_mem" 1
11547 + (and (eq_attr "cpu" "atom")
11548 + (and (eq_attr "type" "icmov")
11549 + (eq_attr "memory" "!none")))
11550 + "atom-simple-either")
11551 +
11552 +;; UCODE if segreg, ignored
11553 +(define_insn_reservation "atom_push" 2
11554 + (and (eq_attr "cpu" "atom")
11555 + (eq_attr "type" "push"))
11556 + "atom-dual-2c")
11557 +
11558 +;; pop r64 is 1 cycle. UCODE if segreg, ignored
11559 +(define_insn_reservation "atom_pop" 1
11560 + (and (eq_attr "cpu" "atom")
11561 + (and (eq_attr "type" "pop")
11562 + (eq_attr "mode" "DI")))
11563 + "atom-dual-1c")
11564 +
11565 +;; pop non-r64 is 2 cycles. UCODE if segreg, ignored
11566 +(define_insn_reservation "atom_pop_2" 2
11567 + (and (eq_attr "cpu" "atom")
11568 + (and (eq_attr "type" "pop")
11569 + (eq_attr "mode" "!DI")))
11570 + "atom-dual-2c")
11571 +
11572 +;; UCODE if segreg, ignored
11573 +(define_insn_reservation "atom_call" 1
11574 + (and (eq_attr "cpu" "atom")
11575 + (eq_attr "type" "call"))
11576 + "atom-dual-1c")
11577 +
11578 +(define_insn_reservation "atom_callv" 1
11579 + (and (eq_attr "cpu" "atom")
11580 + (eq_attr "type" "callv"))
11581 + "atom-dual-1c")
11582 +
11583 +(define_insn_reservation "atom_leave" 3
11584 + (and (eq_attr "cpu" "atom")
11585 + (eq_attr "type" "leave"))
11586 + "atom-complex, atom-all-eu*2")
11587 +
11588 +(define_insn_reservation "atom_str" 3
11589 + (and (eq_attr "cpu" "atom")
11590 + (eq_attr "type" "str"))
11591 + "atom-complex, atom-all-eu*2")
11592 +
11593 +(define_insn_reservation "atom_sselog" 1
11594 + (and (eq_attr "cpu" "atom")
11595 + (and (eq_attr "type" "sselog")
11596 + (eq_attr "memory" "none")))
11597 + "atom-simple-either")
11598 +
11599 +(define_insn_reservation "atom_sselog_mem" 1
11600 + (and (eq_attr "cpu" "atom")
11601 + (and (eq_attr "type" "sselog")
11602 + (eq_attr "memory" "!none")))
11603 + "atom-simple-either")
11604 +
11605 +(define_insn_reservation "atom_sselog1" 1
11606 + (and (eq_attr "cpu" "atom")
11607 + (and (eq_attr "type" "sselog1")
11608 + (eq_attr "memory" "none")))
11609 + "atom-simple-0")
11610 +
11611 +(define_insn_reservation "atom_sselog1_mem" 1
11612 + (and (eq_attr "cpu" "atom")
11613 + (and (eq_attr "type" "sselog1")
11614 + (eq_attr "memory" "!none")))
11615 + "atom-simple-0")
11616 +
11617 +;; not pmad, not psad
11618 +(define_insn_reservation "atom_sseiadd" 1
11619 + (and (eq_attr "cpu" "atom")
11620 + (and (eq_attr "type" "sseiadd")
11621 + (and (not (match_operand:V2DI 0 "register_operand"))
11622 + (and (eq_attr "atom_unit" "!simul")
11623 + (eq_attr "atom_unit" "!complex")))))
11624 + "atom-simple-either")
11625 +
11626 +;; pmad, psad and 64
11627 +(define_insn_reservation "atom_sseiadd_2" 4
11628 + (and (eq_attr "cpu" "atom")
11629 + (and (eq_attr "type" "sseiadd")
11630 + (and (not (match_operand:V2DI 0 "register_operand"))
11631 + (and (eq_attr "atom_unit" "simul" )
11632 + (eq_attr "mode" "DI")))))
11633 + "atom-fmul-4c")
11634 +
11635 +;; pmad, psad and 128
11636 +(define_insn_reservation "atom_sseiadd_3" 5
11637 + (and (eq_attr "cpu" "atom")
11638 + (and (eq_attr "type" "sseiadd")
11639 + (and (not (match_operand:V2DI 0 "register_operand"))
11640 + (and (eq_attr "atom_unit" "simul" )
11641 + (eq_attr "mode" "TI")))))
11642 + "atom-fmul-5c")
11643 +
11644 +;; if paddq(64 bit op), phadd/phsub
11645 +(define_insn_reservation "atom_sseiadd_4" 6
11646 + (and (eq_attr "cpu" "atom")
11647 + (and (eq_attr "type" "sseiadd")
11648 + (ior (match_operand:V2DI 0 "register_operand")
11649 + (eq_attr "atom_unit" "complex"))))
11650 + "atom-complex, atom-all-eu*5")
11651 +
11652 +;; if immediate op.
11653 +(define_insn_reservation "atom_sseishft" 1
11654 + (and (eq_attr "cpu" "atom")
11655 + (and (eq_attr "type" "sseishft")
11656 + (and (eq_attr "atom_unit" "!sishuf")
11657 + (match_operand 2 "immediate_operand"))))
11658 + "atom-simple-either")
11659 +
11660 +;; if palignr or psrldq
11661 +(define_insn_reservation "atom_sseishft_2" 1
11662 + (and (eq_attr "cpu" "atom")
11663 + (and (eq_attr "type" "sseishft")
11664 + (and (eq_attr "atom_unit" "sishuf")
11665 + (match_operand 2 "immediate_operand"))))
11666 + "atom-simple-0")
11667 +
11668 +;; if reg/mem op
11669 +(define_insn_reservation "atom_sseishft_3" 2
11670 + (and (eq_attr "cpu" "atom")
11671 + (and (eq_attr "type" "sseishft")
11672 + (not (match_operand 2 "immediate_operand"))))
11673 + "atom-complex, atom-all-eu")
11674 +
11675 +(define_insn_reservation "atom_sseimul" 1
11676 + (and (eq_attr "cpu" "atom")
11677 + (eq_attr "type" "sseimul"))
11678 + "atom-simple-0")
11679 +
11680 +;; rcpss or rsqrtss
11681 +(define_insn_reservation "atom_sse" 4
11682 + (and (eq_attr "cpu" "atom")
11683 + (and (eq_attr "type" "sse")
11684 + (and (eq_attr "atom_sse_attr" "rcp") (eq_attr "mode" "SF"))))
11685 + "atom-fmul-4c")
11686 +
11687 +;; movshdup, movsldup. Suggest to type sseishft
11688 +(define_insn_reservation "atom_sse_2" 1
11689 + (and (eq_attr "cpu" "atom")
11690 + (and (eq_attr "type" "sse")
11691 + (eq_attr "atom_sse_attr" "movdup")))
11692 + "atom-simple-0")
11693 +
11694 +;; lfence
11695 +(define_insn_reservation "atom_sse_3" 1
11696 + (and (eq_attr "cpu" "atom")
11697 + (and (eq_attr "type" "sse")
11698 + (eq_attr "atom_sse_attr" "lfence")))
11699 + "atom-simple-either")
11700 +
11701 +;; sfence,clflush,mfence, prefetch
11702 +(define_insn_reservation "atom_sse_4" 1
11703 + (and (eq_attr "cpu" "atom")
11704 + (and (eq_attr "type" "sse")
11705 + (ior (eq_attr "atom_sse_attr" "fence")
11706 + (eq_attr "atom_sse_attr" "prefetch"))))
11707 + "atom-simple-0")
11708 +
11709 +;; rcpps, rsqrtss, sqrt, ldmxcsr
11710 +(define_insn_reservation "atom_sse_5" 7
11711 + (and (eq_attr "cpu" "atom")
11712 + (and (eq_attr "type" "sse")
11713 + (ior (ior (eq_attr "atom_sse_attr" "sqrt")
11714 + (eq_attr "atom_sse_attr" "mxcsr"))
11715 + (and (eq_attr "atom_sse_attr" "rcp")
11716 + (eq_attr "mode" "V4SF")))))
11717 + "atom-complex, atom-all-eu*6")
11718 +
11719 +;; xmm->xmm
11720 +(define_insn_reservation "atom_ssemov" 1
11721 + (and (eq_attr "cpu" "atom")
11722 + (and (eq_attr "type" "ssemov")
11723 + (and (match_operand 0 "register_operand" "xy") (match_operand 1 "register_operand" "xy"))))
11724 + "atom-simple-either")
11725 +
11726 +;; reg->xmm
11727 +(define_insn_reservation "atom_ssemov_2" 1
11728 + (and (eq_attr "cpu" "atom")
11729 + (and (eq_attr "type" "ssemov")
11730 + (and (match_operand 0 "register_operand" "xy") (match_operand 1 "register_operand" "r"))))
11731 + "atom-simple-0")
11732 +
11733 +;; xmm->reg
11734 +(define_insn_reservation "atom_ssemov_3" 3
11735 + (and (eq_attr "cpu" "atom")
11736 + (and (eq_attr "type" "ssemov")
11737 + (and (match_operand 0 "register_operand" "r") (match_operand 1 "register_operand" "xy"))))
11738 + "atom-eu-0-3-1")
11739 +
11740 +;; mov mem
11741 +(define_insn_reservation "atom_ssemov_4" 1
11742 + (and (eq_attr "cpu" "atom")
11743 + (and (eq_attr "type" "ssemov")
11744 + (and (eq_attr "movu" "0") (eq_attr "memory" "!none"))))
11745 + "atom-simple-0")
11746 +
11747 +;; movu mem
11748 +(define_insn_reservation "atom_ssemov_5" 2
11749 + (and (eq_attr "cpu" "atom")
11750 + (and (eq_attr "type" "ssemov")
11751 + (ior (eq_attr "movu" "1") (eq_attr "memory" "!none"))))
11752 + "atom-complex, atom-all-eu")
11753 +
11754 +;; no memory simple
11755 +(define_insn_reservation "atom_sseadd" 5
11756 + (and (eq_attr "cpu" "atom")
11757 + (and (eq_attr "type" "sseadd")
11758 + (and (eq_attr "memory" "none")
11759 + (and (eq_attr "mode" "!V2DF")
11760 + (eq_attr "atom_unit" "!complex")))))
11761 + "atom-fadd-5c")
11762 +
11763 +;; memory simple
11764 +(define_insn_reservation "atom_sseadd_mem" 5
11765 + (and (eq_attr "cpu" "atom")
11766 + (and (eq_attr "type" "sseadd")
11767 + (and (eq_attr "memory" "!none")
11768 + (and (eq_attr "mode" "!V2DF")
11769 + (eq_attr "atom_unit" "!complex")))))
11770 + "atom-dual-5c")
11771 +
11772 +;; maxps, minps, *pd, hadd, hsub
11773 +(define_insn_reservation "atom_sseadd_3" 8
11774 + (and (eq_attr "cpu" "atom")
11775 + (and (eq_attr "type" "sseadd")
11776 + (ior (eq_attr "mode" "V2DF") (eq_attr "atom_unit" "complex"))))
11777 + "atom-complex, atom-all-eu*7")
11778 +
11779 +;; Except dppd/dpps
11780 +(define_insn_reservation "atom_ssemul" 5
11781 + (and (eq_attr "cpu" "atom")
11782 + (and (eq_attr "type" "ssemul")
11783 + (eq_attr "mode" "!SF")))
11784 + "atom-fmul-5c")
11785 +
11786 +;; Except dppd/dpps, 4 cycle if mulss
11787 +(define_insn_reservation "atom_ssemul_2" 4
11788 + (and (eq_attr "cpu" "atom")
11789 + (and (eq_attr "type" "ssemul")
11790 + (eq_attr "mode" "SF")))
11791 + "atom-fmul-4c")
11792 +
11793 +(define_insn_reservation "atom_ssecmp" 1
11794 + (and (eq_attr "cpu" "atom")
11795 + (eq_attr "type" "ssecmp"))
11796 + "atom-simple-either")
11797 +
11798 +(define_insn_reservation "atom_ssecomi" 10
11799 + (and (eq_attr "cpu" "atom")
11800 + (eq_attr "type" "ssecomi"))
11801 + "atom-complex, atom-all-eu*9")
11802 +
11803 +;; no memory and cvtpi2ps, cvtps2pi, cvttps2pi
11804 +(define_insn_reservation "atom_ssecvt" 5
11805 + (and (eq_attr "cpu" "atom")
11806 + (and (eq_attr "type" "ssecvt")
11807 + (ior (and (match_operand:V2SI 0 "register_operand")
11808 + (match_operand:V4SF 1 "register_operand"))
11809 + (and (match_operand:V4SF 0 "register_operand")
11810 + (match_operand:V2SI 1 "register_operand")))))
11811 + "atom-fadd-5c")
11812 +
11813 +;; memory and cvtpi2ps, cvtps2pi, cvttps2pi
11814 +(define_insn_reservation "atom_ssecvt_2" 5
11815 + (and (eq_attr "cpu" "atom")
11816 + (and (eq_attr "type" "ssecvt")
11817 + (ior (and (match_operand:V2SI 0 "register_operand")
11818 + (match_operand:V4SF 1 "memory_operand"))
11819 + (and (match_operand:V4SF 0 "register_operand")
11820 + (match_operand:V2SI 1 "memory_operand")))))
11821 + "atom-dual-5c")
11822 +
11823 +;; otherwise. 7 cycles average for cvtss2sd
11824 +(define_insn_reservation "atom_ssecvt_3" 7
11825 + (and (eq_attr "cpu" "atom")
11826 + (and (eq_attr "type" "ssecvt")
11827 + (not (ior (and (match_operand:V2SI 0 "register_operand")
11828 + (match_operand:V4SF 1 "nonimmediate_operand"))
11829 + (and (match_operand:V4SF 0 "register_operand")
11830 + (match_operand:V2SI 1 "nonimmediate_operand"))))))
11831 + "atom-complex, atom-all-eu*6")
11832 +
11833 +;; memory and cvtsi2sd
11834 +(define_insn_reservation "atom_sseicvt" 5
11835 + (and (eq_attr "cpu" "atom")
11836 + (and (eq_attr "type" "sseicvt")
11837 + (and (match_operand:V2DF 0 "register_operand")
11838 + (match_operand:SI 1 "memory_operand"))))
11839 + "atom-dual-5c")
11840 +
11841 +;; otherwise. 8 cycles average for cvtsd2si
11842 +(define_insn_reservation "atom_sseicvt_2" 8
11843 + (and (eq_attr "cpu" "atom")
11844 + (and (eq_attr "type" "sseicvt")
11845 + (not (and (match_operand:V2DF 0 "register_operand")
11846 + (match_operand:SI 1 "memory_operand")))))
11847 + "atom-complex, atom-all-eu*7")
11848 +
11849 +(define_insn_reservation "atom_ssediv" 62
11850 + (and (eq_attr "cpu" "atom")
11851 + (eq_attr "type" "ssediv"))
11852 + "atom-complex, atom-all-eu*12, nothing*49")
11853 +
11854 +;; simple for fmov
11855 +(define_insn_reservation "atom_fmov" 1
11856 + (and (eq_attr "cpu" "atom")
11857 + (and (eq_attr "type" "fmov")
11858 + (eq_attr "memory" "none")))
11859 + "atom-simple-either")
11860 +
11861 +;; simple for fmov
11862 +(define_insn_reservation "atom_fmov_mem" 1
11863 + (and (eq_attr "cpu" "atom")
11864 + (and (eq_attr "type" "fmov")
11865 + (eq_attr "memory" "!none")))
11866 + "atom-simple-either")
11867 +
11868 +;; Define bypass here
11869 +
11870 +;; There will be no stall from lea to non-mem EX insns
11871 +(define_bypass 0 "atom_lea"
11872 + "atom_alu_carry,
11873 + atom_alu,atom_alu1,atom_negnot,atom_imov,atom_imovx,
11874 + atom_incdec, atom_setcc, atom_icmov, atom_pop")
11875 +
11876 +(define_bypass 0 "atom_lea"
11877 + "atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
11878 + atom_imovx_mem, atom_imovx_2_mem,
11879 + atom_imov_mem, atom_icmov_mem, atom_fmov_mem"
11880 + "!ix86_agi_dependent")
11881 +
11882 +;; There will be 3 cycles stall from EX insns to AGAN insns LEA
11883 +(define_bypass 4 "atom_alu_carry,
11884 + atom_alu,atom_alu1,atom_negnot,atom_imov,atom_imovx,
11885 + atom_incdec,atom_ishift,atom_ishift1,atom_rotate,
11886 + atom_rotate1, atom_setcc, atom_icmov, atom_pop,
11887 + atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
11888 + atom_imovx_mem, atom_imovx_2_mem,
11889 + atom_imov_mem, atom_icmov_mem, atom_fmov_mem"
11890 + "atom_lea")
11891 +
11892 +;; There will be 3 cycles stall from EX insns to insns need addr calculation
11893 +(define_bypass 4 "atom_alu_carry,
11894 + atom_alu,atom_alu1,atom_negnot,atom_imov,atom_imovx,
11895 + atom_incdec,atom_ishift,atom_ishift1,atom_rotate,
11896 + atom_rotate1, atom_setcc, atom_icmov, atom_pop,
11897 + atom_imovx_mem, atom_imovx_2_mem,
11898 + atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
11899 + atom_imov_mem, atom_icmov_mem, atom_fmov_mem"
11900 + "atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
11901 + atom_negnot_mem, atom_imov_mem, atom_incdec_mem,
11902 + atom_imovx_mem, atom_imovx_2_mem,
11903 + atom_imul_mem, atom_icmp_mem,
11904 + atom_test_mem, atom_icmov_mem, atom_sselog_mem,
11905 + atom_sselog1_mem, atom_fmov_mem, atom_sseadd_mem,
11906 + atom_ishift_mem, atom_ishift1_mem,
11907 + atom_rotate_mem, atom_rotate1_mem"
11908 + "ix86_agi_dependent")
11909 +
11910 +;; Stall from imul to lea is 8 cycles.
11911 +(define_bypass 9 "atom_imul, atom_imul_mem" "atom_lea")
11912 +
11913 +;; Stall from imul to memory address is 8 cycles.
11914 +(define_bypass 9 "atom_imul, atom_imul_mem"
11915 + "atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
11916 + atom_negnot_mem, atom_imov_mem, atom_incdec_mem,
11917 + atom_ishift_mem, atom_ishift1_mem, atom_rotate_mem,
11918 + atom_rotate1_mem, atom_imul_mem, atom_icmp_mem,
11919 + atom_test_mem, atom_icmov_mem, atom_sselog_mem,
11920 + atom_sselog1_mem, atom_fmov_mem, atom_sseadd_mem"
11921 + "ix86_agi_dependent")
11922 +
11923 +;; There will be 0 cycle stall from cmp/test to jcc
11924 +
11925 +;; There will be 1 cycle stall from flag producer to cmov and adc/sbb
11926 +(define_bypass 2 "atom_icmp, atom_test, atom_alu, atom_alu_carry,
11927 + atom_alu1, atom_negnot, atom_incdec, atom_ishift,
11928 + atom_ishift1, atom_rotate, atom_rotate1"
11929 + "atom_icmov, atom_alu_carry")
11930 +
11931 +;; lea to shift count stall is 2 cycles
11932 +(define_bypass 3 "atom_lea"
11933 + "atom_ishift, atom_ishift1, atom_rotate, atom_rotate1,
11934 + atom_ishift_mem, atom_ishift1_mem,
11935 + atom_rotate_mem, atom_rotate1_mem"
11936 + "ix86_dep_by_shift_count")
11937 +
11938 +;; lea to shift source stall is 1 cycle
11939 +(define_bypass 2 "atom_lea"
11940 + "atom_ishift, atom_ishift1, atom_rotate, atom_rotate1"
11941 + "!ix86_dep_by_shift_count")
11942 +
11943 +;; non-lea to shift count stall is 1 cycle
11944 +(define_bypass 2 "atom_alu_carry,
11945 + atom_alu,atom_alu1,atom_negnot,atom_imov,atom_imovx,
11946 + atom_incdec,atom_ishift,atom_ishift1,atom_rotate,
11947 + atom_rotate1, atom_setcc, atom_icmov, atom_pop,
11948 + atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
11949 + atom_imovx_mem, atom_imovx_2_mem,
11950 + atom_imov_mem, atom_icmov_mem, atom_fmov_mem"
11951 + "atom_ishift, atom_ishift1, atom_rotate, atom_rotate1,
11952 + atom_ishift_mem, atom_ishift1_mem,
11953 + atom_rotate_mem, atom_rotate1_mem"
11954 + "ix86_dep_by_shift_count")
11955 diff -Nur a/gcc/config/i386/cpuid.h b/gcc/config/i386/cpuid.h
11956 --- a/gcc/config/i386/cpuid.h 2009-04-10 01:23:07.000000000 +0200
11957 +++ b/gcc/config/i386/cpuid.h 2010-01-25 09:50:28.995687913 +0100
11958 @@ -29,6 +29,7 @@
11959 #define bit_CMPXCHG16B (1 << 13)
11960 #define bit_SSE4_1 (1 << 19)
11961 #define bit_SSE4_2 (1 << 20)
11962 +#define bit_MOVBE (1 << 22)
11963 #define bit_POPCNT (1 << 23)
11964 #define bit_AES (1 << 25)
11965 #define bit_XSAVE (1 << 26)
11966 diff -Nur a/gcc/config/i386/cs-linux.h b/gcc/config/i386/cs-linux.h
11967 --- a/gcc/config/i386/cs-linux.h 1970-01-01 01:00:00.000000000 +0100
11968 +++ b/gcc/config/i386/cs-linux.h 2010-01-25 09:50:28.995687913 +0100
11969 @@ -0,0 +1,41 @@
11970 +/* Sourcery G++ IA32 GNU/Linux Configuration.
11971 + Copyright (C) 2007
11972 + Free Software Foundation, Inc.
11973 +
11974 +This file is part of GCC.
11975 +
11976 +GCC is free software; you can redistribute it and/or modify
11977 +it under the terms of the GNU General Public License as published by
11978 +the Free Software Foundation; either version 3, or (at your option)
11979 +any later version.
11980 +
11981 +GCC is distributed in the hope that it will be useful,
11982 +but WITHOUT ANY WARRANTY; without even the implied warranty of
11983 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11984 +GNU General Public License for more details.
11985 +
11986 +You should have received a copy of the GNU General Public License
11987 +along with GCC; see the file COPYING3. If not see
11988 +<http://www.gnu.org/licenses/>. */
11989 +
11990 +/* This configuration may be used either with the system glibc (in
11991 + system32 and system64 subdirectories) or with the included glibc
11992 + (in the sgxx-glibc subdirectory). */
11993 +
11994 +#undef SYSROOT_SUFFIX_SPEC
11995 +#define SYSROOT_SUFFIX_SPEC \
11996 + "%{msgxx-glibc:/sgxx-glibc ; \
11997 + m64:/system64 ; \
11998 + mrhel3:/system64 ; \
11999 + mrh73:/system32-old ; \
12000 + :/system32}"
12001 +
12002 +#undef SYSROOT_HEADERS_SUFFIX_SPEC
12003 +#define SYSROOT_HEADERS_SUFFIX_SPEC SYSROOT_SUFFIX_SPEC
12004 +
12005 +/* See mips/wrs-linux.h for details on this use of
12006 + STARTFILE_PREFIX_SPEC. */
12007 +#undef STARTFILE_PREFIX_SPEC
12008 +#define STARTFILE_PREFIX_SPEC \
12009 + "%{m64: /usr/local/lib64/ /lib64/ /usr/lib64/} \
12010 + %{!m64: /usr/local/lib/ /lib/ /usr/lib/}"
12011 diff -Nur a/gcc/config/i386/cs-linux-lite.h b/gcc/config/i386/cs-linux-lite.h
12012 --- a/gcc/config/i386/cs-linux-lite.h 1970-01-01 01:00:00.000000000 +0100
12013 +++ b/gcc/config/i386/cs-linux-lite.h 2010-01-25 09:50:28.995687913 +0100
12014 @@ -0,0 +1,31 @@
12015 +/* Sourcery G++ Lite IA32 GNU/Linux Configuration.
12016 + Copyright (C) 2009
12017 + Free Software Foundation, Inc.
12018 +
12019 +This file is part of GCC.
12020 +
12021 +GCC is free software; you can redistribute it and/or modify
12022 +it under the terms of the GNU General Public License as published by
12023 +the Free Software Foundation; either version 3, or (at your option)
12024 +any later version.
12025 +
12026 +GCC is distributed in the hope that it will be useful,
12027 +but WITHOUT ANY WARRANTY; without even the implied warranty of
12028 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12029 +GNU General Public License for more details.
12030 +
12031 +You should have received a copy of the GNU General Public License
12032 +along with GCC; see the file COPYING3. If not see
12033 +<http://www.gnu.org/licenses/>. */
12034 +
12035 +#undef SYSROOT_SUFFIX_SPEC
12036 +#define SYSROOT_SUFFIX_SPEC \
12037 + "%{march=atom:%{!m64:/atom} ; \
12038 + march=core2:%{m64:/core2}}"
12039 +
12040 +/* See mips/wrs-linux.h for details on this use of
12041 + STARTFILE_PREFIX_SPEC. */
12042 +#undef STARTFILE_PREFIX_SPEC
12043 +#define STARTFILE_PREFIX_SPEC \
12044 + "%{m64: /usr/local/lib64/ /lib64/ /usr/lib64/} \
12045 + %{!m64: /usr/local/lib/ /lib/ /usr/lib/}"
12046 diff -Nur a/gcc/config/i386/cs-linux.opt b/gcc/config/i386/cs-linux.opt
12047 --- a/gcc/config/i386/cs-linux.opt 1970-01-01 01:00:00.000000000 +0100
12048 +++ b/gcc/config/i386/cs-linux.opt 2010-01-25 09:50:28.995687913 +0100
12049 @@ -0,0 +1,11 @@
12050 +; Additional options for Sourcery G++.
12051 +
12052 +mrh73
12053 +Target Undocumented
12054 +
12055 +mrhel3
12056 +Target Undocumented
12057 +
12058 +msgxx-glibc
12059 +Target
12060 +Use included version of GLIBC
12061 diff -Nur a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
12062 --- a/gcc/config/i386/cygming.h 2009-07-12 17:56:41.000000000 +0200
12063 +++ b/gcc/config/i386/cygming.h 2010-01-25 09:50:28.995687913 +0100
12064 @@ -34,7 +34,7 @@
12065 #endif
12066
12067 #undef TARGET_64BIT_MS_ABI
12068 -#define TARGET_64BIT_MS_ABI (!cfun ? DEFAULT_ABI == MS_ABI : TARGET_64BIT && cfun->machine->call_abi == MS_ABI)
12069 +#define TARGET_64BIT_MS_ABI (!cfun ? ix86_abi == MS_ABI : TARGET_64BIT && cfun->machine->call_abi == MS_ABI)
12070
12071 #undef DEFAULT_ABI
12072 #define DEFAULT_ABI (TARGET_64BIT ? MS_ABI : SYSV_ABI)
12073 @@ -203,7 +203,7 @@
12074 #define CHECK_STACK_LIMIT 4000
12075
12076 #undef STACK_BOUNDARY
12077 -#define STACK_BOUNDARY (DEFAULT_ABI == MS_ABI ? 128 : BITS_PER_WORD)
12078 +#define STACK_BOUNDARY (ix86_abi == MS_ABI ? 128 : BITS_PER_WORD)
12079
12080 /* By default, target has a 80387, uses IEEE compatible arithmetic,
12081 returns float values in the 387 and needs stack probes.
12082 diff -Nur a/gcc/config/i386/cygming.opt b/gcc/config/i386/cygming.opt
12083 --- a/gcc/config/i386/cygming.opt 2007-08-02 12:49:31.000000000 +0200
12084 +++ b/gcc/config/i386/cygming.opt 2010-01-25 09:50:28.995687913 +0100
12085 @@ -45,3 +45,7 @@
12086 mwindows
12087 Target
12088 Create GUI application
12089 +
12090 +mpe-aligned-commons
12091 +Target Var(use_pe_aligned_common) Init(HAVE_GAS_ALIGNED_COMM)
12092 +Use the GNU extension to the PE format for aligned common data
12093 diff -Nur a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c
12094 --- a/gcc/config/i386/driver-i386.c 2009-05-27 16:54:00.000000000 +0200
12095 +++ b/gcc/config/i386/driver-i386.c 2010-01-25 09:50:29.005686600 +0100
12096 @@ -378,7 +378,7 @@
12097 /* Extended features */
12098 unsigned int has_lahf_lm = 0, has_sse4a = 0;
12099 unsigned int has_longmode = 0, has_3dnowp = 0, has_3dnow = 0;
12100 - unsigned int has_sse4_1 = 0, has_sse4_2 = 0;
12101 + unsigned int has_movbe = 0, has_sse4_1 = 0, has_sse4_2 = 0;
12102 unsigned int has_popcnt = 0, has_aes = 0, has_avx = 0;
12103 unsigned int has_pclmul = 0;
12104
12105 @@ -398,9 +398,22 @@
12106
12107 __cpuid (1, eax, ebx, ecx, edx);
12108
12109 - /* We don't care for extended family. */
12110 model = (eax >> 4) & 0x0f;
12111 family = (eax >> 8) & 0x0f;
12112 + if (vendor == SIG_INTEL)
12113 + {
12114 + unsigned int extended_model, extended_family;
12115 +
12116 + extended_model = (eax >> 12) & 0xf0;
12117 + extended_family = (eax >> 20) & 0xff;
12118 + if (family == 0x0f)
12119 + {
12120 + family += extended_family;
12121 + model += extended_model;
12122 + }
12123 + else if (family == 0x06)
12124 + model += extended_model;
12125 + }
12126
12127 has_sse3 = ecx & bit_SSE3;
12128 has_ssse3 = ecx & bit_SSSE3;
12129 @@ -408,6 +421,7 @@
12130 has_sse4_2 = ecx & bit_SSE4_2;
12131 has_avx = ecx & bit_AVX;
12132 has_cmpxchg16b = ecx & bit_CMPXCHG16B;
12133 + has_movbe = ecx & bit_MOVBE;
12134 has_popcnt = ecx & bit_POPCNT;
12135 has_aes = ecx & bit_AES;
12136 has_pclmul = ecx & bit_PCLMUL;
12137 @@ -505,8 +519,8 @@
12138 break;
12139 case PROCESSOR_PENTIUMPRO:
12140 if (has_longmode)
12141 - /* It is Core 2 Duo. */
12142 - cpu = "core2";
12143 + /* It is Core 2 or Atom. */
12144 + cpu = (model == 28) ? "atom" : "core2";
12145 else if (arch)
12146 {
12147 if (has_sse3)
12148 @@ -597,6 +611,8 @@
12149 options = concat (options, "-mcx16 ", NULL);
12150 if (has_lahf_lm)
12151 options = concat (options, "-msahf ", NULL);
12152 + if (has_movbe)
12153 + options = concat (options, "-mmovbe ", NULL);
12154 if (has_aes)
12155 options = concat (options, "-maes ", NULL);
12156 if (has_pclmul)
12157 diff -Nur a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
12158 --- a/gcc/config/i386/i386.c 2009-07-21 09:22:51.000000000 +0200
12159 +++ b/gcc/config/i386/i386.c 2010-01-25 09:50:29.005686600 +0100
12160 @@ -1036,6 +1036,79 @@
12161 1, /* cond_not_taken_branch_cost. */
12162 };
12163
12164 +static const
12165 +struct processor_costs atom_cost = {
12166 + COSTS_N_INSNS (1), /* cost of an add instruction */
12167 + COSTS_N_INSNS (1) + 1, /* cost of a lea instruction */
12168 + COSTS_N_INSNS (1), /* variable shift costs */
12169 + COSTS_N_INSNS (1), /* constant shift costs */
12170 + {COSTS_N_INSNS (3), /* cost of starting multiply for QI */
12171 + COSTS_N_INSNS (4), /* HI */
12172 + COSTS_N_INSNS (3), /* SI */
12173 + COSTS_N_INSNS (4), /* DI */
12174 + COSTS_N_INSNS (2)}, /* other */
12175 + 0, /* cost of multiply per each bit set */
12176 + {COSTS_N_INSNS (18), /* cost of a divide/mod for QI */
12177 + COSTS_N_INSNS (26), /* HI */
12178 + COSTS_N_INSNS (42), /* SI */
12179 + COSTS_N_INSNS (74), /* DI */
12180 + COSTS_N_INSNS (74)}, /* other */
12181 + COSTS_N_INSNS (1), /* cost of movsx */
12182 + COSTS_N_INSNS (1), /* cost of movzx */
12183 + 8, /* "large" insn */
12184 + 17, /* MOVE_RATIO */
12185 + 2, /* cost for loading QImode using movzbl */
12186 + {4, 4, 4}, /* cost of loading integer registers
12187 + in QImode, HImode and SImode.
12188 + Relative to reg-reg move (2). */
12189 + {4, 4, 4}, /* cost of storing integer registers */
12190 + 4, /* cost of reg,reg fld/fst */
12191 + {12, 12, 12}, /* cost of loading fp registers
12192 + in SFmode, DFmode and XFmode */
12193 + {6, 6, 8}, /* cost of storing fp registers
12194 + in SFmode, DFmode and XFmode */
12195 + 2, /* cost of moving MMX register */
12196 + {8, 8}, /* cost of loading MMX registers
12197 + in SImode and DImode */
12198 + {8, 8}, /* cost of storing MMX registers
12199 + in SImode and DImode */
12200 + 2, /* cost of moving SSE register */
12201 + {8, 8, 8}, /* cost of loading SSE registers
12202 + in SImode, DImode and TImode */
12203 + {8, 8, 8}, /* cost of storing SSE registers
12204 + in SImode, DImode and TImode */
12205 + 5, /* MMX or SSE register to integer */
12206 + 32, /* size of l1 cache. */
12207 + 256, /* size of l2 cache. */
12208 + 64, /* size of prefetch block */
12209 + 6, /* number of parallel prefetches */
12210 + 3, /* Branch cost */
12211 + COSTS_N_INSNS (8), /* cost of FADD and FSUB insns. */
12212 + COSTS_N_INSNS (8), /* cost of FMUL instruction. */
12213 + COSTS_N_INSNS (20), /* cost of FDIV instruction. */
12214 + COSTS_N_INSNS (8), /* cost of FABS instruction. */
12215 + COSTS_N_INSNS (8), /* cost of FCHS instruction. */
12216 + COSTS_N_INSNS (40), /* cost of FSQRT instruction. */
12217 + {{libcall, {{11, loop}, {-1, rep_prefix_4_byte}}},
12218 + {libcall, {{32, loop}, {64, rep_prefix_4_byte},
12219 + {8192, rep_prefix_8_byte}, {-1, libcall}}}},
12220 + {{libcall, {{8, loop}, {15, unrolled_loop},
12221 + {2048, rep_prefix_4_byte}, {-1, libcall}}},
12222 + {libcall, {{24, loop}, {32, unrolled_loop},
12223 + {8192, rep_prefix_8_byte}, {-1, libcall}}}},
12224 + 1, /* scalar_stmt_cost. */
12225 + 1, /* scalar load_cost. */
12226 + 1, /* scalar_store_cost. */
12227 + 1, /* vec_stmt_cost. */
12228 + 1, /* vec_to_scalar_cost. */
12229 + 1, /* scalar_to_vec_cost. */
12230 + 1, /* vec_align_load_cost. */
12231 + 2, /* vec_unalign_load_cost. */
12232 + 1, /* vec_store_cost. */
12233 + 3, /* cond_taken_branch_cost. */
12234 + 1, /* cond_not_taken_branch_cost. */
12235 +};
12236 +
12237 /* Generic64 should produce code tuned for Nocona and K8. */
12238 static const
12239 struct processor_costs generic64_cost = {
12240 @@ -1194,6 +1267,7 @@
12241 #define m_PENT4 (1<<PROCESSOR_PENTIUM4)
12242 #define m_NOCONA (1<<PROCESSOR_NOCONA)
12243 #define m_CORE2 (1<<PROCESSOR_CORE2)
12244 +#define m_ATOM (1<<PROCESSOR_ATOM)
12245
12246 #define m_GEODE (1<<PROCESSOR_GEODE)
12247 #define m_K6 (1<<PROCESSOR_K6)
12248 @@ -1231,10 +1305,11 @@
12249 m_486 | m_PENT,
12250
12251 /* X86_TUNE_UNROLL_STRLEN */
12252 - m_486 | m_PENT | m_PPRO | m_AMD_MULTIPLE | m_K6 | m_CORE2 | m_GENERIC,
12253 + m_486 | m_PENT | m_ATOM | m_PPRO | m_AMD_MULTIPLE | m_K6
12254 + | m_CORE2 | m_GENERIC,
12255
12256 /* X86_TUNE_DEEP_BRANCH_PREDICTION */
12257 - m_PPRO | m_K6_GEODE | m_AMD_MULTIPLE | m_PENT4 | m_GENERIC,
12258 + m_ATOM | m_PPRO | m_K6_GEODE | m_AMD_MULTIPLE | m_PENT4 | m_GENERIC,
12259
12260 /* X86_TUNE_BRANCH_PREDICTION_HINTS: Branch hints were put in P4 based
12261 on simulation result. But after P4 was made, no performance benefit
12262 @@ -1246,12 +1321,12 @@
12263 ~m_386,
12264
12265 /* X86_TUNE_USE_SAHF */
12266 - m_PPRO | m_K6_GEODE | m_K8 | m_AMDFAM10 | m_PENT4
12267 + m_ATOM | m_PPRO | m_K6_GEODE | m_K8 | m_AMDFAM10 | m_PENT4
12268 | m_NOCONA | m_CORE2 | m_GENERIC,
12269
12270 /* X86_TUNE_MOVX: Enable to zero extend integer registers to avoid
12271 partial dependencies. */
12272 - m_AMD_MULTIPLE | m_PPRO | m_PENT4 | m_NOCONA
12273 + m_AMD_MULTIPLE | m_ATOM | m_PPRO | m_PENT4 | m_NOCONA
12274 | m_CORE2 | m_GENERIC | m_GEODE /* m_386 | m_K6 */,
12275
12276 /* X86_TUNE_PARTIAL_REG_STALL: We probably ought to watch for partial
12277 @@ -1271,13 +1346,13 @@
12278 m_386 | m_486 | m_K6_GEODE,
12279
12280 /* X86_TUNE_USE_SIMODE_FIOP */
12281 - ~(m_PPRO | m_AMD_MULTIPLE | m_PENT | m_CORE2 | m_GENERIC),
12282 + ~(m_PPRO | m_AMD_MULTIPLE | m_PENT | m_ATOM | m_CORE2 | m_GENERIC),
12283
12284 /* X86_TUNE_USE_MOV0 */
12285 m_K6,
12286
12287 /* X86_TUNE_USE_CLTD */
12288 - ~(m_PENT | m_K6 | m_CORE2 | m_GENERIC),
12289 + ~(m_PENT | m_ATOM | m_K6 | m_CORE2 | m_GENERIC),
12290
12291 /* X86_TUNE_USE_XCHGB: Use xchgb %rh,%rl instead of rolw/rorw $8,rx. */
12292 m_PENT4,
12293 @@ -1292,8 +1367,8 @@
12294 ~(m_PENT | m_PPRO),
12295
12296 /* X86_TUNE_PROMOTE_QIMODE */
12297 - m_K6_GEODE | m_PENT | m_386 | m_486 | m_AMD_MULTIPLE | m_CORE2
12298 - | m_GENERIC /* | m_PENT4 ? */,
12299 + m_K6_GEODE | m_PENT | m_ATOM | m_386 | m_486 | m_AMD_MULTIPLE
12300 + | m_CORE2 | m_GENERIC /* | m_PENT4 ? */,
12301
12302 /* X86_TUNE_FAST_PREFIX */
12303 ~(m_PENT | m_486 | m_386),
12304 @@ -1317,26 +1392,28 @@
12305 m_PPRO,
12306
12307 /* X86_TUNE_ADD_ESP_4: Enable if add/sub is preferred over 1/2 push/pop. */
12308 - m_AMD_MULTIPLE | m_K6_GEODE | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12309 + m_ATOM | m_AMD_MULTIPLE | m_K6_GEODE | m_PENT4 | m_NOCONA
12310 + | m_CORE2 | m_GENERIC,
12311
12312 /* X86_TUNE_ADD_ESP_8 */
12313 - m_AMD_MULTIPLE | m_PPRO | m_K6_GEODE | m_386
12314 + m_AMD_MULTIPLE | m_ATOM | m_PPRO | m_K6_GEODE | m_386
12315 | m_486 | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12316
12317 /* X86_TUNE_SUB_ESP_4 */
12318 - m_AMD_MULTIPLE | m_PPRO | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12319 + m_AMD_MULTIPLE | m_ATOM | m_PPRO | m_PENT4 | m_NOCONA | m_CORE2
12320 + | m_GENERIC,
12321
12322 /* X86_TUNE_SUB_ESP_8 */
12323 - m_AMD_MULTIPLE | m_PPRO | m_386 | m_486
12324 + m_AMD_MULTIPLE | m_ATOM | m_PPRO | m_386 | m_486
12325 | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12326
12327 /* X86_TUNE_INTEGER_DFMODE_MOVES: Enable if integer moves are preferred
12328 for DFmode copies */
12329 - ~(m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2
12330 + ~(m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2
12331 | m_GENERIC | m_GEODE),
12332
12333 /* X86_TUNE_PARTIAL_REG_DEPENDENCY */
12334 - m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12335 + m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12336
12337 /* X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY: In the Generic model we have a
12338 conflict here in between PPro/Pentium4 based chips that thread 128bit
12339 @@ -1347,7 +1424,8 @@
12340 shows that disabling this option on P4 brings over 20% SPECfp regression,
12341 while enabling it on K8 brings roughly 2.4% regression that can be partly
12342 masked by careful scheduling of moves. */
12343 - m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC | m_AMDFAM10,
12344 + m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC
12345 + | m_AMDFAM10,
12346
12347 /* X86_TUNE_SSE_UNALIGNED_MOVE_OPTIMAL */
12348 m_AMDFAM10,
12349 @@ -1365,13 +1443,13 @@
12350 m_PPRO | m_PENT4 | m_NOCONA,
12351
12352 /* X86_TUNE_MEMORY_MISMATCH_STALL */
12353 - m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12354 + m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12355
12356 /* X86_TUNE_PROLOGUE_USING_MOVE */
12357 - m_ATHLON_K8 | m_PPRO | m_CORE2 | m_GENERIC,
12358 + m_ATHLON_K8 | m_ATOM | m_PPRO | m_CORE2 | m_GENERIC,
12359
12360 /* X86_TUNE_EPILOGUE_USING_MOVE */
12361 - m_ATHLON_K8 | m_PPRO | m_CORE2 | m_GENERIC,
12362 + m_ATHLON_K8 | m_ATOM | m_PPRO | m_CORE2 | m_GENERIC,
12363
12364 /* X86_TUNE_SHIFT1 */
12365 ~m_486,
12366 @@ -1380,29 +1458,32 @@
12367 m_AMD_MULTIPLE,
12368
12369 /* X86_TUNE_INTER_UNIT_MOVES */
12370 - ~(m_AMD_MULTIPLE | m_GENERIC),
12371 + ~(m_AMD_MULTIPLE | m_ATOM | m_GENERIC),
12372
12373 /* X86_TUNE_INTER_UNIT_CONVERSIONS */
12374 ~(m_AMDFAM10),
12375
12376 /* X86_TUNE_FOUR_JUMP_LIMIT: Some CPU cores are not able to predict more
12377 than 4 branch instructions in the 16 byte window. */
12378 - m_PPRO | m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
12379 + m_ATOM | m_PPRO | m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_CORE2
12380 + | m_GENERIC,
12381
12382 /* X86_TUNE_SCHEDULE */
12383 - m_PPRO | m_AMD_MULTIPLE | m_K6_GEODE | m_PENT | m_CORE2 | m_GENERIC,
12384 + m_PPRO | m_AMD_MULTIPLE | m_K6_GEODE | m_PENT | m_ATOM | m_CORE2
12385 + | m_GENERIC,
12386
12387 /* X86_TUNE_USE_BT */
12388 - m_AMD_MULTIPLE | m_CORE2 | m_GENERIC,
12389 + m_AMD_MULTIPLE | m_ATOM | m_CORE2 | m_GENERIC,
12390
12391 /* X86_TUNE_USE_INCDEC */
12392 - ~(m_PENT4 | m_NOCONA | m_GENERIC),
12393 + ~(m_PENT4 | m_NOCONA | m_GENERIC | m_ATOM),
12394
12395 /* X86_TUNE_PAD_RETURNS */
12396 m_AMD_MULTIPLE | m_CORE2 | m_GENERIC,
12397
12398 /* X86_TUNE_EXT_80387_CONSTANTS */
12399 - m_K6_GEODE | m_ATHLON_K8 | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC,
12400 + m_K6_GEODE | m_ATHLON_K8 | m_ATOM | m_PENT4 | m_NOCONA | m_PPRO
12401 + | m_CORE2 | m_GENERIC,
12402
12403 /* X86_TUNE_SHORTEN_X87_SSE */
12404 ~m_K8,
12405 @@ -1447,6 +1528,10 @@
12406 with a subsequent conditional jump instruction into a single
12407 compare-and-branch uop. */
12408 m_CORE2,
12409 +
12410 + /* X86_TUNE_OPT_AGU: Optimize for Address Generation Unit. This flag
12411 + will impact LEA instruction selection. */
12412 + m_ATOM,
12413 };
12414
12415 /* Feature tests against the various architecture variations. */
12416 @@ -1472,10 +1557,11 @@
12417 };
12418
12419 static const unsigned int x86_accumulate_outgoing_args
12420 - = m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC;
12421 + = m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2
12422 + | m_GENERIC;
12423
12424 static const unsigned int x86_arch_always_fancy_math_387
12425 - = m_PENT | m_PPRO | m_AMD_MULTIPLE | m_PENT4
12426 + = m_PENT | m_ATOM | m_PPRO | m_AMD_MULTIPLE | m_PENT4
12427 | m_NOCONA | m_CORE2 | m_GENERIC;
12428
12429 static enum stringop_alg stringop_alg = no_stringop;
12430 @@ -1743,6 +1829,9 @@
12431 /* Alignment for incoming stack boundary in bits. */
12432 unsigned int ix86_incoming_stack_boundary;
12433
12434 +/* The abi used by target. */
12435 +enum calling_abi ix86_abi;
12436 +
12437 /* Values 1-5: see jump.c */
12438 int ix86_branch_cost;
12439
12440 @@ -1819,6 +1908,8 @@
12441 static bool ix86_can_inline_p (tree, tree);
12442 static void ix86_set_current_function (tree);
12443
12444 +static enum calling_abi ix86_function_abi (const_tree);
12445 +
12446 \f
12447 /* The svr4 ABI for the i386 says that records and unions are returned
12448 in memory. */
12449 @@ -1880,6 +1971,7 @@
12450 #define OPTION_MASK_ISA_POPCNT_SET OPTION_MASK_ISA_POPCNT
12451 #define OPTION_MASK_ISA_CX16_SET OPTION_MASK_ISA_CX16
12452 #define OPTION_MASK_ISA_SAHF_SET OPTION_MASK_ISA_SAHF
12453 +#define OPTION_MASK_ISA_MOVBE_SET OPTION_MASK_ISA_MOVBE
12454
12455 /* Define a set of ISAs which aren't available when a given ISA is
12456 disabled. MMX and SSE ISAs are handled separately. */
12457 @@ -1921,6 +2013,7 @@
12458 #define OPTION_MASK_ISA_POPCNT_UNSET OPTION_MASK_ISA_POPCNT
12459 #define OPTION_MASK_ISA_CX16_UNSET OPTION_MASK_ISA_CX16
12460 #define OPTION_MASK_ISA_SAHF_UNSET OPTION_MASK_ISA_SAHF
12461 +#define OPTION_MASK_ISA_MOVBE_UNSET OPTION_MASK_ISA_MOVBE
12462
12463 /* Vectorization library interface and handlers. */
12464 tree (*ix86_veclib_handler)(enum built_in_function, tree, tree) = NULL;
12465 @@ -1953,7 +2046,8 @@
12466 {&core2_cost, 16, 10, 16, 10, 16},
12467 {&generic32_cost, 16, 7, 16, 7, 16},
12468 {&generic64_cost, 16, 10, 16, 10, 16},
12469 - {&amdfam10_cost, 32, 24, 32, 7, 32}
12470 + {&amdfam10_cost, 32, 24, 32, 7, 32},
12471 + {&atom_cost, 16, 7, 16, 7, 16}
12472 };
12473
12474 static const char *const cpu_names[TARGET_CPU_DEFAULT_max] =
12475 @@ -1971,6 +2065,7 @@
12476 "prescott",
12477 "nocona",
12478 "core2",
12479 + "atom",
12480 "geode",
12481 "k6",
12482 "k6-2",
12483 @@ -2209,6 +2304,19 @@
12484 }
12485 return true;
12486
12487 + case OPT_mmovbe:
12488 + if (value)
12489 + {
12490 + ix86_isa_flags |= OPTION_MASK_ISA_MOVBE_SET;
12491 + ix86_isa_flags_explicit |= OPTION_MASK_ISA_MOVBE_SET;
12492 + }
12493 + else
12494 + {
12495 + ix86_isa_flags &= ~OPTION_MASK_ISA_MOVBE_UNSET;
12496 + ix86_isa_flags_explicit |= OPTION_MASK_ISA_MOVBE_UNSET;
12497 + }
12498 + return true;
12499 +
12500 case OPT_maes:
12501 if (value)
12502 {
12503 @@ -2271,6 +2379,7 @@
12504 { "-mmmx", OPTION_MASK_ISA_MMX },
12505 { "-mabm", OPTION_MASK_ISA_ABM },
12506 { "-mpopcnt", OPTION_MASK_ISA_POPCNT },
12507 + { "-mmovbe", OPTION_MASK_ISA_MOVBE },
12508 { "-maes", OPTION_MASK_ISA_AES },
12509 { "-mpclmul", OPTION_MASK_ISA_PCLMUL },
12510 };
12511 @@ -2487,7 +2596,8 @@
12512 PTA_AES = 1 << 17,
12513 PTA_PCLMUL = 1 << 18,
12514 PTA_AVX = 1 << 19,
12515 - PTA_FMA = 1 << 20
12516 + PTA_FMA = 1 << 20,
12517 + PTA_MOVBE = 1 << 21
12518 };
12519
12520 static struct pta
12521 @@ -2529,6 +2639,9 @@
12522 {"core2", PROCESSOR_CORE2, CPU_CORE2,
12523 PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
12524 | PTA_SSSE3 | PTA_CX16},
12525 + {"atom", PROCESSOR_ATOM, CPU_ATOM,
12526 + PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
12527 + | PTA_SSSE3 | PTA_CX16 | PTA_MOVBE},
12528 {"geode", PROCESSOR_GEODE, CPU_GEODE,
12529 PTA_MMX | PTA_3DNOW | PTA_3DNOW_A |PTA_PREFETCH_SSE},
12530 {"k6", PROCESSOR_K6, CPU_K6, PTA_MMX},
12531 @@ -2716,6 +2829,20 @@
12532 error ("bad value (%s) for %sarch=%s %s",
12533 ix86_arch_string, prefix, suffix, sw);
12534
12535 + /* Validate -mabi= value. */
12536 + if (ix86_abi_string)
12537 + {
12538 + if (strcmp (ix86_abi_string, "sysv") == 0)
12539 + ix86_abi = SYSV_ABI;
12540 + else if (strcmp (ix86_abi_string, "ms") == 0)
12541 + ix86_abi = MS_ABI;
12542 + else
12543 + error ("unknown ABI (%s) for %sabi=%s %s",
12544 + ix86_abi_string, prefix, suffix, sw);
12545 + }
12546 + else
12547 + ix86_abi = DEFAULT_ABI;
12548 +
12549 if (ix86_cmodel_string != 0)
12550 {
12551 if (!strcmp (ix86_cmodel_string, "small"))
12552 @@ -2828,6 +2955,9 @@
12553 if (!(TARGET_64BIT && (processor_alias_table[i].flags & PTA_NO_SAHF))
12554 && !(ix86_isa_flags_explicit & OPTION_MASK_ISA_SAHF))
12555 ix86_isa_flags |= OPTION_MASK_ISA_SAHF;
12556 + if (processor_alias_table[i].flags & PTA_MOVBE
12557 + && !(ix86_isa_flags_explicit & OPTION_MASK_ISA_MOVBE))
12558 + ix86_isa_flags |= OPTION_MASK_ISA_MOVBE;
12559 if (processor_alias_table[i].flags & PTA_AES
12560 && !(ix86_isa_flags_explicit & OPTION_MASK_ISA_AES))
12561 ix86_isa_flags |= OPTION_MASK_ISA_AES;
12562 @@ -4592,14 +4722,14 @@
12563 default ABI. */
12564
12565 /* RAX is used as hidden argument to va_arg functions. */
12566 - if (DEFAULT_ABI == SYSV_ABI && regno == AX_REG)
12567 + if (ix86_abi == SYSV_ABI && regno == AX_REG)
12568 return true;
12569
12570 - if (DEFAULT_ABI == MS_ABI)
12571 + if (ix86_abi == MS_ABI)
12572 parm_regs = x86_64_ms_abi_int_parameter_registers;
12573 else
12574 parm_regs = x86_64_int_parameter_registers;
12575 - for (i = 0; i < (DEFAULT_ABI == MS_ABI ? X64_REGPARM_MAX
12576 + for (i = 0; i < (ix86_abi == MS_ABI ? X64_REGPARM_MAX
12577 : X86_64_REGPARM_MAX); i++)
12578 if (regno == parm_regs[i])
12579 return true;
12580 @@ -4627,7 +4757,7 @@
12581 int
12582 ix86_reg_parm_stack_space (const_tree fndecl)
12583 {
12584 - int call_abi = SYSV_ABI;
12585 + enum calling_abi call_abi = SYSV_ABI;
12586 if (fndecl != NULL_TREE && TREE_CODE (fndecl) == FUNCTION_DECL)
12587 call_abi = ix86_function_abi (fndecl);
12588 else
12589 @@ -4639,37 +4769,39 @@
12590
12591 /* Returns value SYSV_ABI, MS_ABI dependent on fntype, specifying the
12592 call abi used. */
12593 -int
12594 +enum calling_abi
12595 ix86_function_type_abi (const_tree fntype)
12596 {
12597 if (TARGET_64BIT && fntype != NULL)
12598 {
12599 - int abi;
12600 - if (DEFAULT_ABI == SYSV_ABI)
12601 - abi = lookup_attribute ("ms_abi", TYPE_ATTRIBUTES (fntype)) ? MS_ABI : SYSV_ABI;
12602 - else
12603 - abi = lookup_attribute ("sysv_abi", TYPE_ATTRIBUTES (fntype)) ? SYSV_ABI : MS_ABI;
12604 -
12605 + enum calling_abi abi = ix86_abi;
12606 + if (abi == SYSV_ABI)
12607 + {
12608 + if (lookup_attribute ("ms_abi", TYPE_ATTRIBUTES (fntype)))
12609 + abi = MS_ABI;
12610 + }
12611 + else if (lookup_attribute ("sysv_abi", TYPE_ATTRIBUTES (fntype)))
12612 + abi = SYSV_ABI;
12613 return abi;
12614 }
12615 - return DEFAULT_ABI;
12616 + return ix86_abi;
12617 }
12618
12619 -int
12620 +static enum calling_abi
12621 ix86_function_abi (const_tree fndecl)
12622 {
12623 if (! fndecl)
12624 - return DEFAULT_ABI;
12625 + return ix86_abi;
12626 return ix86_function_type_abi (TREE_TYPE (fndecl));
12627 }
12628
12629 /* Returns value SYSV_ABI, MS_ABI dependent on cfun, specifying the
12630 call abi used. */
12631 -int
12632 +enum calling_abi
12633 ix86_cfun_abi (void)
12634 {
12635 if (! cfun || ! TARGET_64BIT)
12636 - return DEFAULT_ABI;
12637 + return ix86_abi;
12638 return cfun->machine->call_abi;
12639 }
12640
12641 @@ -4683,7 +4815,7 @@
12642 ix86_call_abi_override (const_tree fndecl)
12643 {
12644 if (fndecl == NULL_TREE)
12645 - cfun->machine->call_abi = DEFAULT_ABI;
12646 + cfun->machine->call_abi = ix86_abi;
12647 else
12648 cfun->machine->call_abi = ix86_function_type_abi (TREE_TYPE (fndecl));
12649 }
12650 @@ -4724,8 +4856,8 @@
12651 cum->nregs = ix86_regparm;
12652 if (TARGET_64BIT)
12653 {
12654 - if (cum->call_abi != DEFAULT_ABI)
12655 - cum->nregs = DEFAULT_ABI != SYSV_ABI ? X86_64_REGPARM_MAX
12656 + if (cum->call_abi != ix86_abi)
12657 + cum->nregs = ix86_abi != SYSV_ABI ? X86_64_REGPARM_MAX
12658 : X64_REGPARM_MAX;
12659 }
12660 if (TARGET_SSE)
12661 @@ -4733,8 +4865,8 @@
12662 cum->sse_nregs = SSE_REGPARM_MAX;
12663 if (TARGET_64BIT)
12664 {
12665 - if (cum->call_abi != DEFAULT_ABI)
12666 - cum->sse_nregs = DEFAULT_ABI != SYSV_ABI ? X86_64_SSE_REGPARM_MAX
12667 + if (cum->call_abi != ix86_abi)
12668 + cum->sse_nregs = ix86_abi != SYSV_ABI ? X86_64_SSE_REGPARM_MAX
12669 : X64_SSE_REGPARM_MAX;
12670 }
12671 }
12672 @@ -5700,7 +5832,7 @@
12673 if (type)
12674 mode = type_natural_mode (type, NULL);
12675
12676 - if (TARGET_64BIT && (cum ? cum->call_abi : DEFAULT_ABI) == MS_ABI)
12677 + if (TARGET_64BIT && (cum ? cum->call_abi : ix86_abi) == MS_ABI)
12678 function_arg_advance_ms_64 (cum, bytes, words);
12679 else if (TARGET_64BIT)
12680 function_arg_advance_64 (cum, mode, type, words, named);
12681 @@ -5846,9 +5978,9 @@
12682 if (mode == VOIDmode)
12683 return GEN_INT (cum->maybe_vaarg
12684 ? (cum->sse_nregs < 0
12685 - ? (cum->call_abi == DEFAULT_ABI
12686 + ? (cum->call_abi == ix86_abi
12687 ? SSE_REGPARM_MAX
12688 - : (DEFAULT_ABI != SYSV_ABI ? X86_64_SSE_REGPARM_MAX
12689 + : (ix86_abi != SYSV_ABI ? X86_64_SSE_REGPARM_MAX
12690 : X64_SSE_REGPARM_MAX))
12691 : cum->sse_regno)
12692 : -1);
12693 @@ -5942,7 +6074,7 @@
12694 if (type && TREE_CODE (type) == VECTOR_TYPE)
12695 mode = type_natural_mode (type, cum);
12696
12697 - if (TARGET_64BIT && (cum ? cum->call_abi : DEFAULT_ABI) == MS_ABI)
12698 + if (TARGET_64BIT && (cum ? cum->call_abi : ix86_abi) == MS_ABI)
12699 return function_arg_ms_64 (cum, mode, omode, named, bytes);
12700 else if (TARGET_64BIT)
12701 return function_arg_64 (cum, mode, omode, type, named);
12702 @@ -5962,7 +6094,7 @@
12703 const_tree type, bool named ATTRIBUTE_UNUSED)
12704 {
12705 /* See Windows x64 Software Convention. */
12706 - if (TARGET_64BIT && (cum ? cum->call_abi : DEFAULT_ABI) == MS_ABI)
12707 + if (TARGET_64BIT && (cum ? cum->call_abi : ix86_abi) == MS_ABI)
12708 {
12709 int msize = (int) GET_MODE_SIZE (mode);
12710 if (type)
12711 @@ -6102,7 +6234,7 @@
12712 /* TODO: The function should depend on current function ABI but
12713 builtins.c would need updating then. Therefore we use the
12714 default ABI. */
12715 - if (TARGET_64BIT && DEFAULT_ABI == MS_ABI)
12716 + if (TARGET_64BIT && ix86_abi == MS_ABI)
12717 return false;
12718 return TARGET_FLOAT_RETURNS_IN_80387;
12719
12720 @@ -6498,13 +6630,13 @@
12721 static tree
12722 ix86_build_builtin_va_list (void)
12723 {
12724 - tree ret = ix86_build_builtin_va_list_abi (DEFAULT_ABI);
12725 + tree ret = ix86_build_builtin_va_list_abi (ix86_abi);
12726
12727 /* Initialize abi specific va_list builtin types. */
12728 if (TARGET_64BIT)
12729 {
12730 tree t;
12731 - if (DEFAULT_ABI == MS_ABI)
12732 + if (ix86_abi == MS_ABI)
12733 {
12734 t = ix86_build_builtin_va_list_abi (SYSV_ABI);
12735 if (TREE_CODE (t) != RECORD_TYPE)
12736 @@ -6518,7 +6650,7 @@
12737 t = build_variant_type_copy (t);
12738 sysv_va_list_type_node = t;
12739 }
12740 - if (DEFAULT_ABI != MS_ABI)
12741 + if (ix86_abi != MS_ABI)
12742 {
12743 t = ix86_build_builtin_va_list_abi (MS_ABI);
12744 if (TREE_CODE (t) != RECORD_TYPE)
12745 @@ -6551,8 +6683,8 @@
12746 int i;
12747 int regparm = ix86_regparm;
12748
12749 - if (cum->call_abi != DEFAULT_ABI)
12750 - regparm = DEFAULT_ABI != SYSV_ABI ? X86_64_REGPARM_MAX : X64_REGPARM_MAX;
12751 + if (cum->call_abi != ix86_abi)
12752 + regparm = ix86_abi != SYSV_ABI ? X86_64_REGPARM_MAX : X64_REGPARM_MAX;
12753
12754 /* GPR size of varargs save area. */
12755 if (cfun->va_list_gpr_size)
12756 @@ -6705,7 +6837,7 @@
12757 return true;
12758 canonic = ix86_canonical_va_list_type (type);
12759 return (canonic == ms_va_list_type_node
12760 - || (DEFAULT_ABI == MS_ABI && canonic == va_list_type_node));
12761 + || (ix86_abi == MS_ABI && canonic == va_list_type_node));
12762 }
12763
12764 /* Implement va_start. */
12765 @@ -12987,6 +13119,316 @@
12766 emit_move_insn (operands[0], dst);
12767 }
12768
12769 +#define LEA_SEARCH_THRESHOLD 12
12770 +
12771 +/* Search backward for non-agu definition of register number REGNO1
12772 + or register number REGNO2 in INSN's basic block until
12773 + 1. Pass LEA_SEARCH_THRESHOLD instructions, or
12774 + 2. Reach BB boundary, or
12775 + 3. Reach agu definition.
12776 + Returns the distance between the non-agu definition point and INSN.
12777 + If no definition point, returns -1. */
12778 +
12779 +static int
12780 +distance_non_agu_define (unsigned int regno1, unsigned int regno2,
12781 + rtx insn)
12782 +{
12783 + basic_block bb = BLOCK_FOR_INSN (insn);
12784 + int distance = 0;
12785 + df_ref *def_rec;
12786 + enum attr_type insn_type;
12787 +
12788 + if (insn != BB_HEAD (bb))
12789 + {
12790 + rtx prev = PREV_INSN (insn);
12791 + while (prev && distance < LEA_SEARCH_THRESHOLD)
12792 + {
12793 + if (INSN_P (prev))
12794 + {
12795 + distance++;
12796 + for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
12797 + if (DF_REF_TYPE (*def_rec) == DF_REF_REG_DEF
12798 + && !DF_REF_IS_ARTIFICIAL (*def_rec)
12799 + && (regno1 == DF_REF_REGNO (*def_rec)
12800 + || regno2 == DF_REF_REGNO (*def_rec)))
12801 + {
12802 + insn_type = get_attr_type (prev);
12803 + if (insn_type != TYPE_LEA)
12804 + goto done;
12805 + }
12806 + }
12807 + if (prev == BB_HEAD (bb))
12808 + break;
12809 + prev = PREV_INSN (prev);
12810 + }
12811 + }
12812 +
12813 + if (distance < LEA_SEARCH_THRESHOLD)
12814 + {
12815 + edge e;
12816 + edge_iterator ei;
12817 + bool simple_loop = false;
12818 +
12819 + FOR_EACH_EDGE (e, ei, bb->preds)
12820 + if (e->src == bb)
12821 + {
12822 + simple_loop = true;
12823 + break;
12824 + }
12825 +
12826 + if (simple_loop)
12827 + {
12828 + rtx prev = BB_END (bb);
12829 + while (prev
12830 + && prev != insn
12831 + && distance < LEA_SEARCH_THRESHOLD)
12832 + {
12833 + if (INSN_P (prev))
12834 + {
12835 + distance++;
12836 + for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
12837 + if (DF_REF_TYPE (*def_rec) == DF_REF_REG_DEF
12838 + && !DF_REF_IS_ARTIFICIAL (*def_rec)
12839 + && (regno1 == DF_REF_REGNO (*def_rec)
12840 + || regno2 == DF_REF_REGNO (*def_rec)))
12841 + {
12842 + insn_type = get_attr_type (prev);
12843 + if (insn_type != TYPE_LEA)
12844 + goto done;
12845 + }
12846 + }
12847 + prev = PREV_INSN (prev);
12848 + }
12849 + }
12850 + }
12851 +
12852 + distance = -1;
12853 +
12854 +done:
12855 + /* get_attr_type may modify recog data. We want to make sure
12856 + that recog data is valid for instruction INSN, on which
12857 + distance_non_agu_define is called. INSN is unchanged here. */
12858 + extract_insn_cached (insn);
12859 + return distance;
12860 +}
12861 +
12862 +/* Return the distance between INSN and the next insn that uses
12863 + register number REGNO0 in memory address. Return -1 if no such
12864 + a use is found within LEA_SEARCH_THRESHOLD or REGNO0 is set. */
12865 +
12866 +static int
12867 +distance_agu_use (unsigned int regno0, rtx insn)
12868 +{
12869 + basic_block bb = BLOCK_FOR_INSN (insn);
12870 + int distance = 0;
12871 + df_ref *def_rec;
12872 + df_ref *use_rec;
12873 +
12874 + if (insn != BB_END (bb))
12875 + {
12876 + rtx next = NEXT_INSN (insn);
12877 + while (next && distance < LEA_SEARCH_THRESHOLD)
12878 + {
12879 + if (INSN_P (next))
12880 + {
12881 + distance++;
12882 +
12883 + for (use_rec = DF_INSN_USES (next); *use_rec; use_rec++)
12884 + if ((DF_REF_TYPE (*use_rec) == DF_REF_REG_MEM_LOAD
12885 + || DF_REF_TYPE (*use_rec) == DF_REF_REG_MEM_STORE)
12886 + && regno0 == DF_REF_REGNO (*use_rec))
12887 + {
12888 + /* Return DISTANCE if OP0 is used in memory
12889 + address in NEXT. */
12890 + return distance;
12891 + }
12892 +
12893 + for (def_rec = DF_INSN_DEFS (next); *def_rec; def_rec++)
12894 + if (DF_REF_TYPE (*def_rec) == DF_REF_REG_DEF
12895 + && !DF_REF_IS_ARTIFICIAL (*def_rec)
12896 + && regno0 == DF_REF_REGNO (*def_rec))
12897 + {
12898 + /* Return -1 if OP0 is set in NEXT. */
12899 + return -1;
12900 + }
12901 + }
12902 + if (next == BB_END (bb))
12903 + break;
12904 + next = NEXT_INSN (next);
12905 + }
12906 + }
12907 +
12908 + if (distance < LEA_SEARCH_THRESHOLD)
12909 + {
12910 + edge e;
12911 + edge_iterator ei;
12912 + bool simple_loop = false;
12913 +
12914 + FOR_EACH_EDGE (e, ei, bb->succs)
12915 + if (e->dest == bb)
12916 + {
12917 + simple_loop = true;
12918 + break;
12919 + }
12920 +
12921 + if (simple_loop)
12922 + {
12923 + rtx next = BB_HEAD (bb);
12924 + while (next
12925 + && next != insn
12926 + && distance < LEA_SEARCH_THRESHOLD)
12927 + {
12928 + if (INSN_P (next))
12929 + {
12930 + distance++;
12931 +
12932 + for (use_rec = DF_INSN_USES (next); *use_rec; use_rec++)
12933 + if ((DF_REF_TYPE (*use_rec) == DF_REF_REG_MEM_LOAD
12934 + || DF_REF_TYPE (*use_rec) == DF_REF_REG_MEM_STORE)
12935 + && regno0 == DF_REF_REGNO (*use_rec))
12936 + {
12937 + /* Return DISTANCE if OP0 is used in memory
12938 + address in NEXT. */
12939 + return distance;
12940 + }
12941 +
12942 + for (def_rec = DF_INSN_DEFS (next); *def_rec; def_rec++)
12943 + if (DF_REF_TYPE (*def_rec) == DF_REF_REG_DEF
12944 + && !DF_REF_IS_ARTIFICIAL (*def_rec)
12945 + && regno0 == DF_REF_REGNO (*def_rec))
12946 + {
12947 + /* Return -1 if OP0 is set in NEXT. */
12948 + return -1;
12949 + }
12950 +
12951 + }
12952 + next = NEXT_INSN (next);
12953 + }
12954 + }
12955 + }
12956 +
12957 + return -1;
12958 +}
12959 +
12960 +/* Define this macro to tune LEA priority vs ADD, it take effect when
12961 + there is a dilemma of choicing LEA or ADD
12962 + Negative value: ADD is more preferred than LEA
12963 + Zero: Netrual
12964 + Positive value: LEA is more preferred than ADD*/
12965 +#define IX86_LEA_PRIORITY 2
12966 +
12967 +/* Return true if it is ok to optimize an ADD operation to LEA
12968 + operation to avoid flag register consumation. For the processors
12969 + like ATOM, if the destination register of LEA holds an actual
12970 + address which will be used soon, LEA is better and otherwise ADD
12971 + is better. */
12972 +
12973 +bool
12974 +ix86_lea_for_add_ok (enum rtx_code code ATTRIBUTE_UNUSED,
12975 + rtx insn, rtx operands[])
12976 +{
12977 + unsigned int regno0 = true_regnum (operands[0]);
12978 + unsigned int regno1 = true_regnum (operands[1]);
12979 + unsigned int regno2;
12980 +
12981 + if (!TARGET_OPT_AGU || optimize_function_for_size_p (cfun))
12982 + return regno0 != regno1;
12983 +
12984 + regno2 = true_regnum (operands[2]);
12985 +
12986 + /* If a = b + c, (a!=b && a!=c), must use lea form. */
12987 + if (regno0 != regno1 && regno0 != regno2)
12988 + return true;
12989 + else
12990 + {
12991 + int dist_define, dist_use;
12992 + dist_define = distance_non_agu_define (regno1, regno2, insn);
12993 + if (dist_define <= 0)
12994 + return true;
12995 +
12996 + /* If this insn has both backward non-agu dependence and forward
12997 + agu dependence, the one with short distance take effect. */
12998 + dist_use = distance_agu_use (regno0, insn);
12999 + if (dist_use <= 0
13000 + || (dist_define + IX86_LEA_PRIORITY) < dist_use)
13001 + return false;
13002 +
13003 + return true;
13004 + }
13005 +}
13006 +
13007 +/* Return true if destination reg of SET_BODY is shift count of
13008 + USE_BODY. */
13009 +
13010 +static bool
13011 +ix86_dep_by_shift_count_body (const_rtx set_body, const_rtx use_body)
13012 +{
13013 + rtx set_dest;
13014 + rtx shift_rtx;
13015 + int i;
13016 +
13017 + /* Retrieve destination of SET_BODY. */
13018 + switch (GET_CODE (set_body))
13019 + {
13020 + case SET:
13021 + set_dest = SET_DEST (set_body);
13022 + if (!set_dest || !REG_P (set_dest))
13023 + return false;
13024 + break;
13025 + case PARALLEL:
13026 + for (i = XVECLEN (set_body, 0) - 1; i >= 0; i--)
13027 + if (ix86_dep_by_shift_count_body (XVECEXP (set_body, 0, i),
13028 + use_body))
13029 + return true;
13030 + default:
13031 + return false;
13032 + break;
13033 + }
13034 +
13035 + /* Retrieve shift count of USE_BODY. */
13036 + switch (GET_CODE (use_body))
13037 + {
13038 + case SET:
13039 + shift_rtx = XEXP (use_body, 1);
13040 + break;
13041 + case PARALLEL:
13042 + for (i = XVECLEN (use_body, 0) - 1; i >= 0; i--)
13043 + if (ix86_dep_by_shift_count_body (set_body,
13044 + XVECEXP (use_body, 0, i)))
13045 + return true;
13046 + default:
13047 + return false;
13048 + break;
13049 + }
13050 +
13051 + if (shift_rtx
13052 + && (GET_CODE (shift_rtx) == ASHIFT
13053 + || GET_CODE (shift_rtx) == LSHIFTRT
13054 + || GET_CODE (shift_rtx) == ASHIFTRT
13055 + || GET_CODE (shift_rtx) == ROTATE
13056 + || GET_CODE (shift_rtx) == ROTATERT))
13057 + {
13058 + rtx shift_count = XEXP (shift_rtx, 1);
13059 +
13060 + /* Return true if shift count is dest of SET_BODY. */
13061 + if (REG_P (shift_count)
13062 + && true_regnum (set_dest) == true_regnum (shift_count))
13063 + return true;
13064 + }
13065 +
13066 + return false;
13067 +}
13068 +
13069 +/* Return true if destination reg of SET_INSN is shift count of
13070 + USE_INSN. */
13071 +
13072 +bool
13073 +ix86_dep_by_shift_count (const_rtx set_insn, const_rtx use_insn)
13074 +{
13075 + return ix86_dep_by_shift_count_body (PATTERN (set_insn),
13076 + PATTERN (use_insn));
13077 +}
13078 +
13079 /* Return TRUE or FALSE depending on whether the unary operator meets the
13080 appropriate constraints. */
13081
13082 @@ -18838,7 +19280,7 @@
13083 f = GGC_CNEW (struct machine_function);
13084 f->use_fast_prologue_epilogue_nregs = -1;
13085 f->tls_descriptor_call_expanded_p = 0;
13086 - f->call_abi = DEFAULT_ABI;
13087 + f->call_abi = ix86_abi;
13088
13089 return f;
13090 }
13091 @@ -19099,6 +19541,7 @@
13092 switch (ix86_tune)
13093 {
13094 case PROCESSOR_PENTIUM:
13095 + case PROCESSOR_ATOM:
13096 case PROCESSOR_K6:
13097 return 2;
13098
13099 @@ -19165,41 +19608,21 @@
13100 return 1;
13101 }
13102
13103 -/* A subroutine of ix86_adjust_cost -- return true iff INSN has a memory
13104 - address with operands set by DEP_INSN. */
13105 +/* Return true iff USE_INSN has a memory address with operands set by
13106 + SET_INSN. */
13107
13108 -static int
13109 -ix86_agi_dependent (rtx insn, rtx dep_insn, enum attr_type insn_type)
13110 +bool
13111 +ix86_agi_dependent (rtx set_insn, rtx use_insn)
13112 {
13113 - rtx addr;
13114 -
13115 - if (insn_type == TYPE_LEA
13116 - && TARGET_PENTIUM)
13117 - {
13118 - addr = PATTERN (insn);
13119 -
13120 - if (GET_CODE (addr) == PARALLEL)
13121 - addr = XVECEXP (addr, 0, 0);
13122 -
13123 - gcc_assert (GET_CODE (addr) == SET);
13124 -
13125 - addr = SET_SRC (addr);
13126 - }
13127 - else
13128 - {
13129 - int i;
13130 - extract_insn_cached (insn);
13131 - for (i = recog_data.n_operands - 1; i >= 0; --i)
13132 - if (MEM_P (recog_data.operand[i]))
13133 - {
13134 - addr = XEXP (recog_data.operand[i], 0);
13135 - goto found;
13136 - }
13137 - return 0;
13138 - found:;
13139 - }
13140 -
13141 - return modified_in_p (addr, dep_insn);
13142 + int i;
13143 + extract_insn_cached (use_insn);
13144 + for (i = recog_data.n_operands - 1; i >= 0; --i)
13145 + if (MEM_P (recog_data.operand[i]))
13146 + {
13147 + rtx addr = XEXP (recog_data.operand[i], 0);
13148 + return modified_in_p (addr, set_insn) != 0;
13149 + }
13150 + return false;
13151 }
13152
13153 static int
13154 @@ -19227,7 +19650,20 @@
13155 {
13156 case PROCESSOR_PENTIUM:
13157 /* Address Generation Interlock adds a cycle of latency. */
13158 - if (ix86_agi_dependent (insn, dep_insn, insn_type))
13159 + if (insn_type == TYPE_LEA)
13160 + {
13161 + rtx addr = PATTERN (insn);
13162 +
13163 + if (GET_CODE (addr) == PARALLEL)
13164 + addr = XVECEXP (addr, 0, 0);
13165 +
13166 + gcc_assert (GET_CODE (addr) == SET);
13167 +
13168 + addr = SET_SRC (addr);
13169 + if (modified_in_p (addr, dep_insn))
13170 + cost += 1;
13171 + }
13172 + else if (ix86_agi_dependent (dep_insn, insn))
13173 cost += 1;
13174
13175 /* ??? Compares pair with jump/setcc. */
13176 @@ -19237,7 +19673,7 @@
13177 /* Floating point stores require value to be ready one cycle earlier. */
13178 if (insn_type == TYPE_FMOV
13179 && get_attr_memory (insn) == MEMORY_STORE
13180 - && !ix86_agi_dependent (insn, dep_insn, insn_type))
13181 + && !ix86_agi_dependent (dep_insn, insn))
13182 cost += 1;
13183 break;
13184
13185 @@ -19260,7 +19696,7 @@
13186 in parallel with previous instruction in case
13187 previous instruction is not needed to compute the address. */
13188 if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
13189 - && !ix86_agi_dependent (insn, dep_insn, insn_type))
13190 + && !ix86_agi_dependent (dep_insn, insn))
13191 {
13192 /* Claim moves to take one cycle, as core can issue one load
13193 at time and the next load can start cycle later. */
13194 @@ -19289,7 +19725,7 @@
13195 in parallel with previous instruction in case
13196 previous instruction is not needed to compute the address. */
13197 if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
13198 - && !ix86_agi_dependent (insn, dep_insn, insn_type))
13199 + && !ix86_agi_dependent (dep_insn, insn))
13200 {
13201 /* Claim moves to take one cycle, as core can issue one load
13202 at time and the next load can start cycle later. */
13203 @@ -19306,6 +19742,7 @@
13204 case PROCESSOR_ATHLON:
13205 case PROCESSOR_K8:
13206 case PROCESSOR_AMDFAM10:
13207 + case PROCESSOR_ATOM:
13208 case PROCESSOR_GENERIC32:
13209 case PROCESSOR_GENERIC64:
13210 memory = get_attr_memory (insn);
13211 @@ -19314,7 +19751,7 @@
13212 in parallel with previous instruction in case
13213 previous instruction is not needed to compute the address. */
13214 if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
13215 - && !ix86_agi_dependent (insn, dep_insn, insn_type))
13216 + && !ix86_agi_dependent (dep_insn, insn))
13217 {
13218 enum attr_unit unit = get_attr_unit (insn);
13219 int loadcost = 3;
13220 @@ -29594,14 +30031,11 @@
13221 tree
13222 ix86_fn_abi_va_list (tree fndecl)
13223 {
13224 - int abi;
13225 -
13226 if (!TARGET_64BIT)
13227 return va_list_type_node;
13228 gcc_assert (fndecl != NULL_TREE);
13229 - abi = ix86_function_abi ((const_tree) fndecl);
13230
13231 - if (abi == MS_ABI)
13232 + if (ix86_function_abi ((const_tree) fndecl) == MS_ABI)
13233 return ms_va_list_type_node;
13234 else
13235 return sysv_va_list_type_node;
13236 diff -Nur a/gcc/config/i386/i386-c.c b/gcc/config/i386/i386-c.c
13237 --- a/gcc/config/i386/i386-c.c 2008-08-31 01:50:40.000000000 +0200
13238 +++ b/gcc/config/i386/i386-c.c 2010-01-25 09:50:29.005686600 +0100
13239 @@ -119,6 +119,10 @@
13240 def_or_undef (parse_in, "__core2");
13241 def_or_undef (parse_in, "__core2__");
13242 break;
13243 + case PROCESSOR_ATOM:
13244 + def_or_undef (parse_in, "__atom");
13245 + def_or_undef (parse_in, "__atom__");
13246 + break;
13247 /* use PROCESSOR_max to not set/unset the arch macro. */
13248 case PROCESSOR_max:
13249 break;
13250 @@ -187,6 +191,9 @@
13251 case PROCESSOR_CORE2:
13252 def_or_undef (parse_in, "__tune_core2__");
13253 break;
13254 + case PROCESSOR_ATOM:
13255 + def_or_undef (parse_in, "__tune_atom__");
13256 + break;
13257 case PROCESSOR_GENERIC32:
13258 case PROCESSOR_GENERIC64:
13259 break;
13260 diff -Nur a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
13261 --- a/gcc/config/i386/i386.h 2009-07-11 21:06:26.000000000 +0200
13262 +++ b/gcc/config/i386/i386.h 2010-01-25 09:50:29.005686600 +0100
13263 @@ -59,6 +59,7 @@
13264 #define TARGET_ABM OPTION_ISA_ABM
13265 #define TARGET_POPCNT OPTION_ISA_POPCNT
13266 #define TARGET_SAHF OPTION_ISA_SAHF
13267 +#define TARGET_MOVBE OPTION_ISA_MOVBE
13268 #define TARGET_AES OPTION_ISA_AES
13269 #define TARGET_PCLMUL OPTION_ISA_PCLMUL
13270 #define TARGET_CMPXCHG16B OPTION_ISA_CX16
13271 @@ -236,6 +237,7 @@
13272 #define TARGET_GENERIC64 (ix86_tune == PROCESSOR_GENERIC64)
13273 #define TARGET_GENERIC (TARGET_GENERIC32 || TARGET_GENERIC64)
13274 #define TARGET_AMDFAM10 (ix86_tune == PROCESSOR_AMDFAM10)
13275 +#define TARGET_ATOM (ix86_tune == PROCESSOR_ATOM)
13276
13277 /* Feature tests against the various tunings. */
13278 enum ix86_tune_indices {
13279 @@ -300,6 +302,7 @@
13280 X86_TUNE_USE_VECTOR_FP_CONVERTS,
13281 X86_TUNE_USE_VECTOR_CONVERTS,
13282 X86_TUNE_FUSE_CMP_AND_BRANCH,
13283 + X86_TUNE_OPT_AGU,
13284
13285 X86_TUNE_LAST
13286 };
13287 @@ -387,6 +390,7 @@
13288 ix86_tune_features[X86_TUNE_USE_VECTOR_CONVERTS]
13289 #define TARGET_FUSE_CMP_AND_BRANCH \
13290 ix86_tune_features[X86_TUNE_FUSE_CMP_AND_BRANCH]
13291 +#define TARGET_OPT_AGU ix86_tune_features[X86_TUNE_OPT_AGU]
13292
13293 /* Feature tests against the various architecture variations. */
13294 enum ix86_arch_indices {
13295 @@ -470,7 +474,10 @@
13296 MS_ABI = 1
13297 };
13298
13299 -/* The default abi form used by target. */
13300 +/* The abi used by target. */
13301 +extern enum calling_abi ix86_abi;
13302 +
13303 +/* The default abi used by target. */
13304 #define DEFAULT_ABI SYSV_ABI
13305
13306 /* Subtargets may reset this to 1 in order to enable 96-bit long double
13307 @@ -569,6 +576,7 @@
13308 TARGET_CPU_DEFAULT_prescott,
13309 TARGET_CPU_DEFAULT_nocona,
13310 TARGET_CPU_DEFAULT_core2,
13311 + TARGET_CPU_DEFAULT_atom,
13312
13313 TARGET_CPU_DEFAULT_geode,
13314 TARGET_CPU_DEFAULT_k6,
13315 @@ -658,7 +666,7 @@
13316
13317 /* Boundary (in *bits*) on which stack pointer should be aligned. */
13318 #define STACK_BOUNDARY \
13319 - (TARGET_64BIT && DEFAULT_ABI == MS_ABI ? 128 : BITS_PER_WORD)
13320 + (TARGET_64BIT && ix86_abi == MS_ABI ? 128 : BITS_PER_WORD)
13321
13322 /* Stack boundary of the main function guaranteed by OS. */
13323 #define MAIN_STACK_BOUNDARY (TARGET_64BIT ? 128 : 32)
13324 @@ -1584,7 +1592,7 @@
13325 int maybe_vaarg; /* true for calls to possibly vardic fncts. */
13326 int float_in_sse; /* 1 if in 32-bit mode SFmode (2 for DFmode) should
13327 be passed in SSE registers. Otherwise 0. */
13328 - int call_abi; /* Set to SYSV_ABI for sysv abi. Otherwise
13329 + enum calling_abi call_abi; /* Set to SYSV_ABI for sysv abi. Otherwise
13330 MS_ABI for ms abi. */
13331 } CUMULATIVE_ARGS;
13332
13333 @@ -2230,6 +2238,7 @@
13334 PROCESSOR_GENERIC32,
13335 PROCESSOR_GENERIC64,
13336 PROCESSOR_AMDFAM10,
13337 + PROCESSOR_ATOM,
13338 PROCESSOR_max
13339 };
13340
13341 @@ -2403,7 +2412,7 @@
13342 int tls_descriptor_call_expanded_p;
13343 /* This value is used for amd64 targets and specifies the current abi
13344 to be used. MS_ABI means ms abi. Otherwise SYSV_ABI means sysv abi. */
13345 - int call_abi;
13346 + enum calling_abi call_abi;
13347 };
13348
13349 #define ix86_stack_locals (cfun->machine->stack_locals)
13350 diff -Nur a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
13351 --- a/gcc/config/i386/i386.md 2009-07-08 18:59:15.000000000 +0200
13352 +++ b/gcc/config/i386/i386.md 2010-01-25 09:50:29.015687523 +0100
13353 @@ -316,7 +316,7 @@
13354
13355 \f
13356 ;; Processor type.
13357 -(define_attr "cpu" "none,pentium,pentiumpro,geode,k6,athlon,k8,core2,
13358 +(define_attr "cpu" "none,pentium,pentiumpro,geode,k6,athlon,k8,core2,atom,
13359 generic64,amdfam10"
13360 (const (symbol_ref "ix86_schedule")))
13361
13362 @@ -612,6 +612,12 @@
13363 (define_attr "i387_cw" "trunc,floor,ceil,mask_pm,uninitialized,any"
13364 (const_string "any"))
13365
13366 +;; Define attribute to classify add/sub insns that consumes carry flag (CF)
13367 +(define_attr "use_carry" "0,1" (const_string "0"))
13368 +
13369 +;; Define attribute to indicate unaligned ssemov insns
13370 +(define_attr "movu" "0,1" (const_string "0"))
13371 +
13372 ;; Describe a user's asm statement.
13373 (define_asm_attributes
13374 [(set_attr "length" "128")
13375 @@ -727,6 +733,7 @@
13376 (include "k6.md")
13377 (include "athlon.md")
13378 (include "geode.md")
13379 +(include "atom.md")
13380
13381 \f
13382 ;; Operand and operator predicates and constraints
13383 @@ -5790,6 +5797,7 @@
13384 "TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)"
13385 "adc{q}\t{%2, %0|%0, %2}"
13386 [(set_attr "type" "alu")
13387 + (set_attr "use_carry" "1")
13388 (set_attr "pent_pair" "pu")
13389 (set_attr "mode" "DI")])
13390
13391 @@ -5864,6 +5872,7 @@
13392 "ix86_binary_operator_ok (PLUS, QImode, operands)"
13393 "adc{b}\t{%2, %0|%0, %2}"
13394 [(set_attr "type" "alu")
13395 + (set_attr "use_carry" "1")
13396 (set_attr "pent_pair" "pu")
13397 (set_attr "mode" "QI")])
13398
13399 @@ -5876,6 +5885,7 @@
13400 "ix86_binary_operator_ok (PLUS, HImode, operands)"
13401 "adc{w}\t{%2, %0|%0, %2}"
13402 [(set_attr "type" "alu")
13403 + (set_attr "use_carry" "1")
13404 (set_attr "pent_pair" "pu")
13405 (set_attr "mode" "HI")])
13406
13407 @@ -5888,6 +5898,7 @@
13408 "ix86_binary_operator_ok (PLUS, SImode, operands)"
13409 "adc{l}\t{%2, %0|%0, %2}"
13410 [(set_attr "type" "alu")
13411 + (set_attr "use_carry" "1")
13412 (set_attr "pent_pair" "pu")
13413 (set_attr "mode" "SI")])
13414
13415 @@ -5901,6 +5912,7 @@
13416 "TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)"
13417 "adc{l}\t{%2, %k0|%k0, %2}"
13418 [(set_attr "type" "alu")
13419 + (set_attr "use_carry" "1")
13420 (set_attr "pent_pair" "pu")
13421 (set_attr "mode" "SI")])
13422
13423 @@ -6130,9 +6142,9 @@
13424 (set_attr "mode" "SI")])
13425
13426 (define_insn "*adddi_1_rex64"
13427 - [(set (match_operand:DI 0 "nonimmediate_operand" "=r,rm,r")
13428 - (plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0,r")
13429 - (match_operand:DI 2 "x86_64_general_operand" "rme,re,le")))
13430 + [(set (match_operand:DI 0 "nonimmediate_operand" "=r,rm,r,r")
13431 + (plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0,r,r")
13432 + (match_operand:DI 2 "x86_64_general_operand" "rme,re,0,le")))
13433 (clobber (reg:CC FLAGS_REG))]
13434 "TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)"
13435 {
13436 @@ -6153,6 +6165,10 @@
13437 }
13438
13439 default:
13440 + /* Use add as much as possible to replace lea for AGU optimization. */
13441 + if (which_alternative == 2 && TARGET_OPT_AGU)
13442 + return "add{q}\t{%1, %0|%0, %1}";
13443 +
13444 gcc_assert (rtx_equal_p (operands[0], operands[1]));
13445
13446 /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'.
13447 @@ -6171,8 +6187,11 @@
13448 }
13449 }
13450 [(set (attr "type")
13451 - (cond [(eq_attr "alternative" "2")
13452 + (cond [(and (eq_attr "alternative" "2")
13453 + (eq (symbol_ref "TARGET_OPT_AGU") (const_int 0)))
13454 (const_string "lea")
13455 + (eq_attr "alternative" "3")
13456 + (const_string "lea")
13457 ; Current assemblers are broken and do not allow @GOTOFF in
13458 ; ought but a memory context.
13459 (match_operand:DI 2 "pic_symbolic_operand" "")
13460 @@ -6189,8 +6208,8 @@
13461 (plus:DI (match_operand:DI 1 "register_operand" "")
13462 (match_operand:DI 2 "x86_64_nonmemory_operand" "")))
13463 (clobber (reg:CC FLAGS_REG))]
13464 - "TARGET_64BIT && reload_completed
13465 - && true_regnum (operands[0]) != true_regnum (operands[1])"
13466 + "TARGET_64BIT && reload_completed
13467 + && ix86_lea_for_add_ok (PLUS, insn, operands)"
13468 [(set (match_dup 0)
13469 (plus:DI (match_dup 1)
13470 (match_dup 2)))]
13471 @@ -6394,9 +6413,9 @@
13472
13473
13474 (define_insn "*addsi_1"
13475 - [(set (match_operand:SI 0 "nonimmediate_operand" "=r,rm,r")
13476 - (plus:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0,r")
13477 - (match_operand:SI 2 "general_operand" "g,ri,li")))
13478 + [(set (match_operand:SI 0 "nonimmediate_operand" "=r,rm,r,r")
13479 + (plus:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0,r,r")
13480 + (match_operand:SI 2 "general_operand" "g,ri,0,li")))
13481 (clobber (reg:CC FLAGS_REG))]
13482 "ix86_binary_operator_ok (PLUS, SImode, operands)"
13483 {
13484 @@ -6417,6 +6436,10 @@
13485 }
13486
13487 default:
13488 + /* Use add as much as possible to replace lea for AGU optimization. */
13489 + if (which_alternative == 2 && TARGET_OPT_AGU)
13490 + return "add{l}\t{%1, %0|%0, %1}";
13491 +
13492 gcc_assert (rtx_equal_p (operands[0], operands[1]));
13493
13494 /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'.
13495 @@ -6433,7 +6456,10 @@
13496 }
13497 }
13498 [(set (attr "type")
13499 - (cond [(eq_attr "alternative" "2")
13500 + (cond [(and (eq_attr "alternative" "2")
13501 + (eq (symbol_ref "TARGET_OPT_AGU") (const_int 0)))
13502 + (const_string "lea")
13503 + (eq_attr "alternative" "3")
13504 (const_string "lea")
13505 ; Current assemblers are broken and do not allow @GOTOFF in
13506 ; ought but a memory context.
13507 @@ -6451,8 +6477,7 @@
13508 (plus (match_operand 1 "register_operand" "")
13509 (match_operand 2 "nonmemory_operand" "")))
13510 (clobber (reg:CC FLAGS_REG))]
13511 - "reload_completed
13512 - && true_regnum (operands[0]) != true_regnum (operands[1])"
13513 + "reload_completed && ix86_lea_for_add_ok (PLUS, insn, operands)"
13514 [(const_int 0)]
13515 {
13516 rtx pat;
13517 @@ -7553,6 +7578,7 @@
13518 "TARGET_64BIT && ix86_binary_operator_ok (MINUS, DImode, operands)"
13519 "sbb{q}\t{%2, %0|%0, %2}"
13520 [(set_attr "type" "alu")
13521 + (set_attr "use_carry" "1")
13522 (set_attr "pent_pair" "pu")
13523 (set_attr "mode" "DI")])
13524
13525 @@ -7601,6 +7627,7 @@
13526 "ix86_binary_operator_ok (MINUS, QImode, operands)"
13527 "sbb{b}\t{%2, %0|%0, %2}"
13528 [(set_attr "type" "alu")
13529 + (set_attr "use_carry" "1")
13530 (set_attr "pent_pair" "pu")
13531 (set_attr "mode" "QI")])
13532
13533 @@ -7613,6 +7640,7 @@
13534 "ix86_binary_operator_ok (MINUS, HImode, operands)"
13535 "sbb{w}\t{%2, %0|%0, %2}"
13536 [(set_attr "type" "alu")
13537 + (set_attr "use_carry" "1")
13538 (set_attr "pent_pair" "pu")
13539 (set_attr "mode" "HI")])
13540
13541 @@ -7625,6 +7653,7 @@
13542 "ix86_binary_operator_ok (MINUS, SImode, operands)"
13543 "sbb{l}\t{%2, %0|%0, %2}"
13544 [(set_attr "type" "alu")
13545 + (set_attr "use_carry" "1")
13546 (set_attr "pent_pair" "pu")
13547 (set_attr "mode" "SI")])
13548
13549 @@ -15155,7 +15184,7 @@
13550 ? gen_rtx_REG (XCmode, FIRST_FLOAT_REG) : NULL),
13551 operands[0], const0_rtx,
13552 GEN_INT ((TARGET_64BIT
13553 - ? (DEFAULT_ABI == SYSV_ABI
13554 + ? (ix86_abi == SYSV_ABI
13555 ? X86_64_SSE_REGPARM_MAX
13556 : X64_SSE_REGPARM_MAX)
13557 : X86_32_SSE_REGPARM_MAX)
13558 @@ -15235,6 +15264,7 @@
13559 "reload_completed"
13560 "ret"
13561 [(set_attr "length" "1")
13562 + (set_attr "atom_unit" "jeu")
13563 (set_attr "length_immediate" "0")
13564 (set_attr "modrm" "0")])
13565
13566 @@ -15247,6 +15277,7 @@
13567 "reload_completed"
13568 "rep\;ret"
13569 [(set_attr "length" "1")
13570 + (set_attr "atom_unit" "jeu")
13571 (set_attr "length_immediate" "0")
13572 (set_attr "prefix_rep" "1")
13573 (set_attr "modrm" "0")])
13574 @@ -15257,6 +15288,7 @@
13575 "reload_completed"
13576 "ret\t%0"
13577 [(set_attr "length" "3")
13578 + (set_attr "atom_unit" "jeu")
13579 (set_attr "length_immediate" "2")
13580 (set_attr "modrm" "0")])
13581
13582 @@ -15610,7 +15642,7 @@
13583 (bswap:SI (match_operand:SI 1 "register_operand" "")))]
13584 ""
13585 {
13586 - if (!TARGET_BSWAP)
13587 + if (!(TARGET_BSWAP || TARGET_MOVBE))
13588 {
13589 rtx x = operands[0];
13590
13591 @@ -15622,6 +15654,21 @@
13592 }
13593 })
13594
13595 +(define_insn "*bswapsi_movbe"
13596 + [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,m")
13597 + (bswap:SI (match_operand:SI 1 "nonimmediate_operand" "0,m,r")))]
13598 + "TARGET_MOVBE && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
13599 + "@
13600 + bswap\t%0
13601 + movbe\t{%1, %0|%0, %1}
13602 + movbe\t{%1, %0|%0, %1}"
13603 + [(set_attr "type" "*,imov,imov")
13604 + (set_attr "modrm" "*,1,1")
13605 + (set_attr "prefix_0f" "1")
13606 + (set_attr "prefix_extra" "*,1,1")
13607 + (set_attr "length" "2,*,*")
13608 + (set_attr "mode" "SI")])
13609 +
13610 (define_insn "*bswapsi_1"
13611 [(set (match_operand:SI 0 "register_operand" "=r")
13612 (bswap:SI (match_operand:SI 1 "register_operand" "0")))]
13613 @@ -15650,7 +15697,29 @@
13614 [(set_attr "length" "4")
13615 (set_attr "mode" "HI")])
13616
13617 -(define_insn "bswapdi2"
13618 +(define_expand "bswapdi2"
13619 + [(set (match_operand:DI 0 "register_operand" "")
13620 + (bswap:DI (match_operand:DI 1 "register_operand" "")))]
13621 + "TARGET_64BIT"
13622 + "")
13623 +
13624 +(define_insn "*bswapdi_movbe"
13625 + [(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,m")
13626 + (bswap:DI (match_operand:DI 1 "nonimmediate_operand" "0,m,r")))]
13627 + "TARGET_64BIT && TARGET_MOVBE
13628 + && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
13629 + "@
13630 + bswap\t%0
13631 + movbe\t{%1, %0|%0, %1}
13632 + movbe\t{%1, %0|%0, %1}"
13633 + [(set_attr "type" "*,imov,imov")
13634 + (set_attr "modrm" "*,1,1")
13635 + (set_attr "prefix_0f" "1")
13636 + (set_attr "prefix_extra" "*,1,1")
13637 + (set_attr "length" "3,*,*")
13638 + (set_attr "mode" "DI")])
13639 +
13640 +(define_insn "*bswapdi_1"
13641 [(set (match_operand:DI 0 "register_operand" "=r")
13642 (bswap:DI (match_operand:DI 1 "register_operand" "0")))]
13643 "TARGET_64BIT"
13644 @@ -16378,6 +16447,7 @@
13645 "TARGET_SSE_MATH"
13646 "%vrcpss\t{%1, %d0|%d0, %1}"
13647 [(set_attr "type" "sse")
13648 + (set_attr "atom_sse_attr" "rcp")
13649 (set_attr "prefix" "maybe_vex")
13650 (set_attr "mode" "SF")])
13651
13652 @@ -16729,6 +16799,7 @@
13653 "TARGET_SSE_MATH"
13654 "%vrsqrtss\t{%1, %d0|%d0, %1}"
13655 [(set_attr "type" "sse")
13656 + (set_attr "atom_sse_attr" "rcp")
13657 (set_attr "prefix" "maybe_vex")
13658 (set_attr "mode" "SF")])
13659
13660 @@ -16749,6 +16820,7 @@
13661 "SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH"
13662 "%vsqrts<ssemodefsuffix>\t{%1, %d0|%d0, %1}"
13663 [(set_attr "type" "sse")
13664 + (set_attr "atom_sse_attr" "sqrt")
13665 (set_attr "prefix" "maybe_vex")
13666 (set_attr "mode" "<MODE>")
13667 (set_attr "athlon_decode" "*")
13668 @@ -19802,6 +19874,7 @@
13669 ; Since we don't have the proper number of operands for an alu insn,
13670 ; fill in all the blanks.
13671 [(set_attr "type" "alu")
13672 + (set_attr "use_carry" "1")
13673 (set_attr "pent_pair" "pu")
13674 (set_attr "memory" "none")
13675 (set_attr "imm_disp" "false")
13676 @@ -19817,6 +19890,7 @@
13677 ""
13678 "sbb{q}\t%0, %0"
13679 [(set_attr "type" "alu")
13680 + (set_attr "use_carry" "1")
13681 (set_attr "pent_pair" "pu")
13682 (set_attr "memory" "none")
13683 (set_attr "imm_disp" "false")
13684 @@ -19860,6 +19934,7 @@
13685 ; Since we don't have the proper number of operands for an alu insn,
13686 ; fill in all the blanks.
13687 [(set_attr "type" "alu")
13688 + (set_attr "use_carry" "1")
13689 (set_attr "pent_pair" "pu")
13690 (set_attr "memory" "none")
13691 (set_attr "imm_disp" "false")
13692 @@ -19875,6 +19950,7 @@
13693 ""
13694 "sbb{l}\t%0, %0"
13695 [(set_attr "type" "alu")
13696 + (set_attr "use_carry" "1")
13697 (set_attr "pent_pair" "pu")
13698 (set_attr "memory" "none")
13699 (set_attr "imm_disp" "false")
13700 @@ -20207,7 +20283,8 @@
13701 }
13702 }
13703 [(set (attr "type")
13704 - (cond [(eq_attr "alternative" "0")
13705 + (cond [(and (eq_attr "alternative" "0")
13706 + (eq (symbol_ref "TARGET_OPT_AGU") (const_int 0)))
13707 (const_string "alu")
13708 (match_operand:SI 2 "const0_operand" "")
13709 (const_string "imov")
13710 @@ -20250,7 +20327,8 @@
13711 }
13712 }
13713 [(set (attr "type")
13714 - (cond [(eq_attr "alternative" "0")
13715 + (cond [(and (eq_attr "alternative" "0")
13716 + (eq (symbol_ref "TARGET_OPT_AGU") (const_int 0)))
13717 (const_string "alu")
13718 (match_operand:DI 2 "const0_operand" "")
13719 (const_string "imov")
13720 @@ -21734,6 +21812,7 @@
13721 return patterns[locality];
13722 }
13723 [(set_attr "type" "sse")
13724 + (set_attr "atom_sse_attr" "prefetch")
13725 (set_attr "memory" "none")])
13726
13727 (define_insn "*prefetch_sse_rex"
13728 @@ -21752,6 +21831,7 @@
13729 return patterns[locality];
13730 }
13731 [(set_attr "type" "sse")
13732 + (set_attr "atom_sse_attr" "prefetch")
13733 (set_attr "memory" "none")])
13734
13735 (define_insn "*prefetch_3dnow"
13736 diff -Nur a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
13737 --- a/gcc/config/i386/i386.opt 2009-02-20 16:20:38.000000000 +0100
13738 +++ b/gcc/config/i386/i386.opt 2010-01-25 09:50:29.015687523 +0100
13739 @@ -228,6 +228,10 @@
13740 Target RejectNegative Joined Var(ix86_tune_string)
13741 Schedule code for given CPU
13742
13743 +mabi=
13744 +Target RejectNegative Joined Var(ix86_abi_string)
13745 +Generate code that conforms to the given ABI
13746 +
13747 mveclibabi=
13748 Target RejectNegative Joined Var(ix86_veclibabi_string)
13749 Vector library ABI to use
13750 @@ -335,6 +339,10 @@
13751 Target Report Mask(ISA_SAHF) Var(ix86_isa_flags) VarExists Save
13752 Support code generation of sahf instruction in 64bit x86-64 code.
13753
13754 +mmovbe
13755 +Target Report Mask(ISA_MOVBE) Var(ix86_isa_flags) VarExists Save
13756 +Support code generation of movbe instruction.
13757 +
13758 maes
13759 Target Report Mask(ISA_AES) Var(ix86_isa_flags) VarExists Save
13760 Support AES built-in functions and code generation
13761 diff -Nur a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
13762 --- a/gcc/config/i386/i386-protos.h 2009-07-11 21:06:26.000000000 +0200
13763 +++ b/gcc/config/i386/i386-protos.h 2010-01-25 09:50:29.015687523 +0100
13764 @@ -86,6 +86,9 @@
13765 extern void ix86_expand_binary_operator (enum rtx_code,
13766 enum machine_mode, rtx[]);
13767 extern int ix86_binary_operator_ok (enum rtx_code, enum machine_mode, rtx[]);
13768 +extern bool ix86_lea_for_add_ok (enum rtx_code, rtx, rtx[]);
13769 +extern bool ix86_dep_by_shift_count (const_rtx set_insn, const_rtx use_insn);
13770 +extern bool ix86_agi_dependent (rtx set_insn, rtx use_insn);
13771 extern void ix86_expand_unary_operator (enum rtx_code, enum machine_mode,
13772 rtx[]);
13773 extern rtx ix86_build_const_vector (enum machine_mode, bool, rtx);
13774 @@ -140,9 +143,8 @@
13775 extern bool ix86_sol10_return_in_memory (const_tree,const_tree);
13776 extern rtx ix86_force_to_memory (enum machine_mode, rtx);
13777 extern void ix86_free_from_memory (enum machine_mode);
13778 -extern int ix86_cfun_abi (void);
13779 -extern int ix86_function_abi (const_tree);
13780 -extern int ix86_function_type_abi (const_tree);
13781 +extern enum calling_abi ix86_cfun_abi (void);
13782 +extern enum calling_abi ix86_function_type_abi (const_tree);
13783 extern void ix86_call_abi_override (const_tree);
13784 extern tree ix86_fn_abi_va_list (tree);
13785 extern tree ix86_canonical_va_list_type (tree);
13786 diff -Nur a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
13787 --- a/gcc/config/i386/mingw32.h 2009-02-20 16:20:38.000000000 +0100
13788 +++ b/gcc/config/i386/mingw32.h 2010-01-25 09:50:29.015687523 +0100
13789 @@ -38,7 +38,7 @@
13790 builtin_define_std ("WINNT"); \
13791 builtin_define_with_int_value ("_INTEGRAL_MAX_BITS", \
13792 TYPE_PRECISION (intmax_type_node));\
13793 - if (TARGET_64BIT && DEFAULT_ABI == MS_ABI) \
13794 + if (TARGET_64BIT && ix86_abi == MS_ABI) \
13795 { \
13796 builtin_define ("__MINGW64__"); \
13797 builtin_define_std ("WIN64"); \
13798 diff -Nur a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
13799 --- a/gcc/config/i386/sse.md 2009-05-06 15:20:41.000000000 +0200
13800 +++ b/gcc/config/i386/sse.md 2010-01-25 09:50:29.015687523 +0100
13801 @@ -338,6 +338,7 @@
13802 && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
13803 "vmovup<avxmodesuffixf2c>\t{%1, %0|%0, %1}"
13804 [(set_attr "type" "ssemov")
13805 + (set_attr "movu" "1")
13806 (set_attr "prefix" "vex")
13807 (set_attr "mode" "<MODE>")])
13808
13809 @@ -363,6 +364,7 @@
13810 && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
13811 "movup<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
13812 [(set_attr "type" "ssemov")
13813 + (set_attr "movu" "1")
13814 (set_attr "mode" "<MODE>")])
13815
13816 (define_insn "avx_movdqu<avxmodesuffix>"
13817 @@ -373,6 +375,7 @@
13818 "TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
13819 "vmovdqu\t{%1, %0|%0, %1}"
13820 [(set_attr "type" "ssemov")
13821 + (set_attr "movu" "1")
13822 (set_attr "prefix" "vex")
13823 (set_attr "mode" "<avxvecmode>")])
13824
13825 @@ -383,6 +386,7 @@
13826 "TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
13827 "movdqu\t{%1, %0|%0, %1}"
13828 [(set_attr "type" "ssemov")
13829 + (set_attr "movu" "1")
13830 (set_attr "prefix_data16" "1")
13831 (set_attr "mode" "TI")])
13832
13833 @@ -424,7 +428,7 @@
13834 UNSPEC_MOVNT))]
13835 "TARGET_SSE2"
13836 "movntdq\t{%1, %0|%0, %1}"
13837 - [(set_attr "type" "ssecvt")
13838 + [(set_attr "type" "ssemov")
13839 (set_attr "prefix_data16" "1")
13840 (set_attr "mode" "TI")])
13841
13842 @@ -434,7 +438,7 @@
13843 UNSPEC_MOVNT))]
13844 "TARGET_SSE2"
13845 "movnti\t{%1, %0|%0, %1}"
13846 - [(set_attr "type" "ssecvt")
13847 + [(set_attr "type" "ssemov")
13848 (set_attr "mode" "V2DF")])
13849
13850 (define_insn "avx_lddqu<avxmodesuffix>"
13851 @@ -445,6 +449,7 @@
13852 "TARGET_AVX"
13853 "vlddqu\t{%1, %0|%0, %1}"
13854 [(set_attr "type" "ssecvt")
13855 + (set_attr "movu" "1")
13856 (set_attr "prefix" "vex")
13857 (set_attr "mode" "<avxvecmode>")])
13858
13859 @@ -454,7 +459,8 @@
13860 UNSPEC_LDDQU))]
13861 "TARGET_SSE3"
13862 "lddqu\t{%1, %0|%0, %1}"
13863 - [(set_attr "type" "ssecvt")
13864 + [(set_attr "type" "ssemov")
13865 + (set_attr "movu" "1")
13866 (set_attr "prefix_rep" "1")
13867 (set_attr "mode" "TI")])
13868
13869 @@ -761,6 +767,7 @@
13870 "TARGET_SSE"
13871 "%vrcpps\t{%1, %0|%0, %1}"
13872 [(set_attr "type" "sse")
13873 + (set_attr "atom_sse_attr" "rcp")
13874 (set_attr "prefix" "maybe_vex")
13875 (set_attr "mode" "V4SF")])
13876
13877 @@ -787,6 +794,7 @@
13878 "TARGET_SSE"
13879 "rcpss\t{%1, %0|%0, %1}"
13880 [(set_attr "type" "sse")
13881 + (set_attr "atom_sse_attr" "rcp")
13882 (set_attr "mode" "SF")])
13883
13884 (define_expand "sqrtv8sf2"
13885 @@ -832,6 +840,7 @@
13886 "TARGET_SSE"
13887 "%vsqrtps\t{%1, %0|%0, %1}"
13888 [(set_attr "type" "sse")
13889 + (set_attr "atom_sse_attr" "sqrt")
13890 (set_attr "prefix" "maybe_vex")
13891 (set_attr "mode" "V4SF")])
13892
13893 @@ -876,6 +885,7 @@
13894 "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
13895 "sqrts<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
13896 [(set_attr "type" "sse")
13897 + (set_attr "atom_sse_attr" "sqrt")
13898 (set_attr "mode" "<ssescalarmode>")])
13899
13900 (define_expand "rsqrtv8sf2"
13901 @@ -1039,7 +1049,7 @@
13902 (const_int 1)))]
13903 "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
13904 "<maxminfprefix>s<ssemodesuffixf2c>\t{%2, %0|%0, %2}"
13905 - [(set_attr "type" "sse")
13906 + [(set_attr "type" "sseadd")
13907 (set_attr "mode" "<ssescalarmode>")])
13908
13909 ;; These versions of the min/max patterns implement exactly the operations
13910 @@ -1175,6 +1185,7 @@
13911 "TARGET_SSE3"
13912 "addsubpd\t{%2, %0|%0, %2}"
13913 [(set_attr "type" "sseadd")
13914 + (set_attr "atom_unit" "complex")
13915 (set_attr "mode" "V2DF")])
13916
13917 (define_insn "avx_h<plusminus_insn>v4df3"
13918 @@ -1298,6 +1309,7 @@
13919 "TARGET_SSE3"
13920 "h<plusminus_mnemonic>ps\t{%2, %0|%0, %2}"
13921 [(set_attr "type" "sseadd")
13922 + (set_attr "atom_unit" "complex")
13923 (set_attr "prefix_rep" "1")
13924 (set_attr "mode" "V4SF")])
13925
13926 @@ -5066,6 +5078,7 @@
13927 "TARGET_SSE2 && ix86_binary_operator_ok (MULT, V8HImode, operands)"
13928 "pmaddwd\t{%2, %0|%0, %2}"
13929 [(set_attr "type" "sseiadd")
13930 + (set_attr "atom_unit" "simul")
13931 (set_attr "prefix_data16" "1")
13932 (set_attr "mode" "TI")])
13933
13934 @@ -7025,6 +7038,7 @@
13935 movq\t{%H1, %0|%0, %H1}
13936 mov{q}\t{%H1, %0|%0, %H1}"
13937 [(set_attr "type" "ssemov,sseishft,ssemov,imov")
13938 + (set_attr "atom_unit" "*,sishuf,*,*")
13939 (set_attr "memory" "*,none,*,*")
13940 (set_attr "mode" "V2SF,TI,TI,DI")])
13941
13942 @@ -7057,6 +7071,7 @@
13943 psrldq\t{$8, %0|%0, 8}
13944 movq\t{%H1, %0|%0, %H1}"
13945 [(set_attr "type" "ssemov,sseishft,ssemov")
13946 + (set_attr "atom_unit" "*,sishuf,*")
13947 (set_attr "memory" "*,none,*")
13948 (set_attr "mode" "V2SF,TI,TI")])
13949
13950 @@ -7614,6 +7629,7 @@
13951 "TARGET_SSE2"
13952 "psadbw\t{%2, %0|%0, %2}"
13953 [(set_attr "type" "sseiadd")
13954 + (set_attr "atom_unit" "simul")
13955 (set_attr "prefix_data16" "1")
13956 (set_attr "mode" "TI")])
13957
13958 @@ -7635,7 +7651,7 @@
13959 UNSPEC_MOVMSK))]
13960 "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
13961 "%vmovmskp<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
13962 - [(set_attr "type" "ssecvt")
13963 + [(set_attr "type" "ssemov")
13964 (set_attr "prefix" "maybe_vex")
13965 (set_attr "mode" "<MODE>")])
13966
13967 @@ -7645,7 +7661,7 @@
13968 UNSPEC_MOVMSK))]
13969 "TARGET_SSE2"
13970 "%vpmovmskb\t{%1, %0|%0, %1}"
13971 - [(set_attr "type" "ssecvt")
13972 + [(set_attr "type" "ssemov")
13973 (set_attr "prefix_data16" "1")
13974 (set_attr "prefix" "maybe_vex")
13975 (set_attr "mode" "SI")])
13976 @@ -7668,7 +7684,7 @@
13977 "TARGET_SSE2 && !TARGET_64BIT"
13978 ;; @@@ check ordering of operands in intel/nonintel syntax
13979 "%vmaskmovdqu\t{%2, %1|%1, %2}"
13980 - [(set_attr "type" "ssecvt")
13981 + [(set_attr "type" "ssemov")
13982 (set_attr "prefix_data16" "1")
13983 (set_attr "prefix" "maybe_vex")
13984 (set_attr "mode" "TI")])
13985 @@ -7682,7 +7698,7 @@
13986 "TARGET_SSE2 && TARGET_64BIT"
13987 ;; @@@ check ordering of operands in intel/nonintel syntax
13988 "%vmaskmovdqu\t{%2, %1|%1, %2}"
13989 - [(set_attr "type" "ssecvt")
13990 + [(set_attr "type" "ssemov")
13991 (set_attr "prefix_data16" "1")
13992 (set_attr "prefix" "maybe_vex")
13993 (set_attr "mode" "TI")])
13994 @@ -7693,6 +7709,7 @@
13995 "TARGET_SSE"
13996 "%vldmxcsr\t%0"
13997 [(set_attr "type" "sse")
13998 + (set_attr "atom_sse_attr" "mxcsr")
13999 (set_attr "prefix" "maybe_vex")
14000 (set_attr "memory" "load")])
14001
14002 @@ -7702,6 +7719,7 @@
14003 "TARGET_SSE"
14004 "%vstmxcsr\t%0"
14005 [(set_attr "type" "sse")
14006 + (set_attr "atom_sse_attr" "mxcsr")
14007 (set_attr "prefix" "maybe_vex")
14008 (set_attr "memory" "store")])
14009
14010 @@ -7720,6 +7738,7 @@
14011 "TARGET_SSE || TARGET_3DNOW_A"
14012 "sfence"
14013 [(set_attr "type" "sse")
14014 + (set_attr "atom_sse_attr" "fence")
14015 (set_attr "memory" "unknown")])
14016
14017 (define_insn "sse2_clflush"
14018 @@ -7728,6 +7747,7 @@
14019 "TARGET_SSE2"
14020 "clflush\t%a0"
14021 [(set_attr "type" "sse")
14022 + (set_attr "atom_sse_attr" "fence")
14023 (set_attr "memory" "unknown")])
14024
14025 (define_expand "sse2_mfence"
14026 @@ -7745,6 +7765,7 @@
14027 "TARGET_64BIT || TARGET_SSE2"
14028 "mfence"
14029 [(set_attr "type" "sse")
14030 + (set_attr "atom_sse_attr" "fence")
14031 (set_attr "memory" "unknown")])
14032
14033 (define_expand "sse2_lfence"
14034 @@ -7762,6 +7783,7 @@
14035 "TARGET_SSE2"
14036 "lfence"
14037 [(set_attr "type" "sse")
14038 + (set_attr "atom_sse_attr" "lfence")
14039 (set_attr "memory" "unknown")])
14040
14041 (define_insn "sse3_mwait"
14042 @@ -7885,6 +7907,7 @@
14043 "TARGET_SSSE3"
14044 "phaddw\t{%2, %0|%0, %2}"
14045 [(set_attr "type" "sseiadd")
14046 + (set_attr "atom_unit" "complex")
14047 (set_attr "prefix_data16" "1")
14048 (set_attr "prefix_extra" "1")
14049 (set_attr "mode" "TI")])
14050 @@ -7913,6 +7936,7 @@
14051 "TARGET_SSSE3"
14052 "phaddw\t{%2, %0|%0, %2}"
14053 [(set_attr "type" "sseiadd")
14054 + (set_attr "atom_unit" "complex")
14055 (set_attr "prefix_extra" "1")
14056 (set_attr "mode" "DI")])
14057
14058 @@ -7967,6 +7991,7 @@
14059 "TARGET_SSSE3"
14060 "phaddd\t{%2, %0|%0, %2}"
14061 [(set_attr "type" "sseiadd")
14062 + (set_attr "atom_unit" "complex")
14063 (set_attr "prefix_data16" "1")
14064 (set_attr "prefix_extra" "1")
14065 (set_attr "mode" "TI")])
14066 @@ -7987,6 +8012,7 @@
14067 "TARGET_SSSE3"
14068 "phaddd\t{%2, %0|%0, %2}"
14069 [(set_attr "type" "sseiadd")
14070 + (set_attr "atom_unit" "complex")
14071 (set_attr "prefix_extra" "1")
14072 (set_attr "mode" "DI")])
14073
14074 @@ -8073,6 +8099,7 @@
14075 "TARGET_SSSE3"
14076 "phaddsw\t{%2, %0|%0, %2}"
14077 [(set_attr "type" "sseiadd")
14078 + (set_attr "atom_unit" "complex")
14079 (set_attr "prefix_data16" "1")
14080 (set_attr "prefix_extra" "1")
14081 (set_attr "mode" "TI")])
14082 @@ -8101,6 +8128,7 @@
14083 "TARGET_SSSE3"
14084 "phaddsw\t{%2, %0|%0, %2}"
14085 [(set_attr "type" "sseiadd")
14086 + (set_attr "atom_unit" "complex")
14087 (set_attr "prefix_extra" "1")
14088 (set_attr "mode" "DI")])
14089
14090 @@ -8187,6 +8215,7 @@
14091 "TARGET_SSSE3"
14092 "phsubw\t{%2, %0|%0, %2}"
14093 [(set_attr "type" "sseiadd")
14094 + (set_attr "atom_unit" "complex")
14095 (set_attr "prefix_data16" "1")
14096 (set_attr "prefix_extra" "1")
14097 (set_attr "mode" "TI")])
14098 @@ -8215,6 +8244,7 @@
14099 "TARGET_SSSE3"
14100 "phsubw\t{%2, %0|%0, %2}"
14101 [(set_attr "type" "sseiadd")
14102 + (set_attr "atom_unit" "complex")
14103 (set_attr "prefix_extra" "1")
14104 (set_attr "mode" "DI")])
14105
14106 @@ -8269,6 +8299,7 @@
14107 "TARGET_SSSE3"
14108 "phsubd\t{%2, %0|%0, %2}"
14109 [(set_attr "type" "sseiadd")
14110 + (set_attr "atom_unit" "complex")
14111 (set_attr "prefix_data16" "1")
14112 (set_attr "prefix_extra" "1")
14113 (set_attr "mode" "TI")])
14114 @@ -8289,6 +8320,7 @@
14115 "TARGET_SSSE3"
14116 "phsubd\t{%2, %0|%0, %2}"
14117 [(set_attr "type" "sseiadd")
14118 + (set_attr "atom_unit" "complex")
14119 (set_attr "prefix_extra" "1")
14120 (set_attr "mode" "DI")])
14121
14122 @@ -8375,6 +8407,7 @@
14123 "TARGET_SSSE3"
14124 "phsubsw\t{%2, %0|%0, %2}"
14125 [(set_attr "type" "sseiadd")
14126 + (set_attr "atom_unit" "complex")
14127 (set_attr "prefix_data16" "1")
14128 (set_attr "prefix_extra" "1")
14129 (set_attr "mode" "TI")])
14130 @@ -8403,6 +8436,7 @@
14131 "TARGET_SSSE3"
14132 "phsubsw\t{%2, %0|%0, %2}"
14133 [(set_attr "type" "sseiadd")
14134 + (set_attr "atom_unit" "complex")
14135 (set_attr "prefix_extra" "1")
14136 (set_attr "mode" "DI")])
14137
14138 @@ -8509,6 +8543,7 @@
14139 "TARGET_SSSE3"
14140 "pmaddubsw\t{%2, %0|%0, %2}"
14141 [(set_attr "type" "sseiadd")
14142 + (set_attr "atom_unit" "simul")
14143 (set_attr "prefix_data16" "1")
14144 (set_attr "prefix_extra" "1")
14145 (set_attr "mode" "TI")])
14146 @@ -8547,6 +8582,7 @@
14147 "TARGET_SSSE3"
14148 "pmaddubsw\t{%2, %0|%0, %2}"
14149 [(set_attr "type" "sseiadd")
14150 + (set_attr "atom_unit" "simul")
14151 (set_attr "prefix_extra" "1")
14152 (set_attr "mode" "DI")])
14153
14154 @@ -8754,6 +8790,7 @@
14155 return "palignr\t{%3, %2, %0|%0, %2, %3}";
14156 }
14157 [(set_attr "type" "sseishft")
14158 + (set_attr "atom_unit" "sishuf")
14159 (set_attr "prefix_data16" "1")
14160 (set_attr "prefix_extra" "1")
14161 (set_attr "mode" "TI")])
14162 @@ -8770,6 +8807,7 @@
14163 return "palignr\t{%3, %2, %0|%0, %2, %3}";
14164 }
14165 [(set_attr "type" "sseishft")
14166 + (set_attr "atom_unit" "sishuf")
14167 (set_attr "prefix_extra" "1")
14168 (set_attr "mode" "DI")])
14169
14170 @@ -8956,7 +8994,7 @@
14171 UNSPEC_MOVNTDQA))]
14172 "TARGET_SSE4_1"
14173 "%vmovntdqa\t{%1, %0|%0, %1}"
14174 - [(set_attr "type" "ssecvt")
14175 + [(set_attr "type" "ssemov")
14176 (set_attr "prefix_extra" "1")
14177 (set_attr "prefix" "maybe_vex")
14178 (set_attr "mode" "TI")])
14179 diff -Nur a/gcc/config/i386/t-cs-linux b/gcc/config/i386/t-cs-linux
14180 --- a/gcc/config/i386/t-cs-linux 1970-01-01 01:00:00.000000000 +0100
14181 +++ b/gcc/config/i386/t-cs-linux 2010-01-25 09:50:29.015687523 +0100
14182 @@ -0,0 +1,25 @@
14183 +# Sourcery G++ IA32 GNU/Linux Configuration.
14184 +# Copyright (C) 2007
14185 +# Free Software Foundation, Inc.
14186 +#
14187 +# This file is part of GCC.
14188 +#
14189 +# GCC is free software; you can redistribute it and/or modify
14190 +# it under the terms of the GNU General Public License as published by
14191 +# the Free Software Foundation; either version 3, or (at your option)
14192 +# any later version.
14193 +#
14194 +# GCC is distributed in the hope that it will be useful,
14195 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
14196 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14197 +# GNU General Public License for more details.
14198 +#
14199 +# You should have received a copy of the GNU General Public License
14200 +# along with GCC; see the file COPYING3. If not see
14201 +# <http://www.gnu.org/licenses/>.
14202 +
14203 +MULTILIB_OPTIONS = m64/m32 msgxx-glibc/mrh73/mrhel3
14204 +MULTILIB_DIRNAMES = 64 32 sgxx-glibc rh73 rhel3
14205 +MULTILIB_OSDIRNAMES = ../lib64 ../lib sgxx-glibc rh73 rhel3
14206 +MULTILIB_EXCEPTIONS = m64/mrh73 m64/mrhel3
14207 +
14208 diff -Nur a/gcc/config/i386/t-cs-linux-lite b/gcc/config/i386/t-cs-linux-lite
14209 --- a/gcc/config/i386/t-cs-linux-lite 1970-01-01 01:00:00.000000000 +0100
14210 +++ b/gcc/config/i386/t-cs-linux-lite 2010-01-25 09:50:29.015687523 +0100
14211 @@ -0,0 +1,26 @@
14212 +# Sourcery G++ Lite IA32 GNU/Linux Configuration.
14213 +# Copyright (C) 2009
14214 +# Free Software Foundation, Inc.
14215 +#
14216 +# This file is part of GCC.
14217 +#
14218 +# GCC is free software; you can redistribute it and/or modify
14219 +# it under the terms of the GNU General Public License as published by
14220 +# the Free Software Foundation; either version 3, or (at your option)
14221 +# any later version.
14222 +#
14223 +# GCC is distributed in the hope that it will be useful,
14224 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
14225 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14226 +# GNU General Public License for more details.
14227 +#
14228 +# You should have received a copy of the GNU General Public License
14229 +# along with GCC; see the file COPYING3. If not see
14230 +# <http://www.gnu.org/licenses/>.
14231 +
14232 +MULTILIB_OPTIONS = m64 march=atom/march=core2
14233 +MULTILIB_DIRNAMES = 64 atom core2
14234 +MULTILIB_EXCEPTIONS = m64/march=atom march=core2
14235 +MULTILIB_ALIASES = m64=m64/march?atom
14236 +MULTILIB_OSDIRNAMES = m64=../lib64 march.atom=atom m64/march.core2=../lib64/core2
14237 +
14238 diff -Nur a/gcc/config/i386/t-wrs-linux b/gcc/config/i386/t-wrs-linux
14239 --- a/gcc/config/i386/t-wrs-linux 1970-01-01 01:00:00.000000000 +0100
14240 +++ b/gcc/config/i386/t-wrs-linux 2010-01-25 09:50:29.015687523 +0100
14241 @@ -0,0 +1,24 @@
14242 +# Wind River GNU/Linux Configuration.
14243 +# Copyright (C) 2009
14244 +# Free Software Foundation, Inc.
14245 +#
14246 +# This file is part of GCC.
14247 +#
14248 +# GCC is free software; you can redistribute it and/or modify
14249 +# it under the terms of the GNU General Public License as published by
14250 +# the Free Software Foundation; either version 3, or (at your option)
14251 +# any later version.
14252 +#
14253 +# GCC is distributed in the hope that it will be useful,
14254 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
14255 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14256 +# GNU General Public License for more details.
14257 +#
14258 +# You should have received a copy of the GNU General Public License
14259 +# along with GCC; see the file COPYING3. If not see
14260 +# <http://www.gnu.org/licenses/>.
14261 +
14262 +MULTILIB_OPTIONS = m64/m32 msystem-glibc
14263 +MULTILIB_DIRNAMES = 64 32 system-glibc
14264 +MULTILIB_OSDIRNAMES = ../lib64 ../lib system-glibc
14265 +MULTILIB_EXCEPTIONS = m64/msystem-glibc
14266 diff -Nur a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c
14267 --- a/gcc/config/i386/winnt.c 2009-02-21 04:21:44.000000000 +0100
14268 +++ b/gcc/config/i386/winnt.c 2010-01-25 09:50:29.015687523 +0100
14269 @@ -499,8 +499,11 @@
14270 {
14271 HOST_WIDE_INT rounded;
14272
14273 - /* Compute as in assemble_noswitch_variable, since we don't actually
14274 - support aligned common. */
14275 + /* Compute as in assemble_noswitch_variable, since we don't have
14276 + support for aligned common on older binutils. We must also
14277 + avoid emitting a common symbol of size zero, as this is the
14278 + overloaded representation that indicates an undefined external
14279 + symbol in the PE object file format. */
14280 rounded = size ? size : 1;
14281 rounded += (BIGGEST_ALIGNMENT / BITS_PER_UNIT) - 1;
14282 rounded = (rounded / (BIGGEST_ALIGNMENT / BITS_PER_UNIT)
14283 @@ -510,9 +513,13 @@
14284
14285 fprintf (stream, "\t.comm\t");
14286 assemble_name (stream, name);
14287 - fprintf (stream, ", " HOST_WIDE_INT_PRINT_DEC "\t" ASM_COMMENT_START
14288 - " " HOST_WIDE_INT_PRINT_DEC "\n",
14289 - rounded, size);
14290 + if (use_pe_aligned_common)
14291 + fprintf (stream, ", " HOST_WIDE_INT_PRINT_DEC ", %d\n",
14292 + size ? size : (HOST_WIDE_INT) 1,
14293 + exact_log2 (align) - exact_log2 (CHAR_BIT));
14294 + else
14295 + fprintf (stream, ", " HOST_WIDE_INT_PRINT_DEC "\t" ASM_COMMENT_START
14296 + " " HOST_WIDE_INT_PRINT_DEC "\n", rounded, size);
14297 }
14298 \f
14299 /* The Microsoft linker requires that every function be marked as
14300 diff -Nur a/gcc/config/i386/wrs-linux.h b/gcc/config/i386/wrs-linux.h
14301 --- a/gcc/config/i386/wrs-linux.h 1970-01-01 01:00:00.000000000 +0100
14302 +++ b/gcc/config/i386/wrs-linux.h 2010-01-25 09:50:29.015687523 +0100
14303 @@ -0,0 +1,33 @@
14304 +/* Wind River IA32 GNU/Linux Configuration.
14305 + Copyright (C) 2009
14306 + Free Software Foundation, Inc.
14307 +
14308 +This file is part of GCC.
14309 +
14310 +GCC is free software; you can redistribute it and/or modify
14311 +it under the terms of the GNU General Public License as published by
14312 +the Free Software Foundation; either version 3, or (at your option)
14313 +any later version.
14314 +
14315 +GCC is distributed in the hope that it will be useful,
14316 +but WITHOUT ANY WARRANTY; without even the implied warranty of
14317 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14318 +GNU General Public License for more details.
14319 +
14320 +You should have received a copy of the GNU General Public License
14321 +along with GCC; see the file COPYING3. If not see
14322 +<http://www.gnu.org/licenses/>. */
14323 +
14324 +#undef SYSROOT_SUFFIX_SPEC
14325 +#define SYSROOT_SUFFIX_SPEC \
14326 + "%{msystem-glibc:/system-glibc}"
14327 +
14328 +#undef SYSROOT_HEADERS_SUFFIX_SPEC
14329 +#define SYSROOT_HEADERS_SUFFIX_SPEC SYSROOT_SUFFIX_SPEC
14330 +
14331 +/* See mips/wrs-linux.h for details on this use of
14332 + STARTFILE_PREFIX_SPEC. */
14333 +#undef STARTFILE_PREFIX_SPEC
14334 +#define STARTFILE_PREFIX_SPEC \
14335 + "%{m64: /usr/local/lib64/ /lib64/ /usr/lib64/} \
14336 + %{!m64: /usr/local/lib/ /lib/ /usr/lib/}"
14337 diff -Nur a/gcc/config/i386/wrs-linux.opt b/gcc/config/i386/wrs-linux.opt
14338 --- a/gcc/config/i386/wrs-linux.opt 1970-01-01 01:00:00.000000000 +0100
14339 +++ b/gcc/config/i386/wrs-linux.opt 2010-01-25 09:50:29.015687523 +0100
14340 @@ -0,0 +1,5 @@
14341 +; Additional options for Wind River Linux Sourcery G++.
14342 +
14343 +msystem-glibc
14344 +Target
14345 +Use system version of GLIBC
14346 diff -Nur a/gcc/config/m68k/constraints.md b/gcc/config/m68k/constraints.md
14347 --- a/gcc/config/m68k/constraints.md 2007-09-11 15:56:30.000000000 +0200
14348 +++ b/gcc/config/m68k/constraints.md 2010-01-25 09:50:29.015687523 +0100
14349 @@ -124,6 +124,11 @@
14350 (and (match_code "const_int")
14351 (match_test "ival < -0x8000 || ival > 0x7FFF")))
14352
14353 +(define_constraint "Cu"
14354 + "16-bit offset for wrapped symbols"
14355 + (and (match_code "const")
14356 + (match_test "m68k_unwrap_symbol (op, false) != op")))
14357 +
14358 (define_constraint "CQ"
14359 "Integers valid for mvq."
14360 (and (match_code "const_int")
14361 diff -Nur a/gcc/config/m68k/lb1sf68.asm b/gcc/config/m68k/lb1sf68.asm
14362 --- a/gcc/config/m68k/lb1sf68.asm 2009-04-10 01:23:07.000000000 +0200
14363 +++ b/gcc/config/m68k/lb1sf68.asm 2010-01-25 09:50:29.015687523 +0100
14364 @@ -163,6 +163,8 @@
14365 #if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__)
14366 lea \addr-.-8,a0
14367 jsr pc@(a0)
14368 +#elif defined (__mcfisab__) || defined (__mcfisac__)
14369 + bsr.l \addr
14370 #else
14371 bsr \addr
14372 #endif
14373 @@ -202,6 +204,8 @@
14374 #if defined (__mcoldfire__) && !defined (__mcfisab__) && !defined (__mcfisac__)
14375 lea \addr-.-8,a0
14376 jsr pc@(a0)
14377 +#elif defined (__mcfisab__) || defined (__mcfisac__)
14378 + bsr.l \addr
14379 #else
14380 bsr \addr
14381 #endif
14382 diff -Nur a/gcc/config/m68k/linux-unwind.h b/gcc/config/m68k/linux-unwind.h
14383 --- a/gcc/config/m68k/linux-unwind.h 2009-04-10 01:23:07.000000000 +0200
14384 +++ b/gcc/config/m68k/linux-unwind.h 2010-01-25 09:50:29.015687523 +0100
14385 @@ -77,9 +77,15 @@
14386 fs->regs.reg[9].how = REG_SAVED_OFFSET;
14387 fs->regs.reg[9].loc.offset = (long) &sc->sc_a1 - cfa;
14388
14389 +#ifdef __uClinux__
14390 + fs->regs.reg[13].how = REG_SAVED_OFFSET;
14391 + fs->regs.reg[13].loc.offset = (long) &sc->sc_a5 - cfa;
14392 +#endif
14393 +
14394 fs->regs.reg[24].how = REG_SAVED_OFFSET;
14395 fs->regs.reg[24].loc.offset = (long) &sc->sc_pc - cfa;
14396
14397 +#if defined __mcffpu__ && !defined __uClinux__
14398 if (*(int *) sc->sc_fpstate)
14399 {
14400 int *fpregs = (int *) sc->sc_fpregs;
14401 @@ -89,11 +95,19 @@
14402 fs->regs.reg[17].how = REG_SAVED_OFFSET;
14403 fs->regs.reg[17].loc.offset = (long) &fpregs[M68K_FP_SIZE/4] - cfa;
14404 }
14405 +#elif defined __mcffpu__
14406 +# error Implement this when uClinux kernel is ported to an FPU architecture
14407 +#endif
14408 }
14409 #ifdef __mcoldfire__
14410 /* move.l #__NR_rt_sigreturn,%d0; trap #0 */
14411 - else if (pc[0] == 0x203c && pc[1] == 0x0000 &&
14412 - pc[2] == 0x00ad && pc[3] == 0x4e40)
14413 + else if ((pc[0] == 0x203c && pc[1] == 0x0000 &&
14414 + pc[2] == 0x00ad && pc[3] == 0x4e40) ||
14415 + /* Don't ask me why, this is just what some kernels do:
14416 + moveq #-__NR_rt_sigreturn,%d0; andil 0xff,%d0; trap #0;
14417 + Sigh... */
14418 + (pc[0] == 0x70ad && pc[1] == 0x0280 && pc[2] == 0x0000 &&
14419 + pc[3] == 0x00ff && pc[4] == 0x4e40 && pc[5] == 0x0000))
14420 #else
14421 /* moveq #~__NR_rt_sigreturn,%d0; not.b %d0; trap #0 */
14422 else if (pc[0] == 0x7052 && pc[1] == 0x4600 && pc[2] == 0x4e40)
14423 diff -Nur a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
14424 --- a/gcc/config/m68k/m68k.c 2008-11-19 17:24:10.000000000 +0100
14425 +++ b/gcc/config/m68k/m68k.c 2010-01-25 09:50:29.015687523 +0100
14426 @@ -46,6 +46,7 @@
14427 /* ??? Need to add a dependency between m68k.o and sched-int.h. */
14428 #include "sched-int.h"
14429 #include "insn-codes.h"
14430 +#include "ggc.h"
14431
14432 enum reg_class regno_reg_class[] =
14433 {
14434 @@ -146,10 +147,12 @@
14435 static void m68k_compute_frame_layout (void);
14436 static bool m68k_save_reg (unsigned int regno, bool interrupt_handler);
14437 static bool m68k_ok_for_sibcall_p (tree, tree);
14438 +static bool m68k_tls_symbol_p (rtx);
14439 static bool m68k_rtx_costs (rtx, int, int, int *, bool);
14440 #if M68K_HONOR_TARGET_STRICT_ALIGNMENT
14441 static bool m68k_return_in_memory (const_tree, const_tree);
14442 #endif
14443 +static void m68k_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
14444 \f
14445
14446 /* Specify the identification number of the library being built */
14447 @@ -252,6 +255,14 @@
14448 #define TARGET_RETURN_IN_MEMORY m68k_return_in_memory
14449 #endif
14450
14451 +#ifdef HAVE_AS_TLS
14452 +#undef TARGET_HAVE_TLS
14453 +#define TARGET_HAVE_TLS (true)
14454 +
14455 +#undef TARGET_ASM_OUTPUT_DWARF_DTPREL
14456 +#define TARGET_ASM_OUTPUT_DWARF_DTPREL m68k_output_dwarf_dtprel
14457 +#endif
14458 +
14459 static const struct attribute_spec m68k_attribute_table[] =
14460 {
14461 /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
14462 @@ -1150,8 +1161,7 @@
14463 current_frame.reg_mask, true, true));
14464 }
14465
14466 - if (flag_pic
14467 - && !TARGET_SEP_DATA
14468 + if (!TARGET_SEP_DATA
14469 && crtl->uses_pic_offset_table)
14470 insn = emit_insn (gen_load_got (pic_offset_table_rtx));
14471 }
14472 @@ -1425,6 +1435,86 @@
14473 return replace_equiv_address (x, gen_rtx_REG (Pmode, STATIC_CHAIN_REGNUM));
14474 }
14475
14476 +/* Convert X to a legitimate address and return it if successful. Otherwise
14477 + return X.
14478 +
14479 + For the 68000, we handle X+REG by loading X into a register R and
14480 + using R+REG. R will go in an address reg and indexing will be used.
14481 + However, if REG is a broken-out memory address or multiplication,
14482 + nothing needs to be done because REG can certainly go in an address reg. */
14483 +
14484 +rtx
14485 +m68k_legitimize_address (rtx x, rtx oldx, enum machine_mode mode)
14486 +{
14487 + if (m68k_tls_symbol_p (x))
14488 + return m68k_legitimize_tls_address (x);
14489 +
14490 + if (GET_CODE (x) == PLUS)
14491 + {
14492 + int ch = (x) != (oldx);
14493 + int copied = 0;
14494 +
14495 +#define COPY_ONCE(Y) if (!copied) { Y = copy_rtx (Y); copied = ch = 1; }
14496 +
14497 + if (GET_CODE (XEXP (x, 0)) == MULT)
14498 + {
14499 + COPY_ONCE (x);
14500 + XEXP (x, 0) = force_operand (XEXP (x, 0), 0);
14501 + }
14502 + if (GET_CODE (XEXP (x, 1)) == MULT)
14503 + {
14504 + COPY_ONCE (x);
14505 + XEXP (x, 1) = force_operand (XEXP (x, 1), 0);
14506 + }
14507 + if (ch)
14508 + {
14509 + if (GET_CODE (XEXP (x, 1)) == REG
14510 + && GET_CODE (XEXP (x, 0)) == REG)
14511 + {
14512 + if (TARGET_COLDFIRE_FPU && GET_MODE_CLASS (mode) == MODE_FLOAT)
14513 + {
14514 + COPY_ONCE (x);
14515 + x = force_operand (x, 0);
14516 + }
14517 + return x;
14518 + }
14519 + if (memory_address_p (mode, x))
14520 + return x;
14521 + }
14522 + if (GET_CODE (XEXP (x, 0)) == REG
14523 + || (GET_CODE (XEXP (x, 0)) == SIGN_EXTEND
14524 + && GET_CODE (XEXP (XEXP (x, 0), 0)) == REG
14525 + && GET_MODE (XEXP (XEXP (x, 0), 0)) == HImode))
14526 + {
14527 + rtx temp = gen_reg_rtx (Pmode);
14528 + rtx val = force_operand (XEXP (x, 1), 0);
14529 + emit_move_insn (temp, val);
14530 + COPY_ONCE (x);
14531 + XEXP (x, 1) = temp;
14532 + if (TARGET_COLDFIRE_FPU && GET_MODE_CLASS (mode) == MODE_FLOAT
14533 + && GET_CODE (XEXP (x, 0)) == REG)
14534 + x = force_operand (x, 0);
14535 + }
14536 + else if (GET_CODE (XEXP (x, 1)) == REG
14537 + || (GET_CODE (XEXP (x, 1)) == SIGN_EXTEND
14538 + && GET_CODE (XEXP (XEXP (x, 1), 0)) == REG
14539 + && GET_MODE (XEXP (XEXP (x, 1), 0)) == HImode))
14540 + {
14541 + rtx temp = gen_reg_rtx (Pmode);
14542 + rtx val = force_operand (XEXP (x, 0), 0);
14543 + emit_move_insn (temp, val);
14544 + COPY_ONCE (x);
14545 + XEXP (x, 0) = temp;
14546 + if (TARGET_COLDFIRE_FPU && GET_MODE_CLASS (mode) == MODE_FLOAT
14547 + && GET_CODE (XEXP (x, 1)) == REG)
14548 + x = force_operand (x, 0);
14549 + }
14550 + }
14551 +
14552 + return x;
14553 +}
14554 +
14555 +
14556 /* Output a dbCC; jCC sequence. Note we do not handle the
14557 floating point version of this sequence (Fdbcc). We also
14558 do not handle alternative conditions when CC_NO_OVERFLOW is
14559 @@ -1713,15 +1803,16 @@
14560 whether we need strict checking. */
14561
14562 bool
14563 -m68k_legitimate_index_reg_p (rtx x, bool strict_p)
14564 +m68k_legitimate_index_reg_p (enum machine_mode mode, rtx x, bool strict_p)
14565 {
14566 if (!strict_p && GET_CODE (x) == SUBREG)
14567 x = SUBREG_REG (x);
14568
14569 return (REG_P (x)
14570 && (strict_p
14571 - ? REGNO_OK_FOR_INDEX_P (REGNO (x))
14572 - : REGNO_OK_FOR_INDEX_NONSTRICT_P (REGNO (x))));
14573 + ? REGNO_MODE_OK_FOR_INDEX_P (REGNO (x), mode)
14574 + : (MODE_OK_FOR_INDEX_P (mode)
14575 + && REGNO_OK_FOR_INDEX_NONSTRICT_P (REGNO (x)))));
14576 }
14577
14578 /* Return true if X is a legitimate index expression for a (d8,An,Xn) or
14579 @@ -1729,7 +1820,8 @@
14580 ADDRESS if so. STRICT_P says whether we need strict checking. */
14581
14582 static bool
14583 -m68k_decompose_index (rtx x, bool strict_p, struct m68k_address *address)
14584 +m68k_decompose_index (enum machine_mode mode, rtx x, bool strict_p,
14585 + struct m68k_address *address)
14586 {
14587 int scale;
14588
14589 @@ -1753,7 +1845,7 @@
14590 && GET_MODE (XEXP (x, 0)) == HImode)
14591 x = XEXP (x, 0);
14592
14593 - if (m68k_legitimate_index_reg_p (x, strict_p))
14594 + if (m68k_legitimate_index_reg_p (mode, x, strict_p))
14595 {
14596 address->scale = scale;
14597 address->index = x;
14598 @@ -1777,7 +1869,7 @@
14599 && !offset_within_block_p (base, INTVAL (offset)))
14600 return true;
14601 }
14602 - return false;
14603 + return m68k_tls_reference_p (x, false);
14604 }
14605
14606 /* Return true if X is a legitimate constant address that can reach
14607 @@ -1805,7 +1897,7 @@
14608 return false;
14609 }
14610
14611 - return true;
14612 + return !m68k_tls_reference_p (x, false);
14613 }
14614
14615 /* Return true if X is a LABEL_REF for a jump table. Assume that unplaced
14616 @@ -1872,15 +1964,17 @@
14617 /* Check for GOT loads. These are (bd,An,Xn) addresses if
14618 TARGET_68020 && flag_pic == 2, otherwise they are (d16,An)
14619 addresses. */
14620 - if (flag_pic
14621 - && GET_CODE (x) == PLUS
14622 - && XEXP (x, 0) == pic_offset_table_rtx
14623 - && (GET_CODE (XEXP (x, 1)) == SYMBOL_REF
14624 - || GET_CODE (XEXP (x, 1)) == LABEL_REF))
14625 + if (GET_CODE (x) == PLUS
14626 + && XEXP (x, 0) == pic_offset_table_rtx)
14627 {
14628 - address->base = XEXP (x, 0);
14629 - address->offset = XEXP (x, 1);
14630 - return true;
14631 + /* As we are processing a PLUS, do not unwrap RELOC32 symbols --
14632 + they are invalid in this context. */
14633 + if (m68k_unwrap_symbol (XEXP (x, 1), false) != XEXP (x, 1))
14634 + {
14635 + address->base = XEXP (x, 0);
14636 + address->offset = XEXP (x, 1);
14637 + return true;
14638 + }
14639 }
14640
14641 /* The ColdFire FPU only accepts addressing modes 2-5. */
14642 @@ -1905,7 +1999,7 @@
14643 accesses to unplaced labels in other cases. */
14644 if (GET_CODE (x) == PLUS
14645 && m68k_jump_table_ref_p (XEXP (x, 1))
14646 - && m68k_decompose_index (XEXP (x, 0), strict_p, address))
14647 + && m68k_decompose_index (mode, XEXP (x, 0), strict_p, address))
14648 {
14649 address->offset = XEXP (x, 1);
14650 return true;
14651 @@ -1937,7 +2031,7 @@
14652 worse code. */
14653 if (address->offset
14654 && symbolic_operand (address->offset, VOIDmode)
14655 - && m68k_decompose_index (x, strict_p, address))
14656 + && m68k_decompose_index (mode, x, strict_p, address))
14657 return true;
14658 }
14659 else
14660 @@ -1956,14 +2050,14 @@
14661 if (GET_CODE (x) == PLUS)
14662 {
14663 if (m68k_legitimate_base_reg_p (XEXP (x, 0), strict_p)
14664 - && m68k_decompose_index (XEXP (x, 1), strict_p, address))
14665 + && m68k_decompose_index (mode, XEXP (x, 1), strict_p, address))
14666 {
14667 address->base = XEXP (x, 0);
14668 return true;
14669 }
14670
14671 if (m68k_legitimate_base_reg_p (XEXP (x, 1), strict_p)
14672 - && m68k_decompose_index (XEXP (x, 0), strict_p, address))
14673 + && m68k_decompose_index (mode, XEXP (x, 0), strict_p, address))
14674 {
14675 address->base = XEXP (x, 1);
14676 return true;
14677 @@ -2025,6 +2119,243 @@
14678 && !address.index);
14679 }
14680
14681 +/* Return GOT pointer. */
14682 +
14683 +static rtx
14684 +m68k_get_gp (void)
14685 +{
14686 + if (pic_offset_table_rtx == NULL_RTX)
14687 + pic_offset_table_rtx = gen_rtx_REG (Pmode, PIC_REG);
14688 +
14689 + crtl->uses_pic_offset_table = 1;
14690 +
14691 + return pic_offset_table_rtx;
14692 +}
14693 +
14694 +/* M68K relocations, used to distinguish GOT and TLS relocations in UNSPEC
14695 + wrappers. */
14696 +enum m68k_reloc { RELOC_GOT, RELOC_TLSGD, RELOC_TLSLDM, RELOC_TLSLDO,
14697 + RELOC_TLSIE, RELOC_TLSLE };
14698 +
14699 +#define TLS_RELOC_P(RELOC) ((RELOC) != RELOC_GOT)
14700 +
14701 +/* Wrap symbol X into unspec representing relocation RELOC.
14702 + BASE_REG - register that should be added to the result.
14703 + TEMP_REG - if non-null, temporary register. */
14704 +
14705 +static rtx
14706 +m68k_wrap_symbol (rtx x, enum m68k_reloc reloc, rtx base_reg, rtx temp_reg)
14707 +{
14708 + bool use_x_p;
14709 +
14710 + use_x_p = (base_reg == pic_offset_table_rtx) ? TARGET_XGOT : TARGET_XTLS;
14711 +
14712 + if (TARGET_COLDFIRE && use_x_p)
14713 + /* When compiling with -mx{got, tls} switch the code will look like this:
14714 +
14715 + move.l <X>@<RELOC>,<TEMP_REG>
14716 + add.l <BASE_REG>,<TEMP_REG> */
14717 + {
14718 + /* Wrap X in UNSPEC_??? to tip m68k_output_addr_const_extra
14719 + to put @RELOC after reference. */
14720 + x = gen_rtx_UNSPEC (Pmode, gen_rtvec (2, x, GEN_INT (reloc)),
14721 + UNSPEC_RELOC32);
14722 + x = gen_rtx_CONST (Pmode, x);
14723 +
14724 + if (temp_reg == NULL)
14725 + {
14726 + gcc_assert (can_create_pseudo_p ());
14727 + temp_reg = gen_reg_rtx (Pmode);
14728 + }
14729 +
14730 + emit_move_insn (temp_reg, x);
14731 + emit_insn (gen_addsi3 (temp_reg, temp_reg, base_reg));
14732 + x = temp_reg;
14733 + }
14734 + else
14735 + {
14736 + x = gen_rtx_UNSPEC (Pmode, gen_rtvec (2, x, GEN_INT (reloc)),
14737 + UNSPEC_RELOC16);
14738 + x = gen_rtx_CONST (Pmode, x);
14739 +
14740 + x = gen_rtx_PLUS (Pmode, base_reg, x);
14741 + }
14742 +
14743 + return x;
14744 +}
14745 +
14746 +/* Helper for m68k_unwrap_symbol.
14747 + Also, if unwrapping was successful (that is if (ORIG != <return value>)),
14748 + sets *RELOC_PTR to relocation type for the symbol. */
14749 +
14750 +static rtx
14751 +m68k_unwrap_symbol_1 (rtx orig, bool unwrap_reloc32_p,
14752 + enum m68k_reloc *reloc_ptr)
14753 +{
14754 + if (GET_CODE (orig) == CONST)
14755 + {
14756 + rtx x;
14757 + enum m68k_reloc dummy;
14758 +
14759 + x = XEXP (orig, 0);
14760 +
14761 + if (reloc_ptr == NULL)
14762 + reloc_ptr = &dummy;
14763 +
14764 + /* Handle an addend. */
14765 + if ((GET_CODE (x) == PLUS || GET_CODE (x) == MINUS)
14766 + && CONST_INT_P (XEXP (x, 1)))
14767 + x = XEXP (x, 0);
14768 +
14769 + if (GET_CODE (x) == UNSPEC)
14770 + {
14771 + switch (XINT (x, 1))
14772 + {
14773 + case UNSPEC_RELOC16:
14774 + orig = XVECEXP (x, 0, 0);
14775 + *reloc_ptr = (enum m68k_reloc) INTVAL (XVECEXP (x, 0, 1));
14776 + break;
14777 +
14778 + case UNSPEC_RELOC32:
14779 + if (unwrap_reloc32_p)
14780 + {
14781 + orig = XVECEXP (x, 0, 0);
14782 + *reloc_ptr = (enum m68k_reloc) INTVAL (XVECEXP (x, 0, 1));
14783 + }
14784 + break;
14785 +
14786 + default:
14787 + break;
14788 + }
14789 + }
14790 + }
14791 +
14792 + return orig;
14793 +}
14794 +
14795 +/* Unwrap symbol from UNSPEC_RELOC16 and, if unwrap_reloc32_p,
14796 + UNSPEC_RELOC32 wrappers. */
14797 +
14798 +rtx
14799 +m68k_unwrap_symbol (rtx orig, bool unwrap_reloc32_p)
14800 +{
14801 + return m68k_unwrap_symbol_1 (orig, unwrap_reloc32_p, NULL);
14802 +}
14803 +
14804 +/* Helper for m68k_final_prescan_insn. */
14805 +
14806 +static int
14807 +m68k_final_prescan_insn_1 (rtx *x_ptr, void *data ATTRIBUTE_UNUSED)
14808 +{
14809 + rtx x = *x_ptr;
14810 +
14811 + if (m68k_unwrap_symbol (x, true) != x)
14812 + /* For rationale of the below, see comment in m68k_final_prescan_insn. */
14813 + {
14814 + rtx plus;
14815 +
14816 + gcc_assert (GET_CODE (x) == CONST);
14817 + plus = XEXP (x, 0);
14818 +
14819 + if (GET_CODE (plus) == PLUS || GET_CODE (plus) == MINUS)
14820 + {
14821 + rtx unspec;
14822 + rtx addend;
14823 +
14824 + unspec = XEXP (plus, 0);
14825 + gcc_assert (GET_CODE (unspec) == UNSPEC);
14826 + addend = XEXP (plus, 1);
14827 + gcc_assert (CONST_INT_P (addend));
14828 +
14829 + /* We now have all the pieces, rearrange them. */
14830 +
14831 + /* Move symbol to plus. */
14832 + XEXP (plus, 0) = XVECEXP (unspec, 0, 0);
14833 +
14834 + /* Move plus inside unspec. */
14835 + XVECEXP (unspec, 0, 0) = plus;
14836 +
14837 + /* Move unspec to top level of const. */
14838 + XEXP (x, 0) = unspec;
14839 + }
14840 +
14841 + return -1;
14842 + }
14843 +
14844 + return 0;
14845 +}
14846 +
14847 +/* Prescan insn before outputing assembler for it. */
14848 +
14849 +void
14850 +m68k_final_prescan_insn (rtx insn ATTRIBUTE_UNUSED,
14851 + rtx *operands, int n_operands)
14852 +{
14853 + int i;
14854 +
14855 + /* Combine and, possibly, other optimizations may do good job
14856 + converting
14857 + (const (unspec [(symbol)]))
14858 + into
14859 + (const (plus (unspec [(symbol)])
14860 + (const_int N))).
14861 + The problem with this is emitting @TLS or @GOT decorations.
14862 + The decoration is emitted when processing (unspec), so the
14863 + result would be "#symbol@TLSLE+N" instead of "#symbol+N@TLSLE".
14864 +
14865 + It seems that the easiest solution to this is to convert such
14866 + operands to
14867 + (const (unspec [(plus (symbol)
14868 + (const_int N))])).
14869 + Note, that the top level of operand remains intact, so we don't have
14870 + to patch up anything outside of the operand. */
14871 +
14872 + for (i = 0; i < n_operands; ++i)
14873 + {
14874 + rtx op;
14875 +
14876 + op = operands[i];
14877 +
14878 + for_each_rtx (&op, m68k_final_prescan_insn_1, NULL);
14879 + }
14880 +}
14881 +
14882 +/* Move X to a register and add REG_EQUAL note pointing to ORIG.
14883 + If REG is non-null, use it; generate new pseudo otherwise. */
14884 +
14885 +static rtx
14886 +m68k_move_to_reg (rtx x, rtx orig, rtx reg)
14887 +{
14888 + rtx insn;
14889 +
14890 + if (reg == NULL_RTX)
14891 + {
14892 + gcc_assert (can_create_pseudo_p ());
14893 + reg = gen_reg_rtx (Pmode);
14894 + }
14895 +
14896 + insn = emit_move_insn (reg, x);
14897 + /* Put a REG_EQUAL note on this insn, so that it can be optimized
14898 + by loop. */
14899 + set_unique_reg_note (insn, REG_EQUAL, orig);
14900 +
14901 + return reg;
14902 +}
14903 +
14904 +/* Does the same as m68k_wrap_symbol, but returns a memory reference to
14905 + GOT slot. */
14906 +
14907 +static rtx
14908 +m68k_wrap_symbol_into_got_ref (rtx x, enum m68k_reloc reloc, rtx temp_reg)
14909 +{
14910 + x = m68k_wrap_symbol (x, reloc, m68k_get_gp (), temp_reg);
14911 +
14912 + x = gen_rtx_MEM (Pmode, x);
14913 + MEM_READONLY_P (x) = 1;
14914 +
14915 + return x;
14916 +}
14917 +
14918 /* Legitimize PIC addresses. If the address is already
14919 position-independent, we return ORIG. Newly generated
14920 position-independent addresses go to REG. If we need more
14921 @@ -2076,42 +2407,15 @@
14922 {
14923 gcc_assert (reg);
14924
14925 - if (TARGET_COLDFIRE && TARGET_XGOT)
14926 - /* When compiling with -mxgot switch the code for the above
14927 - example will look like this:
14928 -
14929 - movel a5, a0
14930 - addl _foo@GOT, a0
14931 - movel a0@, a0
14932 - movel #12345, a0@ */
14933 - {
14934 - rtx pic_offset;
14935 -
14936 - /* Wrap ORIG in UNSPEC_GOTOFF to tip m68k_output_addr_const_extra
14937 - to put @GOT after reference. */
14938 - pic_offset = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, orig),
14939 - UNSPEC_GOTOFF);
14940 - pic_offset = gen_rtx_CONST (Pmode, pic_offset);
14941 - emit_move_insn (reg, pic_offset);
14942 - emit_insn (gen_addsi3 (reg, reg, pic_offset_table_rtx));
14943 - pic_ref = gen_rtx_MEM (Pmode, reg);
14944 - }
14945 - else
14946 - pic_ref = gen_rtx_MEM (Pmode,
14947 - gen_rtx_PLUS (Pmode,
14948 - pic_offset_table_rtx, orig));
14949 - crtl->uses_pic_offset_table = 1;
14950 - MEM_READONLY_P (pic_ref) = 1;
14951 - emit_move_insn (reg, pic_ref);
14952 - return reg;
14953 + pic_ref = m68k_wrap_symbol_into_got_ref (orig, RELOC_GOT, reg);
14954 + pic_ref = m68k_move_to_reg (pic_ref, orig, reg);
14955 }
14956 else if (GET_CODE (orig) == CONST)
14957 {
14958 rtx base;
14959
14960 /* Make sure this has not already been legitimized. */
14961 - if (GET_CODE (XEXP (orig, 0)) == PLUS
14962 - && XEXP (XEXP (orig, 0), 0) == pic_offset_table_rtx)
14963 + if (m68k_unwrap_symbol (orig, true) != orig)
14964 return orig;
14965
14966 gcc_assert (reg);
14967 @@ -2124,13 +2428,257 @@
14968 base == reg ? 0 : reg);
14969
14970 if (GET_CODE (orig) == CONST_INT)
14971 - return plus_constant (base, INTVAL (orig));
14972 - pic_ref = gen_rtx_PLUS (Pmode, base, orig);
14973 - /* Likewise, should we set special REG_NOTEs here? */
14974 + pic_ref = plus_constant (base, INTVAL (orig));
14975 + else
14976 + pic_ref = gen_rtx_PLUS (Pmode, base, orig);
14977 }
14978 +
14979 return pic_ref;
14980 }
14981
14982 +/* The __tls_get_addr symbol. */
14983 +static GTY(()) rtx m68k_tls_get_addr;
14984 +
14985 +/* Return SYMBOL_REF for __tls_get_addr. */
14986 +
14987 +static rtx
14988 +m68k_get_tls_get_addr (void)
14989 +{
14990 + if (m68k_tls_get_addr == NULL_RTX)
14991 + m68k_tls_get_addr = init_one_libfunc ("__tls_get_addr");
14992 +
14993 + return m68k_tls_get_addr;
14994 +}
14995 +
14996 +/* Return libcall result in A0 instead of usual D0. */
14997 +static bool m68k_libcall_value_in_a0_p = false;
14998 +
14999 +/* Emit instruction sequence that calls __tls_get_addr. X is
15000 + the TLS symbol we are referencing and RELOC is the symbol type to use
15001 + (either TLSGD or TLSLDM). EQV is the REG_EQUAL note for the sequence
15002 + emitted. A pseudo register with result of __tls_get_addr call is
15003 + returned. */
15004 +
15005 +static rtx
15006 +m68k_call_tls_get_addr (rtx x, rtx eqv, enum m68k_reloc reloc)
15007 +{
15008 + rtx a0;
15009 + rtx insns;
15010 + rtx dest;
15011 +
15012 + /* Emit the call sequence. */
15013 + start_sequence ();
15014 +
15015 + /* FIXME: Unfortunately, emit_library_call_value does not
15016 + consider (plus (%a5) (const (unspec))) to be a good enough
15017 + operand for push, so it forces it into a register. The bad
15018 + thing about this is that combiner, due to copy propagation and other
15019 + optimizations, sometimes can not later fix this. As a consequence,
15020 + additional register may be allocated resulting in a spill.
15021 + For reference, see args processing loops in
15022 + calls.c:emit_library_call_value_1.
15023 + For testcase, see gcc.target/m68k/tls-{gd, ld}.c */
15024 + x = m68k_wrap_symbol (x, reloc, m68k_get_gp (), NULL_RTX);
15025 +
15026 + /* __tls_get_addr() is not a libcall, but emitting a libcall_value
15027 + is the simpliest way of generating a call. The difference between
15028 + __tls_get_addr() and libcall is that the result is returned in D0
15029 + instead of A0. To workaround this, we use m68k_libcall_value_in_a0_p
15030 + which temporarily switches returning the result to A0. */
15031 +
15032 + m68k_libcall_value_in_a0_p = true;
15033 + a0 = emit_library_call_value (m68k_get_tls_get_addr (), NULL_RTX, LCT_PURE,
15034 + Pmode, 1, x, Pmode);
15035 + m68k_libcall_value_in_a0_p = false;
15036 +
15037 + insns = get_insns ();
15038 + end_sequence ();
15039 +
15040 + gcc_assert (can_create_pseudo_p ());
15041 + dest = gen_reg_rtx (Pmode);
15042 + emit_libcall_block (insns, dest, a0, eqv);
15043 +
15044 + return dest;
15045 +}
15046 +
15047 +/* The __tls_get_addr symbol. */
15048 +static GTY(()) rtx m68k_read_tp;
15049 +
15050 +/* Return SYMBOL_REF for __m68k_read_tp. */
15051 +
15052 +static rtx
15053 +m68k_get_m68k_read_tp (void)
15054 +{
15055 + if (m68k_read_tp == NULL_RTX)
15056 + m68k_read_tp = init_one_libfunc ("__m68k_read_tp");
15057 +
15058 + return m68k_read_tp;
15059 +}
15060 +
15061 +/* Emit instruction sequence that calls __m68k_read_tp.
15062 + A pseudo register with result of __m68k_read_tp call is returned. */
15063 +
15064 +static rtx
15065 +m68k_call_m68k_read_tp (void)
15066 +{
15067 + rtx a0;
15068 + rtx eqv;
15069 + rtx insns;
15070 + rtx dest;
15071 +
15072 + start_sequence ();
15073 +
15074 + /* __m68k_read_tp() is not a libcall, but emitting a libcall_value
15075 + is the simpliest way of generating a call. The difference between
15076 + __m68k_read_tp() and libcall is that the result is returned in D0
15077 + instead of A0. To workaround this, we use m68k_libcall_value_in_a0_p
15078 + which temporarily switches returning the result to A0. */
15079 +
15080 + /* Emit the call sequence. */
15081 + m68k_libcall_value_in_a0_p = true;
15082 + a0 = emit_library_call_value (m68k_get_m68k_read_tp (), NULL_RTX, LCT_PURE,
15083 + Pmode, 0);
15084 + m68k_libcall_value_in_a0_p = false;
15085 + insns = get_insns ();
15086 + end_sequence ();
15087 +
15088 + /* Attach a unique REG_EQUIV, to allow the RTL optimizers to
15089 + share the m68k_read_tp result with other IE/LE model accesses. */
15090 + eqv = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const1_rtx), UNSPEC_RELOC32);
15091 +
15092 + gcc_assert (can_create_pseudo_p ());
15093 + dest = gen_reg_rtx (Pmode);
15094 + emit_libcall_block (insns, dest, a0, eqv);
15095 +
15096 + return dest;
15097 +}
15098 +
15099 +/* Return a legitimized address for accessing TLS SYMBOL_REF X.
15100 + For explanations on instructions sequences see TLS/NPTL ABI for m68k and
15101 + ColdFire. */
15102 +
15103 +rtx
15104 +m68k_legitimize_tls_address (rtx orig)
15105 +{
15106 + switch (SYMBOL_REF_TLS_MODEL (orig))
15107 + {
15108 + case TLS_MODEL_GLOBAL_DYNAMIC:
15109 + orig = m68k_call_tls_get_addr (orig, orig, RELOC_TLSGD);
15110 + break;
15111 +
15112 + case TLS_MODEL_LOCAL_DYNAMIC:
15113 + {
15114 + rtx eqv;
15115 + rtx a0;
15116 + rtx x;
15117 +
15118 + /* Attach a unique REG_EQUIV, to allow the RTL optimizers to
15119 + share the LDM result with other LD model accesses. */
15120 + eqv = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx),
15121 + UNSPEC_RELOC32);
15122 +
15123 + a0 = m68k_call_tls_get_addr (orig, eqv, RELOC_TLSLDM);
15124 +
15125 + x = m68k_wrap_symbol (orig, RELOC_TLSLDO, a0, NULL_RTX);
15126 +
15127 + if (can_create_pseudo_p ())
15128 + x = m68k_move_to_reg (x, orig, NULL_RTX);
15129 +
15130 + orig = x;
15131 + break;
15132 + }
15133 +
15134 + case TLS_MODEL_INITIAL_EXEC:
15135 + {
15136 + rtx a0;
15137 + rtx x;
15138 +
15139 + a0 = m68k_call_m68k_read_tp ();
15140 +
15141 + x = m68k_wrap_symbol_into_got_ref (orig, RELOC_TLSIE, NULL_RTX);
15142 + x = gen_rtx_PLUS (Pmode, x, a0);
15143 +
15144 + if (can_create_pseudo_p ())
15145 + x = m68k_move_to_reg (x, orig, NULL_RTX);
15146 +
15147 + orig = x;
15148 + break;
15149 + }
15150 +
15151 + case TLS_MODEL_LOCAL_EXEC:
15152 + {
15153 + rtx a0;
15154 + rtx x;
15155 +
15156 + a0 = m68k_call_m68k_read_tp ();
15157 +
15158 + x = m68k_wrap_symbol (orig, RELOC_TLSLE, a0, NULL_RTX);
15159 +
15160 + if (can_create_pseudo_p ())
15161 + x = m68k_move_to_reg (x, orig, NULL_RTX);
15162 +
15163 + orig = x;
15164 + break;
15165 + }
15166 +
15167 + default:
15168 + gcc_unreachable ();
15169 + }
15170 +
15171 + return orig;
15172 +}
15173 +
15174 +/* Return true if X is a TLS symbol. */
15175 +
15176 +static bool
15177 +m68k_tls_symbol_p (rtx x)
15178 +{
15179 + if (!TARGET_HAVE_TLS)
15180 + return false;
15181 +
15182 + if (GET_CODE (x) != SYMBOL_REF)
15183 + return false;
15184 +
15185 + return SYMBOL_REF_TLS_MODEL (x) != 0;
15186 +}
15187 +
15188 +/* Helper for m68k_tls_referenced_p. */
15189 +
15190 +static int
15191 +m68k_tls_reference_p_1 (rtx *x_ptr, void *data ATTRIBUTE_UNUSED)
15192 +{
15193 + /* Note: this is not the same as m68k_tls_symbol_p. */
15194 + if (GET_CODE (*x_ptr) == SYMBOL_REF)
15195 + return SYMBOL_REF_TLS_MODEL (*x_ptr) != 0 ? 1 : 0;
15196 +
15197 + /* Don't recurse into legitimate TLS references. */
15198 + if (m68k_tls_reference_p (*x_ptr, true))
15199 + return -1;
15200 +
15201 + return 0;
15202 +}
15203 +
15204 +/* If !LEGITIMATE_P, return true if X is a TLS symbol reference,
15205 + though illegitimate one.
15206 + If LEGITIMATE_P, return true if X is a legitimate TLS symbol reference. */
15207 +
15208 +bool
15209 +m68k_tls_reference_p (rtx x, bool legitimate_p)
15210 +{
15211 + if (!TARGET_HAVE_TLS)
15212 + return false;
15213 +
15214 + if (!legitimate_p)
15215 + return for_each_rtx (&x, m68k_tls_reference_p_1, NULL) == 1 ? true : false;
15216 + else
15217 + {
15218 + enum m68k_reloc reloc = RELOC_GOT;
15219 +
15220 + return (m68k_unwrap_symbol_1 (x, true, &reloc) != x
15221 + && TLS_RELOC_P (reloc));
15222 + }
15223 +}
15224 +
15225 \f
15226
15227 #define USE_MOVQ(i) ((unsigned) ((i) + 128) <= 255)
15228 @@ -3918,18 +4466,92 @@
15229 }
15230 }
15231
15232 +/* Return string for TLS relocation RELOC. */
15233 +
15234 +static const char *
15235 +m68k_get_reloc_decoration (enum m68k_reloc reloc)
15236 +{
15237 + /* To my knowledge, !MOTOROLA assemblers don't support TLS. */
15238 + gcc_assert (MOTOROLA || reloc == RELOC_GOT);
15239 +
15240 + switch (reloc)
15241 + {
15242 + case RELOC_GOT:
15243 + if (MOTOROLA)
15244 + {
15245 + if (flag_pic == 1 && TARGET_68020)
15246 + return "@GOT.w";
15247 + else
15248 + return "@GOT";
15249 + }
15250 + else
15251 + {
15252 + if (TARGET_68020)
15253 + {
15254 + switch (flag_pic)
15255 + {
15256 + case 1:
15257 + return ":w";
15258 + case 2:
15259 + return ":l";
15260 + default:
15261 + return "";
15262 + }
15263 + }
15264 + }
15265 +
15266 + case RELOC_TLSGD:
15267 + return "@TLSGD";
15268 +
15269 + case RELOC_TLSLDM:
15270 + return "@TLSLDM";
15271 +
15272 + case RELOC_TLSLDO:
15273 + return "@TLSLDO";
15274 +
15275 + case RELOC_TLSIE:
15276 + return "@TLSIE";
15277 +
15278 + case RELOC_TLSLE:
15279 + return "@TLSLE";
15280 +
15281 + default:
15282 + gcc_unreachable ();
15283 + }
15284 +}
15285 +
15286 /* m68k implementation of OUTPUT_ADDR_CONST_EXTRA. */
15287
15288 bool
15289 m68k_output_addr_const_extra (FILE *file, rtx x)
15290 {
15291 - if (GET_CODE (x) != UNSPEC || XINT (x, 1) != UNSPEC_GOTOFF)
15292 - return false;
15293 + if (GET_CODE (x) == UNSPEC)
15294 + {
15295 + switch (XINT (x, 1))
15296 + {
15297 + case UNSPEC_RELOC16:
15298 + case UNSPEC_RELOC32:
15299 + output_addr_const (file, XVECEXP (x, 0, 0));
15300 + fputs (m68k_get_reloc_decoration (INTVAL (XVECEXP (x, 0, 1))), file);
15301 + return true;
15302
15303 - output_addr_const (file, XVECEXP (x, 0, 0));
15304 - /* ??? What is the non-MOTOROLA syntax? */
15305 - fputs ("@GOT", file);
15306 - return true;
15307 + default:
15308 + break;
15309 + }
15310 + }
15311 +
15312 + return false;
15313 +}
15314 +
15315 +/* M68K implementation of TARGET_ASM_OUTPUT_DWARF_DTPREL. */
15316 +
15317 +static void
15318 +m68k_output_dwarf_dtprel (FILE *file, int size, rtx x)
15319 +{
15320 + gcc_assert (size == 4);
15321 + fputs ("\t.long\t", file);
15322 + output_addr_const (file, x);
15323 + fputs ("@TLSLDO+0x8000", file);
15324 }
15325
15326 \f
15327 @@ -4019,15 +4641,8 @@
15328 else
15329 {
15330 if (address.offset)
15331 - {
15332 - output_addr_const (file, address.offset);
15333 - if (flag_pic && address.base == pic_offset_table_rtx)
15334 - {
15335 - fprintf (file, "@GOT");
15336 - if (flag_pic == 1 && TARGET_68020)
15337 - fprintf (file, ".w");
15338 - }
15339 - }
15340 + output_addr_const (file, address.offset);
15341 +
15342 putc ('(', file);
15343 if (address.base)
15344 fputs (M68K_REGNAME (REGNO (address.base)), file);
15345 @@ -4060,19 +4675,7 @@
15346 fputs (M68K_REGNAME (REGNO (address.base)), file);
15347 fprintf (file, "@(");
15348 if (address.offset)
15349 - {
15350 - output_addr_const (file, address.offset);
15351 - if (address.base == pic_offset_table_rtx && TARGET_68020)
15352 - switch (flag_pic)
15353 - {
15354 - case 1:
15355 - fprintf (file, ":w"); break;
15356 - case 2:
15357 - fprintf (file, ":l"); break;
15358 - default:
15359 - break;
15360 - }
15361 - }
15362 + output_addr_const (file, address.offset);
15363 }
15364 /* Print the ",index" component, if any. */
15365 if (address.index)
15366 @@ -4580,7 +5183,8 @@
15367 default:
15368 break;
15369 }
15370 - return gen_rtx_REG (mode, D0_REG);
15371 +
15372 + return gen_rtx_REG (mode, m68k_libcall_value_in_a0_p ? A0_REG : D0_REG);
15373 }
15374
15375 rtx
15376 @@ -4846,9 +5450,8 @@
15377 return OP_TYPE_IMM_L;
15378
15379 default:
15380 - if (GET_CODE (op) == SYMBOL_REF)
15381 - /* ??? Just a guess. Probably we can guess better using length
15382 - attribute of the instructions. */
15383 + if (symbolic_operand (m68k_unwrap_symbol (op, false), VOIDmode))
15384 + /* Just a guess. */
15385 return OP_TYPE_IMM_W;
15386
15387 return OP_TYPE_IMM_L;
15388 @@ -5793,3 +6396,5 @@
15389 return 0;
15390 }
15391 }
15392 +
15393 +#include "gt-m68k.h"
15394 diff -Nur a/gcc/config/m68k/m68k-devices.def b/gcc/config/m68k/m68k-devices.def
15395 --- a/gcc/config/m68k/m68k-devices.def 2009-02-20 16:20:38.000000000 +0100
15396 +++ b/gcc/config/m68k/m68k-devices.def 2010-01-25 09:50:29.025687257 +0100
15397 @@ -72,8 +72,8 @@
15398 /* 680x0 series processors. */
15399 M68K_DEVICE ("68000", m68000, "68000", "68000", 68000, isa_00, 0)
15400 M68K_DEVICE ("68010", m68010, "68010", "68000", 68010, isa_10, 0)
15401 -M68K_DEVICE ("68020", m68020, "68020", "68020", 68020, isa_20, FL_MMU)
15402 -M68K_DEVICE ("68030", m68030, "68030", "68020", 68030, isa_20, FL_MMU)
15403 +M68K_DEVICE ("68020", m68020, "68020", "68020", 68020, isa_20, FL_MMU | FL_UCLINUX)
15404 +M68K_DEVICE ("68030", m68030, "68030", "68020", 68030, isa_20, FL_MMU | FL_UCLINUX)
15405 M68K_DEVICE ("68040", m68040, "68040", "68040", 68040, isa_40, FL_MMU)
15406 M68K_DEVICE ("68060", m68060, "68060", "68060", 68060, isa_40, FL_MMU)
15407 M68K_DEVICE ("68302", m68302, "68302", "68000", 68000, isa_00, FL_MMU)
15408 @@ -81,7 +81,13 @@
15409 M68K_DEVICE ("cpu32", cpu32, "cpu32", "cpu32", cpu32, isa_cpu32, FL_MMU)
15410
15411 /* ColdFire CFV1 processor. */
15412 -M68K_DEVICE ("51qe", mcf51qe, "51qe", "51qe", cfv1, isa_c, FL_CF_USP)
15413 +/* For historical reasons, the 51 multilib is named 51qe. */
15414 +M68K_DEVICE ("51", mcf51, "51", "51qe", cfv1, isa_c, FL_CF_USP)
15415 +M68K_DEVICE ("51ac", mcf51ac, "51", "51qe", cfv1, isa_c, FL_CF_USP)
15416 +M68K_DEVICE ("51cn", mcf51cn, "51", "51qe", cfv1, isa_c, FL_CF_USP)
15417 +M68K_DEVICE ("51em", mcf51em, "51", "51qe", cfv1, isa_c, FL_CF_USP | FL_CF_MAC)
15418 +M68K_DEVICE ("51jm", mcf51jm, "51", "51qe", cfv1, isa_c, FL_CF_USP)
15419 +M68K_DEVICE ("51qe", mcf51qe, "51", "51qe", cfv1, isa_c, FL_CF_USP)
15420
15421 /* ColdFire CFV2 processors. */
15422 M68K_DEVICE ("5202", mcf5202, "5206", "5206", cfv2, isa_a, 0)
15423 @@ -97,6 +103,7 @@
15424 M68K_DEVICE ("5213", mcf5213, "5213", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_MAC)
15425 M68K_DEVICE ("5214", mcf5214, "5216", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15426 M68K_DEVICE ("5216", mcf5216, "5216", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15427 +M68K_DEVICE ("5221x", mcf5221x, "5221x", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_MAC)
15428 M68K_DEVICE ("52221", mcf52221, "52223", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_MAC)
15429 M68K_DEVICE ("52223", mcf52223, "52223", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_MAC)
15430 M68K_DEVICE ("52230", mcf52230, "52235", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15431 @@ -107,6 +114,14 @@
15432 M68K_DEVICE ("52235", mcf52235, "52235", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15433 M68K_DEVICE ("5224", mcf5224, "5225", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_MAC)
15434 M68K_DEVICE ("5225", mcf5225, "5225", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_MAC)
15435 +M68K_DEVICE ("52252", mcf52252, "52259", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15436 +M68K_DEVICE ("52254", mcf52254, "52259", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15437 +M68K_DEVICE ("52255", mcf52255, "52259", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15438 +M68K_DEVICE ("52256", mcf52256, "52259", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15439 +M68K_DEVICE ("52258", mcf52258, "52259", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15440 +M68K_DEVICE ("52259", mcf52259, "52259", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15441 +M68K_DEVICE ("52274", mcf52274, "52277", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15442 +M68K_DEVICE ("52277", mcf52277, "52277", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15443 M68K_DEVICE ("5232", mcf5232, "5235", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15444 M68K_DEVICE ("5233", mcf5233, "5235", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15445 M68K_DEVICE ("5234", mcf5234, "5235", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15446 @@ -126,6 +141,13 @@
15447 M68K_DEVICE ("528x", mcf528x, "5282", "5208", cfv2, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15448
15449 /* CFV3 processors. */
15450 +M68K_DEVICE ("53011", mcf53011, "53017", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15451 +M68K_DEVICE ("53012", mcf53012, "53017", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15452 +M68K_DEVICE ("53013", mcf53013, "53017", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15453 +M68K_DEVICE ("53014", mcf53014, "53017", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15454 +M68K_DEVICE ("53015", mcf53015, "53017", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15455 +M68K_DEVICE ("53016", mcf53016, "53017", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15456 +M68K_DEVICE ("53017", mcf53017, "53017", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15457 M68K_DEVICE ("5307", mcf5307, "5307", "5307", cfv3, isa_a, FL_CF_HWDIV | FL_CF_MAC)
15458 M68K_DEVICE ("5327", mcf5327, "5329", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15459 M68K_DEVICE ("5328", mcf5328, "5329", "5329", cfv3, isa_aplus, FL_CF_HWDIV | FL_CF_EMAC)
15460 @@ -137,12 +159,17 @@
15461
15462 /* CFV4/CFV4e processors. */
15463 M68K_DEVICE ("5407", mcf5407, "5407", "5407", cfv4, isa_b, FL_CF_MAC)
15464 -M68K_DEVICE ("54450", mcf54450, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU)
15465 -M68K_DEVICE ("54451", mcf54451, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU)
15466 -M68K_DEVICE ("54452", mcf54452, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU)
15467 -M68K_DEVICE ("54453", mcf54453, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU)
15468 -M68K_DEVICE ("54454", mcf54454, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU)
15469 -M68K_DEVICE ("54455", mcf54455, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU)
15470 +M68K_DEVICE ("54410", mcf54410, "54418", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15471 +M68K_DEVICE ("54415", mcf54415, "54418", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15472 +M68K_DEVICE ("54416", mcf54416, "54418", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15473 +M68K_DEVICE ("54417", mcf54417, "54418", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15474 +M68K_DEVICE ("54418", mcf54418, "54418", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15475 +M68K_DEVICE ("54450", mcf54450, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15476 +M68K_DEVICE ("54451", mcf54451, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15477 +M68K_DEVICE ("54452", mcf54452, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15478 +M68K_DEVICE ("54453", mcf54453, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15479 +M68K_DEVICE ("54454", mcf54454, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15480 +M68K_DEVICE ("54455", mcf54455, "54455", "54455", cfv4, isa_c, FL_CF_HWDIV | FL_CF_USP | FL_CF_EMAC | FL_MMU | FL_UCLINUX)
15481 M68K_DEVICE ("5470", mcf5470, "5475", "5475", cfv4e, isa_b, FL_CF_USP | FL_CF_EMAC | FL_CF_FPU | FL_MMU)
15482 M68K_DEVICE ("5471", mcf5471, "5475", "5475", cfv4e, isa_b, FL_CF_USP | FL_CF_EMAC | FL_CF_FPU | FL_MMU)
15483 M68K_DEVICE ("5472", mcf5472, "5475", "5475", cfv4e, isa_b, FL_CF_USP | FL_CF_EMAC | FL_CF_FPU | FL_MMU)
15484 diff -Nur a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
15485 --- a/gcc/config/m68k/m68k.h 2008-11-19 12:23:28.000000000 +0100
15486 +++ b/gcc/config/m68k/m68k.h 2010-01-25 09:50:29.025687257 +0100
15487 @@ -232,6 +232,7 @@
15488 #define FL_ISA_C (1 << 16)
15489 #define FL_FIDOA (1 << 17)
15490 #define FL_MMU 0 /* Used by multilib machinery. */
15491 +#define FL_UCLINUX 0 /* Used by multilib machinery. */
15492
15493 #define TARGET_68010 ((m68k_cpu_flags & FL_ISA_68010) != 0)
15494 #define TARGET_68020 ((m68k_cpu_flags & FL_ISA_68020) != 0)
15495 @@ -501,7 +502,8 @@
15496
15497 extern enum reg_class regno_reg_class[];
15498 #define REGNO_REG_CLASS(REGNO) (regno_reg_class[(REGNO)])
15499 -#define INDEX_REG_CLASS GENERAL_REGS
15500 +#define MODE_INDEX_REG_CLASS(MODE) \
15501 + (MODE_OK_FOR_INDEX_P (MODE) ? GENERAL_REGS : NO_REGS)
15502 #define BASE_REG_CLASS ADDR_REGS
15503
15504 #define PREFERRED_RELOAD_CLASS(X,CLASS) \
15505 @@ -644,7 +646,7 @@
15506 (though the operand list is empty). */
15507 #define TRANSFER_FROM_TRAMPOLINE \
15508 void \
15509 -__transfer_from_trampoline () \
15510 +__transfer_from_trampoline (void) \
15511 { \
15512 register char *a0 asm (M68K_STATIC_CHAIN_REG_NAME); \
15513 asm (GLOBAL_ASM_OP "___trampoline"); \
15514 @@ -675,6 +677,10 @@
15515 #define HAVE_POST_INCREMENT 1
15516 #define HAVE_PRE_DECREMENT 1
15517
15518 +/* Return true if addresses of mode MODE can have an index register. */
15519 +#define MODE_OK_FOR_INDEX_P(MODE) \
15520 + (!TARGET_COLDFIRE_FPU || GET_MODE_CLASS (MODE) != MODE_FLOAT)
15521 +
15522 /* Macros to check register numbers against specific register classes. */
15523
15524 /* True for data registers, D0 through D7. */
15525 @@ -689,9 +695,10 @@
15526 /* True for floating point registers, FP0 through FP7. */
15527 #define FP_REGNO_P(REGNO) IN_RANGE (REGNO, 16, 23)
15528
15529 -#define REGNO_OK_FOR_INDEX_P(REGNO) \
15530 - (INT_REGNO_P (REGNO) \
15531 - || INT_REGNO_P (reg_renumber[REGNO]))
15532 +#define REGNO_MODE_OK_FOR_INDEX_P(REGNO, MODE) \
15533 + (MODE_OK_FOR_INDEX_P (MODE) \
15534 + && (INT_REGNO_P (REGNO) \
15535 + || INT_REGNO_P (reg_renumber[REGNO])))
15536
15537 #define REGNO_OK_FOR_BASE_P(REGNO) \
15538 (ADDRESS_REGNO_P (REGNO) \
15539 @@ -751,13 +758,14 @@
15540
15541 #define LEGITIMATE_PIC_OPERAND_P(X) \
15542 (!symbolic_operand (X, VOIDmode) \
15543 - || (TARGET_PCREL && REG_STRICT_P))
15544 + || (TARGET_PCREL && REG_STRICT_P) \
15545 + || m68k_tls_reference_p (X, true))
15546
15547 #define REG_OK_FOR_BASE_P(X) \
15548 m68k_legitimate_base_reg_p (X, REG_STRICT_P)
15549
15550 -#define REG_OK_FOR_INDEX_P(X) \
15551 - m68k_legitimate_index_reg_p (X, REG_STRICT_P)
15552 +#define REG_MODE_OK_FOR_INDEX_P(X, MODE) \
15553 + m68k_legitimate_index_reg_p (MODE, X, REG_STRICT_P)
15554
15555 #define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \
15556 do \
15557 @@ -770,52 +778,19 @@
15558 /* This address is OK as it stands. */
15559 #define PIC_CASE_VECTOR_ADDRESS(index) index
15560 \f
15561 -/* For the 68000, we handle X+REG by loading X into a register R and
15562 - using R+REG. R will go in an address reg and indexing will be used.
15563 - However, if REG is a broken-out memory address or multiplication,
15564 - nothing needs to be done because REG can certainly go in an address reg. */
15565 -#define COPY_ONCE(Y) if (!copied) { Y = copy_rtx (Y); copied = ch = 1; }
15566 -#define LEGITIMIZE_ADDRESS(X,OLDX,MODE,WIN) \
15567 -{ register int ch = (X) != (OLDX); \
15568 - if (GET_CODE (X) == PLUS) \
15569 - { int copied = 0; \
15570 - if (GET_CODE (XEXP (X, 0)) == MULT) \
15571 - { COPY_ONCE (X); XEXP (X, 0) = force_operand (XEXP (X, 0), 0);} \
15572 - if (GET_CODE (XEXP (X, 1)) == MULT) \
15573 - { COPY_ONCE (X); XEXP (X, 1) = force_operand (XEXP (X, 1), 0);} \
15574 - if (ch && GET_CODE (XEXP (X, 1)) == REG \
15575 - && GET_CODE (XEXP (X, 0)) == REG) \
15576 - { if (TARGET_COLDFIRE_FPU \
15577 - && GET_MODE_CLASS (MODE) == MODE_FLOAT) \
15578 - { COPY_ONCE (X); X = force_operand (X, 0);} \
15579 - goto WIN; } \
15580 - if (ch) { GO_IF_LEGITIMATE_ADDRESS (MODE, X, WIN); } \
15581 - if (GET_CODE (XEXP (X, 0)) == REG \
15582 - || (GET_CODE (XEXP (X, 0)) == SIGN_EXTEND \
15583 - && GET_CODE (XEXP (XEXP (X, 0), 0)) == REG \
15584 - && GET_MODE (XEXP (XEXP (X, 0), 0)) == HImode)) \
15585 - { register rtx temp = gen_reg_rtx (Pmode); \
15586 - register rtx val = force_operand (XEXP (X, 1), 0); \
15587 - emit_move_insn (temp, val); \
15588 - COPY_ONCE (X); \
15589 - XEXP (X, 1) = temp; \
15590 - if (TARGET_COLDFIRE_FPU && GET_MODE_CLASS (MODE) == MODE_FLOAT \
15591 - && GET_CODE (XEXP (X, 0)) == REG) \
15592 - X = force_operand (X, 0); \
15593 - goto WIN; } \
15594 - else if (GET_CODE (XEXP (X, 1)) == REG \
15595 - || (GET_CODE (XEXP (X, 1)) == SIGN_EXTEND \
15596 - && GET_CODE (XEXP (XEXP (X, 1), 0)) == REG \
15597 - && GET_MODE (XEXP (XEXP (X, 1), 0)) == HImode)) \
15598 - { register rtx temp = gen_reg_rtx (Pmode); \
15599 - register rtx val = force_operand (XEXP (X, 0), 0); \
15600 - emit_move_insn (temp, val); \
15601 - COPY_ONCE (X); \
15602 - XEXP (X, 0) = temp; \
15603 - if (TARGET_COLDFIRE_FPU && GET_MODE_CLASS (MODE) == MODE_FLOAT \
15604 - && GET_CODE (XEXP (X, 1)) == REG) \
15605 - X = force_operand (X, 0); \
15606 - goto WIN; }}}
15607 +#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) \
15608 +do { \
15609 + rtx __x; \
15610 + \
15611 + __x = m68k_legitimize_address (X, OLDX, MODE); \
15612 + if (__x != NULL_RTX) \
15613 + { \
15614 + X = __x; \
15615 + \
15616 + if (memory_address_p (MODE, X)) \
15617 + goto WIN; \
15618 + } \
15619 +} while (0)
15620
15621 /* On the 68000, only predecrement and postincrement address depend thus
15622 (the amount of decrement or increment being the length of the operand).
15623 @@ -1028,6 +1003,9 @@
15624 assemble_name ((FILE), (NAME)), \
15625 fprintf ((FILE), ",%u\n", (int)(ROUNDED)))
15626
15627 +#define FINAL_PRESCAN_INSN(INSN, OPVEC, NOPERANDS) \
15628 + m68k_final_prescan_insn (INSN, OPVEC, NOPERANDS)
15629 +
15630 /* On the 68000, we use several CODE characters:
15631 '.' for dot needed in Motorola-style opcode names.
15632 '-' for an operand pushing on the stack:
15633 diff -Nur a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
15634 --- a/gcc/config/m68k/m68k.md 2009-02-20 16:20:38.000000000 +0100
15635 +++ b/gcc/config/m68k/m68k.md 2010-01-25 09:50:29.025687257 +0100
15636 @@ -116,7 +116,8 @@
15637 (UNSPEC_GOT 3)
15638 (UNSPEC_IB 4)
15639 (UNSPEC_TIE 5)
15640 - (UNSPEC_GOTOFF 6)
15641 + (UNSPEC_RELOC16 6)
15642 + (UNSPEC_RELOC32 7)
15643 ])
15644
15645 ;; UNSPEC_VOLATILE usage:
15646 @@ -414,7 +415,7 @@
15647
15648 (define_insn "tst<mode>_cf"
15649 [(set (cc0)
15650 - (match_operand:FP 0 "general_operand" "f<FP:dreg><Q>U"))]
15651 + (match_operand:FP 0 "general_operand" "f<FP:dreg>m"))]
15652 "TARGET_COLDFIRE_FPU"
15653 {
15654 cc_status.flags = CC_IN_68881;
15655 @@ -570,8 +571,8 @@
15656
15657 (define_insn "*cmp<mode>_cf"
15658 [(set (cc0)
15659 - (compare (match_operand:FP 0 "fp_src_operand" "f,f,<FP:dreg><Q>U")
15660 - (match_operand:FP 1 "fp_src_operand" "f,<FP:dreg><Q>U,f")))]
15661 + (compare (match_operand:FP 0 "fp_src_operand" "f,f,<FP:dreg>m")
15662 + (match_operand:FP 1 "fp_src_operand" "f,<FP:dreg>m,f")))]
15663 "TARGET_COLDFIRE_FPU
15664 && (register_operand (operands[0], <MODE>mode)
15665 || register_operand (operands[1], <MODE>mode))"
15666 @@ -779,7 +780,41 @@
15667 {
15668 rtx tmp, base, offset;
15669
15670 - if (flag_pic && !TARGET_PCREL && symbolic_operand (operands[1], SImode))
15671 + /* Recognize the case where operand[1] is a reference to thread-local
15672 + data and load its address to a register. */
15673 + if (!TARGET_PCREL && m68k_tls_reference_p (operands[1], false))
15674 + {
15675 + rtx tmp = operands[1];
15676 + rtx addend = NULL;
15677 +
15678 + if (GET_CODE (tmp) == CONST && GET_CODE (XEXP (tmp, 0)) == PLUS)
15679 + {
15680 + addend = XEXP (XEXP (tmp, 0), 1);
15681 + tmp = XEXP (XEXP (tmp, 0), 0);
15682 + }
15683 +
15684 + gcc_assert (GET_CODE (tmp) == SYMBOL_REF);
15685 + gcc_assert (SYMBOL_REF_TLS_MODEL (tmp) != 0);
15686 +
15687 + tmp = m68k_legitimize_tls_address (tmp);
15688 +
15689 + if (addend)
15690 + {
15691 + if (!REG_P (tmp))
15692 + {
15693 + rtx reg;
15694 +
15695 + reg = gen_reg_rtx (Pmode);
15696 + emit_move_insn (reg, tmp);
15697 + tmp = reg;
15698 + }
15699 +
15700 + tmp = gen_rtx_PLUS (SImode, tmp, addend);
15701 + }
15702 +
15703 + operands[1] = tmp;
15704 + }
15705 + else if (flag_pic && !TARGET_PCREL && symbolic_operand (operands[1], SImode))
15706 {
15707 /* The source is an address which requires PIC relocation.
15708 Call legitimize_pic_address with the source, mode, and a relocation
15709 @@ -1070,10 +1105,8 @@
15710 ;; SFmode MEMs are restricted to modes 2-4 if TARGET_COLDFIRE_FPU.
15711 ;; The move instructions can handle all combinations.
15712 (define_insn "movsf_cf_hard"
15713 - [(set (match_operand:SF 0 "nonimmediate_operand" "=r<Q>U, f, f,mr,f,r<Q>,f
15714 -,m")
15715 - (match_operand:SF 1 "general_operand" " f, r<Q>U,f,rm,F,F, m
15716 -,f"))]
15717 + [(set (match_operand:SF 0 "nonimmediate_operand" "=rm,f, f,rm,f,r<Q>,f,m")
15718 + (match_operand:SF 1 "general_operand" " f, rm,f,rm,F,F, m,f"))]
15719 "TARGET_COLDFIRE_FPU"
15720 {
15721 if (which_alternative == 4 || which_alternative == 5) {
15722 @@ -1215,8 +1248,8 @@
15723 })
15724
15725 (define_insn "movdf_cf_hard"
15726 - [(set (match_operand:DF 0 "nonimmediate_operand" "=f, <Q>U,r,f,r,r,m,f")
15727 - (match_operand:DF 1 "general_operand" " f<Q>U,f, f,r,r,m,r,E"))]
15728 + [(set (match_operand:DF 0 "nonimmediate_operand" "=f, m,r,f,r,r,m,f")
15729 + (match_operand:DF 1 "general_operand" " fm,f,f,r,r,m,r,E"))]
15730 "TARGET_COLDFIRE_FPU"
15731 {
15732 rtx xoperands[3];
15733 @@ -1857,7 +1890,7 @@
15734 (define_insn "extendsfdf2_cf"
15735 [(set (match_operand:DF 0 "nonimmediate_operand" "=f,f")
15736 (float_extend:DF
15737 - (match_operand:SF 1 "general_operand" "f,<Q>U")))]
15738 + (match_operand:SF 1 "general_operand" "f,m")))]
15739 "TARGET_COLDFIRE_FPU"
15740 {
15741 if (FP_REG_P (operands[0]) && FP_REG_P (operands[1]))
15742 @@ -1897,9 +1930,9 @@
15743 })
15744
15745 (define_insn "truncdfsf2_cf"
15746 - [(set (match_operand:SF 0 "nonimmediate_operand" "=f,d<Q>U")
15747 + [(set (match_operand:SF 0 "nonimmediate_operand" "=f,dm")
15748 (float_truncate:SF
15749 - (match_operand:DF 1 "general_operand" "<Q>U,f")))]
15750 + (match_operand:DF 1 "general_operand" "m,f")))]
15751 "TARGET_COLDFIRE_FPU"
15752 "@
15753 fsmove%.d %1,%0
15754 @@ -2045,7 +2078,7 @@
15755
15756 (define_insn "ftrunc<mode>2_cf"
15757 [(set (match_operand:FP 0 "nonimmediate_operand" "=f")
15758 - (fix:FP (match_operand:FP 1 "general_operand" "f<FP:dreg><Q>U")))]
15759 + (fix:FP (match_operand:FP 1 "general_operand" "f<FP:dreg>m")))]
15760 "TARGET_COLDFIRE_FPU"
15761 {
15762 if (FP_REG_P (operands[1]))
15763 @@ -2338,9 +2371,9 @@
15764 "* return output_addsi3 (operands);")
15765
15766 (define_insn_and_split "*addsi3_5200"
15767 - [(set (match_operand:SI 0 "nonimmediate_operand" "=mr,mr,a,m,r, ?a, ?a,?a,?a")
15768 - (plus:SI (match_operand:SI 1 "general_operand" "%0, 0, 0,0,0, a, a, r, a")
15769 - (match_operand:SI 2 "general_src_operand" " I, L, J,d,mrKi,Cj, r, a, J")))]
15770 + [(set (match_operand:SI 0 "nonimmediate_operand" "=mr,mr,a, m,r, ?a, ?a,?a,?a")
15771 + (plus:SI (match_operand:SI 1 "general_operand" "%0, 0, 0, 0,0, a, a, r, a")
15772 + (match_operand:SI 2 "general_src_operand" " I, L, JCu,d,mrKi,Cj, r, a, JCu")))]
15773 "TARGET_COLDFIRE"
15774 {
15775 switch (which_alternative)
15776 @@ -2382,9 +2415,9 @@
15777 (plus:SI (match_dup 0)
15778 (match_dup 1)))]
15779 ""
15780 - [(set_attr "type" "aluq_l,aluq_l,lea,alu_l,alu_l,*,lea,lea,lea")
15781 - (set_attr "opy" "2,2,*,2,2,*,*,*,*")
15782 - (set_attr "opy_type" "*,*,mem5,*,*,*,mem6,mem6,mem5")])
15783 + [(set_attr "type" "aluq_l,aluq_l,lea, alu_l,alu_l,*,lea, lea, lea")
15784 + (set_attr "opy" "2, 2, *, 2, 2, *,*, *, *")
15785 + (set_attr "opy_type" "*, *, mem5,*, *, *,mem6,mem6,mem5")])
15786
15787 (define_insn ""
15788 [(set (match_operand:SI 0 "nonimmediate_operand" "=a")
15789 @@ -2666,7 +2699,7 @@
15790 (define_insn "add<mode>3_cf"
15791 [(set (match_operand:FP 0 "nonimmediate_operand" "=f")
15792 (plus:FP (match_operand:FP 1 "general_operand" "%0")
15793 - (match_operand:FP 2 "general_operand" "f<FP:dreg><Q>U")))]
15794 + (match_operand:FP 2 "general_operand" "f<FP:dreg>m")))]
15795 "TARGET_COLDFIRE_FPU"
15796 {
15797 if (FP_REG_P (operands[2]))
15798 @@ -2889,7 +2922,7 @@
15799 (define_insn "sub<mode>3_cf"
15800 [(set (match_operand:FP 0 "nonimmediate_operand" "=f")
15801 (minus:FP (match_operand:FP 1 "general_operand" "0")
15802 - (match_operand:FP 2 "general_operand" "f<FP:dreg><Q>U")))]
15803 + (match_operand:FP 2 "general_operand" "f<FP:dreg>m")))]
15804 "TARGET_COLDFIRE_FPU"
15805 {
15806 if (FP_REG_P (operands[2]))
15807 @@ -3245,7 +3278,7 @@
15808 (define_insn "fmul<mode>3_cf"
15809 [(set (match_operand:FP 0 "nonimmediate_operand" "=f")
15810 (mult:FP (match_operand:FP 1 "general_operand" "%0")
15811 - (match_operand:FP 2 "general_operand" "f<Q>U<FP:dreg>")))]
15812 + (match_operand:FP 2 "general_operand" "fm<FP:dreg>")))]
15813 "TARGET_COLDFIRE_FPU"
15814 {
15815 if (FP_REG_P (operands[2]))
15816 @@ -3315,7 +3348,7 @@
15817 (define_insn "div<mode>3_cf"
15818 [(set (match_operand:FP 0 "nonimmediate_operand" "=f")
15819 (div:FP (match_operand:FP 1 "general_operand" "0")
15820 - (match_operand:FP 2 "general_operand" "f<Q>U<FP:dreg>")))]
15821 + (match_operand:FP 2 "general_operand" "fm<FP:dreg>")))]
15822 "TARGET_COLDFIRE_FPU"
15823 {
15824 if (FP_REG_P (operands[2]))
15825 @@ -4163,7 +4196,7 @@
15826
15827 (define_insn "neg<mode>2_cf"
15828 [(set (match_operand:FP 0 "nonimmediate_operand" "=f,d")
15829 - (neg:FP (match_operand:FP 1 "general_operand" "f<FP:dreg><Q>U,0")))]
15830 + (neg:FP (match_operand:FP 1 "general_operand" "f<FP:dreg>m,0")))]
15831 "TARGET_COLDFIRE_FPU"
15832 {
15833 if (DATA_REG_P (operands[0]))
15834 @@ -4197,7 +4230,7 @@
15835
15836 (define_insn "sqrt<mode>2_cf"
15837 [(set (match_operand:FP 0 "nonimmediate_operand" "=f")
15838 - (sqrt:FP (match_operand:FP 1 "general_operand" "f<FP:dreg><Q>U")))]
15839 + (sqrt:FP (match_operand:FP 1 "general_operand" "f<FP:dreg>m")))]
15840 "TARGET_COLDFIRE_FPU"
15841 {
15842 if (FP_REG_P (operands[1]))
15843 @@ -4316,7 +4349,7 @@
15844
15845 (define_insn "abs<mode>2_cf"
15846 [(set (match_operand:FP 0 "nonimmediate_operand" "=f,d")
15847 - (abs:FP (match_operand:FP 1 "general_operand" "f<FP:dreg><Q>U,0")))]
15848 + (abs:FP (match_operand:FP 1 "general_operand" "f<FP:dreg>m,0")))]
15849 "TARGET_COLDFIRE_FPU"
15850 {
15851 if (DATA_REG_P (operands[0]))
15852 diff -Nur a/gcc/config/m68k/m68k.opt b/gcc/config/m68k/m68k.opt
15853 --- a/gcc/config/m68k/m68k.opt 2009-02-20 16:20:38.000000000 +0100
15854 +++ b/gcc/config/m68k/m68k.opt 2010-01-25 09:50:29.025687257 +0100
15855 @@ -182,3 +182,7 @@
15856 mxgot
15857 Target Report Mask(XGOT)
15858 Support more than 8192 GOT entries on ColdFire
15859 +
15860 +mxtls
15861 +Target Report Mask(XTLS)
15862 +Support TLS segment larger than 64K
15863 diff -Nur a/gcc/config/m68k/m68k-protos.h b/gcc/config/m68k/m68k-protos.h
15864 --- a/gcc/config/m68k/m68k-protos.h 2009-02-20 16:20:38.000000000 +0100
15865 +++ b/gcc/config/m68k/m68k-protos.h 2010-01-25 09:50:29.025687257 +0100
15866 @@ -54,19 +54,27 @@
15867 extern bool m68k_output_addr_const_extra (FILE *, rtx);
15868 extern void notice_update_cc (rtx, rtx);
15869 extern bool m68k_legitimate_base_reg_p (rtx, bool);
15870 -extern bool m68k_legitimate_index_reg_p (rtx, bool);
15871 +extern bool m68k_legitimate_index_reg_p (enum machine_mode, rtx, bool);
15872 extern bool m68k_illegitimate_symbolic_constant_p (rtx);
15873 extern bool m68k_legitimate_address_p (enum machine_mode, rtx, bool);
15874 extern bool m68k_matches_q_p (rtx);
15875 extern bool m68k_matches_u_p (rtx);
15876 extern rtx legitimize_pic_address (rtx, enum machine_mode, rtx);
15877 +extern rtx m68k_legitimize_tls_address (rtx);
15878 +extern bool m68k_tls_reference_p (rtx, bool);
15879 +extern rtx m68k_legitimize_address (rtx, rtx, enum machine_mode);
15880 extern int valid_dbcc_comparison_p_2 (rtx, enum machine_mode);
15881 extern rtx m68k_libcall_value (enum machine_mode);
15882 extern rtx m68k_function_value (const_tree, const_tree);
15883 extern int emit_move_sequence (rtx *, enum machine_mode, rtx);
15884 extern bool m68k_movem_pattern_p (rtx, rtx, HOST_WIDE_INT, bool);
15885 extern const char *m68k_output_movem (rtx *, rtx, HOST_WIDE_INT, bool);
15886 +extern void m68k_final_prescan_insn (rtx, rtx *, int);
15887
15888 +/* Functions from m68k.c used in constraints.md. */
15889 +extern rtx m68k_unwrap_symbol (rtx, bool);
15890 +
15891 +/* Functions from m68k.c used in genattrtab. */
15892 #ifdef HAVE_ATTR_cpu
15893 extern enum attr_cpu m68k_sched_cpu;
15894 extern enum attr_mac m68k_sched_mac;
15895 diff -Nur a/gcc/config/m68k/predicates.md b/gcc/config/m68k/predicates.md
15896 --- a/gcc/config/m68k/predicates.md 2007-09-24 23:00:22.000000000 +0200
15897 +++ b/gcc/config/m68k/predicates.md 2010-01-25 09:50:29.025687257 +0100
15898 @@ -130,7 +130,9 @@
15899 (match_code "sign_extend,zero_extend"))
15900
15901 ;; Returns true if OP is either a symbol reference or a sum of a
15902 -;; symbol reference and a constant.
15903 +;; symbol reference and a constant. This predicate is for "raw"
15904 +;; symbol references not yet processed by legitimize*_address,
15905 +;; hence we do not handle UNSPEC_{XGOT, TLS, XTLS} here.
15906
15907 (define_predicate "symbolic_operand"
15908 (match_code "symbol_ref,label_ref,const")
15909 diff -Nur a/gcc/config/m68k/t-uclinux b/gcc/config/m68k/t-uclinux
15910 --- a/gcc/config/m68k/t-uclinux 2008-04-03 08:12:27.000000000 +0200
15911 +++ b/gcc/config/m68k/t-uclinux 2010-01-25 09:50:29.025687257 +0100
15912 @@ -1,8 +1,8 @@
15913 # crti and crtn are provided by uClibc.
15914 EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o
15915
15916 -# Only include multilibs for the 68020 and for CPUs without an MMU.
15917 -M68K_MLIB_CPU += && (MLIB == "68020" || !match(FLAGS, "FL_MMU"))
15918 +# Include multilibs for CPUs without an MMU or with FL_UCLINUX
15919 +M68K_MLIB_CPU += && (!match(FLAGS, "FL_MMU") || match(FLAGS, "FL_UCLINUX"))
15920
15921 # Add multilibs for execute-in-place and shared-library code.
15922 M68K_MLIB_OPTIONS += msep-data/mid-shared-library
15923 diff -Nur a/gcc/config/mips/74k.md b/gcc/config/mips/74k.md
15924 --- a/gcc/config/mips/74k.md 2007-08-02 12:49:31.000000000 +0200
15925 +++ b/gcc/config/mips/74k.md 2010-01-25 09:50:29.025687257 +0100
15926 @@ -118,8 +118,7 @@
15927 ;; stores
15928 (define_insn_reservation "r74k_int_store" 1
15929 (and (eq_attr "cpu" "74kc,74kf2_1,74kf1_1,74kf3_2")
15930 - (and (eq_attr "type" "store")
15931 - (eq_attr "mode" "!unknown")))
15932 + (eq_attr "type" "store"))
15933 "r74k_agen")
15934
15935
15936 @@ -145,33 +144,123 @@
15937 ;; load->load base: 4 cycles
15938 ;; load->store base: 4 cycles
15939 (define_bypass 4 "r74k_int_load" "r74k_int_load")
15940 -(define_bypass 4 "r74k_int_load" "r74k_int_store" "!store_data_bypass_p")
15941 +(define_bypass 4 "r74k_int_load" "r74k_int_store" "!mips_store_data_bypass_p")
15942
15943 ;; logical/move/slt/signext->next use : 1 cycles (Default)
15944 ;; logical/move/slt/signext->load base: 2 cycles
15945 ;; logical/move/slt/signext->store base: 2 cycles
15946 (define_bypass 2 "r74k_int_logical" "r74k_int_load")
15947 -(define_bypass 2 "r74k_int_logical" "r74k_int_store" "!store_data_bypass_p")
15948 +(define_bypass 2 "r74k_int_logical" "r74k_int_store"
15949 + "!mips_store_data_bypass_p")
15950
15951 ;; arith->next use : 2 cycles (Default)
15952 ;; arith->load base: 3 cycles
15953 ;; arith->store base: 3 cycles
15954 (define_bypass 3 "r74k_int_arith" "r74k_int_load")
15955 -(define_bypass 3 "r74k_int_arith" "r74k_int_store" "!store_data_bypass_p")
15956 +(define_bypass 3 "r74k_int_arith" "r74k_int_store" "!mips_store_data_bypass_p")
15957
15958 ;; cmove->next use : 4 cycles (Default)
15959 ;; cmove->load base: 5 cycles
15960 ;; cmove->store base: 5 cycles
15961 (define_bypass 5 "r74k_int_cmove" "r74k_int_load")
15962 -(define_bypass 5 "r74k_int_cmove" "r74k_int_store" "!store_data_bypass_p")
15963 +(define_bypass 5 "r74k_int_cmove" "r74k_int_store"
15964 + "!mips_store_data_bypass_p")
15965
15966 ;; mult/madd/msub->int_mfhilo : 4 cycles (default)
15967 ;; mult->madd/msub : 1 cycles
15968 ;; madd/msub->madd/msub : 1 cycles
15969 -(define_bypass 1 "r74k_int_mult,r74k_int_mul3" "r74k_int_madd"
15970 - "mips_linked_madd_p")
15971 -(define_bypass 1 "r74k_int_madd" "r74k_int_madd"
15972 - "mips_linked_madd_p")
15973 +(define_bypass 1 "r74k_int_mult" "r74k_int_madd")
15974 +(define_bypass 1 "r74k_int_madd" "r74k_int_madd")
15975 +
15976 +(define_bypass 1 "r74k_int_mul3" "r74k_int_madd"
15977 + "mips_mult_madd_chain_bypass_p")
15978 +
15979 +
15980 +;; --------------------------------------------------------------
15981 +;; DSP instructins
15982 +;; --------------------------------------------------------------
15983 +
15984 +;; Non-saturating insn have the same latency as normal ALU operations,
15985 +(define_insn_reservation "r74k_dsp_alu" 2
15986 + (and (eq_attr "cpu" "74kc,74kf2_1,74kf1_1,74kf3_2")
15987 + (eq_attr "type" "dspalu"))
15988 + "r74k_alu")
15989 +
15990 +;; Saturating insn takes an extra cycle.
15991 +(define_insn_reservation "r74k_dsp_alu_sat" 3
15992 + (and (eq_attr "cpu" "74kc,74kf2_1,74kf1_1,74kf3_2")
15993 + (eq_attr "type" "dspalusat"))
15994 + "r74k_alu")
15995 +
15996 +;; dpaq_s, dpau, dpsq_s, dpsu, maq_s, mulsaq
15997 +;; - delivers result to hi/lo in 6 cycle (bypass at M4)
15998 +(define_insn_reservation "r74k_dsp_mac" 6
15999 + (and (eq_attr "cpu" "74kc,74kf2_1,74kf1_1,74kf3_2")
16000 + (eq_attr "type" "dspmac"))
16001 + "r74k_alu+r74k_mul")
16002 +
16003 +;; dpaq_sa, dpsq_sa, maq_sa
16004 +;; - delivers result to hi/lo in 7 cycle (bypass at WB)
16005 +(define_insn_reservation "r74k_dsp_mac_sat" 7
16006 + (and (eq_attr "cpu" "74kc,74kf2_1,74kf1_1,74kf3_2")
16007 + (eq_attr "type" "dspmacsat"))
16008 + "r74k_alu+r74k_mul")
16009 +
16010 +;; extp, extpdp, extpdpv, extpv, extr, extrv
16011 +;; - same latency as "mul"
16012 +(define_insn_reservation "r74k_dsp_acc_ext" 7
16013 + (and (eq_attr "cpu" "74kc,74kf2_1,74kf1_1,74kf3_2")
16014 + (eq_attr "type" "accext"))
16015 + "r74k_alu+r74k_mul")
16016 +
16017 +;; mthlip, shilo, shilov
16018 +;; - same latency as "mul"
16019 +(define_insn_reservation "r74k_dsp_acc_mod" 7
16020 + (and (eq_attr "cpu" "74kc,74kf2_1,74kf1_1,74kf3_2")
16021 + (eq_attr "type" "accmod"))
16022 + "r74k_alu+r74k_mul")
16023 +
16024 +;; dspalu ->load/store base
16025 +;; dspalusat->load/store base
16026 +;; - we should never see these in real life.
16027 +
16028 +;; dsp_mac->dsp_mac : 1 cycles (repeat rate of 1)
16029 +;; dsp_mac->dsp_mac_sat : 1 cycles (repeat rate of 1)
16030 +(define_bypass 1 "r74k_dsp_mac" "r74k_dsp_mac")
16031 +(define_bypass 1 "r74k_dsp_mac" "r74k_dsp_mac_sat")
16032 +
16033 +;; dsp_mac_sat->dsp_mac_sat : 2 cycles (repeat rate of 2)
16034 +;; dsp_mac_sat->dsp_mac : 2 cycles (repeat rate of 2)
16035 +(define_bypass 2 "r74k_dsp_mac_sat" "r74k_dsp_mac_sat")
16036 +(define_bypass 2 "r74k_dsp_mac_sat" "r74k_dsp_mac")
16037 +
16038 +(define_bypass 1 "r74k_int_mult" "r74k_dsp_mac")
16039 +(define_bypass 1 "r74k_int_mult" "r74k_dsp_mac_sat")
16040 +
16041 +;; Before reload, all multiplier is registered as imul3 (which has a long
16042 +;; latency). We temporary jig the latency such that the macc groups
16043 +;; are scheduled closely together during the first scheduler pass.
16044 +(define_bypass 1 "r74k_int_mul3" "r74k_dsp_mac"
16045 + "mips_mult_madd_chain_bypass_p")
16046 +(define_bypass 1 "r74k_int_mul3" "r74k_dsp_mac_sat"
16047 + "mips_mult_madd_chain_bypass_p")
16048 +
16049 +;; Assuming the following is true (bypass at M4)
16050 +;; AP AF AM MB M1 M2 M3 M4 WB GR GC
16051 +;; AP AF AM MB M1 M2 M3 M4 WB GR GC
16052 +;; dsp_mac->dsp_acc_ext : 4 cycles
16053 +;; dsp_mac->dsp_acc_mod : 4 cycles
16054 +(define_bypass 4 "r74k_dsp_mac" "r74k_dsp_acc_ext")
16055 +(define_bypass 4 "r74k_dsp_mac" "r74k_dsp_acc_mod")
16056 +
16057 +;; Assuming the following is true (bypass at WB)
16058 +;; AP AF AM MB M1 M2 M3 M4 WB GR GC
16059 +;; AP AF AM MB M1 M2 M3 M4 WB GR GC
16060 +;; dsp_mac_sat->dsp_acc_ext : 5 cycles
16061 +;; dsp_mac_sat->dsp_acc_mod : 5 cycles
16062 +(define_bypass 5 "r74k_dsp_mac_sat" "r74k_dsp_acc_ext")
16063 +(define_bypass 5 "r74k_dsp_mac_sat" "r74k_dsp_acc_mod")
16064 +
16065
16066 ;; --------------------------------------------------------------
16067 ;; Floating Point Instructions
16068 diff -Nur a/gcc/config/mips/crtfastmath.c b/gcc/config/mips/crtfastmath.c
16069 --- a/gcc/config/mips/crtfastmath.c 1970-01-01 01:00:00.000000000 +0100
16070 +++ b/gcc/config/mips/crtfastmath.c 2010-01-25 09:50:29.025687257 +0100
16071 @@ -0,0 +1,53 @@
16072 +/* Copyright (C) 2008, 2009 Free Software Foundation, Inc.
16073 +
16074 + This file is part of GCC.
16075 +
16076 + GCC is free software; you can redistribute it and/or modify it
16077 + under the terms of the GNU General Public License as published by
16078 + the Free Software Foundation; either version 3, or (at your option)
16079 + any later version.
16080 +
16081 + GCC is distributed in the hope that it will be useful, but WITHOUT
16082 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16083 + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16084 + License for more details.
16085 +
16086 + Under Section 7 of GPL version 3, you are granted additional
16087 + permissions described in the GCC Runtime Library Exception, version
16088 + 3.1, as published by the Free Software Foundation.
16089 +
16090 + You should have received a copy of the GNU General Public License
16091 + and a copy of the GCC Runtime Library Exception along with this
16092 + program; see the files COPYING3 and COPYING.RUNTIME respectively.
16093 + If not, see <http://www.gnu.org/licenses/>. */
16094 +
16095 +#ifdef __mips_hard_float
16096 +
16097 +/* flush denormalized numbers to zero */
16098 +#define _FPU_FLUSH_TZ 0x1000000
16099 +
16100 +/* rounding control */
16101 +#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */
16102 +#define _FPU_RC_ZERO 0x1
16103 +#define _FPU_RC_UP 0x2
16104 +#define _FPU_RC_DOWN 0x3
16105 +
16106 +/* enable interrupts for IEEE exceptions */
16107 +#define _FPU_IEEE 0x00000F80
16108 +
16109 +/* Macros for accessing the hardware control word. */
16110 +#define _FPU_GETCW(cw) __asm__ ("cfc1 %0,$31" : "=r" (cw))
16111 +#define _FPU_SETCW(cw) __asm__ ("ctc1 %0,$31" : : "r" (cw))
16112 +
16113 +static void __attribute__((constructor))
16114 +set_fast_math (void)
16115 +{
16116 + unsigned int fcr;
16117 +
16118 + /* fastmath: flush to zero, round to nearest, ieee exceptions disabled */
16119 + fcr = _FPU_FLUSH_TZ | _FPU_RC_NEAREST;
16120 +
16121 + _FPU_SETCW(fcr);
16122 +}
16123 +
16124 +#endif /* __mips_hard_float */
16125 diff -Nur a/gcc/config/mips/cs-sgxx-linux.h b/gcc/config/mips/cs-sgxx-linux.h
16126 --- a/gcc/config/mips/cs-sgxx-linux.h 1970-01-01 01:00:00.000000000 +0100
16127 +++ b/gcc/config/mips/cs-sgxx-linux.h 2010-01-25 09:50:29.025687257 +0100
16128 @@ -0,0 +1,44 @@
16129 +/* MIPS SourceryG++ GNU/Linux Configuration.
16130 + Copyright (C) 2008
16131 + Free Software Foundation, Inc.
16132 +
16133 +This file is part of GCC.
16134 +
16135 +GCC is free software; you can redistribute it and/or modify
16136 +it under the terms of the GNU General Public License as published by
16137 +the Free Software Foundation; either version 3, or (at your option)
16138 +any later version.
16139 +
16140 +GCC is distributed in the hope that it will be useful,
16141 +but WITHOUT ANY WARRANTY; without even the implied warranty of
16142 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16143 +GNU General Public License for more details.
16144 +
16145 +You should have received a copy of the GNU General Public License
16146 +along with GCC; see the file COPYING3. If not see
16147 +<http://www.gnu.org/licenses/>. */
16148 +
16149 +/* We do not need to provide an explicit big-endian multilib. */
16150 +#undef MULTILIB_DEFAULTS
16151 +#define MULTILIB_DEFAULTS \
16152 + { "EB" }
16153 +
16154 +/* The various C libraries each have their own subdirectory. */
16155 +#undef SYSROOT_SUFFIX_SPEC
16156 +#define SYSROOT_SUFFIX_SPEC \
16157 +"%{muclibc:/uclibc}\
16158 +%{mips2|mips3|mips4|march=mips2|march=mips3|march=mips4|march=r6000|\
16159 +march=r4000|march=vr4100|march=vr4111|march=vr4120|march=vr4130|\
16160 +march=vr4300|march=r4400|march=r4600|march=orion|march=r4650|\
16161 +march=loongson2e|march=loongson2f|march=r8000|march=r10000|\
16162 +march=r12000|march=r14000|march=r16000|\
16163 +march=vr5000|march=vr5400|march=vr5500|march=rm7000|\
16164 +march=rm9000:/mips2;\
16165 +mips32|march=mips32|march=4kc|march=4km|march=4kp|march=4ksc|\
16166 +mips64|march=mips64|march=5kc|march=5kf|march=20kc|march=sb1|march=sb1a|\
16167 +march=sr71000|march=xlr:/mips32}\
16168 +%{msoft-float:/soft-float}%{mel|EL:/el}"
16169 +
16170 +#undef SYSROOT_HEADERS_SUFFIX_SPEC
16171 +#define SYSROOT_HEADERS_SUFFIX_SPEC \
16172 + "%{muclibc:/uclibc}"
16173 diff -Nur a/gcc/config/mips/cs-sgxxlite-linux.h b/gcc/config/mips/cs-sgxxlite-linux.h
16174 --- a/gcc/config/mips/cs-sgxxlite-linux.h 1970-01-01 01:00:00.000000000 +0100
16175 +++ b/gcc/config/mips/cs-sgxxlite-linux.h 2010-01-25 09:50:29.025687257 +0100
16176 @@ -0,0 +1,33 @@
16177 +/* MIPS SourceryG++ GNU/Linux Configuration.
16178 + Copyright (C) 2008
16179 + Free Software Foundation, Inc.
16180 +
16181 +This file is part of GCC.
16182 +
16183 +GCC is free software; you can redistribute it and/or modify
16184 +it under the terms of the GNU General Public License as published by
16185 +the Free Software Foundation; either version 3, or (at your option)
16186 +any later version.
16187 +
16188 +GCC is distributed in the hope that it will be useful,
16189 +but WITHOUT ANY WARRANTY; without even the implied warranty of
16190 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16191 +GNU General Public License for more details.
16192 +
16193 +You should have received a copy of the GNU General Public License
16194 +along with GCC; see the file COPYING3. If not see
16195 +<http://www.gnu.org/licenses/>. */
16196 +
16197 +/* We do not need to provide an explicit big-endian multilib. */
16198 +#undef MULTILIB_DEFAULTS
16199 +#define MULTILIB_DEFAULTS \
16200 + { "EB" }
16201 +
16202 +/* The various C libraries each have their own subdirectory. */
16203 +#undef SYSROOT_SUFFIX_SPEC
16204 +#define SYSROOT_SUFFIX_SPEC \
16205 +"%{muclibc:/uclibc}%{msoft-float:/soft-float}%{mel|EL:/el}"
16206 +
16207 +#undef SYSROOT_HEADERS_SUFFIX_SPEC
16208 +#define SYSROOT_HEADERS_SUFFIX_SPEC \
16209 + "%{muclibc:/uclibc}"
16210 diff -Nur a/gcc/config/mips/linux64.h b/gcc/config/mips/linux64.h
16211 --- a/gcc/config/mips/linux64.h 2009-02-20 16:20:38.000000000 +0100
16212 +++ b/gcc/config/mips/linux64.h 2010-01-25 09:50:29.025687257 +0100
16213 @@ -69,3 +69,9 @@
16214 ieee_quad_format is the default, but let's put this here to make
16215 sure nobody thinks we just forgot to set it to something else. */
16216 #define MIPS_TFMODE_FORMAT mips_quad_format
16217 +
16218 +/* Similar to standard Linux, but adding -ffast-math support. */
16219 +#undef ENDFILE_SPEC
16220 +#define ENDFILE_SPEC \
16221 + "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
16222 + %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
16223 diff -Nur a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
16224 --- a/gcc/config/mips/linux.h 2009-02-20 16:20:38.000000000 +0100
16225 +++ b/gcc/config/mips/linux.h 2010-01-25 09:50:29.025687257 +0100
16226 @@ -147,3 +147,17 @@
16227 #define DRIVER_SELF_SPECS \
16228 BASE_DRIVER_SELF_SPECS, \
16229 LINUX_DRIVER_SELF_SPECS
16230 +
16231 +/* Similar to standard Linux, but adding -ffast-math support. */
16232 +#undef ENDFILE_SPEC
16233 +#define ENDFILE_SPEC \
16234 + "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
16235 + %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
16236 +
16237 +#undef SUBTARGET_OVERRIDE_OPTIONS
16238 +#define SUBTARGET_OVERRIDE_OPTIONS \
16239 +do { \
16240 + /* __thread_support is not supported by uClibc. */ \
16241 + if (linux_uclibc) \
16242 + targetm.have_tls = 0; \
16243 +} while (0)
16244 diff -Nur a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
16245 --- a/gcc/config/mips/mips.c 2009-03-02 21:26:22.000000000 +0100
16246 +++ b/gcc/config/mips/mips.c 2010-01-25 09:50:29.025687257 +0100
16247 @@ -261,18 +261,29 @@
16248 /* Likewise FPR X. */
16249 unsigned int fmask;
16250
16251 - /* The number of GPRs and FPRs saved. */
16252 + /* Likewise doubleword accumulator X ($acX). */
16253 + unsigned int acc_mask;
16254 +
16255 + /* The number of GPRs, FPRs, doubleword accumulators and COP0
16256 + registers saved. */
16257 unsigned int num_gp;
16258 unsigned int num_fp;
16259 + unsigned int num_acc;
16260 + unsigned int num_cop0_regs;
16261
16262 - /* The offset of the topmost GPR and FPR save slots from the top of
16263 - the frame, or zero if no such slots are needed. */
16264 + /* The offset of the topmost GPR, FPR, accumulator and COP0-register
16265 + save slots from the top of the frame, or zero if no such slots are
16266 + needed. */
16267 HOST_WIDE_INT gp_save_offset;
16268 HOST_WIDE_INT fp_save_offset;
16269 + HOST_WIDE_INT acc_save_offset;
16270 + HOST_WIDE_INT cop0_save_offset;
16271
16272 /* Likewise, but giving offsets from the bottom of the frame. */
16273 HOST_WIDE_INT gp_sp_offset;
16274 HOST_WIDE_INT fp_sp_offset;
16275 + HOST_WIDE_INT acc_sp_offset;
16276 + HOST_WIDE_INT cop0_sp_offset;
16277
16278 /* The offset of arg_pointer_rtx from frame_pointer_rtx. */
16279 HOST_WIDE_INT arg_pointer_offset;
16280 @@ -310,6 +321,20 @@
16281 /* True if we have emitted an instruction to initialize
16282 mips16_gp_pseudo_rtx. */
16283 bool initialized_mips16_gp_pseudo_p;
16284 +
16285 + /* True if this is an interrupt handler. */
16286 + bool interrupt_handler_p;
16287 +
16288 + /* True if this is an interrupt handler that uses shadow registers. */
16289 + bool use_shadow_register_set_p;
16290 +
16291 + /* True if this is an interrupt handler that should keep interrupts
16292 + masked. */
16293 + bool keep_interrupts_masked_p;
16294 +
16295 + /* True if this is an interrupt handler that should use DERET
16296 + instead of ERET. */
16297 + bool use_debug_exception_return_p;
16298 };
16299
16300 /* Information about a single argument. */
16301 @@ -542,9 +567,16 @@
16302 ALL_REGS, ALL_REGS, ALL_REGS, ALL_REGS
16303 };
16304
16305 +#ifdef CVMX_SHARED_BSS_FLAGS
16306 +static tree octeon_handle_cvmx_shared_attribute (tree *, tree, tree, int, bool *);
16307 +#endif
16308 +
16309 /* The value of TARGET_ATTRIBUTE_TABLE. */
16310 const struct attribute_spec mips_attribute_table[] = {
16311 /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
16312 +#ifdef CVMX_SHARED_BSS_FLAGS
16313 + { "cvmx_shared", 0, 0, true, false, false, octeon_handle_cvmx_shared_attribute },
16314 +#endif
16315 { "long_call", 0, 0, false, true, true, NULL },
16316 { "far", 0, 0, false, true, true, NULL },
16317 { "near", 0, 0, false, true, true, NULL },
16318 @@ -554,6 +586,11 @@
16319 code generation but don't carry other semantics. */
16320 { "mips16", 0, 0, true, false, false, NULL },
16321 { "nomips16", 0, 0, true, false, false, NULL },
16322 + /* Allow functions to be specified as interrupt handlers */
16323 + { "interrupt", 0, 0, false, true, true, NULL },
16324 + { "use_shadow_register_set", 0, 0, false, true, true, NULL },
16325 + { "keep_interrupts_masked", 0, 0, false, true, true, NULL },
16326 + { "use_debug_exception_return", 0, 0, false, true, true, NULL },
16327 { NULL, 0, 0, false, false, false, NULL }
16328 };
16329 \f
16330 @@ -659,6 +696,11 @@
16331 { "74kx", PROCESSOR_74KF1_1, 33, 0 },
16332 { "74kf3_2", PROCESSOR_74KF3_2, 33, 0 },
16333
16334 + { "1004kc", PROCESSOR_24KC, 33, 0 }, /* 1004K with MT/DSP. */
16335 + { "1004kf2_1", PROCESSOR_24KF2_1, 33, 0 },
16336 + { "1004kf", PROCESSOR_24KF2_1, 33, 0 },
16337 + { "1004kf1_1", PROCESSOR_24KF1_1, 33, 0 },
16338 +
16339 /* MIPS64 processors. */
16340 { "5kc", PROCESSOR_5KC, 64, 0 },
16341 { "5kf", PROCESSOR_5KF, 64, 0 },
16342 @@ -1064,13 +1106,7 @@
16343 DEFAULT_COSTS
16344 },
16345 { /* XLR */
16346 - /* Need to replace first five with the costs of calling the appropriate
16347 - libgcc routine. */
16348 - COSTS_N_INSNS (256), /* fp_add */
16349 - COSTS_N_INSNS (256), /* fp_mult_sf */
16350 - COSTS_N_INSNS (256), /* fp_mult_df */
16351 - COSTS_N_INSNS (256), /* fp_div_sf */
16352 - COSTS_N_INSNS (256), /* fp_div_df */
16353 + SOFT_FP_COSTS,
16354 COSTS_N_INSNS (8), /* int_mult_si */
16355 COSTS_N_INSNS (8), /* int_mult_di */
16356 COSTS_N_INSNS (72), /* int_div_si */
16357 @@ -1172,6 +1208,42 @@
16358 return lookup_attribute ("nomips16", DECL_ATTRIBUTES (decl)) != NULL;
16359 }
16360
16361 +/* Check if the interrupt attribute is set for a function. */
16362 +
16363 +static bool
16364 +mips_interrupt_type_p (tree type)
16365 +{
16366 + return lookup_attribute ("interrupt", TYPE_ATTRIBUTES (type)) != NULL;
16367 +}
16368 +
16369 +/* Check if the attribute to use shadow register set is set for a function. */
16370 +
16371 +static bool
16372 +mips_use_shadow_register_set_p (tree type)
16373 +{
16374 + return lookup_attribute ("use_shadow_register_set",
16375 + TYPE_ATTRIBUTES (type)) != NULL;
16376 +}
16377 +
16378 +/* Check if the attribute to keep interrupts masked is set for a function. */
16379 +
16380 +static bool
16381 +mips_keep_interrupts_masked_p (tree type)
16382 +{
16383 + return lookup_attribute ("keep_interrupts_masked",
16384 + TYPE_ATTRIBUTES (type)) != NULL;
16385 +}
16386 +
16387 +/* Check if the attribute to use debug exception return is set for
16388 + a function. */
16389 +
16390 +static bool
16391 +mips_use_debug_exception_return_p (tree type)
16392 +{
16393 + return lookup_attribute ("use_debug_exception_return",
16394 + TYPE_ATTRIBUTES (type)) != NULL;
16395 +}
16396 +
16397 /* Return true if function DECL is a MIPS16 function. Return the ambient
16398 setting if DECL is null. */
16399
16400 @@ -2795,7 +2867,7 @@
16401 mips_legitimize_address (rtx *xloc, enum machine_mode mode)
16402 {
16403 rtx base, addr;
16404 - HOST_WIDE_INT offset;
16405 + HOST_WIDE_INT intval, high, offset;
16406
16407 if (mips_tls_symbol_p (*xloc))
16408 {
16409 @@ -2820,6 +2892,32 @@
16410 *xloc = mips_force_address (addr, mode);
16411 return true;
16412 }
16413 +
16414 + /* Handle references to constant addresses by loading the high part
16415 + into a register and using an offset for the low part. */
16416 + if (GET_CODE (base) == CONST_INT)
16417 + {
16418 + intval = INTVAL (base);
16419 + high = trunc_int_for_mode (CONST_HIGH_PART (intval), Pmode);
16420 + offset = CONST_LOW_PART (intval);
16421 + /* Ignore cases in which a positive address would be accessed by a
16422 + negative offset from a negative address. The required wraparound
16423 + does not occur for 32-bit addresses on 64-bit targets, and it is
16424 + very unlikely that such an access would occur in real code anyway.
16425 +
16426 + If the low offset is not legitimate for MODE, prefer to load
16427 + the constant normally, instead of using mips_force_address on
16428 + the legitimized address. The latter option would cause us to
16429 + use (D)ADDIU unconditionally, but LUI/ORI is more efficient
16430 + than LUI/ADDIU on some targets. */
16431 + if ((intval < 0 || high > 0)
16432 + && mips_valid_offset_p (GEN_INT (offset), mode))
16433 + {
16434 + base = mips_force_temporary (NULL, GEN_INT (high));
16435 + *xloc = plus_constant (base, offset);
16436 + return true;
16437 + }
16438 + }
16439 return false;
16440 }
16441
16442 @@ -6188,6 +6286,11 @@
16443 if (!TARGET_SIBCALLS)
16444 return false;
16445
16446 + /* Interrupt handlers need special epilogue code and therefore can't
16447 + use sibcalls. */
16448 + if (mips_interrupt_type_p (TREE_TYPE (current_function_decl)))
16449 + return false;
16450 +
16451 /* We can't do a sibcall if the called function is a MIPS16 function
16452 because there is no direct "jx" instruction equivalent to "jalx" to
16453 switch the ISA mode. We only care about cases where the sibling
16454 @@ -6608,6 +6711,15 @@
16455 if (!mips_get_unaligned_mem (&src, width, bitpos, &left, &right))
16456 return false;
16457
16458 + if (ISA_HAS_UL_US)
16459 + {
16460 + if (GET_MODE (dest) == DImode)
16461 + emit_insn (gen_mov_uld (dest, src, left));
16462 + else
16463 + emit_insn (gen_mov_ulw (dest, src, left));
16464 + return true;
16465 + }
16466 +
16467 temp = gen_reg_rtx (GET_MODE (dest));
16468 if (GET_MODE (dest) == DImode)
16469 {
16470 @@ -6642,6 +6754,16 @@
16471
16472 mode = mode_for_size (width, MODE_INT, 0);
16473 src = gen_lowpart (mode, src);
16474 +
16475 + if (ISA_HAS_UL_US)
16476 + {
16477 + if (GET_MODE (src) == DImode)
16478 + emit_insn (gen_mov_usd (dest, src, left));
16479 + else
16480 + emit_insn (gen_mov_usw (dest, src, left));
16481 + return true;
16482 + }
16483 +
16484 if (mode == DImode)
16485 {
16486 emit_insn (gen_mov_sdl (dest, src, left));
16487 @@ -7229,7 +7351,11 @@
16488 || (letter == 'L' && TARGET_BIG_ENDIAN)
16489 || letter == 'D')
16490 regno++;
16491 - fprintf (file, "%s", reg_names[regno]);
16492 + /* We need to print $0 .. $31 for COP0 registers. */
16493 + if (COP0_REG_P (regno))
16494 + fprintf (file, "$%s", &reg_names[regno][4]);
16495 + else
16496 + fprintf (file, "%s", reg_names[regno]);
16497 }
16498 break;
16499
16500 @@ -7369,6 +7495,12 @@
16501 if (TARGET_ABICALLS || TARGET_VXWORKS_RTP)
16502 return false;
16503
16504 +#ifdef CVMX_SHARED_BSS_FLAGS
16505 + if (TARGET_OCTEON && TREE_CODE (decl) == VAR_DECL
16506 + && lookup_attribute ("cvmx_shared", DECL_ATTRIBUTES (decl)))
16507 + return false;
16508 +#endif
16509 +
16510 if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl) != 0)
16511 {
16512 const char *name;
16513 @@ -7595,6 +7727,37 @@
16514 return NULL_RTX;
16515 }
16516
16517 +/* DSP ALU can bypass data with no delays for the following pairs. */
16518 +enum insn_code dspalu_bypass_table[][2] =
16519 +{
16520 + {CODE_FOR_mips_addsc, CODE_FOR_mips_addwc},
16521 + {CODE_FOR_mips_cmpu_eq_qb, CODE_FOR_mips_pick_qb},
16522 + {CODE_FOR_mips_cmpu_lt_qb, CODE_FOR_mips_pick_qb},
16523 + {CODE_FOR_mips_cmpu_le_qb, CODE_FOR_mips_pick_qb},
16524 + {CODE_FOR_mips_cmp_eq_ph, CODE_FOR_mips_pick_ph},
16525 + {CODE_FOR_mips_cmp_lt_ph, CODE_FOR_mips_pick_ph},
16526 + {CODE_FOR_mips_cmp_le_ph, CODE_FOR_mips_pick_ph},
16527 + {CODE_FOR_mips_wrdsp, CODE_FOR_mips_insv}
16528 +};
16529 +
16530 +int
16531 +mips_dspalu_bypass_p (rtx out_insn, rtx in_insn)
16532 +{
16533 + int i;
16534 + int num_bypass = (sizeof (dspalu_bypass_table)
16535 + / (2 * sizeof (enum insn_code)));
16536 + enum insn_code out_icode = INSN_CODE (out_insn);
16537 + enum insn_code in_icode = INSN_CODE (in_insn);
16538 +
16539 + for (i = 0; i < num_bypass; i++)
16540 + {
16541 + if (out_icode == dspalu_bypass_table[i][0]
16542 + && in_icode == dspalu_bypass_table[i][1])
16543 + return true;
16544 + }
16545 +
16546 + return false;
16547 +}
16548 /* Implement ASM_OUTPUT_ASCII. */
16549
16550 void
16551 @@ -7819,11 +7982,19 @@
16552 "\t.previous\n", TARGET_LONG64 ? 64 : 32);
16553
16554 #ifdef HAVE_AS_GNU_ATTRIBUTE
16555 +#ifdef TARGET_MIPS_SDEMTK
16556 + fprintf (asm_out_file, "\t.gnu_attribute 4, %d\n",
16557 + (!TARGET_NO_FLOAT
16558 + ? (TARGET_HARD_FLOAT
16559 + ? (TARGET_DOUBLE_FLOAT
16560 + ? ((!TARGET_64BIT && TARGET_FLOAT64) ? 4 : 1) : 2) : 3) : 0));
16561 +#else
16562 fprintf (asm_out_file, "\t.gnu_attribute 4, %d\n",
16563 (TARGET_HARD_FLOAT_ABI
16564 ? (TARGET_DOUBLE_FLOAT
16565 ? ((!TARGET_64BIT && TARGET_FLOAT64) ? 4 : 1) : 2) : 3));
16566 #endif
16567 +#endif
16568 }
16569
16570 /* If TARGET_ABICALLS, tell GAS to generate -KPIC code. */
16571 @@ -8436,12 +8607,53 @@
16572 return GLOBAL_POINTER_REGNUM;
16573 }
16574
16575 +/* Return true if REGNO is a register that is ordinarily call-clobbered
16576 + but must nevertheless be preserved by an interrupt handler. */
16577 +
16578 +static bool
16579 +mips_interrupt_extra_call_saved_reg_p (unsigned int regno)
16580 +{
16581 + if (MD_REG_P (regno))
16582 + return true;
16583 +
16584 + if (TARGET_DSP && DSP_ACC_REG_P (regno))
16585 + return true;
16586 +
16587 + if (GP_REG_P (regno) && !cfun->machine->use_shadow_register_set_p)
16588 + {
16589 + /* $0 is hard-wired. */
16590 + if (regno == GP_REG_FIRST)
16591 + return false;
16592 +
16593 + /* The interrupt handler can treat kernel registers as
16594 + scratch registers. */
16595 + if (KERNEL_REG_P (regno))
16596 + return false;
16597 +
16598 + /* The function will return the stack pointer to its original value
16599 + anyway. */
16600 + if (regno == STACK_POINTER_REGNUM)
16601 + return false;
16602 +
16603 + /* Otherwise, return true for registers that aren't ordinarily
16604 + call-clobbered. */
16605 + return call_really_used_regs[regno];
16606 + }
16607 +
16608 + return false;
16609 +}
16610 +
16611 /* Return true if the current function should treat register REGNO
16612 as call-saved. */
16613
16614 static bool
16615 mips_cfun_call_saved_reg_p (unsigned int regno)
16616 {
16617 + /* Interrupt handlers need to save extra registers. */
16618 + if (cfun->machine->interrupt_handler_p
16619 + && mips_interrupt_extra_call_saved_reg_p (regno))
16620 + return true;
16621 +
16622 /* call_insns preserve $28 unless they explicitly say otherwise,
16623 so call_really_used_regs[] treats $28 as call-saved. However,
16624 we want the ABI property rather than the default call_insn
16625 @@ -8490,6 +8702,13 @@
16626 if (regno == GP_REG_FIRST + 31 && mips16_cfun_returns_in_fpr_p ())
16627 return true;
16628
16629 + /* If REGNO is ordinarily call-clobbered, we must assume that any
16630 + called function could modify it. */
16631 + if (cfun->machine->interrupt_handler_p
16632 + && !current_function_is_leaf
16633 + && mips_interrupt_extra_call_saved_reg_p (regno))
16634 + return true;
16635 +
16636 return false;
16637 }
16638
16639 @@ -8545,6 +8764,14 @@
16640 C | callee-allocated save area |
16641 | for register varargs |
16642 | |
16643 + +-------------------------------+ <-- frame_pointer_rtx
16644 + | | + cop0_sp_offset
16645 + | COP0 reg save area | + UNITS_PER_WORD
16646 + | |
16647 + +-------------------------------+ <-- frame_pointer_rtx + acc_sp_offset
16648 + | | + UNITS_PER_WORD
16649 + | accumulator save area |
16650 + | |
16651 +-------------------------------+ <-- frame_pointer_rtx + fp_sp_offset
16652 | | + UNITS_PER_HWFPVALUE
16653 | FPR save area |
16654 @@ -8588,6 +8815,28 @@
16655 HOST_WIDE_INT offset, size;
16656 unsigned int regno, i;
16657
16658 + /* Set this function's interrupt properties. */
16659 + if (mips_interrupt_type_p (TREE_TYPE (current_function_decl)))
16660 + {
16661 + if (!ISA_MIPS32R2)
16662 + error ("the %<interrupt%> attribute requires a MIPS32r2 processor");
16663 + else if (TARGET_HARD_FLOAT)
16664 + error ("the %<interrupt%> attribute requires %<-msoft-float%>");
16665 + else if (TARGET_MIPS16)
16666 + error ("interrupt handlers cannot be MIPS16 functions");
16667 + else
16668 + {
16669 + cfun->machine->interrupt_handler_p = true;
16670 + cfun->machine->use_shadow_register_set_p =
16671 + mips_use_shadow_register_set_p (TREE_TYPE (current_function_decl));
16672 + cfun->machine->keep_interrupts_masked_p =
16673 + mips_keep_interrupts_masked_p (TREE_TYPE (current_function_decl));
16674 + cfun->machine->use_debug_exception_return_p =
16675 + mips_use_debug_exception_return_p (TREE_TYPE
16676 + (current_function_decl));
16677 + }
16678 + }
16679 +
16680 frame = &cfun->machine->frame;
16681 memset (frame, 0, sizeof (*frame));
16682 size = get_frame_size ();
16683 @@ -8657,7 +8906,7 @@
16684 }
16685
16686 /* Find out which FPRs we need to save. This loop must iterate over
16687 - the same space as its companion in mips_for_each_saved_reg. */
16688 + the same space as its companion in mips_for_each_saved_gpr_and_fpr. */
16689 if (TARGET_HARD_FLOAT)
16690 for (regno = FP_REG_FIRST; regno <= FP_REG_LAST; regno += MAX_FPRS_PER_FMT)
16691 if (mips_save_reg_p (regno))
16692 @@ -8673,6 +8922,47 @@
16693 frame->fp_sp_offset = offset - UNITS_PER_HWFPVALUE;
16694 }
16695
16696 + /* Add in space for the interrupt context information. */
16697 + if (cfun->machine->interrupt_handler_p)
16698 + {
16699 + /* Check HI/LO. */
16700 + if (mips_save_reg_p (LO_REGNUM) || mips_save_reg_p (HI_REGNUM))
16701 + {
16702 + frame->num_acc++;
16703 + frame->acc_mask |= (1 << 0);
16704 + }
16705 +
16706 + /* Check accumulators 1, 2, 3. */
16707 + for (i = DSP_ACC_REG_FIRST; i <= DSP_ACC_REG_LAST; i += 2)
16708 + if (mips_save_reg_p (i) || mips_save_reg_p (i + 1))
16709 + {
16710 + frame->num_acc++;
16711 + frame->acc_mask |= 1 << (((i - DSP_ACC_REG_FIRST) / 2) + 1);
16712 + }
16713 +
16714 + /* All interrupt context functions need space to preserve STATUS. */
16715 + frame->num_cop0_regs++;
16716 +
16717 + /* If we don't keep interrupts masked, we need to save EPC. */
16718 + if (!cfun->machine->keep_interrupts_masked_p)
16719 + frame->num_cop0_regs++;
16720 + }
16721 +
16722 + /* Move above the accumulator save area. */
16723 + if (frame->num_acc > 0)
16724 + {
16725 + /* Each accumulator needs 2 words. */
16726 + offset += frame->num_acc * 2 * UNITS_PER_WORD;
16727 + frame->acc_sp_offset = offset - UNITS_PER_WORD;
16728 + }
16729 +
16730 + /* Move above the COP0 register save area. */
16731 + if (frame->num_cop0_regs > 0)
16732 + {
16733 + offset += frame->num_cop0_regs * UNITS_PER_WORD;
16734 + frame->cop0_sp_offset = offset - UNITS_PER_WORD;
16735 + }
16736 +
16737 /* Move above the callee-allocated varargs save area. */
16738 offset += MIPS_STACK_ALIGN (cfun->machine->varargs_size);
16739 frame->arg_pointer_offset = offset;
16740 @@ -8686,6 +8976,10 @@
16741 frame->gp_save_offset = frame->gp_sp_offset - offset;
16742 if (frame->fp_sp_offset > 0)
16743 frame->fp_save_offset = frame->fp_sp_offset - offset;
16744 + if (frame->acc_sp_offset > 0)
16745 + frame->acc_save_offset = frame->acc_sp_offset - offset;
16746 + if (frame->num_cop0_regs > 0)
16747 + frame->cop0_save_offset = frame->cop0_sp_offset - offset;
16748
16749 /* MIPS16 code offsets the frame pointer by the size of the outgoing
16750 arguments. This tends to increase the chances of using unextended
16751 @@ -8882,12 +9176,41 @@
16752 fn (gen_rtx_REG (mode, regno), mem);
16753 }
16754
16755 +/* Call FN for each accumlator that is saved by the current function.
16756 + SP_OFFSET is the offset of the current stack pointer from the start
16757 + of the frame. */
16758 +
16759 +static void
16760 +mips_for_each_saved_acc (HOST_WIDE_INT sp_offset, mips_save_restore_fn fn)
16761 +{
16762 + HOST_WIDE_INT offset;
16763 + int regno;
16764 +
16765 + offset = cfun->machine->frame.acc_sp_offset - sp_offset;
16766 + if (BITSET_P (cfun->machine->frame.acc_mask, 0))
16767 + {
16768 + mips_save_restore_reg (word_mode, LO_REGNUM, offset, fn);
16769 + offset -= UNITS_PER_WORD;
16770 + mips_save_restore_reg (word_mode, HI_REGNUM, offset, fn);
16771 + offset -= UNITS_PER_WORD;
16772 + }
16773 +
16774 + for (regno = DSP_ACC_REG_FIRST; regno <= DSP_ACC_REG_LAST; regno++)
16775 + if (BITSET_P (cfun->machine->frame.acc_mask,
16776 + ((regno - DSP_ACC_REG_FIRST) / 2) + 1))
16777 + {
16778 + mips_save_restore_reg (word_mode, regno, offset, fn);
16779 + offset -= UNITS_PER_WORD;
16780 + }
16781 +}
16782 +
16783 /* Call FN for each register that is saved by the current function.
16784 SP_OFFSET is the offset of the current stack pointer from the start
16785 of the frame. */
16786
16787 static void
16788 -mips_for_each_saved_reg (HOST_WIDE_INT sp_offset, mips_save_restore_fn fn)
16789 +mips_for_each_saved_gpr_and_fpr (HOST_WIDE_INT sp_offset,
16790 + mips_save_restore_fn fn)
16791 {
16792 enum machine_mode fpr_mode;
16793 HOST_WIDE_INT offset;
16794 @@ -9075,13 +9398,24 @@
16795 }
16796 else
16797 {
16798 - if (TARGET_MIPS16
16799 - && REGNO (reg) != GP_REG_FIRST + 31
16800 - && !M16_REG_P (REGNO (reg)))
16801 - {
16802 - /* Save a non-MIPS16 register by moving it through a temporary.
16803 - We don't need to do this for $31 since there's a special
16804 - instruction for it. */
16805 + if (REGNO (reg) == HI_REGNUM)
16806 + {
16807 + if (TARGET_64BIT)
16808 + emit_insn (gen_mfhidi_ti (MIPS_PROLOGUE_TEMP (DImode),
16809 + gen_rtx_REG (TImode, MD_REG_FIRST)));
16810 + else
16811 + emit_insn (gen_mfhisi_di (MIPS_PROLOGUE_TEMP (SImode),
16812 + gen_rtx_REG (DImode, MD_REG_FIRST)));
16813 + mips_emit_move (mem, MIPS_PROLOGUE_TEMP (GET_MODE (reg)));
16814 + }
16815 + else if ((TARGET_MIPS16
16816 + && REGNO (reg) != GP_REG_FIRST + 31
16817 + && !M16_REG_P (REGNO (reg)))
16818 + || ACC_REG_P (REGNO (reg)))
16819 + {
16820 + /* If the register has no direct store instruction, move it
16821 + through a temporary. Note that there's a special MIPS16
16822 + instruction to save $31. */
16823 mips_emit_move (MIPS_PROLOGUE_TEMP (GET_MODE (reg)), reg);
16824 mips_emit_move (mem, MIPS_PROLOGUE_TEMP (GET_MODE (reg)));
16825 }
16826 @@ -9153,6 +9487,14 @@
16827 emit_insn (gen_loadgp_blockage ());
16828 }
16829
16830 +/* A for_each_rtx callback. Stop the search if *X is a kernel register. */
16831 +
16832 +static int
16833 +mips_kernel_reg_p (rtx *x, void *data ATTRIBUTE_UNUSED)
16834 +{
16835 + return GET_CODE (*x) == REG && KERNEL_REG_P (REGNO (*x));
16836 +}
16837 +
16838 /* Expand the "prologue" pattern. */
16839
16840 void
16841 @@ -9172,7 +9514,8 @@
16842 /* Save the registers. Allocate up to MIPS_MAX_FIRST_STACK_STEP
16843 bytes beforehand; this is enough to cover the register save area
16844 without going out of range. */
16845 - if ((frame->mask | frame->fmask) != 0)
16846 + if (((frame->mask | frame->fmask | frame->acc_mask) != 0)
16847 + || frame->num_cop0_regs > 0)
16848 {
16849 HOST_WIDE_INT step1;
16850
16851 @@ -9203,12 +9546,97 @@
16852 }
16853 else
16854 {
16855 - insn = gen_add3_insn (stack_pointer_rtx,
16856 - stack_pointer_rtx,
16857 - GEN_INT (-step1));
16858 - RTX_FRAME_RELATED_P (emit_insn (insn)) = 1;
16859 - size -= step1;
16860 - mips_for_each_saved_reg (size, mips_save_reg);
16861 + if (cfun->machine->interrupt_handler_p)
16862 + {
16863 + HOST_WIDE_INT offset;
16864 + rtx mem;
16865 +
16866 + /* If this interrupt is using a shadow register set, we need to
16867 + get the stack pointer from the previous register set. */
16868 + if (cfun->machine->use_shadow_register_set_p)
16869 + emit_insn (gen_mips_rdpgpr (stack_pointer_rtx,
16870 + stack_pointer_rtx));
16871 +
16872 + if (!cfun->machine->keep_interrupts_masked_p)
16873 + {
16874 + /* Move from COP0 Cause to K0. */
16875 + emit_insn (gen_cop0_move (gen_rtx_REG (SImode, K0_REG_NUM),
16876 + gen_rtx_REG (SImode,
16877 + COP0_CAUSE_REG_NUM)));
16878 + /* Move from COP0 EPC to K1. */
16879 + emit_insn (gen_cop0_move (gen_rtx_REG (SImode, K1_REG_NUM),
16880 + gen_rtx_REG (SImode,
16881 + COP0_EPC_REG_NUM)));
16882 + }
16883 +
16884 + /* Allocate the first part of the frame. */
16885 + insn = gen_add3_insn (stack_pointer_rtx, stack_pointer_rtx,
16886 + GEN_INT (-step1));
16887 + RTX_FRAME_RELATED_P (emit_insn (insn)) = 1;
16888 + size -= step1;
16889 +
16890 + /* Start at the uppermost location for saving. */
16891 + offset = frame->cop0_sp_offset - size;
16892 + if (!cfun->machine->keep_interrupts_masked_p)
16893 + {
16894 + /* Push EPC into its stack slot. */
16895 + mem = gen_frame_mem (word_mode,
16896 + plus_constant (stack_pointer_rtx,
16897 + offset));
16898 + mips_emit_move (mem, gen_rtx_REG (word_mode, K1_REG_NUM));
16899 + offset -= UNITS_PER_WORD;
16900 + }
16901 +
16902 + /* Move from COP0 Status to K1. */
16903 + emit_insn (gen_cop0_move (gen_rtx_REG (SImode, K1_REG_NUM),
16904 + gen_rtx_REG (SImode,
16905 + COP0_STATUS_REG_NUM)));
16906 +
16907 + /* Right justify the RIPL in k0. */
16908 + if (!cfun->machine->keep_interrupts_masked_p)
16909 + emit_insn (gen_lshrsi3 (gen_rtx_REG (SImode, K0_REG_NUM),
16910 + gen_rtx_REG (SImode, K0_REG_NUM),
16911 + GEN_INT (CAUSE_IPL)));
16912 +
16913 + /* Push Status into its stack slot. */
16914 + mem = gen_frame_mem (word_mode,
16915 + plus_constant (stack_pointer_rtx, offset));
16916 + mips_emit_move (mem, gen_rtx_REG (word_mode, K1_REG_NUM));
16917 + offset -= UNITS_PER_WORD;
16918 +
16919 + /* Insert the RIPL into our copy of SR (k1) as the new IPL. */
16920 + if (!cfun->machine->keep_interrupts_masked_p)
16921 + emit_insn (gen_insvsi (gen_rtx_REG (SImode, K1_REG_NUM),
16922 + GEN_INT (6),
16923 + GEN_INT (SR_IPL),
16924 + gen_rtx_REG (SImode, K0_REG_NUM)));
16925 +
16926 + if (!cfun->machine->keep_interrupts_masked_p)
16927 + /* Enable interrupts by clearing the KSU ERL and EXL bits.
16928 + IE is already the correct value, so we don't have to do
16929 + anything explicit. */
16930 + emit_insn (gen_insvsi (gen_rtx_REG (SImode, K1_REG_NUM),
16931 + GEN_INT (4),
16932 + GEN_INT (SR_EXL),
16933 + gen_rtx_REG (SImode, GP_REG_FIRST)));
16934 + else
16935 + /* Disable interrupts by clearing the KSU, ERL, EXL,
16936 + and IE bits. */
16937 + emit_insn (gen_insvsi (gen_rtx_REG (SImode, K1_REG_NUM),
16938 + GEN_INT (5),
16939 + GEN_INT (SR_IE),
16940 + gen_rtx_REG (SImode, GP_REG_FIRST)));
16941 + }
16942 + else
16943 + {
16944 + insn = gen_add3_insn (stack_pointer_rtx,
16945 + stack_pointer_rtx,
16946 + GEN_INT (-step1));
16947 + RTX_FRAME_RELATED_P (emit_insn (insn)) = 1;
16948 + size -= step1;
16949 + }
16950 + mips_for_each_saved_acc (size, mips_save_reg);
16951 + mips_for_each_saved_gpr_and_fpr (size, mips_save_reg);
16952 }
16953 }
16954
16955 @@ -9293,6 +9721,20 @@
16956 pic_offset_table_rtx);
16957 }
16958
16959 + /* We need to search back to the last use of K0 or K1. */
16960 + if (cfun->machine->interrupt_handler_p)
16961 + {
16962 + for (insn = get_last_insn (); insn != NULL_RTX; insn = PREV_INSN (insn))
16963 + if (INSN_P (insn)
16964 + && for_each_rtx (&PATTERN (insn), mips_kernel_reg_p, NULL))
16965 + break;
16966 + /* Emit a move from K1 to COP0 Status after insn. */
16967 + gcc_assert (insn != NULL_RTX);
16968 + emit_insn_after (gen_cop0_move (gen_rtx_REG (SImode, COP0_STATUS_REG_NUM),
16969 + gen_rtx_REG (SImode, K1_REG_NUM)),
16970 + insn);
16971 + }
16972 +
16973 /* If we are profiling, make sure no instructions are scheduled before
16974 the call to mcount. */
16975 if (crtl->profile)
16976 @@ -9309,7 +9751,20 @@
16977 if (TARGET_MIPS16 && REGNO (reg) == GP_REG_FIRST + 31)
16978 reg = gen_rtx_REG (GET_MODE (reg), GP_REG_FIRST + 7);
16979
16980 - if (TARGET_MIPS16 && !M16_REG_P (REGNO (reg)))
16981 + if (REGNO (reg) == HI_REGNUM)
16982 + {
16983 + mips_emit_move (MIPS_EPILOGUE_TEMP (GET_MODE (reg)), mem);
16984 + if (TARGET_64BIT)
16985 + emit_insn (gen_mthisi_di (gen_rtx_REG (TImode, MD_REG_FIRST),
16986 + MIPS_EPILOGUE_TEMP (DImode),
16987 + gen_rtx_REG (DImode, LO_REGNUM)));
16988 + else
16989 + emit_insn (gen_mthisi_di (gen_rtx_REG (DImode, MD_REG_FIRST),
16990 + MIPS_EPILOGUE_TEMP (SImode),
16991 + gen_rtx_REG (SImode, LO_REGNUM)));
16992 + }
16993 + else if ((TARGET_MIPS16 && !M16_REG_P (REGNO (reg)))
16994 + || ACC_REG_P (REGNO (reg)))
16995 {
16996 /* Can't restore directly; move through a temporary. */
16997 mips_emit_move (MIPS_EPILOGUE_TEMP (GET_MODE (reg)), mem);
16998 @@ -9345,7 +9800,7 @@
16999 {
17000 const struct mips_frame_info *frame;
17001 HOST_WIDE_INT step1, step2;
17002 - rtx base, target;
17003 + rtx base, target, insn;
17004
17005 if (!sibcall_p && mips_can_use_return_insn ())
17006 {
17007 @@ -9378,7 +9833,8 @@
17008
17009 /* If we need to restore registers, deallocate as much stack as
17010 possible in the second step without going out of range. */
17011 - if ((frame->mask | frame->fmask) != 0)
17012 + if ((frame->mask | frame->fmask | frame->acc_mask) != 0
17013 + || frame->num_cop0_regs > 0)
17014 {
17015 step2 = MIN (step1, MIPS_MAX_FIRST_STACK_STEP);
17016 step1 -= step2;
17017 @@ -9440,13 +9896,53 @@
17018 else
17019 {
17020 /* Restore the registers. */
17021 - mips_for_each_saved_reg (frame->total_size - step2, mips_restore_reg);
17022 + mips_for_each_saved_acc (frame->total_size - step2, mips_restore_reg);
17023 + mips_for_each_saved_gpr_and_fpr (frame->total_size - step2,
17024 + mips_restore_reg);
17025
17026 - /* Deallocate the final bit of the frame. */
17027 - if (step2 > 0)
17028 - emit_insn (gen_add3_insn (stack_pointer_rtx,
17029 - stack_pointer_rtx,
17030 - GEN_INT (step2)));
17031 + if (cfun->machine->interrupt_handler_p)
17032 + {
17033 + HOST_WIDE_INT offset;
17034 + rtx mem;
17035 +
17036 + offset = frame->cop0_sp_offset - (frame->total_size - step2);
17037 + if (!cfun->machine->keep_interrupts_masked_p)
17038 + {
17039 + /* Restore the original EPC. */
17040 + mem = gen_frame_mem (word_mode,
17041 + plus_constant (stack_pointer_rtx, offset));
17042 + mips_emit_move (gen_rtx_REG (word_mode, K0_REG_NUM), mem);
17043 + offset -= UNITS_PER_WORD;
17044 +
17045 + /* Move to COP0 EPC. */
17046 + emit_insn (gen_cop0_move (gen_rtx_REG (SImode, COP0_EPC_REG_NUM),
17047 + gen_rtx_REG (SImode, K0_REG_NUM)));
17048 + }
17049 +
17050 + /* Restore the original Status. */
17051 + mem = gen_frame_mem (word_mode,
17052 + plus_constant (stack_pointer_rtx, offset));
17053 + mips_emit_move (gen_rtx_REG (word_mode, K0_REG_NUM), mem);
17054 + offset -= UNITS_PER_WORD;
17055 +
17056 + /* If we don't use shoadow register set, we need to update SP. */
17057 + if (!cfun->machine->use_shadow_register_set_p && step2 > 0)
17058 + emit_insn (gen_add3_insn (stack_pointer_rtx,
17059 + stack_pointer_rtx,
17060 + GEN_INT (step2)));
17061 +
17062 + /* Move to COP0 Status. */
17063 + emit_insn (gen_cop0_move (gen_rtx_REG (SImode, COP0_STATUS_REG_NUM),
17064 + gen_rtx_REG (SImode, K0_REG_NUM)));
17065 + }
17066 + else
17067 + {
17068 + /* Deallocate the final bit of the frame. */
17069 + if (step2 > 0)
17070 + emit_insn (gen_add3_insn (stack_pointer_rtx,
17071 + stack_pointer_rtx,
17072 + GEN_INT (step2)));
17073 + }
17074 }
17075
17076 /* Add in the __builtin_eh_return stack adjustment. We need to
17077 @@ -9469,18 +9965,44 @@
17078
17079 if (!sibcall_p)
17080 {
17081 - unsigned int regno;
17082 -
17083 - /* When generating MIPS16 code, the normal mips_for_each_saved_reg
17084 - path will restore the return address into $7 rather than $31. */
17085 - if (TARGET_MIPS16
17086 - && !GENERATE_MIPS16E_SAVE_RESTORE
17087 - && BITSET_P (frame->mask, 31))
17088 - regno = GP_REG_FIRST + 7;
17089 - else
17090 - regno = GP_REG_FIRST + 31;
17091 mips_expand_before_return ();
17092 - emit_jump_insn (gen_return_internal (gen_rtx_REG (Pmode, regno)));
17093 + if (cfun->machine->interrupt_handler_p)
17094 + {
17095 + /* Interrupt handlers generate eret or deret. */
17096 + if (cfun->machine->use_debug_exception_return_p)
17097 + emit_jump_insn (gen_mips_deret ());
17098 + else
17099 + emit_jump_insn (gen_mips_eret ());
17100 + }
17101 + else
17102 + {
17103 + unsigned int regno;
17104 +
17105 + /* When generating MIPS16 code, the normal
17106 + mips_for_each_saved_gpr_and_fpr path will restore the return
17107 + address into $7 rather than $31. */
17108 + if (TARGET_MIPS16
17109 + && !GENERATE_MIPS16E_SAVE_RESTORE
17110 + && BITSET_P (frame->mask, 31))
17111 + regno = GP_REG_FIRST + 7;
17112 + else
17113 + regno = GP_REG_FIRST + 31;
17114 + emit_jump_insn (gen_return_internal (gen_rtx_REG (Pmode, regno)));
17115 + }
17116 + }
17117 +
17118 + /* Search from the beginning to the first use of K0 or K1. */
17119 + if (cfun->machine->interrupt_handler_p
17120 + && !cfun->machine->keep_interrupts_masked_p)
17121 + {
17122 + for (insn = get_insns (); insn != NULL_RTX; insn = NEXT_INSN (insn))
17123 + if (INSN_P (insn)
17124 + && for_each_rtx (&PATTERN(insn), mips_kernel_reg_p, NULL))
17125 + break;
17126 + gcc_assert (insn != NULL_RTX);
17127 + /* Insert disable interrupts before the first use of K0 or K1. */
17128 + emit_insn_before (gen_mips_di (), insn);
17129 + emit_insn_before (gen_mips_ehb (), insn);
17130 }
17131 }
17132 \f
17133 @@ -9491,6 +10013,10 @@
17134 bool
17135 mips_can_use_return_insn (void)
17136 {
17137 + /* Interrupt handlers need to go through the epilogue. */
17138 + if (cfun->machine->interrupt_handler_p)
17139 + return false;
17140 +
17141 if (!reload_completed)
17142 return false;
17143
17144 @@ -10422,10 +10948,15 @@
17145 s = "bnez\t%2,1f\n\tbreak\t7\n1:";
17146 }
17147 else if (GENERATE_DIVIDE_TRAPS)
17148 - {
17149 - output_asm_insn (s, operands);
17150 - s = "teq\t%2,%.,7";
17151 - }
17152 + {
17153 + if (TUNE_74K)
17154 + output_asm_insn ("teq\t%2,%.,7", operands);
17155 + else
17156 + {
17157 + output_asm_insn (s, operands);
17158 + s = "teq\t%2,%.,7";
17159 + }
17160 + }
17161 else
17162 {
17163 output_asm_insn ("%(bne\t%2,%.,1f", operands);
17164 @@ -10737,7 +11268,17 @@
17165 ready[pos2] = temp;
17166 }
17167 }
17168 -\f
17169 +
17170 +int
17171 +mips_mult_madd_chain_bypass_p (rtx out_insn ATTRIBUTE_UNUSED,
17172 + rtx in_insn ATTRIBUTE_UNUSED)
17173 +{
17174 + if (reload_completed)
17175 + return false;
17176 + else
17177 + return true;
17178 +}
17179 +
17180 /* Used by TUNE_MACC_CHAINS to record the last scheduled instruction
17181 that may clobber hi or lo. */
17182 static rtx mips_macc_chains_last_hilo;
17183 @@ -13910,6 +14451,14 @@
17184 long as any indirect jumps use $25. */
17185 flag_pic = 1;
17186
17187 + /* For SDE, switch on ABICALLS mode if -fpic or -fpie were used, and the
17188 + user hasn't explicitly disabled these modes. */
17189 + if (TARGET_MIPS_SDE
17190 + && (flag_pic || flag_pie) && !TARGET_ABICALLS
17191 + && !((target_flags_explicit & MASK_ABICALLS))
17192 + && mips_abi != ABI_EABI)
17193 + target_flags |= MASK_ABICALLS;
17194 +
17195 /* -mvr4130-align is a "speed over size" optimization: it usually produces
17196 faster code, but at the expense of more nops. Enable it at -O3 and
17197 above. */
17198 @@ -13984,26 +14533,46 @@
17199 if (TARGET_DSPR2)
17200 target_flags |= MASK_DSP;
17201
17202 - /* .eh_frame addresses should be the same width as a C pointer.
17203 - Most MIPS ABIs support only one pointer size, so the assembler
17204 - will usually know exactly how big an .eh_frame address is.
17205 -
17206 - Unfortunately, this is not true of the 64-bit EABI. The ABI was
17207 - originally defined to use 64-bit pointers (i.e. it is LP64), and
17208 - this is still the default mode. However, we also support an n32-like
17209 - ILP32 mode, which is selected by -mlong32. The problem is that the
17210 - assembler has traditionally not had an -mlong option, so it has
17211 - traditionally not known whether we're using the ILP32 or LP64 form.
17212 -
17213 - As it happens, gas versions up to and including 2.19 use _32-bit_
17214 - addresses for EABI64 .cfi_* directives. This is wrong for the
17215 - default LP64 mode, so we can't use the directives by default.
17216 - Moreover, since gas's current behavior is at odds with gcc's
17217 - default behavior, it seems unwise to rely on future versions
17218 - of gas behaving the same way. We therefore avoid using .cfi
17219 - directives for -mlong32 as well. */
17220 - if (mips_abi == ABI_EABI && TARGET_64BIT)
17221 - flag_dwarf2_cfi_asm = 0;
17222 + /* Use the traditional method of generating .eh_frames.
17223 + We need this for two reasons:
17224 +
17225 + - .eh_frame addresses should be the same width as a C pointer.
17226 + Most MIPS ABIs support only one pointer size, so the assembler
17227 + will usually know exactly how big an .eh_frame address is.
17228 +
17229 + Unfortunately, this is not true of the 64-bit EABI. The ABI was
17230 + originally defined to use 64-bit pointers (i.e. it is LP64), and
17231 + this is still the default mode. However, we also support an n32-like
17232 + ILP32 mode, which is selected by -mlong32. The problem is that the
17233 + assembler has traditionally not had an -mlong option, so it has
17234 + traditionally not known whether we're using the ILP32 or LP64 form.
17235 +
17236 + As it happens, gas versions up to and including 2.19 use _32-bit_
17237 + addresses for EABI64 .cfi_* directives. This is wrong for the
17238 + default LP64 mode, so we can't use the directives by default.
17239 + Moreover, since gas's current behavior is at odds with gcc's
17240 + default behavior, it seems unwise to rely on future versions
17241 + of gas behaving the same way. We therefore avoid using .cfi
17242 + directives for -mlong32 as well.
17243 +
17244 + - .cfi* directives generate read-only .eh_frame sections.
17245 + However, MIPS has traditionally not allowed directives like:
17246 +
17247 + .long x-.
17248 +
17249 + in cases where "x" is in a different section, or is not defined
17250 + in the same assembly file. We have therefore traditionally
17251 + used absolute addresses and a writable .eh_frame instead.
17252 +
17253 + The linker is able to convert most of these absolute addresses
17254 + into PC-relative form where doing so is necessary to avoid
17255 + relocations. However, until 2.21, it wasn't able to do this
17256 + for indirect encodings or personality routines.
17257 +
17258 + GNU ld 2.21 and GCC 4.5 have support for read-only .eh_frames,
17259 + but for the time being, we should stick to the approach used
17260 + in 4.3 and earlier. */
17261 + flag_dwarf2_cfi_asm = 0;
17262
17263 mips_init_print_operand_punct ();
17264
17265 @@ -14242,6 +14811,178 @@
17266 reg_alloc_order[24] = 0;
17267 }
17268 }
17269 +
17270 +/* Implement EPILOGUE_USES. */
17271 +
17272 +bool
17273 +mips_epilogue_uses (unsigned int regno)
17274 +{
17275 + /* Say that the epilogue uses the return address register. Note that
17276 + in the case of sibcalls, the values "used by the epilogue" are
17277 + considered live at the start of the called function. */
17278 + if (regno == 31)
17279 + return true;
17280 +
17281 + /* If using a GOT, say that the epilogue also uses GOT_VERSION_REGNUM.
17282 + See the comment above load_call<mode> for details. */
17283 + if (TARGET_USE_GOT && (regno) == GOT_VERSION_REGNUM)
17284 + return true;
17285 +
17286 + /* An interrupt handler must preserve some registers that are
17287 + ordinarily call-clobbered. */
17288 + if (cfun->machine->interrupt_handler_p
17289 + && mips_interrupt_extra_call_saved_reg_p (regno))
17290 + return true;
17291 +
17292 + return false;
17293 +}
17294 +\f
17295 +#ifdef CVMX_SHARED_BSS_FLAGS
17296 +/* Handle a "cvmx_shared" attribute; arguments as in
17297 + struct attribute_spec.handler. */
17298 +
17299 +static tree
17300 +octeon_handle_cvmx_shared_attribute (tree *node, tree name,
17301 + tree args ATTRIBUTE_UNUSED,
17302 + int flags ATTRIBUTE_UNUSED,
17303 + bool *no_add_attrs)
17304 +{
17305 + if (TREE_CODE (*node) != VAR_DECL)
17306 + {
17307 + warning (OPT_Wattributes, "%qs attribute only applies to variables",
17308 + IDENTIFIER_POINTER (name));
17309 + *no_add_attrs = true;
17310 + }
17311 +
17312 + return NULL_TREE;
17313 +}
17314 +\f
17315 +/* Switch to the appropriate section for output of DECL.
17316 + DECL is either a `VAR_DECL' node or a constant of some sort.
17317 + RELOC indicates whether forming the initial value of DECL requires
17318 + link-time relocations. */
17319 +
17320 +static section *
17321 +octeon_select_section (tree decl, int reloc, unsigned HOST_WIDE_INT align)
17322 +{
17323 + if (decl && TREE_CODE (decl) == VAR_DECL
17324 + && lookup_attribute ("cvmx_shared", DECL_ATTRIBUTES (decl)))
17325 + {
17326 + const char *sname = NULL;
17327 + unsigned int flags = SECTION_WRITE;
17328 +
17329 + switch (categorize_decl_for_section (decl, reloc))
17330 + {
17331 + case SECCAT_DATA:
17332 + case SECCAT_SDATA:
17333 + case SECCAT_RODATA:
17334 + case SECCAT_SRODATA:
17335 + case SECCAT_RODATA_MERGE_STR:
17336 + case SECCAT_RODATA_MERGE_STR_INIT:
17337 + case SECCAT_RODATA_MERGE_CONST:
17338 + case SECCAT_DATA_REL:
17339 + case SECCAT_DATA_REL_LOCAL:
17340 + case SECCAT_DATA_REL_RO:
17341 + case SECCAT_DATA_REL_RO_LOCAL:
17342 + sname = ".cvmx_shared";
17343 + break;
17344 + case SECCAT_BSS:
17345 + case SECCAT_SBSS:
17346 + sname = ".cvmx_shared_bss";
17347 + flags |= SECTION_BSS;
17348 + break;
17349 + case SECCAT_TEXT:
17350 + case SECCAT_TDATA:
17351 + case SECCAT_TBSS:
17352 + break;
17353 + }
17354 + if (sname)
17355 + {
17356 + return get_section (sname, flags, decl);
17357 + }
17358 + }
17359 + return default_elf_select_section (decl, reloc, align);
17360 +}
17361 +\f
17362 +/* Build up a unique section name, expressed as a
17363 + STRING_CST node, and assign it to DECL_SECTION_NAME (decl).
17364 + RELOC indicates whether the initial value of EXP requires
17365 + link-time relocations. */
17366 +
17367 +static void
17368 +octeon_unique_section (tree decl, int reloc)
17369 +{
17370 + if (decl && TREE_CODE (decl) == VAR_DECL
17371 + && lookup_attribute ("cvmx_shared", DECL_ATTRIBUTES (decl)))
17372 + {
17373 + const char *sname = NULL;
17374 +
17375 + if (! DECL_ONE_ONLY (decl))
17376 + {
17377 + section *sect;
17378 + sect = octeon_select_section (decl, reloc, DECL_ALIGN (decl));
17379 + DECL_SECTION_NAME (decl) = build_string (strlen (sect->named.name),
17380 + sect->named.name);
17381 + return;
17382 + }
17383 +
17384 + switch (categorize_decl_for_section (decl, reloc))
17385 + {
17386 + case SECCAT_BSS:
17387 + case SECCAT_SBSS:
17388 + sname = ".cvmx_shared_bss.linkonce.";
17389 + break;
17390 + case SECCAT_SDATA:
17391 + case SECCAT_DATA:
17392 + case SECCAT_DATA_REL:
17393 + case SECCAT_DATA_REL_LOCAL:
17394 + case SECCAT_DATA_REL_RO:
17395 + case SECCAT_DATA_REL_RO_LOCAL:
17396 + case SECCAT_RODATA:
17397 + case SECCAT_SRODATA:
17398 + case SECCAT_RODATA_MERGE_STR:
17399 + case SECCAT_RODATA_MERGE_STR_INIT:
17400 + case SECCAT_RODATA_MERGE_CONST:
17401 + sname = ".cvmx_shared.linkonce.";
17402 + break;
17403 + case SECCAT_TEXT:
17404 + case SECCAT_TDATA:
17405 + case SECCAT_TBSS:
17406 + break;
17407 + }
17408 + if (sname)
17409 + {
17410 + const char *name;
17411 + size_t plen, nlen;
17412 + char *string;
17413 + plen = strlen (sname);
17414 +
17415 + name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
17416 + name = targetm.strip_name_encoding (name);
17417 + nlen = strlen (name);
17418 +
17419 + string = alloca (plen + nlen + 1);
17420 + memcpy (string, sname, plen);
17421 + memcpy (string + plen, name, nlen + 1);
17422 + DECL_SECTION_NAME (decl) = build_string (nlen + plen, string);
17423 + return;
17424 + }
17425 + }
17426 + default_unique_section (decl, reloc);
17427 +}
17428 +\f
17429 +/* Emit an uninitialized cvmx_shared variable. */
17430 +void
17431 +octeon_output_shared_variable (FILE *stream, tree decl, const char *name,
17432 + unsigned HOST_WIDE_INT size, int align)
17433 +{
17434 + switch_to_section (get_section (".cvmx_shared_bss", CVMX_SHARED_BSS_FLAGS,
17435 + NULL_TREE));
17436 + ASM_OUTPUT_ALIGN (stream, floor_log2 (align / BITS_PER_UNIT));
17437 + ASM_DECLARE_OBJECT_NAME (stream, name, decl);
17438 + ASM_OUTPUT_SKIP (stream, size != 0 ? size : 1);
17439 +}
17440 +#endif
17441 \f
17442 /* Initialize the GCC target structure. */
17443 #undef TARGET_ASM_ALIGNED_HI_OP
17444 diff -Nur a/gcc/config/mips/mips-dsp.md b/gcc/config/mips/mips-dsp.md
17445 --- a/gcc/config/mips/mips-dsp.md 2008-12-21 22:43:51.000000000 +0100
17446 +++ b/gcc/config/mips/mips-dsp.md 2010-01-25 09:50:29.025687257 +0100
17447 @@ -42,9 +42,9 @@
17448 (match_operand:DSPV 2 "register_operand" "d")))
17449 (set (reg:CCDSP CCDSP_OU_REGNUM)
17450 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_ADDQ))])]
17451 - ""
17452 + "ISA_HAS_DSP"
17453 "add<DSPV:dspfmt1>.<DSPV:dspfmt2>\t%0,%1,%2"
17454 - [(set_attr "type" "arith")
17455 + [(set_attr "type" "dspalu")
17456 (set_attr "mode" "SI")])
17457
17458 (define_insn "mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>"
17459 @@ -55,9 +55,9 @@
17460 UNSPEC_ADDQ_S))
17461 (set (reg:CCDSP CCDSP_OU_REGNUM)
17462 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_ADDQ_S))])]
17463 - ""
17464 + "ISA_HAS_DSP"
17465 "add<DSP:dspfmt1>_s.<DSP:dspfmt2>\t%0,%1,%2"
17466 - [(set_attr "type" "arith")
17467 + [(set_attr "type" "dspalusat")
17468 (set_attr "mode" "SI")])
17469
17470 ;; SUBQ*
17471 @@ -70,7 +70,7 @@
17472 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_SUBQ))])]
17473 "ISA_HAS_DSP"
17474 "sub<DSPV:dspfmt1>.<DSPV:dspfmt2>\t%0,%1,%2"
17475 - [(set_attr "type" "arith")
17476 + [(set_attr "type" "dspalu")
17477 (set_attr "mode" "SI")])
17478
17479 (define_insn "mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>"
17480 @@ -83,7 +83,7 @@
17481 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_SUBQ_S))])]
17482 "ISA_HAS_DSP"
17483 "sub<DSP:dspfmt1>_s.<DSP:dspfmt2>\t%0,%1,%2"
17484 - [(set_attr "type" "arith")
17485 + [(set_attr "type" "dspalusat")
17486 (set_attr "mode" "SI")])
17487
17488 ;; ADDSC
17489 @@ -97,7 +97,7 @@
17490 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_ADDSC))])]
17491 "ISA_HAS_DSP"
17492 "addsc\t%0,%1,%2"
17493 - [(set_attr "type" "arith")
17494 + [(set_attr "type" "dspalu")
17495 (set_attr "mode" "SI")])
17496
17497 ;; ADDWC
17498 @@ -112,7 +112,7 @@
17499 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_ADDWC))])]
17500 "ISA_HAS_DSP"
17501 "addwc\t%0,%1,%2"
17502 - [(set_attr "type" "arith")
17503 + [(set_attr "type" "dspalu")
17504 (set_attr "mode" "SI")])
17505
17506 ;; MODSUB
17507 @@ -123,7 +123,7 @@
17508 UNSPEC_MODSUB))]
17509 "ISA_HAS_DSP"
17510 "modsub\t%0,%1,%2"
17511 - [(set_attr "type" "arith")
17512 + [(set_attr "type" "dspalu")
17513 (set_attr "mode" "SI")])
17514
17515 ;; RADDU*
17516 @@ -133,7 +133,7 @@
17517 UNSPEC_RADDU_W_QB))]
17518 "ISA_HAS_DSP"
17519 "raddu.w.qb\t%0,%1"
17520 - [(set_attr "type" "arith")
17521 + [(set_attr "type" "dspalu")
17522 (set_attr "mode" "SI")])
17523
17524 ;; ABSQ*
17525 @@ -146,7 +146,7 @@
17526 (unspec:CCDSP [(match_dup 1)] UNSPEC_ABSQ_S))])]
17527 "ISA_HAS_DSP"
17528 "absq_s.<DSPQ:dspfmt2>\t%0,%1"
17529 - [(set_attr "type" "arith")
17530 + [(set_attr "type" "dspalusat")
17531 (set_attr "mode" "SI")])
17532
17533 ;; PRECRQ*
17534 @@ -157,7 +157,7 @@
17535 UNSPEC_PRECRQ_QB_PH))]
17536 "ISA_HAS_DSP"
17537 "precrq.qb.ph\t%0,%1,%2"
17538 - [(set_attr "type" "arith")
17539 + [(set_attr "type" "dspalu")
17540 (set_attr "mode" "SI")])
17541
17542 (define_insn "mips_precrq_ph_w"
17543 @@ -167,7 +167,7 @@
17544 UNSPEC_PRECRQ_PH_W))]
17545 "ISA_HAS_DSP"
17546 "precrq.ph.w\t%0,%1,%2"
17547 - [(set_attr "type" "arith")
17548 + [(set_attr "type" "dspalu")
17549 (set_attr "mode" "SI")])
17550
17551 (define_insn "mips_precrq_rs_ph_w"
17552 @@ -181,7 +181,7 @@
17553 UNSPEC_PRECRQ_RS_PH_W))])]
17554 "ISA_HAS_DSP"
17555 "precrq_rs.ph.w\t%0,%1,%2"
17556 - [(set_attr "type" "arith")
17557 + [(set_attr "type" "dspalu")
17558 (set_attr "mode" "SI")])
17559
17560 ;; PRECRQU*
17561 @@ -196,7 +196,7 @@
17562 UNSPEC_PRECRQU_S_QB_PH))])]
17563 "ISA_HAS_DSP"
17564 "precrqu_s.qb.ph\t%0,%1,%2"
17565 - [(set_attr "type" "arith")
17566 + [(set_attr "type" "dspalusat")
17567 (set_attr "mode" "SI")])
17568
17569 ;; PRECEQ*
17570 @@ -206,7 +206,7 @@
17571 UNSPEC_PRECEQ_W_PHL))]
17572 "ISA_HAS_DSP"
17573 "preceq.w.phl\t%0,%1"
17574 - [(set_attr "type" "arith")
17575 + [(set_attr "type" "dspalu")
17576 (set_attr "mode" "SI")])
17577
17578 (define_insn "mips_preceq_w_phr"
17579 @@ -215,7 +215,7 @@
17580 UNSPEC_PRECEQ_W_PHR))]
17581 "ISA_HAS_DSP"
17582 "preceq.w.phr\t%0,%1"
17583 - [(set_attr "type" "arith")
17584 + [(set_attr "type" "dspalu")
17585 (set_attr "mode" "SI")])
17586
17587 ;; PRECEQU*
17588 @@ -225,7 +225,7 @@
17589 UNSPEC_PRECEQU_PH_QBL))]
17590 "ISA_HAS_DSP"
17591 "precequ.ph.qbl\t%0,%1"
17592 - [(set_attr "type" "arith")
17593 + [(set_attr "type" "dspalu")
17594 (set_attr "mode" "SI")])
17595
17596 (define_insn "mips_precequ_ph_qbr"
17597 @@ -234,7 +234,7 @@
17598 UNSPEC_PRECEQU_PH_QBR))]
17599 "ISA_HAS_DSP"
17600 "precequ.ph.qbr\t%0,%1"
17601 - [(set_attr "type" "arith")
17602 + [(set_attr "type" "dspalu")
17603 (set_attr "mode" "SI")])
17604
17605 (define_insn "mips_precequ_ph_qbla"
17606 @@ -243,7 +243,7 @@
17607 UNSPEC_PRECEQU_PH_QBLA))]
17608 "ISA_HAS_DSP"
17609 "precequ.ph.qbla\t%0,%1"
17610 - [(set_attr "type" "arith")
17611 + [(set_attr "type" "dspalu")
17612 (set_attr "mode" "SI")])
17613
17614 (define_insn "mips_precequ_ph_qbra"
17615 @@ -252,7 +252,7 @@
17616 UNSPEC_PRECEQU_PH_QBRA))]
17617 "ISA_HAS_DSP"
17618 "precequ.ph.qbra\t%0,%1"
17619 - [(set_attr "type" "arith")
17620 + [(set_attr "type" "dspalu")
17621 (set_attr "mode" "SI")])
17622
17623 ;; PRECEU*
17624 @@ -262,7 +262,7 @@
17625 UNSPEC_PRECEU_PH_QBL))]
17626 "ISA_HAS_DSP"
17627 "preceu.ph.qbl\t%0,%1"
17628 - [(set_attr "type" "arith")
17629 + [(set_attr "type" "dspalu")
17630 (set_attr "mode" "SI")])
17631
17632 (define_insn "mips_preceu_ph_qbr"
17633 @@ -271,7 +271,7 @@
17634 UNSPEC_PRECEU_PH_QBR))]
17635 "ISA_HAS_DSP"
17636 "preceu.ph.qbr\t%0,%1"
17637 - [(set_attr "type" "arith")
17638 + [(set_attr "type" "dspalu")
17639 (set_attr "mode" "SI")])
17640
17641 (define_insn "mips_preceu_ph_qbla"
17642 @@ -280,7 +280,7 @@
17643 UNSPEC_PRECEU_PH_QBLA))]
17644 "ISA_HAS_DSP"
17645 "preceu.ph.qbla\t%0,%1"
17646 - [(set_attr "type" "arith")
17647 + [(set_attr "type" "dspalu")
17648 (set_attr "mode" "SI")])
17649
17650 (define_insn "mips_preceu_ph_qbra"
17651 @@ -289,7 +289,7 @@
17652 UNSPEC_PRECEU_PH_QBRA))]
17653 "ISA_HAS_DSP"
17654 "preceu.ph.qbra\t%0,%1"
17655 - [(set_attr "type" "arith")
17656 + [(set_attr "type" "dspalu")
17657 (set_attr "mode" "SI")])
17658
17659 ;; Table 2-2. MIPS DSP ASE Instructions: Shift
17660 @@ -313,7 +313,7 @@
17661 }
17662 return "shllv.<DSPV:dspfmt2>\t%0,%1,%2";
17663 }
17664 - [(set_attr "type" "shift")
17665 + [(set_attr "type" "dspalu")
17666 (set_attr "mode" "SI")])
17667
17668 (define_insn "mips_shll_s_<DSPQ:dspfmt2>"
17669 @@ -335,7 +335,7 @@
17670 }
17671 return "shllv_s.<DSPQ:dspfmt2>\t%0,%1,%2";
17672 }
17673 - [(set_attr "type" "shift")
17674 + [(set_attr "type" "dspalusat")
17675 (set_attr "mode" "SI")])
17676
17677 ;; SHRL*
17678 @@ -354,7 +354,7 @@
17679 }
17680 return "shrlv.qb\t%0,%1,%2";
17681 }
17682 - [(set_attr "type" "shift")
17683 + [(set_attr "type" "dspalu")
17684 (set_attr "mode" "SI")])
17685
17686 ;; SHRA*
17687 @@ -373,7 +373,7 @@
17688 }
17689 return "shrav.ph\t%0,%1,%2";
17690 }
17691 - [(set_attr "type" "shift")
17692 + [(set_attr "type" "dspalu")
17693 (set_attr "mode" "SI")])
17694
17695 (define_insn "mips_shra_r_<DSPQ:dspfmt2>"
17696 @@ -392,7 +392,7 @@
17697 }
17698 return "shrav_r.<DSPQ:dspfmt2>\t%0,%1,%2";
17699 }
17700 - [(set_attr "type" "shift")
17701 + [(set_attr "type" "dspalu")
17702 (set_attr "mode" "SI")])
17703
17704 ;; Table 2-3. MIPS DSP ASE Instructions: Multiply
17705 @@ -478,7 +478,7 @@
17706 UNSPEC_DPAU_H_QBL))]
17707 "ISA_HAS_DSP && !TARGET_64BIT"
17708 "dpau.h.qbl\t%q0,%2,%3"
17709 - [(set_attr "type" "imadd")
17710 + [(set_attr "type" "dspmac")
17711 (set_attr "mode" "SI")])
17712
17713 (define_insn "mips_dpau_h_qbr"
17714 @@ -489,7 +489,7 @@
17715 UNSPEC_DPAU_H_QBR))]
17716 "ISA_HAS_DSP && !TARGET_64BIT"
17717 "dpau.h.qbr\t%q0,%2,%3"
17718 - [(set_attr "type" "imadd")
17719 + [(set_attr "type" "dspmac")
17720 (set_attr "mode" "SI")])
17721
17722 ;; DPSU*
17723 @@ -501,7 +501,7 @@
17724 UNSPEC_DPSU_H_QBL))]
17725 "ISA_HAS_DSP && !TARGET_64BIT"
17726 "dpsu.h.qbl\t%q0,%2,%3"
17727 - [(set_attr "type" "imadd")
17728 + [(set_attr "type" "dspmac")
17729 (set_attr "mode" "SI")])
17730
17731 (define_insn "mips_dpsu_h_qbr"
17732 @@ -512,7 +512,7 @@
17733 UNSPEC_DPSU_H_QBR))]
17734 "ISA_HAS_DSP && !TARGET_64BIT"
17735 "dpsu.h.qbr\t%q0,%2,%3"
17736 - [(set_attr "type" "imadd")
17737 + [(set_attr "type" "dspmac")
17738 (set_attr "mode" "SI")])
17739
17740 ;; DPAQ*
17741 @@ -528,7 +528,7 @@
17742 UNSPEC_DPAQ_S_W_PH))])]
17743 "ISA_HAS_DSP && !TARGET_64BIT"
17744 "dpaq_s.w.ph\t%q0,%2,%3"
17745 - [(set_attr "type" "imadd")
17746 + [(set_attr "type" "dspmac")
17747 (set_attr "mode" "SI")])
17748
17749 ;; DPSQ*
17750 @@ -544,7 +544,7 @@
17751 UNSPEC_DPSQ_S_W_PH))])]
17752 "ISA_HAS_DSP && !TARGET_64BIT"
17753 "dpsq_s.w.ph\t%q0,%2,%3"
17754 - [(set_attr "type" "imadd")
17755 + [(set_attr "type" "dspmac")
17756 (set_attr "mode" "SI")])
17757
17758 ;; MULSAQ*
17759 @@ -560,7 +560,7 @@
17760 UNSPEC_MULSAQ_S_W_PH))])]
17761 "ISA_HAS_DSP && !TARGET_64BIT"
17762 "mulsaq_s.w.ph\t%q0,%2,%3"
17763 - [(set_attr "type" "imadd")
17764 + [(set_attr "type" "dspmac")
17765 (set_attr "mode" "SI")])
17766
17767 ;; DPAQ*
17768 @@ -576,7 +576,7 @@
17769 UNSPEC_DPAQ_SA_L_W))])]
17770 "ISA_HAS_DSP && !TARGET_64BIT"
17771 "dpaq_sa.l.w\t%q0,%2,%3"
17772 - [(set_attr "type" "imadd")
17773 + [(set_attr "type" "dspmacsat")
17774 (set_attr "mode" "SI")])
17775
17776 ;; DPSQ*
17777 @@ -592,7 +592,7 @@
17778 UNSPEC_DPSQ_SA_L_W))])]
17779 "ISA_HAS_DSP && !TARGET_64BIT"
17780 "dpsq_sa.l.w\t%q0,%2,%3"
17781 - [(set_attr "type" "imadd")
17782 + [(set_attr "type" "dspmacsat")
17783 (set_attr "mode" "SI")])
17784
17785 ;; MAQ*
17786 @@ -608,7 +608,7 @@
17787 UNSPEC_MAQ_S_W_PHL))])]
17788 "ISA_HAS_DSP && !TARGET_64BIT"
17789 "maq_s.w.phl\t%q0,%2,%3"
17790 - [(set_attr "type" "imadd")
17791 + [(set_attr "type" "dspmac")
17792 (set_attr "mode" "SI")])
17793
17794 (define_insn "mips_maq_s_w_phr"
17795 @@ -623,7 +623,7 @@
17796 UNSPEC_MAQ_S_W_PHR))])]
17797 "ISA_HAS_DSP && !TARGET_64BIT"
17798 "maq_s.w.phr\t%q0,%2,%3"
17799 - [(set_attr "type" "imadd")
17800 + [(set_attr "type" "dspmac")
17801 (set_attr "mode" "SI")])
17802
17803 ;; MAQ_SA*
17804 @@ -639,7 +639,7 @@
17805 UNSPEC_MAQ_SA_W_PHL))])]
17806 "ISA_HAS_DSP && !TARGET_64BIT"
17807 "maq_sa.w.phl\t%q0,%2,%3"
17808 - [(set_attr "type" "imadd")
17809 + [(set_attr "type" "dspmacsat")
17810 (set_attr "mode" "SI")])
17811
17812 (define_insn "mips_maq_sa_w_phr"
17813 @@ -654,7 +654,7 @@
17814 UNSPEC_MAQ_SA_W_PHR))])]
17815 "ISA_HAS_DSP && !TARGET_64BIT"
17816 "maq_sa.w.phr\t%q0,%2,%3"
17817 - [(set_attr "type" "imadd")
17818 + [(set_attr "type" "dspmacsat")
17819 (set_attr "mode" "SI")])
17820
17821 ;; Table 2-4. MIPS DSP ASE Instructions: General Bit/Manipulation
17822 @@ -665,7 +665,7 @@
17823 UNSPEC_BITREV))]
17824 "ISA_HAS_DSP"
17825 "bitrev\t%0,%1"
17826 - [(set_attr "type" "arith")
17827 + [(set_attr "type" "dspalu")
17828 (set_attr "mode" "SI")])
17829
17830 ;; INSV
17831 @@ -678,7 +678,7 @@
17832 UNSPEC_INSV))]
17833 "ISA_HAS_DSP"
17834 "insv\t%0,%2"
17835 - [(set_attr "type" "arith")
17836 + [(set_attr "type" "dspalu")
17837 (set_attr "mode" "SI")])
17838
17839 ;; REPL*
17840 @@ -696,7 +696,7 @@
17841 }
17842 return "replv.qb\t%0,%1";
17843 }
17844 - [(set_attr "type" "arith")
17845 + [(set_attr "type" "dspalu")
17846 (set_attr "mode" "SI")])
17847
17848 (define_insn "mips_repl_ph"
17849 @@ -707,7 +707,7 @@
17850 "@
17851 repl.ph\t%0,%1
17852 replv.ph\t%0,%1"
17853 - [(set_attr "type" "arith")
17854 + [(set_attr "type" "dspalu")
17855 (set_attr "mode" "SI")])
17856
17857 ;; Table 2-5. MIPS DSP ASE Instructions: Compare-Pick
17858 @@ -720,7 +720,7 @@
17859 UNSPEC_CMP_EQ))]
17860 "ISA_HAS_DSP"
17861 "cmp<DSPV:dspfmt1_1>.eq.<DSPV:dspfmt2>\t%0,%1"
17862 - [(set_attr "type" "arith")
17863 + [(set_attr "type" "dspalu")
17864 (set_attr "mode" "SI")])
17865
17866 (define_insn "mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>"
17867 @@ -731,7 +731,7 @@
17868 UNSPEC_CMP_LT))]
17869 "ISA_HAS_DSP"
17870 "cmp<DSPV:dspfmt1_1>.lt.<DSPV:dspfmt2>\t%0,%1"
17871 - [(set_attr "type" "arith")
17872 + [(set_attr "type" "dspalu")
17873 (set_attr "mode" "SI")])
17874
17875 (define_insn "mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>"
17876 @@ -742,7 +742,7 @@
17877 UNSPEC_CMP_LE))]
17878 "ISA_HAS_DSP"
17879 "cmp<DSPV:dspfmt1_1>.le.<DSPV:dspfmt2>\t%0,%1"
17880 - [(set_attr "type" "arith")
17881 + [(set_attr "type" "dspalu")
17882 (set_attr "mode" "SI")])
17883
17884 (define_insn "mips_cmpgu_eq_qb"
17885 @@ -752,7 +752,7 @@
17886 UNSPEC_CMPGU_EQ_QB))]
17887 "ISA_HAS_DSP"
17888 "cmpgu.eq.qb\t%0,%1,%2"
17889 - [(set_attr "type" "arith")
17890 + [(set_attr "type" "dspalu")
17891 (set_attr "mode" "SI")])
17892
17893 (define_insn "mips_cmpgu_lt_qb"
17894 @@ -762,7 +762,7 @@
17895 UNSPEC_CMPGU_LT_QB))]
17896 "ISA_HAS_DSP"
17897 "cmpgu.lt.qb\t%0,%1,%2"
17898 - [(set_attr "type" "arith")
17899 + [(set_attr "type" "dspalu")
17900 (set_attr "mode" "SI")])
17901
17902 (define_insn "mips_cmpgu_le_qb"
17903 @@ -772,7 +772,7 @@
17904 UNSPEC_CMPGU_LE_QB))]
17905 "ISA_HAS_DSP"
17906 "cmpgu.le.qb\t%0,%1,%2"
17907 - [(set_attr "type" "arith")
17908 + [(set_attr "type" "dspalu")
17909 (set_attr "mode" "SI")])
17910
17911 ;; PICK*
17912 @@ -784,7 +784,7 @@
17913 UNSPEC_PICK))]
17914 "ISA_HAS_DSP"
17915 "pick.<DSPV:dspfmt2>\t%0,%1,%2"
17916 - [(set_attr "type" "arith")
17917 + [(set_attr "type" "dspalu")
17918 (set_attr "mode" "SI")])
17919
17920 ;; PACKRL*
17921 @@ -795,7 +795,7 @@
17922 UNSPEC_PACKRL_PH))]
17923 "ISA_HAS_DSP"
17924 "packrl.ph\t%0,%1,%2"
17925 - [(set_attr "type" "arith")
17926 + [(set_attr "type" "dspalu")
17927 (set_attr "mode" "SI")])
17928
17929 ;; Table 2-6. MIPS DSP ASE Instructions: Accumulator and DSPControl Access
17930 @@ -818,7 +818,7 @@
17931 }
17932 return "extrv.w\t%0,%q1,%2";
17933 }
17934 - [(set_attr "type" "mfhilo")
17935 + [(set_attr "type" "accext")
17936 (set_attr "mode" "SI")])
17937
17938 (define_insn "mips_extr_r_w"
17939 @@ -839,7 +839,7 @@
17940 }
17941 return "extrv_r.w\t%0,%q1,%2";
17942 }
17943 - [(set_attr "type" "mfhilo")
17944 + [(set_attr "type" "accext")
17945 (set_attr "mode" "SI")])
17946
17947 (define_insn "mips_extr_rs_w"
17948 @@ -860,7 +860,7 @@
17949 }
17950 return "extrv_rs.w\t%0,%q1,%2";
17951 }
17952 - [(set_attr "type" "mfhilo")
17953 + [(set_attr "type" "accext")
17954 (set_attr "mode" "SI")])
17955
17956 ;; EXTR*_S.H
17957 @@ -882,7 +882,7 @@
17958 }
17959 return "extrv_s.h\t%0,%q1,%2";
17960 }
17961 - [(set_attr "type" "mfhilo")
17962 + [(set_attr "type" "accext")
17963 (set_attr "mode" "SI")])
17964
17965 ;; EXTP*
17966 @@ -905,7 +905,7 @@
17967 }
17968 return "extpv\t%0,%q1,%2";
17969 }
17970 - [(set_attr "type" "mfhilo")
17971 + [(set_attr "type" "accext")
17972 (set_attr "mode" "SI")])
17973
17974 (define_insn "mips_extpdp"
17975 @@ -930,7 +930,7 @@
17976 }
17977 return "extpdpv\t%0,%q1,%2";
17978 }
17979 - [(set_attr "type" "mfhilo")
17980 + [(set_attr "type" "accext")
17981 (set_attr "mode" "SI")])
17982
17983 ;; SHILO*
17984 @@ -949,7 +949,7 @@
17985 }
17986 return "shilov\t%q0,%2";
17987 }
17988 - [(set_attr "type" "mfhilo")
17989 + [(set_attr "type" "accmod")
17990 (set_attr "mode" "SI")])
17991
17992 ;; MTHLIP*
17993 @@ -965,7 +965,7 @@
17994 (reg:CCDSP CCDSP_PO_REGNUM)] UNSPEC_MTHLIP))])]
17995 "ISA_HAS_DSP && !TARGET_64BIT"
17996 "mthlip\t%2,%q0"
17997 - [(set_attr "type" "mfhilo")
17998 + [(set_attr "type" "accmod")
17999 (set_attr "mode" "SI")])
18000
18001 ;; WRDSP
18002 @@ -987,7 +987,7 @@
18003 (unspec:CCDSP [(match_dup 0) (match_dup 1)] UNSPEC_WRDSP))])]
18004 "ISA_HAS_DSP"
18005 "wrdsp\t%0,%1"
18006 - [(set_attr "type" "arith")
18007 + [(set_attr "type" "dspalu")
18008 (set_attr "mode" "SI")])
18009
18010 ;; RDDSP
18011 @@ -1003,7 +1003,7 @@
18012 UNSPEC_RDDSP))]
18013 "ISA_HAS_DSP"
18014 "rddsp\t%0,%1"
18015 - [(set_attr "type" "arith")
18016 + [(set_attr "type" "dspalu")
18017 (set_attr "mode" "SI")])
18018
18019 ;; Table 2-7. MIPS DSP ASE Instructions: Indexed-Load
18020 diff -Nur a/gcc/config/mips/mips-dspr2.md b/gcc/config/mips/mips-dspr2.md
18021 --- a/gcc/config/mips/mips-dspr2.md 2007-09-23 11:24:21.000000000 +0200
18022 +++ b/gcc/config/mips/mips-dspr2.md 2010-01-25 09:50:29.025687257 +0100
18023 @@ -9,7 +9,7 @@
18024 (unspec:CCDSP [(match_dup 1)] UNSPEC_ABSQ_S_QB))])]
18025 "ISA_HAS_DSPR2"
18026 "absq_s.qb\t%0,%z1"
18027 - [(set_attr "type" "arith")
18028 + [(set_attr "type" "dspalusat")
18029 (set_attr "mode" "SI")])
18030
18031 (define_insn "mips_addu_ph"
18032 @@ -21,7 +21,7 @@
18033 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_ADDU_PH))])]
18034 "ISA_HAS_DSPR2"
18035 "addu.ph\t%0,%z1,%z2"
18036 - [(set_attr "type" "arith")
18037 + [(set_attr "type" "dspalu")
18038 (set_attr "mode" "SI")])
18039
18040 (define_insn "mips_addu_s_ph"
18041 @@ -34,7 +34,7 @@
18042 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_ADDU_S_PH))])]
18043 "ISA_HAS_DSPR2"
18044 "addu_s.ph\t%0,%z1,%z2"
18045 - [(set_attr "type" "arith")
18046 + [(set_attr "type" "dspalusat")
18047 (set_attr "mode" "SI")])
18048
18049 (define_insn "mips_adduh_qb"
18050 @@ -44,7 +44,7 @@
18051 UNSPEC_ADDUH_QB))]
18052 "ISA_HAS_DSPR2"
18053 "adduh.qb\t%0,%z1,%z2"
18054 - [(set_attr "type" "arith")
18055 + [(set_attr "type" "dspalu")
18056 (set_attr "mode" "SI")])
18057
18058 (define_insn "mips_adduh_r_qb"
18059 @@ -54,7 +54,7 @@
18060 UNSPEC_ADDUH_R_QB))]
18061 "ISA_HAS_DSPR2"
18062 "adduh_r.qb\t%0,%z1,%z2"
18063 - [(set_attr "type" "arith")
18064 + [(set_attr "type" "dspalusat")
18065 (set_attr "mode" "SI")])
18066
18067 (define_insn "mips_append"
18068 @@ -69,7 +69,7 @@
18069 operands[2] = GEN_INT (INTVAL (operands[2]) & 31);
18070 return "append\t%0,%z2,%3";
18071 }
18072 - [(set_attr "type" "arith")
18073 + [(set_attr "type" "dspalu")
18074 (set_attr "mode" "SI")])
18075
18076 (define_insn "mips_balign"
18077 @@ -84,7 +84,7 @@
18078 operands[2] = GEN_INT (INTVAL (operands[2]) & 3);
18079 return "balign\t%0,%z2,%3";
18080 }
18081 - [(set_attr "type" "arith")
18082 + [(set_attr "type" "dspalu")
18083 (set_attr "mode" "SI")])
18084
18085 (define_insn "mips_cmpgdu_eq_qb"
18086 @@ -99,7 +99,7 @@
18087 UNSPEC_CMPGDU_EQ_QB))])]
18088 "ISA_HAS_DSPR2"
18089 "cmpgdu.eq.qb\t%0,%z1,%z2"
18090 - [(set_attr "type" "arith")
18091 + [(set_attr "type" "dspalu")
18092 (set_attr "mode" "SI")])
18093
18094 (define_insn "mips_cmpgdu_lt_qb"
18095 @@ -114,7 +114,7 @@
18096 UNSPEC_CMPGDU_LT_QB))])]
18097 "ISA_HAS_DSPR2"
18098 "cmpgdu.lt.qb\t%0,%z1,%z2"
18099 - [(set_attr "type" "arith")
18100 + [(set_attr "type" "dspalu")
18101 (set_attr "mode" "SI")])
18102
18103 (define_insn "mips_cmpgdu_le_qb"
18104 @@ -129,7 +129,7 @@
18105 UNSPEC_CMPGDU_LE_QB))])]
18106 "ISA_HAS_DSPR2"
18107 "cmpgdu.le.qb\t%0,%z1,%z2"
18108 - [(set_attr "type" "arith")
18109 + [(set_attr "type" "dspalu")
18110 (set_attr "mode" "SI")])
18111
18112 (define_insn "mips_dpa_w_ph"
18113 @@ -140,7 +140,7 @@
18114 UNSPEC_DPA_W_PH))]
18115 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18116 "dpa.w.ph\t%q0,%z2,%z3"
18117 - [(set_attr "type" "imadd")
18118 + [(set_attr "type" "dspmac")
18119 (set_attr "mode" "SI")])
18120
18121 (define_insn "mips_dps_w_ph"
18122 @@ -151,7 +151,7 @@
18123 UNSPEC_DPS_W_PH))]
18124 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18125 "dps.w.ph\t%q0,%z2,%z3"
18126 - [(set_attr "type" "imadd")
18127 + [(set_attr "type" "dspmac")
18128 (set_attr "mode" "SI")])
18129
18130 (define_expand "mips_madd<u>"
18131 @@ -247,7 +247,7 @@
18132 UNSPEC_MULSA_W_PH))]
18133 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18134 "mulsa.w.ph\t%q0,%z2,%z3"
18135 - [(set_attr "type" "imadd")
18136 + [(set_attr "type" "dspmac")
18137 (set_attr "mode" "SI")])
18138
18139 (define_insn "mips_mult"
18140 @@ -277,7 +277,7 @@
18141 UNSPEC_PRECR_QB_PH))]
18142 "ISA_HAS_DSPR2"
18143 "precr.qb.ph\t%0,%z1,%z2"
18144 - [(set_attr "type" "arith")
18145 + [(set_attr "type" "dspalu")
18146 (set_attr "mode" "SI")])
18147
18148 (define_insn "mips_precr_sra_ph_w"
18149 @@ -292,7 +292,7 @@
18150 operands[2] = GEN_INT (INTVAL (operands[2]) & 31);
18151 return "precr_sra.ph.w\t%0,%z2,%3";
18152 }
18153 - [(set_attr "type" "arith")
18154 + [(set_attr "type" "dspalu")
18155 (set_attr "mode" "SI")])
18156
18157 (define_insn "mips_precr_sra_r_ph_w"
18158 @@ -307,7 +307,7 @@
18159 operands[2] = GEN_INT (INTVAL (operands[2]) & 31);
18160 return "precr_sra_r.ph.w\t%0,%z2,%3";
18161 }
18162 - [(set_attr "type" "arith")
18163 + [(set_attr "type" "dspalu")
18164 (set_attr "mode" "SI")])
18165
18166 (define_insn "mips_prepend"
18167 @@ -322,7 +322,7 @@
18168 operands[2] = GEN_INT (INTVAL (operands[2]) & 31);
18169 return "prepend\t%0,%z2,%3";
18170 }
18171 - [(set_attr "type" "arith")
18172 + [(set_attr "type" "dspalu")
18173 (set_attr "mode" "SI")])
18174
18175 (define_insn "mips_shra_qb"
18176 @@ -340,7 +340,7 @@
18177 }
18178 return "shrav.qb\t%0,%z1,%2";
18179 }
18180 - [(set_attr "type" "shift")
18181 + [(set_attr "type" "dspalu")
18182 (set_attr "mode" "SI")])
18183
18184
18185 @@ -359,7 +359,7 @@
18186 }
18187 return "shrav_r.qb\t%0,%z1,%2";
18188 }
18189 - [(set_attr "type" "shift")
18190 + [(set_attr "type" "dspalu")
18191 (set_attr "mode" "SI")])
18192
18193 (define_insn "mips_shrl_ph"
18194 @@ -377,7 +377,7 @@
18195 }
18196 return "shrlv.ph\t%0,%z1,%2";
18197 }
18198 - [(set_attr "type" "shift")
18199 + [(set_attr "type" "dspalu")
18200 (set_attr "mode" "SI")])
18201
18202 (define_insn "mips_subu_ph"
18203 @@ -390,7 +390,7 @@
18204 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_SUBU_PH))])]
18205 "ISA_HAS_DSPR2"
18206 "subu.ph\t%0,%z1,%z2"
18207 - [(set_attr "type" "arith")
18208 + [(set_attr "type" "dspalu")
18209 (set_attr "mode" "SI")])
18210
18211 (define_insn "mips_subu_s_ph"
18212 @@ -403,7 +403,7 @@
18213 (unspec:CCDSP [(match_dup 1) (match_dup 2)] UNSPEC_SUBU_S_PH))])]
18214 "ISA_HAS_DSPR2"
18215 "subu_s.ph\t%0,%z1,%z2"
18216 - [(set_attr "type" "arith")
18217 + [(set_attr "type" "dspalusat")
18218 (set_attr "mode" "SI")])
18219
18220 (define_insn "mips_subuh_qb"
18221 @@ -413,7 +413,7 @@
18222 UNSPEC_SUBUH_QB))]
18223 "ISA_HAS_DSPR2"
18224 "subuh.qb\t%0,%z1,%z2"
18225 - [(set_attr "type" "arith")
18226 + [(set_attr "type" "dspalu")
18227 (set_attr "mode" "SI")])
18228
18229 (define_insn "mips_subuh_r_qb"
18230 @@ -423,7 +423,7 @@
18231 UNSPEC_SUBUH_R_QB))]
18232 "ISA_HAS_DSPR2"
18233 "subuh_r.qb\t%0,%z1,%z2"
18234 - [(set_attr "type" "arith")
18235 + [(set_attr "type" "dspalu")
18236 (set_attr "mode" "SI")])
18237
18238 (define_insn "mips_addqh_ph"
18239 @@ -433,7 +433,7 @@
18240 UNSPEC_ADDQH_PH))]
18241 "ISA_HAS_DSPR2"
18242 "addqh.ph\t%0,%z1,%z2"
18243 - [(set_attr "type" "arith")
18244 + [(set_attr "type" "dspalu")
18245 (set_attr "mode" "SI")])
18246
18247 (define_insn "mips_addqh_r_ph"
18248 @@ -443,7 +443,7 @@
18249 UNSPEC_ADDQH_R_PH))]
18250 "ISA_HAS_DSPR2"
18251 "addqh_r.ph\t%0,%z1,%z2"
18252 - [(set_attr "type" "arith")
18253 + [(set_attr "type" "dspalu")
18254 (set_attr "mode" "SI")])
18255
18256 (define_insn "mips_addqh_w"
18257 @@ -453,7 +453,7 @@
18258 UNSPEC_ADDQH_W))]
18259 "ISA_HAS_DSPR2"
18260 "addqh.w\t%0,%z1,%z2"
18261 - [(set_attr "type" "arith")
18262 + [(set_attr "type" "dspalu")
18263 (set_attr "mode" "SI")])
18264
18265 (define_insn "mips_addqh_r_w"
18266 @@ -463,7 +463,7 @@
18267 UNSPEC_ADDQH_R_W))]
18268 "ISA_HAS_DSPR2"
18269 "addqh_r.w\t%0,%z1,%z2"
18270 - [(set_attr "type" "arith")
18271 + [(set_attr "type" "dspalu")
18272 (set_attr "mode" "SI")])
18273
18274 (define_insn "mips_subqh_ph"
18275 @@ -473,7 +473,7 @@
18276 UNSPEC_SUBQH_PH))]
18277 "ISA_HAS_DSPR2"
18278 "subqh.ph\t%0,%z1,%z2"
18279 - [(set_attr "type" "arith")
18280 + [(set_attr "type" "dspalu")
18281 (set_attr "mode" "SI")])
18282
18283 (define_insn "mips_subqh_r_ph"
18284 @@ -483,7 +483,7 @@
18285 UNSPEC_SUBQH_R_PH))]
18286 "ISA_HAS_DSPR2"
18287 "subqh_r.ph\t%0,%z1,%z2"
18288 - [(set_attr "type" "arith")
18289 + [(set_attr "type" "dspalu")
18290 (set_attr "mode" "SI")])
18291
18292 (define_insn "mips_subqh_w"
18293 @@ -493,7 +493,7 @@
18294 UNSPEC_SUBQH_W))]
18295 "ISA_HAS_DSPR2"
18296 "subqh.w\t%0,%z1,%z2"
18297 - [(set_attr "type" "arith")
18298 + [(set_attr "type" "dspalu")
18299 (set_attr "mode" "SI")])
18300
18301 (define_insn "mips_subqh_r_w"
18302 @@ -503,7 +503,7 @@
18303 UNSPEC_SUBQH_R_W))]
18304 "ISA_HAS_DSPR2"
18305 "subqh_r.w\t%0,%z1,%z2"
18306 - [(set_attr "type" "arith")
18307 + [(set_attr "type" "dspalu")
18308 (set_attr "mode" "SI")])
18309
18310 (define_insn "mips_dpax_w_ph"
18311 @@ -514,7 +514,7 @@
18312 UNSPEC_DPAX_W_PH))]
18313 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18314 "dpax.w.ph\t%q0,%z2,%z3"
18315 - [(set_attr "type" "imadd")
18316 + [(set_attr "type" "dspmac")
18317 (set_attr "mode" "SI")])
18318
18319 (define_insn "mips_dpsx_w_ph"
18320 @@ -525,7 +525,7 @@
18321 UNSPEC_DPSX_W_PH))]
18322 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18323 "dpsx.w.ph\t%q0,%z2,%z3"
18324 - [(set_attr "type" "imadd")
18325 + [(set_attr "type" "dspmac")
18326 (set_attr "mode" "SI")])
18327
18328 (define_insn "mips_dpaqx_s_w_ph"
18329 @@ -540,7 +540,7 @@
18330 UNSPEC_DPAQX_S_W_PH))])]
18331 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18332 "dpaqx_s.w.ph\t%q0,%z2,%z3"
18333 - [(set_attr "type" "imadd")
18334 + [(set_attr "type" "dspmac")
18335 (set_attr "mode" "SI")])
18336
18337 (define_insn "mips_dpaqx_sa_w_ph"
18338 @@ -555,7 +555,7 @@
18339 UNSPEC_DPAQX_SA_W_PH))])]
18340 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18341 "dpaqx_sa.w.ph\t%q0,%z2,%z3"
18342 - [(set_attr "type" "imadd")
18343 + [(set_attr "type" "dspmacsat")
18344 (set_attr "mode" "SI")])
18345
18346 (define_insn "mips_dpsqx_s_w_ph"
18347 @@ -570,7 +570,7 @@
18348 UNSPEC_DPSQX_S_W_PH))])]
18349 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18350 "dpsqx_s.w.ph\t%q0,%z2,%z3"
18351 - [(set_attr "type" "imadd")
18352 + [(set_attr "type" "dspmac")
18353 (set_attr "mode" "SI")])
18354
18355 (define_insn "mips_dpsqx_sa_w_ph"
18356 @@ -585,5 +585,43 @@
18357 UNSPEC_DPSQX_SA_W_PH))])]
18358 "ISA_HAS_DSPR2 && !TARGET_64BIT"
18359 "dpsqx_sa.w.ph\t%q0,%z2,%z3"
18360 - [(set_attr "type" "imadd")
18361 + [(set_attr "type" "dspmacsat")
18362 + (set_attr "mode" "SI")])
18363 +
18364 +;; Convert mtlo $ac[1-3],$0 => mult $ac[1-3],$0,$0
18365 +;; mthi $ac[1-3],$0
18366 +(define_peephole2
18367 + [(set (match_operand:SI 0 "register_operand" "")
18368 + (const_int 0))
18369 + (set (match_operand:SI 1 "register_operand" "")
18370 + (const_int 0))]
18371 + "ISA_HAS_DSPR2
18372 + && !TARGET_MIPS16
18373 + && !TARGET_64BIT
18374 + && (((true_regnum (operands[0]) == AC1LO_REGNUM
18375 + && true_regnum (operands[1]) == AC1HI_REGNUM)
18376 + || (true_regnum (operands[0]) == AC1HI_REGNUM
18377 + && true_regnum (operands[1]) == AC1LO_REGNUM))
18378 + || ((true_regnum (operands[0]) == AC2LO_REGNUM
18379 + && true_regnum (operands[1]) == AC2HI_REGNUM)
18380 + || (true_regnum (operands[0]) == AC2HI_REGNUM
18381 + && true_regnum (operands[1]) == AC2LO_REGNUM))
18382 + || ((true_regnum (operands[0]) == AC3LO_REGNUM
18383 + && true_regnum (operands[1]) == AC3HI_REGNUM)
18384 + || (true_regnum (operands[0]) == AC3HI_REGNUM
18385 + && true_regnum (operands[1]) == AC3LO_REGNUM)))"
18386 + [(parallel [(set (match_dup 0) (const_int 0))
18387 + (set (match_dup 1) (const_int 0))])]
18388 +)
18389 +
18390 +(define_insn "*mips_acc_init"
18391 + [(parallel [(set (match_operand:SI 0 "register_operand" "=a")
18392 + (const_int 0))
18393 + (set (match_operand:SI 1 "register_operand" "=a")
18394 + (const_int 0))])]
18395 + "ISA_HAS_DSPR2
18396 + && !TARGET_MIPS16
18397 + && !TARGET_64BIT"
18398 + "mult\t%q0,$0,$0\t\t# Clear ACC HI/LO"
18399 + [(set_attr "type" "imul")
18400 (set_attr "mode" "SI")])
18401 diff -Nur a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
18402 --- a/gcc/config/mips/mips.h 2009-02-20 16:20:38.000000000 +0100
18403 +++ b/gcc/config/mips/mips.h 2010-01-25 09:50:29.025687257 +0100
18404 @@ -342,6 +342,9 @@
18405 #define TARGET_IRIX 0
18406 #define TARGET_IRIX6 0
18407
18408 +/* SDE specific stuff. */
18409 +#define TARGET_MIPS_SDE 0
18410 +
18411 /* Define preprocessor macros for the -march and -mtune options.
18412 PREFIX is either _MIPS_ARCH or _MIPS_TUNE, INFO is the selected
18413 processor. If INFO's canonical name is "foo", define PREFIX to
18414 @@ -708,8 +711,9 @@
18415 |march=r10000|march=r12000|march=r14000|march=r16000:-mips4} \
18416 %{march=mips32|march=4kc|march=4km|march=4kp|march=4ksc:-mips32} \
18417 %{march=mips32r2|march=m4k|march=4ke*|march=4ksd|march=24k* \
18418 - |march=34k*|march=74k*: -mips32r2} \
18419 - %{march=mips64|march=5k*|march=20k*|march=sb1*|march=sr71000: -mips64} \
18420 + |march=34k*|march=74k*|march=1004k*: -mips32r2} \
18421 + %{march=mips64|march=5k*|march=20k*|march=sb1*|march=sr71000 \
18422 + |march=xlr: -mips64} \
18423 %{march=mips64r2|march=octeon: -mips64r2} \
18424 %{!march=*: -" MULTILIB_ISA_DEFAULT "}}"
18425
18426 @@ -720,7 +724,8 @@
18427 #define MIPS_ARCH_FLOAT_SPEC \
18428 "%{mhard-float|msoft-float|march=mips*:; \
18429 march=vr41*|march=m4k|march=4k*|march=24kc|march=24kec \
18430 - |march=34kc|march=74kc|march=5kc|march=octeon: -msoft-float; \
18431 + |march=34kc|march=74kc|march=1004kc|march=5kc \
18432 + |march=octeon|march=xlr: -msoft-float; \
18433 march=*: -mhard-float}"
18434
18435 /* A spec condition that matches 32-bit options. It only works if
18436 @@ -731,8 +736,9 @@
18437
18438 /* Support for a compile-time default CPU, et cetera. The rules are:
18439 --with-arch is ignored if -march is specified or a -mips is specified
18440 - (other than -mips16).
18441 - --with-tune is ignored if -mtune is specified.
18442 + (other than -mips16); likewise --with-arch-32 and --with-arch-64.
18443 + --with-tune is ignored if -mtune is specified; likewise
18444 + --with-tune-32 and --with-tune-64.
18445 --with-abi is ignored if -mabi is specified.
18446 --with-float is ignored if -mhard-float or -msoft-float are
18447 specified.
18448 @@ -740,7 +746,11 @@
18449 specified. */
18450 #define OPTION_DEFAULT_SPECS \
18451 {"arch", "%{" MIPS_ARCH_OPTION_SPEC ":;: -march=%(VALUE)}" }, \
18452 + {"arch_32", "%{!mabi=*|mabi=32:%{" MIPS_ARCH_OPTION_SPEC ":;: -march=%(VALUE)}}" }, \
18453 + {"arch_64", "%{mabi=n32|mabi=64:%{" MIPS_ARCH_OPTION_SPEC ":;: -march=%(VALUE)}}" }, \
18454 {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
18455 + {"tune_32", "%{!mabi=*|mabi=32:%{!mtune=*:-mtune=%(VALUE)}}" }, \
18456 + {"tune_64", "%{mabi=n32|mabi=64:%{!mtune=*:-mtune=%(VALUE)}}" }, \
18457 {"abi", "%{!mabi=*:-mabi=%(VALUE)}" }, \
18458 {"float", "%{!msoft-float:%{!mhard-float:-m%(VALUE)-float}}" }, \
18459 {"divide", "%{!mdivide-traps:%{!mdivide-breaks:-mdivide-%(VALUE)}}" }, \
18460 @@ -750,7 +760,7 @@
18461
18462 /* A spec that infers the -mdsp setting from an -march argument. */
18463 #define BASE_DRIVER_SELF_SPECS \
18464 - "%{!mno-dsp:%{march=24ke*|march=34k*|march=74k*: -mdsp}}"
18465 + "%{!mno-dsp:%{march=24ke*|march=34k*|march=74k*|march=1004k*: -mdsp}}"
18466
18467 #define DRIVER_SELF_SPECS BASE_DRIVER_SELF_SPECS
18468
18469 @@ -1038,6 +1048,11 @@
18470 /* ISA includes the bbit* instructions. */
18471 #define ISA_HAS_BBIT (TARGET_OCTEON && !TARGET_MIPS16)
18472
18473 +/* ISA has single-instruction unaligned load/store support. */
18474 +#define ISA_HAS_UL_US (TARGET_OCTEON \
18475 + && TARGET_OCTEON_UNALIGNED \
18476 + && !TARGET_MIPS16)
18477 +
18478 /* ISA includes the cins instruction. */
18479 #define ISA_HAS_CINS (TARGET_OCTEON && !TARGET_MIPS16)
18480
18481 @@ -1055,6 +1070,7 @@
18482
18483 /* The CACHE instruction is available. */
18484 #define ISA_HAS_CACHE (TARGET_CACHE_BUILTIN && !TARGET_MIPS16)
18485 +
18486 \f
18487 /* Add -G xx support. */
18488
18489 @@ -1152,6 +1168,7 @@
18490 %{mshared} %{mno-shared} \
18491 %{msym32} %{mno-sym32} \
18492 %{mtune=*} %{v} \
18493 +%{mocteon-useun} %{mno-octeon-useun} \
18494 %(subtarget_asm_spec)"
18495
18496 /* Extra switches sometimes passed to the linker. */
18497 @@ -1622,6 +1639,9 @@
18498 #define GP_REG_LAST 31
18499 #define GP_REG_NUM (GP_REG_LAST - GP_REG_FIRST + 1)
18500 #define GP_DBX_FIRST 0
18501 +#define K0_REG_NUM (GP_REG_FIRST + 26)
18502 +#define K1_REG_NUM (GP_REG_FIRST + 27)
18503 +#define KERNEL_REG_P(REGNO) (IN_RANGE (REGNO, K0_REG_NUM, K1_REG_NUM))
18504
18505 #define FP_REG_FIRST 32
18506 #define FP_REG_LAST 63
18507 @@ -1649,6 +1669,10 @@
18508 #define COP0_REG_LAST 111
18509 #define COP0_REG_NUM (COP0_REG_LAST - COP0_REG_FIRST + 1)
18510
18511 +#define COP0_STATUS_REG_NUM (COP0_REG_FIRST + 12)
18512 +#define COP0_CAUSE_REG_NUM (COP0_REG_FIRST + 13)
18513 +#define COP0_EPC_REG_NUM (COP0_REG_FIRST + 14)
18514 +
18515 #define COP2_REG_FIRST 112
18516 #define COP2_REG_LAST 143
18517 #define COP2_REG_NUM (COP2_REG_LAST - COP2_REG_FIRST + 1)
18518 @@ -1666,6 +1690,29 @@
18519 #define AT_REGNUM (GP_REG_FIRST + 1)
18520 #define HI_REGNUM (TARGET_BIG_ENDIAN ? MD_REG_FIRST : MD_REG_FIRST + 1)
18521 #define LO_REGNUM (TARGET_BIG_ENDIAN ? MD_REG_FIRST + 1 : MD_REG_FIRST)
18522 +#define AC1HI_REGNUM (TARGET_BIG_ENDIAN \
18523 + ? DSP_ACC_REG_FIRST : DSP_ACC_REG_FIRST + 1)
18524 +#define AC1LO_REGNUM (TARGET_BIG_ENDIAN \
18525 + ? DSP_ACC_REG_FIRST + 1 : DSP_ACC_REG_FIRST)
18526 +#define AC2HI_REGNUM (TARGET_BIG_ENDIAN \
18527 + ? DSP_ACC_REG_FIRST + 2 : DSP_ACC_REG_FIRST + 3)
18528 +#define AC2LO_REGNUM (TARGET_BIG_ENDIAN \
18529 + ? DSP_ACC_REG_FIRST + 3 : DSP_ACC_REG_FIRST + 2)
18530 +#define AC3HI_REGNUM (TARGET_BIG_ENDIAN \
18531 + ? DSP_ACC_REG_FIRST + 4 : DSP_ACC_REG_FIRST + 5)
18532 +#define AC3LO_REGNUM (TARGET_BIG_ENDIAN \
18533 + ? DSP_ACC_REG_FIRST + 5 : DSP_ACC_REG_FIRST + 4)
18534 +
18535 +/* A few bitfield locations for the coprocessor registers. */
18536 +/* Request Interrupt Priority Level is from bit 10 to bit 15 of
18537 + the cause register for the EIC interrupt mode. */
18538 +#define CAUSE_IPL 10
18539 +/* Interrupt Priority Level is from bit 10 to bit 15 of the status register. */
18540 +#define SR_IPL 10
18541 +/* Exception Level is at bit 1 of the status register. */
18542 +#define SR_EXL 1
18543 +/* Interrupt Enable is at bit 0 of the status register. */
18544 +#define SR_IE 0
18545
18546 /* FPSW_REGNUM is the single condition code used if !ISA_HAS_8CC.
18547 If ISA_HAS_8CC, it should not be used, and an arbitrary ST_REG
18548 @@ -1754,11 +1801,18 @@
18549 incoming arguments, the static chain pointer, or the frame pointer.
18550 The epilogue temporary mustn't conflict with the return registers,
18551 the PIC call register ($25), the frame pointer, the EH stack adjustment,
18552 - or the EH data registers. */
18553 + or the EH data registers.
18554 +
18555 + If we're generating interrupt handlers, we use K0 as a temporary register
18556 + in prologue/epilogue code. */
18557
18558 #define MIPS16_PIC_TEMP_REGNUM (GP_REG_FIRST + 2)
18559 -#define MIPS_PROLOGUE_TEMP_REGNUM (GP_REG_FIRST + 3)
18560 -#define MIPS_EPILOGUE_TEMP_REGNUM (GP_REG_FIRST + (TARGET_MIPS16 ? 6 : 8))
18561 +#define MIPS_PROLOGUE_TEMP_REGNUM \
18562 + (cfun->machine->interrupt_handler_p ? K0_REG_NUM : GP_REG_FIRST + 3)
18563 +#define MIPS_EPILOGUE_TEMP_REGNUM \
18564 + (cfun->machine->interrupt_handler_p \
18565 + ? K0_REG_NUM \
18566 + : GP_REG_FIRST + (TARGET_MIPS16 ? 6 : 8))
18567
18568 #define MIPS16_PIC_TEMP gen_rtx_REG (Pmode, MIPS16_PIC_TEMP_REGNUM)
18569 #define MIPS_PROLOGUE_TEMP(MODE) gen_rtx_REG (MODE, MIPS_PROLOGUE_TEMP_REGNUM)
18570 @@ -2284,14 +2338,7 @@
18571 (mips_abi == ABI_EABI && UNITS_PER_FPVALUE >= UNITS_PER_DOUBLE)
18572
18573 \f
18574 -/* Say that the epilogue uses the return address register. Note that
18575 - in the case of sibcalls, the values "used by the epilogue" are
18576 - considered live at the start of the called function.
18577 -
18578 - If using a GOT, say that the epilogue also uses GOT_VERSION_REGNUM.
18579 - See the comment above load_call<mode> for details. */
18580 -#define EPILOGUE_USES(REGNO) \
18581 - ((REGNO) == 31 || (TARGET_USE_GOT && (REGNO) == GOT_VERSION_REGNUM))
18582 +#define EPILOGUE_USES(REGNO) mips_epilogue_uses (REGNO)
18583
18584 /* Treat LOC as a byte offset from the stack pointer and round it up
18585 to the next fully-aligned offset. */
18586 diff -Nur a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
18587 --- a/gcc/config/mips/mips.md 2009-02-20 16:20:38.000000000 +0100
18588 +++ b/gcc/config/mips/mips.md 2010-01-25 09:50:29.035686224 +0100
18589 @@ -67,7 +67,16 @@
18590 (UNSPEC_SET_GOT_VERSION 46)
18591 (UNSPEC_UPDATE_GOT_VERSION 47)
18592 (UNSPEC_COPYGP 48)
18593 + (UNSPEC_ERET 49)
18594 + (UNSPEC_DERET 50)
18595 + (UNSPEC_DI 51)
18596 + (UNSPEC_EHB 52)
18597 + (UNSPEC_RDPGPR 53)
18598 + (UNSPEC_COP0 54)
18599
18600 + (UNSPEC_UNALIGNED_LOAD 60)
18601 + (UNSPEC_UNALIGNED_STORE 61)
18602 +
18603 (UNSPEC_ADDRESS_FIRST 100)
18604
18605 (TLS_GET_TP_REGNUM 3)
18606 @@ -372,6 +381,12 @@
18607 ;; frsqrt floating point reciprocal square root
18608 ;; frsqrt1 floating point reciprocal square root step1
18609 ;; frsqrt2 floating point reciprocal square root step2
18610 +;; dspmac DSP MAC instructions not saturating the accumulator
18611 +;; dspmacsat DSP MAC instructions that saturate the accumulator
18612 +;; accext DSP accumulator extract instructions
18613 +;; accmod DSP accumulator modify instructions
18614 +;; dspalu DSP ALU instructions not saturating the result
18615 +;; dspalusat DSP ALU instructions that saturate the result
18616 ;; multi multiword sequence (or user asm statements)
18617 ;; nop no operation
18618 ;; ghost an instruction that produces no real code
18619 @@ -380,7 +395,7 @@
18620 prefetch,prefetchx,condmove,mtc,mfc,mthilo,mfhilo,const,arith,logical,
18621 shift,slt,signext,clz,pop,trap,imul,imul3,imul3nc,imadd,idiv,idiv3,move,
18622 fmove,fadd,fmul,fmadd,fdiv,frdiv,frdiv1,frdiv2,fabs,fneg,fcmp,fcvt,fsqrt,
18623 - frsqrt,frsqrt1,frsqrt2,multi,nop,ghost"
18624 + frsqrt,frsqrt1,frsqrt2,dspmac,dspmacsat,accext,accmod,dspalu,dspalusat,multi,nop,ghost"
18625 (cond [(eq_attr "jal" "!unset") (const_string "call")
18626 (eq_attr "got" "load") (const_string "load")
18627
18628 @@ -3565,7 +3580,9 @@
18629 (unspec:GPR [(match_operand:BLK 1 "memory_operand" "m")
18630 (match_operand:QI 2 "memory_operand" "m")]
18631 UNSPEC_LOAD_LEFT))]
18632 - "!TARGET_MIPS16 && mips_mem_fits_mode_p (<MODE>mode, operands[1])"
18633 + "!TARGET_MIPS16
18634 + && !ISA_HAS_UL_US
18635 + && mips_mem_fits_mode_p (<MODE>mode, operands[1])"
18636 "<load>l\t%0,%2"
18637 [(set_attr "move_type" "load")
18638 (set_attr "mode" "<MODE>")])
18639 @@ -3576,7 +3593,9 @@
18640 (match_operand:QI 2 "memory_operand" "m")
18641 (match_operand:GPR 3 "register_operand" "0")]
18642 UNSPEC_LOAD_RIGHT))]
18643 - "!TARGET_MIPS16 && mips_mem_fits_mode_p (<MODE>mode, operands[1])"
18644 + "!TARGET_MIPS16
18645 + && !ISA_HAS_UL_US
18646 + && mips_mem_fits_mode_p (<MODE>mode, operands[1])"
18647 "<load>r\t%0,%2"
18648 [(set_attr "move_type" "load")
18649 (set_attr "mode" "<MODE>")])
18650 @@ -3586,7 +3605,9 @@
18651 (unspec:BLK [(match_operand:GPR 1 "reg_or_0_operand" "dJ")
18652 (match_operand:QI 2 "memory_operand" "m")]
18653 UNSPEC_STORE_LEFT))]
18654 - "!TARGET_MIPS16 && mips_mem_fits_mode_p (<MODE>mode, operands[0])"
18655 + "!TARGET_MIPS16
18656 + && !ISA_HAS_UL_US
18657 + && mips_mem_fits_mode_p (<MODE>mode, operands[0])"
18658 "<store>l\t%z1,%2"
18659 [(set_attr "move_type" "store")
18660 (set_attr "mode" "<MODE>")])
18661 @@ -3602,6 +3623,28 @@
18662 [(set_attr "move_type" "store")
18663 (set_attr "mode" "<MODE>")])
18664
18665 +;; Unaligned load and store patterns.
18666 +
18667 +(define_insn "mov_u<load>"
18668 + [(set (match_operand:GPR 0 "register_operand" "=d")
18669 + (unspec:GPR [(match_operand:BLK 1 "memory_operand" "m")
18670 + (match_operand:QI 2 "memory_operand" "m")]
18671 + UNSPEC_UNALIGNED_LOAD))]
18672 + "ISA_HAS_UL_US && mips_mem_fits_mode_p (<MODE>mode, operands[1])"
18673 + "u<load>\t%0,%2"
18674 + [(set_attr "type" "load")
18675 + (set_attr "mode" "<MODE>")])
18676 +
18677 +(define_insn "mov_u<store>"
18678 + [(set (match_operand:BLK 0 "memory_operand" "=m")
18679 + (unspec:BLK [(match_operand:GPR 1 "reg_or_0_operand" "dJ")
18680 + (match_operand:QI 2 "memory_operand" "m")]
18681 + UNSPEC_UNALIGNED_STORE))]
18682 + "ISA_HAS_UL_US && mips_mem_fits_mode_p (<MODE>mode, operands[0])"
18683 + "u<store>\t%z1,%2"
18684 + [(set_attr "type" "store")
18685 + (set_attr "mode" "<MODE>")])
18686 +
18687 ;; An instruction to calculate the high part of a 64-bit SYMBOL_ABSOLUTE.
18688 ;; The required value is:
18689 ;;
18690 @@ -5472,6 +5515,26 @@
18691 return "%*b\t%l0%/";
18692 else
18693 {
18694 + if (final_sequence && (mips_abi == ABI_32 || mips_abi == ABI_O64))
18695 + {
18696 + /* If the delay slot contains a $gp restore, we need to
18697 + do that first, because we need it for the load
18698 + label. Other ABIs do not have caller-save $gp. */
18699 + rtx next = NEXT_INSN (insn);
18700 + if (INSN_P (next) && !INSN_DELETED_P (next))
18701 + {
18702 + rtx pat = PATTERN (next);
18703 + if (GET_CODE (pat) == SET
18704 + && REG_P (SET_DEST (pat))
18705 + && REGNO (SET_DEST (pat)) == PIC_OFFSET_TABLE_REGNUM)
18706 + {
18707 + rtx ops[2];
18708 + ops[0] = SET_DEST (pat);
18709 + ops[1] = SET_SRC (pat);
18710 + output_asm_insn (mips_output_move (ops[0], ops[1]), ops);
18711 + }
18712 + }
18713 + }
18714 output_asm_insn (mips_output_load_label (), operands);
18715 return "%*jr\t%@%/%]";
18716 }
18717 @@ -5490,7 +5553,13 @@
18718 (lt (abs (minus (match_dup 0)
18719 (plus (pc) (const_int 4))))
18720 (const_int 131072)))
18721 - (const_int 4) (const_int 16)))])
18722 + (const_int 4)
18723 + (if_then_else
18724 + ;; for these two ABIs we may need to move a restore of $gp
18725 + (ior (eq (symbol_ref "mips_abi") (symbol_ref "ABI_32"))
18726 + (eq (symbol_ref "mips_abi") (symbol_ref "ABI_O64")))
18727 + (const_int 20)
18728 + (const_int 16))))])
18729
18730 ;; We need a different insn for the mips16, because a mips16 branch
18731 ;; does not have a delay slot.
18732 @@ -5679,6 +5748,60 @@
18733 [(set_attr "type" "jump")
18734 (set_attr "mode" "none")])
18735
18736 +;; Exception return.
18737 +(define_insn "mips_eret"
18738 + [(return)
18739 + (unspec_volatile [(const_int 0)] UNSPEC_ERET)]
18740 + ""
18741 + "eret"
18742 + [(set_attr "type" "trap")
18743 + (set_attr "mode" "none")])
18744 +
18745 +;; Debug exception return.
18746 +(define_insn "mips_deret"
18747 + [(return)
18748 + (unspec_volatile [(const_int 0)] UNSPEC_DERET)]
18749 + ""
18750 + "deret"
18751 + [(set_attr "type" "trap")
18752 + (set_attr "mode" "none")])
18753 +
18754 +;; Disable interrupts.
18755 +(define_insn "mips_di"
18756 + [(unspec_volatile [(const_int 0)] UNSPEC_DI)]
18757 + ""
18758 + "di"
18759 + [(set_attr "type" "trap")
18760 + (set_attr "mode" "none")])
18761 +
18762 +;; Execution hazard barrier.
18763 +(define_insn "mips_ehb"
18764 + [(unspec_volatile [(const_int 0)] UNSPEC_EHB)]
18765 + ""
18766 + "ehb"
18767 + [(set_attr "type" "trap")
18768 + (set_attr "mode" "none")])
18769 +
18770 +;; Read GPR from previous shadow register set.
18771 +(define_insn "mips_rdpgpr"
18772 + [(set (match_operand:SI 0 "register_operand" "=d")
18773 + (unspec_volatile:SI [(match_operand:SI 1 "register_operand" "d")]
18774 + UNSPEC_RDPGPR))]
18775 + ""
18776 + "rdpgpr\t%0,%1"
18777 + [(set_attr "type" "move")
18778 + (set_attr "mode" "SI")])
18779 +
18780 +;; Move involving COP0 registers.
18781 +(define_insn "cop0_move"
18782 + [(set (match_operand:SI 0 "register_operand" "=B,d")
18783 + (unspec_volatile:SI [(match_operand:SI 1 "register_operand" "d,B")]
18784 + UNSPEC_COP0))]
18785 + ""
18786 +{ return mips_output_move (operands[0], operands[1]); }
18787 + [(set_attr "type" "mtc,mfc")
18788 + (set_attr "mode" "SI")])
18789 +
18790 ;; This is used in compiling the unwind routines.
18791 (define_expand "eh_return"
18792 [(use (match_operand 0 "general_operand"))]
18793 diff -Nur a/gcc/config/mips/mips.opt b/gcc/config/mips/mips.opt
18794 --- a/gcc/config/mips/mips.opt 2009-02-20 16:20:38.000000000 +0100
18795 +++ b/gcc/config/mips/mips.opt 2010-01-25 09:50:29.035686224 +0100
18796 @@ -184,6 +184,10 @@
18797 Target Report RejectNegative Mask(MIPS16)
18798 Generate MIPS16 code
18799
18800 +mips16e
18801 +Target Report RejectNegative Mask(MIPS16) MaskExists
18802 +Deprecated; alias for -mips16
18803 +
18804 mips3d
18805 Target Report RejectNegative Mask(MIPS3D)
18806 Use MIPS-3D instructions
18807 @@ -236,6 +240,10 @@
18808 Target Report RejectNegative InverseMask(MIPS3D)
18809 Do not use MIPS-3D instructions
18810
18811 +mocteon-useun
18812 +Target Report Mask(OCTEON_UNALIGNED)
18813 +Use Octeon-specific unaligned loads/stores for 32/64-bit data
18814 +
18815 mpaired-single
18816 Target Report Mask(PAIRED_SINGLE_FLOAT)
18817 Use paired-single floating-point instructions
18818 diff -Nur a/gcc/config/mips/mips-protos.h b/gcc/config/mips/mips-protos.h
18819 --- a/gcc/config/mips/mips-protos.h 2009-02-20 16:20:38.000000000 +0100
18820 +++ b/gcc/config/mips/mips-protos.h 2010-01-25 09:50:29.035686224 +0100
18821 @@ -261,6 +261,8 @@
18822 extern void mips_output_external (FILE *, tree, const char *);
18823 extern void mips_output_filename (FILE *, const char *);
18824 extern void mips_output_ascii (FILE *, const char *, size_t);
18825 +extern void octeon_output_shared_variable (FILE *, tree, const char *,
18826 + unsigned HOST_WIDE_INT, int);
18827 extern void mips_output_aligned_decl_common (FILE *, tree, const char *,
18828 unsigned HOST_WIDE_INT,
18829 unsigned int);
18830 @@ -307,6 +309,8 @@
18831 extern bool mips_linked_madd_p (rtx, rtx);
18832 extern bool mips_store_data_bypass_p (rtx, rtx);
18833 extern rtx mips_prefetch_cookie (rtx, rtx);
18834 +extern int mips_mult_madd_chain_bypass_p (rtx, rtx);
18835 +extern int mips_dspalu_bypass_p (rtx, rtx);
18836
18837 extern void irix_asm_output_align (FILE *, unsigned);
18838 extern const char *current_section_name (void);
18839 @@ -332,4 +336,6 @@
18840
18841 extern void mips_expand_vector_init (rtx, rtx);
18842
18843 +extern bool mips_epilogue_uses (unsigned int);
18844 +
18845 #endif /* ! GCC_MIPS_PROTOS_H */
18846 diff -Nur a/gcc/config/mips/montavista-linux.h b/gcc/config/mips/montavista-linux.h
18847 --- a/gcc/config/mips/montavista-linux.h 1970-01-01 01:00:00.000000000 +0100
18848 +++ b/gcc/config/mips/montavista-linux.h 2010-01-25 09:50:29.035686224 +0100
18849 @@ -0,0 +1,54 @@
18850 +/* MontaVista GNU/Linux Configuration.
18851 + Copyright (C) 2009
18852 + Free Software Foundation, Inc.
18853 +
18854 +This file is part of GCC.
18855 +
18856 +GCC is free software; you can redistribute it and/or modify
18857 +it under the terms of the GNU General Public License as published by
18858 +the Free Software Foundation; either version 3, or (at your option)
18859 +any later version.
18860 +
18861 +GCC is distributed in the hope that it will be useful,
18862 +but WITHOUT ANY WARRANTY; without even the implied warranty of
18863 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18864 +GNU General Public License for more details.
18865 +
18866 +You should have received a copy of the GNU General Public License
18867 +along with GCC; see the file COPYING3. If not see
18868 +<http://www.gnu.org/licenses/>. */
18869 +
18870 +/* Override linux64.h to default to O32. */
18871 +#undef SUBTARGET_SELF_SPECS
18872 +#define SUBTARGET_SELF_SPECS \
18873 +NO_SHARED_SPECS, \
18874 +"%{!EB:%{!EL:%(endian_spec)}}", \
18875 +"%{!mabi=*: -mabi=32}"
18876 +
18877 +/* We do not need to provide an explicit big-endian multilib. */
18878 +#undef MULTILIB_DEFAULTS
18879 +#define MULTILIB_DEFAULTS \
18880 + { "meb", "mabi=32" }
18881 +
18882 +/* The various C libraries each have their own subdirectory. */
18883 +#undef SYSROOT_SUFFIX_SPEC
18884 +#define SYSROOT_SUFFIX_SPEC \
18885 + "%{mel:%{msoft-float:/mel/soft-float ; \
18886 + :/mel} ; \
18887 + msoft-float:/soft-float}"
18888 +
18889 +/* MULTILIB_OSDIRNAMES provides directory names used in two ways:
18890 + relative to $target/lib/ in the GCC installation, and relative to
18891 + lib/ and usr/lib/ in a sysroot. For the latter, we want names such
18892 + as plain ../lib64, but these cannot be used outside the sysroot
18893 + because different multilibs would be mapped to the same directory.
18894 + Directories are searched both with and without the multilib suffix,
18895 + so it suffices if the directory without the suffix is correct
18896 + within the sysroot while the directory with the suffix doesn't
18897 + exist. We use STARTFILE_PREFIX_SPEC to achieve the desired
18898 + effect. */
18899 +#undef STARTFILE_PREFIX_SPEC
18900 +#define STARTFILE_PREFIX_SPEC \
18901 + "%{mabi=32: /usr/local/lib/ /lib/ /usr/lib/} \
18902 + %{mabi=n32: /usr/local/lib32/ /lib32/ /usr/lib32/} \
18903 + %{mabi=64: /usr/local/lib64/ /lib64/ /usr/lib64/}"
18904 diff -Nur a/gcc/config/mips/octeon-elf.h b/gcc/config/mips/octeon-elf.h
18905 --- a/gcc/config/mips/octeon-elf.h 1970-01-01 01:00:00.000000000 +0100
18906 +++ b/gcc/config/mips/octeon-elf.h 2010-01-25 09:50:29.035686224 +0100
18907 @@ -0,0 +1,98 @@
18908 +/* Macros for mips*-octeon-elf target.
18909 + Copyright (C) 2004, 2005, 2006 Cavium Networks.
18910 +
18911 +This file is part of GCC.
18912 +
18913 +GCC is free software; you can redistribute it and/or modify
18914 +it under the terms of the GNU General Public License as published by
18915 +the Free Software Foundation; either version 2, or (at your option)
18916 +any later version.
18917 +
18918 +GCC is distributed in the hope that it will be useful,
18919 +but WITHOUT ANY WARRANTY; without even the implied warranty of
18920 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18921 +GNU General Public License for more details.
18922 +
18923 +You should have received a copy of the GNU General Public License
18924 +along with GCC; see the file COPYING. If not, write to
18925 +the Free Software Foundation, 51 Franklin Street, Fifth Floor,
18926 +Boston, MA 02110-1301, USA. */
18927 +
18928 +/* Add MASK_SOFT_FLOAT and MASK_OCTEON_UNALIGNED. */
18929 +
18930 +#undef TARGET_DEFAULT
18931 +#define TARGET_DEFAULT (MASK_SOFT_FLOAT_ABI | MASK_OCTEON_UNALIGNED)
18932 +
18933 +/* Forward -m*octeon-useun. */
18934 +
18935 +#undef SUBTARGET_ASM_SPEC
18936 +#define SUBTARGET_ASM_SPEC "%{mno-octeon-useun} %{!mno-octeon-useun:-mocteon-useun}"
18937 +
18938 +/* Enable backtrace including on machine exceptions by default. */
18939 +
18940 +#undef SUBTARGET_CC1_SPEC
18941 +#define SUBTARGET_CC1_SPEC "%{!fno-asynchronous-unwind-tables:-fasynchronous-unwind-tables}"
18942 +
18943 +/* Without ASM_PREFERRED_EH_DATA_FORMAT, output_call_frame_info emits
18944 + pointer-sized addresses for FDE addresses. For 64-bit targets, it does
18945 + it without properly "switching over" to 64-bit as described in the DWARF3
18946 + spec. GDB can fall back on .eh_frames and misinterpret FDE addresses.
18947 + Instead let's be explicit and use augmentation to describe the encoding if
18948 + pointer size is 64. */
18949 +
18950 +#undef ASM_PREFERRED_EH_DATA_FORMAT
18951 +#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
18952 + ((CODE) == 1 && POINTER_SIZE == 64 \
18953 + ? (ABI_HAS_64BIT_SYMBOLS ? DW_EH_PE_udata8 : DW_EH_PE_udata4) \
18954 + : DW_EH_PE_absptr)
18955 +
18956 +/* Link to libc library. */
18957 +
18958 +#undef LIB_SPEC
18959 +#define LIB_SPEC "-lc"
18960 +
18961 +/* Link to startup file. */
18962 +
18963 +#undef STARTFILE_SPEC
18964 +#define STARTFILE_SPEC "crti%O%s crtbegin%O%s crt0%O%s"
18965 +
18966 +/* Default our test-only n64 configuration to -G0 since that is what
18967 + the kernel uses. */
18968 +
18969 +#undef SUBTARGET_SELF_SPECS
18970 +#define SUBTARGET_SELF_SPECS \
18971 +"%{mabi=64:%{!G*: -G0}}"
18972 +
18973 +/* Pass linker emulation mode for N32. */
18974 +
18975 +#undef LINK_SPEC
18976 +#define LINK_SPEC "\
18977 +%(endian_spec) \
18978 +%{G*} %{mips1} %{mips2} %{mips3} %{mips4} %{mips32} %{mips32r2} %{mips64} \
18979 +%{mips64r2} %{bestGnum} %{shared} %{non_shared} \
18980 +%{mabi=n32:-melf32e%{!EL:b}%{EL:l}octeonn32} \
18981 +%{mabi=64:-melf64e%{!EL:b}%{EL:l}octeon}"
18982 +
18983 +/* Override because of N32. */
18984 +
18985 +#undef LOCAL_LABEL_PREFIX
18986 +#define LOCAL_LABEL_PREFIX ((mips_abi == ABI_N32) ? "." : "$")
18987 +
18988 +/* Append the core number to the GCOV filename FN. */
18989 +
18990 +#define GCOV_TARGET_SUFFIX_LENGTH 2
18991 +#define ADD_GCOV_TARGET_SUFFIX(FN) \
18992 +do \
18993 + { \
18994 + char *fn = FN; \
18995 + int core; \
18996 + char s[3]; \
18997 + \
18998 + asm ("rdhwr %0, $0" : "=r"(core)); \
18999 + sprintf (s, "%d", core); \
19000 + strcat (fn, s); \
19001 + } \
19002 +while (0)
19003 +
19004 +/* Code to unwind through the exception frame. */
19005 +#define MD_UNWIND_SUPPORT "config/mips/octeon-elf-unwind.h"
19006 diff -Nur a/gcc/config/mips/octeon-elf-unwind.h b/gcc/config/mips/octeon-elf-unwind.h
19007 --- a/gcc/config/mips/octeon-elf-unwind.h 1970-01-01 01:00:00.000000000 +0100
19008 +++ b/gcc/config/mips/octeon-elf-unwind.h 2010-01-25 09:50:29.035686224 +0100
19009 @@ -0,0 +1,57 @@
19010 +/* Stack unwinding support through the first exception frame.
19011 + Copyright (C) 2007 Cavium Networks.
19012 +
19013 +This file is part of GCC.
19014 +
19015 +GCC is free software; you can redistribute it and/or modify
19016 +it under the terms of the GNU General Public License as published by
19017 +the Free Software Foundation; either version 2, or (at your option)
19018 +any later version.
19019 +
19020 +GCC is distributed in the hope that it will be useful,
19021 +but WITHOUT ANY WARRANTY; without even the implied warranty of
19022 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19023 +GNU General Public License for more details.
19024 +
19025 +You should have received a copy of the GNU General Public License
19026 +along with GCC; see the file COPYING. If not, write to
19027 +the Free Software Foundation, 51 Franklin Street, Fifth Floor,
19028 +Boston, MA 02110-1301, USA. */
19029 +
19030 +#define MD_FALLBACK_FRAME_STATE_FOR octeon_elf_fallback_frame_state
19031 +
19032 +/* Check whether this is the cvmx_interrupt_stage2 frame. If the
19033 + function call was dispatched via k0 assume we are in
19034 + cvmx_interrupt_stage2. In this case the sp in point to the saved
19035 + register array. */
19036 +
19037 +static _Unwind_Reason_Code
19038 +octeon_elf_fallback_frame_state (struct _Unwind_Context *context,
19039 + _Unwind_FrameState *fs)
19040 +{
19041 + unsigned i;
19042 + unsigned *pc = context->ra;
19043 +
19044 + /* Look for "jalr k0". */
19045 + if (pc[-2] != 0x0340f809)
19046 + return _URC_END_OF_STACK;
19047 +
19048 + for (i = 0; i < 32; i++)
19049 + {
19050 + fs->regs.reg[i].how = REG_SAVED_OFFSET;
19051 + fs->regs.reg[i].loc.offset = 8 * i;
19052 + }
19053 +
19054 + /* Keep the next frame's sp. This way we have a CFA that points
19055 + exactly to the register array. */
19056 + fs->regs.cfa_how = CFA_REG_OFFSET;
19057 + fs->regs.cfa_reg = STACK_POINTER_REGNUM;
19058 + fs->regs.cfa_offset = 0;
19059 +
19060 + /* DEPC is saved as the 35. register. */
19061 + fs->regs.reg[DWARF_ALT_FRAME_RETURN_COLUMN].how = REG_SAVED_OFFSET;
19062 + fs->regs.reg[DWARF_ALT_FRAME_RETURN_COLUMN].loc.offset = 8 * 35;
19063 + fs->retaddr_column = DWARF_ALT_FRAME_RETURN_COLUMN;
19064 +
19065 + return _URC_NO_REASON;
19066 +}
19067 diff -Nur a/gcc/config/mips/octeon.h b/gcc/config/mips/octeon.h
19068 --- a/gcc/config/mips/octeon.h 1970-01-01 01:00:00.000000000 +0100
19069 +++ b/gcc/config/mips/octeon.h 2010-01-25 09:50:29.035686224 +0100
19070 @@ -0,0 +1,68 @@
19071 +/* Macros for mips*-octeon-* target.
19072 + Copyright (C) 2004, 2005, 2006 Cavium Networks.
19073 +
19074 +This file is part of GCC.
19075 +
19076 +GCC is free software; you can redistribute it and/or modify
19077 +it under the terms of the GNU General Public License as published by
19078 +the Free Software Foundation; either version 2, or (at your option)
19079 +any later version.
19080 +
19081 +GCC is distributed in the hope that it will be useful,
19082 +but WITHOUT ANY WARRANTY; without even the implied warranty of
19083 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19084 +GNU General Public License for more details.
19085 +
19086 +You should have received a copy of the GNU General Public License
19087 +along with GCC; see the file COPYING. If not, write to
19088 +the Free Software Foundation, 51 Franklin Street, Fifth Floor,
19089 +Boston, MA 02110-1301, USA. */
19090 +
19091 +#define CVMX_SHARED_BSS_FLAGS (SECTION_WRITE | SECTION_BSS)
19092 +
19093 +#undef TARGET_ASM_SELECT_SECTION
19094 +#define TARGET_ASM_SELECT_SECTION octeon_select_section
19095 +
19096 +#undef TARGET_ASM_UNIQUE_SECTION
19097 +#define TARGET_ASM_UNIQUE_SECTION octeon_unique_section
19098 +
19099 +/* Implement ASM_OUTPUT_ALIGNED_DECL_LOCAL. This differs from the
19100 + generic version only in the use of cvmx_shared attribute. */
19101 +
19102 +#undef ASM_OUTPUT_ALIGNED_DECL_LOCAL
19103 +#define ASM_OUTPUT_ALIGNED_DECL_LOCAL(STREAM, DECL, NAME, SIZE, ALIGN) \
19104 + do \
19105 + { \
19106 + if ((DECL) && TREE_CODE ((DECL)) == VAR_DECL \
19107 + && lookup_attribute ("cvmx_shared", DECL_ATTRIBUTES (DECL))) \
19108 + { \
19109 + fprintf ((STREAM), "%s", LOCAL_ASM_OP); \
19110 + assemble_name ((STREAM), (NAME)); \
19111 + fprintf ((STREAM), "\n"); \
19112 + octeon_output_shared_variable ((STREAM), (DECL), (NAME), \
19113 + (SIZE), (ALIGN)); \
19114 + } \
19115 + else \
19116 + ASM_OUTPUT_ALIGNED_LOCAL (STREAM, NAME, SIZE, ALIGN); \
19117 + } \
19118 + while (0)
19119 +
19120 +\f
19121 +/* Implement ASM_OUTPUT_ALIGNED_DECL_COMMON. This differs from the mips
19122 + version only in the use of cvmx_shared attribute. */
19123 +
19124 +#undef ASM_OUTPUT_ALIGNED_DECL_COMMON
19125 +#define ASM_OUTPUT_ALIGNED_DECL_COMMON(STREAM, DECL, NAME, SIZE, ALIGN) \
19126 + { \
19127 + if (TREE_CODE ((DECL)) == VAR_DECL \
19128 + && lookup_attribute ("cvmx_shared", DECL_ATTRIBUTES ((DECL)))) \
19129 + { \
19130 + if (TREE_PUBLIC ((DECL)) && DECL_NAME ((DECL))) \
19131 + targetm.asm_out.globalize_label (asm_out_file, (NAME)); \
19132 + octeon_output_shared_variable ((STREAM), (DECL), (NAME), \
19133 + (SIZE), (ALIGN)); \
19134 + } \
19135 + else \
19136 + mips_output_aligned_decl_common ((STREAM), (DECL), (NAME), (SIZE), \
19137 + (ALIGN)); \
19138 + }
19139 diff -Nur a/gcc/config/mips/predicates.md b/gcc/config/mips/predicates.md
19140 --- a/gcc/config/mips/predicates.md 2009-02-20 16:20:38.000000000 +0100
19141 +++ b/gcc/config/mips/predicates.md 2010-01-25 09:50:29.035686224 +0100
19142 @@ -211,6 +211,20 @@
19143 }
19144 })
19145
19146 +(define_predicate "mask_low_and_shift_operator"
19147 + (and (match_code "and")
19148 + (match_test "GET_CODE (XEXP (op, 0)) == ASHIFT
19149 + && GET_CODE (XEXP (op, 1)) == CONST_INT
19150 + && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT"))
19151 +{
19152 + int len;
19153 +
19154 + len = mask_low_and_shift_len (GET_MODE (op),
19155 + INTVAL (XEXP (XEXP (op, 0), 1)),
19156 + INTVAL (XEXP (op, 1)));
19157 + return 0 < len && len <= 32;
19158 +})
19159 +
19160 (define_predicate "consttable_operand"
19161 (match_test "CONSTANT_P (op)"))
19162
19163 diff -Nur a/gcc/config/mips/sde.h b/gcc/config/mips/sde.h
19164 --- a/gcc/config/mips/sde.h 2009-02-20 16:20:38.000000000 +0100
19165 +++ b/gcc/config/mips/sde.h 2010-01-25 09:50:29.035686224 +0100
19166 @@ -19,6 +19,9 @@
19167 along with GCC; see the file COPYING3. If not see
19168 <http://www.gnu.org/licenses/>. */
19169
19170 +#undef TARGET_MIPS_SDE
19171 +#define TARGET_MIPS_SDE 1
19172 +
19173 #undef DRIVER_SELF_SPECS
19174 #define DRIVER_SELF_SPECS \
19175 /* Make sure a -mips option is present. This helps us to pick \
19176 @@ -90,7 +93,8 @@
19177
19178 /* Use $5 as a temporary for both MIPS16 and non-MIPS16. */
19179 #undef MIPS_EPILOGUE_TEMP_REGNUM
19180 -#define MIPS_EPILOGUE_TEMP_REGNUM (GP_REG_FIRST + 5)
19181 +#define MIPS_EPILOGUE_TEMP_REGNUM \
19182 + (cfun->machine->interrupt_handler_p ? K0_REG_NUM : GP_REG_FIRST + 5)
19183
19184 /* Using long will always be right for size_t and ptrdiff_t, since
19185 sizeof(long) must equal sizeof(void *), following from the setting
19186 diff -Nur a/gcc/config/mips/sdemtk.h b/gcc/config/mips/sdemtk.h
19187 --- a/gcc/config/mips/sdemtk.h 2009-02-20 16:20:38.000000000 +0100
19188 +++ b/gcc/config/mips/sdemtk.h 2010-01-25 09:50:29.035686224 +0100
19189 @@ -19,6 +19,8 @@
19190 along with GCC; see the file COPYING3. If not see
19191 <http://www.gnu.org/licenses/>. */
19192
19193 +#define TARGET_MIPS_SDEMTK 1
19194 +
19195 #define TARGET_OS_CPP_BUILTINS() \
19196 do \
19197 { \
19198 @@ -113,3 +115,12 @@
19199 /* ...nor does the call sequence preserve $31. */
19200 #undef MIPS_SAVE_REG_FOR_PROFILING_P
19201 #define MIPS_SAVE_REG_FOR_PROFILING_P(REGNO) ((REGNO) == GP_REG_FIRST + 31)
19202 +
19203 +/* From mips.h, with mno-float option added. */
19204 +
19205 +#undef MIPS_ARCH_FLOAT_SPEC
19206 +#define MIPS_ARCH_FLOAT_SPEC \
19207 + "%{mhard-float|msoft-float|mno-float|march=mips*:; \
19208 + march=vr41*|march=m4k|march=4k*|march=24kc|march=24kec \
19209 + |march=34kc|march=74kc|march=1004kc|march=5kc|march=octeon|march=xlr: -msoft-float; \
19210 + march=*: -mhard-float}"
19211 diff -Nur a/gcc/config/mips/t-crtfm b/gcc/config/mips/t-crtfm
19212 --- a/gcc/config/mips/t-crtfm 1970-01-01 01:00:00.000000000 +0100
19213 +++ b/gcc/config/mips/t-crtfm 2010-01-25 09:50:29.035686224 +0100
19214 @@ -0,0 +1,9 @@
19215 +
19216 +EXTRA_MULTILIB_PARTS += crtfastmath.o
19217 +
19218 +EXTRA_PARTS += crtfastmath.o
19219 +
19220 +$(T)crtfastmath.o: $(srcdir)/config/mips/crtfastmath.c $(GCC_PASSES)
19221 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
19222 + -c -o $(T)crtfastmath.o $(srcdir)/config/mips/crtfastmath.c
19223 +
19224 diff -Nur a/gcc/config/mips/t-montavista-elf b/gcc/config/mips/t-montavista-elf
19225 --- a/gcc/config/mips/t-montavista-elf 1970-01-01 01:00:00.000000000 +0100
19226 +++ b/gcc/config/mips/t-montavista-elf 2010-01-25 09:50:29.035686224 +0100
19227 @@ -0,0 +1,22 @@
19228 +# MontaVista ELF Configuration.
19229 +# Copyright (C) 2009
19230 +# Free Software Foundation, Inc.
19231 +#
19232 +# This file is part of GCC.
19233 +#
19234 +# GCC is free software; you can redistribute it and/or modify
19235 +# it under the terms of the GNU General Public License as published by
19236 +# the Free Software Foundation; either version 3, or (at your option)
19237 +# any later version.
19238 +#
19239 +# GCC is distributed in the hope that it will be useful,
19240 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
19241 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19242 +# GNU General Public License for more details.
19243 +#
19244 +# You should have received a copy of the GNU General Public License
19245 +# along with GCC; see the file COPYING3. If not see
19246 +# <http://www.gnu.org/licenses/>.
19247 +
19248 +MULTILIB_OPTIONS =
19249 +MULTILIB_DIRNAMES =
19250 diff -Nur a/gcc/config/mips/t-montavista-linux b/gcc/config/mips/t-montavista-linux
19251 --- a/gcc/config/mips/t-montavista-linux 1970-01-01 01:00:00.000000000 +0100
19252 +++ b/gcc/config/mips/t-montavista-linux 2010-01-25 09:50:29.035686224 +0100
19253 @@ -0,0 +1,43 @@
19254 +# MontaVista GNU/Linux Configuration.
19255 +# Copyright (C) 2009
19256 +# Free Software Foundation, Inc.
19257 +#
19258 +# This file is part of GCC.
19259 +#
19260 +# GCC is free software; you can redistribute it and/or modify
19261 +# it under the terms of the GNU General Public License as published by
19262 +# the Free Software Foundation; either version 3, or (at your option)
19263 +# any later version.
19264 +#
19265 +# GCC is distributed in the hope that it will be useful,
19266 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
19267 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19268 +# GNU General Public License for more details.
19269 +#
19270 +# You should have received a copy of the GNU General Public License
19271 +# along with GCC; see the file COPYING3. If not see
19272 +# <http://www.gnu.org/licenses/>.
19273 +
19274 +# Build big-endian and little-endian support libraries.
19275 +MULTILIB_OPTIONS = mel msoft-float march=octeon mabi=n32/mabi=64
19276 +MULTILIB_DIRNAMES = mel soft-float octeon n32 64
19277 +MULTILIB_EXCEPTIONS = *mel*/*mabi=n32* *mel*/*mabi=64*
19278 +MULTILIB_EXCEPTIONS += *mel*/*march=octeon* march=octeon march=octeon/mabi=n32
19279 +MULTILIB_EXCEPTIONS += march=octeon/mabi=64 msoft-float/march=octeon
19280 +
19281 +# These files must be built for each multilib.
19282 +EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
19283 +
19284 +# See comment in montavista-linux.h on STARTFILE_PREFIX_SPEC for how the real
19285 +# directories used in the sysroots are determined. These directories
19286 +# are specified so that (a) they are distinct and (b) removing the
19287 +# components that form part of the sysroot suffix leaves the real
19288 +# directory within the sysroot.
19289 +MULTILIB_OSDIRNAMES = msoft-float/mabi.n32=../lib32/soft-float
19290 +MULTILIB_OSDIRNAMES += msoft-float/mabi.64=../lib64/soft-float
19291 +MULTILIB_OSDIRNAMES += msoft-float/march.octeon/mabi.n32=../lib32/soft-float/octeon
19292 +MULTILIB_OSDIRNAMES += msoft-float/march.octeon/mabi.64=../lib64/soft-float/octeon
19293 +MULTILIB_OSDIRNAMES += mel/msoft-float=!mel/soft-float
19294 +MULTILIB_OSDIRNAMES += msoft-float=!soft-float
19295 +MULTILIB_OSDIRNAMES += mabi.64=../lib64
19296 +MULTILIB_OSDIRNAMES += mabi.n32=../lib32
19297 diff -Nur a/gcc/config/mips/t-octeon-elf b/gcc/config/mips/t-octeon-elf
19298 --- a/gcc/config/mips/t-octeon-elf 1970-01-01 01:00:00.000000000 +0100
19299 +++ b/gcc/config/mips/t-octeon-elf 2010-01-25 09:50:29.035686224 +0100
19300 @@ -0,0 +1,41 @@
19301 +# Don't let CTOR_LIST end up in sdata section.
19302 +
19303 +CRTSTUFF_T_CFLAGS = -G 0 -fno-asynchronous-unwind-tables
19304 +
19305 +# Assemble startup files.
19306 +
19307 +$(T)crti.o: $(srcdir)/config/mips/crti.asm $(GCC_PASSES)
19308 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
19309 + -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/mips/crti.asm
19310 +
19311 +$(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
19312 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
19313 + -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/mips/crtn.asm
19314 +
19315 +# N32 uses TFmode for long double.
19316 +
19317 +TPBIT = tp-bit.c
19318 +
19319 +tp-bit.c: $(srcdir)/config/fp-bit.c
19320 + echo '#ifdef __MIPSEL__' > tp-bit.c
19321 + echo '# define FLOAT_BIT_ORDER_MISMATCH' >> tp-bit.c
19322 + echo '#endif' >> tp-bit.c
19323 + echo '#if __LDBL_MANT_DIG__ == 113' >> tp-bit.c
19324 + echo '#define QUIET_NAN_NEGATED' >> tp-bit.c
19325 + echo '# define TFLOAT' >> tp-bit.c
19326 + cat $(srcdir)/config/fp-bit.c >> tp-bit.c
19327 + echo '#endif' >> tp-bit.c
19328 +
19329 +# We must build libgcc2.a with -G 0, in case the user wants to link
19330 +# without the $gp register.
19331 +
19332 +TARGET_LIBGCC2_CFLAGS = -G 0
19333 +
19334 +# Build both ABIs.
19335 +
19336 +MULTILIB_OPTIONS = mabi=n32/mabi=eabi/mabi=64
19337 +MULTILIB_DIRNAMES = n32 eabi n64
19338 +EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
19339 +
19340 +LIBGCC = stmp-multilib
19341 +INSTALL_LIBGCC = install-multilib
19342 diff -Nur a/gcc/config/mips/t-sgxx-linux b/gcc/config/mips/t-sgxx-linux
19343 --- a/gcc/config/mips/t-sgxx-linux 1970-01-01 01:00:00.000000000 +0100
19344 +++ b/gcc/config/mips/t-sgxx-linux 2010-01-25 09:50:29.035686224 +0100
19345 @@ -0,0 +1,13 @@
19346 +MULTILIB_OPTIONS = muclibc march=mips2/march=mips32 msoft-float EL/EB
19347 +MULTILIB_DIRNAMES = uclibc mips2 mips32 soft-float el eb
19348 +MULTILIB_MATCHES := EL=mel EB=meb \
19349 + march?mips2=mips2 march?mips2=mips3 march?mips2=mips4 \
19350 + $(foreach cpu,mips3 mips4 r6000 r4000 vr4100 vr4111 vr4120 vr4130 vr4300 \
19351 + r4400 r4600 orion r4650 loongson2e loongson2f r8000 r10000 \
19352 + r12000 r14000 r16000 vr5000 vr5400 vr5500 rm7000 \
19353 + rm9000,march?mips2=march?$(cpu)) \
19354 + march?mips32=mips32 march?mips32=mips64 \
19355 + $(foreach cpu,4kc 4km 4kp 4ksc mips64 5kc 5kf 20kc sb1 sb1a sr71000 \
19356 + xlr,march?mips32=march?$(cpu))
19357 +MULTILIB_EXCEPTIONS = *muclibc*/*march?mips2* *muclibc*/*march?mips32*
19358 +EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
19359 diff -Nur a/gcc/config/mips/t-sgxxlite-linux b/gcc/config/mips/t-sgxxlite-linux
19360 --- a/gcc/config/mips/t-sgxxlite-linux 1970-01-01 01:00:00.000000000 +0100
19361 +++ b/gcc/config/mips/t-sgxxlite-linux 2010-01-25 09:50:29.035686224 +0100
19362 @@ -0,0 +1,5 @@
19363 +MULTILIB_OPTIONS = muclibc msoft-float EL/EB
19364 +MULTILIB_DIRNAMES = uclibc soft-float el eb
19365 +MULTILIB_MATCHES := EL=mel EB=meb
19366 +EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
19367 +
19368 diff -Nur a/gcc/config/mips/t-sgxx-sde b/gcc/config/mips/t-sgxx-sde
19369 --- a/gcc/config/mips/t-sgxx-sde 1970-01-01 01:00:00.000000000 +0100
19370 +++ b/gcc/config/mips/t-sgxx-sde 2010-01-25 09:50:29.035686224 +0100
19371 @@ -0,0 +1,15 @@
19372 +# SourceryG++ overrides for SDE builds
19373 +
19374 +# We must build libgcc2.a with -G 0, in case the user wants to link
19375 +# without the $gp register. Use -fno-optimize-sibling-calls in case
19376 +# we have a mixed mips16/non-mips16 environment where a plain "jump"
19377 +# instuction won't work across the divide (no jx instruction).
19378 +# Compile libraries with -mcode-xonly, so that they are link-compatible
19379 +# with both -mcode-readable=pcrel and -mcode-readable=yes.
19380 +TARGET_LIBGCC2_CFLAGS = -G 0 -fno-optimize-sibling-calls -mcode-xonly
19381 +
19382 +MULTILIB_OPTIONS = EL/EB mips16 mfp64/msoft-float/mno-float mcode-readable=no
19383 +MULTILIB_DIRNAMES = el eb mips16 fp64 sof nof spram
19384 +MULTILIB_MATCHES = EL=mel EB=meb mips16=mips16e
19385 +MULTILIB_EXCLUSIONS = mcode-readable=no/!mips16
19386 +MULTILIB_EXCEPTIONS =
19387 diff -Nur a/gcc/config/mips/t-wrs-linux b/gcc/config/mips/t-wrs-linux
19388 --- a/gcc/config/mips/t-wrs-linux 1970-01-01 01:00:00.000000000 +0100
19389 +++ b/gcc/config/mips/t-wrs-linux 2010-01-25 09:50:29.035686224 +0100
19390 @@ -0,0 +1,55 @@
19391 +# Wind River GNU/Linux Configuration.
19392 +# Copyright (C) 2006, 2007
19393 +# Free Software Foundation, Inc.
19394 +#
19395 +# This file is part of GCC.
19396 +#
19397 +# GCC is free software; you can redistribute it and/or modify
19398 +# it under the terms of the GNU General Public License as published by
19399 +# the Free Software Foundation; either version 3, or (at your option)
19400 +# any later version.
19401 +#
19402 +# GCC is distributed in the hope that it will be useful,
19403 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
19404 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19405 +# GNU General Public License for more details.
19406 +#
19407 +# You should have received a copy of the GNU General Public License
19408 +# along with GCC; see the file COPYING3. If not see
19409 +# <http://www.gnu.org/licenses/>.
19410 +
19411 +# Build big-endian and little-endian support libraries.
19412 +MULTILIB_OPTIONS = muclibc mel mhard-float march=octeon/march=vr5500 mabi=n32/mabi=64
19413 +MULTILIB_DIRNAMES = uclibc mel hard-float octeon vr5500 n32 64
19414 +MULTILIB_EXCEPTIONS = *muclibc*/*mhard-float*
19415 +MULTILIB_EXCEPTIONS += *muclibc*/*mabi=n32*
19416 +MULTILIB_EXCEPTIONS += *muclibc*/*mabi=64*
19417 +MULTILIB_EXCEPTIONS += *muclibc*/*march=vr5500*
19418 +MULTILIB_EXCEPTIONS += *mel*/*march=vr5500*
19419 +MULTILIB_EXCEPTIONS += march=vr5500*
19420 +MULTILIB_EXCEPTIONS += mhard-float/march=vr5500/*
19421 +MULTILIB_EXCEPTIONS += */march=octeon*
19422 +MULTILIB_EXCEPTIONS += march=octeon march=octeon/mabi=32
19423 +MULTILIB_EXCEPTIONS += mel/mabi=n32 mel/mabi=64
19424 +MULTILIB_EXCEPTIONS += mabi=n32
19425 +# These files must be built for each multilib.
19426 +EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
19427 +
19428 +# See comment in wrs-linux.h on STARTFILE_PREFIX_SPEC for how the real
19429 +# directories used in the sysroots are determined. These directories
19430 +# are specified so that (a) they are distinct and (b) removing the
19431 +# components that form part of the sysroot suffix leaves the real
19432 +# directory within the sysroot.
19433 +MULTILIB_OSDIRNAMES = mel/mhard-float/mabi.n32=../lib32/mel/hard-float
19434 +MULTILIB_OSDIRNAMES += mel/mhard-float/mabi.64=../lib64/mel/hard-float
19435 +MULTILIB_OSDIRNAMES += mhard-float/mabi.n32=../lib32/hard-float
19436 +MULTILIB_OSDIRNAMES += mhard-float/mabi.64=../lib64/hard-float
19437 +MULTILIB_OSDIRNAMES += mel/mhard-float=!mel/hard-float
19438 +MULTILIB_OSDIRNAMES += mhard-float/march.vr5500=!hard-float/vr5500
19439 +MULTILIB_OSDIRNAMES += mhard-float=!hard-float
19440 +MULTILIB_OSDIRNAMES += mabi.64=../lib64
19441 +MULTILIB_OSDIRNAMES += march.octeon/mabi.n32=../lib32/octeon
19442 +MULTILIB_OSDIRNAMES += march.octeon/mabi.64=../lib64/octeon
19443 +MULTILIB_OSDIRNAMES += muclibc/mel=!uclibc/mel
19444 +MULTILIB_OSDIRNAMES += muclibc=!uclibc
19445 +
19446 diff -Nur a/gcc/config/mips/wrs-linux.h b/gcc/config/mips/wrs-linux.h
19447 --- a/gcc/config/mips/wrs-linux.h 1970-01-01 01:00:00.000000000 +0100
19448 +++ b/gcc/config/mips/wrs-linux.h 2010-01-25 09:50:29.035686224 +0100
19449 @@ -0,0 +1,65 @@
19450 +/* Wind River GNU/Linux Configuration.
19451 + Copyright (C) 2006, 2007
19452 + Free Software Foundation, Inc.
19453 +
19454 +This file is part of GCC.
19455 +
19456 +GCC is free software; you can redistribute it and/or modify
19457 +it under the terms of the GNU General Public License as published by
19458 +the Free Software Foundation; either version 3, or (at your option)
19459 +any later version.
19460 +
19461 +GCC is distributed in the hope that it will be useful,
19462 +but WITHOUT ANY WARRANTY; without even the implied warranty of
19463 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19464 +GNU General Public License for more details.
19465 +
19466 +You should have received a copy of the GNU General Public License
19467 +along with GCC; see the file COPYING3. If not see
19468 +<http://www.gnu.org/licenses/>. */
19469 +
19470 +/* Override linux64.h to default to O32. */
19471 +#undef DRIVER_SELF_SPECS
19472 +#define DRIVER_SELF_SPECS \
19473 + BASE_DRIVER_SELF_SPECS, \
19474 + LINUX_DRIVER_SELF_SPECS \
19475 + " %{!EB:%{!EL:%(endian_spec)}}" \
19476 + " %{!mabi=*: -mabi=32}"
19477 +
19478 +/* We do not need to provide an explicit big-endian multilib. */
19479 +#undef MULTILIB_DEFAULTS
19480 +#define MULTILIB_DEFAULTS \
19481 + { "meb", "mabi=32" }
19482 +
19483 +/* The GLIBC headers are in /usr/include, relative to the sysroot; the
19484 + uClibc headers are in /uclibc/usr/include. */
19485 +#undef SYSROOT_HEADERS_SUFFIX_SPEC
19486 +#define SYSROOT_HEADERS_SUFFIX_SPEC \
19487 + "%{muclibc:/uclibc}"
19488 +
19489 +/* The various C libraries each have their own subdirectory. */
19490 +#undef SYSROOT_SUFFIX_SPEC
19491 +#define SYSROOT_SUFFIX_SPEC \
19492 + "%{muclibc:%{mel:/uclibc/mel ; \
19493 + :/uclibc} ; \
19494 + mel:%{mhard-float:/mel/hard-float ; \
19495 + :/mel} ; \
19496 + march=octeon:/octeon ; \
19497 + march=vr5500:%{mhard-float:/hard-float/vr5500} ; \
19498 + mhard-float:/hard-float}"
19499 +
19500 +/* MULTILIB_OSDIRNAMES provides directory names used in two ways:
19501 + relative to $target/lib/ in the GCC installation, and relative to
19502 + lib/ and usr/lib/ in a sysroot. For the latter, we want names such
19503 + as plain ../lib64, but these cannot be used outside the sysroot
19504 + because different multilibs would be mapped to the same directory.
19505 + Directories are searched both with and without the multilib suffix,
19506 + so it suffices if the directory without the suffix is correct
19507 + within the sysroot while the directory with the suffix doesn't
19508 + exist. We use STARTFILE_PREFIX_SPEC to achieve the desired
19509 + effect. */
19510 +#undef STARTFILE_PREFIX_SPEC
19511 +#define STARTFILE_PREFIX_SPEC \
19512 + "%{mabi=32: /usr/local/lib/ /lib/ /usr/lib/} \
19513 + %{mabi=n32: /usr/local/lib32/ /lib32/ /usr/lib32/} \
19514 + %{mabi=64: /usr/local/lib64/ /lib64/ /usr/lib64/}"
19515 diff -Nur a/gcc/config/mips/xlr.md b/gcc/config/mips/xlr.md
19516 --- a/gcc/config/mips/xlr.md 2008-06-06 16:24:57.000000000 +0200
19517 +++ b/gcc/config/mips/xlr.md 2010-01-25 09:50:29.035686224 +0100
19518 @@ -1,5 +1,5 @@
19519 ;; DFA-based pipeline description for the XLR.
19520 -;; Copyright (C) 2008 Free Software Foundation, Inc.
19521 +;; Copyright (C) 2008, 2009 Free Software Foundation, Inc.
19522 ;;
19523 ;; xlr.md Machine Description for the RMI XLR Microprocessor
19524 ;; This file is part of GCC.
19525 @@ -31,7 +31,7 @@
19526 ;; Integer arithmetic instructions.
19527 (define_insn_reservation "ir_xlr_alu" 1
19528 (and (eq_attr "cpu" "xlr")
19529 - (eq_attr "type" "arith,shift,clz,const,unknown,multi,nop,trap"))
19530 + (eq_attr "type" "move,arith,shift,clz,logical,signext,const,unknown,multi,nop,trap"))
19531 "xlr_main_pipe")
19532
19533 ;; Integer arithmetic instructions.
19534 diff -Nur a/gcc/config/print-sysroot-suffix.sh b/gcc/config/print-sysroot-suffix.sh
19535 --- a/gcc/config/print-sysroot-suffix.sh 1970-01-01 01:00:00.000000000 +0100
19536 +++ b/gcc/config/print-sysroot-suffix.sh 2010-01-25 09:50:29.035686224 +0100
19537 @@ -0,0 +1,154 @@
19538 +#! /bin/sh
19539 +# Script to generate SYSROOT_SUFFIX_SPEC equivalent to MULTILIB_OSDIRNAMES
19540 +# Arguments are MULTILIB_OSDIRNAMES, MULTILIB_OPTIONS, MULTILIB_MATCHES
19541 +# and MULTILIB_ALIASES.
19542 +
19543 +# Copyright (C) 2009 Free Software Foundation, Inc.
19544 +
19545 +# This file is part of GCC.
19546 +
19547 +# GCC is free software; you can redistribute it and/or modify it under
19548 +# the terms of the GNU General Public License as published by the Free
19549 +# Software Foundation; either version 3, or (at your option) any later
19550 +# version.
19551 +
19552 +# GCC is distributed in the hope that it will be useful, but WITHOUT
19553 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19554 +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19555 +# for more details.
19556 +
19557 +# You should have received a copy of the GNU General Public License
19558 +# along with GCC; see the file COPYING3. If not see
19559 +# <http://www.gnu.org/licenses/>.
19560 +
19561 +# This shell script produces a header file fragment that defines
19562 +# SYSROOT_SUFFIX_SPEC. It assumes that the sysroots will have the same
19563 +# structure and names used by the multilibs.
19564 +
19565 +# Invocation:
19566 +# print-sysroot-suffix.sh \
19567 +# MULTILIB_OSDIRNAMES \
19568 +# MULTILIB_OPTIONS \
19569 +# MULTILIB_MATCHES \
19570 +# > t-sysroot-suffix.h
19571 +
19572 +# The three options exactly correspond to the variables of the same
19573 +# names defined in the tmake_file fragments.
19574 +
19575 +# Example:
19576 +# sh ./gcc/config/print-sysroot-suffix.sh "a=A" "a b/c/d" ""
19577 +# =>
19578 +# #undef SYSROOT_SUFFIX_SPEC
19579 +# #define SYSROOT_SUFFIX_SPEC "" \
19580 +# "%{a:" \
19581 +# "%{b:A/b/;" \
19582 +# "c:A/c/;" \
19583 +# "d:A/d/;" \
19584 +# ":A/};" \
19585 +# ":}"
19586 +
19587 +# The script uses temporary subscripts in order to permit a recursive
19588 +# algorithm without the use of functions.
19589 +
19590 +set -e
19591 +
19592 +dirnames="$1"
19593 +options="$2"
19594 +matches="$3"
19595 +aliases="$4"
19596 +
19597 +cat > print-sysroot-suffix3.sh <<\EOF
19598 +#! /bin/sh
19599 +# Print all the multilib matches for this option
19600 +result="$1"
19601 +EOF
19602 +for x in $matches; do
19603 + l=`echo $x | sed -e 's/=.*$//' -e 's/?/=/g'`
19604 + r=`echo $x | sed -e 's/^.*=//' -e 's/?/=/g'`
19605 + echo "[ \"\$1\" = \"$l\" ] && result=\"\$result|$r\"" >> print-sysroot-suffix3.sh
19606 +done
19607 +echo 'echo $result' >> print-sysroot-suffix3.sh
19608 +chmod +x print-sysroot-suffix3.sh
19609 +
19610 +cat > print-sysroot-suffix2.sh <<\EOF
19611 +#! /bin/sh
19612 +# Recursive script to enumerate all multilib combinations, match against
19613 +# multilib directories and output a spec string of the result.
19614 +# Will fold identical trees.
19615 +
19616 +padding="$1"
19617 +optstring="$2"
19618 +shift 2
19619 +n="\" \\
19620 +$padding\""
19621 +if [ $# = 0 ]; then
19622 + case $optstring in
19623 +EOF
19624 +for x in $aliases; do
19625 + l=`echo $x | sed -e 's/=.*$//' -e 's/?/=/g'`
19626 + r=`echo $x | sed -e 's/^.*=//' -e 's/?/=/g'`
19627 + echo "/$r/) optstring=\"/$l/\" ;;" >> print-sysroot-suffix2.sh
19628 +done
19629 +echo " esac" >> print-sysroot-suffix2.sh
19630 +
19631 +pat=
19632 +for x in $dirnames; do
19633 + p=`echo $x | sed -e 's,=!,/$=/,'`
19634 + pat="$pat -e 's=^//$p='"
19635 +done
19636 +echo ' optstring=`echo "/$optstring" | sed '"$pat\`" >> print-sysroot-suffix2.sh
19637 +cat >> print-sysroot-suffix2.sh <<\EOF
19638 + case $optstring in
19639 + //*)
19640 + ;;
19641 + *)
19642 + echo "$optstring"
19643 + ;;
19644 + esac
19645 +else
19646 + thisopt="$1"
19647 + shift
19648 + bit=
19649 + lastcond=
19650 + result=
19651 + for x in `echo "$thisopt" | sed -e 's,/, ,g'`; do
19652 + case $x in
19653 +EOF
19654 +for x in `echo "$options" | sed -e 's,/, ,g'`; do
19655 + match=`./print-sysroot-suffix3.sh "$x"`
19656 + echo "$x) optmatch=\"$match\" ;;" >> print-sysroot-suffix2.sh
19657 +done
19658 +cat >> print-sysroot-suffix2.sh <<\EOF
19659 + esac
19660 + bit=`"$0" "$padding " "$optstring$x/" "$@"`
19661 + if [ -z "$lastopt" ]; then
19662 + lastopt="$optmatch"
19663 + else
19664 + if [ "$lastbit" = "$bit" ]; then
19665 + lastopt="$lastopt|$optmatch"
19666 + else
19667 + result="$result$lastopt:$lastbit;$n"
19668 + lastopt="$optmatch"
19669 + fi
19670 + fi
19671 + lastbit="$bit"
19672 + done
19673 + bit=`"$0" "$padding " "$optstring" "$@"`
19674 + if [ "$bit" = "$lastbit" ]; then
19675 + if [ -z "$result" ]; then
19676 + echo "$bit"
19677 + else
19678 + echo "$n%{$result:$bit}"
19679 + fi
19680 + else
19681 + echo "$n%{$result$lastopt:$lastbit;$n:$bit}"
19682 + fi
19683 +fi
19684 +EOF
19685 +
19686 +chmod +x ./print-sysroot-suffix2.sh
19687 +result=`./print-sysroot-suffix2.sh "" "/" $options`
19688 +echo "#undef SYSROOT_SUFFIX_SPEC"
19689 +echo "#define SYSROOT_SUFFIX_SPEC \"$result\""
19690 +rm print-sysroot-suffix2.sh
19691 +rm print-sysroot-suffix3.sh
19692 diff -Nur a/gcc/config/rs6000/e500mc.h b/gcc/config/rs6000/e500mc.h
19693 --- a/gcc/config/rs6000/e500mc.h 1970-01-01 01:00:00.000000000 +0100
19694 +++ b/gcc/config/rs6000/e500mc.h 2010-01-25 09:50:29.035686224 +0100
19695 @@ -0,0 +1,46 @@
19696 +/* Core target definitions for GNU compiler
19697 + for IBM RS/6000 PowerPC targeted to embedded ELF systems.
19698 + Copyright (C) 1995, 1996, 2000, 2003, 2004, 2007 Free Software Foundation, Inc.
19699 + Contributed by Cygnus Support.
19700 +
19701 + This file is part of GCC.
19702 +
19703 + GCC is free software; you can redistribute it and/or modify it
19704 + under the terms of the GNU General Public License as published
19705 + by the Free Software Foundation; either version 3, or (at your
19706 + option) any later version.
19707 +
19708 + GCC is distributed in the hope that it will be useful, but WITHOUT
19709 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
19710 + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
19711 + License for more details.
19712 +
19713 + You should have received a copy of the GNU General Public License
19714 + along with GCC; see the file COPYING3. If not see
19715 + <http://www.gnu.org/licenses/>. */
19716 +
19717 +/* Add -meabi to target flags. */
19718 +#undef TARGET_DEFAULT
19719 +#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_EABI)
19720 +
19721 +#undef TARGET_VERSION
19722 +#define TARGET_VERSION fprintf (stderr, " (PowerPC Embedded)");
19723 +
19724 +#undef TARGET_OS_CPP_BUILTINS
19725 +#define TARGET_OS_CPP_BUILTINS() \
19726 + do \
19727 + { \
19728 + builtin_define_std ("PPC"); \
19729 + builtin_define ("__embedded__"); \
19730 + builtin_assert ("system=embedded"); \
19731 + builtin_assert ("cpu=powerpc"); \
19732 + builtin_assert ("machine=powerpc"); \
19733 + TARGET_OS_SYSV_CPP_BUILTINS (); \
19734 + } \
19735 + while (0)
19736 +
19737 +#undef CC1_EXTRA_SPEC
19738 +#define CC1_EXTRA_SPEC "-maix-struct-return"
19739 +
19740 +#undef ASM_DEFAULT_SPEC
19741 +#define ASM_DEFAULT_SPEC "-mppc%{m64:64} -me500mc"
19742 diff -Nur a/gcc/config/rs6000/eabi.asm b/gcc/config/rs6000/eabi.asm
19743 --- a/gcc/config/rs6000/eabi.asm 2009-04-10 01:23:07.000000000 +0200
19744 +++ b/gcc/config/rs6000/eabi.asm 2010-01-25 09:50:29.035686224 +0100
19745 @@ -230,7 +230,7 @@
19746 r11 has the address of .LCTOC1 in it.
19747 r12 has the value to add to each pointer
19748 r13 .. r31 are unchanged */
19749 -
19750 +#ifdef _RELOCATABLE
19751 FUNC_START(__eabi_convert)
19752 cmplw 1,3,4 /* any pointers to convert? */
19753 subf 5,3,4 /* calculate number of words to convert */
19754 @@ -285,5 +285,5 @@
19755 blr
19756
19757 FUNC_END(__eabi_uconvert)
19758 -
19759 +#endif
19760 #endif
19761 diff -Nur a/gcc/config/rs6000/eabi-ci.asm b/gcc/config/rs6000/eabi-ci.asm
19762 --- a/gcc/config/rs6000/eabi-ci.asm 2009-04-10 01:23:07.000000000 +0200
19763 +++ b/gcc/config/rs6000/eabi-ci.asm 2010-01-25 09:50:29.035686224 +0100
19764 @@ -98,6 +98,7 @@
19765 /* Head of __init function used for static constructors. */
19766 .section ".init","ax"
19767 .align 2
19768 +FUNC_START(_init)
19769 FUNC_START(__init)
19770 stwu 1,-16(1)
19771 mflr 0
19772 @@ -106,6 +107,7 @@
19773 /* Head of __fini function used for static destructors. */
19774 .section ".fini","ax"
19775 .align 2
19776 +FUNC_START(_fini)
19777 FUNC_START(__fini)
19778 stwu 1,-16(1)
19779 mflr 0
19780 diff -Nur a/gcc/config/rs6000/eabi.h b/gcc/config/rs6000/eabi.h
19781 --- a/gcc/config/rs6000/eabi.h 2007-08-02 12:49:31.000000000 +0200
19782 +++ b/gcc/config/rs6000/eabi.h 2010-01-25 09:50:29.035686224 +0100
19783 @@ -23,10 +23,6 @@
19784 #undef TARGET_DEFAULT
19785 #define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS | MASK_EABI)
19786
19787 -/* Invoke an initializer function to set up the GOT. */
19788 -#define NAME__MAIN "__eabi"
19789 -#define INVOKE__main
19790 -
19791 #undef TARGET_VERSION
19792 #define TARGET_VERSION fprintf (stderr, " (PowerPC Embedded)");
19793
19794 @@ -42,3 +38,20 @@
19795 TARGET_OS_SYSV_CPP_BUILTINS (); \
19796 } \
19797 while (0)
19798 +
19799 +/* Add -te500v1 and -te500v2 options for convenience in generating
19800 + multilibs. */
19801 +#undef CC1_EXTRA_SPEC
19802 +#define CC1_EXTRA_SPEC \
19803 + "%{te500v1: -mcpu=8540 -mfloat-gprs=single -mspe=yes -mabi=spe} " \
19804 + "%{te500v2: -mcpu=8548 -mfloat-gprs=double -mspe=yes -mabi=spe} " \
19805 + "%{te600: -mcpu=7400 -maltivec -mabi=altivec}" \
19806 + "%{te500mc: -mcpu=e500mc -maix-struct-return}"
19807 +
19808 +#undef ASM_DEFAULT_SPEC
19809 +#define ASM_DEFAULT_SPEC \
19810 + "%{te500v1:-mppc -mspe -me500 ; \
19811 + te500v2:-mppc -mspe -me500 ; \
19812 + te600:-mppc -maltivec ; \
19813 + te500mc:-mppc -me500mc ; \
19814 + :-mppc%{m64:64}}"
19815 diff -Nur a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
19816 --- a/gcc/config/rs6000/linux.h 2007-08-02 12:49:31.000000000 +0200
19817 +++ b/gcc/config/rs6000/linux.h 2010-01-25 09:50:29.035686224 +0100
19818 @@ -128,3 +128,29 @@
19819 #ifdef TARGET_DEFAULT_LONG_DOUBLE_128
19820 #define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
19821 #endif
19822 +
19823 +/* Add -te500v1 and -te500v2 options for convenience in generating
19824 + multilibs. */
19825 +#undef CC1_EXTRA_SPEC
19826 +#define CC1_EXTRA_SPEC \
19827 + "%{te500v1: -mcpu=8540 -mfloat-gprs=single -mspe=yes -mabi=spe} " \
19828 + "%{te500v2: -mcpu=8548 -mfloat-gprs=double -mspe=yes -mabi=spe} " \
19829 + "%{te600: -mcpu=7400 -maltivec -mabi=altivec}" \
19830 + "%{te500mc: -mcpu=e500mc}"
19831 +
19832 +#undef ASM_DEFAULT_SPEC
19833 +#define ASM_DEFAULT_SPEC \
19834 + "%{te500v1:-mppc -mspe -me500 ; \
19835 + te500v2:-mppc -mspe -me500 ; \
19836 + te600:-mppc -maltivec ; \
19837 + te500mc:-me500mc ; \
19838 + :-mppc%{m64:64}}"
19839 +
19840 +/* The various C libraries each have their own subdirectory. */
19841 +#undef SYSROOT_SUFFIX_SPEC
19842 +#define SYSROOT_SUFFIX_SPEC \
19843 + "%{msoft-float:/nof ; \
19844 + te600:/te600 ; \
19845 + te500v1:/te500v1 ; \
19846 + te500v2:/te500v2 ; \
19847 + te500mc:/te500mc}"
19848 diff -Nur a/gcc/config/rs6000/montavista-linux.h b/gcc/config/rs6000/montavista-linux.h
19849 --- a/gcc/config/rs6000/montavista-linux.h 1970-01-01 01:00:00.000000000 +0100
19850 +++ b/gcc/config/rs6000/montavista-linux.h 2010-01-25 09:50:29.035686224 +0100
19851 @@ -0,0 +1,41 @@
19852 +/* MontaVista GNU/Linux Configuration.
19853 + Copyright (C) 2009
19854 + Free Software Foundation, Inc.
19855 +
19856 +This file is part of GCC.
19857 +
19858 +GCC is free software; you can redistribute it and/or modify
19859 +it under the terms of the GNU General Public License as published by
19860 +the Free Software Foundation; either version 3, or (at your option)
19861 +any later version.
19862 +
19863 +GCC is distributed in the hope that it will be useful,
19864 +but WITHOUT ANY WARRANTY; without even the implied warranty of
19865 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19866 +GNU General Public License for more details.
19867 +
19868 +You should have received a copy of the GNU General Public License
19869 +along with GCC; see the file COPYING3. If not see
19870 +<http://www.gnu.org/licenses/>. */
19871 +
19872 +/* Add -te500v2 option for convenience in generating multilibs. */
19873 +#undef CC1_EXTRA_SPEC
19874 +#define CC1_EXTRA_SPEC \
19875 + "%{te500v2: -mcpu=8548 -mfloat-gprs=double -mspe=yes -mabi=spe} " \
19876 + "%{te600: -mcpu=7400 -maltivec -mabi=altivec}" \
19877 + "%{te500mc: -mcpu=e500mc}"
19878 +
19879 +#undef ASM_DEFAULT_SPEC
19880 +#define ASM_DEFAULT_SPEC \
19881 + "%{te500v2:-mppc -mspe -me500 ; \
19882 + te600:-mppc -maltivec ; \
19883 + te500mc:-me500mc ; \
19884 + :-mppc}"
19885 +
19886 +/* The various C libraries each have their own subdirectory. */
19887 +#undef SYSROOT_SUFFIX_SPEC
19888 +#define SYSROOT_SUFFIX_SPEC \
19889 + "%{msoft-float:/soft-float ; \
19890 + te600:/te600 ; \
19891 + te500v2:/te500v2 ; \
19892 + te500mc:/te500mc}"
19893 diff -Nur a/gcc/config/rs6000/option-defaults.h b/gcc/config/rs6000/option-defaults.h
19894 --- a/gcc/config/rs6000/option-defaults.h 1970-01-01 01:00:00.000000000 +0100
19895 +++ b/gcc/config/rs6000/option-defaults.h 2010-01-25 09:50:29.035686224 +0100
19896 @@ -0,0 +1,64 @@
19897 +/* Definitions of default options for config/rs6000 configurations.
19898 + Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
19899 + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
19900 + Free Software Foundation, Inc.
19901 +
19902 + This file is part of GCC.
19903 +
19904 + GCC is free software; you can redistribute it and/or modify it
19905 + under the terms of the GNU General Public License as published
19906 + by the Free Software Foundation; either version 3, or (at your
19907 + option) any later version.
19908 +
19909 + GCC is distributed in the hope that it will be useful, but WITHOUT
19910 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
19911 + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
19912 + License for more details.
19913 +
19914 + Under Section 7 of GPL version 3, you are granted additional
19915 + permissions described in the GCC Runtime Library Exception, version
19916 + 3.1, as published by the Free Software Foundation.
19917 +
19918 + You should have received a copy of the GNU General Public License and
19919 + a copy of the GCC Runtime Library Exception along with this program;
19920 + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
19921 + <http://www.gnu.org/licenses/>. */
19922 +
19923 +/* This header needs to be included after any other headers affecting
19924 + TARGET_DEFAULT. */
19925 +
19926 +#if TARGET_AIX
19927 +#define OPT_64 "maix64"
19928 +#define OPT_32 "maix32"
19929 +#else
19930 +#define OPT_64 "m64"
19931 +#define OPT_32 "m32"
19932 +#endif
19933 +
19934 +#ifndef MASK_64BIT
19935 +#define MASK_64BIT 0
19936 +#endif
19937 +
19938 +#if TARGET_DEFAULT & MASK_64BIT
19939 +#define OPT_ARCH64 "!"OPT_32
19940 +#define OPT_ARCH32 OPT_32
19941 +#else
19942 +#define OPT_ARCH64 OPT_64
19943 +#define OPT_ARCH32 "!"OPT_64
19944 +#endif
19945 +
19946 +/* Support for a compile-time default CPU, et cetera. The rules are:
19947 + --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32
19948 + and --with-cpu-64.
19949 + --with-tune is ignored if -mtune is specified; likewise --with-tune-32
19950 + and --with-tune-64.
19951 + --with-float is ignored if -mhard-float or -msoft-float are
19952 + specified. */
19953 +#define OPTION_DEFAULT_SPECS \
19954 + {"cpu", "%{mcpu=*|te500mc|te500v1|te500v2|te600:;:-mcpu=%(VALUE)}" }, \
19955 + {"cpu_32", "%{" OPT_ARCH32 ":%{mcpu=*|te500mc|te500v1|te500v2|te600:;:-mcpu=%(VALUE)}}" }, \
19956 + {"cpu_64", "%{" OPT_ARCH64 ":%{mcpu=*|te500mc|te500v1|te500v2|te600:;:-mcpu=%(VALUE)}}" }, \
19957 + {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
19958 + {"tune_32", "%{" OPT_ARCH32 ":%{!mtune=*:-mtune=%(VALUE)}}" }, \
19959 + {"tune_64", "%{" OPT_ARCH64 ":%{!mtune=*:-mtune=%(VALUE)}}" }, \
19960 + {"float", "%{!msoft-float:%{!mhard-float:-m%(VALUE)-float}}" }
19961 diff -Nur a/gcc/config/rs6000/paired.md b/gcc/config/rs6000/paired.md
19962 --- a/gcc/config/rs6000/paired.md 2009-04-10 01:23:07.000000000 +0200
19963 +++ b/gcc/config/rs6000/paired.md 2010-01-25 09:50:29.035686224 +0100
19964 @@ -27,7 +27,7 @@
19965 (UNSPEC_EXTODD_V2SF 333)
19966 ])
19967
19968 -(define_insn "negv2sf2"
19969 +(define_insn "paired_negv2sf2"
19970 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=f")
19971 (neg:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "f")))]
19972 "TARGET_PAIRED_FLOAT"
19973 @@ -41,7 +41,7 @@
19974 "ps_rsqrte %0,%1"
19975 [(set_attr "type" "fp")])
19976
19977 -(define_insn "absv2sf2"
19978 +(define_insn "paired_absv2sf2"
19979 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=f")
19980 (abs:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "f")))]
19981 "TARGET_PAIRED_FLOAT"
19982 @@ -55,7 +55,7 @@
19983 "ps_nabs %0,%1"
19984 [(set_attr "type" "fp")])
19985
19986 -(define_insn "addv2sf3"
19987 +(define_insn "paired_addv2sf3"
19988 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=f")
19989 (plus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "%f")
19990 (match_operand:V2SF 2 "gpc_reg_operand" "f")))]
19991 @@ -63,7 +63,7 @@
19992 "ps_add %0,%1,%2"
19993 [(set_attr "type" "fp")])
19994
19995 -(define_insn "subv2sf3"
19996 +(define_insn "paired_subv2sf3"
19997 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=f")
19998 (minus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "f")
19999 (match_operand:V2SF 2 "gpc_reg_operand" "f")))]
20000 @@ -71,7 +71,7 @@
20001 "ps_sub %0,%1,%2"
20002 [(set_attr "type" "fp")])
20003
20004 -(define_insn "mulv2sf3"
20005 +(define_insn "paired_mulv2sf3"
20006 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=f")
20007 (mult:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "%f")
20008 (match_operand:V2SF 2 "gpc_reg_operand" "f")))]
20009 @@ -86,7 +86,7 @@
20010 "ps_res %0,%1"
20011 [(set_attr "type" "fp")])
20012
20013 -(define_insn "divv2sf3"
20014 +(define_insn "paired_divv2sf3"
20015 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=f")
20016 (div:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "f")
20017 (match_operand:V2SF 2 "gpc_reg_operand" "f")))]
20018 diff -Nur a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
20019 --- a/gcc/config/rs6000/rs6000.c 2009-03-17 21:18:21.000000000 +0100
20020 +++ b/gcc/config/rs6000/rs6000.c 2010-01-25 09:50:29.035686224 +0100
20021 @@ -919,6 +919,7 @@
20022 static bool rs6000_is_opaque_type (const_tree);
20023 static rtx rs6000_dwarf_register_span (rtx);
20024 static void rs6000_init_dwarf_reg_sizes_extra (tree);
20025 +static int rs6000_commutative_operand_precedence (const_rtx, int);
20026 static rtx rs6000_legitimize_tls_address (rtx, enum tls_model);
20027 static void rs6000_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
20028 static rtx rs6000_tls_get_addr (void);
20029 @@ -1194,6 +1195,10 @@
20030 #undef TARGET_VECTOR_OPAQUE_P
20031 #define TARGET_VECTOR_OPAQUE_P rs6000_is_opaque_type
20032
20033 +#undef TARGET_COMMUTATIVE_OPERAND_PRECEDENCE
20034 +#define TARGET_COMMUTATIVE_OPERAND_PRECEDENCE \
20035 + rs6000_commutative_operand_precedence
20036 +
20037 #undef TARGET_DWARF_REGISTER_SPAN
20038 #define TARGET_DWARF_REGISTER_SPAN rs6000_dwarf_register_span
20039
20040 @@ -4682,16 +4687,19 @@
20041 if (TARGET_ALTIVEC)
20042 global_regs[VSCR_REGNO] = 1;
20043
20044 - if (TARGET_ALTIVEC_ABI)
20045 - {
20046 - for (i = FIRST_ALTIVEC_REGNO; i < FIRST_ALTIVEC_REGNO + 20; ++i)
20047 - call_used_regs[i] = call_really_used_regs[i] = 1;
20048 + /* If we are not using the AltiVec ABI, pretend that the normally
20049 + call-saved registers are also call-used. We could use them
20050 + normally if we saved and restored them in the prologue; that
20051 + would require using the alignment padding around the register
20052 + save area, and some care with unwinding information. */
20053 + if (! TARGET_ALTIVEC_ABI)
20054 + for (i = FIRST_ALTIVEC_REGNO + 20; i <= LAST_ALTIVEC_REGNO; ++i)
20055 + call_used_regs[i] = call_really_used_regs[i] = 1;
20056
20057 - /* AIX reserves VR20:31 in non-extended ABI mode. */
20058 - if (TARGET_XCOFF)
20059 - for (i = FIRST_ALTIVEC_REGNO + 20; i < FIRST_ALTIVEC_REGNO + 32; ++i)
20060 - fixed_regs[i] = call_used_regs[i] = call_really_used_regs[i] = 1;
20061 - }
20062 + if (TARGET_ALTIVEC_ABI && TARGET_XCOFF)
20063 + /* AIX reserves VR20:31 in non-extended ABI mode. */
20064 + for (i = FIRST_ALTIVEC_REGNO + 20; i < FIRST_ALTIVEC_REGNO + 32; ++i)
20065 + fixed_regs[i] = call_used_regs[i] = call_really_used_regs[i] = 1;
20066 }
20067 \f
20068 /* Try to output insns to set TARGET equal to the constant C if it can
20069 @@ -7507,10 +7515,10 @@
20070 { MASK_ALTIVEC, CODE_FOR_nothing, "__builtin_vec_sums", ALTIVEC_BUILTIN_VEC_SUMS },
20071 { MASK_ALTIVEC, CODE_FOR_nothing, "__builtin_vec_xor", ALTIVEC_BUILTIN_VEC_XOR },
20072
20073 - { 0, CODE_FOR_divv2sf3, "__builtin_paired_divv2sf3", PAIRED_BUILTIN_DIVV2SF3 },
20074 - { 0, CODE_FOR_addv2sf3, "__builtin_paired_addv2sf3", PAIRED_BUILTIN_ADDV2SF3 },
20075 - { 0, CODE_FOR_subv2sf3, "__builtin_paired_subv2sf3", PAIRED_BUILTIN_SUBV2SF3 },
20076 - { 0, CODE_FOR_mulv2sf3, "__builtin_paired_mulv2sf3", PAIRED_BUILTIN_MULV2SF3 },
20077 + { 0, CODE_FOR_paired_divv2sf3, "__builtin_paired_divv2sf3", PAIRED_BUILTIN_DIVV2SF3 },
20078 + { 0, CODE_FOR_paired_addv2sf3, "__builtin_paired_addv2sf3", PAIRED_BUILTIN_ADDV2SF3 },
20079 + { 0, CODE_FOR_paired_subv2sf3, "__builtin_paired_subv2sf3", PAIRED_BUILTIN_SUBV2SF3 },
20080 + { 0, CODE_FOR_paired_mulv2sf3, "__builtin_paired_mulv2sf3", PAIRED_BUILTIN_MULV2SF3 },
20081 { 0, CODE_FOR_paired_muls0, "__builtin_paired_muls0", PAIRED_BUILTIN_MULS0 },
20082 { 0, CODE_FOR_paired_muls1, "__builtin_paired_muls1", PAIRED_BUILTIN_MULS1 },
20083 { 0, CODE_FOR_paired_merge00, "__builtin_paired_merge00", PAIRED_BUILTIN_MERGE00 },
20084 @@ -7519,10 +7527,10 @@
20085 { 0, CODE_FOR_paired_merge11, "__builtin_paired_merge11", PAIRED_BUILTIN_MERGE11 },
20086
20087 /* Place holder, leave as first spe builtin. */
20088 - { 0, CODE_FOR_spe_evaddw, "__builtin_spe_evaddw", SPE_BUILTIN_EVADDW },
20089 - { 0, CODE_FOR_spe_evand, "__builtin_spe_evand", SPE_BUILTIN_EVAND },
20090 + { 0, CODE_FOR_addv2si3, "__builtin_spe_evaddw", SPE_BUILTIN_EVADDW },
20091 + { 0, CODE_FOR_andv2si3, "__builtin_spe_evand", SPE_BUILTIN_EVAND },
20092 { 0, CODE_FOR_spe_evandc, "__builtin_spe_evandc", SPE_BUILTIN_EVANDC },
20093 - { 0, CODE_FOR_spe_evdivws, "__builtin_spe_evdivws", SPE_BUILTIN_EVDIVWS },
20094 + { 0, CODE_FOR_divv2si3, "__builtin_spe_evdivws", SPE_BUILTIN_EVDIVWS },
20095 { 0, CODE_FOR_spe_evdivwu, "__builtin_spe_evdivwu", SPE_BUILTIN_EVDIVWU },
20096 { 0, CODE_FOR_spe_eveqv, "__builtin_spe_eveqv", SPE_BUILTIN_EVEQV },
20097 { 0, CODE_FOR_spe_evfsadd, "__builtin_spe_evfsadd", SPE_BUILTIN_EVFSADD },
20098 @@ -7798,7 +7806,7 @@
20099
20100 /* The SPE unary builtins must start with SPE_BUILTIN_EVABS and
20101 end with SPE_BUILTIN_EVSUBFUSIAAW. */
20102 - { 0, CODE_FOR_spe_evabs, "__builtin_spe_evabs", SPE_BUILTIN_EVABS },
20103 + { 0, CODE_FOR_absv2si2, "__builtin_spe_evabs", SPE_BUILTIN_EVABS },
20104 { 0, CODE_FOR_spe_evaddsmiaaw, "__builtin_spe_evaddsmiaaw", SPE_BUILTIN_EVADDSMIAAW },
20105 { 0, CODE_FOR_spe_evaddssiaaw, "__builtin_spe_evaddssiaaw", SPE_BUILTIN_EVADDSSIAAW },
20106 { 0, CODE_FOR_spe_evaddumiaaw, "__builtin_spe_evaddumiaaw", SPE_BUILTIN_EVADDUMIAAW },
20107 @@ -7830,9 +7838,9 @@
20108 /* Place-holder. Leave as last unary SPE builtin. */
20109 { 0, CODE_FOR_spe_evsubfusiaaw, "__builtin_spe_evsubfusiaaw", SPE_BUILTIN_EVSUBFUSIAAW },
20110
20111 - { 0, CODE_FOR_absv2sf2, "__builtin_paired_absv2sf2", PAIRED_BUILTIN_ABSV2SF2 },
20112 + { 0, CODE_FOR_paired_absv2sf2, "__builtin_paired_absv2sf2", PAIRED_BUILTIN_ABSV2SF2 },
20113 { 0, CODE_FOR_nabsv2sf2, "__builtin_paired_nabsv2sf2", PAIRED_BUILTIN_NABSV2SF2 },
20114 - { 0, CODE_FOR_negv2sf2, "__builtin_paired_negv2sf2", PAIRED_BUILTIN_NEGV2SF2 },
20115 + { 0, CODE_FOR_paired_negv2sf2, "__builtin_paired_negv2sf2", PAIRED_BUILTIN_NEGV2SF2 },
20116 { 0, CODE_FOR_sqrtv2sf2, "__builtin_paired_sqrtv2sf2", PAIRED_BUILTIN_SQRTV2SF2 },
20117 { 0, CODE_FOR_resv2sf2, "__builtin_paired_resv2sf2", PAIRED_BUILTIN_RESV2SF2 }
20118 };
20119 @@ -9370,6 +9378,8 @@
20120 static void
20121 rs6000_init_builtins (void)
20122 {
20123 + tree tdecl;
20124 +
20125 V2SI_type_node = build_vector_type (intSI_type_node, 2);
20126 V2SF_type_node = build_vector_type (float_type_node, 2);
20127 V4HI_type_node = build_vector_type (intHI_type_node, 4);
20128 @@ -9407,60 +9417,75 @@
20129 float_type_internal_node = float_type_node;
20130 void_type_internal_node = void_type_node;
20131
20132 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20133 - get_identifier ("__bool char"),
20134 - bool_char_type_node));
20135 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20136 - get_identifier ("__bool short"),
20137 - bool_short_type_node));
20138 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20139 - get_identifier ("__bool int"),
20140 - bool_int_type_node));
20141 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20142 - get_identifier ("__pixel"),
20143 - pixel_type_node));
20144 + tdecl = build_decl (TYPE_DECL, get_identifier ("__bool char"),
20145 + bool_char_type_node);
20146 + TYPE_NAME (bool_char_type_node) = tdecl;
20147 + (*lang_hooks.decls.pushdecl) (tdecl);
20148 + tdecl = build_decl (TYPE_DECL, get_identifier ("__bool short"),
20149 + bool_short_type_node);
20150 + TYPE_NAME (bool_short_type_node) = tdecl;
20151 + (*lang_hooks.decls.pushdecl) (tdecl);
20152 + tdecl = build_decl (TYPE_DECL, get_identifier ("__bool int"),
20153 + bool_int_type_node);
20154 + TYPE_NAME (bool_int_type_node) = tdecl;
20155 + (*lang_hooks.decls.pushdecl) (tdecl);
20156 + tdecl = build_decl (TYPE_DECL, get_identifier ("__pixel"),
20157 + pixel_type_node);
20158 + TYPE_NAME (pixel_type_node) = tdecl;
20159 + (*lang_hooks.decls.pushdecl) (tdecl);
20160
20161 bool_V16QI_type_node = build_vector_type (bool_char_type_node, 16);
20162 bool_V8HI_type_node = build_vector_type (bool_short_type_node, 8);
20163 bool_V4SI_type_node = build_vector_type (bool_int_type_node, 4);
20164 pixel_V8HI_type_node = build_vector_type (pixel_type_node, 8);
20165
20166 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20167 - get_identifier ("__vector unsigned char"),
20168 - unsigned_V16QI_type_node));
20169 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20170 - get_identifier ("__vector signed char"),
20171 - V16QI_type_node));
20172 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20173 - get_identifier ("__vector __bool char"),
20174 - bool_V16QI_type_node));
20175 -
20176 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20177 - get_identifier ("__vector unsigned short"),
20178 - unsigned_V8HI_type_node));
20179 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20180 - get_identifier ("__vector signed short"),
20181 - V8HI_type_node));
20182 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20183 - get_identifier ("__vector __bool short"),
20184 - bool_V8HI_type_node));
20185 -
20186 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20187 - get_identifier ("__vector unsigned int"),
20188 - unsigned_V4SI_type_node));
20189 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20190 - get_identifier ("__vector signed int"),
20191 - V4SI_type_node));
20192 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20193 - get_identifier ("__vector __bool int"),
20194 - bool_V4SI_type_node));
20195 -
20196 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20197 - get_identifier ("__vector float"),
20198 - V4SF_type_node));
20199 - (*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
20200 - get_identifier ("__vector __pixel"),
20201 - pixel_V8HI_type_node));
20202 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector unsigned char"),
20203 + unsigned_V16QI_type_node);
20204 + TYPE_NAME (unsigned_V16QI_type_node) = tdecl;
20205 + (*lang_hooks.decls.pushdecl) (tdecl);
20206 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector signed char"),
20207 + V16QI_type_node);
20208 + TYPE_NAME (V16QI_type_node) = tdecl;
20209 + (*lang_hooks.decls.pushdecl) (tdecl);
20210 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector __bool char"),
20211 + bool_V16QI_type_node);
20212 + TYPE_NAME ( bool_V16QI_type_node) = tdecl;
20213 + (*lang_hooks.decls.pushdecl) (tdecl);
20214 +
20215 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector unsigned short"),
20216 + unsigned_V8HI_type_node);
20217 + TYPE_NAME (unsigned_V8HI_type_node) = tdecl;
20218 + (*lang_hooks.decls.pushdecl) (tdecl);
20219 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector signed short"),
20220 + V8HI_type_node);
20221 + TYPE_NAME (V8HI_type_node) = tdecl;
20222 + (*lang_hooks.decls.pushdecl) (tdecl);
20223 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector __bool short"),
20224 + bool_V8HI_type_node);
20225 + TYPE_NAME (bool_V8HI_type_node) = tdecl;
20226 + (*lang_hooks.decls.pushdecl) (tdecl);
20227 +
20228 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector unsigned int"),
20229 + unsigned_V4SI_type_node);
20230 + TYPE_NAME (unsigned_V4SI_type_node) = tdecl;
20231 + (*lang_hooks.decls.pushdecl) (tdecl);
20232 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector signed int"),
20233 + V4SI_type_node);
20234 + TYPE_NAME (V4SI_type_node) = tdecl;
20235 + (*lang_hooks.decls.pushdecl) (tdecl);
20236 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector __bool int"),
20237 + bool_V4SI_type_node);
20238 + TYPE_NAME (bool_V4SI_type_node) = tdecl;
20239 + (*lang_hooks.decls.pushdecl) (tdecl);
20240 +
20241 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector float"),
20242 + V4SF_type_node);
20243 + TYPE_NAME (V4SF_type_node) = tdecl;
20244 + (*lang_hooks.decls.pushdecl) (tdecl);
20245 + tdecl = build_decl (TYPE_DECL, get_identifier ("__vector __pixel"),
20246 + pixel_V8HI_type_node);
20247 + TYPE_NAME (pixel_V8HI_type_node) = tdecl;
20248 + (*lang_hooks.decls.pushdecl) (tdecl);
20249
20250 if (TARGET_PAIRED_FLOAT)
20251 paired_init_builtins ();
20252 @@ -15843,7 +15868,7 @@
20253 no_global_regs_above (int first, bool gpr)
20254 {
20255 int i;
20256 - for (i = first; i < gpr ? 32 : 64 ; i++)
20257 + for (i = first; i < (gpr ? 32 : 64); i++)
20258 if (global_regs[i])
20259 return false;
20260 return true;
20261 @@ -15869,11 +15894,11 @@
20262 int regno = gpr ? info->first_gp_reg_save : (info->first_fp_reg_save - 32);
20263 rtx sym;
20264 int select = ((savep ? 1 : 0) << 2
20265 - | (gpr
20266 + | (TARGET_SPE_ABI
20267 /* On the SPE, we never have any FPRs, but we do have
20268 32/64-bit versions of the routines. */
20269 - ? (TARGET_SPE_ABI && info->spe_64bit_regs_used ? 1 : 0)
20270 - : 0) << 1
20271 + ? (info->spe_64bit_regs_used ? 1 : 0)
20272 + : (gpr ? 1 : 0)) << 1
20273 | (exitp ? 1: 0));
20274
20275 /* Don't generate bogus routine names. */
20276 @@ -15908,6 +15933,7 @@
20277
20278 sym = savres_routine_syms[regno-FIRST_SAVRES_REGISTER][select]
20279 = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
20280 + SYMBOL_REF_FLAGS (sym) |= SYMBOL_FLAG_FUNCTION;
20281 }
20282
20283 return sym;
20284 @@ -16098,6 +16124,14 @@
20285 savres_gprs_inline = savres_gprs_inline || using_multiple_p;
20286 }
20287
20288 + /* Code intended for use in shared libraries cannot be reliably linked
20289 + with out-of-line prologues and epilogues. */
20290 + if (flag_pic)
20291 + {
20292 + savres_gprs_inline = 1;
20293 + savres_fprs_inline = 1;
20294 + }
20295 +
20296 return (using_multiple_p
20297 | (savres_fprs_inline << 1)
20298 | (savres_gprs_inline << 2));
20299 @@ -16122,7 +16156,7 @@
20300 int using_store_multiple;
20301 int using_static_chain_p = (cfun->static_chain_decl != NULL_TREE
20302 && df_regs_ever_live_p (STATIC_CHAIN_REGNUM)
20303 - && !call_used_regs[STATIC_CHAIN_REGNUM]);
20304 + && call_used_regs[STATIC_CHAIN_REGNUM]);
20305 HOST_WIDE_INT sp_offset = 0;
20306
20307 if (TARGET_FIX_AND_CONTINUE)
20308 @@ -16924,8 +16958,9 @@
20309 || (cfun->calls_alloca
20310 && !frame_pointer_needed));
20311 restore_lr = (info->lr_save_p
20312 - && restoring_GPRs_inline
20313 - && restoring_FPRs_inline);
20314 + && (restoring_GPRs_inline
20315 + || (restoring_FPRs_inline
20316 + && info->first_fp_reg_save < 64)));
20317
20318 if (WORLD_SAVE_P (info))
20319 {
20320 @@ -17197,7 +17232,7 @@
20321
20322 /* Get the old lr if we saved it. If we are restoring registers
20323 out-of-line, then the out-of-line routines can do this for us. */
20324 - if (restore_lr)
20325 + if (restore_lr && restoring_GPRs_inline)
20326 {
20327 rtx mem = gen_frame_mem_offset (Pmode, frame_reg_rtx,
20328 info->lr_save_offset + sp_offset);
20329 @@ -17216,7 +17251,7 @@
20330 }
20331
20332 /* Set LR here to try to overlap restores below. */
20333 - if (restore_lr)
20334 + if (restore_lr && restoring_GPRs_inline)
20335 emit_move_insn (gen_rtx_REG (Pmode, LR_REGNO),
20336 gen_rtx_REG (Pmode, 0));
20337
20338 @@ -17396,6 +17431,18 @@
20339 }
20340 }
20341
20342 + if (restore_lr && !restoring_GPRs_inline)
20343 + {
20344 + rtx mem = gen_frame_mem_offset (Pmode, frame_reg_rtx,
20345 + info->lr_save_offset + sp_offset);
20346 +
20347 + emit_move_insn (gen_rtx_REG (Pmode, 0), mem);
20348 + }
20349 +
20350 + if (restore_lr && !restoring_GPRs_inline)
20351 + emit_move_insn (gen_rtx_REG (Pmode, LR_REGNO),
20352 + gen_rtx_REG (Pmode, 0));
20353 +
20354 /* Restore fpr's if we need to do it without calling a function. */
20355 if (restoring_FPRs_inline)
20356 for (i = 0; i < 64 - info->first_fp_reg_save; i++)
20357 @@ -22163,6 +22210,30 @@
20358 return 4 + rs6000_register_move_cost (mode, rclass, GENERAL_REGS);
20359 }
20360
20361 +/* Return a value indicating whether OP, an operand of a commutative
20362 + operation, is preferred as the first or second operand. The higher
20363 + the value, the stronger the preference for being the first operand.
20364 + We use negative values to indicate a preference for the first operand
20365 + and positive values for the second operand.
20366 + VALUE is the default precedence for OP; see rtlanal.c:
20367 + commutative_operand_precendece. */
20368 +
20369 +static int
20370 +rs6000_commutative_operand_precedence (const_rtx op, int value)
20371 +{
20372 + /* Prefer pointer objects over non pointer objects.
20373 + For rationale see PR28690. */
20374 + if (GET_RTX_CLASS (GET_CODE (op)) == RTX_OBJ
20375 + && ((REG_P (op) && REG_POINTER (op))
20376 + || (MEM_P (op) && MEM_POINTER (op))))
20377 + /* value = -1 */;
20378 + else
20379 + /* value = -2 */
20380 + --value;
20381 +
20382 + return value;
20383 +}
20384 +
20385 /* Returns a code for a target-specific builtin that implements
20386 reciprocal of the function, or NULL_TREE if not available. */
20387
20388 @@ -22686,12 +22757,16 @@
20389 static rtx
20390 rs6000_dwarf_register_span (rtx reg)
20391 {
20392 - unsigned regno;
20393 + rtx parts[8];
20394 + int i, words;
20395 + unsigned regno = REGNO (reg);
20396 + enum machine_mode mode = GET_MODE (reg);
20397
20398 if (TARGET_SPE
20399 + && regno < 32
20400 && (SPE_VECTOR_MODE (GET_MODE (reg))
20401 - || (TARGET_E500_DOUBLE
20402 - && (GET_MODE (reg) == DFmode || GET_MODE (reg) == DDmode))))
20403 + || (TARGET_E500_DOUBLE && FLOAT_MODE_P (mode)
20404 + && mode != SFmode && mode != SDmode && mode != SCmode)))
20405 ;
20406 else
20407 return NULL_RTX;
20408 @@ -22701,15 +22776,23 @@
20409 /* The duality of the SPE register size wreaks all kinds of havoc.
20410 This is a way of distinguishing r0 in 32-bits from r0 in
20411 64-bits. */
20412 - return
20413 - gen_rtx_PARALLEL (VOIDmode,
20414 - BYTES_BIG_ENDIAN
20415 - ? gen_rtvec (2,
20416 - gen_rtx_REG (SImode, regno + 1200),
20417 - gen_rtx_REG (SImode, regno))
20418 - : gen_rtvec (2,
20419 - gen_rtx_REG (SImode, regno),
20420 - gen_rtx_REG (SImode, regno + 1200)));
20421 + words = (GET_MODE_SIZE (mode) + UNITS_PER_FP_WORD - 1) / UNITS_PER_FP_WORD;
20422 + gcc_assert (words <= 4);
20423 + for (i = 0; i < words; i++, regno++)
20424 + {
20425 + if (BYTES_BIG_ENDIAN)
20426 + {
20427 + parts[2 * i] = gen_rtx_REG (SImode, regno + 1200);
20428 + parts[2 * i + 1] = gen_rtx_REG (SImode, regno);
20429 + }
20430 + else
20431 + {
20432 + parts[2 * i] = gen_rtx_REG (SImode, regno);
20433 + parts[2 * i + 1] = gen_rtx_REG (SImode, regno + 1200);
20434 + }
20435 + }
20436 +
20437 + return gen_rtx_PARALLEL (VOIDmode, gen_rtvec_v (words * 2, parts));
20438 }
20439
20440 /* Fill in sizes for SPE register high parts in table used by unwinder. */
20441 diff -Nur a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
20442 --- a/gcc/config/rs6000/rs6000.h 2009-04-10 01:23:07.000000000 +0200
20443 +++ b/gcc/config/rs6000/rs6000.h 2010-01-25 09:50:29.045688403 +0100
20444 @@ -368,16 +368,6 @@
20445 previous_group
20446 };
20447
20448 -/* Support for a compile-time default CPU, et cetera. The rules are:
20449 - --with-cpu is ignored if -mcpu is specified.
20450 - --with-tune is ignored if -mtune is specified.
20451 - --with-float is ignored if -mhard-float or -msoft-float are
20452 - specified. */
20453 -#define OPTION_DEFAULT_SPECS \
20454 - {"cpu", "%{!mcpu=*:-mcpu=%(VALUE)}" }, \
20455 - {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
20456 - {"float", "%{!msoft-float:%{!mhard-float:-m%(VALUE)-float}}" }
20457 -
20458 /* rs6000_select[0] is reserved for the default cpu defined via --with-cpu */
20459 struct rs6000_cpu_select
20460 {
20461 @@ -794,8 +784,8 @@
20462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
20463 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, \
20464 /* AltiVec registers. */ \
20465 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
20466 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
20467 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
20468 + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
20469 1, 1 \
20470 , 1, 1, 1 \
20471 }
20472 @@ -813,8 +803,8 @@
20473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
20474 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, \
20475 /* AltiVec registers. */ \
20476 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
20477 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
20478 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
20479 + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
20480 0, 0 \
20481 , 0, 0, 0 \
20482 }
20483 diff -Nur a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
20484 --- a/gcc/config/rs6000/rs6000.md 2009-04-01 18:22:17.000000000 +0200
20485 +++ b/gcc/config/rs6000/rs6000.md 2010-01-25 09:50:29.045688403 +0100
20486 @@ -14703,9 +14703,9 @@
20487 [(match_parallel 0 "any_parallel_operand"
20488 [(clobber (reg:P 65))
20489 (use (match_operand:P 1 "symbol_ref_operand" "s"))
20490 - (use (match_operand:P 2 "gpc_reg_operand" "r"))
20491 - (set (match_operand:P 3 "memory_operand" "=m")
20492 - (match_operand:P 4 "gpc_reg_operand" "r"))])]
20493 + (use (reg:P 11))
20494 + (set (match_operand:P 2 "memory_operand" "=m")
20495 + (match_operand:P 3 "gpc_reg_operand" "r"))])]
20496 ""
20497 "bl %z1"
20498 [(set_attr "type" "branch")
20499 @@ -14715,9 +14715,9 @@
20500 [(match_parallel 0 "any_parallel_operand"
20501 [(clobber (reg:P 65))
20502 (use (match_operand:P 1 "symbol_ref_operand" "s"))
20503 - (use (match_operand:P 2 "gpc_reg_operand" "r"))
20504 - (set (match_operand:DF 3 "memory_operand" "=m")
20505 - (match_operand:DF 4 "gpc_reg_operand" "f"))])]
20506 + (use (reg:P 11))
20507 + (set (match_operand:DF 2 "memory_operand" "=m")
20508 + (match_operand:DF 3 "gpc_reg_operand" "f"))])]
20509 ""
20510 "bl %z1"
20511 [(set_attr "type" "branch")
20512 @@ -14810,9 +14810,9 @@
20513 [(match_parallel 0 "any_parallel_operand"
20514 [(clobber (match_operand:P 1 "register_operand" "=l"))
20515 (use (match_operand:P 2 "symbol_ref_operand" "s"))
20516 - (use (match_operand:P 3 "gpc_reg_operand" "r"))
20517 - (set (match_operand:P 4 "gpc_reg_operand" "=r")
20518 - (match_operand:P 5 "memory_operand" "m"))])]
20519 + (use (reg:P 11))
20520 + (set (match_operand:P 3 "gpc_reg_operand" "=r")
20521 + (match_operand:P 4 "memory_operand" "m"))])]
20522 ""
20523 "bl %z2"
20524 [(set_attr "type" "branch")
20525 @@ -14823,9 +14823,9 @@
20526 [(return)
20527 (clobber (match_operand:P 1 "register_operand" "=l"))
20528 (use (match_operand:P 2 "symbol_ref_operand" "s"))
20529 - (use (match_operand:P 3 "gpc_reg_operand" "r"))
20530 - (set (match_operand:P 4 "gpc_reg_operand" "=r")
20531 - (match_operand:P 5 "memory_operand" "m"))])]
20532 + (use (reg:P 11))
20533 + (set (match_operand:P 3 "gpc_reg_operand" "=r")
20534 + (match_operand:P 4 "memory_operand" "m"))])]
20535 ""
20536 "b %z2"
20537 [(set_attr "type" "branch")
20538 @@ -14836,9 +14836,9 @@
20539 [(return)
20540 (clobber (match_operand:P 1 "register_operand" "=l"))
20541 (use (match_operand:P 2 "symbol_ref_operand" "s"))
20542 - (use (match_operand:P 3 "gpc_reg_operand" "r"))
20543 - (set (match_operand:DF 4 "gpc_reg_operand" "=f")
20544 - (match_operand:DF 5 "memory_operand" "m"))])]
20545 + (use (reg:P 11))
20546 + (set (match_operand:DF 3 "gpc_reg_operand" "=f")
20547 + (match_operand:DF 4 "memory_operand" "m"))])]
20548 ""
20549 "b %z2"
20550 [(set_attr "type" "branch")
20551 @@ -14889,6 +14889,120 @@
20552 }"
20553 [(set_attr "type" "load")])
20554 \f
20555 +;;; Expanders for vector insn patterns shared between the SPE and TARGET_PAIRED systems.
20556 +
20557 +(define_expand "absv2sf2"
20558 + [(set (match_operand:V2SF 0 "gpc_reg_operand" "")
20559 + (abs:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "")))]
20560 + "TARGET_PAIRED_FLOAT || TARGET_SPE"
20561 + "
20562 +{
20563 + if (TARGET_SPE)
20564 + {
20565 + /* We need to make a note that we clobber SPEFSCR. */
20566 + emit_insn (gen_rtx_SET (VOIDmode, operands[0],
20567 + gen_rtx_ABS (V2SFmode, operands[1])));
20568 + emit_insn (gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, SPEFSCR_REGNO)));
20569 + DONE;
20570 + }
20571 +}")
20572 +
20573 +(define_expand "negv2sf2"
20574 + [(set (match_operand:V2SF 0 "gpc_reg_operand" "")
20575 + (neg:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "")))]
20576 + "TARGET_PAIRED_FLOAT || TARGET_SPE"
20577 + "
20578 +{
20579 + if (TARGET_SPE)
20580 + {
20581 + /* We need to make a note that we clobber SPEFSCR. */
20582 + emit_insn (gen_rtx_SET (VOIDmode, operands[0],
20583 + gen_rtx_NEG (V2SFmode, operands[1])));
20584 + emit_insn (gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, SPEFSCR_REGNO)));
20585 + DONE;
20586 + }
20587 +}")
20588 +
20589 +(define_expand "addv2sf3"
20590 + [(set (match_operand:V2SF 0 "gpc_reg_operand" "")
20591 + (plus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "")
20592 + (match_operand:V2SF 2 "gpc_reg_operand" "")))]
20593 + "TARGET_PAIRED_FLOAT || TARGET_SPE"
20594 + "
20595 +{
20596 + if (TARGET_SPE)
20597 + {
20598 + /* We need to make a note that we clobber SPEFSCR. */
20599 + rtx par = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (2));
20600 +
20601 + XVECEXP (par, 0, 0) = gen_rtx_SET (VOIDmode, operands[0],
20602 + gen_rtx_PLUS (V2SFmode, operands[1], operands[2]));
20603 + XVECEXP (par, 0, 1) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, SPEFSCR_REGNO));
20604 + emit_insn (par);
20605 + DONE;
20606 + }
20607 +}")
20608 +
20609 +(define_expand "subv2sf3"
20610 + [(set (match_operand:V2SF 0 "gpc_reg_operand" "")
20611 + (minus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "")
20612 + (match_operand:V2SF 2 "gpc_reg_operand" "")))]
20613 + "TARGET_PAIRED_FLOAT || TARGET_SPE"
20614 + "
20615 +{
20616 + if (TARGET_SPE)
20617 + {
20618 + /* We need to make a note that we clobber SPEFSCR. */
20619 + rtx par = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (2));
20620 +
20621 + XVECEXP (par, 0, 0) = gen_rtx_SET (VOIDmode, operands[0],
20622 + gen_rtx_MINUS (V2SFmode, operands[1], operands[2]));
20623 + XVECEXP (par, 0, 1) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, SPEFSCR_REGNO));
20624 + emit_insn (par);
20625 + DONE;
20626 + }
20627 +}")
20628 +
20629 +(define_expand "mulv2sf3"
20630 + [(set (match_operand:V2SF 0 "gpc_reg_operand" "")
20631 + (mult:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "")
20632 + (match_operand:V2SF 2 "gpc_reg_operand" "")))]
20633 + "TARGET_PAIRED_FLOAT || TARGET_SPE"
20634 + "
20635 +{
20636 + if (TARGET_SPE)
20637 + {
20638 + /* We need to make a note that we clobber SPEFSCR. */
20639 + rtx par = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (2));
20640 +
20641 + XVECEXP (par, 0, 0) = gen_rtx_SET (VOIDmode, operands[0],
20642 + gen_rtx_MULT (V2SFmode, operands[1], operands[2]));
20643 + XVECEXP (par, 0, 1) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, SPEFSCR_REGNO));
20644 + emit_insn (par);
20645 + DONE;
20646 + }
20647 +}")
20648 +
20649 +(define_expand "divv2sf3"
20650 + [(set (match_operand:V2SF 0 "gpc_reg_operand" "")
20651 + (div:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "")
20652 + (match_operand:V2SF 2 "gpc_reg_operand" "")))]
20653 + "TARGET_PAIRED_FLOAT || TARGET_SPE"
20654 + "
20655 +{
20656 + if (TARGET_SPE)
20657 + {
20658 + /* We need to make a note that we clobber SPEFSCR. */
20659 + rtx par = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (2));
20660 +
20661 + XVECEXP (par, 0, 0) = gen_rtx_SET (VOIDmode, operands[0],
20662 + gen_rtx_DIV (V2SFmode, operands[1], operands[2]));
20663 + XVECEXP (par, 0, 1) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (SImode, SPEFSCR_REGNO));
20664 + emit_insn (par);
20665 + DONE;
20666 + }
20667 +}")
20668 +\f
20669
20670 (include "sync.md")
20671 (include "altivec.md")
20672 diff -Nur a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md
20673 --- a/gcc/config/rs6000/spe.md 2009-02-20 16:20:38.000000000 +0100
20674 +++ b/gcc/config/rs6000/spe.md 2010-01-25 09:50:29.045688403 +0100
20675 @@ -164,7 +164,7 @@
20676
20677 ;; SPE SIMD instructions
20678
20679 -(define_insn "spe_evabs"
20680 +(define_insn "absv2si2"
20681 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
20682 (abs:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")))]
20683 "TARGET_SPE"
20684 @@ -181,7 +181,7 @@
20685 [(set_attr "type" "vecsimple")
20686 (set_attr "length" "4")])
20687
20688 -(define_insn "spe_evand"
20689 +(define_insn "andv2si3"
20690 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
20691 (and:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
20692 (match_operand:V2SI 2 "gpc_reg_operand" "r")))]
20693 @@ -1898,7 +1898,7 @@
20694 [(set_attr "type" "veccomplex")
20695 (set_attr "length" "4")])
20696
20697 -(define_insn "spe_evaddw"
20698 +(define_insn "addv2si3"
20699 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
20700 (plus:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
20701 (match_operand:V2SI 2 "gpc_reg_operand" "r")))]
20702 @@ -2028,7 +2028,7 @@
20703 [(set_attr "type" "veccomplex")
20704 (set_attr "length" "4")])
20705
20706 -(define_insn "spe_evdivws"
20707 +(define_insn "divv2si3"
20708 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
20709 (div:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
20710 (match_operand:V2SI 2 "gpc_reg_operand" "r")))
20711 @@ -3156,9 +3156,9 @@
20712 [(match_parallel 0 "any_parallel_operand"
20713 [(clobber (reg:P 65))
20714 (use (match_operand:P 1 "symbol_ref_operand" "s"))
20715 - (use (match_operand:P 2 "gpc_reg_operand" "r"))
20716 - (set (match_operand:V2SI 3 "memory_operand" "=m")
20717 - (match_operand:V2SI 4 "gpc_reg_operand" "r"))])]
20718 + (use (reg:P 11))
20719 + (set (match_operand:V2SI 2 "memory_operand" "=m")
20720 + (match_operand:V2SI 3 "gpc_reg_operand" "r"))])]
20721 "TARGET_SPE_ABI"
20722 "bl %z1"
20723 [(set_attr "type" "branch")
20724 @@ -3168,9 +3168,9 @@
20725 [(match_parallel 0 "any_parallel_operand"
20726 [(clobber (reg:P 65))
20727 (use (match_operand:P 1 "symbol_ref_operand" "s"))
20728 - (use (match_operand:P 2 "gpc_reg_operand" "r"))
20729 - (set (match_operand:V2SI 3 "gpc_reg_operand" "=r")
20730 - (match_operand:V2SI 4 "memory_operand" "m"))])]
20731 + (use (reg:P 11))
20732 + (set (match_operand:V2SI 2 "gpc_reg_operand" "=r")
20733 + (match_operand:V2SI 3 "memory_operand" "m"))])]
20734 "TARGET_SPE_ABI"
20735 "bl %z1"
20736 [(set_attr "type" "branch")
20737 @@ -3181,9 +3181,9 @@
20738 [(return)
20739 (clobber (reg:P 65))
20740 (use (match_operand:P 1 "symbol_ref_operand" "s"))
20741 - (use (match_operand:P 2 "gpc_reg_operand" "r"))
20742 - (set (match_operand:V2SI 3 "gpc_reg_operand" "=r")
20743 - (match_operand:V2SI 4 "memory_operand" "m"))])]
20744 + (use (reg:P 11))
20745 + (set (match_operand:V2SI 2 "gpc_reg_operand" "=r")
20746 + (match_operand:V2SI 3 "memory_operand" "m"))])]
20747 "TARGET_SPE_ABI"
20748 "b %z1"
20749 [(set_attr "type" "branch")
20750 diff -Nur a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
20751 --- a/gcc/config/rs6000/sysv4.h 2009-04-10 01:23:07.000000000 +0200
20752 +++ b/gcc/config/rs6000/sysv4.h 2010-01-25 09:50:29.045688403 +0100
20753 @@ -619,6 +619,9 @@
20754 #define CC1_SECURE_PLT_DEFAULT_SPEC ""
20755 #endif
20756
20757 +#undef CC1_EXTRA_SPEC
20758 +#define CC1_EXTRA_SPEC ""
20759 +
20760 /* Pass -G xxx to the compiler and set correct endian mode. */
20761 #define CC1_SPEC "%{G*} %(cc1_cpu) \
20762 %{mlittle|mlittle-endian: %(cc1_endian_little); \
20763 @@ -643,7 +646,7 @@
20764 %{msdata: -msdata=default} \
20765 %{mno-sdata: -msdata=none} \
20766 %{!mbss-plt: %{!msecure-plt: %(cc1_secure_plt_default)}} \
20767 -%{profile: -p}"
20768 +%{profile: -p}" CC1_EXTRA_SPEC
20769
20770 /* Don't put -Y P,<path> for cross compilers. */
20771 #ifndef CROSS_DIRECTORY_STRUCTURE
20772 @@ -843,15 +846,15 @@
20773 #define CPP_OS_MVME_SPEC ""
20774
20775 /* PowerPC simulator based on netbsd system calls support. */
20776 -#define LIB_SIM_SPEC "--start-group -lsim -lc --end-group"
20777 +#define LIB_SIM_SPEC LIB_DEFAULT_SPEC
20778
20779 -#define STARTFILE_SIM_SPEC "ecrti.o%s sim-crt0.o%s crtbegin.o%s"
20780 +#define STARTFILE_SIM_SPEC "ecrti.o%s crtbegin.o%s"
20781
20782 -#define ENDFILE_SIM_SPEC "crtend.o%s ecrtn.o%s"
20783 +#define ENDFILE_SIM_SPEC "crtend.o%s ecrtn.o%s -Tsim-hosted.ld"
20784
20785 #define LINK_START_SIM_SPEC ""
20786
20787 -#define LINK_OS_SIM_SPEC "-m elf32ppcsim"
20788 +#define LINK_OS_SIM_SPEC ""
20789
20790 #define CPP_OS_SIM_SPEC ""
20791
20792 diff -Nur a/gcc/config/rs6000/t-cs-eabi b/gcc/config/rs6000/t-cs-eabi
20793 --- a/gcc/config/rs6000/t-cs-eabi 1970-01-01 01:00:00.000000000 +0100
20794 +++ b/gcc/config/rs6000/t-cs-eabi 2010-01-25 09:50:29.045688403 +0100
20795 @@ -0,0 +1,17 @@
20796 +# Multilibs for powerpc embedded ELF targets.
20797 +
20798 +MULTILIB_OPTIONS = te500v1/te500v2/te600/te500mc \
20799 + msoft-float
20800 +
20801 +MULTILIB_DIRNAMES = te500v1 te500v2 te600 te500mc \
20802 + nof
20803 +
20804 +MULTILIB_EXCEPTIONS = *te600*/*msoft-float* \
20805 + *te500v1*/*msoft-float* \
20806 + *te500v2*/*msoft-float* \
20807 + *te500mc*/*msoft-float*
20808 +
20809 +MULTILIB_EXTRA_OPTS = mno-eabi mstrict-align
20810 +
20811 +MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT} \
20812 + ${MULTILIB_MATCHES_ENDIAN}
20813 diff -Nur a/gcc/config/rs6000/t-cs-eabi-lite b/gcc/config/rs6000/t-cs-eabi-lite
20814 --- a/gcc/config/rs6000/t-cs-eabi-lite 1970-01-01 01:00:00.000000000 +0100
20815 +++ b/gcc/config/rs6000/t-cs-eabi-lite 2010-01-25 09:50:29.045688403 +0100
20816 @@ -0,0 +1,16 @@
20817 +# Multilibs for powerpc embedded ELF targets.
20818 +
20819 +MULTILIB_OPTIONS = te500v1/te500v2/te600 \
20820 + msoft-float
20821 +
20822 +MULTILIB_DIRNAMES = te500v1 te500v2 te600 \
20823 + nof
20824 +
20825 +MULTILIB_EXCEPTIONS = *te600*/*msoft-float* \
20826 + *te500v1*/*msoft-float* \
20827 + *te500v2*/*msoft-float*
20828 +
20829 +MULTILIB_EXTRA_OPTS = mno-eabi mstrict-align
20830 +
20831 +MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT} \
20832 + ${MULTILIB_MATCHES_ENDIAN}
20833 diff -Nur a/gcc/config/rs6000/t-cs-linux b/gcc/config/rs6000/t-cs-linux
20834 --- a/gcc/config/rs6000/t-cs-linux 1970-01-01 01:00:00.000000000 +0100
20835 +++ b/gcc/config/rs6000/t-cs-linux 2010-01-25 09:50:29.045688403 +0100
20836 @@ -0,0 +1,12 @@
20837 +# Multilibs for powerpc-linux-gnu targets.
20838 +
20839 +MULTILIB_OPTIONS = te500v1/te500v2/te600/te500mc \
20840 + msoft-float
20841 +
20842 +MULTILIB_DIRNAMES = te500v1 te500v2 te600 te500mc \
20843 + nof
20844 +
20845 +MULTILIB_EXCEPTIONS = *te600*/*msoft-float* \
20846 + *te500v1*/*msoft-float* \
20847 + *te500v2*/*msoft-float* \
20848 + *te500mc*/*msoft-float*
20849 diff -Nur a/gcc/config/rs6000/t-montavista-linux b/gcc/config/rs6000/t-montavista-linux
20850 --- a/gcc/config/rs6000/t-montavista-linux 1970-01-01 01:00:00.000000000 +0100
20851 +++ b/gcc/config/rs6000/t-montavista-linux 2010-01-25 09:50:29.045688403 +0100
20852 @@ -0,0 +1,26 @@
20853 +# MontaVista GNU/Linux Configuration.
20854 +# Copyright (C) 2009
20855 +# Free Software Foundation, Inc.
20856 +#
20857 +# This file is part of GCC.
20858 +#
20859 +# GCC is free software; you can redistribute it and/or modify
20860 +# it under the terms of the GNU General Public License as published by
20861 +# the Free Software Foundation; either version 3, or (at your option)
20862 +# any later version.
20863 +#
20864 +# GCC is distributed in the hope that it will be useful,
20865 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
20866 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20867 +# GNU General Public License for more details.
20868 +#
20869 +# You should have received a copy of the GNU General Public License
20870 +# along with GCC; see the file COPYING3. If not see
20871 +# <http://www.gnu.org/licenses/>.
20872 +
20873 +# Build hard-float, soft-float, E500mc, E500v2 and E600
20874 +# libraries.
20875 +MULTILIB_OPTIONS = msoft-float/te500mc/te500v2/te600
20876 +MULTILIB_DIRNAMES = soft-float te500mc te500v2 te600
20877 +MULTILIB_EXCEPTIONS =
20878 +MULTILIB_OSDIRNAMES = msoft-float=!soft-float
20879 diff -Nur a/gcc/config/rs6000/t-ppccomm b/gcc/config/rs6000/t-ppccomm
20880 --- a/gcc/config/rs6000/t-ppccomm 2008-06-26 22:12:41.000000000 +0200
20881 +++ b/gcc/config/rs6000/t-ppccomm 2010-01-25 09:50:29.045688403 +0100
20882 @@ -3,10 +3,23 @@
20883 LIB2FUNCS_EXTRA += tramp.S $(srcdir)/config/rs6000/darwin-ldouble.c
20884
20885 # These can't end up in shared libgcc
20886 -LIB2FUNCS_STATIC_EXTRA = eabi.S
20887 -
20888 -eabi.S: $(srcdir)/config/rs6000/eabi.asm
20889 - cat $(srcdir)/config/rs6000/eabi.asm > eabi.S
20890 +LIB2FUNCS_STATIC_EXTRA = \
20891 + crtsavfpr.S crtresfpr.S \
20892 + crtsavgpr.S crtresgpr.S \
20893 + crtresxfpr.S crtresxgpr.S \
20894 + e500crtres32gpr.S \
20895 + e500crtres64gpr.S \
20896 + e500crtres64gprctr.S \
20897 + e500crtrest32gpr.S \
20898 + e500crtrest64gpr.S \
20899 + e500crtresx32gpr.S \
20900 + e500crtresx64gpr.S \
20901 + e500crtsav32gpr.S \
20902 + e500crtsav64gpr.S \
20903 + e500crtsav64gprctr.S \
20904 + e500crtsavg32gpr.S \
20905 + e500crtsavg64gpr.S \
20906 + e500crtsavg64gprctr.S
20907
20908 tramp.S: $(srcdir)/config/rs6000/tramp.asm
20909 cat $(srcdir)/config/rs6000/tramp.asm > tramp.S
20910 @@ -36,6 +49,63 @@
20911 ncrtn.S: $(srcdir)/config/rs6000/sol-cn.asm
20912 cat $(srcdir)/config/rs6000/sol-cn.asm >ncrtn.S
20913
20914 +crtsavfpr.S: $(srcdir)/config/rs6000/crtsavfpr.asm
20915 + cat $(srcdir)/config/rs6000/crtsavfpr.asm >crtsavfpr.S
20916 +
20917 +crtresfpr.S: $(srcdir)/config/rs6000/crtresfpr.asm
20918 + cat $(srcdir)/config/rs6000/crtresfpr.asm >crtresfpr.S
20919 +
20920 +crtsavgpr.S: $(srcdir)/config/rs6000/crtsavgpr.asm
20921 + cat $(srcdir)/config/rs6000/crtsavgpr.asm >crtsavgpr.S
20922 +
20923 +crtresgpr.S: $(srcdir)/config/rs6000/crtresgpr.asm
20924 + cat $(srcdir)/config/rs6000/crtresgpr.asm >crtresgpr.S
20925 +
20926 +crtresxfpr.S: $(srcdir)/config/rs6000/crtresxfpr.asm
20927 + cat $(srcdir)/config/rs6000/crtresxfpr.asm >crtresxfpr.S
20928 +
20929 +crtresxgpr.S: $(srcdir)/config/rs6000/crtresxgpr.asm
20930 + cat $(srcdir)/config/rs6000/crtresxgpr.asm >crtresxgpr.S
20931 +
20932 +e500crtres32gpr.S: $(srcdir)/config/rs6000/e500crtres32gpr.asm
20933 + cat $(srcdir)/config/rs6000/e500crtres32gpr.asm >e500crtres32gpr.S
20934 +
20935 +e500crtres64gpr.S: $(srcdir)/config/rs6000/e500crtres64gpr.asm
20936 + cat $(srcdir)/config/rs6000/e500crtres64gpr.asm >e500crtres64gpr.S
20937 +
20938 +e500crtres64gprctr.S: $(srcdir)/config/rs6000/e500crtres64gprctr.asm
20939 + cat $(srcdir)/config/rs6000/e500crtres64gprctr.asm >e500crtres64gprctr.S
20940 +
20941 +e500crtrest32gpr.S: $(srcdir)/config/rs6000/e500crtrest32gpr.asm
20942 + cat $(srcdir)/config/rs6000/e500crtrest32gpr.asm >e500crtrest32gpr.S
20943 +
20944 +e500crtrest64gpr.S: $(srcdir)/config/rs6000/e500crtrest64gpr.asm
20945 + cat $(srcdir)/config/rs6000/e500crtrest64gpr.asm >e500crtrest64gpr.S
20946 +
20947 +e500crtresx32gpr.S: $(srcdir)/config/rs6000/e500crtresx32gpr.asm
20948 + cat $(srcdir)/config/rs6000/e500crtresx32gpr.asm >e500crtresx32gpr.S
20949 +
20950 +e500crtresx64gpr.S: $(srcdir)/config/rs6000/e500crtresx64gpr.asm
20951 + cat $(srcdir)/config/rs6000/e500crtresx64gpr.asm >e500crtresx64gpr.S
20952 +
20953 +e500crtsav32gpr.S: $(srcdir)/config/rs6000/e500crtsav32gpr.asm
20954 + cat $(srcdir)/config/rs6000/e500crtsav32gpr.asm >e500crtsav32gpr.S
20955 +
20956 +e500crtsav64gpr.S: $(srcdir)/config/rs6000/e500crtsav64gpr.asm
20957 + cat $(srcdir)/config/rs6000/e500crtsav64gpr.asm >e500crtsav64gpr.S
20958 +
20959 +e500crtsav64gprctr.S: $(srcdir)/config/rs6000/e500crtsav64gprctr.asm
20960 + cat $(srcdir)/config/rs6000/e500crtsav64gprctr.asm >e500crtsav64gprctr.S
20961 +
20962 +e500crtsavg32gpr.S: $(srcdir)/config/rs6000/e500crtsavg32gpr.asm
20963 + cat $(srcdir)/config/rs6000/e500crtsavg32gpr.asm >e500crtsavg32gpr.S
20964 +
20965 +e500crtsavg64gpr.S: $(srcdir)/config/rs6000/e500crtsavg64gpr.asm
20966 + cat $(srcdir)/config/rs6000/e500crtsavg64gpr.asm >e500crtsavg64gpr.S
20967 +
20968 +e500crtsavg64gprctr.S: $(srcdir)/config/rs6000/e500crtsavg64gprctr.asm
20969 + cat $(srcdir)/config/rs6000/e500crtsavg64gprctr.asm >e500crtsavg64gprctr.S
20970 +
20971 # Build multiple copies of ?crt{i,n}.o, one for each target switch.
20972 $(T)ecrti$(objext): ecrti.S
20973 $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrti.S -o $(T)ecrti$(objext)
20974 @@ -49,6 +119,63 @@
20975 $(T)ncrtn$(objext): ncrtn.S
20976 $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrtn.S -o $(T)ncrtn$(objext)
20977
20978 +$(T)crtsavfpr$(objext): crtsavfpr.S
20979 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtsavfpr.S -o $(T)crtsavfpr$(objext)
20980 +
20981 +$(T)crtresfpr$(objext): crtresfpr.S
20982 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtresfpr.S -o $(T)crtresfpr$(objext)
20983 +
20984 +$(T)crtsavgpr$(objext): crtsavgpr.S
20985 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtsavgpr.S -o $(T)crtsavgpr$(objext)
20986 +
20987 +$(T)crtresgpr$(objext): crtresgpr.S
20988 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtresgpr.S -o $(T)crtresgpr$(objext)
20989 +
20990 +$(T)crtresxfpr$(objext): crtresxfpr.S
20991 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtresxfpr.S -o $(T)crtresxfpr$(objext)
20992 +
20993 +$(T)crtresxgpr$(objext): crtresxgpr.S
20994 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtresxgpr.S -o $(T)crtresxgpr$(objext)
20995 +
20996 +$(T)e500crtres32gpr$(objext): e500crtres32gpr.S
20997 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtres32gpr.S -o $(T)e500crtres32gpr$(objext)
20998 +
20999 +$(T)e500crtres64gpr$(objext): e500crtres64gpr.S
21000 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtres64gpr.S -o $(T)e500crtres64gpr$(objext)
21001 +
21002 +$(T)e500crtres64gprctr$(objext): e500crtres64gprctr.S
21003 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtres64gprctr.S -o $(T)e500crtres64gprctr$(objext)
21004 +
21005 +$(T)e500crtrest32gpr$(objext): e500crtrest32gpr.S
21006 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtrest32gpr.S -o $(T)e500crtrest32gpr$(objext)
21007 +
21008 +$(T)e500crtrest64gpr$(objext): e500crtrest64gpr.S
21009 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtrest64gpr.S -o $(T)e500crtrest64gpr$(objext)
21010 +
21011 +$(T)e500crtresx32gpr$(objext): e500crtresx32gpr.S
21012 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtresx32gpr.S -o $(T)e500crtresx32gpr$(objext)
21013 +
21014 +$(T)e500crtresx64gpr$(objext): e500crtresx64gpr.S
21015 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtresx64gpr.S -o $(T)e500crtresx64gpr$(objext)
21016 +
21017 +$(T)e500crtsav32gpr$(objext): e500crtsav32gpr.S
21018 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtsav32gpr.S -o $(T)e500crtsav32gpr$(objext)
21019 +
21020 +$(T)e500crtsav64gpr$(objext): e500crtsav64gpr.S
21021 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtsav64gpr.S -o $(T)e500crtsav64gpr$(objext)
21022 +
21023 +$(T)e500crtsav64gprctr$(objext): e500crtsav64gprctr.S
21024 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtsav64gprctr.S -o $(T)e500crtsav64gprctr$(objext)
21025 +
21026 +$(T)e500crtsavg32gpr$(objext): e500crtsavg32gpr.S
21027 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtsavg32gpr.S -o $(T)e500crtsavg32gpr$(objext)
21028 +
21029 +$(T)e500crtsavg64gpr$(objext): e500crtsavg64gpr.S
21030 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtsavg64gpr.S -o $(T)e500crtsavg64gpr$(objext)
21031 +
21032 +$(T)e500crtsavg64gprctr$(objext): e500crtsavg64gprctr.S
21033 + $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c e500crtsavg64gprctr.S -o $(T)e500crtsavg64gprctr$(objext)
21034 +
21035 # It is important that crtbegin.o, etc., aren't surprised by stuff in .sdata.
21036 CRTSTUFF_T_CFLAGS = -msdata=none
21037 # Make sure crt*.o are built with -fPIC even if configured with
21038 diff -Nur a/gcc/config/rs6000/t-ppc-e500mc b/gcc/config/rs6000/t-ppc-e500mc
21039 --- a/gcc/config/rs6000/t-ppc-e500mc 1970-01-01 01:00:00.000000000 +0100
21040 +++ b/gcc/config/rs6000/t-ppc-e500mc 2010-01-25 09:50:29.045688403 +0100
21041 @@ -0,0 +1,12 @@
21042 +# Multilibs for powerpc embedded ELF targets.
21043 +
21044 +MULTILIB_OPTIONS =
21045 +
21046 +MULTILIB_DIRNAMES =
21047 +
21048 +MULTILIB_EXCEPTIONS =
21049 +
21050 +MULTILIB_EXTRA_OPTS = mno-eabi mstrict-align
21051 +
21052 +MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT} \
21053 + ${MULTILIB_MATCHES_ENDIAN}
21054 diff -Nur a/gcc/config/rs6000/t-wrs-linux b/gcc/config/rs6000/t-wrs-linux
21055 --- a/gcc/config/rs6000/t-wrs-linux 1970-01-01 01:00:00.000000000 +0100
21056 +++ b/gcc/config/rs6000/t-wrs-linux 2010-01-25 09:50:29.045688403 +0100
21057 @@ -0,0 +1,30 @@
21058 +# Wind River GNU/Linux Configuration.
21059 +# Copyright (C) 2006, 2007
21060 +# Free Software Foundation, Inc.
21061 +#
21062 +# This file is part of GCC.
21063 +#
21064 +# GCC is free software; you can redistribute it and/or modify
21065 +# it under the terms of the GNU General Public License as published by
21066 +# the Free Software Foundation; either version 3, or (at your option)
21067 +# any later version.
21068 +#
21069 +# GCC is distributed in the hope that it will be useful,
21070 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
21071 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21072 +# GNU General Public License for more details.
21073 +#
21074 +# You should have received a copy of the GNU General Public License
21075 +# along with GCC; see the file COPYING3. If not see
21076 +# <http://www.gnu.org/licenses/>.
21077 +
21078 +# Build hard-float (32-bit and 64-bit), soft-float, E500v1 and E500v2
21079 +# libraries.
21080 +MULTILIB_OPTIONS = muclibc m64 msoft-float te500v1 te500v2
21081 +MULTILIB_DIRNAMES = uclibc 64 soft-float te500v1 te500v2
21082 +MULTILIB_EXCEPTIONS = *muclibc*/*m64* *muclibc*/*msoft-float*
21083 +MULTILIB_EXCEPTIONS += *muclibc*/*te500v1* *muclibc*/*te500v2*
21084 +MULTILIB_EXCEPTIONS += *m64*/*msoft-float* *m64*/*te500v1* *m64*/*te500v2*
21085 +MULTILIB_EXCEPTIONS += *msoft-float*/*te500v1* *msoft-float*/*te500v2*
21086 +MULTILIB_EXCEPTIONS += *te500v1*/*te500v2*
21087 +MULTILIB_OSDIRNAMES = muclibc=!uclibc m64=../lib64 msoft-float=!soft-float
21088 diff -Nur a/gcc/config/rs6000/wrs-linux.h b/gcc/config/rs6000/wrs-linux.h
21089 --- a/gcc/config/rs6000/wrs-linux.h 1970-01-01 01:00:00.000000000 +0100
21090 +++ b/gcc/config/rs6000/wrs-linux.h 2010-01-25 09:50:29.045688403 +0100
21091 @@ -0,0 +1,44 @@
21092 +/* Wind River GNU/Linux Configuration.
21093 + Copyright (C) 2006, 2007
21094 + Free Software Foundation, Inc.
21095 +
21096 +This file is part of GCC.
21097 +
21098 +GCC is free software; you can redistribute it and/or modify
21099 +it under the terms of the GNU General Public License as published by
21100 +the Free Software Foundation; either version 3, or (at your option)
21101 +any later version.
21102 +
21103 +GCC is distributed in the hope that it will be useful,
21104 +but WITHOUT ANY WARRANTY; without even the implied warranty of
21105 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21106 +GNU General Public License for more details.
21107 +
21108 +You should have received a copy of the GNU General Public License
21109 +along with GCC; see the file COPYING3. If not see
21110 +<http://www.gnu.org/licenses/>. */
21111 +
21112 +/* Add -te500v1 and -te500v2 options for convenience in generating
21113 + multilibs. */
21114 +#undef CC1_EXTRA_SPEC
21115 +#define CC1_EXTRA_SPEC "%{te500v1: -mcpu=8540 -mfloat-gprs=single -mspe=yes -mabi=spe} %{te500v2: -mcpu=8548 -mfloat-gprs=double -mspe=yes -mabi=spe}"
21116 +
21117 +#undef ASM_DEFAULT_SPEC
21118 +#define ASM_DEFAULT_SPEC \
21119 + "%{te500v1:-mppc -mspe -me500 ; \
21120 + te500v2:-mppc -mspe -me500 ; \
21121 + :-mppc%{m64:64}}"
21122 +
21123 +/* The GLIBC headers are in /usr/include, relative to the sysroot; the
21124 + uClibc headers are in /uclibc/usr/include. */
21125 +#undef SYSROOT_HEADERS_SUFFIX_SPEC
21126 +#define SYSROOT_HEADERS_SUFFIX_SPEC \
21127 + "%{muclibc:/uclibc}"
21128 +
21129 +/* The various C libraries each have their own subdirectory. */
21130 +#undef SYSROOT_SUFFIX_SPEC
21131 +#define SYSROOT_SUFFIX_SPEC \
21132 + "%{muclibc:/uclibc ; \
21133 + msoft-float:/soft-float ; \
21134 + te500v1:/te500v1 ; \
21135 + te500v2:/te500v2}"
21136 diff -Nur a/gcc/config/sh/cs-sgxxlite-linux.h b/gcc/config/sh/cs-sgxxlite-linux.h
21137 --- a/gcc/config/sh/cs-sgxxlite-linux.h 1970-01-01 01:00:00.000000000 +0100
21138 +++ b/gcc/config/sh/cs-sgxxlite-linux.h 2010-01-25 09:50:29.045688403 +0100
21139 @@ -0,0 +1,31 @@
21140 +/* SH SourceryG++ GNU/Linux Configuration.
21141 + Copyright (C) 2008
21142 + Free Software Foundation, Inc.
21143 +
21144 +This file is part of GCC.
21145 +
21146 +GCC is free software; you can redistribute it and/or modify
21147 +it under the terms of the GNU General Public License as published by
21148 +the Free Software Foundation; either version 3, or (at your option)
21149 +any later version.
21150 +
21151 +GCC is distributed in the hope that it will be useful,
21152 +but WITHOUT ANY WARRANTY; without even the implied warranty of
21153 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21154 +GNU General Public License for more details.
21155 +
21156 +You should have received a copy of the GNU General Public License
21157 +along with GCC; see the file COPYING3. If not see
21158 +<http://www.gnu.org/licenses/>. */
21159 +
21160 +#undef SYSROOT_HEADERS_SUFFIX_SPEC
21161 +#define SYSROOT_HEADERS_SUFFIX_SPEC \
21162 + "%{muclibc:/uclibc}"
21163 +
21164 +#undef SUBTARGET_OVERRIDE_OPTIONS
21165 +#define SUBTARGET_OVERRIDE_OPTIONS \
21166 +do { \
21167 + /* __thread_support is not supported by uClibc. */ \
21168 + if (linux_uclibc) \
21169 + targetm.have_tls = 0; \
21170 +} while (0)
21171 diff -Nur a/gcc/config/sh/cs-sgxxlite-linux.opt b/gcc/config/sh/cs-sgxxlite-linux.opt
21172 --- a/gcc/config/sh/cs-sgxxlite-linux.opt 1970-01-01 01:00:00.000000000 +0100
21173 +++ b/gcc/config/sh/cs-sgxxlite-linux.opt 2010-01-25 09:50:29.045688403 +0100
21174 @@ -0,0 +1,23 @@
21175 +; Options for SH SourceryG++ GNU/Linux
21176 +
21177 +; Copyright (C) 2009 Free Software Foundation, Inc.
21178 +;
21179 +; This file is part of GCC.
21180 +;
21181 +; GCC is free software; you can redistribute it and/or modify it under
21182 +; the terms of the GNU General Public License as published by the Free
21183 +; Software Foundation; either version 3, or (at your option) any later
21184 +; version.
21185 +;
21186 +; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
21187 +; WARRANTY; without even the implied warranty of MERCHANTABILITY or
21188 +; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21189 +; for more details.
21190 +;
21191 +; You should have received a copy of the GNU General Public License
21192 +; along with GCC; see the file COPYING3. If not see
21193 +; <http://www.gnu.org/licenses/>.
21194 +
21195 +muclibc
21196 +Target RejectNegative Var(building_for_uclibc)
21197 +Building with -muclibc
21198 diff -Nur a/gcc/config/sh/lib1funcs.asm b/gcc/config/sh/lib1funcs.asm
21199 --- a/gcc/config/sh/lib1funcs.asm 2009-04-10 01:23:07.000000000 +0200
21200 +++ b/gcc/config/sh/lib1funcs.asm 2010-01-25 09:50:29.045688403 +0100
21201 @@ -2080,8 +2080,9 @@
21202 GLOBAL(ic_invalidate):
21203 ocbwb @r4
21204 synco
21205 - rts
21206 icbi @r4
21207 + rts
21208 + nop
21209 ENDFUNC(GLOBAL(ic_invalidate))
21210 #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) || (defined(__SH4_NOFPU__) && !defined(__SH5__))
21211 /* For system code, we use ic_invalidate_line_i, but user code
21212 @@ -2147,8 +2148,10 @@
21213 GLOBAL(ic_invalidate_array):
21214 add r1,r4
21215 synco
21216 - rts
21217 icbi @r4
21218 + rts
21219 + nop
21220 + .align 2
21221 .long 0
21222 ENDFUNC(GLOBAL(ic_invalidate_array))
21223 #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) || (defined(__SH4_NOFPU__) && !defined(__SH5__))
21224 diff -Nur a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
21225 --- a/gcc/config/sh/linux-unwind.h 2009-04-10 01:23:07.000000000 +0200
21226 +++ b/gcc/config/sh/linux-unwind.h 2010-01-25 09:50:29.045688403 +0100
21227 @@ -24,7 +24,10 @@
21228
21229
21230 /* Do code reading to identify a signal frame, and set the frame
21231 - state data appropriately. See unwind-dw2.c for the structs. */
21232 + state data appropriately. See unwind-dw2.c for the structs.
21233 + Don't use this at all if inhibit_libc is used. */
21234 +
21235 +#ifndef inhibit_libc
21236
21237 #include <signal.h>
21238 #include <sys/ucontext.h>
21239 @@ -248,3 +251,5 @@
21240 return _URC_NO_REASON;
21241 }
21242 #endif /* defined (__SH5__) */
21243 +
21244 +#endif /* inhibit_libc */
21245 diff -Nur a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
21246 --- a/gcc/config/sh/sh.h 2008-11-14 12:46:55.000000000 +0100
21247 +++ b/gcc/config/sh/sh.h 2010-01-25 09:50:29.045688403 +0100
21248 @@ -712,8 +712,9 @@
21249 /* Never run scheduling before reload, since that can \
21250 break global alloc, and generates slower code anyway due \
21251 to the pressure on R0. */ \
21252 - /* Enable sched1 for SH4; ready queue will be reordered by \
21253 - the target hooks when pressure is high. We can not do this for \
21254 + /* Enable sched1 for SH4 if the user explicitly requests. \
21255 + When sched1 is enabled, the ready queue will be reordered by \
21256 + the target hooks if pressure is high. We can not do this for \
21257 PIC, SH3 and lower as they give spill failures for R0. */ \
21258 if (!TARGET_HARD_SH4 || flag_pic) \
21259 flag_schedule_insns = 0; \
21260 @@ -728,6 +729,8 @@
21261 warning (0, "ignoring -fschedule-insns because of exception handling bug"); \
21262 flag_schedule_insns = 0; \
21263 } \
21264 + else if (flag_schedule_insns == 2) \
21265 + flag_schedule_insns = 0; \
21266 } \
21267 \
21268 if (align_loops == 0) \
21269 diff -Nur a/gcc/config/sh/t-1e b/gcc/config/sh/t-1e
21270 --- a/gcc/config/sh/t-1e 2004-06-21 20:18:40.000000000 +0200
21271 +++ b/gcc/config/sh/t-1e 1970-01-01 01:00:00.000000000 +0100
21272 @@ -1 +0,0 @@
21273 -MULTILIB_ENDIAN =
21274 diff -Nur a/gcc/config/sh/t-linux b/gcc/config/sh/t-linux
21275 --- a/gcc/config/sh/t-linux 2007-01-09 11:50:23.000000000 +0100
21276 +++ b/gcc/config/sh/t-linux 2010-01-25 09:50:29.075687537 +0100
21277 @@ -4,6 +4,5 @@
21278
21279 MULTILIB_DIRNAMES=
21280 MULTILIB_MATCHES =
21281 -MULTILIB_EXCEPTIONS=
21282
21283 EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
21284 diff -Nur a/gcc/config/sh/t-mlib-sh1 b/gcc/config/sh/t-mlib-sh1
21285 --- a/gcc/config/sh/t-mlib-sh1 2004-06-21 20:18:40.000000000 +0200
21286 +++ b/gcc/config/sh/t-mlib-sh1 1970-01-01 01:00:00.000000000 +0100
21287 @@ -1 +0,0 @@
21288 -ML_sh1=m1/
21289 diff -Nur a/gcc/config/sh/t-mlib-sh2 b/gcc/config/sh/t-mlib-sh2
21290 --- a/gcc/config/sh/t-mlib-sh2 2004-06-21 20:18:40.000000000 +0200
21291 +++ b/gcc/config/sh/t-mlib-sh2 1970-01-01 01:00:00.000000000 +0100
21292 @@ -1 +0,0 @@
21293 -ML_sh2=m2/
21294 diff -Nur a/gcc/config/sh/t-mlib-sh2a b/gcc/config/sh/t-mlib-sh2a
21295 --- a/gcc/config/sh/t-mlib-sh2a 2004-07-29 08:10:03.000000000 +0200
21296 +++ b/gcc/config/sh/t-mlib-sh2a 1970-01-01 01:00:00.000000000 +0100
21297 @@ -1 +0,0 @@
21298 -ML_sh2a=m2a/
21299 diff -Nur a/gcc/config/sh/t-mlib-sh2a-nofpu b/gcc/config/sh/t-mlib-sh2a-nofpu
21300 --- a/gcc/config/sh/t-mlib-sh2a-nofpu 2004-07-29 08:10:03.000000000 +0200
21301 +++ b/gcc/config/sh/t-mlib-sh2a-nofpu 1970-01-01 01:00:00.000000000 +0100
21302 @@ -1 +0,0 @@
21303 -ML_sh2a_nofpu=m2a-nofpu/
21304 diff -Nur a/gcc/config/sh/t-mlib-sh2a-single b/gcc/config/sh/t-mlib-sh2a-single
21305 --- a/gcc/config/sh/t-mlib-sh2a-single 2004-07-29 08:10:03.000000000 +0200
21306 +++ b/gcc/config/sh/t-mlib-sh2a-single 1970-01-01 01:00:00.000000000 +0100
21307 @@ -1 +0,0 @@
21308 -ML_sh2a_single=m2a-single/
21309 diff -Nur a/gcc/config/sh/t-mlib-sh2a-single-only b/gcc/config/sh/t-mlib-sh2a-single-only
21310 --- a/gcc/config/sh/t-mlib-sh2a-single-only 2004-07-29 08:10:03.000000000 +0200
21311 +++ b/gcc/config/sh/t-mlib-sh2a-single-only 1970-01-01 01:00:00.000000000 +0100
21312 @@ -1 +0,0 @@
21313 -ML_sh2a_single_only=m2a-single-only/
21314 diff -Nur a/gcc/config/sh/t-mlib-sh2e b/gcc/config/sh/t-mlib-sh2e
21315 --- a/gcc/config/sh/t-mlib-sh2e 2004-06-21 20:18:40.000000000 +0200
21316 +++ b/gcc/config/sh/t-mlib-sh2e 1970-01-01 01:00:00.000000000 +0100
21317 @@ -1 +0,0 @@
21318 -ML_sh2e=m2e/
21319 diff -Nur a/gcc/config/sh/t-mlib-sh3 b/gcc/config/sh/t-mlib-sh3
21320 --- a/gcc/config/sh/t-mlib-sh3 2004-06-21 20:18:40.000000000 +0200
21321 +++ b/gcc/config/sh/t-mlib-sh3 1970-01-01 01:00:00.000000000 +0100
21322 @@ -1 +0,0 @@
21323 -ML_sh3=m3/
21324 diff -Nur a/gcc/config/sh/t-mlib-sh3e b/gcc/config/sh/t-mlib-sh3e
21325 --- a/gcc/config/sh/t-mlib-sh3e 2004-06-21 20:18:40.000000000 +0200
21326 +++ b/gcc/config/sh/t-mlib-sh3e 1970-01-01 01:00:00.000000000 +0100
21327 @@ -1 +0,0 @@
21328 -ML_sh3e=m3e/
21329 diff -Nur a/gcc/config/sh/t-mlib-sh4 b/gcc/config/sh/t-mlib-sh4
21330 --- a/gcc/config/sh/t-mlib-sh4 2004-06-21 20:18:40.000000000 +0200
21331 +++ b/gcc/config/sh/t-mlib-sh4 1970-01-01 01:00:00.000000000 +0100
21332 @@ -1 +0,0 @@
21333 -ML_sh4=m4/
21334 diff -Nur a/gcc/config/sh/t-mlib-sh4a b/gcc/config/sh/t-mlib-sh4a
21335 --- a/gcc/config/sh/t-mlib-sh4a 2004-07-28 11:13:58.000000000 +0200
21336 +++ b/gcc/config/sh/t-mlib-sh4a 1970-01-01 01:00:00.000000000 +0100
21337 @@ -1 +0,0 @@
21338 -ML_sh4a=m4a/
21339 diff -Nur a/gcc/config/sh/t-mlib-sh4al b/gcc/config/sh/t-mlib-sh4al
21340 --- a/gcc/config/sh/t-mlib-sh4al 2004-07-28 11:13:58.000000000 +0200
21341 +++ b/gcc/config/sh/t-mlib-sh4al 1970-01-01 01:00:00.000000000 +0100
21342 @@ -1 +0,0 @@
21343 -ML_sh4al=m4al/
21344 diff -Nur a/gcc/config/sh/t-mlib-sh4a-nofpu b/gcc/config/sh/t-mlib-sh4a-nofpu
21345 --- a/gcc/config/sh/t-mlib-sh4a-nofpu 2004-07-28 11:13:58.000000000 +0200
21346 +++ b/gcc/config/sh/t-mlib-sh4a-nofpu 1970-01-01 01:00:00.000000000 +0100
21347 @@ -1 +0,0 @@
21348 -ML_sh4a_nofpu=m4a-nofpu/
21349 diff -Nur a/gcc/config/sh/t-mlib-sh4a-single b/gcc/config/sh/t-mlib-sh4a-single
21350 --- a/gcc/config/sh/t-mlib-sh4a-single 2004-07-28 11:13:58.000000000 +0200
21351 +++ b/gcc/config/sh/t-mlib-sh4a-single 1970-01-01 01:00:00.000000000 +0100
21352 @@ -1 +0,0 @@
21353 -ML_sh4a_single=m4a-single/
21354 diff -Nur a/gcc/config/sh/t-mlib-sh4a-single-only b/gcc/config/sh/t-mlib-sh4a-single-only
21355 --- a/gcc/config/sh/t-mlib-sh4a-single-only 2004-07-28 11:13:58.000000000 +0200
21356 +++ b/gcc/config/sh/t-mlib-sh4a-single-only 1970-01-01 01:00:00.000000000 +0100
21357 @@ -1 +0,0 @@
21358 -ML_sh4a_single_only=m4a-single-only/
21359 diff -Nur a/gcc/config/sh/t-mlib-sh4-nofpu b/gcc/config/sh/t-mlib-sh4-nofpu
21360 --- a/gcc/config/sh/t-mlib-sh4-nofpu 2004-06-21 20:18:40.000000000 +0200
21361 +++ b/gcc/config/sh/t-mlib-sh4-nofpu 1970-01-01 01:00:00.000000000 +0100
21362 @@ -1 +0,0 @@
21363 -ML_sh4_nofpu=m4-nofpu/
21364 diff -Nur a/gcc/config/sh/t-mlib-sh4-single b/gcc/config/sh/t-mlib-sh4-single
21365 --- a/gcc/config/sh/t-mlib-sh4-single 2004-06-21 20:18:40.000000000 +0200
21366 +++ b/gcc/config/sh/t-mlib-sh4-single 1970-01-01 01:00:00.000000000 +0100
21367 @@ -1 +0,0 @@
21368 -ML_sh4_single=m4-single/
21369 diff -Nur a/gcc/config/sh/t-mlib-sh4-single-only b/gcc/config/sh/t-mlib-sh4-single-only
21370 --- a/gcc/config/sh/t-mlib-sh4-single-only 2004-06-21 20:18:40.000000000 +0200
21371 +++ b/gcc/config/sh/t-mlib-sh4-single-only 1970-01-01 01:00:00.000000000 +0100
21372 @@ -1 +0,0 @@
21373 -ML_sh4_single_only=m4-single-only/
21374 diff -Nur a/gcc/config/sh/t-mlib-sh5-32media b/gcc/config/sh/t-mlib-sh5-32media
21375 --- a/gcc/config/sh/t-mlib-sh5-32media 2004-06-21 20:18:40.000000000 +0200
21376 +++ b/gcc/config/sh/t-mlib-sh5-32media 1970-01-01 01:00:00.000000000 +0100
21377 @@ -1 +0,0 @@
21378 -ML_sh5_32media=m5-32media/
21379 diff -Nur a/gcc/config/sh/t-mlib-sh5-32media-nofpu b/gcc/config/sh/t-mlib-sh5-32media-nofpu
21380 --- a/gcc/config/sh/t-mlib-sh5-32media-nofpu 2004-06-21 20:18:40.000000000 +0200
21381 +++ b/gcc/config/sh/t-mlib-sh5-32media-nofpu 1970-01-01 01:00:00.000000000 +0100
21382 @@ -1 +0,0 @@
21383 -ML_sh5_32media_nofpu=m5-32media-nofpu/
21384 diff -Nur a/gcc/config/sh/t-mlib-sh5-64media b/gcc/config/sh/t-mlib-sh5-64media
21385 --- a/gcc/config/sh/t-mlib-sh5-64media 2004-06-21 20:18:40.000000000 +0200
21386 +++ b/gcc/config/sh/t-mlib-sh5-64media 1970-01-01 01:00:00.000000000 +0100
21387 @@ -1 +0,0 @@
21388 -ML_sh5_64media=m5-64media/
21389 diff -Nur a/gcc/config/sh/t-mlib-sh5-64media-nofpu b/gcc/config/sh/t-mlib-sh5-64media-nofpu
21390 --- a/gcc/config/sh/t-mlib-sh5-64media-nofpu 2004-06-21 20:18:40.000000000 +0200
21391 +++ b/gcc/config/sh/t-mlib-sh5-64media-nofpu 1970-01-01 01:00:00.000000000 +0100
21392 @@ -1 +0,0 @@
21393 -ML_sh5_64media_nofpu=m5-64media-nofpu/
21394 diff -Nur a/gcc/config/sh/t-mlib-sh5-compact b/gcc/config/sh/t-mlib-sh5-compact
21395 --- a/gcc/config/sh/t-mlib-sh5-compact 2004-06-21 20:18:40.000000000 +0200
21396 +++ b/gcc/config/sh/t-mlib-sh5-compact 1970-01-01 01:00:00.000000000 +0100
21397 @@ -1 +0,0 @@
21398 -ML_sh5_compact=m5-compact/
21399 diff -Nur a/gcc/config/sh/t-mlib-sh5-compact-nofpu b/gcc/config/sh/t-mlib-sh5-compact-nofpu
21400 --- a/gcc/config/sh/t-mlib-sh5-compact-nofpu 2004-06-21 20:18:40.000000000 +0200
21401 +++ b/gcc/config/sh/t-mlib-sh5-compact-nofpu 1970-01-01 01:00:00.000000000 +0100
21402 @@ -1 +0,0 @@
21403 -ML_sh5_compact_nofpu=m5-compact-nofpu/
21404 diff -Nur a/gcc/config/sh/t-sgxxlite-linux b/gcc/config/sh/t-sgxxlite-linux
21405 --- a/gcc/config/sh/t-sgxxlite-linux 1970-01-01 01:00:00.000000000 +0100
21406 +++ b/gcc/config/sh/t-sgxxlite-linux 2010-01-25 09:50:29.075687537 +0100
21407 @@ -0,0 +1,3 @@
21408 +MULTILIB_OPTIONS += muclibc
21409 +MULTILIB_OSDIRNAMES += muclibc=!uclibc m4al/muclibc=!m4al/uclibc mb/muclibc=!mb/uclibc
21410 +MULTILIB_EXCEPTIONS += mb/m4al/muclibc
21411 diff -Nur a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh
21412 --- a/gcc/config/sh/t-sh 2008-10-25 00:10:52.000000000 +0200
21413 +++ b/gcc/config/sh/t-sh 2010-01-25 09:50:29.075687537 +0100
21414 @@ -27,10 +27,10 @@
21415 echo '#endif' >> fp-bit.c
21416 cat $(srcdir)/config/fp-bit.c >> fp-bit.c
21417
21418 -MULTILIB_ENDIAN = ml/mb
21419 -MULTILIB_CPUS= $(ML_sh1)$(ML_sh2a)$(ML_sh2a_nofpu)$(ML_sh2a_single_only)$(ML_sh2a_single)$(ML_sh2e)$(ML_sh2)$(ML_sh3e)$(ML_sh3)$(ML_sh4_nofpu)$(ML_sh4_single_only)$(ML_sh4_single)$(ML_sh4)$(ML_sh4a_nofpu)$(ML_sh4a_single_only)$(ML_sh4a_single)$(ML_sh4a)$(ML_sh5_32media)$(ML_sh5_32media_nofpu)$(ML_sh5_compact)$(ML_sh5_compact_nofpu)$(ML_sh5_64media)$(ML_sh5_64media_nofpu)
21420 +DEFAULT_ENDIAN = $(word 1,$(TM_ENDIAN_CONFIG))
21421 +OTHER_ENDIAN = $(word 2,$(TM_ENDIAN_CONFIG))
21422
21423 -MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) $(MULTILIB_CPUS:/=)
21424 +MULTILIB_OPTIONS= $(OTHER_ENDIAN) $(TM_MULTILIB_CONFIG)
21425 MULTILIB_DIRNAMES=
21426
21427 # The separate entries for m2a-nofpu and m2a-single-only with
21428 @@ -58,7 +58,34 @@
21429 done)
21430
21431 # SH1 only supports big endian.
21432 -MULTILIB_EXCEPTIONS = ml/m1 ml/m2a*
21433 +MULTILIB_EXCEPTIONS = ml/m1 ml/m2a* $(TM_MULTILIB_EXCEPTIONS_CONFIG)
21434 +
21435 +MULTILIB_OSDIRNAMES = \
21436 + $(OTHER_ENDIAN)=!$(OTHER_ENDIAN) \
21437 + m1=!m1 $(OTHER_ENDIAN)/m1=!$(OTHER_ENDIAN)/m1 \
21438 + m2a=!m2a $(OTHER_ENDIAN)/m2a=!$(OTHER_ENDIAN)/m2a \
21439 + m2a-nofpu=!m2a-nofpu $(OTHER_ENDIAN)/m2a-nofpu=!$(OTHER_ENDIAN)/m2a-nofpu \
21440 + m2a-single-only=!m2a-single-only $(OTHER_ENDIAN)/m2a-single-only=!$(OTHER_ENDIAN)/m2a-single-only \
21441 + m2a-single=!m2a-single $(OTHER_ENDIAN)/m2a-single=!$(OTHER_ENDIAN)/m2a-single \
21442 + m2e=!m2e $(OTHER_ENDIAN)/m2e=!$(OTHER_ENDIAN)/m2e \
21443 + m2=!m2 $(OTHER_ENDIAN)/m2=!$(OTHER_ENDIAN)/m2 \
21444 + m3e=!m3e $(OTHER_ENDIAN)/m3e=!$(OTHER_ENDIAN)/m3e \
21445 + m3=!m3 $(OTHER_ENDIAN)/m3=!$(OTHER_ENDIAN)/m3 \
21446 + m4-nofpu=!m4-nofpu $(OTHER_ENDIAN)/m4-nofpu=!$(OTHER_ENDIAN)/m4-nofpu \
21447 + m4-single-only=!m4-single-only $(OTHER_ENDIAN)/m4-single-only=!$(OTHER_ENDIAN)/m4-single-only \
21448 + m4-single=!m4-single $(OTHER_ENDIAN)/m4-single=!$(OTHER_ENDIAN)/m4-single \
21449 + m4=!m4 $(OTHER_ENDIAN)/m4=!$(OTHER_ENDIAN)/m4 \
21450 + m4a-nofpu=!m4a-nofpu $(OTHER_ENDIAN)/m4a-nofpu=!$(OTHER_ENDIAN)/m4a-nofpu \
21451 + m4a-single-only=!m4a-single-only $(OTHER_ENDIAN)/m4a-single-only=!$(OTHER_ENDIAN)/m4a-single-only \
21452 + m4a-single=!m4a-single $(OTHER_ENDIAN)/m4a-single=!$(OTHER_ENDIAN)/m4a-single \
21453 + m4a=!m4a $(OTHER_ENDIAN)/m4a=!$(OTHER_ENDIAN)/m4a \
21454 + m4al=!m4al $(OTHER_ENDIAN)/m4al=!$(OTHER_ENDIAN)/m4al \
21455 + m5-32media=!m5-32media $(OTHER_ENDIAN)/m5-32media=!$(OTHER_ENDIAN)/m5-32media \
21456 + m5-32media-nofpu=!m5-32media-nofpu $(OTHER_ENDIAN)/m5-32media-nofpu=!$(OTHER_ENDIAN)/m5-32media-nofpu \
21457 + m5-compact=!m5-compact $(OTHER_ENDIAN)/m5-compact=!$(OTHER_ENDIAN)/m5-compact \
21458 + m5-compact-nofpu=!m5-compact-nofpu $(OTHER_ENDIAN)/m5-compact-nofpu=!$(OTHER_ENDIAN)/m5-compact-nofpu \
21459 + m5-64media=!m5-64media $(OTHER_ENDIAN)/m5-64media=!$(OTHER_ENDIAN)/m5-64media \
21460 + m5-64media-nofpu=!m5-64media-nofpu $(OTHER_ENDIAN)/m5-64media-nofpu=!$(OTHER_ENDIAN)/m5-64media-nofpu
21461
21462 LIBGCC = stmp-multilib
21463 INSTALL_LIBGCC = install-multilib
21464 diff -Nur a/gcc/config/sol2.h b/gcc/config/sol2.h
21465 --- a/gcc/config/sol2.h 2008-09-09 18:17:37.000000000 +0200
21466 +++ b/gcc/config/sol2.h 2010-01-25 09:50:29.075687537 +0100
21467 @@ -123,12 +123,12 @@
21468 %{YP,*} \
21469 %{R*} \
21470 %{compat-bsd: \
21471 - %{!YP,*:%{p|pg:-Y P,/usr/ucblib:/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib} \
21472 - %{!p:%{!pg:-Y P,/usr/ucblib:/usr/ccs/lib:/usr/lib}}} \
21473 - -R /usr/ucblib} \
21474 + %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib} \
21475 + %{!p:%{!pg:-Y P,%R/usr/ucblib:%R/usr/ccs/lib:%R/usr/lib}}} \
21476 + -R %R/usr/ucblib} \
21477 %{!compat-bsd: \
21478 - %{!YP,*:%{p|pg:-Y P,/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib} \
21479 - %{!p:%{!pg:-Y P,/usr/ccs/lib:/usr/lib}}}}"
21480 + %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/usr/lib} \
21481 + %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/usr/lib}}}}"
21482
21483 #undef LINK_ARCH32_SPEC
21484 #define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE
21485 diff -Nur a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
21486 --- a/gcc/config/sparc/linux64.h 2009-02-20 16:20:38.000000000 +0100
21487 +++ b/gcc/config/sparc/linux64.h 2010-01-25 09:50:29.075687537 +0100
21488 @@ -40,10 +40,15 @@
21489 in a Medium/Low code model environment. */
21490
21491 #undef TARGET_DEFAULT
21492 +#ifdef BIARCH_32BIT_DEFAULT
21493 +#define TARGET_DEFAULT \
21494 + (MASK_APP_REGS + MASK_FPU)
21495 +#else
21496 #define TARGET_DEFAULT \
21497 (MASK_V9 + MASK_PTR64 + MASK_64BIT /* + MASK_HARD_QUAD */ \
21498 + MASK_STACK_BIAS + MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
21499 #endif
21500 +#endif
21501
21502 /* This must be v9a not just v9 because by default we enable
21503 -mvis. */
21504 diff -Nur a/gcc/config/sparc/sol2-bi.h b/gcc/config/sparc/sol2-bi.h
21505 --- a/gcc/config/sparc/sol2-bi.h 2007-10-19 06:29:38.000000000 +0200
21506 +++ b/gcc/config/sparc/sol2-bi.h 2010-01-25 09:50:29.075687537 +0100
21507 @@ -172,12 +172,12 @@
21508 %{YP,*} \
21509 %{R*} \
21510 %{compat-bsd: \
21511 - %{!YP,*:%{p|pg:-Y P,/usr/ucblib/sparcv9:/usr/lib/libp/sparcv9:/usr/lib/sparcv9} \
21512 - %{!p:%{!pg:-Y P,/usr/ucblib/sparcv9:/usr/lib/sparcv9}}} \
21513 - -R /usr/ucblib/sparcv9} \
21514 + %{!YP,*:%{p|pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9} \
21515 + %{!p:%{!pg:-Y P,%R/usr/ucblib/sparcv9:%R/usr/lib/sparcv9}}} \
21516 + -R %R/usr/ucblib/sparcv9} \
21517 %{!compat-bsd: \
21518 - %{!YP,*:%{p|pg:-Y P,/usr/lib/libp/sparcv9:/usr/lib/sparcv9} \
21519 - %{!p:%{!pg:-Y P,/usr/lib/sparcv9}}}}"
21520 + %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/sparcv9:%R/usr/lib/sparcv9} \
21521 + %{!p:%{!pg:-Y P,%R/usr/lib/sparcv9}}}}"
21522
21523 #define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE
21524
21525 diff -Nur a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
21526 --- a/gcc/config/sparc/sparc.c 2009-02-20 16:20:38.000000000 +0100
21527 +++ b/gcc/config/sparc/sparc.c 2010-01-25 09:50:29.075687537 +0100
21528 @@ -6120,7 +6120,7 @@
21529 sparc_emit_float_lib_cmp (rtx x, rtx y, enum rtx_code comparison)
21530 {
21531 const char *qpfunc;
21532 - rtx slot0, slot1, result, tem, tem2;
21533 + rtx slot0, slot1, result, tem, tem2, libfunc;
21534 enum machine_mode mode;
21535 enum rtx_code new_comparison;
21536
21537 @@ -6183,7 +6183,8 @@
21538 emit_move_insn (slot1, y);
21539 }
21540
21541 - emit_library_call (gen_rtx_SYMBOL_REF (Pmode, qpfunc), LCT_NORMAL,
21542 + libfunc = gen_rtx_SYMBOL_REF (Pmode, qpfunc);
21543 + emit_library_call (libfunc, LCT_NORMAL,
21544 DImode, 2,
21545 XEXP (slot0, 0), Pmode,
21546 XEXP (slot1, 0), Pmode);
21547 @@ -6191,7 +6192,8 @@
21548 }
21549 else
21550 {
21551 - emit_library_call (gen_rtx_SYMBOL_REF (Pmode, qpfunc), LCT_NORMAL,
21552 + libfunc = gen_rtx_SYMBOL_REF (Pmode, qpfunc);
21553 + emit_library_call (libfunc, LCT_NORMAL,
21554 SImode, 2,
21555 x, TFmode, y, TFmode);
21556 mode = SImode;
21557 @@ -6202,7 +6204,7 @@
21558 register so reload doesn't clobber the value if it needs
21559 the return register for a spill reg. */
21560 result = gen_reg_rtx (mode);
21561 - emit_move_insn (result, hard_libcall_value (mode));
21562 + emit_move_insn (result, hard_libcall_value (mode, libfunc));
21563
21564 switch (comparison)
21565 {
21566 diff -Nur a/gcc/config/spu/spu.h b/gcc/config/spu/spu.h
21567 --- a/gcc/config/spu/spu.h 2009-04-24 00:50:16.000000000 +0200
21568 +++ b/gcc/config/spu/spu.h 2010-01-25 09:50:29.085687411 +0100
21569 @@ -270,7 +270,8 @@
21570
21571 #define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (LINK_REGISTER_REGNUM)
21572
21573 -#define ARG_POINTER_CFA_OFFSET(FNDECL) (-STACK_POINTER_OFFSET)
21574 +#define ARG_POINTER_CFA_OFFSET(FNDECL) \
21575 + (crtl->args.pretend_args_size - STACK_POINTER_OFFSET)
21576
21577 \f
21578 /* Stack Checking */
21579 diff -Nur a/gcc/config/t-eglibc b/gcc/config/t-eglibc
21580 --- a/gcc/config/t-eglibc 1970-01-01 01:00:00.000000000 +0100
21581 +++ b/gcc/config/t-eglibc 2010-01-25 09:50:29.085687411 +0100
21582 @@ -0,0 +1,25 @@
21583 +# multilibs -*- mode:Makefile -*-
21584 +
21585 +MULTILIB_EXCEPTIONS :=
21586 +MULTILIB_MATCHES :=
21587 +MULTILIB_ALIASES :=
21588 +
21589 +# For all items in EGLIBC_CONFIGS except for the last one
21590 +# do $1. For the last one do $2. The items are separated with ",".
21591 +EGLIBC_AWK = $(shell echo $(EGLIBC_CONFIGS) | $(AWK) \
21592 + '{ \
21593 + N=split ($$0, configs, ","); \
21594 + for (i = 1; i < N; ++i) $1; \
21595 + $2; \
21596 + }')
21597 +
21598 +MULTILIB_OPTIONS := $(call EGLIBC_AWK, \
21599 + printf ("feglibc=%s/", configs[i]), \
21600 + printf ("feglibc=%s\n", configs[i]))
21601 +MULTILIB_DIRNAMES := $(call EGLIBC_AWK, \
21602 + printf ("%s ", configs[i]), \
21603 + printf ("%s\n", configs[i]))
21604 +MULTILIB_OSDIRNAMES := $(call EGLIBC_AWK, \
21605 + printf ("feglibc.%s=!%s ", configs[i], configs[i]), \
21606 + printf ("feglibc.%s=!%s\n", configs[i], configs[i]))
21607 +
21608 diff -Nur a/gcc/config/t-sysroot-suffix b/gcc/config/t-sysroot-suffix
21609 --- a/gcc/config/t-sysroot-suffix 1970-01-01 01:00:00.000000000 +0100
21610 +++ b/gcc/config/t-sysroot-suffix 2010-01-25 09:50:29.085687411 +0100
21611 @@ -0,0 +1,7 @@
21612 +# Generate SYSROOT_SUFFIX_SPEC from MULTILIB_OSDIRNAMES
21613 +
21614 +sysroot-suffix.h: $(srcdir)/config/print-sysroot-suffix.sh
21615 + $(SHELL) $(srcdir)/config/print-sysroot-suffix.sh \
21616 + "$(MULTILIB_OSDIRNAMES)" "$(MULTILIB_OPTIONS)" \
21617 + "$(MULTILIB_MATCHES)" "$(MULTILIB_ALIASES)" > tmp-sysroot-suffix.h
21618 + mv tmp-sysroot-suffix.h $@
21619 diff -Nur a/gcc/config/vx-common.h b/gcc/config/vx-common.h
21620 --- a/gcc/config/vx-common.h 2009-02-20 16:20:38.000000000 +0100
21621 +++ b/gcc/config/vx-common.h 2010-01-25 09:50:29.085687411 +0100
21622 @@ -92,3 +92,6 @@
21623 /* We occasionally need to distinguish between the VxWorks variants. */
21624 #define VXWORKS_KIND_NORMAL 1
21625 #define VXWORKS_KIND_AE 2
21626 +
21627 +/* Enable get_feature license checking. */
21628 +#define TARGET_FLEXLM
21629 diff -Nur a/gcc/config.gcc b/gcc/config.gcc
21630 --- a/gcc/config.gcc 2009-04-17 13:58:41.000000000 +0200
21631 +++ b/gcc/config.gcc 2010-01-25 09:50:29.085687411 +0100
21632 @@ -721,6 +721,28 @@
21633 need_64bit_hwint=yes
21634 # The EABI requires the use of __cxa_atexit.
21635 default_use_cxa_atexit=yes
21636 + case ${target} in
21637 + arm-wrs-linux-gnueabi)
21638 + tm_file="$tm_file arm/wrs-linux.h"
21639 + tmake_file="$tmake_file arm/t-wrs-linux"
21640 + tm_defines="$tm_defines TARGET_FLEXLM"
21641 + ;;
21642 + arm-montavista*-linux-gnueabi)
21643 + tm_file="$tm_file arm/montavista-linux.h"
21644 + tmake_file="$tmake_file arm/t-montavista-linux"
21645 + ;;
21646 + *)
21647 + if test x$enable_extra_asa_multilibs = xyes; then
21648 + tmake_file="${tmake_file} arm/t-asa"
21649 + elif test x$enable_extra_sgxx_multilibs = xyes; then
21650 + tmake_file="${tmake_file} arm/t-cs-linux"
21651 + elif test x$enable_extra_sgxxlite_multilibs = xyes; then
21652 + tmake_file="${tmake_file} arm/t-cs-linux-lite"
21653 + fi
21654 + tm_file="$tm_file ./sysroot-suffix.h"
21655 + tmake_file="$tmake_file t-sysroot-suffix"
21656 + ;;
21657 + esac
21658 ;;
21659 *)
21660 tmake_file="$tmake_file arm/t-linux"
21661 @@ -742,6 +764,13 @@
21662 need_64bit_hwint=yes
21663 # The EABI requires the use of __cxa_atexit.
21664 default_use_cxa_atexit=yes
21665 + if test x$enable_extra_sgxx_multilibs = xyes; then
21666 + tmake_file="${tmake_file} arm/t-cs-uclinux-eabi"
21667 + elif test x$enable_extra_sgxxlite_multilibs = xyes; then
21668 + tmake_file="${tmake_file} arm/t-cs-uclinux-eabi"
21669 + fi
21670 + tm_file="$tm_file ./sysroot-suffix.h"
21671 + tmake_file="$tmake_file t-sysroot-suffix"
21672 esac
21673 tm_file="$tm_file arm/aout.h arm/arm.h"
21674 tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
21675 @@ -762,8 +791,14 @@
21676 case ${target} in
21677 arm*-*-eabi*)
21678 tm_file="$tm_file arm/eabi.h"
21679 + tm_file="${tm_file} arm/nocrt0.h"
21680 tmake_file="${tmake_file} arm/t-bpabi"
21681 extra_options="${extra_options} arm/eabi.opt"
21682 + if test x$enable_extra_sgxx_multilibs = xyes; then
21683 + tmake_file="${tmake_file} arm/t-cs-eabi"
21684 + elif test x$enable_extra_sgxxlite_multilibs = xyes; then
21685 + tmake_file="${tmake_file} arm/t-cs-eabi-lite"
21686 + fi
21687 ;;
21688 arm*-*-symbianelf*)
21689 tm_file="${tm_file} arm/symbian.h"
21690 @@ -1088,7 +1123,7 @@
21691 tmake_file="${tmake_file} i386/t-linux64"
21692 need_64bit_hwint=yes
21693 case X"${with_cpu}" in
21694 - Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
21695 + Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
21696 ;;
21697 X)
21698 if test x$with_cpu_64 = x; then
21699 @@ -1097,13 +1132,29 @@
21700 ;;
21701 *)
21702 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
21703 - echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
21704 + echo "generic atom core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
21705 exit 1
21706 ;;
21707 esac
21708 else
21709 tm_file="${tm_file} i386/linux.h"
21710 fi
21711 + case ${target} in
21712 + *-wrs-linux*)
21713 + tm_file="$tm_file i386/wrs-linux.h"
21714 + tmake_file="$tmake_file i386/t-wrs-linux"
21715 + extra_options="${extra_options} i386/wrs-linux.opt"
21716 + tm_defines="${tm_defines} TARGET_FLEXLM"
21717 + ;;
21718 + esac
21719 + if test x$enable_extra_sgxx_multilibs = xyes; then
21720 + tm_file="${tm_file} i386/cs-linux.h"
21721 + tmake_file="${tmake_file} i386/t-cs-linux"
21722 + extra_options="${extra_options} i386/cs-linux.opt"
21723 + elif test x$enable_extra_sgxxlite_multilibs = xyes; then
21724 + tm_file="${tm_file} i386/cs-linux-lite.h"
21725 + tmake_file="${tmake_file} i386/t-cs-linux-lite"
21726 + fi
21727 ;;
21728 i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/linux.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
21729 i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/linux.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
21730 @@ -1202,7 +1253,7 @@
21731 # libgcc/configure.ac instead.
21732 need_64bit_hwint=yes
21733 case X"${with_cpu}" in
21734 - Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
21735 + Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
21736 ;;
21737 X)
21738 if test x$with_cpu_64 = x; then
21739 @@ -1211,7 +1262,7 @@
21740 ;;
21741 *)
21742 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
21743 - echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
21744 + echo "generic atom core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
21745 exit 1
21746 ;;
21747 esac
21748 @@ -1566,6 +1617,7 @@
21749 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
21750 ;;
21751 esac
21752 + tmake_file="$tmake_file mips/t-crtfm"
21753 gnu_ld=yes
21754 gas=yes
21755 test x$with_llsc != x || with_llsc=yes
21756 @@ -1579,8 +1631,28 @@
21757 ;;
21758 mipsisa32*)
21759 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
21760 + ;;
21761 + mips-wrs-linux-gnu)
21762 + tmake_file="$tmake_file mips/t-linux64 mips/t-wrs-linux"
21763 + tm_file="$tm_file mips/linux64.h mips/octeon.h mips/wrs-linux.h"
21764 + tm_defines="$tm_defines TARGET_FLEXLM"
21765 + ;;
21766 + mips-montavista*-linux-gnu)
21767 + tmake_file="$tmake_file mips/t-linux64 mips/t-montavista-linux"
21768 + tm_file="$tm_file mips/linux64.h mips/octeon.h mips/montavista-linux.h"
21769 + ;;
21770 + *)
21771 + if test x$enable_extra_sgxx_multilibs = xyes; then
21772 + tmake_file="$tmake_file mips/t-sgxx-linux"
21773 + tm_file="$tm_file mips/cs-sgxx-linux.h"
21774 + elif test x$enable_extra_sgxxlite_multilibs = xyes; then
21775 + tmake_file="$tmake_file mips/t-sgxxlite-linux"
21776 + tm_file="$tm_file mips/cs-sgxxlite-linux.h"
21777 + fi
21778 + ;;
21779 esac
21780 test x$with_llsc != x || with_llsc=yes
21781 + tmake_file="$tmake_file mips/t-crtfm"
21782 ;;
21783 mips*-*-openbsd*)
21784 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS"
21785 @@ -1625,6 +1697,25 @@
21786 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
21787 ;;
21788 esac
21789 + if [ "$enable_sgxx_sde_multilibs" = "yes" ]; then
21790 + tm_file="$tm_file mips/sdemtk.h"
21791 + extra_options="$extra_options mips/sdemtk.opt"
21792 + tmake_file="$tmake_file mips/t-sgxx-sde"
21793 + # SourceryG++ is configured --with-arch=mips32r2.
21794 + tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
21795 + fi
21796 + ;;
21797 +mips64octeon*-wrs-elf*)
21798 + tm_file="elfos.h ${tm_file} mips/elf.h mips/octeon.h mips/octeon-elf.h"
21799 + tmake_file=mips/t-octeon-elf
21800 + tm_defines="MIPS_ABI_DEFAULT=ABI_EABI MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\" TARGET_FLEXLM"
21801 + default_use_cxa_atexit=no
21802 + ;;
21803 +mips64octeon*-montavista-elf*)
21804 + tm_file="elfos.h ${tm_file} mips/elf.h mips/octeon.h mips/octeon-elf.h"
21805 + tmake_file="mips/t-octeon-elf mips/t-montavista-elf"
21806 + tm_defines="MIPS_ABI_DEFAULT=ABI_EABI MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
21807 + default_use_cxa_atexit=no
21808 ;;
21809 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
21810 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
21811 @@ -1796,6 +1887,10 @@
21812 tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h"
21813 extra_options="${extra_options} rs6000/sysv4.opt"
21814 tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
21815 + if test x$enable_powerpc_e500mc_elf = xyes; then
21816 + tm_file="${tm_file} rs6000/e500mc.h"
21817 + tmake_file="${tmake_file} rs6000/t-ppc-e500mc"
21818 + fi
21819 ;;
21820 powerpc-*-eabialtivec*)
21821 tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h"
21822 @@ -1811,6 +1906,11 @@
21823 tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h"
21824 extra_options="${extra_options} rs6000/sysv4.opt"
21825 tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
21826 + if test x$enable_extra_sgxx_multilibs = xyes; then
21827 + tmake_file="${tmake_file} rs6000/t-cs-eabi"
21828 + elif test x$enable_extra_sgxxlite_multilibs = xyes; then
21829 + tmake_file="${tmake_file} rs6000/t-cs-eabi-lite"
21830 + fi
21831 ;;
21832 powerpc-*-rtems*)
21833 tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h"
21834 @@ -1853,6 +1953,26 @@
21835 if test x${enable_secureplt} = xyes; then
21836 tm_file="rs6000/secureplt.h ${tm_file}"
21837 fi
21838 + case ${target} in
21839 + powerpc-wrs-linux-gnu)
21840 + tm_file="$tm_file rs6000/wrs-linux.h rs6000/e500.h"
21841 + tmake_file="$tmake_file rs6000/t-wrs-linux"
21842 + tm_defines="$tm_defines TARGET_FLEXLM"
21843 + ;;
21844 + powerpc-montavista*-linux-gnu)
21845 + tm_file="$tm_file rs6000/montavista-linux.h"
21846 + tmake_file="$tmake_file rs6000/t-montavista-linux"
21847 + ;;
21848 + *)
21849 + if test x$enable_extra_sgxx_multilibs = xyes; then
21850 + tm_file="${tm_file} rs6000/e500.h"
21851 + tmake_file="$tmake_file rs6000/t-cs-linux"
21852 + elif test x$enable_extra_sgxxlite_multilibs = xyes; then
21853 + tm_file="${tm_file} rs6000/e500.h"
21854 + tmake_file="$tmake_file rs6000/t-cs-linux"
21855 + fi
21856 + ;;
21857 + esac
21858 ;;
21859 powerpc-*-gnu-gnualtivec*)
21860 tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h"
21861 @@ -2009,9 +2129,14 @@
21862 *) with_endian=big,little ;;
21863 esac
21864 fi
21865 + # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
21866 + # First word : the default endian.
21867 + # Second word: the secondary endian (optional).
21868 case ${with_endian} in
21869 - big|little) tmake_file="${tmake_file} sh/t-1e" ;;
21870 - big,little|little,big) ;;
21871 + big) TM_ENDIAN_CONFIG=mb ;;
21872 + little) TM_ENDIAN_CONFIG=ml ;;
21873 + big,little) TM_ENDIAN_CONFIG="mb ml" ;;
21874 + little,big) TM_ENDIAN_CONFIG="ml mb" ;;
21875 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
21876 esac
21877 case ${with_endian} in
21878 @@ -2118,7 +2243,7 @@
21879 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
21880 esac
21881 sh_multilibs=${with_multilib_list}
21882 - if test x${sh_multilibs} = x ; then
21883 + if test "$sh_multilibs" = "default" ; then
21884 case ${target} in
21885 sh64-superh-linux* | \
21886 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
21887 @@ -2134,28 +2259,43 @@
21888 fi
21889 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
21890 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
21891 - sh_multilibs=`echo $sh_multilibs,$sh_cpu_default | sed -e 's/[ ,/][ ,]*/ /g' -e 's/ $//' -e 's/^m/sh/' -e 's/ m/ sh/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
21892 + tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
21893 + sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^sh/m/i' -e 's/ sh/ m/gi' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
21894 for sh_multilib in ${sh_multilibs}; do
21895 case ${sh_multilib} in
21896 - sh1 | sh2 | sh2e | sh3 | sh3e | \
21897 - sh4 | sh4-single | sh4-single-only | sh4-nofpu | sh4-300 |\
21898 - sh4a | sh4a-single | sh4a-single-only | sh4a-nofpu | sh4al | \
21899 - sh2a | sh2a-single | sh2a-single-only | sh2a-nofpu | \
21900 - sh5-64media | sh5-64media-nofpu | \
21901 - sh5-32media | sh5-32media-nofpu | \
21902 - sh5-compact | sh5-compact-nofpu)
21903 - tmake_file="${tmake_file} sh/t-mlib-${sh_multilib}"
21904 - tm_defines="$tm_defines SUPPORT_`echo $sh_multilib|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
21905 - ;;
21906 + m1 | m2 | m2e | m3 | m3e | \
21907 + m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
21908 + m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
21909 + m2a | m2a-single | m2a-single-only | m2a-nofpu | \
21910 + m5-64media | m5-64media-nofpu | \
21911 + m5-32media | m5-32media-nofpu | \
21912 + m5-compact | m5-compact-nofpu)
21913 + # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
21914 + # It is passed to MULTIILIB_OPTIONS verbatim.
21915 + TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
21916 + tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
21917 + ;;
21918 + \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
21919 + # It is passed the MULTILIB_EXCEPTIONS verbatim.
21920 + TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
21921 *)
21922 echo "with_multilib_list=${sh_multilib} not supported."
21923 exit 1
21924 ;;
21925 esac
21926 done
21927 + TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
21928 if test x${enable_incomplete_targets} = xyes ; then
21929 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1 SUPPORT_SH5_32MEDIA=1 SUPPORT_SH5_32MEDIA_NOFPU=1 SUPPORT_SH5_64MEDIA=1 SUPPORT_SH5_64MEDIA_NOFPU=1"
21930 fi
21931 + if test x$enable_extra_sgxxlite_multilibs = xyes \
21932 + || test x$enable_extra_sgxx_multilibs = xyes; then
21933 + # SG++ and Lite do not differ, as yet, so use the Lite files for both
21934 + tm_file="$tm_file sh/cs-sgxxlite-linux.h"
21935 + tmake_file="$tmake_file sh/t-sgxxlite-linux"
21936 + fi
21937 + tm_file="$tm_file ./sysroot-suffix.h"
21938 + tmake_file="$tmake_file t-sysroot-suffix"
21939 ;;
21940 sh-*-rtems*)
21941 tmake_file="sh/t-sh sh/t-elf t-rtems sh/t-rtems"
21942 @@ -2194,6 +2334,11 @@
21943 tm_file="${tm_file} sparc/linux.h"
21944 fi
21945 tmake_file="${tmake_file} sparc/t-crtfm"
21946 + case ${target} in
21947 + sparc-wrs-linux-gnu)
21948 + tm_defines="$tm_defines BIARCH_32BIT_DEFAULT TARGET_FLEXLM"
21949 + ;;
21950 + esac
21951 ;;
21952 sparc-*-rtems*)
21953 tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h"
21954 @@ -2420,6 +2565,8 @@
21955 i[34567]86-*-* | x86_64-*-*)
21956 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
21957 ;;
21958 +powerpc*-*-* | rs6000-*-*)
21959 + tm_file="${tm_file} rs6000/option-defaults.h"
21960 esac
21961
21962 # Support for --with-cpu and related options (and a few unrelated options,
21963 @@ -2646,8 +2793,8 @@
21964 | armv[23456] | armv2a | armv3m | armv4t | armv5t \
21965 | armv5te | armv6j |armv6k | armv6z | armv6zk | armv6-m \
21966 | armv7 | armv7-a | armv7-r | armv7-m \
21967 - | iwmmxt | ep9312)
21968 - # OK
21969 + | iwmmxt | ep9312 | marvell-f )
21970 + # OK
21971 ;;
21972 *)
21973 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
21974 @@ -2668,7 +2815,10 @@
21975
21976 case "$with_fpu" in
21977 "" \
21978 - | fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | neon )
21979 + | fpa | fpe2 | fpe3 | maverick \
21980 + | vfp | vfp3 | vfpv3 | vfpv3-fp16 | vfpv3-d16 \
21981 + | vfpv3-d16-fp16 | vfpv4 | vfpv4-d16 | fpv4-sp-d16 \
21982 + | neon | neon-fp16 | neon-vfpv4 )
21983 # OK
21984 ;;
21985 *)
21986 @@ -2805,7 +2955,7 @@
21987 esac
21988 # OK
21989 ;;
21990 - "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic)
21991 + "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | atom | generic)
21992 # OK
21993 ;;
21994 *)
21995 @@ -2817,7 +2967,7 @@
21996 ;;
21997
21998 mips*-*-*)
21999 - supported_defaults="abi arch float tune divide llsc mips-plt"
22000 + supported_defaults="abi arch arch_32 arch_64 float tune tune_32 tune_64 divide llsc mips-plt"
22001
22002 case ${with_float} in
22003 "" | soft | hard)
22004 @@ -2882,12 +3032,20 @@
22005 ;;
22006
22007 powerpc*-*-* | rs6000-*-*)
22008 - supported_defaults="cpu float tune"
22009 + supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
22010
22011 - for which in cpu tune; do
22012 + for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
22013 eval "val=\$with_$which"
22014 case ${val} in
22015 default32 | default64)
22016 + case $which in
22017 + cpu | tune)
22018 + ;;
22019 + *)
22020 + echo "$val only valid for --with-cpu and --with-tune." 1>&2
22021 + exit 1
22022 + ;;
22023 + esac
22024 with_which="with_$which"
22025 eval $with_which=
22026 ;;
22027 @@ -3133,6 +3291,22 @@
22028 ;;
22029 esac
22030
22031 +case ${target} in
22032 + *-eglibc-*-*)
22033 + tmake_file="${tmake_file} t-eglibc"
22034 +
22035 + case ${target} in
22036 + arm-*)
22037 + # ARM already includes below.
22038 + ;;
22039 + *)
22040 + tmake_file="${tmake_file} t-sysroot-suffix"
22041 + tm_file="${tm_file} ./sysroot-suffix.h"
22042 + ;;
22043 + esac
22044 + ;;
22045 +esac
22046 +
22047 t=
22048 all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt"
22049 for option in $all_defaults
22050 diff -Nur a/gcc/config.in b/gcc/config.in
22051 --- a/gcc/config.in 2009-07-22 09:43:59.000000000 +0200
22052 +++ b/gcc/config.in 2010-01-25 09:50:29.085687411 +0100
22053 @@ -12,6 +12,18 @@
22054 #endif
22055
22056
22057 +/* Required license feature */
22058 +#ifndef USED_FOR_TARGET
22059 +#undef CSL_LICENSE_FEATURE
22060 +#endif
22061 +
22062 +
22063 +/* Required license version */
22064 +#ifndef USED_FOR_TARGET
22065 +#undef CSL_LICENSE_VERSION
22066 +#endif
22067 +
22068 +
22069 /* Define to enable the use of a default assembler. */
22070 #ifndef USED_FOR_TARGET
22071 #undef DEFAULT_ASSEMBLER
22072 @@ -108,6 +120,12 @@
22073 #endif
22074
22075
22076 +/* Define to warn for use of native system header directories */
22077 +#ifndef USED_FOR_TARGET
22078 +#undef ENABLE_POISON_SYSTEM_DIRECTORIES
22079 +#endif
22080 +
22081 +
22082 /* Define if you want all operations on RTL (the basic data structure of the
22083 optimizer and back end) to be checked for dynamic type safety at runtime.
22084 This is quite expensive. */
22085 @@ -821,6 +839,13 @@
22086 #endif
22087
22088
22089 +/* Define if your assembler supports specifying the alignment of objects
22090 + allocated using the GAS .comm command. */
22091 +#ifndef USED_FOR_TARGET
22092 +#undef HAVE_GAS_ALIGNED_COMM
22093 +#endif
22094 +
22095 +
22096 /* Define if your assembler supports .balign and .p2align. */
22097 #ifndef USED_FOR_TARGET
22098 #undef HAVE_GAS_BALIGN_AND_P2ALIGN
22099 diff -Nur a/gcc/configure b/gcc/configure
22100 --- a/gcc/configure 2009-03-24 18:46:03.000000000 +0100
22101 +++ b/gcc/configure 2010-01-25 09:50:29.085687411 +0100
22102 @@ -458,7 +458,7 @@
22103 # include <unistd.h>
22104 #endif"
22105
22106 -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP EGREP loose_warn strict_warn warn_cflags nocommon_flag TREEBROWSER valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_decimal_float enable_fixed_point enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI datarootdir docdir htmldir SET_MAKE AWK LN_S LN RANLIB ac_ct_RANLIB ranlib_flags INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON NM AR COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LTLIBICONV LIBICONV_DEP manext objext gthread_flags extra_modes_file extra_opt_files USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CROSS ALL SYSTEM_HEADER_DIR inhibit_libc CC_FOR_BUILD BUILD_CFLAGS BUILD_LDFLAGS STMP_FIXINC STMP_FIXPROTO collect2 LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN OBJDUMP ac_ct_OBJDUMP ac_ct_AR STRIP ac_ct_STRIP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 objdir enable_fast_install gcc_cv_as ORIGINAL_AS_FOR_TARGET gcc_cv_ld ORIGINAL_LD_FOR_TARGET gcc_cv_nm ORIGINAL_NM_FOR_TARGET gcc_cv_objdump gcc_cv_readelf libgcc_visibility GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir subdirs srcdir all_compilers all_gtfiles all_lang_makefrags all_lang_makefiles all_languages all_selected_languages build_exeext build_install_headers_dir build_xm_file_list build_xm_include_list build_xm_defines build_file_translate check_languages cpp_install_dir xmake_file tmake_file extra_gcc_objs extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir host_exeext host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_object_file thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines c_target_objs cxx_target_objs fortran_target_objs target_cpu_default GMPLIBS GMPINC PPLLIBS PPLINC CLOOGLIBS CLOOGINC LIBOBJS LTLIBOBJS'
22107 +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical licensedir build_libsubdir build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP EGREP loose_warn strict_warn warn_cflags nocommon_flag TREEBROWSER valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_decimal_float enable_fixed_point enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR EGLIBC_CONFIGS CONFIGURE_SPECS onestep PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI datarootdir docdir htmldir SET_MAKE AWK LN_S LN RANLIB ac_ct_RANLIB ranlib_flags INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON NM AR COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LTLIBICONV LIBICONV_DEP manext objext gthread_flags extra_modes_file extra_opt_files USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT CROSS ALL SYSTEM_HEADER_DIR inhibit_libc CC_FOR_BUILD BUILD_CFLAGS BUILD_LDFLAGS STMP_FIXINC STMP_FIXPROTO collect2 LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN OBJDUMP ac_ct_OBJDUMP ac_ct_AR STRIP ac_ct_STRIP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 objdir enable_fast_install gcc_cv_as ORIGINAL_AS_FOR_TARGET gcc_cv_ld ORIGINAL_LD_FOR_TARGET gcc_cv_nm ORIGINAL_NM_FOR_TARGET gcc_cv_objdump gcc_cv_readelf libgcc_visibility GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir subdirs srcdir all_compilers all_gtfiles all_lang_makefrags all_lang_makefiles all_languages all_selected_languages build_exeext build_install_headers_dir build_xm_file_list build_xm_include_list build_xm_defines build_file_translate check_languages cpp_install_dir xmake_file tmake_file TM_ENDIAN_CONFIG TM_MULTILIB_CONFIG TM_MULTILIB_EXCEPTIONS_CONFIG extra_gcc_objs extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir host_exeext host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_object_file thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines c_target_objs cxx_target_objs fortran_target_objs target_cpu_default GMPLIBS GMPINC PPLLIBS PPLINC CLOOGLIBS CLOOGINC LIBOBJS LTLIBOBJS'
22108 ac_subst_files='language_hooks'
22109 ac_pwd=`pwd`
22110
22111 @@ -1084,10 +1084,17 @@
22112 --enable-version-specific-runtime-libs
22113 specify that runtime libraries should be
22114 installed in a compiler-specific directory
22115 + --enable-poison-system-directories
22116 + warn for use of native system header directories
22117
22118 Optional Packages:
22119 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
22120 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
22121 + --with-csl-license-version=VERSION
22122 + Use VERSION to communicate with the license manager
22123 + --with-license the path to the installed license component
22124 + --with-csl-license-feature=FEATURE
22125 + Use FEATURE to communicate with the license manager
22126 --with-build-libsubdir=DIR Directory where to find libraries for build system
22127 --with-local-prefix=DIR specifies directory to put local include
22128 --with-gxx-include-dir=DIR
22129 @@ -1105,8 +1112,12 @@
22130 --with-build-sysroot=sysroot
22131 use sysroot as the system root during the build
22132 --with-sysroot=DIR Search for usr/lib, usr/include, et al, within DIR.
22133 + --with-eglibc-configs=CONFIGS
22134 + build multilibs for these EGLIBC configurations
22135 + --with-specs=SPECS add SPECS to driver command-line processing
22136 --with-pkgversion=PKG Use PKG in the version string in place of "GCC"
22137 --with-bugurl=URL Direct users to URL to report a bug
22138 + --with-multilib-list Select multilibs (SH only)
22139 --with-gnu-ld assume the C compiler uses GNU ld default=no
22140 --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
22141 --without-libiconv-prefix don't search for libiconv in includedir and libdir
22142 @@ -1724,6 +1735,73 @@
22143
22144
22145
22146 +
22147 +
22148 +# Check whether --with-csl-license-version or --without-csl-license-version was given.
22149 +if test "${with_csl_license_version+set}" = set; then
22150 + withval="$with_csl_license_version"
22151 + case "$withval" in
22152 + (yes) { { echo "$as_me:$LINENO: error: license version not specified" >&5
22153 +echo "$as_me: error: license version not specified" >&2;}
22154 + { (exit 1); exit 1; }; } ;;
22155 + (no) CSL_LICENSE_VERSION="" ;;
22156 + (*) CSL_LICENSE_VERSION="$withval" ;;
22157 + esac
22158 +else
22159 + CSL_LICENSE_VERSION=""
22160 +
22161 +fi;
22162 + if test x"$CSL_LICENSE_VERSION" != x; then
22163 +
22164 +cat >>confdefs.h <<_ACEOF
22165 +#define CSL_LICENSE_VERSION "$CSL_LICENSE_VERSION"
22166 +_ACEOF
22167 +
22168 + fi
22169 +
22170 +
22171 +
22172 +# Check whether --with-license or --without-license was given.
22173 +if test "${with_license+set}" = set; then
22174 + withval="$with_license"
22175 + case "$withval" in
22176 + (yes) { { echo "$as_me:$LINENO: error: license not specified" >&5
22177 +echo "$as_me: error: license not specified" >&2;}
22178 + { (exit 1); exit 1; }; } ;;
22179 + (no) with_license= ;;
22180 + (*) ;;
22181 + esac
22182 +else
22183 + with_license=
22184 +fi;
22185 + licensedir=$with_license
22186 +
22187 +
22188 +
22189 +
22190 +# Check whether --with-csl-license-feature or --without-csl-license-feature was given.
22191 +if test "${with_csl_license_feature+set}" = set; then
22192 + withval="$with_csl_license_feature"
22193 + case "$withval" in
22194 + (yes) { { echo "$as_me:$LINENO: error: license feature not specified" >&5
22195 +echo "$as_me: error: license feature not specified" >&2;}
22196 + { (exit 1); exit 1; }; } ;;
22197 + (no) CSL_LICENSE_FEATURE="" ;;
22198 + (*) CSL_LICENSE_FEATURE="$withval" ;;
22199 + esac
22200 +else
22201 + CSL_LICENSE_FEATURE=""
22202 +
22203 +fi;
22204 + if test x"$CSL_LICENSE_FEATURE" != x; then
22205 +
22206 +cat >>confdefs.h <<_ACEOF
22207 +#define CSL_LICENSE_FEATURE "$CSL_LICENSE_FEATURE"
22208 +_ACEOF
22209 +
22210 + fi
22211 +
22212 +
22213 # Determine the target- and build-specific subdirectories
22214
22215 # post-stage1 host modules use a different CC_FOR_BUILD so, in order to
22216 @@ -8042,6 +8120,28 @@
22217
22218
22219
22220 +
22221 +# Check whether --with-eglibc-configs or --without-eglibc-configs was given.
22222 +if test "${with_eglibc_configs+set}" = set; then
22223 + withval="$with_eglibc_configs"
22224 + EGLIBC_CONFIGS=$withval
22225 +else
22226 + EGLIBC_CONFIGS=
22227 +
22228 +fi;
22229 +
22230 +
22231 +
22232 +# Check whether --with-specs or --without-specs was given.
22233 +if test "${with_specs+set}" = set; then
22234 + withval="$with_specs"
22235 + CONFIGURE_SPECS=$withval
22236 +else
22237 + CONFIGURE_SPECS=
22238 +
22239 +fi;
22240 +
22241 +
22242 # Build with intermodule optimisations
22243 # Check whether --enable-intermodule or --disable-intermodule was given.
22244 if test "${enable_intermodule+set}" = set; then
22245 @@ -8137,6 +8237,15 @@
22246
22247
22248
22249 +
22250 +# Check whether --with-multilib-list or --without-multilib-list was given.
22251 +if test "${with_multilib_list+set}" = set; then
22252 + withval="$with_multilib_list"
22253 + :
22254 +else
22255 + with_multilib_list=default
22256 +fi;
22257 +
22258 # -------------------------
22259 # Checks for other programs
22260 # -------------------------
22261 @@ -14509,13 +14618,13 @@
22262 else
22263 lt_cv_nm_interface="BSD nm"
22264 echo "int some_variable = 0;" > conftest.$ac_ext
22265 - (eval echo "\"\$as_me:14512: $ac_compile\"" >&5)
22266 + (eval echo "\"\$as_me:14621: $ac_compile\"" >&5)
22267 (eval "$ac_compile" 2>conftest.err)
22268 cat conftest.err >&5
22269 - (eval echo "\"\$as_me:14515: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
22270 + (eval echo "\"\$as_me:14624: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
22271 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
22272 cat conftest.err >&5
22273 - (eval echo "\"\$as_me:14518: output\"" >&5)
22274 + (eval echo "\"\$as_me:14627: output\"" >&5)
22275 cat conftest.out >&5
22276 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
22277 lt_cv_nm_interface="MS dumpbin"
22278 @@ -15672,7 +15781,7 @@
22279 ;;
22280 *-*-irix6*)
22281 # Find out which ABI we are using.
22282 - echo '#line 15675 "configure"' > conftest.$ac_ext
22283 + echo '#line 15784 "configure"' > conftest.$ac_ext
22284 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
22285 (eval $ac_compile) 2>&5
22286 ac_status=$?
22287 @@ -16971,11 +17080,11 @@
22288 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
22289 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
22290 -e 's:$: $lt_compiler_flag:'`
22291 - (eval echo "\"\$as_me:16974: $lt_compile\"" >&5)
22292 + (eval echo "\"\$as_me:17083: $lt_compile\"" >&5)
22293 (eval "$lt_compile" 2>conftest.err)
22294 ac_status=$?
22295 cat conftest.err >&5
22296 - echo "$as_me:16978: \$? = $ac_status" >&5
22297 + echo "$as_me:17087: \$? = $ac_status" >&5
22298 if (exit $ac_status) && test -s "$ac_outfile"; then
22299 # The compiler can only warn and ignore the option if not recognized
22300 # So say no if there are warnings other than the usual output.
22301 @@ -17310,11 +17419,11 @@
22302 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
22303 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
22304 -e 's:$: $lt_compiler_flag:'`
22305 - (eval echo "\"\$as_me:17313: $lt_compile\"" >&5)
22306 + (eval echo "\"\$as_me:17422: $lt_compile\"" >&5)
22307 (eval "$lt_compile" 2>conftest.err)
22308 ac_status=$?
22309 cat conftest.err >&5
22310 - echo "$as_me:17317: \$? = $ac_status" >&5
22311 + echo "$as_me:17426: \$? = $ac_status" >&5
22312 if (exit $ac_status) && test -s "$ac_outfile"; then
22313 # The compiler can only warn and ignore the option if not recognized
22314 # So say no if there are warnings other than the usual output.
22315 @@ -17415,11 +17524,11 @@
22316 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
22317 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
22318 -e 's:$: $lt_compiler_flag:'`
22319 - (eval echo "\"\$as_me:17418: $lt_compile\"" >&5)
22320 + (eval echo "\"\$as_me:17527: $lt_compile\"" >&5)
22321 (eval "$lt_compile" 2>out/conftest.err)
22322 ac_status=$?
22323 cat out/conftest.err >&5
22324 - echo "$as_me:17422: \$? = $ac_status" >&5
22325 + echo "$as_me:17531: \$? = $ac_status" >&5
22326 if (exit $ac_status) && test -s out/conftest2.$ac_objext
22327 then
22328 # The compiler can only warn and ignore the option if not recognized
22329 @@ -17470,11 +17579,11 @@
22330 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
22331 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
22332 -e 's:$: $lt_compiler_flag:'`
22333 - (eval echo "\"\$as_me:17473: $lt_compile\"" >&5)
22334 + (eval echo "\"\$as_me:17582: $lt_compile\"" >&5)
22335 (eval "$lt_compile" 2>out/conftest.err)
22336 ac_status=$?
22337 cat out/conftest.err >&5
22338 - echo "$as_me:17477: \$? = $ac_status" >&5
22339 + echo "$as_me:17586: \$? = $ac_status" >&5
22340 if (exit $ac_status) && test -s out/conftest2.$ac_objext
22341 then
22342 # The compiler can only warn and ignore the option if not recognized
22343 @@ -20282,7 +20391,7 @@
22344 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
22345 lt_status=$lt_dlunknown
22346 cat > conftest.$ac_ext <<_LT_EOF
22347 -#line 20285 "configure"
22348 +#line 20394 "configure"
22349 #include "confdefs.h"
22350
22351 #if HAVE_DLFCN_H
22352 @@ -20378,7 +20487,7 @@
22353 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
22354 lt_status=$lt_dlunknown
22355 cat > conftest.$ac_ext <<_LT_EOF
22356 -#line 20381 "configure"
22357 +#line 20490 "configure"
22358 #include "confdefs.h"
22359
22360 #if HAVE_DLFCN_H
22361 @@ -22108,6 +22217,22 @@
22362 tls_first_minor=16
22363 tls_as_opt='-32 --fatal-warnings'
22364 ;;
22365 + m68k-*-*)
22366 + conftest_s='
22367 + .section .tdata,"awT",@progbits
22368 +x:
22369 + .word 2
22370 + .text
22371 +foo:
22372 + move.l x@TLSGD(%a5),%a0
22373 + move.l x@TLSLDM(%a5),%a0
22374 + move.l x@TLSLDO(%a5),%a0
22375 + move.l x@TLSIE(%a5),%a0
22376 + move.l x@TLSLE(%a5),%a0'
22377 + tls_first_major=2
22378 + tls_first_minor=19
22379 + tls_as_opt='--fatal-warnings'
22380 + ;;
22381 powerpc-*-*)
22382 conftest_s='
22383 .section ".tdata","awT",@progbits
22384 @@ -22739,6 +22864,44 @@
22385 i[34567]86-*-* | x86_64-*-*)
22386 case $target_os in
22387 cygwin* | pe | mingw32*)
22388 + # Recent binutils allows the three-operand form of ".comm" on PE. This
22389 + # definition is used unconditionally to initialise the default state of
22390 + # the target option variable that governs usage of the feature.
22391 + echo "$as_me:$LINENO: checking assembler for .comm with alignment" >&5
22392 +echo $ECHO_N "checking assembler for .comm with alignment... $ECHO_C" >&6
22393 +if test "${gcc_cv_as_comm_has_align+set}" = set; then
22394 + echo $ECHO_N "(cached) $ECHO_C" >&6
22395 +else
22396 + gcc_cv_as_comm_has_align=no
22397 + if test $in_tree_gas = yes; then
22398 + if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 19 \) \* 1000 + 52`
22399 + then gcc_cv_as_comm_has_align=yes
22400 +fi
22401 + elif test x$gcc_cv_as != x; then
22402 + echo '.comm foo,1,32' > conftest.s
22403 + if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5'
22404 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
22405 + (eval $ac_try) 2>&5
22406 + ac_status=$?
22407 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
22408 + (exit $ac_status); }; }
22409 + then
22410 + gcc_cv_as_comm_has_align=yes
22411 + else
22412 + echo "configure: failed program was" >&5
22413 + cat conftest.s >&5
22414 + fi
22415 + rm -f conftest.o conftest.s
22416 + fi
22417 +fi
22418 +echo "$as_me:$LINENO: result: $gcc_cv_as_comm_has_align" >&5
22419 +echo "${ECHO_T}$gcc_cv_as_comm_has_align" >&6
22420 +
22421 +
22422 +cat >>confdefs.h <<_ACEOF
22423 +#define HAVE_GAS_ALIGNED_COMM `if test $gcc_cv_as_comm_has_align = yes; then echo 1; else echo 0; fi`
22424 +_ACEOF
22425 +
22426 # Used for DWARF 2 in PE
22427 echo "$as_me:$LINENO: checking assembler for .secrel32 relocs" >&5
22428 echo $ECHO_N "checking assembler for .secrel32 relocs... $ECHO_C" >&6
22429 @@ -24711,6 +24874,21 @@
22430 fi;
22431
22432
22433 +# Check whether --enable-poison-system-directories or --disable-poison-system-directories was given.
22434 +if test "${enable_poison_system_directories+set}" = set; then
22435 + enableval="$enable_poison_system_directories"
22436 +
22437 +else
22438 + enable_poison_system_directories=no
22439 +fi;
22440 +if test "x${enable_poison_system_directories}" = "xyes"; then
22441 +
22442 +cat >>confdefs.h <<\_ACEOF
22443 +#define ENABLE_POISON_SYSTEM_DIRECTORIES 1
22444 +_ACEOF
22445 +
22446 +fi
22447 +
22448 # Substitute configuration variables
22449
22450
22451 @@ -25451,6 +25629,7 @@
22452 s,@target_vendor@,$target_vendor,;t t
22453 s,@target_os@,$target_os,;t t
22454 s,@target_noncanonical@,$target_noncanonical,;t t
22455 +s,@licensedir@,$licensedir,;t t
22456 s,@build_libsubdir@,$build_libsubdir,;t t
22457 s,@build_subdir@,$build_subdir,;t t
22458 s,@host_subdir@,$host_subdir,;t t
22459 @@ -25487,6 +25666,8 @@
22460 s,@TARGET_SYSTEM_ROOT@,$TARGET_SYSTEM_ROOT,;t t
22461 s,@TARGET_SYSTEM_ROOT_DEFINE@,$TARGET_SYSTEM_ROOT_DEFINE,;t t
22462 s,@CROSS_SYSTEM_HEADER_DIR@,$CROSS_SYSTEM_HEADER_DIR,;t t
22463 +s,@EGLIBC_CONFIGS@,$EGLIBC_CONFIGS,;t t
22464 +s,@CONFIGURE_SPECS@,$CONFIGURE_SPECS,;t t
22465 s,@onestep@,$onestep,;t t
22466 s,@PKGVERSION@,$PKGVERSION,;t t
22467 s,@REPORT_BUGS_TO@,$REPORT_BUGS_TO,;t t
22468 @@ -25606,6 +25787,9 @@
22469 s,@cpp_install_dir@,$cpp_install_dir,;t t
22470 s,@xmake_file@,$xmake_file,;t t
22471 s,@tmake_file@,$tmake_file,;t t
22472 +s,@TM_ENDIAN_CONFIG@,$TM_ENDIAN_CONFIG,;t t
22473 +s,@TM_MULTILIB_CONFIG@,$TM_MULTILIB_CONFIG,;t t
22474 +s,@TM_MULTILIB_EXCEPTIONS_CONFIG@,$TM_MULTILIB_EXCEPTIONS_CONFIG,;t t
22475 s,@extra_gcc_objs@,$extra_gcc_objs,;t t
22476 s,@extra_headers_list@,$extra_headers_list,;t t
22477 s,@extra_objs@,$extra_objs,;t t
22478 diff -Nur a/gcc/configure.ac b/gcc/configure.ac
22479 --- a/gcc/configure.ac 2009-03-24 18:46:03.000000000 +0100
22480 +++ b/gcc/configure.ac 2010-01-25 09:50:29.085687411 +0100
22481 @@ -39,6 +39,10 @@
22482 # Determine the noncanonical target name, for directory use.
22483 ACX_NONCANONICAL_TARGET
22484
22485 +CSL_AC_LICENSE_VERSION
22486 +CSL_AC_LICENSE
22487 +CSL_AC_LICENSE_FEATURE
22488 +
22489 # Determine the target- and build-specific subdirectories
22490 GCC_TOPLEV_SUBDIRS
22491
22492 @@ -770,6 +774,22 @@
22493 AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
22494 AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
22495
22496 +AC_ARG_WITH(eglibc-configs,
22497 + [AS_HELP_STRING([--with-eglibc-configs=CONFIGS],
22498 + [build multilibs for these EGLIBC configurations])],
22499 + [EGLIBC_CONFIGS=$withval],
22500 + [EGLIBC_CONFIGS=]
22501 +)
22502 +AC_SUBST(EGLIBC_CONFIGS)
22503 +
22504 +AC_ARG_WITH(specs,
22505 + [AS_HELP_STRING([--with-specs=SPECS],
22506 + [add SPECS to driver command-line processing])],
22507 + [CONFIGURE_SPECS=$withval],
22508 + [CONFIGURE_SPECS=]
22509 +)
22510 +AC_SUBST(CONFIGURE_SPECS)
22511 +
22512 # Build with intermodule optimisations
22513 AC_ARG_ENABLE(intermodule,
22514 [ --enable-intermodule build the compiler in one step],
22515 @@ -810,6 +830,11 @@
22516 AC_SUBST(docdir)
22517 AC_SUBST(htmldir)
22518
22519 +AC_ARG_WITH(multilib-list,
22520 +[ --with-multilib-list Select multilibs (SH only)],
22521 +:,
22522 +with_multilib_list=default)
22523 +
22524 # -------------------------
22525 # Checks for other programs
22526 # -------------------------
22527 @@ -2576,6 +2601,22 @@
22528 tls_first_minor=16
22529 tls_as_opt='-32 --fatal-warnings'
22530 ;;
22531 + m68k-*-*)
22532 + conftest_s='
22533 + .section .tdata,"awT",@progbits
22534 +x:
22535 + .word 2
22536 + .text
22537 +foo:
22538 + move.l x@TLSGD(%a5),%a0
22539 + move.l x@TLSLDM(%a5),%a0
22540 + move.l x@TLSLDO(%a5),%a0
22541 + move.l x@TLSIE(%a5),%a0
22542 + move.l x@TLSLE(%a5),%a0'
22543 + tls_first_major=2
22544 + tls_first_minor=19
22545 + tls_as_opt='--fatal-warnings'
22546 + ;;
22547 powerpc-*-*)
22548 conftest_s='
22549 .section ".tdata","awT",@progbits
22550 @@ -2944,6 +2985,15 @@
22551 changequote([,])dnl
22552 case $target_os in
22553 cygwin* | pe | mingw32*)
22554 + # Recent binutils allows the three-operand form of ".comm" on PE. This
22555 + # definition is used unconditionally to initialise the default state of
22556 + # the target option variable that governs usage of the feature.
22557 + gcc_GAS_CHECK_FEATURE([.comm with alignment], gcc_cv_as_comm_has_align,
22558 + [2,19,52],,[.comm foo,1,32])
22559 + AC_DEFINE_UNQUOTED(HAVE_GAS_ALIGNED_COMM,
22560 + [`if test $gcc_cv_as_comm_has_align = yes; then echo 1; else echo 0; fi`],
22561 + [Define if your assembler supports specifying the alignment
22562 + of objects allocated using the GAS .comm command.])
22563 # Used for DWARF 2 in PE
22564 gcc_GAS_CHECK_FEATURE([.secrel32 relocs],
22565 gcc_cv_as_ix86_pe_secrel32,
22566 @@ -3891,6 +3941,16 @@
22567 htmldir='$(docdir)')
22568 AC_SUBST(htmldir)
22569
22570 +AC_ARG_ENABLE([poison-system-directories],
22571 + AS_HELP_STRING([--enable-poison-system-directories],
22572 + [warn for use of native system header directories]),,
22573 + [enable_poison_system_directories=no])
22574 +if test "x${enable_poison_system_directories}" = "xyes"; then
22575 + AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
22576 + [1],
22577 + [Define to warn for use of native system header directories])
22578 +fi
22579 +
22580 # Substitute configuration variables
22581 AC_SUBST(subdirs)
22582 AC_SUBST(srcdir)
22583 @@ -3910,6 +3970,9 @@
22584 AC_SUBST(cpp_install_dir)
22585 AC_SUBST(xmake_file)
22586 AC_SUBST(tmake_file)
22587 +AC_SUBST(TM_ENDIAN_CONFIG)
22588 +AC_SUBST(TM_MULTILIB_CONFIG)
22589 +AC_SUBST(TM_MULTILIB_EXCEPTIONS_CONFIG)
22590 AC_SUBST(extra_gcc_objs)
22591 AC_SUBST(extra_headers_list)
22592 AC_SUBST(extra_objs)
22593 diff -Nur a/gcc/c.opt b/gcc/c.opt
22594 --- a/gcc/c.opt 2009-03-18 22:14:53.000000000 +0100
22595 +++ b/gcc/c.opt 2010-01-25 09:50:29.085687411 +0100
22596 @@ -716,6 +716,10 @@
22597 C ObjC C++ ObjC++
22598 Treat the input file as already preprocessed
22599
22600 +fremove-local-statics
22601 +C C++ Var(flag_remove_local_statics) Optimization
22602 +Convert function-local static variables to automatic variables when it is safe to do so
22603 +
22604 freplace-objc-classes
22605 ObjC ObjC++
22606 Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime
22607 diff -Nur a/gcc/c-opts.c b/gcc/c-opts.c
22608 --- a/gcc/c-opts.c 2009-02-18 03:16:03.000000000 +0100
22609 +++ b/gcc/c-opts.c 2010-01-25 09:50:29.095687705 +0100
22610 @@ -40,6 +40,7 @@
22611 #include "mkdeps.h"
22612 #include "target.h"
22613 #include "tm_p.h"
22614 +#include "c-tree.h" /* For c_cpp_error. */
22615
22616 #ifndef DOLLARS_IN_IDENTIFIERS
22617 # define DOLLARS_IN_IDENTIFIERS true
22618 @@ -201,6 +202,7 @@
22619 {
22620 static const unsigned int lang_flags[] = {CL_C, CL_ObjC, CL_CXX, CL_ObjCXX};
22621 unsigned int i, result;
22622 + struct cpp_callbacks *cb;
22623
22624 /* This is conditionalized only because that is the way the front
22625 ends used to do it. Maybe this should be unconditional? */
22626 @@ -216,6 +218,8 @@
22627
22628 parse_in = cpp_create_reader (c_dialect_cxx () ? CLK_GNUCXX: CLK_GNUC89,
22629 ident_hash, line_table);
22630 + cb = cpp_get_callbacks (parse_in);
22631 + cb->error = c_cpp_error;
22632
22633 cpp_opts = cpp_get_options (parse_in);
22634 cpp_opts->dollars_in_ident = DOLLARS_IN_IDENTIFIERS;
22635 @@ -333,12 +337,12 @@
22636 or environment var dependency generation is used. */
22637 cpp_opts->deps.style = (code == OPT_M ? DEPS_SYSTEM: DEPS_USER);
22638 flag_no_output = 1;
22639 - cpp_opts->inhibit_warnings = 1;
22640 break;
22641
22642 case OPT_MD:
22643 case OPT_MMD:
22644 cpp_opts->deps.style = (code == OPT_MD ? DEPS_SYSTEM: DEPS_USER);
22645 + cpp_opts->deps.need_preprocessor_output = true;
22646 deps_file = arg;
22647 break;
22648
22649 @@ -444,7 +448,6 @@
22650 break;
22651
22652 case OPT_Werror:
22653 - cpp_opts->warnings_are_errors = value;
22654 global_dc->warning_as_error_requested = value;
22655 break;
22656
22657 @@ -503,10 +506,6 @@
22658 warn_strict_null_sentinel = value;
22659 break;
22660
22661 - case OPT_Wsystem_headers:
22662 - cpp_opts->warn_system_headers = value;
22663 - break;
22664 -
22665 case OPT_Wtraditional:
22666 cpp_opts->warn_traditional = value;
22667 break;
22668 @@ -895,8 +894,6 @@
22669 c_common_post_options, so that a subsequent -Wno-endif-labels
22670 is not overridden. */
22671 case OPT_pedantic_errors:
22672 - cpp_opts->pedantic_errors = 1;
22673 - /* Fall through. */
22674 case OPT_pedantic:
22675 cpp_opts->pedantic = 1;
22676 cpp_opts->warn_endif_labels = 1;
22677 @@ -971,10 +968,6 @@
22678 flag_undef = 1;
22679 break;
22680
22681 - case OPT_w:
22682 - cpp_opts->inhibit_warnings = 1;
22683 - break;
22684 -
22685 case OPT_v:
22686 verbose = true;
22687 break;
22688 @@ -1159,10 +1152,6 @@
22689
22690 input_location = UNKNOWN_LOCATION;
22691
22692 - /* If an error has occurred in cpplib, note it so we fail
22693 - immediately. */
22694 - errorcount += cpp_errors (parse_in);
22695 -
22696 *pfilename = this_input_filename
22697 = cpp_read_main_file (parse_in, in_fnames[0]);
22698 /* Don't do any compilation or preprocessing if there is no input file. */
22699 @@ -1274,7 +1263,8 @@
22700 {
22701 FILE *deps_stream = NULL;
22702
22703 - if (cpp_opts->deps.style != DEPS_NONE)
22704 + /* Don't write the deps file if there are errors. */
22705 + if (cpp_opts->deps.style != DEPS_NONE && errorcount == 0)
22706 {
22707 /* If -M or -MM was seen without -MF, default output to the
22708 output stream. */
22709 @@ -1290,7 +1280,7 @@
22710
22711 /* For performance, avoid tearing down cpplib's internal structures
22712 with cpp_destroy (). */
22713 - errorcount += cpp_finish (parse_in, deps_stream);
22714 + cpp_finish (parse_in, deps_stream);
22715
22716 if (deps_stream && deps_stream != out_stream
22717 && (ferror (deps_stream) || fclose (deps_stream)))
22718 diff -Nur a/gcc/cp/class.c b/gcc/cp/class.c
22719 --- a/gcc/cp/class.c 2009-06-24 19:02:03.000000000 +0200
22720 +++ b/gcc/cp/class.c 2010-01-25 09:50:29.095687705 +0100
22721 @@ -6136,7 +6136,7 @@
22722 if (flags & tf_error)
22723 {
22724 error ("no matches converting function %qD to type %q#T",
22725 - DECL_NAME (OVL_FUNCTION (overload)),
22726 + DECL_NAME (OVL_CURRENT (overload)),
22727 target_type);
22728
22729 /* print_candidates expects a chain with the functions in
22730 @@ -6299,13 +6299,8 @@
22731 dependent on overload resolution. */
22732 gcc_assert (TREE_CODE (rhs) == ADDR_EXPR
22733 || TREE_CODE (rhs) == COMPONENT_REF
22734 - || TREE_CODE (rhs) == COMPOUND_EXPR
22735 - || really_overloaded_fn (rhs));
22736 -
22737 - /* We don't overwrite rhs if it is an overloaded function.
22738 - Copying it would destroy the tree link. */
22739 - if (TREE_CODE (rhs) != OVERLOAD)
22740 - rhs = copy_node (rhs);
22741 + || really_overloaded_fn (rhs)
22742 + || (flag_ms_extensions && TREE_CODE (rhs) == FUNCTION_DECL));
22743
22744 /* This should really only be used when attempting to distinguish
22745 what sort of a pointer to function we have. For now, any
22746 @@ -6357,19 +6352,6 @@
22747 /*explicit_targs=*/NULL_TREE,
22748 access_path);
22749
22750 - case COMPOUND_EXPR:
22751 - TREE_OPERAND (rhs, 0)
22752 - = instantiate_type (lhstype, TREE_OPERAND (rhs, 0), flags);
22753 - if (TREE_OPERAND (rhs, 0) == error_mark_node)
22754 - return error_mark_node;
22755 - TREE_OPERAND (rhs, 1)
22756 - = instantiate_type (lhstype, TREE_OPERAND (rhs, 1), flags);
22757 - if (TREE_OPERAND (rhs, 1) == error_mark_node)
22758 - return error_mark_node;
22759 -
22760 - TREE_TYPE (rhs) = lhstype;
22761 - return rhs;
22762 -
22763 case ADDR_EXPR:
22764 {
22765 if (PTRMEM_OK_P (rhs))
22766 diff -Nur a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
22767 --- a/gcc/cp/cp-tree.h 2009-07-13 08:06:27.000000000 +0200
22768 +++ b/gcc/cp/cp-tree.h 2010-01-25 09:50:29.095687705 +0100
22769 @@ -43,9 +43,6 @@
22770 #else
22771 #define ATTRIBUTE_GCC_CXXDIAG(m, n) ATTRIBUTE_NONNULL(m)
22772 #endif
22773 -extern void cp_cpp_error (cpp_reader *, int,
22774 - const char *, va_list *)
22775 - ATTRIBUTE_GCC_CXXDIAG(3,0);
22776 #ifdef GCC_TOPLEV_H
22777 #error \
22778 In order for the format checking to accept the C++ front end diagnostic \
22779 diff -Nur a/gcc/cp/cvt.c b/gcc/cp/cvt.c
22780 --- a/gcc/cp/cvt.c 2009-04-23 13:13:57.000000000 +0200
22781 +++ b/gcc/cp/cvt.c 2010-01-25 09:50:29.095687705 +0100
22782 @@ -581,6 +581,7 @@
22783 tree e = expr;
22784 enum tree_code code = TREE_CODE (type);
22785 const char *invalid_conv_diag;
22786 + tree e1;
22787
22788 if (error_operand_p (e) || type == error_mark_node)
22789 return error_mark_node;
22790 @@ -629,6 +630,10 @@
22791 }
22792 }
22793
22794 + e1 = targetm.convert_to_type (type, e);
22795 + if (e1)
22796 + return e1;
22797 +
22798 if (code == VOID_TYPE && (convtype & CONV_STATIC))
22799 {
22800 e = convert_to_void (e, /*implicit=*/NULL, tf_warning_or_error);
22801 @@ -1231,11 +1236,18 @@
22802 tree
22803 type_promotes_to (tree type)
22804 {
22805 + tree promoted_type;
22806 +
22807 if (type == error_mark_node)
22808 return error_mark_node;
22809
22810 type = TYPE_MAIN_VARIANT (type);
22811
22812 + /* Check for promotions of target-defined types first. */
22813 + promoted_type = targetm.promoted_type (type);
22814 + if (promoted_type)
22815 + return promoted_type;
22816 +
22817 /* bool always promotes to int (not unsigned), even if it's the same
22818 size. */
22819 if (type == boolean_type_node)
22820 diff -Nur a/gcc/cp/decl2.c b/gcc/cp/decl2.c
22821 --- a/gcc/cp/decl2.c 2009-06-09 20:20:29.000000000 +0200
22822 +++ b/gcc/cp/decl2.c 2010-01-25 09:50:29.095687705 +0100
22823 @@ -1717,6 +1717,10 @@
22824 || (DECL_ASSEMBLER_NAME_SET_P (decl)
22825 && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))))
22826 return true;
22827 + /* Functions marked "dllexport" must be emitted so that they are
22828 + visible to other DLLs. */
22829 + if (lookup_attribute ("dllexport", DECL_ATTRIBUTES (decl)))
22830 + return true;
22831 /* Otherwise, DECL does not need to be emitted -- yet. A subsequent
22832 reference to DECL might cause it to be emitted later. */
22833 return false;
22834 @@ -3802,6 +3806,15 @@
22835 }
22836
22837 TREE_USED (decl) = 1;
22838 + if (current_function_decl != NULL_TREE
22839 + && (TREE_CODE (decl) == VAR_DECL
22840 + || TREE_CODE (decl) == PARM_DECL
22841 + || TREE_CODE (decl) == FUNCTION_DECL))
22842 + {
22843 + tree context = decl_function_context (decl);
22844 + if (context != NULL_TREE && context != current_function_decl)
22845 + DECL_NONLOCAL (decl) = 1;
22846 + }
22847 if (DECL_CLONED_FUNCTION_P (decl))
22848 TREE_USED (DECL_CLONED_FUNCTION (decl)) = 1;
22849 if (TREE_CODE (decl) == FUNCTION_DECL
22850 diff -Nur a/gcc/cp/decl.c b/gcc/cp/decl.c
22851 --- a/gcc/cp/decl.c 2009-07-08 00:08:01.000000000 +0200
22852 +++ b/gcc/cp/decl.c 2010-01-25 09:50:29.095687705 +0100
22853 @@ -4515,7 +4515,7 @@
22854
22855 cp_apply_type_quals_to_decl (cp_type_quals (TREE_TYPE (decl)), decl);
22856
22857 - layout_decl (decl, 0);
22858 + relayout_decl (decl);
22859 }
22860 }
22861
22862 @@ -7620,6 +7620,7 @@
22863 bool parameter_pack_p = declarator? declarator->parameter_pack_p : false;
22864 bool set_no_warning = false;
22865 bool template_type_arg = false;
22866 + const char *errmsg;
22867
22868 signed_p = declspecs->specs[(int)ds_signed];
22869 unsigned_p = declspecs->specs[(int)ds_unsigned];
22870 @@ -8299,6 +8300,12 @@
22871 type_quals = TYPE_UNQUALIFIED;
22872 set_no_warning = true;
22873 }
22874 + errmsg = targetm.invalid_return_type (type);
22875 + if (errmsg)
22876 + {
22877 + error (errmsg);
22878 + type = integer_type_node;
22879 + }
22880
22881 /* Error about some types functions can't return. */
22882
22883 @@ -8841,8 +8848,13 @@
22884
22885 /* Replace the anonymous name with the real name everywhere. */
22886 for (t = TYPE_MAIN_VARIANT (type); t; t = TYPE_NEXT_VARIANT (t))
22887 - if (TYPE_NAME (t) == oldname)
22888 - TYPE_NAME (t) = decl;
22889 + {
22890 + if (ANON_AGGRNAME_P (TYPE_IDENTIFIER (t)))
22891 + {
22892 + debug_hooks->set_name (t, decl);
22893 + TYPE_NAME (t) = decl;
22894 + }
22895 + }
22896
22897 if (TYPE_LANG_SPECIFIC (type))
22898 TYPE_WAS_ANONYMOUS (type) = 1;
22899 @@ -9679,6 +9691,7 @@
22900 tree type = NULL_TREE;
22901 tree init = TREE_PURPOSE (parm);
22902 tree decl = TREE_VALUE (parm);
22903 + const char *errmsg;
22904
22905 if (parm == void_list_node)
22906 break;
22907 @@ -9712,6 +9725,14 @@
22908 init = NULL_TREE;
22909 }
22910
22911 + if (type != error_mark_node
22912 + && (errmsg = targetm.invalid_parameter_type (type)))
22913 + {
22914 + error (errmsg);
22915 + type = error_mark_node;
22916 + TREE_TYPE (decl) = error_mark_node;
22917 + }
22918 +
22919 if (type != error_mark_node)
22920 {
22921 if (deprecated_state != DEPRECATED_SUPPRESS)
22922 diff -Nur a/gcc/cp/error.c b/gcc/cp/error.c
22923 --- a/gcc/cp/error.c 2009-07-11 00:31:34.000000000 +0200
22924 +++ b/gcc/cp/error.c 2010-01-25 09:50:29.095687705 +0100
22925 @@ -2667,39 +2667,6 @@
22926 #undef next_int
22927 }
22928 \f
22929 -/* Callback from cpp_error for PFILE to print diagnostics arising from
22930 - interpreting strings. The diagnostic is of type LEVEL; MSG is the
22931 - translated message and AP the arguments. */
22932 -
22933 -void
22934 -cp_cpp_error (cpp_reader *pfile ATTRIBUTE_UNUSED, int level,
22935 - const char *msg, va_list *ap)
22936 -{
22937 - diagnostic_info diagnostic;
22938 - diagnostic_t dlevel;
22939 - switch (level)
22940 - {
22941 - case CPP_DL_WARNING:
22942 - case CPP_DL_WARNING_SYSHDR:
22943 - dlevel = DK_WARNING;
22944 - break;
22945 - case CPP_DL_PEDWARN:
22946 - dlevel = DK_PEDWARN;
22947 - break;
22948 - case CPP_DL_ERROR:
22949 - dlevel = DK_ERROR;
22950 - break;
22951 - case CPP_DL_ICE:
22952 - dlevel = DK_ICE;
22953 - break;
22954 - default:
22955 - gcc_unreachable ();
22956 - }
22957 - diagnostic_set_info_translated (&diagnostic, msg, ap,
22958 - input_location, dlevel);
22959 - report_diagnostic (&diagnostic);
22960 -}
22961 -
22962 /* Warn about the use of C++0x features when appropriate. */
22963 void
22964 maybe_warn_cpp0x (const char* str)
22965 diff -Nur a/gcc/cp/except.c b/gcc/cp/except.c
22966 --- a/gcc/cp/except.c 2008-08-18 13:17:52.000000000 +0200
22967 +++ b/gcc/cp/except.c 2010-01-25 09:50:29.095687705 +0100
22968 @@ -146,14 +146,26 @@
22969 static tree
22970 build_eh_type_type (tree type)
22971 {
22972 - tree exp = eh_type_info (type);
22973 + bool is_ref = TREE_CODE (type) == REFERENCE_TYPE;
22974 + tree exp;
22975 +
22976 + if (is_ref)
22977 + type = TREE_TYPE (type);
22978 +
22979 + exp = eh_type_info (type);
22980
22981 if (!exp)
22982 return NULL;
22983
22984 mark_used (exp);
22985
22986 - return convert (ptr_type_node, build_address (exp));
22987 + exp = build_address (exp);
22988 +
22989 + if (is_ref)
22990 + exp = targetm.cxx.ttype_ref_encode (exp);
22991 +
22992 + exp = convert (ptr_type_node, exp);
22993 + return exp;
22994 }
22995
22996 tree
22997 @@ -495,6 +507,16 @@
22998 initialize_handler_parm (decl, exp);
22999 }
23000
23001 + /* Preserve the reference type on the exception, as this affects
23002 + derived-to-base conversions in catch matching. Only do this when
23003 + the ABI supports it, as originally this case was (incorrectly)
23004 + treated just as catching a pointer-to-class by value. */
23005 + if (targetm.cxx.ttype_ref_encode
23006 + && decl && TREE_CODE (type) == POINTER_TYPE
23007 + && CLASS_TYPE_P (TREE_TYPE (type))
23008 + && TREE_CODE (TREE_TYPE (decl)) == REFERENCE_TYPE)
23009 + type = build_reference_type (type);
23010 +
23011 return type;
23012 }
23013
23014 @@ -538,10 +560,20 @@
23015 raw_raises && TREE_VALUE (raw_raises);
23016 raw_raises = TREE_CHAIN (raw_raises))
23017 {
23018 - tree type = prepare_eh_type (TREE_VALUE (raw_raises));
23019 + tree orig_type = TREE_VALUE (raw_raises);
23020 + tree type = prepare_eh_type (orig_type);
23021 tree tinfo = eh_type_info (type);
23022
23023 mark_used (tinfo);
23024 + /* Preserve the reference type on the exception, as this affects
23025 + derived-to-base conversions in catch matching. Only do this when
23026 + the ABI supports it, as originally this case was (incorrectly)
23027 + treated just as catching a pointer-to-class by value. */
23028 + if (targetm.cxx.ttype_ref_encode
23029 + && TREE_CODE (orig_type) == REFERENCE_TYPE
23030 + && TREE_CODE (type) == POINTER_TYPE
23031 + && CLASS_TYPE_P (TREE_TYPE (type)))
23032 + type = build_reference_type (type);
23033 raises = tree_cons (NULL_TREE, type, raises);
23034 }
23035
23036 @@ -956,24 +988,40 @@
23037 static int
23038 can_convert_eh (tree to, tree from)
23039 {
23040 - to = non_reference (to);
23041 - from = non_reference (from);
23042 + bool to_ref = TREE_CODE (to) == REFERENCE_TYPE;
23043 + int depth = to_ref;
23044 + bool outer_const = true;
23045
23046 - if (TREE_CODE (to) == POINTER_TYPE && TREE_CODE (from) == POINTER_TYPE)
23047 + if (to_ref)
23048 + to = TREE_TYPE (to);
23049 + from = non_reference (from);
23050 +
23051 + while (TREE_CODE (to) == POINTER_TYPE && TREE_CODE (from) == POINTER_TYPE)
23052 {
23053 + unsigned to_quals, from_quals;
23054 +
23055 + depth++;
23056 +
23057 to = TREE_TYPE (to);
23058 from = TREE_TYPE (from);
23059 + to_quals = TYPE_QUALS (to);
23060 + from_quals = TYPE_QUALS (from);
23061
23062 - if (! at_least_as_qualified_p (to, from))
23063 + if ((from_quals & ~to_quals)
23064 + || (!outer_const && to_quals & ~from_quals))
23065 return 0;
23066 -
23067 - if (TREE_CODE (to) == VOID_TYPE)
23068 - return 1;
23069 -
23070 - /* Else fall through. */
23071 +
23072 + if (!(to_quals & TYPE_QUAL_CONST))
23073 + outer_const = false;
23074 }
23075
23076 - if (CLASS_TYPE_P (to) && CLASS_TYPE_P (from)
23077 + if (same_type_ignoring_top_level_qualifiers_p (from, to))
23078 + return 1;
23079 +
23080 + if (depth == to_ref + 1 && TREE_CODE (to) == VOID_TYPE)
23081 + return 1;
23082 +
23083 + if (depth < 2 && CLASS_TYPE_P (to) && CLASS_TYPE_P (from)
23084 && PUBLICLY_UNIQUELY_DERIVED_P (to, from))
23085 return 1;
23086
23087 diff -Nur a/gcc/cp/parser.c b/gcc/cp/parser.c
23088 --- a/gcc/cp/parser.c 2009-06-09 06:23:00.000000000 +0200
23089 +++ b/gcc/cp/parser.c 2010-01-25 09:50:29.105687718 +0100
23090 @@ -309,8 +309,7 @@
23091
23092 /* Subsequent preprocessor diagnostics should use compiler
23093 diagnostic functions to get the compiler source location. */
23094 - cpp_get_options (parse_in)->client_diagnostic = true;
23095 - cpp_get_callbacks (parse_in)->error = cp_cpp_error;
23096 + done_lexing = true;
23097
23098 gcc_assert (lexer->next_token->type != CPP_PURGED);
23099 return lexer;
23100 diff -Nur a/gcc/cp/rtti.c b/gcc/cp/rtti.c
23101 --- a/gcc/cp/rtti.c 2008-09-23 16:55:14.000000000 +0200
23102 +++ b/gcc/cp/rtti.c 2010-01-25 09:50:29.105687718 +0100
23103 @@ -393,6 +393,7 @@
23104 return d;
23105 }
23106
23107 + gcc_assert (TREE_CODE (type) != REFERENCE_TYPE);
23108 name = mangle_typeinfo_for_type (type);
23109
23110 d = IDENTIFIER_GLOBAL_VALUE (name);
23111 diff -Nur a/gcc/cp/semantics.c b/gcc/cp/semantics.c
23112 --- a/gcc/cp/semantics.c 2009-07-14 20:35:13.000000000 +0200
23113 +++ b/gcc/cp/semantics.c 2010-01-25 09:50:29.105687718 +0100
23114 @@ -1120,7 +1120,11 @@
23115 type = expand_start_catch_block (decl);
23116 HANDLER_TYPE (handler) = type;
23117 if (!processing_template_decl && type)
23118 - mark_used (eh_type_info (type));
23119 + {
23120 + if (TREE_CODE (type) == REFERENCE_TYPE)
23121 + type = TREE_TYPE (type);
23122 + mark_used (eh_type_info (type));
23123 + }
23124 }
23125
23126 /* Finish a handler, which may be given by HANDLER. The BLOCKs are
23127 @@ -3243,8 +3247,10 @@
23128
23129 /* If the user wants us to keep all inline functions, then mark
23130 this function as needed so that finish_file will make sure to
23131 - output it later. */
23132 - if (flag_keep_inline_functions && DECL_DECLARED_INLINE_P (fn))
23133 + output it later. Similarly, all dllexport'd functions must
23134 + be emitted; there may be callers in other DLLs. */
23135 + if ((flag_keep_inline_functions && DECL_DECLARED_INLINE_P (fn))
23136 + || lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn)))
23137 mark_needed (fn);
23138 }
23139
23140 diff -Nur a/gcc/cp/typeck.c b/gcc/cp/typeck.c
23141 --- a/gcc/cp/typeck.c 2009-07-13 08:06:27.000000000 +0200
23142 +++ b/gcc/cp/typeck.c 2010-01-25 09:50:29.105687718 +0100
23143 @@ -1707,10 +1707,14 @@
23144 tree
23145 default_conversion (tree exp)
23146 {
23147 + /* Check for target-specific promotions. */
23148 + tree promoted_type = targetm.promoted_type (TREE_TYPE (exp));
23149 + if (promoted_type)
23150 + exp = cp_convert (promoted_type, exp);
23151 /* Perform the integral promotions first so that bitfield
23152 expressions (which may promote to "int", even if the bitfield is
23153 declared "unsigned") are promoted correctly. */
23154 - if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (TREE_TYPE (exp)))
23155 + else if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (TREE_TYPE (exp)))
23156 exp = perform_integral_promotions (exp);
23157 /* Perform the other conversions. */
23158 exp = decay_conversion (exp);
23159 @@ -3389,6 +3393,25 @@
23160 return error_mark_node;
23161 }
23162
23163 + /* Issue warnings about peculiar, but valid, uses of NULL. */
23164 + if ((orig_op0 == null_node || orig_op1 == null_node)
23165 + /* It's reasonable to use pointer values as operands of &&
23166 + and ||, so NULL is no exception. */
23167 + && code != TRUTH_ANDIF_EXPR && code != TRUTH_ORIF_EXPR
23168 + && ( /* Both are NULL (or 0) and the operation was not a
23169 + comparison or a pointer subtraction. */
23170 + (null_ptr_cst_p (orig_op0) && null_ptr_cst_p (orig_op1)
23171 + && code != EQ_EXPR && code != NE_EXPR && code != MINUS_EXPR)
23172 + /* Or if one of OP0 or OP1 is neither a pointer nor NULL. */
23173 + || (!null_ptr_cst_p (orig_op0)
23174 + && !TYPE_PTR_P (type0) && !TYPE_PTR_TO_MEMBER_P (type0))
23175 + || (!null_ptr_cst_p (orig_op1)
23176 + && !TYPE_PTR_P (type1) && !TYPE_PTR_TO_MEMBER_P (type1)))
23177 + && (complain & tf_warning))
23178 + /* Some sort of arithmetic operation involving NULL was
23179 + performed. */
23180 + warning (OPT_Wpointer_arith, "NULL used in arithmetic");
23181 +
23182 switch (code)
23183 {
23184 case MINUS_EXPR:
23185 @@ -3979,25 +4002,6 @@
23186 }
23187 }
23188
23189 - /* Issue warnings about peculiar, but valid, uses of NULL. */
23190 - if ((orig_op0 == null_node || orig_op1 == null_node)
23191 - /* It's reasonable to use pointer values as operands of &&
23192 - and ||, so NULL is no exception. */
23193 - && code != TRUTH_ANDIF_EXPR && code != TRUTH_ORIF_EXPR
23194 - && ( /* Both are NULL (or 0) and the operation was not a comparison. */
23195 - (null_ptr_cst_p (orig_op0) && null_ptr_cst_p (orig_op1)
23196 - && code != EQ_EXPR && code != NE_EXPR)
23197 - /* Or if one of OP0 or OP1 is neither a pointer nor NULL. */
23198 - || (!null_ptr_cst_p (orig_op0) && TREE_CODE (TREE_TYPE (op0)) != POINTER_TYPE)
23199 - || (!null_ptr_cst_p (orig_op1) && TREE_CODE (TREE_TYPE (op1)) != POINTER_TYPE))
23200 - && (complain & tf_warning))
23201 - /* Some sort of arithmetic operation involving NULL was
23202 - performed. Note that pointer-difference and pointer-addition
23203 - have already been handled above, and so we don't end up here in
23204 - that case. */
23205 - warning (OPT_Wpointer_arith, "NULL used in arithmetic");
23206 -
23207 -
23208 /* If CONVERTED is zero, both args will be converted to type RESULT_TYPE.
23209 Then the expression will be built.
23210 It will be given type FINAL_TYPE if that is nonzero;
23211 @@ -5024,6 +5028,12 @@
23212 return rhs;
23213 }
23214
23215 + if (type_unknown_p (rhs))
23216 + {
23217 + error ("no context to resolve type of %qE", rhs);
23218 + return error_mark_node;
23219 + }
23220 +
23221 return build2 (COMPOUND_EXPR, TREE_TYPE (rhs), lhs, rhs);
23222 }
23223
23224 diff -Nur a/gcc/c-ppoutput.c b/gcc/c-ppoutput.c
23225 --- a/gcc/c-ppoutput.c 2008-09-23 19:47:32.000000000 +0200
23226 +++ b/gcc/c-ppoutput.c 2010-01-25 09:50:29.105687718 +0100
23227 @@ -521,6 +521,7 @@
23228
23229 if (map != NULL)
23230 {
23231 + input_location = map->start_location;
23232 if (print.first_time)
23233 {
23234 /* Avoid printing foo.i when the main file is foo.c. */
23235 diff -Nur a/gcc/cse.c b/gcc/cse.c
23236 --- a/gcc/cse.c 2009-04-27 13:55:13.000000000 +0200
23237 +++ b/gcc/cse.c 2010-01-25 09:50:29.105687718 +0100
23238 @@ -5754,6 +5754,11 @@
23239 validate_change (object, &XEXP (x, i),
23240 cse_process_notes (XEXP (x, i), object, changed), 0);
23241
23242 + /* Rebuild a PLUS expression in canonical form if the first operand
23243 + ends up as a constant. */
23244 + if (code == PLUS && GET_CODE (XEXP (x, 0)) == CONST_INT)
23245 + return plus_constant (XEXP(x, 1), INTVAL (XEXP (x, 0)));
23246 +
23247 return x;
23248 }
23249
23250 diff -Nur a/gcc/c-tree.h b/gcc/c-tree.h
23251 --- a/gcc/c-tree.h 2009-02-20 16:20:38.000000000 +0100
23252 +++ b/gcc/c-tree.h 2010-01-25 09:50:29.105687718 +0100
23253 @@ -647,4 +647,8 @@
23254 extern void pedwarn_c90 (location_t, int opt, const char *, ...) ATTRIBUTE_GCC_CDIAG(3,4);
23255 extern void pedwarn_c99 (location_t, int opt, const char *, ...) ATTRIBUTE_GCC_CDIAG(3,4);
23256
23257 +extern bool c_cpp_error (cpp_reader *, int, location_t, unsigned int,
23258 + const char *, va_list *)
23259 + ATTRIBUTE_GCC_CDIAG(5,0);
23260 +
23261 #endif /* ! GCC_C_TREE_H */
23262 diff -Nur a/gcc/c-typeck.c b/gcc/c-typeck.c
23263 --- a/gcc/c-typeck.c 2009-04-08 13:59:36.000000000 +0200
23264 +++ b/gcc/c-typeck.c 2010-01-25 09:50:29.105687718 +0100
23265 @@ -1765,6 +1765,7 @@
23266 tree orig_exp;
23267 tree type = TREE_TYPE (exp);
23268 enum tree_code code = TREE_CODE (type);
23269 + tree promoted_type;
23270
23271 /* Functions and arrays have been converted during parsing. */
23272 gcc_assert (code != FUNCTION_TYPE);
23273 @@ -1801,6 +1802,10 @@
23274 if (exp == error_mark_node)
23275 return error_mark_node;
23276
23277 + promoted_type = targetm.promoted_type (type);
23278 + if (promoted_type)
23279 + return convert (promoted_type, exp);
23280 +
23281 if (INTEGRAL_TYPE_P (type))
23282 return perform_integral_promotions (exp);
23283
23284 diff -Nur a/gcc/dbxout.c b/gcc/dbxout.c
23285 --- a/gcc/dbxout.c 2009-07-07 22:46:41.000000000 +0200
23286 +++ b/gcc/dbxout.c 2010-01-25 09:50:29.115687383 +0100
23287 @@ -376,6 +376,7 @@
23288 dbxout_handle_pch, /* handle_pch */
23289 debug_nothing_rtx, /* var_location */
23290 debug_nothing_void, /* switch_text_section */
23291 + debug_nothing_tree_tree, /* set_name */
23292 0 /* start_end_main_source_file */
23293 };
23294 #endif /* DBX_DEBUGGING_INFO */
23295 @@ -408,6 +409,7 @@
23296 dbxout_handle_pch, /* handle_pch */
23297 debug_nothing_rtx, /* var_location */
23298 debug_nothing_void, /* switch_text_section */
23299 + debug_nothing_tree_tree, /* set_name */
23300 0 /* start_end_main_source_file */
23301 };
23302 #endif /* XCOFF_DEBUGGING_INFO */
23303 diff -Nur a/gcc/debug.c b/gcc/debug.c
23304 --- a/gcc/debug.c 2009-02-20 16:20:38.000000000 +0100
23305 +++ b/gcc/debug.c 2010-01-25 09:50:29.115687383 +0100
23306 @@ -50,6 +50,7 @@
23307 debug_nothing_int, /* handle_pch */
23308 debug_nothing_rtx, /* var_location */
23309 debug_nothing_void, /* switch_text_section */
23310 + debug_nothing_tree_tree, /* set_name */
23311 0 /* start_end_main_source_file */
23312 };
23313
23314 @@ -67,6 +68,12 @@
23315 }
23316
23317 void
23318 +debug_nothing_tree_tree (tree t1 ATTRIBUTE_UNUSED,
23319 + tree t2 ATTRIBUTE_UNUSED)
23320 +{
23321 +}
23322 +
23323 +void
23324 debug_nothing_tree_tree_tree_bool (tree t1 ATTRIBUTE_UNUSED,
23325 tree t2 ATTRIBUTE_UNUSED,
23326 tree t3 ATTRIBUTE_UNUSED,
23327 diff -Nur a/gcc/debug.h b/gcc/debug.h
23328 --- a/gcc/debug.h 2009-02-20 16:20:38.000000000 +0100
23329 +++ b/gcc/debug.h 2010-01-25 09:50:29.115687383 +0100
23330 @@ -126,6 +126,10 @@
23331 text sections. */
23332 void (* switch_text_section) (void);
23333
23334 + /* Called from grokdeclarator. Replaces the anonymous name with the
23335 + type name. */
23336 + void (* set_name) (tree, tree);
23337 +
23338 /* This is 1 if the debug writer wants to see start and end commands for the
23339 main source files, and 0 otherwise. */
23340 int start_end_main_source_file;
23341 @@ -140,6 +144,7 @@
23342 extern void debug_nothing_int (unsigned int);
23343 extern void debug_nothing_int_int (unsigned int, unsigned int);
23344 extern void debug_nothing_tree (tree);
23345 +extern void debug_nothing_tree_tree (tree, tree);
23346 extern void debug_nothing_tree_int (tree, int);
23347 extern void debug_nothing_tree_tree_tree_bool (tree, tree, tree, bool);
23348 extern bool debug_true_const_tree (const_tree);
23349 diff -Nur a/gcc/defaults.h b/gcc/defaults.h
23350 --- a/gcc/defaults.h 2009-07-11 21:06:26.000000000 +0200
23351 +++ b/gcc/defaults.h 2010-01-25 09:50:29.115687383 +0100
23352 @@ -902,7 +902,8 @@
23353
23354 /* On most machines, the CFA coincides with the first incoming parm. */
23355 #ifndef ARG_POINTER_CFA_OFFSET
23356 -#define ARG_POINTER_CFA_OFFSET(FNDECL) FIRST_PARM_OFFSET (FNDECL)
23357 +#define ARG_POINTER_CFA_OFFSET(FNDECL) \
23358 + (FIRST_PARM_OFFSET (FNDECL) + crtl->args.pretend_args_size)
23359 #endif
23360
23361 /* On most machines, we use the CFA as DW_AT_frame_base. */
23362 diff -Nur a/gcc/diagnostic.c b/gcc/diagnostic.c
23363 --- a/gcc/diagnostic.c 2008-09-03 03:00:04.000000000 +0200
23364 +++ b/gcc/diagnostic.c 2010-01-25 09:50:29.115687383 +0100
23365 @@ -126,6 +126,7 @@
23366 diagnostic->message.args_ptr = args;
23367 diagnostic->message.format_spec = msg;
23368 diagnostic->location = location;
23369 + diagnostic->override_column = 0;
23370 diagnostic->kind = kind;
23371 diagnostic->option_index = 0;
23372 }
23373 @@ -153,6 +154,8 @@
23374 };
23375 const char *text = _(diagnostic_kind_text[diagnostic->kind]);
23376 expanded_location s = expand_location (diagnostic->location);
23377 + if (diagnostic->override_column)
23378 + s.column = diagnostic->override_column;
23379 gcc_assert (diagnostic->kind < DK_LAST_DIAGNOSTIC_KIND);
23380
23381 return
23382 diff -Nur a/gcc/diagnostic.h b/gcc/diagnostic.h
23383 --- a/gcc/diagnostic.h 2008-08-09 01:57:19.000000000 +0200
23384 +++ b/gcc/diagnostic.h 2010-01-25 09:50:29.115687383 +0100
23385 @@ -41,6 +41,7 @@
23386 {
23387 text_info message;
23388 location_t location;
23389 + unsigned int override_column;
23390 /* TREE_BLOCK if the diagnostic is to be reported in some inline
23391 function inlined into other function, otherwise NULL. */
23392 tree abstract_origin;
23393 @@ -185,6 +186,10 @@
23394
23395 #define report_diagnostic(D) diagnostic_report_diagnostic (global_dc, D)
23396
23397 +/* Override the column number to be used for reporting a
23398 + diagnostic. */
23399 +#define diagnostic_override_column(DI, COL) (DI)->override_column = (COL)
23400 +
23401 /* Diagnostic related functions. */
23402 extern void diagnostic_initialize (diagnostic_context *);
23403 extern void diagnostic_report_current_module (diagnostic_context *);
23404 diff -Nur a/gcc/dwarf2out.c b/gcc/dwarf2out.c
23405 --- a/gcc/dwarf2out.c 2009-06-03 19:32:45.000000000 +0200
23406 +++ b/gcc/dwarf2out.c 2010-01-25 09:50:29.115687383 +0100
23407 @@ -2474,6 +2474,12 @@
23408 insn = PATTERN (insn);
23409
23410 dwarf2out_frame_debug_expr (insn, label);
23411 +
23412 + /* Check again. A parallel can save and update the same register.
23413 + We could probably check just once, here, but this is safer than
23414 + removing the check above. */
23415 + if (clobbers_queued_reg_save (insn))
23416 + flush_queued_reg_saves ();
23417 }
23418
23419 #endif
23420 @@ -4598,6 +4604,7 @@
23421 static void dwarf2out_abstract_function (tree);
23422 static void dwarf2out_var_location (rtx);
23423 static void dwarf2out_begin_function (tree);
23424 +static void dwarf2out_set_name (tree, tree);
23425
23426 /* The debug hooks structure. */
23427
23428 @@ -4631,6 +4638,7 @@
23429 debug_nothing_int, /* handle_pch */
23430 dwarf2out_var_location,
23431 dwarf2out_switch_text_section,
23432 + dwarf2out_set_name,
23433 1 /* start_end_main_source_file */
23434 };
23435 #endif
23436 @@ -5975,12 +5983,9 @@
23437 (const char *)x2) == 0;
23438 }
23439
23440 -/* Add a string attribute value to a DIE. */
23441 -
23442 -static inline void
23443 -add_AT_string (dw_die_ref die, enum dwarf_attribute attr_kind, const char *str)
23444 +static struct indirect_string_node *
23445 +find_AT_string (const char *str)
23446 {
23447 - dw_attr_node attr;
23448 struct indirect_string_node *node;
23449 void **slot;
23450
23451 @@ -6001,6 +6006,18 @@
23452 node = (struct indirect_string_node *) *slot;
23453
23454 node->refcount++;
23455 + return node;
23456 +}
23457 +
23458 +/* Add a string attribute value to a DIE. */
23459 +
23460 +static inline void
23461 +add_AT_string (dw_die_ref die, enum dwarf_attribute attr_kind, const char *str)
23462 +{
23463 + dw_attr_node attr;
23464 + struct indirect_string_node *node;
23465 +
23466 + node = find_AT_string (str);
23467
23468 attr.dw_attr = attr_kind;
23469 attr.dw_attr_val.val_class = dw_val_class_str;
23470 @@ -6637,6 +6654,8 @@
23471 static inline var_loc_list *
23472 lookup_decl_loc (const_tree decl)
23473 {
23474 + if (!decl_loc_table)
23475 + return NULL;
23476 return (var_loc_list *)
23477 htab_find_with_hash (decl_loc_table, decl, DECL_UID (decl));
23478 }
23479 @@ -13471,6 +13490,7 @@
23480 tree save_fn;
23481 tree context;
23482 int was_abstract = DECL_ABSTRACT (decl);
23483 + htab_t old_decl_loc_table;
23484
23485 /* Make sure we have the actual abstract inline, not a clone. */
23486 decl = DECL_ORIGIN (decl);
23487 @@ -13480,6 +13500,12 @@
23488 /* We've already generated the abstract instance. */
23489 return;
23490
23491 + /* We can be called while recursively when seeing block defining inlined subroutine
23492 + DIE. Be sure to not clobber the outer location table nor use it or we would
23493 + get locations in abstract instantces. */
23494 + old_decl_loc_table = decl_loc_table;
23495 + decl_loc_table = NULL;
23496 +
23497 /* Be sure we've emitted the in-class declaration DIE (if any) first, so
23498 we don't get confused by DECL_ABSTRACT. */
23499 if (debug_info_level > DINFO_LEVEL_TERSE)
23500 @@ -13501,6 +13527,7 @@
23501 set_decl_abstract_flags (decl, 0);
23502
23503 current_function_decl = save_fn;
23504 + decl_loc_table = old_decl_loc_table;
23505 pop_cfun ();
23506 }
23507
23508 @@ -15796,6 +15823,31 @@
23509 return fd->emitted_number;
23510 }
23511
23512 +/* Replace DW_AT_name for the decl with name. */
23513 +
23514 +static void
23515 +dwarf2out_set_name (tree decl, tree name)
23516 +{
23517 + dw_die_ref die;
23518 + dw_attr_ref attr;
23519 +
23520 + die = TYPE_SYMTAB_DIE (decl);
23521 + if (!die)
23522 + return;
23523 +
23524 + attr = get_AT (die, DW_AT_name);
23525 + if (attr)
23526 + {
23527 + struct indirect_string_node *node;
23528 +
23529 + node = find_AT_string (dwarf2_name (name, 0));
23530 + /* replace the string. */
23531 + attr->dw_attr_val.v.val_str = node;
23532 + }
23533 +
23534 + else
23535 + add_name_attribute (die, dwarf2_name (name, 0));
23536 +}
23537 /* Called by the final INSN scan whenever we see a var location. We
23538 use it to drop labels in the right places, and throw the location in
23539 our lookup table. */
23540 diff -Nur a/gcc/except.c b/gcc/except.c
23541 --- a/gcc/except.c 2009-03-07 17:02:30.000000000 +0100
23542 +++ b/gcc/except.c 2010-01-25 09:50:29.115687383 +0100
23543 @@ -3567,6 +3567,12 @@
23544 paths below go through assemble_integer, which would take
23545 care of this for us. */
23546 STRIP_NOPS (type);
23547 + if (TREE_CODE (type) == POINTER_PLUS_EXPR)
23548 + {
23549 + gcc_assert (TREE_CODE (TREE_OPERAND (type, 1)) == INTEGER_CST);
23550 + type = TREE_OPERAND (type, 0);
23551 + STRIP_NOPS (type);
23552 + }
23553 if (TREE_CODE (type) == ADDR_EXPR)
23554 {
23555 type = TREE_OPERAND (type, 0);
23556 diff -Nur a/gcc/explow.c b/gcc/explow.c
23557 --- a/gcc/explow.c 2009-02-20 16:20:38.000000000 +0100
23558 +++ b/gcc/explow.c 2010-01-25 09:50:29.115687383 +0100
23559 @@ -1491,9 +1491,9 @@
23560 in which a scalar value of mode MODE was returned by a library call. */
23561
23562 rtx
23563 -hard_libcall_value (enum machine_mode mode)
23564 +hard_libcall_value (enum machine_mode mode, rtx fun)
23565 {
23566 - return LIBCALL_VALUE (mode);
23567 + return targetm.calls.libcall_value (mode, fun);
23568 }
23569
23570 /* Look up the tree code for a given rtx code
23571 diff -Nur a/gcc/expmed.c b/gcc/expmed.c
23572 --- a/gcc/expmed.c 2009-01-16 19:56:47.000000000 +0100
23573 +++ b/gcc/expmed.c 2010-01-25 09:50:29.115687383 +0100
23574 @@ -103,7 +103,8 @@
23575 static int neg_cost[2][NUM_MACHINE_MODES];
23576 static int shift_cost[2][NUM_MACHINE_MODES][MAX_BITS_PER_WORD];
23577 static int shiftadd_cost[2][NUM_MACHINE_MODES][MAX_BITS_PER_WORD];
23578 -static int shiftsub_cost[2][NUM_MACHINE_MODES][MAX_BITS_PER_WORD];
23579 +static int shiftsub0_cost[2][NUM_MACHINE_MODES][MAX_BITS_PER_WORD];
23580 +static int shiftsub1_cost[2][NUM_MACHINE_MODES][MAX_BITS_PER_WORD];
23581 static int mul_cost[2][NUM_MACHINE_MODES];
23582 static int sdiv_cost[2][NUM_MACHINE_MODES];
23583 static int udiv_cost[2][NUM_MACHINE_MODES];
23584 @@ -130,7 +131,8 @@
23585 struct rtx_def shift; rtunion shift_fld1;
23586 struct rtx_def shift_mult; rtunion shift_mult_fld1;
23587 struct rtx_def shift_add; rtunion shift_add_fld1;
23588 - struct rtx_def shift_sub; rtunion shift_sub_fld1;
23589 + struct rtx_def shift_sub0; rtunion shift_sub0_fld1;
23590 + struct rtx_def shift_sub1; rtunion shift_sub1_fld1;
23591 } all;
23592
23593 rtx pow2[MAX_BITS_PER_WORD];
23594 @@ -201,9 +203,13 @@
23595 XEXP (&all.shift_add, 0) = &all.shift_mult;
23596 XEXP (&all.shift_add, 1) = &all.reg;
23597
23598 - PUT_CODE (&all.shift_sub, MINUS);
23599 - XEXP (&all.shift_sub, 0) = &all.shift_mult;
23600 - XEXP (&all.shift_sub, 1) = &all.reg;
23601 + PUT_CODE (&all.shift_sub0, MINUS);
23602 + XEXP (&all.shift_sub0, 0) = &all.shift_mult;
23603 + XEXP (&all.shift_sub0, 1) = &all.reg;
23604 +
23605 + PUT_CODE (&all.shift_sub1, MINUS);
23606 + XEXP (&all.shift_sub1, 0) = &all.reg;
23607 + XEXP (&all.shift_sub1, 1) = &all.shift_mult;
23608
23609 for (speed = 0; speed < 2; speed++)
23610 {
23611 @@ -226,7 +232,8 @@
23612 PUT_MODE (&all.shift, mode);
23613 PUT_MODE (&all.shift_mult, mode);
23614 PUT_MODE (&all.shift_add, mode);
23615 - PUT_MODE (&all.shift_sub, mode);
23616 + PUT_MODE (&all.shift_sub0, mode);
23617 + PUT_MODE (&all.shift_sub1, mode);
23618
23619 add_cost[speed][mode] = rtx_cost (&all.plus, SET, speed);
23620 neg_cost[speed][mode] = rtx_cost (&all.neg, SET, speed);
23621 @@ -254,8 +261,8 @@
23622 }
23623
23624 shift_cost[speed][mode][0] = 0;
23625 - shiftadd_cost[speed][mode][0] = shiftsub_cost[speed][mode][0]
23626 - = add_cost[speed][mode];
23627 + shiftadd_cost[speed][mode][0] = shiftsub0_cost[speed][mode][0]
23628 + = shiftsub1_cost[speed][mode][0] = add_cost[speed][mode];
23629
23630 n = MIN (MAX_BITS_PER_WORD, GET_MODE_BITSIZE (mode));
23631 for (m = 1; m < n; m++)
23632 @@ -265,7 +272,8 @@
23633
23634 shift_cost[speed][mode][m] = rtx_cost (&all.shift, SET, speed);
23635 shiftadd_cost[speed][mode][m] = rtx_cost (&all.shift_add, SET, speed);
23636 - shiftsub_cost[speed][mode][m] = rtx_cost (&all.shift_sub, SET, speed);
23637 + shiftsub0_cost[speed][mode][m] = rtx_cost (&all.shift_sub0, SET, speed);
23638 + shiftsub1_cost[speed][mode][m] = rtx_cost (&all.shift_sub1, SET, speed);
23639 }
23640 }
23641 }
23642 @@ -2397,6 +2405,7 @@
23643 struct mult_cost best_cost;
23644 struct mult_cost new_limit;
23645 int op_cost, op_latency;
23646 + unsigned HOST_WIDE_INT orig_t = t;
23647 unsigned HOST_WIDE_INT q;
23648 int maxm = MIN (BITS_PER_WORD, GET_MODE_BITSIZE (mode));
23649 int hash_index;
23650 @@ -2542,6 +2551,38 @@
23651 best_alg->log[best_alg->ops] = m;
23652 best_alg->op[best_alg->ops] = alg_shift;
23653 }
23654 +
23655 + /* See if treating ORIG_T as a signed number yields a better
23656 + sequence. Try this sequence only for a negative ORIG_T
23657 + as it would be useless for a non-negative ORIG_T. */
23658 + if ((HOST_WIDE_INT) orig_t < 0)
23659 + {
23660 + /* Shift ORIG_T as follows because a right shift of a
23661 + negative-valued signed type is implementation
23662 + defined. */
23663 + q = ~(~orig_t >> m);
23664 + /* The function expand_shift will choose between a shift
23665 + and a sequence of additions, so the observed cost is
23666 + given as MIN (m * add_cost[speed][mode],
23667 + shift_cost[speed][mode][m]). */
23668 + op_cost = m * add_cost[speed][mode];
23669 + if (shift_cost[speed][mode][m] < op_cost)
23670 + op_cost = shift_cost[speed][mode][m];
23671 + new_limit.cost = best_cost.cost - op_cost;
23672 + new_limit.latency = best_cost.latency - op_cost;
23673 + synth_mult (alg_in, q, &new_limit, mode);
23674 +
23675 + alg_in->cost.cost += op_cost;
23676 + alg_in->cost.latency += op_cost;
23677 + if (CHEAPER_MULT_COST (&alg_in->cost, &best_cost))
23678 + {
23679 + struct algorithm *x;
23680 + best_cost = alg_in->cost;
23681 + x = alg_in, alg_in = best_alg, best_alg = x;
23682 + best_alg->log[best_alg->ops] = m;
23683 + best_alg->op[best_alg->ops] = alg_shift;
23684 + }
23685 + }
23686 }
23687 if (cache_hit)
23688 goto done;
23689 @@ -2604,6 +2645,29 @@
23690 best_alg->op[best_alg->ops] = alg_add_t_m2;
23691 }
23692 }
23693 +
23694 + /* We may be able to calculate a * -7, a * -15, a * -31, etc
23695 + quickly with a - a * n for some appropriate constant n. */
23696 + m = exact_log2 (-orig_t + 1);
23697 + if (m >= 0 && m < maxm)
23698 + {
23699 + op_cost = shiftsub1_cost[speed][mode][m];
23700 + new_limit.cost = best_cost.cost - op_cost;
23701 + new_limit.latency = best_cost.latency - op_cost;
23702 + synth_mult (alg_in, (unsigned HOST_WIDE_INT) (-orig_t + 1) >> m, &new_limit, mode);
23703 +
23704 + alg_in->cost.cost += op_cost;
23705 + alg_in->cost.latency += op_cost;
23706 + if (CHEAPER_MULT_COST (&alg_in->cost, &best_cost))
23707 + {
23708 + struct algorithm *x;
23709 + best_cost = alg_in->cost;
23710 + x = alg_in, alg_in = best_alg, best_alg = x;
23711 + best_alg->log[best_alg->ops] = m;
23712 + best_alg->op[best_alg->ops] = alg_sub_t_m2;
23713 + }
23714 + }
23715 +
23716 if (cache_hit)
23717 goto done;
23718 }
23719 @@ -2673,9 +2737,9 @@
23720 hardware the shift may be executed concurrently with the
23721 earlier steps in the algorithm. */
23722 op_cost = add_cost[speed][mode] + shift_cost[speed][mode][m];
23723 - if (shiftsub_cost[speed][mode][m] < op_cost)
23724 + if (shiftsub0_cost[speed][mode][m] < op_cost)
23725 {
23726 - op_cost = shiftsub_cost[speed][mode][m];
23727 + op_cost = shiftsub0_cost[speed][mode][m];
23728 op_latency = op_cost;
23729 }
23730 else
23731 @@ -2738,7 +2802,7 @@
23732 m = exact_log2 (q);
23733 if (m >= 0 && m < maxm)
23734 {
23735 - op_cost = shiftsub_cost[speed][mode][m];
23736 + op_cost = shiftsub0_cost[speed][mode][m];
23737 new_limit.cost = best_cost.cost - op_cost;
23738 new_limit.latency = best_cost.latency - op_cost;
23739 synth_mult (alg_in, (t + 1) >> m, &new_limit, mode);
23740 diff -Nur a/gcc/expr.c b/gcc/expr.c
23741 --- a/gcc/expr.c 2009-06-16 16:28:47.000000000 +0200
23742 +++ b/gcc/expr.c 2010-01-25 09:50:29.115687383 +0100
23743 @@ -4391,6 +4391,29 @@
23744
23745 /* Compute FROM and store the value in the rtx we got. */
23746
23747 + if (TREE_CODE (to) == MISALIGNED_INDIRECT_REF)
23748 + {
23749 + rtx insn;
23750 + rtx from_rtx;
23751 + enum insn_code icode;
23752 + enum machine_mode mode = GET_MODE (to_rtx);
23753 +
23754 + icode = optab_handler (movmisalign_optab, mode)->insn_code;
23755 + gcc_assert (icode != CODE_FOR_nothing);
23756 +
23757 + from_rtx = expand_expr (from, NULL_RTX, mode, EXPAND_NORMAL);
23758 + insn = GEN_FCN (icode) (to_rtx, from_rtx);
23759 + /* If that failed then force the source into a reg and try again. */
23760 + if (!insn)
23761 + {
23762 + from_rtx = copy_to_mode_reg(mode, from_rtx);
23763 + insn = GEN_FCN (icode) (to_rtx, from_rtx);
23764 + gcc_assert(insn);
23765 + }
23766 + emit_insn (insn);
23767 + return;
23768 + }
23769 +
23770 push_temp_slots ();
23771 result = store_expr (from, to_rtx, 0, nontemporal);
23772 preserve_temp_slots (result);
23773 @@ -7291,6 +7314,19 @@
23774 decl_rtl = DECL_RTL (exp);
23775 gcc_assert (decl_rtl);
23776 decl_rtl = copy_rtx (decl_rtl);
23777 + /* Record writes to register variables. */
23778 + if (modifier == EXPAND_WRITE && REG_P(decl_rtl)
23779 + && REGNO(decl_rtl) < FIRST_PSEUDO_REGISTER)
23780 + {
23781 + int i = REGNO(decl_rtl);
23782 + int nregs = hard_regno_nregs[i][GET_MODE(decl_rtl)];
23783 + while (nregs)
23784 + {
23785 + SET_HARD_REG_BIT(crtl->asm_clobbers, i);
23786 + i++;
23787 + nregs--;
23788 + }
23789 + }
23790
23791 /* Ensure variable marked as used even if it doesn't go through
23792 a parser. If it hasn't be used yet, write out an external
23793 @@ -7538,14 +7574,15 @@
23794
23795 /* Resolve the misalignment now, so that we don't have to remember
23796 to resolve it later. Of course, this only works for reads. */
23797 - /* ??? When we get around to supporting writes, we'll have to handle
23798 - this in store_expr directly. The vectorizer isn't generating
23799 - those yet, however. */
23800 if (code == MISALIGNED_INDIRECT_REF)
23801 {
23802 int icode;
23803 rtx reg, insn;
23804
23805 + /* For writes produce a MEM, and expand_assignment will DTRT. */
23806 + if (modifier == EXPAND_WRITE)
23807 + return temp;
23808 +
23809 gcc_assert (modifier == EXPAND_NORMAL
23810 || modifier == EXPAND_STACK_PARM);
23811
23812 diff -Nur a/gcc/expr.h b/gcc/expr.h
23813 --- a/gcc/expr.h 2009-03-17 18:46:23.000000000 +0100
23814 +++ b/gcc/expr.h 2010-01-25 09:50:29.125687117 +0100
23815 @@ -757,7 +757,7 @@
23816
23817 /* Return an rtx that refers to the value returned by a library call
23818 in its original home. This becomes invalid if any more code is emitted. */
23819 -extern rtx hard_libcall_value (enum machine_mode);
23820 +extern rtx hard_libcall_value (enum machine_mode, rtx);
23821
23822 /* Return the mode desired by operand N of a particular bitfield
23823 insert/extract insn, or MAX_MACHINE_MODE if no such insn is
23824 diff -Nur a/gcc/final.c b/gcc/final.c
23825 --- a/gcc/final.c 2008-12-10 09:46:40.000000000 +0100
23826 +++ b/gcc/final.c 2010-01-25 09:50:29.125687117 +0100
23827 @@ -891,6 +891,7 @@
23828 if (LABEL_P (insn))
23829 {
23830 rtx next;
23831 + bool next_is_jumptable;
23832
23833 /* Merge in alignments computed by compute_alignments. */
23834 log = LABEL_TO_ALIGNMENT (insn);
23835 @@ -900,31 +901,30 @@
23836 max_skip = LABEL_TO_MAX_SKIP (insn);
23837 }
23838
23839 - log = LABEL_ALIGN (insn);
23840 - if (max_log < log)
23841 + next = next_nonnote_insn (insn);
23842 + next_is_jumptable = next && JUMP_TABLE_DATA_P (next);
23843 + if (!next_is_jumptable)
23844 {
23845 - max_log = log;
23846 - max_skip = LABEL_ALIGN_MAX_SKIP;
23847 + log = LABEL_ALIGN (insn);
23848 + if (max_log < log)
23849 + {
23850 + max_log = log;
23851 + max_skip = LABEL_ALIGN_MAX_SKIP;
23852 + }
23853 }
23854 - next = next_nonnote_insn (insn);
23855 /* ADDR_VECs only take room if read-only data goes into the text
23856 section. */
23857 - if (JUMP_TABLES_IN_TEXT_SECTION
23858 - || readonly_data_section == text_section)
23859 - if (next && JUMP_P (next))
23860 - {
23861 - rtx nextbody = PATTERN (next);
23862 - if (GET_CODE (nextbody) == ADDR_VEC
23863 - || GET_CODE (nextbody) == ADDR_DIFF_VEC)
23864 - {
23865 - log = ADDR_VEC_ALIGN (next);
23866 - if (max_log < log)
23867 - {
23868 - max_log = log;
23869 - max_skip = LABEL_ALIGN_MAX_SKIP;
23870 - }
23871 - }
23872 - }
23873 + if ((JUMP_TABLES_IN_TEXT_SECTION
23874 + || readonly_data_section == text_section)
23875 + && next_is_jumptable)
23876 + {
23877 + log = ADDR_VEC_ALIGN (next);
23878 + if (max_log < log)
23879 + {
23880 + max_log = log;
23881 + max_skip = LABEL_ALIGN_MAX_SKIP;
23882 + }
23883 + }
23884 LABEL_TO_ALIGNMENT (insn) = max_log;
23885 LABEL_TO_MAX_SKIP (insn) = max_skip;
23886 max_log = 0;
23887 @@ -2013,48 +2013,41 @@
23888 app_disable ();
23889
23890 next = next_nonnote_insn (insn);
23891 - if (next != 0 && JUMP_P (next))
23892 + /* If this label is followed by a jump-table, make sure we put
23893 + the label in the read-only section. Also possibly write the
23894 + label and jump table together. */
23895 + if (next != 0 && JUMP_TABLE_DATA_P (next))
23896 {
23897 - rtx nextbody = PATTERN (next);
23898 -
23899 - /* If this label is followed by a jump-table,
23900 - make sure we put the label in the read-only section. Also
23901 - possibly write the label and jump table together. */
23902 -
23903 - if (GET_CODE (nextbody) == ADDR_VEC
23904 - || GET_CODE (nextbody) == ADDR_DIFF_VEC)
23905 - {
23906 #if defined(ASM_OUTPUT_ADDR_VEC) || defined(ASM_OUTPUT_ADDR_DIFF_VEC)
23907 - /* In this case, the case vector is being moved by the
23908 - target, so don't output the label at all. Leave that
23909 - to the back end macros. */
23910 + /* In this case, the case vector is being moved by the
23911 + target, so don't output the label at all. Leave that
23912 + to the back end macros. */
23913 #else
23914 - if (! JUMP_TABLES_IN_TEXT_SECTION)
23915 - {
23916 - int log_align;
23917 + if (! JUMP_TABLES_IN_TEXT_SECTION)
23918 + {
23919 + int log_align;
23920
23921 - switch_to_section (targetm.asm_out.function_rodata_section
23922 - (current_function_decl));
23923 + switch_to_section (targetm.asm_out.function_rodata_section
23924 + (current_function_decl));
23925
23926 #ifdef ADDR_VEC_ALIGN
23927 - log_align = ADDR_VEC_ALIGN (next);
23928 + log_align = ADDR_VEC_ALIGN (next);
23929 #else
23930 - log_align = exact_log2 (BIGGEST_ALIGNMENT / BITS_PER_UNIT);
23931 + log_align = exact_log2 (BIGGEST_ALIGNMENT / BITS_PER_UNIT);
23932 #endif
23933 - ASM_OUTPUT_ALIGN (file, log_align);
23934 - }
23935 - else
23936 - switch_to_section (current_function_section ());
23937 + ASM_OUTPUT_ALIGN (file, log_align);
23938 + }
23939 + else
23940 + switch_to_section (current_function_section ());
23941
23942 #ifdef ASM_OUTPUT_CASE_LABEL
23943 - ASM_OUTPUT_CASE_LABEL (file, "L", CODE_LABEL_NUMBER (insn),
23944 - next);
23945 + ASM_OUTPUT_CASE_LABEL (file, "L", CODE_LABEL_NUMBER (insn),
23946 + next);
23947 #else
23948 - targetm.asm_out.internal_label (file, "L", CODE_LABEL_NUMBER (insn));
23949 + targetm.asm_out.internal_label (file, "L", CODE_LABEL_NUMBER (insn));
23950 #endif
23951 #endif
23952 - break;
23953 - }
23954 + break;
23955 }
23956 if (LABEL_ALT_ENTRY_P (insn))
23957 output_alternate_entry_point (file, insn);
23958 diff -Nur a/gcc/fold-const.c b/gcc/fold-const.c
23959 --- a/gcc/fold-const.c 2009-07-15 13:23:22.000000000 +0200
23960 +++ b/gcc/fold-const.c 2010-01-25 09:50:29.125687117 +0100
23961 @@ -2289,7 +2289,24 @@
23962 real_convert (&value, TYPE_MODE (type), &TREE_REAL_CST (arg1));
23963 t = build_real (type, value);
23964
23965 - TREE_OVERFLOW (t) = TREE_OVERFLOW (arg1);
23966 + /* If converting an infinity or NAN to a representation that doesn't
23967 + have one, set the overflow bit so that we can produce some kind of
23968 + error message at the appropriate point if necessary. It's not the
23969 + most user-friendly message, but it's better than nothing. */
23970 + if (REAL_VALUE_ISINF (TREE_REAL_CST (arg1))
23971 + && !MODE_HAS_INFINITIES (TYPE_MODE (type)))
23972 + TREE_OVERFLOW (t) = 1;
23973 + else if (REAL_VALUE_ISNAN (TREE_REAL_CST (arg1))
23974 + && !MODE_HAS_NANS (TYPE_MODE (type)))
23975 + TREE_OVERFLOW (t) = 1;
23976 + /* Regular overflow, conversion produced an infinity in a mode that
23977 + can't represent them. */
23978 + else if (!MODE_HAS_INFINITIES (TYPE_MODE (type))
23979 + && REAL_VALUE_ISINF (value)
23980 + && !REAL_VALUE_ISINF (TREE_REAL_CST (arg1)))
23981 + TREE_OVERFLOW (t) = 1;
23982 + else
23983 + TREE_OVERFLOW (t) = TREE_OVERFLOW (arg1);
23984 return t;
23985 }
23986
23987 diff -Nur a/gcc/fortran/cpp.c b/gcc/fortran/cpp.c
23988 --- a/gcc/fortran/cpp.c 2008-12-09 20:25:55.000000000 +0100
23989 +++ b/gcc/fortran/cpp.c 2010-01-25 09:50:29.125687117 +0100
23990 @@ -137,6 +137,9 @@
23991 static void cb_ident (cpp_reader *, source_location, const cpp_string *);
23992 static void cb_used_define (cpp_reader *, source_location, cpp_hashnode *);
23993 static void cb_used_undef (cpp_reader *, source_location, cpp_hashnode *);
23994 +static bool cb_cpp_error (cpp_reader *, int, location_t, unsigned int,
23995 + const char *, va_list *)
23996 + ATTRIBUTE_GCC_DIAG(5,0);
23997 void pp_dir_change (cpp_reader *, const char *);
23998
23999 static int dump_macro (cpp_reader *, cpp_hashnode *, void *);
24000 @@ -452,7 +455,6 @@
24001 cpp_option->cplusplus_comments = 0;
24002
24003 cpp_option->pedantic = pedantic;
24004 - cpp_option->inhibit_warnings = inhibit_warnings;
24005
24006 cpp_option->dollars_in_ident = gfc_option.flag_dollar_ok;
24007 cpp_option->discard_comments = gfc_cpp_option.discard_comments;
24008 @@ -465,9 +467,6 @@
24009
24010 cpp_post_options (cpp_in);
24011
24012 - /* If an error has occurred in cpplib, note it so we fail immediately. */
24013 - errorcount += cpp_errors (cpp_in);
24014 -
24015 gfc_cpp_register_include_paths ();
24016 }
24017
24018 @@ -482,6 +481,7 @@
24019 cb->line_change = cb_line_change;
24020 cb->ident = cb_ident;
24021 cb->def_pragma = cb_def_pragma;
24022 + cb->error = cb_cpp_error;
24023
24024 if (gfc_cpp_option.dump_includes)
24025 cb->include = cb_include;
24026 @@ -961,6 +961,57 @@
24027 cpp_define_queue = q;
24028 }
24029
24030 +/* Callback from cpp_error for PFILE to print diagnostics from the
24031 + preprocessor. The diagnostic is of type LEVEL, at location
24032 + LOCATION, with column number possibly overridden by COLUMN_OVERRIDE
24033 + if not zero; MSG is the translated message and AP the arguments.
24034 + Returns true if a diagnostic was emitted, false otherwise. */
24035 +
24036 +static bool
24037 +cb_cpp_error (cpp_reader *pfile ATTRIBUTE_UNUSED, int level,
24038 + location_t location, unsigned int column_override,
24039 + const char *msg, va_list *ap)
24040 +{
24041 + diagnostic_info diagnostic;
24042 + diagnostic_t dlevel;
24043 + int save_warn_system_headers = warn_system_headers;
24044 + bool ret;
24045 +
24046 + switch (level)
24047 + {
24048 + case CPP_DL_WARNING_SYSHDR:
24049 + warn_system_headers = 1;
24050 + /* Fall through. */
24051 + case CPP_DL_WARNING:
24052 + dlevel = DK_WARNING;
24053 + break;
24054 + case CPP_DL_PEDWARN:
24055 + dlevel = DK_PEDWARN;
24056 + break;
24057 + case CPP_DL_ERROR:
24058 + dlevel = DK_ERROR;
24059 + break;
24060 + case CPP_DL_ICE:
24061 + dlevel = DK_ICE;
24062 + break;
24063 + case CPP_DL_NOTE:
24064 + dlevel = DK_NOTE;
24065 + break;
24066 + case CPP_DL_FATAL:
24067 + dlevel = DK_FATAL;
24068 + break;
24069 + default:
24070 + gcc_unreachable ();
24071 + }
24072 + diagnostic_set_info_translated (&diagnostic, msg, ap,
24073 + location, dlevel);
24074 + if (column_override)
24075 + diagnostic_override_column (&diagnostic, column_override);
24076 + ret = report_diagnostic (&diagnostic);
24077 + if (level == CPP_DL_WARNING_SYSHDR)
24078 + warn_system_headers = save_warn_system_headers;
24079 + return ret;
24080 +}
24081
24082 /* Callback called when -fworking-director and -E to emit working
24083 directory in cpp output file. */
24084 diff -Nur a/gcc/function.c b/gcc/function.c
24085 --- a/gcc/function.c 2009-07-11 21:06:26.000000000 +0200
24086 +++ b/gcc/function.c 2010-01-25 09:50:29.135686643 +0100
24087 @@ -272,7 +272,10 @@
24088 if (! type)
24089 type = lang_hooks.types.type_for_mode (mode, 0);
24090
24091 - return STACK_SLOT_ALIGNMENT (type, mode, alignment);
24092 + return alignment_for_aligned_arrays (type,
24093 + STACK_SLOT_ALIGNMENT (type,
24094 + mode,
24095 + alignment));
24096 }
24097
24098 /* Allocate a stack slot of SIZE bytes and return a MEM rtx for it
24099 @@ -5359,6 +5362,57 @@
24100 {
24101 return IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (cfun->decl));
24102 }
24103 +
24104 +/* This function adjusts alignments as appropriate according to the
24105 + setting of -falign-arrays. If that is specified then the minimum
24106 + alignment for array variables is set to be the largest power of two
24107 + less than or equal to their total storage size, or the biggest
24108 + alignment used on the machine, whichever is smaller. */
24109 +
24110 +unsigned int
24111 +alignment_for_aligned_arrays (tree ty, unsigned int existing_alignment)
24112 +{
24113 + unsigned int min_alignment;
24114 + tree size;
24115 +
24116 + /* Return the existing alignment if not using -falign-arrays or if
24117 + the type is not an array type. */
24118 + if (!flag_align_arrays || !ty || TREE_CODE (ty) != ARRAY_TYPE)
24119 + return existing_alignment;
24120 +
24121 + /* Extract the total storage size of the array in bits. */
24122 + size = TYPE_SIZE (ty);
24123 + gcc_assert (size);
24124 +
24125 + /* At least for variable-length arrays, TREE_CODE (size) might not be an
24126 + integer constant; check it now. If it is not, give the array at
24127 + least BIGGEST_ALIGNMENT just to be safe. Furthermore, we assume that
24128 + alignments always fit into a host integer. So if we can't fit the
24129 + size of the array in bits into a host integer, it must also be large
24130 + enough to deserve at least BIGGEST_ALIGNMENT (see below). */
24131 + if (TREE_CODE (size) != INTEGER_CST || !host_integerp (size, 1))
24132 + min_alignment = BIGGEST_ALIGNMENT;
24133 + else
24134 + {
24135 + unsigned HOST_WIDE_INT bits = TREE_INT_CST_LOW (size);
24136 + bits = (bits ? bits : 1);
24137 +
24138 + /* An array with size greater than BIGGEST_ALIGNMENT is assigned
24139 + at least that alignment. In all other cases the minimum
24140 + alignment of the array is set to be the largest power of two
24141 + less than or equal to the total storage size of the array.
24142 + We assume that BIGGEST_ALIGNMENT fits in "unsigned int"; thus,
24143 + the shift below will not overflow. */
24144 + if (bits >= BIGGEST_ALIGNMENT)
24145 + min_alignment = BIGGEST_ALIGNMENT;
24146 + else
24147 + min_alignment = 1 << (floor_log2 (bits));
24148 + }
24149 +
24150 + /* Having computed the minimum permissible alignment, enlarge it
24151 + if EXISTING_ALIGNMENT is greater. */
24152 + return MAX (min_alignment, existing_alignment);
24153 +}
24154 \f
24155
24156 static unsigned int
24157 diff -Nur a/gcc/function.h b/gcc/function.h
24158 --- a/gcc/function.h 2009-03-23 17:29:33.000000000 +0100
24159 +++ b/gcc/function.h 2010-01-25 09:50:29.135686643 +0100
24160 @@ -25,6 +25,7 @@
24161 #include "tree.h"
24162 #include "hashtab.h"
24163 #include "varray.h"
24164 +#include "hard-reg-set.h"
24165
24166 /* Stack of pending (incomplete) sequences saved by `start_sequence'.
24167 Each element describes one pending sequence.
24168 @@ -441,6 +442,8 @@
24169
24170 /* True if dbr_schedule has already been called for this function. */
24171 bool dbr_scheduled_p;
24172 +
24173 + HARD_REG_SET asm_clobbers;
24174 };
24175
24176 #define return_label (crtl->x_return_label)
24177 @@ -687,4 +690,7 @@
24178 extern void used_types_insert (tree);
24179
24180 extern int get_next_funcdef_no (void);
24181 +
24182 +extern unsigned int alignment_for_aligned_arrays (tree, unsigned int);
24183 +
24184 #endif /* GCC_FUNCTION_H */
24185 diff -Nur a/gcc/gcc.c b/gcc/gcc.c
24186 --- a/gcc/gcc.c 2009-03-17 22:25:59.000000000 +0100
24187 +++ b/gcc/gcc.c 2010-01-25 09:50:29.135686643 +0100
24188 @@ -83,6 +83,13 @@
24189 #include "gcc.h"
24190 #include "flags.h"
24191 #include "opts.h"
24192 +#ifdef CSL_LICENSE_FEATURE
24193 +# include <csl/license.h>
24194 +#else
24195 + /* TARGET_FLEXLM requires the CodeSourcery license library be
24196 + present. */
24197 +# undef TARGET_FLEXLM
24198 +#endif
24199
24200 /* By default there is no special suffix for target executables. */
24201 /* FIXME: when autoconf is fixed, remove the host check - dj */
24202 @@ -229,6 +236,37 @@
24203
24204 static int use_pipes;
24205
24206 +/* Nonzero means that libgcc is being linked automatically by the
24207 + compiler from its normal installed location; that is, neither -B,
24208 + -nostdlib nor -nodefaultlibs was passed. */
24209 +
24210 +static int using_libgcc = 1;
24211 +
24212 +/* Nonzero means that the current spec is executing the linker. */
24213 +
24214 +static int executing_linker = 0;
24215 +
24216 +#ifdef CSL_LICENSE_FEATURE
24217 +/* 0 if we have not checked for a license, 1 if a license was
24218 + obtained, -1 if license checkout failed. */
24219 +
24220 +static int license_checked;
24221 +
24222 +# ifdef TARGET_FLEXLM
24223 +/* WRS LOCAL
24224 + Nonzero means to pay attention to the result of the license manager. */
24225 +
24226 +static int license_me_flag;
24227 +
24228 +/* WRS LOCAL
24229 + True if the -p option should be passed to the get_feature command. */
24230 +
24231 +static int feature_proxy_flag = 1;
24232 +# else
24233 +# define license_me_flag 1
24234 +# endif /* defined (TARGET_FLELM) */
24235 +#endif /* defined (CSL_LICENSE_FEATURE) */
24236 +
24237 /* The compiler version. */
24238
24239 static const char *compiler_version;
24240 @@ -651,8 +689,32 @@
24241
24242 /* config.h can define SWITCHES_NEED_SPACES to control which options
24243 require spaces between the option and the argument. */
24244 +/* GCC Bugzilla PR11810 indicates that GCC does not correctly handle
24245 + "-ofoo.o", in that it records "-ofoo.o" as a temporary file to
24246 + delete, rather than "foo.o".
24247 +
24248 + Unfortunately, Eclipse's makefile generators use the "-ofoo.o"
24249 + form. See also CS Issue #3433. So, although most users probably
24250 + use "-o foo.o", the "-ofoo.o" form is used in practice.
24251 +
24252 + See this email thread for additional information:
24253 +
24254 + http://gcc.gnu.org/ml/gcc/2008-07/msg00395.html
24255 +
24256 + Therefore, we define SWITCHES_NEED_SPACES to include "o" by
24257 + default. This causes "-ofoo.o" to be split into "-o foo.o" during
24258 + the initial processing of the command-line, before being seen by
24259 + the specs machinery.
24260 +
24261 + A risk of this change is that tools which *require* the "-ofoo.o"
24262 + form will no longer work. However, we know of no such tools, and
24263 + they would not have worked with the "-o foo.o" form anyhow.
24264 +
24265 + If this general strategy is acceptable upstream, the best approach
24266 + might be simply to eliminate this macro, since the only definitions
24267 + in target files are also to the value "o". */
24268 #ifndef SWITCHES_NEED_SPACES
24269 -#define SWITCHES_NEED_SPACES ""
24270 +#define SWITCHES_NEED_SPACES "o"
24271 #endif
24272
24273 /* config.h can define ENDFILE_SPEC to override the default crtn files. */
24274 @@ -728,6 +790,8 @@
24275 %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
24276 %(linker) %l " LINK_PIE_SPEC "%X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}\
24277 %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}\
24278 + %{Wno-poison-system-directories:--no-poison-system-directories}\
24279 + %{Werror=poison-system-directories:--error-poison-system-directories}\
24280 %{static:} %{L*} %(mfwrap) %(link_libgcc) %o\
24281 %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)} %(mflib)\
24282 %{fprofile-arcs|fprofile-generate|coverage:-lgcov}\
24283 @@ -882,7 +946,7 @@
24284 #endif
24285
24286 static const char *const driver_self_specs[] = {
24287 - DRIVER_SELF_SPECS, GOMP_SELF_SPECS
24288 + DRIVER_SELF_SPECS, CONFIGURE_SPECS, GOMP_SELF_SPECS
24289 };
24290
24291 #ifndef OPTION_DEFAULT_SPECS
24292 @@ -2853,6 +2917,29 @@
24293
24294 gcc_assert (!processing_spec_function);
24295
24296 + if (executing_linker && using_libgcc)
24297 + {
24298 + const char *libgcc_a_filename;
24299 +
24300 + /* Verify that the multilib being used is actually installed. */
24301 + libgcc_a_filename = (gcc_exec_prefix
24302 + ? gcc_exec_prefix
24303 + : concat (standard_exec_prefix,
24304 + machine_suffix, NULL));
24305 + if (multilib_dir && strcmp (multilib_dir, ".") != 0)
24306 + libgcc_a_filename = concat (libgcc_a_filename, multilib_dir,
24307 + dir_separator_str, NULL);
24308 + libgcc_a_filename = concat (libgcc_a_filename, "libgcc.a", NULL);
24309 + if (access (libgcc_a_filename, R_OK) != 0)
24310 + {
24311 + if (errno == ENOENT)
24312 + fatal ("selected multilib '%s' not installed",
24313 + multilib_dir ? multilib_dir : ".");
24314 + else
24315 + pfatal_with_name (libgcc_a_filename);
24316 + }
24317 + }
24318 +
24319 if (wrapper_string)
24320 {
24321 string = find_a_file (&exec_prefixes, argbuf[0], X_OK, false);
24322 @@ -3688,6 +3775,16 @@
24323 add_assembler_option ("--target-help", 13);
24324 add_linker_option ("--target-help", 13);
24325 }
24326 + else if (! strcmp (argv[i], "-nodefaultlibs"))
24327 + {
24328 + using_libgcc = 0;
24329 + n_switches++;
24330 + }
24331 + else if (! strcmp (argv[i], "-nostdlib"))
24332 + {
24333 + using_libgcc = 0;
24334 + n_switches++;
24335 + }
24336 else if (! strcmp (argv[i], "-pass-exit-codes"))
24337 {
24338 pass_exit_codes = 1;
24339 @@ -3852,6 +3949,14 @@
24340 verbose_only_flag++;
24341 verbose_flag++;
24342 }
24343 +#ifdef TARGET_FLEXLM
24344 + else if (strcmp (argv[i], "-flicense-me") == 0)
24345 + license_me_flag = 1; /* WRS LOCAL */
24346 + else if (strcmp (argv[i], "-ffeature-proxy") == 0)
24347 + feature_proxy_flag = 1; /* WRS LOCAL */
24348 + else if (strcmp (argv[i], "-fno-feature-proxy") == 0)
24349 + feature_proxy_flag = 0; /* WRS LOCAL */
24350 +#endif
24351 else if (argv[i][0] == '-' && argv[i][1] != 0)
24352 {
24353 const char *p = &argv[i][1];
24354 @@ -3905,6 +4010,7 @@
24355 PREFIX_PRIORITY_B_OPT, 0, 0);
24356 add_prefix (&include_prefixes, value, NULL,
24357 PREFIX_PRIORITY_B_OPT, 0, 0);
24358 + using_libgcc = 0;
24359 n_switches++;
24360 }
24361 break;
24362 @@ -3967,6 +4073,21 @@
24363 #endif
24364 goto normal_switch;
24365
24366 + /* WRS LOCAL only invoke get_feature if we are running
24367 + the compiler proper. */
24368 +#ifdef TARGET_FLEXLM
24369 + case 'E':
24370 + if (argv[i][2] == '\0')
24371 + license_checked = 1;
24372 + goto normal_switch;
24373 +
24374 + case 'M':
24375 + if (argv[i][2] == '\0'
24376 + || (argv[i][2] == 'M' && argv[i][3] == '\0'))
24377 + license_checked = 1;
24378 + goto normal_switch;
24379 +#endif
24380 +
24381 default:
24382 normal_switch:
24383
24384 @@ -4153,6 +4274,14 @@
24385 ;
24386 else if (! strcmp (argv[i], "-print-sysroot-headers-suffix"))
24387 ;
24388 +#ifdef TARGET_FLEXLM
24389 + else if (! strcmp (argv[i], "-flicense-me"))
24390 + ;
24391 + else if (! strcmp (argv[i], "-ffeature-proxy"))
24392 + ;
24393 + else if (! strcmp (argv[i], "-fno-feature-proxy"))
24394 + ;
24395 +#endif
24396 else if (! strncmp (argv[i], "--sysroot=", strlen ("--sysroot=")))
24397 {
24398 target_system_root = argv[i] + strlen ("--sysroot=");
24399 @@ -4616,27 +4745,53 @@
24400
24401 if (argbuf_index > 0)
24402 {
24403 - int i, first;
24404 + int i, first, n;
24405
24406 first = n_switches;
24407 - n_switches += argbuf_index;
24408 - switches = XRESIZEVEC (struct switchstr, switches, n_switches + 1);
24409 + n = n_switches + argbuf_index;
24410 + switches = XRESIZEVEC (struct switchstr, switches, n + 1);
24411 + switches[n] = switches[first];
24412
24413 switches[n_switches] = switches[first];
24414 for (i = 0; i < argbuf_index; i++)
24415 {
24416 struct switchstr *sw;
24417 + const char *p = &argbuf[i][1];
24418 + int c = *p;
24419
24420 /* Each switch should start with '-'. */
24421 if (argbuf[i][0] != '-')
24422 fatal ("switch '%s' does not start with '-'", argbuf[i]);
24423
24424 - sw = &switches[i + first];
24425 + sw = &switches[n_switches];
24426 sw->part1 = &argbuf[i][1];
24427 sw->args = 0;
24428 sw->live_cond = 0;
24429 sw->validated = 0;
24430 sw->ordering = 0;
24431 +
24432 + /* Deal with option arguments in separate argv elements. */
24433 + if ((SWITCH_TAKES_ARG (c) > (p[1] != 0))
24434 + || WORD_SWITCH_TAKES_ARG (p))
24435 + {
24436 + int j = 0;
24437 + int n_args = WORD_SWITCH_TAKES_ARG (p);
24438 +
24439 + if (n_args == 0)
24440 + {
24441 + /* Count only the option arguments in separate argv elements. */
24442 + n_args = SWITCH_TAKES_ARG (c) - (p[1] != 0);
24443 + }
24444 + if (i + n_args >= argbuf_index)
24445 + fatal ("argument to '-%s' is missing", p);
24446 + switches[n_switches].args
24447 + = XNEWVEC (const char *, n_args + 1);
24448 + while (j < n_args)
24449 + switches[n_switches].args[j++] = argbuf[++i];
24450 + /* Null-terminate the vector. */
24451 + switches[n_switches].args[j] = 0;
24452 + }
24453 + n_switches++;
24454 }
24455 }
24456 }
24457 @@ -6225,6 +6380,10 @@
24458 const char *p;
24459 struct user_specs *uptr;
24460 char **old_argv = argv;
24461 +#ifdef CSL_LICENSE_FEATURE
24462 + csl_license_impl *license_impl = csl_license_subproc;
24463 + csl_license *license = NULL;
24464 +#endif
24465
24466 /* Initialize here, not in definition. The IRIX 6 O32 cc sometimes chokes
24467 on ?: in file-scope variable initializations. */
24468 @@ -6792,10 +6951,84 @@
24469 }
24470 else
24471 {
24472 - value = do_spec (input_file_compiler->spec);
24473 + value = 0;
24474 +
24475 +#ifdef CSL_LICENSE_FEATURE
24476 + if (!license_checked)
24477 + {
24478 + const char *subproc, *found_subproc;
24479 +# ifdef TARGET_FLEXLM
24480 + const char *subproc_argv[10];
24481 + const char **p;
24482 + subproc = "get_feature";
24483 + p = subproc_argv;
24484 + *p++ = subproc;
24485 + if (feature_proxy_flag)
24486 + *p++ = "-p";
24487 + *p++ = "-co";
24488 + *p++ = xstrdup (DEFAULT_TARGET_MACHINE);
24489 + *p++ = "-v";
24490 + *p++ = "3.3";
24491 + *p++ = "gnu";
24492 + *p++ = infiles[i].language;
24493 + *p++ = (license_me_flag ? "-flicense-me" : "");
24494 + *p++ = 0;
24495 +# else /* !defined (TARGET_FLEXLM) */
24496 + const char **subproc_argv = NULL;
24497 + subproc = CSL_LICENSE_PROG;
24498 +# endif /* !defined (TARGET_FLEXLM) */
24499 + /* Find the licensing program. */
24500 + found_subproc = find_a_file (&exec_prefixes,
24501 + subproc,
24502 + X_OK,
24503 + /*multilib=*/false);
24504 + if (found_subproc)
24505 + subproc = found_subproc;
24506 + /* Begin checking out the license. */
24507 + license
24508 + = csl_subproc_license_new (CSL_LICENSE_FEATURE,
24509 + CSL_LICENSE_VERSION,
24510 + /*argcp=*/NULL,
24511 + /*argvp=*/NULL,
24512 + subproc,
24513 + subproc_argv);
24514 + if (!license)
24515 + {
24516 + error ("could not invoke license program");
24517 + license_checked = -1;
24518 + }
24519 + }
24520 + if (license_checked == -1 && license_me_flag)
24521 + value = -1;
24522 +#endif /* defined (CSL_LICENSE_FEATURE) */
24523 + /* Now do the compile. */
24524 + if (!value)
24525 + value = do_spec (input_file_compiler->spec);
24526 infiles[i].compiled = true;
24527 if (value < 0)
24528 this_file_error = 1;
24529 +#ifdef CSL_LICENSE_FEATURE
24530 + if (!license_checked && license)
24531 + {
24532 + /* Finish checking out the license. */
24533 + const csl_license_status *license_status;
24534 + if (!license_impl->license_check (license,
24535 + &license_status))
24536 + {
24537 + if (license_me_flag) /* WRS LOCAL */
24538 + error ("%s", license_status->msg);
24539 + /* Remember that the license check failed so
24540 + that we (a) do not check again, and (b) issue
24541 + errors about other files as well. */
24542 + license_checked = -1;
24543 + if (license_me_flag) /* WRS LOCAL */
24544 + /* Remove this file. */
24545 + this_file_error = 1;
24546 + }
24547 + else
24548 + license_checked = 1;
24549 + }
24550 +#endif /* defined (CSL_LICENSE_FEATURE) */
24551 }
24552 }
24553
24554 @@ -6873,7 +7106,9 @@
24555 " to the linker.\n\n"));
24556 fflush (stdout);
24557 }
24558 + executing_linker = 1;
24559 value = do_spec (link_command_spec);
24560 + executing_linker = 0;
24561 if (value < 0)
24562 error_count = 1;
24563 linker_was_run = (tmp != execution_count);
24564 @@ -6901,6 +7136,12 @@
24565 printf ("%s\n", bug_report_url);
24566 }
24567
24568 +#ifdef CSL_LICENSE_FEATURE
24569 + /* Relinquish the license. */
24570 + if (license)
24571 + license_impl->license_delete (license);
24572 +#endif
24573 +
24574 return (signal_count != 0 ? 2
24575 : error_count > 0 ? (pass_exit_codes ? greatest_status : 1)
24576 : 0);
24577 diff -Nur a/gcc/gcse.c b/gcc/gcse.c
24578 --- a/gcc/gcse.c 2009-04-27 13:55:13.000000000 +0200
24579 +++ b/gcc/gcse.c 2010-01-25 09:50:29.145688053 +0100
24580 @@ -172,6 +172,7 @@
24581 #include "hashtab.h"
24582 #include "df.h"
24583 #include "dbgcnt.h"
24584 +#include "target.h"
24585
24586 /* Propagate flow information through back edges and thus enable PRE's
24587 moving loop invariant calculations out of loops.
24588 @@ -1744,7 +1745,9 @@
24589 REG_EQUIV notes and if the argument slot is used somewhere
24590 explicitly, it means address of parameter has been taken,
24591 so we should not extend the lifetime of the pseudo. */
24592 - && (note == NULL_RTX || ! MEM_P (XEXP (note, 0))))
24593 + && (note == NULL_RTX || ! MEM_P (XEXP (note, 0)))
24594 + && ! (targetm.cannot_copy_insn_p && INSN_P (insn)
24595 + && targetm.cannot_copy_insn_p (insn)))
24596 {
24597 /* An expression is not anticipatable if its operands are
24598 modified before this insn or if this is not the only SET in
24599 diff -Nur a/gcc/genautomata.c b/gcc/genautomata.c
24600 --- a/gcc/genautomata.c 2008-09-01 10:57:00.000000000 +0200
24601 +++ b/gcc/genautomata.c 2010-01-25 09:50:29.145688053 +0100
24602 @@ -1,5 +1,5 @@
24603 /* Pipeline hazard description translator.
24604 - Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
24605 + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
24606 Free Software Foundation, Inc.
24607
24608 Written by Vladimir Makarov <vmakarov@redhat.com>
24609 @@ -22,21 +22,25 @@
24610
24611 /* References:
24612
24613 - 1. Detecting pipeline structural hazards quickly. T. Proebsting,
24614 + 1. The finite state automaton based pipeline hazard recognizer and
24615 + instruction scheduler in GCC. V. Makarov. Proceedings of GCC
24616 + summit, 2003.
24617 +
24618 + 2. Detecting pipeline structural hazards quickly. T. Proebsting,
24619 C. Fraser. Proceedings of ACM SIGPLAN-SIGACT Symposium on
24620 Principles of Programming Languages, pages 280--286, 1994.
24621
24622 This article is a good start point to understand usage of finite
24623 state automata for pipeline hazard recognizers. But I'd
24624 - recommend the 2nd article for more deep understanding.
24625 + recommend the 1st and 3rd article for more deep understanding.
24626
24627 - 2. Efficient Instruction Scheduling Using Finite State Automata:
24628 + 3. Efficient Instruction Scheduling Using Finite State Automata:
24629 V. Bala and N. Rubin, Proceedings of MICRO-28. This is the best
24630 article about usage of finite state automata for pipeline hazard
24631 recognizers.
24632
24633 - The current implementation is different from the 2nd article in the
24634 - following:
24635 + The current implementation is described in the 1st article and it
24636 + is different from the 3rd article in the following:
24637
24638 1. New operator `|' (alternative) is permitted in functional unit
24639 reservation which can be treated deterministically and
24640 @@ -463,7 +467,10 @@
24641 insn. */
24642 int insn_num;
24643 /* The following field value is list of bypasses in which given insn
24644 - is output insn. */
24645 + is output insn. Bypasses with the same input insn stay one after
24646 + another in the list in the same order as their occurrences in the
24647 + description but the bypass without a guard stays always the last
24648 + in a row of bypasses with the same input insn. */
24649 struct bypass_decl *bypass_list;
24650
24651 /* The following fields are defined by automaton generator. */
24652 @@ -2367,18 +2374,67 @@
24653 }
24654
24655
24656 -/* The function searches for bypass with given IN_INSN_RESERV in given
24657 - BYPASS_LIST. */
24658 -static struct bypass_decl *
24659 -find_bypass (struct bypass_decl *bypass_list,
24660 - struct insn_reserv_decl *in_insn_reserv)
24661 -{
24662 - struct bypass_decl *bypass;
24663 -
24664 - for (bypass = bypass_list; bypass != NULL; bypass = bypass->next)
24665 - if (bypass->in_insn_reserv == in_insn_reserv)
24666 - break;
24667 - return bypass;
24668 +/* The function inserts BYPASS in the list of bypasses of the
24669 + corresponding output insn. The order of bypasses in the list is
24670 + decribed in a comment for member `bypass_list' (see above). If
24671 + there is already the same bypass in the list the function reports
24672 + this and does nothing. */
24673 +static void
24674 +insert_bypass (struct bypass_decl *bypass)
24675 +{
24676 + struct bypass_decl *curr, *last;
24677 + struct insn_reserv_decl *out_insn_reserv = bypass->out_insn_reserv;
24678 + struct insn_reserv_decl *in_insn_reserv = bypass->in_insn_reserv;
24679 +
24680 + for (curr = out_insn_reserv->bypass_list, last = NULL;
24681 + curr != NULL;
24682 + last = curr, curr = curr->next)
24683 + if (curr->in_insn_reserv == in_insn_reserv)
24684 + {
24685 + if ((bypass->bypass_guard_name != NULL
24686 + && curr->bypass_guard_name != NULL
24687 + && ! strcmp (bypass->bypass_guard_name, curr->bypass_guard_name))
24688 + || bypass->bypass_guard_name == curr->bypass_guard_name)
24689 + {
24690 + if (bypass->bypass_guard_name == NULL)
24691 + {
24692 + if (!w_flag)
24693 + error ("the same bypass `%s - %s' is already defined",
24694 + bypass->out_insn_name, bypass->in_insn_name);
24695 + else
24696 + warning (0, "the same bypass `%s - %s' is already defined",
24697 + bypass->out_insn_name, bypass->in_insn_name);
24698 + }
24699 + else if (!w_flag)
24700 + error ("the same bypass `%s - %s' (guard %s) is already defined",
24701 + bypass->out_insn_name, bypass->in_insn_name,
24702 + bypass->bypass_guard_name);
24703 + else
24704 + warning
24705 + (0, "the same bypass `%s - %s' (guard %s) is already defined",
24706 + bypass->out_insn_name, bypass->in_insn_name,
24707 + bypass->bypass_guard_name);
24708 + return;
24709 + }
24710 + if (curr->bypass_guard_name == NULL)
24711 + break;
24712 + if (curr->next == NULL || curr->next->in_insn_reserv != in_insn_reserv)
24713 + {
24714 + last = curr;
24715 + break;
24716 + }
24717 +
24718 + }
24719 + if (last == NULL)
24720 + {
24721 + bypass->next = out_insn_reserv->bypass_list;
24722 + out_insn_reserv->bypass_list = bypass;
24723 + }
24724 + else
24725 + {
24726 + bypass->next = last->next;
24727 + last->next = bypass;
24728 + }
24729 }
24730
24731 /* The function processes pipeline description declarations, checks
24732 @@ -2391,7 +2447,6 @@
24733 decl_t decl_in_table;
24734 decl_t out_insn_reserv;
24735 decl_t in_insn_reserv;
24736 - struct bypass_decl *bypass;
24737 int automaton_presence;
24738 int i;
24739
24740 @@ -2514,36 +2569,7 @@
24741 = DECL_INSN_RESERV (out_insn_reserv);
24742 DECL_BYPASS (decl)->in_insn_reserv
24743 = DECL_INSN_RESERV (in_insn_reserv);
24744 - bypass
24745 - = find_bypass (DECL_INSN_RESERV (out_insn_reserv)->bypass_list,
24746 - DECL_BYPASS (decl)->in_insn_reserv);
24747 - if (bypass != NULL)
24748 - {
24749 - if (DECL_BYPASS (decl)->latency == bypass->latency)
24750 - {
24751 - if (!w_flag)
24752 - error
24753 - ("the same bypass `%s - %s' is already defined",
24754 - DECL_BYPASS (decl)->out_insn_name,
24755 - DECL_BYPASS (decl)->in_insn_name);
24756 - else
24757 - warning
24758 - (0, "the same bypass `%s - %s' is already defined",
24759 - DECL_BYPASS (decl)->out_insn_name,
24760 - DECL_BYPASS (decl)->in_insn_name);
24761 - }
24762 - else
24763 - error ("bypass `%s - %s' is already defined",
24764 - DECL_BYPASS (decl)->out_insn_name,
24765 - DECL_BYPASS (decl)->in_insn_name);
24766 - }
24767 - else
24768 - {
24769 - DECL_BYPASS (decl)->next
24770 - = DECL_INSN_RESERV (out_insn_reserv)->bypass_list;
24771 - DECL_INSN_RESERV (out_insn_reserv)->bypass_list
24772 - = DECL_BYPASS (decl);
24773 - }
24774 + insert_bypass (DECL_BYPASS (decl));
24775 }
24776 }
24777 }
24778 @@ -8159,19 +8185,32 @@
24779 (advance_cycle_insn_decl)->insn_num));
24780 fprintf (output_file, " case %d:\n",
24781 bypass->in_insn_reserv->insn_num);
24782 - if (bypass->bypass_guard_name == NULL)
24783 - fprintf (output_file, " return %d;\n",
24784 - bypass->latency);
24785 - else
24786 + for (;;)
24787 {
24788 - fprintf (output_file,
24789 - " if (%s (%s, %s))\n",
24790 - bypass->bypass_guard_name, INSN_PARAMETER_NAME,
24791 - INSN2_PARAMETER_NAME);
24792 - fprintf (output_file,
24793 - " return %d;\n break;\n",
24794 - bypass->latency);
24795 + if (bypass->bypass_guard_name == NULL)
24796 + {
24797 + gcc_assert (bypass->next == NULL
24798 + || (bypass->in_insn_reserv
24799 + != bypass->next->in_insn_reserv));
24800 + fprintf (output_file, " return %d;\n",
24801 + bypass->latency);
24802 + }
24803 + else
24804 + {
24805 + fprintf (output_file,
24806 + " if (%s (%s, %s))\n",
24807 + bypass->bypass_guard_name, INSN_PARAMETER_NAME,
24808 + INSN2_PARAMETER_NAME);
24809 + fprintf (output_file, " return %d;\n",
24810 + bypass->latency);
24811 + }
24812 + if (bypass->next == NULL
24813 + || bypass->in_insn_reserv != bypass->next->in_insn_reserv)
24814 + break;
24815 + bypass = bypass->next;
24816 }
24817 + if (bypass->bypass_guard_name != NULL)
24818 + fprintf (output_file, " break;\n");
24819 }
24820 fputs (" }\n break;\n", output_file);
24821 }
24822 diff -Nur a/gcc/gengtype-lex.c b/gcc/gengtype-lex.c
24823 --- a/gcc/gengtype-lex.c 2009-07-22 09:46:07.000000000 +0200
24824 +++ b/gcc/gengtype-lex.c 1970-01-01 01:00:00.000000000 +0100
24825 @@ -1,2638 +0,0 @@
24826 -#line 2 "gengtype-lex.c"
24827 -
24828 -#line 4 "gengtype-lex.c"
24829 -
24830 -#define YY_INT_ALIGNED short int
24831 -
24832 -/* A lexical scanner generated by flex */
24833 -
24834 -#define FLEX_SCANNER
24835 -#define YY_FLEX_MAJOR_VERSION 2
24836 -#define YY_FLEX_MINOR_VERSION 5
24837 -#define YY_FLEX_SUBMINOR_VERSION 35
24838 -#if YY_FLEX_SUBMINOR_VERSION > 0
24839 -#define FLEX_BETA
24840 -#endif
24841 -
24842 -/* First, we deal with platform-specific or compiler-specific issues. */
24843 -
24844 -/* begin standard C headers. */
24845 -#include <stdio.h>
24846 -#include <string.h>
24847 -#include <errno.h>
24848 -#include <stdlib.h>
24849 -
24850 -/* end standard C headers. */
24851 -
24852 -/* flex integer type definitions */
24853 -
24854 -#ifndef FLEXINT_H
24855 -#define FLEXINT_H
24856 -
24857 -/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
24858 -
24859 -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
24860 -
24861 -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
24862 - * if you want the limit (max/min) macros for int types.
24863 - */
24864 -#ifndef __STDC_LIMIT_MACROS
24865 -#define __STDC_LIMIT_MACROS 1
24866 -#endif
24867 -
24868 -#include <inttypes.h>
24869 -typedef int8_t flex_int8_t;
24870 -typedef uint8_t flex_uint8_t;
24871 -typedef int16_t flex_int16_t;
24872 -typedef uint16_t flex_uint16_t;
24873 -typedef int32_t flex_int32_t;
24874 -typedef uint32_t flex_uint32_t;
24875 -#else
24876 -typedef signed char flex_int8_t;
24877 -typedef short int flex_int16_t;
24878 -typedef int flex_int32_t;
24879 -typedef unsigned char flex_uint8_t;
24880 -typedef unsigned short int flex_uint16_t;
24881 -typedef unsigned int flex_uint32_t;
24882 -#endif /* ! C99 */
24883 -
24884 -/* Limits of integral types. */
24885 -#ifndef INT8_MIN
24886 -#define INT8_MIN (-128)
24887 -#endif
24888 -#ifndef INT16_MIN
24889 -#define INT16_MIN (-32767-1)
24890 -#endif
24891 -#ifndef INT32_MIN
24892 -#define INT32_MIN (-2147483647-1)
24893 -#endif
24894 -#ifndef INT8_MAX
24895 -#define INT8_MAX (127)
24896 -#endif
24897 -#ifndef INT16_MAX
24898 -#define INT16_MAX (32767)
24899 -#endif
24900 -#ifndef INT32_MAX
24901 -#define INT32_MAX (2147483647)
24902 -#endif
24903 -#ifndef UINT8_MAX
24904 -#define UINT8_MAX (255U)
24905 -#endif
24906 -#ifndef UINT16_MAX
24907 -#define UINT16_MAX (65535U)
24908 -#endif
24909 -#ifndef UINT32_MAX
24910 -#define UINT32_MAX (4294967295U)
24911 -#endif
24912 -
24913 -#endif /* ! FLEXINT_H */
24914 -
24915 -#ifdef __cplusplus
24916 -
24917 -/* The "const" storage-class-modifier is valid. */
24918 -#define YY_USE_CONST
24919 -
24920 -#else /* ! __cplusplus */
24921 -
24922 -/* C99 requires __STDC__ to be defined as 1. */
24923 -#if defined (__STDC__)
24924 -
24925 -#define YY_USE_CONST
24926 -
24927 -#endif /* defined (__STDC__) */
24928 -#endif /* ! __cplusplus */
24929 -
24930 -#ifdef YY_USE_CONST
24931 -#define yyconst const
24932 -#else
24933 -#define yyconst
24934 -#endif
24935 -
24936 -/* Returned upon end-of-file. */
24937 -#define YY_NULL 0
24938 -
24939 -/* Promotes a possibly negative, possibly signed char to an unsigned
24940 - * integer for use as an array index. If the signed char is negative,
24941 - * we want to instead treat it as an 8-bit unsigned char, hence the
24942 - * double cast.
24943 - */
24944 -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
24945 -
24946 -/* Enter a start condition. This macro really ought to take a parameter,
24947 - * but we do it the disgusting crufty way forced on us by the ()-less
24948 - * definition of BEGIN.
24949 - */
24950 -#define BEGIN (yy_start) = 1 + 2 *
24951 -
24952 -/* Translate the current start state into a value that can be later handed
24953 - * to BEGIN to return to the state. The YYSTATE alias is for lex
24954 - * compatibility.
24955 - */
24956 -#define YY_START (((yy_start) - 1) / 2)
24957 -#define YYSTATE YY_START
24958 -
24959 -/* Action number for EOF rule of a given start state. */
24960 -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
24961 -
24962 -/* Special action meaning "start processing a new file". */
24963 -#define YY_NEW_FILE yyrestart(yyin )
24964 -
24965 -#define YY_END_OF_BUFFER_CHAR 0
24966 -
24967 -/* Size of default input buffer. */
24968 -#ifndef YY_BUF_SIZE
24969 -#define YY_BUF_SIZE 16384
24970 -#endif
24971 -
24972 -/* The state buf must be large enough to hold one state per character in the main buffer.
24973 - */
24974 -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
24975 -
24976 -#ifndef YY_TYPEDEF_YY_BUFFER_STATE
24977 -#define YY_TYPEDEF_YY_BUFFER_STATE
24978 -typedef struct yy_buffer_state *YY_BUFFER_STATE;
24979 -#endif
24980 -
24981 -extern int yyleng;
24982 -
24983 -extern FILE *yyin, *yyout;
24984 -
24985 -#define EOB_ACT_CONTINUE_SCAN 0
24986 -#define EOB_ACT_END_OF_FILE 1
24987 -#define EOB_ACT_LAST_MATCH 2
24988 -
24989 - #define YY_LESS_LINENO(n)
24990 -
24991 -/* Return all but the first "n" matched characters back to the input stream. */
24992 -#define yyless(n) \
24993 - do \
24994 - { \
24995 - /* Undo effects of setting up yytext. */ \
24996 - int yyless_macro_arg = (n); \
24997 - YY_LESS_LINENO(yyless_macro_arg);\
24998 - *yy_cp = (yy_hold_char); \
24999 - YY_RESTORE_YY_MORE_OFFSET \
25000 - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
25001 - YY_DO_BEFORE_ACTION; /* set up yytext again */ \
25002 - } \
25003 - while ( 0 )
25004 -
25005 -#define unput(c) yyunput( c, (yytext_ptr) )
25006 -
25007 -#ifndef YY_TYPEDEF_YY_SIZE_T
25008 -#define YY_TYPEDEF_YY_SIZE_T
25009 -typedef size_t yy_size_t;
25010 -#endif
25011 -
25012 -#ifndef YY_STRUCT_YY_BUFFER_STATE
25013 -#define YY_STRUCT_YY_BUFFER_STATE
25014 -struct yy_buffer_state
25015 - {
25016 - FILE *yy_input_file;
25017 -
25018 - char *yy_ch_buf; /* input buffer */
25019 - char *yy_buf_pos; /* current position in input buffer */
25020 -
25021 - /* Size of input buffer in bytes, not including room for EOB
25022 - * characters.
25023 - */
25024 - yy_size_t yy_buf_size;
25025 -
25026 - /* Number of characters read into yy_ch_buf, not including EOB
25027 - * characters.
25028 - */
25029 - int yy_n_chars;
25030 -
25031 - /* Whether we "own" the buffer - i.e., we know we created it,
25032 - * and can realloc() it to grow it, and should free() it to
25033 - * delete it.
25034 - */
25035 - int yy_is_our_buffer;
25036 -
25037 - /* Whether this is an "interactive" input source; if so, and
25038 - * if we're using stdio for input, then we want to use getc()
25039 - * instead of fread(), to make sure we stop fetching input after
25040 - * each newline.
25041 - */
25042 - int yy_is_interactive;
25043 -
25044 - /* Whether we're considered to be at the beginning of a line.
25045 - * If so, '^' rules will be active on the next match, otherwise
25046 - * not.
25047 - */
25048 - int yy_at_bol;
25049 -
25050 - int yy_bs_lineno; /**< The line count. */
25051 - int yy_bs_column; /**< The column count. */
25052 -
25053 - /* Whether to try to fill the input buffer when we reach the
25054 - * end of it.
25055 - */
25056 - int yy_fill_buffer;
25057 -
25058 - int yy_buffer_status;
25059 -
25060 -#define YY_BUFFER_NEW 0
25061 -#define YY_BUFFER_NORMAL 1
25062 - /* When an EOF's been seen but there's still some text to process
25063 - * then we mark the buffer as YY_EOF_PENDING, to indicate that we
25064 - * shouldn't try reading from the input source any more. We might
25065 - * still have a bunch of tokens to match, though, because of
25066 - * possible backing-up.
25067 - *
25068 - * When we actually see the EOF, we change the status to "new"
25069 - * (via yyrestart()), so that the user can continue scanning by
25070 - * just pointing yyin at a new input file.
25071 - */
25072 -#define YY_BUFFER_EOF_PENDING 2
25073 -
25074 - };
25075 -#endif /* !YY_STRUCT_YY_BUFFER_STATE */
25076 -
25077 -/* Stack of input buffers. */
25078 -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
25079 -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
25080 -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
25081 -
25082 -/* We provide macros for accessing buffer states in case in the
25083 - * future we want to put the buffer states in a more general
25084 - * "scanner state".
25085 - *
25086 - * Returns the top of the stack, or NULL.
25087 - */
25088 -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
25089 - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
25090 - : NULL)
25091 -
25092 -/* Same as previous macro, but useful when we know that the buffer stack is not
25093 - * NULL or when we need an lvalue. For internal use only.
25094 - */
25095 -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
25096 -
25097 -/* yy_hold_char holds the character lost when yytext is formed. */
25098 -static char yy_hold_char;
25099 -static int yy_n_chars; /* number of characters read into yy_ch_buf */
25100 -int yyleng;
25101 -
25102 -/* Points to current character in buffer. */
25103 -static char *yy_c_buf_p = (char *) 0;
25104 -static int yy_init = 0; /* whether we need to initialize */
25105 -static int yy_start = 0; /* start state number */
25106 -
25107 -/* Flag which is used to allow yywrap()'s to do buffer switches
25108 - * instead of setting up a fresh yyin. A bit of a hack ...
25109 - */
25110 -static int yy_did_buffer_switch_on_eof;
25111 -
25112 -void yyrestart (FILE *input_file );
25113 -void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
25114 -YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
25115 -void yy_delete_buffer (YY_BUFFER_STATE b );
25116 -void yy_flush_buffer (YY_BUFFER_STATE b );
25117 -void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
25118 -void yypop_buffer_state (void );
25119 -
25120 -static void yyensure_buffer_stack (void );
25121 -static void yy_load_buffer_state (void );
25122 -static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
25123 -
25124 -#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
25125 -
25126 -YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
25127 -YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
25128 -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
25129 -
25130 -void *yyalloc (yy_size_t );
25131 -void *yyrealloc (void *,yy_size_t );
25132 -void yyfree (void * );
25133 -
25134 -#define yy_new_buffer yy_create_buffer
25135 -
25136 -#define yy_set_interactive(is_interactive) \
25137 - { \
25138 - if ( ! YY_CURRENT_BUFFER ){ \
25139 - yyensure_buffer_stack (); \
25140 - YY_CURRENT_BUFFER_LVALUE = \
25141 - yy_create_buffer(yyin,YY_BUF_SIZE ); \
25142 - } \
25143 - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
25144 - }
25145 -
25146 -#define yy_set_bol(at_bol) \
25147 - { \
25148 - if ( ! YY_CURRENT_BUFFER ){\
25149 - yyensure_buffer_stack (); \
25150 - YY_CURRENT_BUFFER_LVALUE = \
25151 - yy_create_buffer(yyin,YY_BUF_SIZE ); \
25152 - } \
25153 - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
25154 - }
25155 -
25156 -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
25157 -
25158 -/* Begin user sect3 */
25159 -
25160 -#define yywrap(n) 1
25161 -#define YY_SKIP_YYWRAP
25162 -
25163 -typedef unsigned char YY_CHAR;
25164 -
25165 -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
25166 -
25167 -typedef int yy_state_type;
25168 -
25169 -extern int yylineno;
25170 -
25171 -int yylineno = 1;
25172 -
25173 -extern char *yytext;
25174 -#define yytext_ptr yytext
25175 -
25176 -static yy_state_type yy_get_previous_state (void );
25177 -static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
25178 -static int yy_get_next_buffer (void );
25179 -static void yy_fatal_error (yyconst char msg[] );
25180 -
25181 -/* Done after the current pattern has been matched and before the
25182 - * corresponding action - sets up yytext.
25183 - */
25184 -#define YY_DO_BEFORE_ACTION \
25185 - (yytext_ptr) = yy_bp; \
25186 - yyleng = (size_t) (yy_cp - yy_bp); \
25187 - (yy_hold_char) = *yy_cp; \
25188 - *yy_cp = '\0'; \
25189 - (yy_c_buf_p) = yy_cp;
25190 -
25191 -#define YY_NUM_RULES 49
25192 -#define YY_END_OF_BUFFER 50
25193 -/* This struct is not used in this scanner,
25194 - but its presence is necessary. */
25195 -struct yy_trans_info
25196 - {
25197 - flex_int32_t yy_verify;
25198 - flex_int32_t yy_nxt;
25199 - };
25200 -static yyconst flex_int16_t yy_accept[445] =
25201 - { 0,
25202 - 0, 0, 0, 0, 0, 0, 0, 0, 50, 36,
25203 - 36, 33, 45, 36, 45, 34, 36, 36, 34, 34,
25204 - 34, 34, 34, 31, 10, 10, 31, 29, 31, 31,
25205 - 31, 20, 31, 31, 31, 31, 31, 31, 31, 31,
25206 - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
25207 - 31, 10, 31, 41, 39, 46, 46, 0, 0, 0,
25208 - 37, 0, 0, 0, 38, 32, 34, 0, 0, 0,
25209 - 0, 0, 0, 0, 0, 0, 34, 34, 34, 34,
25210 - 34, 10, 0, 25, 0, 0, 0, 0, 9, 20,
25211 - 24, 0, 0, 0, 0, 0, 0, 0, 0, 26,
25212 -
25213 - 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25214 - 0, 0, 0, 0, 0, 10, 0, 0, 0, 0,
25215 - 42, 44, 43, 0, 35, 0, 0, 0, 0, 0,
25216 - 0, 34, 34, 34, 34, 34, 34, 27, 28, 0,
25217 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25218 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25219 - 0, 0, 0, 30, 0, 0, 0, 0, 0, 0,
25220 - 0, 0, 0, 0, 34, 34, 34, 34, 34, 34,
25221 - 0, 0, 0, 13, 0, 14, 0, 0, 0, 0,
25222 - 22, 22, 0, 0, 0, 0, 0, 0, 0, 0,
25223 -
25224 - 0, 0, 0, 48, 0, 0, 0, 0, 0, 0,
25225 - 0, 34, 34, 34, 34, 34, 34, 0, 0, 0,
25226 - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
25227 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25228 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,
25229 - 34, 34, 34, 34, 3, 0, 0, 0, 0, 12,
25230 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25231 - 0, 0, 0, 0, 0, 0, 15, 0, 0, 0,
25232 - 0, 0, 0, 0, 34, 4, 5, 2, 34, 0,
25233 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25234 -
25235 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
25236 - 0, 0, 0, 0, 34, 1, 0, 0, 0, 0,
25237 - 0, 0, 0, 0, 0, 22, 22, 0, 0, 0,
25238 - 0, 0, 0, 0, 0, 0, 0, 34, 34, 34,
25239 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25240 - 21, 0, 0, 0, 0, 0, 0, 34, 7, 6,
25241 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
25242 - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0,
25243 - 0, 0, 19, 0, 0, 47, 34, 0, 0, 0,
25244 - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0,
25245 -
25246 - 0, 0, 0, 0, 0, 0, 34, 0, 24, 24,
25247 - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0,
25248 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
25249 - 0, 23, 0, 0, 0, 0, 0, 40, 0, 0,
25250 - 0, 0, 0, 0
25251 - } ;
25252 -
25253 -static yyconst flex_int32_t yy_ec[256] =
25254 - { 0,
25255 - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
25256 - 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
25257 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25258 - 1, 2, 1, 4, 5, 1, 6, 1, 7, 8,
25259 - 9, 10, 1, 6, 6, 11, 12, 13, 13, 13,
25260 - 13, 13, 13, 13, 13, 13, 13, 6, 6, 6,
25261 - 6, 6, 1, 1, 14, 15, 16, 17, 18, 19,
25262 - 20, 21, 22, 23, 23, 24, 25, 26, 27, 28,
25263 - 23, 29, 30, 31, 32, 33, 34, 23, 35, 23,
25264 - 36, 37, 38, 1, 39, 1, 40, 41, 42, 43,
25265 -
25266 - 44, 45, 46, 47, 48, 49, 49, 50, 51, 52,
25267 - 53, 54, 49, 55, 56, 57, 58, 59, 49, 60,
25268 - 61, 62, 6, 6, 6, 1, 1, 1, 1, 1,
25269 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25270 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25271 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25272 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25273 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25274 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25275 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25276 -
25277 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25278 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25279 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25280 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25281 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25282 - 1, 1, 1, 1, 1
25283 - } ;
25284 -
25285 -static yyconst flex_int32_t yy_meta[63] =
25286 - { 0,
25287 - 1, 2, 3, 1, 1, 1, 1, 1, 4, 5,
25288 - 1, 1, 6, 7, 7, 7, 7, 7, 7, 7,
25289 - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
25290 - 7, 7, 7, 7, 7, 8, 1, 1, 9, 9,
25291 - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
25292 - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
25293 - 9, 9
25294 - } ;
25295 -
25296 -static yyconst flex_int16_t yy_base[483] =
25297 - { 0,
25298 - 0, 38, 96, 12, 12, 13, 15, 16, 1028, 1444,
25299 - 32, 51, 20, 990, 1016, 0, 157, 18, 1007, 964,
25300 - 966, 961, 969, 1444, 25, 27, 27, 1444, 983, 1008,
25301 - 1008, 1004, 215, 253, 5, 32, 29, 974, 45, 962,
25302 - 996, 35, 38, 39, 40, 41, 134, 42, 136, 137,
25303 - 138, 75, 996, 0, 1444, 985, 984, 166, 964, 162,
25304 - 1444, 0, 987, 990, 1444, 1444, 0, 186, 165, 974,
25305 - 931, 933, 928, 936, 168, 943, 967, 928, 140, 930,
25306 - 935, 87, 167, 1444, 979, 974, 977, 968, 1444, 950,
25307 - 1444, 935, 934, 145, 52, 46, 148, 165, 922, 1444,
25308 -
25309 - 1444, 152, 156, 155, 170, 173, 175, 182, 183, 185,
25310 - 211, 214, 222, 218, 221, 269, 957, 956, 291, 0,
25311 - 1444, 1444, 1444, 922, 1444, 937, 898, 195, 900, 905,
25312 - 907, 912, 906, 892, 890, 903, 893, 1444, 1444, 209,
25313 - 254, 251, 353, 248, 391, 354, 350, 351, 340, 355,
25314 - 341, 429, 339, 356, 344, 347, 360, 390, 43, 361,
25315 - 391, 395, 429, 1444, 0, 0, 280, 906, 900, 886,
25316 - 884, 897, 872, 876, 890, 867, 873, 878, 876, 866,
25317 - 381, 348, 382, 1444, 384, 1444, 389, 397, 491, 398,
25318 - 1444, 528, 418, 399, 420, 477, 478, 422, 421, 480,
25319 -
25320 - 479, 0, 449, 1444, 884, 861, 867, 872, 870, 860,
25321 - 859, 892, 857, 866, 850, 862, 586, 493, 496, 494,
25322 - 484, 624, 1444, 0, 878, 876, 876, 834, 839, 841,
25323 - 832, 830, 199, 830, 490, 499, 486, 492, 488, 489,
25324 - 662, 0, 863, 828, 837, 821, 833, 0, 832, 859,
25325 - 700, 738, 776, 829, 1444, 431, 258, 437, 515, 1444,
25326 - 846, 844, 841, 817, 829, 809, 319, 815, 813, 478,
25327 - 809, 512, 528, 520, 525, 814, 1444, 0, 833, 0,
25328 - 0, 0, 803, 551, 808, 1444, 1444, 1444, 852, 383,
25329 - 521, 530, 539, 822, 829, 813, 793, 787, 802, 801,
25330 -
25331 - 556, 793, 783, 785, 792, 787, 523, 545, 535, 1444,
25332 - 0, 795, 0, 561, 585, 1444, 555, 343, 581, 584,
25333 - 794, 811, 792, 773, 772, 1444, 0, 771, 783, 772,
25334 - 764, 552, 890, 558, 0, 623, 778, 784, 928, 966,
25335 - 583, 593, 594, 613, 792, 792, 771, 761, 746, 591,
25336 - 1444, 1004, 0, 778, 0, 0, 766, 776, 1444, 1444,
25337 - 620, 621, 626, 627, 653, 777, 769, 775, 1042, 1444,
25338 - 0, 772, 787, 767, 556, 577, 615, 649, 629, 762,
25339 - 753, 774, 1444, 0, 763, 1444, 773, 632, 659, 662,
25340 - 656, 654, 754, 742, 753, 0, 754, 729, 665, 688,
25341 -
25342 - 667, 744, 742, 683, 0, 695, 692, 689, 715, 722,
25343 - 699, 711, 701, 666, 673, 0, 705, 1080, 704, 749,
25344 - 751, 753, 756, 663, 658, 618, 593, 0, 0, 1444,
25345 - 758, 1444, 760, 600, 588, 543, 483, 1444, 439, 386,
25346 - 247, 206, 167, 1444, 1118, 1127, 1136, 1145, 1154, 1158,
25347 - 1167, 1176, 1185, 1194, 1202, 1211, 1220, 1229, 1238, 1247,
25348 - 1256, 1265, 1273, 1282, 1290, 1298, 1306, 1314, 1323, 1331,
25349 - 1340, 1349, 1357, 1365, 1374, 1383, 1392, 1400, 1409, 1417,
25350 - 1426, 1435
25351 - } ;
25352 -
25353 -static yyconst flex_int16_t yy_def[483] =
25354 - { 0,
25355 - 445, 445, 444, 3, 446, 446, 446, 446, 444, 444,
25356 - 444, 444, 447, 448, 449, 450, 444, 444, 450, 450,
25357 - 450, 450, 450, 444, 444, 444, 451, 444, 452, 444,
25358 - 444, 444, 453, 453, 34, 34, 34, 34, 34, 454,
25359 - 444, 34, 34, 34, 34, 34, 34, 34, 34, 34,
25360 - 34, 444, 455, 456, 444, 457, 457, 444, 444, 447,
25361 - 444, 447, 444, 448, 444, 444, 450, 444, 444, 444,
25362 - 444, 444, 444, 444, 444, 444, 450, 450, 450, 450,
25363 - 450, 444, 451, 444, 451, 444, 452, 444, 444, 444,
25364 - 444, 34, 34, 34, 34, 34, 34, 34, 454, 444,
25365 -
25366 - 444, 34, 34, 34, 34, 34, 34, 34, 34, 34,
25367 - 34, 34, 34, 34, 34, 444, 455, 455, 444, 458,
25368 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25369 - 444, 450, 450, 450, 450, 450, 450, 444, 444, 34,
25370 - 34, 34, 453, 34, 453, 34, 34, 34, 34, 34,
25371 - 34, 453, 34, 34, 34, 34, 34, 34, 34, 34,
25372 - 34, 34, 119, 444, 119, 459, 444, 444, 444, 444,
25373 - 444, 444, 444, 444, 450, 450, 450, 450, 450, 450,
25374 - 34, 34, 34, 444, 34, 444, 34, 34, 453, 34,
25375 - 444, 444, 34, 34, 34, 34, 34, 34, 34, 34,
25376 -
25377 - 34, 460, 444, 444, 444, 444, 444, 444, 444, 444,
25378 - 444, 450, 450, 450, 450, 450, 450, 34, 34, 34,
25379 - 34, 453, 444, 192, 444, 444, 444, 444, 444, 444,
25380 - 444, 444, 444, 444, 34, 34, 34, 34, 34, 34,
25381 - 453, 461, 444, 444, 444, 444, 444, 462, 444, 450,
25382 - 450, 450, 450, 450, 444, 34, 34, 34, 34, 444,
25383 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25384 - 444, 34, 34, 34, 34, 453, 444, 463, 444, 464,
25385 - 465, 466, 444, 444, 450, 444, 444, 444, 450, 34,
25386 - 34, 34, 34, 444, 444, 444, 444, 444, 444, 444,
25387 -
25388 - 467, 444, 444, 444, 444, 444, 34, 34, 34, 444,
25389 - 468, 444, 469, 444, 450, 444, 34, 34, 34, 34,
25390 - 444, 444, 444, 444, 444, 444, 192, 444, 444, 444,
25391 - 444, 34, 453, 34, 470, 444, 444, 450, 450, 450,
25392 - 34, 34, 34, 34, 444, 444, 444, 444, 444, 34,
25393 - 444, 453, 471, 444, 472, 473, 444, 450, 444, 444,
25394 - 34, 34, 34, 34, 34, 444, 444, 444, 453, 444,
25395 - 474, 444, 444, 450, 34, 34, 34, 34, 34, 444,
25396 - 444, 444, 444, 475, 444, 444, 450, 34, 34, 34,
25397 - 34, 34, 444, 444, 444, 476, 444, 450, 34, 34,
25398 -
25399 - 34, 444, 444, 444, 477, 444, 450, 34, 444, 478,
25400 - 34, 444, 444, 444, 444, 479, 444, 450, 34, 444,
25401 - 478, 478, 480, 444, 444, 444, 444, 481, 482, 444,
25402 - 444, 444, 480, 444, 444, 444, 444, 444, 444, 444,
25403 - 444, 444, 444, 0, 444, 444, 444, 444, 444, 444,
25404 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25405 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25406 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25407 - 444, 444
25408 - } ;
25409 -
25410 -static yyconst flex_int16_t yy_nxt[1507] =
25411 - { 0,
25412 - 10, 11, 12, 13, 10, 10, 14, 10, 10, 10,
25413 - 10, 15, 10, 52, 55, 55, 53, 55, 55, 75,
25414 - 444, 56, 56, 61, 57, 57, 82, 82, 82, 82,
25415 - 84, 92, 94, 58, 58, 10, 10, 10, 10, 17,
25416 - 12, 13, 18, 10, 14, 10, 10, 10, 10, 15,
25417 - 10, 59, 58, 58, 19, 92, 62, 95, 92, 96,
25418 - 76, 92, 98, 85, 92, 92, 92, 92, 92, 92,
25419 - 59, 92, 92, 10, 10, 10, 116, 82, 92, 117,
25420 - 143, 20, 105, 142, 103, 109, 198, 102, 82, 82,
25421 - 104, 106, 107, 21, 22, 23, 24, 25, 26, 27,
25422 -
25423 - 24, 28, 29, 28, 28, 28, 30, 31, 32, 33,
25424 - 34, 35, 33, 36, 33, 37, 38, 33, 33, 33,
25425 - 33, 33, 33, 33, 33, 33, 33, 33, 39, 33,
25426 - 33, 40, 41, 24, 33, 33, 42, 43, 44, 45,
25427 - 33, 33, 33, 46, 33, 47, 33, 48, 33, 49,
25428 - 33, 50, 33, 51, 33, 33, 33, 33, 68, 58,
25429 - 92, 69, 92, 92, 92, 61, 75, 58, 58, 75,
25430 - 84, 92, 141, 70, 92, 110, 59, 144, 92, 134,
25431 - 145, 92, 92, 112, 113, 59, 108, 68, 58, 115,
25432 - 69, 92, 111, 114, 135, 147, 92, 301, 62, 92,
25433 -
25434 - 71, 92, 70, 85, 146, 59, 148, 76, 92, 92,
25435 - 76, 92, 72, 73, 74, 91, 91, 91, 91, 91,
25436 - 91, 91, 91, 91, 91, 91, 91, 151, 149, 71,
25437 - 150, 152, 181, 153, 170, 92, 301, 92, 154, 155,
25438 - 92, 72, 73, 74, 92, 269, 270, 92, 92, 171,
25439 - 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
25440 - 91, 91, 91, 91, 91, 156, 157, 158, 161, 182,
25441 - 116, 82, 160, 117, 92, 183, 162, 92, 185, 93,
25442 - 92, 203, 203, 159, 92, 443, 291, 204, 91, 91,
25443 - 91, 163, 163, 164, 163, 163, 163, 163, 163, 163,
25444 -
25445 - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
25446 - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
25447 - 163, 163, 163, 163, 163, 163, 163, 163, 163, 165,
25448 - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
25449 - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
25450 - 165, 165, 165, 184, 184, 184, 184, 184, 184, 184,
25451 - 184, 184, 184, 184, 184, 92, 92, 92, 219, 92,
25452 - 92, 300, 342, 92, 92, 301, 92, 92, 188, 190,
25453 - 92, 92, 92, 194, 152, 195, 92, 92, 184, 184,
25454 - 184, 186, 186, 186, 186, 186, 186, 186, 186, 186,
25455 -
25456 - 186, 186, 186, 152, 152, 189, 187, 92, 92, 92,
25457 - 92, 442, 193, 317, 196, 92, 92, 92, 199, 218,
25458 - 220, 92, 221, 92, 92, 92, 186, 186, 186, 191,
25459 - 192, 192, 191, 191, 191, 191, 191, 191, 191, 191,
25460 - 191, 197, 201, 200, 92, 222, 92, 92, 92, 236,
25461 - 203, 203, 290, 152, 152, 441, 204, 92, 292, 237,
25462 - 239, 235, 240, 92, 191, 191, 191, 163, 163, 163,
25463 - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
25464 - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
25465 - 163, 223, 223, 223, 223, 223, 223, 223, 223, 223,
25466 -
25467 - 223, 223, 223, 92, 92, 92, 92, 256, 258, 257,
25468 - 92, 273, 92, 301, 92, 92, 92, 259, 92, 92,
25469 - 92, 238, 92, 304, 158, 92, 223, 223, 223, 224,
25470 - 224, 241, 272, 152, 152, 275, 293, 274, 92, 305,
25471 - 273, 92, 225, 226, 152, 276, 92, 92, 227, 92,
25472 - 307, 92, 314, 314, 92, 320, 92, 327, 327, 318,
25473 - 319, 92, 314, 314, 440, 92, 274, 308, 228, 229,
25474 - 230, 92, 309, 341, 334, 231, 332, 232, 92, 388,
25475 - 337, 92, 92, 233, 92, 234, 255, 255, 255, 255,
25476 - 255, 255, 255, 255, 255, 255, 255, 255, 338, 343,
25477 -
25478 - 333, 344, 389, 92, 361, 439, 339, 92, 350, 92,
25479 - 92, 340, 340, 352, 362, 363, 301, 92, 437, 92,
25480 - 92, 255, 255, 255, 260, 260, 260, 260, 260, 260,
25481 - 260, 260, 260, 260, 260, 260, 354, 375, 390, 92,
25482 - 376, 92, 364, 377, 355, 369, 92, 92, 152, 356,
25483 - 356, 365, 92, 92, 392, 92, 436, 378, 92, 260,
25484 - 260, 260, 277, 277, 277, 277, 277, 277, 277, 277,
25485 - 277, 277, 277, 277, 379, 92, 399, 401, 400, 92,
25486 - 92, 408, 92, 435, 152, 92, 434, 391, 92, 409,
25487 - 409, 92, 411, 92, 427, 410, 426, 277, 277, 277,
25488 -
25489 - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
25490 - 286, 286, 414, 418, 92, 92, 420, 420, 418, 418,
25491 - 425, 415, 421, 422, 422, 92, 429, 419, 424, 152,
25492 - 92, 429, 429, 417, 152, 286, 286, 286, 287, 287,
25493 - 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
25494 - 420, 420, 422, 422, 422, 422, 421, 431, 431, 431,
25495 - 431, 431, 431, 413, 432, 412, 432, 407, 432, 406,
25496 - 404, 403, 402, 287, 287, 287, 288, 288, 288, 288,
25497 - 288, 288, 288, 288, 288, 288, 288, 288, 398, 397,
25498 - 395, 394, 393, 387, 386, 385, 382, 381, 380, 374,
25499 -
25500 - 373, 372, 301, 301, 368, 367, 366, 358, 357, 304,
25501 - 349, 288, 288, 288, 310, 310, 310, 310, 310, 310,
25502 - 310, 310, 310, 310, 310, 310, 348, 301, 301, 301,
25503 - 347, 346, 345, 336, 331, 330, 329, 328, 301, 325,
25504 - 324, 301, 301, 323, 322, 321, 315, 313, 312, 310,
25505 - 310, 310, 316, 316, 316, 316, 316, 316, 316, 316,
25506 - 316, 316, 316, 316, 306, 303, 302, 299, 298, 297,
25507 - 296, 295, 294, 289, 285, 284, 283, 282, 281, 280,
25508 - 279, 271, 268, 267, 266, 265, 264, 316, 316, 316,
25509 - 351, 351, 351, 351, 351, 351, 351, 351, 351, 351,
25510 -
25511 - 351, 351, 263, 262, 261, 254, 253, 252, 251, 250,
25512 - 249, 248, 247, 246, 245, 244, 243, 217, 216, 215,
25513 - 214, 213, 212, 211, 210, 351, 351, 351, 359, 359,
25514 - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359,
25515 - 209, 208, 207, 206, 205, 180, 179, 178, 177, 176,
25516 - 175, 174, 173, 172, 169, 168, 167, 118, 118, 100,
25517 - 140, 92, 90, 359, 359, 359, 360, 360, 360, 360,
25518 - 360, 360, 360, 360, 360, 360, 360, 360, 139, 444,
25519 - 138, 444, 137, 136, 133, 132, 131, 130, 129, 128,
25520 - 127, 126, 444, 125, 124, 123, 122, 118, 101, 100,
25521 -
25522 - 97, 360, 360, 360, 370, 370, 370, 370, 370, 370,
25523 - 370, 370, 370, 370, 370, 370, 90, 89, 88, 87,
25524 - 81, 80, 79, 78, 77, 66, 64, 444, 444, 444,
25525 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 370,
25526 - 370, 370, 383, 383, 383, 383, 383, 383, 383, 383,
25527 - 383, 383, 383, 383, 444, 444, 444, 444, 444, 444,
25528 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25529 - 444, 444, 444, 444, 444, 444, 444, 383, 383, 383,
25530 - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
25531 - 430, 430, 444, 444, 444, 444, 444, 444, 444, 444,
25532 -
25533 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25534 - 444, 444, 444, 444, 444, 430, 430, 430, 16, 16,
25535 - 16, 16, 16, 16, 16, 16, 16, 54, 54, 54,
25536 - 54, 54, 54, 54, 54, 54, 60, 60, 60, 60,
25537 - 60, 60, 60, 60, 60, 63, 63, 63, 63, 63,
25538 - 63, 63, 63, 63, 65, 65, 65, 65, 65, 65,
25539 - 65, 65, 65, 67, 67, 444, 67, 83, 83, 83,
25540 - 83, 83, 83, 83, 83, 83, 86, 86, 86, 86,
25541 - 86, 86, 86, 86, 86, 92, 92, 92, 92, 92,
25542 - 92, 92, 92, 92, 99, 99, 99, 99, 99, 99,
25543 -
25544 - 99, 444, 99, 119, 444, 444, 444, 444, 444, 444,
25545 - 119, 120, 120, 444, 120, 444, 120, 120, 120, 120,
25546 - 121, 121, 121, 121, 121, 121, 121, 121, 121, 166,
25547 - 166, 444, 166, 444, 166, 166, 166, 166, 202, 202,
25548 - 444, 202, 444, 202, 202, 202, 202, 242, 242, 444,
25549 - 242, 444, 242, 242, 242, 242, 278, 278, 444, 278,
25550 - 444, 278, 278, 278, 278, 255, 255, 255, 255, 255,
25551 - 444, 444, 255, 311, 311, 444, 311, 444, 311, 311,
25552 - 311, 311, 286, 286, 286, 286, 286, 444, 444, 286,
25553 - 287, 287, 287, 287, 287, 444, 444, 287, 288, 288,
25554 -
25555 - 288, 288, 288, 444, 444, 288, 326, 326, 326, 326,
25556 - 326, 444, 444, 326, 335, 335, 444, 335, 444, 335,
25557 - 335, 335, 335, 316, 316, 316, 316, 316, 444, 444,
25558 - 316, 353, 353, 444, 353, 444, 353, 353, 353, 353,
25559 - 371, 371, 444, 371, 444, 371, 371, 371, 371, 359,
25560 - 359, 359, 359, 359, 444, 444, 359, 360, 360, 360,
25561 - 360, 360, 444, 444, 360, 384, 384, 444, 384, 444,
25562 - 384, 384, 384, 384, 396, 396, 444, 396, 444, 396,
25563 - 396, 396, 396, 405, 405, 444, 405, 444, 405, 405,
25564 - 405, 405, 416, 416, 444, 416, 444, 416, 416, 416,
25565 -
25566 - 416, 423, 423, 444, 444, 444, 423, 444, 423, 428,
25567 - 428, 444, 428, 444, 428, 428, 428, 428, 433, 433,
25568 - 433, 444, 433, 433, 444, 433, 438, 438, 444, 438,
25569 - 444, 438, 438, 438, 438, 430, 430, 430, 430, 430,
25570 - 444, 444, 430, 9, 444, 444, 444, 444, 444, 444,
25571 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25572 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25573 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25574 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25575 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25576 -
25577 - 444, 444, 444, 444, 444, 444
25578 - } ;
25579 -
25580 -static yyconst flex_int16_t yy_chk[1507] =
25581 - { 0,
25582 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25583 - 1, 1, 1, 4, 5, 6, 4, 7, 8, 18,
25584 - 0, 5, 6, 13, 7, 8, 25, 25, 26, 26,
25585 - 27, 35, 35, 11, 11, 1, 1, 1, 2, 2,
25586 - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
25587 - 2, 11, 12, 12, 2, 37, 13, 36, 36, 37,
25588 - 18, 42, 39, 27, 43, 44, 45, 46, 48, 159,
25589 - 12, 39, 96, 2, 2, 2, 52, 52, 95, 52,
25590 - 96, 2, 44, 95, 43, 48, 159, 42, 82, 82,
25591 - 43, 45, 46, 2, 2, 2, 3, 3, 3, 3,
25592 -
25593 - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
25594 - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
25595 - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
25596 - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
25597 - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
25598 - 3, 3, 3, 3, 3, 3, 3, 3, 17, 17,
25599 - 47, 17, 49, 50, 51, 60, 69, 58, 58, 75,
25600 - 83, 94, 94, 17, 97, 49, 17, 97, 102, 79,
25601 - 98, 104, 103, 50, 50, 58, 47, 68, 68, 51,
25602 - 68, 98, 49, 50, 79, 103, 105, 443, 60, 106,
25603 -
25604 - 17, 107, 68, 83, 102, 68, 104, 69, 108, 109,
25605 - 75, 110, 17, 17, 17, 33, 33, 33, 33, 33,
25606 - 33, 33, 33, 33, 33, 33, 33, 107, 105, 68,
25607 - 106, 107, 140, 108, 128, 140, 442, 111, 109, 110,
25608 - 112, 68, 68, 68, 114, 233, 233, 115, 113, 128,
25609 - 33, 33, 33, 34, 34, 34, 34, 34, 34, 34,
25610 - 34, 34, 34, 34, 34, 111, 112, 113, 115, 141,
25611 - 116, 116, 114, 116, 144, 142, 115, 142, 144, 34,
25612 - 141, 167, 167, 113, 257, 441, 257, 167, 34, 34,
25613 - 34, 119, 119, 119, 119, 119, 119, 119, 119, 119,
25614 -
25615 - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
25616 - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
25617 - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
25618 - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
25619 - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
25620 - 119, 119, 119, 143, 143, 143, 143, 143, 143, 143,
25621 - 143, 143, 143, 143, 143, 153, 149, 151, 182, 318,
25622 - 155, 267, 318, 156, 182, 267, 147, 148, 149, 151,
25623 - 146, 150, 154, 155, 153, 156, 157, 160, 143, 143,
25624 - 143, 145, 145, 145, 145, 145, 145, 145, 145, 145,
25625 -
25626 - 145, 145, 145, 146, 147, 150, 148, 181, 183, 290,
25627 - 185, 440, 154, 290, 157, 187, 158, 161, 160, 181,
25628 - 183, 162, 185, 188, 190, 194, 145, 145, 145, 152,
25629 - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
25630 - 152, 158, 162, 161, 193, 187, 195, 199, 198, 194,
25631 - 203, 203, 256, 188, 190, 439, 203, 256, 258, 195,
25632 - 198, 193, 199, 258, 152, 152, 152, 163, 163, 163,
25633 - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
25634 - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
25635 - 163, 189, 189, 189, 189, 189, 189, 189, 189, 189,
25636 -
25637 - 189, 189, 189, 196, 197, 201, 200, 218, 220, 219,
25638 - 221, 236, 237, 437, 239, 240, 235, 221, 238, 218,
25639 - 220, 197, 219, 270, 201, 236, 189, 189, 189, 192,
25640 - 192, 200, 235, 196, 238, 237, 259, 236, 272, 270,
25641 - 273, 259, 192, 192, 239, 240, 274, 291, 192, 307,
25642 - 272, 275, 284, 284, 273, 293, 292, 301, 301, 291,
25643 - 292, 309, 314, 314, 436, 293, 273, 274, 192, 192,
25644 - 192, 308, 275, 317, 309, 192, 307, 192, 332, 375,
25645 - 314, 317, 375, 192, 334, 192, 217, 217, 217, 217,
25646 - 217, 217, 217, 217, 217, 217, 217, 217, 315, 319,
25647 -
25648 - 308, 320, 376, 376, 341, 435, 315, 319, 332, 341,
25649 - 320, 315, 315, 334, 342, 343, 434, 350, 427, 342,
25650 - 343, 217, 217, 217, 222, 222, 222, 222, 222, 222,
25651 - 222, 222, 222, 222, 222, 222, 336, 361, 377, 344,
25652 - 362, 377, 344, 363, 336, 350, 361, 362, 388, 336,
25653 - 336, 344, 363, 364, 379, 379, 426, 364, 388, 222,
25654 - 222, 222, 241, 241, 241, 241, 241, 241, 241, 241,
25655 - 241, 241, 241, 241, 365, 378, 389, 391, 390, 365,
25656 - 392, 399, 391, 425, 392, 389, 424, 378, 390, 400,
25657 - 400, 399, 401, 401, 415, 400, 414, 241, 241, 241,
25658 -
25659 - 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
25660 - 251, 251, 404, 407, 400, 408, 409, 409, 407, 407,
25661 - 413, 404, 409, 410, 410, 411, 417, 408, 412, 411,
25662 - 419, 417, 417, 406, 419, 251, 251, 251, 252, 252,
25663 - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
25664 - 420, 420, 421, 421, 422, 422, 420, 423, 423, 431,
25665 - 431, 433, 433, 403, 423, 402, 431, 398, 433, 397,
25666 - 395, 394, 393, 252, 252, 252, 253, 253, 253, 253,
25667 - 253, 253, 253, 253, 253, 253, 253, 253, 387, 385,
25668 - 382, 381, 380, 374, 373, 372, 368, 367, 366, 358,
25669 -
25670 - 357, 354, 349, 348, 347, 346, 345, 338, 337, 331,
25671 - 330, 253, 253, 253, 276, 276, 276, 276, 276, 276,
25672 - 276, 276, 276, 276, 276, 276, 329, 328, 325, 324,
25673 - 323, 322, 321, 312, 306, 305, 304, 303, 302, 300,
25674 - 299, 298, 297, 296, 295, 294, 285, 283, 279, 276,
25675 - 276, 276, 289, 289, 289, 289, 289, 289, 289, 289,
25676 - 289, 289, 289, 289, 271, 269, 268, 266, 265, 264,
25677 - 263, 262, 261, 254, 250, 249, 247, 246, 245, 244,
25678 - 243, 234, 232, 231, 230, 229, 228, 289, 289, 289,
25679 - 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
25680 -
25681 - 333, 333, 227, 226, 225, 216, 215, 214, 213, 212,
25682 - 211, 210, 209, 208, 207, 206, 205, 180, 179, 178,
25683 - 177, 176, 175, 174, 173, 333, 333, 333, 339, 339,
25684 - 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
25685 - 172, 171, 170, 169, 168, 137, 136, 135, 134, 133,
25686 - 132, 131, 130, 129, 127, 126, 124, 118, 117, 99,
25687 - 93, 92, 90, 339, 339, 339, 340, 340, 340, 340,
25688 - 340, 340, 340, 340, 340, 340, 340, 340, 88, 87,
25689 - 86, 85, 81, 80, 78, 77, 76, 74, 73, 72,
25690 - 71, 70, 64, 63, 59, 57, 56, 53, 41, 40,
25691 -
25692 - 38, 340, 340, 340, 352, 352, 352, 352, 352, 352,
25693 - 352, 352, 352, 352, 352, 352, 32, 31, 30, 29,
25694 - 23, 22, 21, 20, 19, 15, 14, 9, 0, 0,
25695 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 352,
25696 - 352, 352, 369, 369, 369, 369, 369, 369, 369, 369,
25697 - 369, 369, 369, 369, 0, 0, 0, 0, 0, 0,
25698 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25699 - 0, 0, 0, 0, 0, 0, 0, 369, 369, 369,
25700 - 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
25701 - 418, 418, 0, 0, 0, 0, 0, 0, 0, 0,
25702 -
25703 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25704 - 0, 0, 0, 0, 0, 418, 418, 418, 445, 445,
25705 - 445, 445, 445, 445, 445, 445, 445, 446, 446, 446,
25706 - 446, 446, 446, 446, 446, 446, 447, 447, 447, 447,
25707 - 447, 447, 447, 447, 447, 448, 448, 448, 448, 448,
25708 - 448, 448, 448, 448, 449, 449, 449, 449, 449, 449,
25709 - 449, 449, 449, 450, 450, 0, 450, 451, 451, 451,
25710 - 451, 451, 451, 451, 451, 451, 452, 452, 452, 452,
25711 - 452, 452, 452, 452, 452, 453, 453, 453, 453, 453,
25712 - 453, 453, 453, 453, 454, 454, 454, 454, 454, 454,
25713 -
25714 - 454, 0, 454, 455, 0, 0, 0, 0, 0, 0,
25715 - 455, 456, 456, 0, 456, 0, 456, 456, 456, 456,
25716 - 457, 457, 457, 457, 457, 457, 457, 457, 457, 458,
25717 - 458, 0, 458, 0, 458, 458, 458, 458, 459, 459,
25718 - 0, 459, 0, 459, 459, 459, 459, 460, 460, 0,
25719 - 460, 0, 460, 460, 460, 460, 461, 461, 0, 461,
25720 - 0, 461, 461, 461, 461, 462, 462, 462, 462, 462,
25721 - 0, 0, 462, 463, 463, 0, 463, 0, 463, 463,
25722 - 463, 463, 464, 464, 464, 464, 464, 0, 0, 464,
25723 - 465, 465, 465, 465, 465, 0, 0, 465, 466, 466,
25724 -
25725 - 466, 466, 466, 0, 0, 466, 467, 467, 467, 467,
25726 - 467, 0, 0, 467, 468, 468, 0, 468, 0, 468,
25727 - 468, 468, 468, 469, 469, 469, 469, 469, 0, 0,
25728 - 469, 470, 470, 0, 470, 0, 470, 470, 470, 470,
25729 - 471, 471, 0, 471, 0, 471, 471, 471, 471, 472,
25730 - 472, 472, 472, 472, 0, 0, 472, 473, 473, 473,
25731 - 473, 473, 0, 0, 473, 474, 474, 0, 474, 0,
25732 - 474, 474, 474, 474, 475, 475, 0, 475, 0, 475,
25733 - 475, 475, 475, 476, 476, 0, 476, 0, 476, 476,
25734 - 476, 476, 477, 477, 0, 477, 0, 477, 477, 477,
25735 -
25736 - 477, 478, 478, 0, 0, 0, 478, 0, 478, 479,
25737 - 479, 0, 479, 0, 479, 479, 479, 479, 480, 480,
25738 - 480, 0, 480, 480, 0, 480, 481, 481, 0, 481,
25739 - 0, 481, 481, 481, 481, 482, 482, 482, 482, 482,
25740 - 0, 0, 482, 444, 444, 444, 444, 444, 444, 444,
25741 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25742 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25743 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25744 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25745 - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
25746 -
25747 - 444, 444, 444, 444, 444, 444
25748 - } ;
25749 -
25750 -static yy_state_type yy_last_accepting_state;
25751 -static char *yy_last_accepting_cpos;
25752 -
25753 -extern int yy_flex_debug;
25754 -int yy_flex_debug = 0;
25755 -
25756 -/* The intent behind this definition is that it'll catch
25757 - * any uses of REJECT which flex missed.
25758 - */
25759 -#define REJECT reject_used_but_not_detected
25760 -#define yymore() yymore_used_but_not_detected
25761 -#define YY_MORE_ADJ 0
25762 -#define YY_RESTORE_YY_MORE_OFFSET
25763 -char *yytext;
25764 -#line 1 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
25765 -/* -*- indented-text -*- */
25766 -/* Process source files and output type information.
25767 - Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
25768 - Free Software Foundation, Inc.
25769 -
25770 -This file is part of GCC.
25771 -
25772 -GCC is free software; you can redistribute it and/or modify it under
25773 -the terms of the GNU General Public License as published by the Free
25774 -Software Foundation; either version 3, or (at your option) any later
25775 -version.
25776 -
25777 -GCC is distributed in the hope that it will be useful, but WITHOUT ANY
25778 -WARRANTY; without even the implied warranty of MERCHANTABILITY or
25779 -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
25780 -for more details.
25781 -
25782 -You should have received a copy of the GNU General Public License
25783 -along with GCC; see the file COPYING3. If not see
25784 -<http://www.gnu.org/licenses/>. */
25785 -#line 23 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
25786 -#include "bconfig.h"
25787 -#include "system.h"
25788 -
25789 -#define malloc xmalloc
25790 -#define realloc xrealloc
25791 -
25792 -#include "gengtype.h"
25793 -
25794 -#define YY_NO_INPUT
25795 -#define YY_DECL int yylex (const char **yylval)
25796 -#define yyterminate() return EOF_TOKEN
25797 -
25798 -struct fileloc lexer_line;
25799 -int lexer_toplevel_done;
25800 -
25801 -static void
25802 -update_lineno (const char *l, size_t len)
25803 -{
25804 - while (len-- > 0)
25805 - if (*l++ == '\n')
25806 - lexer_line.line++;
25807 -}
25808 -
25809 -
25810 -#line 986 "gengtype-lex.c"
25811 -
25812 -#define INITIAL 0
25813 -#define in_struct 1
25814 -#define in_struct_comment 2
25815 -#define in_comment 3
25816 -
25817 -#ifndef YY_NO_UNISTD_H
25818 -/* Special case for "unistd.h", since it is non-ANSI. We include it way
25819 - * down here because we want the user's section 1 to have been scanned first.
25820 - * The user has a chance to override it with an option.
25821 - */
25822 -#include <unistd.h>
25823 -#endif
25824 -
25825 -#ifndef YY_EXTRA_TYPE
25826 -#define YY_EXTRA_TYPE void *
25827 -#endif
25828 -
25829 -static int yy_init_globals (void );
25830 -
25831 -/* Accessor methods to globals.
25832 - These are made visible to non-reentrant scanners for convenience. */
25833 -
25834 -int yylex_destroy (void );
25835 -
25836 -int yyget_debug (void );
25837 -
25838 -void yyset_debug (int debug_flag );
25839 -
25840 -YY_EXTRA_TYPE yyget_extra (void );
25841 -
25842 -void yyset_extra (YY_EXTRA_TYPE user_defined );
25843 -
25844 -FILE *yyget_in (void );
25845 -
25846 -void yyset_in (FILE * in_str );
25847 -
25848 -FILE *yyget_out (void );
25849 -
25850 -void yyset_out (FILE * out_str );
25851 -
25852 -int yyget_leng (void );
25853 -
25854 -char *yyget_text (void );
25855 -
25856 -int yyget_lineno (void );
25857 -
25858 -void yyset_lineno (int line_number );
25859 -
25860 -/* Macros after this point can all be overridden by user definitions in
25861 - * section 1.
25862 - */
25863 -
25864 -#ifndef YY_SKIP_YYWRAP
25865 -#ifdef __cplusplus
25866 -extern "C" int yywrap (void );
25867 -#else
25868 -extern int yywrap (void );
25869 -#endif
25870 -#endif
25871 -
25872 -#ifndef yytext_ptr
25873 -static void yy_flex_strncpy (char *,yyconst char *,int );
25874 -#endif
25875 -
25876 -#ifdef YY_NEED_STRLEN
25877 -static int yy_flex_strlen (yyconst char * );
25878 -#endif
25879 -
25880 -#ifndef YY_NO_INPUT
25881 -
25882 -#ifdef __cplusplus
25883 -static int yyinput (void );
25884 -#else
25885 -static int input (void );
25886 -#endif
25887 -
25888 -#endif
25889 -
25890 -/* Amount of stuff to slurp up with each read. */
25891 -#ifndef YY_READ_BUF_SIZE
25892 -#define YY_READ_BUF_SIZE 8192
25893 -#endif
25894 -
25895 -/* Copy whatever the last rule matched to the standard output. */
25896 -#ifndef ECHO
25897 -/* This used to be an fputs(), but since the string might contain NUL's,
25898 - * we now use fwrite().
25899 - */
25900 -#define ECHO fwrite( yytext, yyleng, 1, yyout )
25901 -#endif
25902 -
25903 -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
25904 - * is returned in "result".
25905 - */
25906 -#ifndef YY_INPUT
25907 -#define YY_INPUT(buf,result,max_size) \
25908 - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
25909 - { \
25910 - int c = '*'; \
25911 - unsigned n; \
25912 - for ( n = 0; n < max_size && \
25913 - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
25914 - buf[n] = (char) c; \
25915 - if ( c == '\n' ) \
25916 - buf[n++] = (char) c; \
25917 - if ( c == EOF && ferror( yyin ) ) \
25918 - YY_FATAL_ERROR( "input in flex scanner failed" ); \
25919 - result = n; \
25920 - } \
25921 - else \
25922 - { \
25923 - errno=0; \
25924 - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
25925 - { \
25926 - if( errno != EINTR) \
25927 - { \
25928 - YY_FATAL_ERROR( "input in flex scanner failed" ); \
25929 - break; \
25930 - } \
25931 - errno=0; \
25932 - clearerr(yyin); \
25933 - } \
25934 - }\
25935 -\
25936 -
25937 -#endif
25938 -
25939 -/* No semi-colon after return; correct usage is to write "yyterminate();" -
25940 - * we don't want an extra ';' after the "return" because that will cause
25941 - * some compilers to complain about unreachable statements.
25942 - */
25943 -#ifndef yyterminate
25944 -#define yyterminate() return YY_NULL
25945 -#endif
25946 -
25947 -/* Number of entries by which start-condition stack grows. */
25948 -#ifndef YY_START_STACK_INCR
25949 -#define YY_START_STACK_INCR 25
25950 -#endif
25951 -
25952 -/* Report a fatal error. */
25953 -#ifndef YY_FATAL_ERROR
25954 -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
25955 -#endif
25956 -
25957 -/* end tables serialization structures and prototypes */
25958 -
25959 -/* Default declaration of generated scanner - a define so the user can
25960 - * easily add parameters.
25961 - */
25962 -#ifndef YY_DECL
25963 -#define YY_DECL_IS_OURS 1
25964 -
25965 -extern int yylex (void);
25966 -
25967 -#define YY_DECL int yylex (void)
25968 -#endif /* !YY_DECL */
25969 -
25970 -/* Code executed at the beginning of each rule, after yytext and yyleng
25971 - * have been set up.
25972 - */
25973 -#ifndef YY_USER_ACTION
25974 -#define YY_USER_ACTION
25975 -#endif
25976 -
25977 -/* Code executed at the end of each rule. */
25978 -#ifndef YY_BREAK
25979 -#define YY_BREAK break;
25980 -#endif
25981 -
25982 -#define YY_RULE_SETUP \
25983 - if ( yyleng > 0 ) \
25984 - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
25985 - (yytext[yyleng - 1] == '\n'); \
25986 - YY_USER_ACTION
25987 -
25988 -/** The main scanner function which does all the work.
25989 - */
25990 -YY_DECL
25991 -{
25992 - register yy_state_type yy_current_state;
25993 - register char *yy_cp, *yy_bp;
25994 - register int yy_act;
25995 -
25996 -#line 58 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
25997 -
25998 - /* Do this on entry to yylex(): */
25999 - *yylval = 0;
26000 - if (lexer_toplevel_done)
26001 - {
26002 - BEGIN(INITIAL);
26003 - lexer_toplevel_done = 0;
26004 - }
26005 -
26006 - /* Things we look for in skipping mode: */
26007 -#line 1183 "gengtype-lex.c"
26008 -
26009 - if ( !(yy_init) )
26010 - {
26011 - (yy_init) = 1;
26012 -
26013 -#ifdef YY_USER_INIT
26014 - YY_USER_INIT;
26015 -#endif
26016 -
26017 - if ( ! (yy_start) )
26018 - (yy_start) = 1; /* first start state */
26019 -
26020 - if ( ! yyin )
26021 - yyin = stdin;
26022 -
26023 - if ( ! yyout )
26024 - yyout = stdout;
26025 -
26026 - if ( ! YY_CURRENT_BUFFER ) {
26027 - yyensure_buffer_stack ();
26028 - YY_CURRENT_BUFFER_LVALUE =
26029 - yy_create_buffer(yyin,YY_BUF_SIZE );
26030 - }
26031 -
26032 - yy_load_buffer_state( );
26033 - }
26034 -
26035 - while ( 1 ) /* loops until end-of-file is reached */
26036 - {
26037 - yy_cp = (yy_c_buf_p);
26038 -
26039 - /* Support of yytext. */
26040 - *yy_cp = (yy_hold_char);
26041 -
26042 - /* yy_bp points to the position in yy_ch_buf of the start of
26043 - * the current run.
26044 - */
26045 - yy_bp = yy_cp;
26046 -
26047 - yy_current_state = (yy_start);
26048 - yy_current_state += YY_AT_BOL();
26049 -yy_match:
26050 - do
26051 - {
26052 - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
26053 - if ( yy_accept[yy_current_state] )
26054 - {
26055 - (yy_last_accepting_state) = yy_current_state;
26056 - (yy_last_accepting_cpos) = yy_cp;
26057 - }
26058 - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
26059 - {
26060 - yy_current_state = (int) yy_def[yy_current_state];
26061 - if ( yy_current_state >= 445 )
26062 - yy_c = yy_meta[(unsigned int) yy_c];
26063 - }
26064 - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
26065 - ++yy_cp;
26066 - }
26067 - while ( yy_current_state != 444 );
26068 - yy_cp = (yy_last_accepting_cpos);
26069 - yy_current_state = (yy_last_accepting_state);
26070 -
26071 -yy_find_action:
26072 - yy_act = yy_accept[yy_current_state];
26073 -
26074 - YY_DO_BEFORE_ACTION;
26075 -
26076 -do_action: /* This label is used only to access EOF actions. */
26077 -
26078 - switch ( yy_act )
26079 - { /* beginning of action switch */
26080 - case 0: /* must back up */
26081 - /* undo the effects of YY_DO_BEFORE_ACTION */
26082 - *yy_cp = (yy_hold_char);
26083 - yy_cp = (yy_last_accepting_cpos);
26084 - yy_current_state = (yy_last_accepting_state);
26085 - goto yy_find_action;
26086 -
26087 -case 1:
26088 -/* rule 1 can match eol */
26089 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26090 -(yy_c_buf_p) = yy_cp -= 1;
26091 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26092 -YY_RULE_SETUP
26093 -#line 69 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26094 -{
26095 - BEGIN(in_struct);
26096 - return TYPEDEF;
26097 -}
26098 - YY_BREAK
26099 -case 2:
26100 -/* rule 2 can match eol */
26101 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26102 -(yy_c_buf_p) = yy_cp -= 1;
26103 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26104 -YY_RULE_SETUP
26105 -#line 73 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26106 -{
26107 - BEGIN(in_struct);
26108 - return STRUCT;
26109 -}
26110 - YY_BREAK
26111 -case 3:
26112 -/* rule 3 can match eol */
26113 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26114 -(yy_c_buf_p) = yy_cp -= 1;
26115 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26116 -YY_RULE_SETUP
26117 -#line 77 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26118 -{
26119 - BEGIN(in_struct);
26120 - return UNION;
26121 -}
26122 - YY_BREAK
26123 -case 4:
26124 -/* rule 4 can match eol */
26125 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26126 -(yy_c_buf_p) = yy_cp -= 1;
26127 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26128 -YY_RULE_SETUP
26129 -#line 81 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26130 -{
26131 - BEGIN(in_struct);
26132 - return EXTERN;
26133 -}
26134 - YY_BREAK
26135 -case 5:
26136 -/* rule 5 can match eol */
26137 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26138 -(yy_c_buf_p) = yy_cp -= 1;
26139 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26140 -YY_RULE_SETUP
26141 -#line 85 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26142 -{
26143 - BEGIN(in_struct);
26144 - return STATIC;
26145 -}
26146 - YY_BREAK
26147 -case 6:
26148 -/* rule 6 can match eol */
26149 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26150 -(yy_c_buf_p) = yy_cp -= 1;
26151 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26152 -YY_RULE_SETUP
26153 -#line 90 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26154 -{
26155 - BEGIN(in_struct);
26156 - return DEFVEC_OP;
26157 -}
26158 - YY_BREAK
26159 -case 7:
26160 -/* rule 7 can match eol */
26161 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26162 -(yy_c_buf_p) = yy_cp -= 1;
26163 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26164 -YY_RULE_SETUP
26165 -#line 94 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26166 -{
26167 - BEGIN(in_struct);
26168 - return DEFVEC_I;
26169 -}
26170 - YY_BREAK
26171 -case 8:
26172 -/* rule 8 can match eol */
26173 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26174 -(yy_c_buf_p) = yy_cp -= 1;
26175 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26176 -YY_RULE_SETUP
26177 -#line 98 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26178 -{
26179 - BEGIN(in_struct);
26180 - return DEFVEC_ALLOC;
26181 -}
26182 - YY_BREAK
26183 -
26184 -
26185 -case 9:
26186 -YY_RULE_SETUP
26187 -#line 106 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26188 -{ BEGIN(in_struct_comment); }
26189 - YY_BREAK
26190 -case 10:
26191 -/* rule 10 can match eol */
26192 -YY_RULE_SETUP
26193 -#line 108 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26194 -{ update_lineno (yytext, yyleng); }
26195 - YY_BREAK
26196 -case 11:
26197 -/* rule 11 can match eol */
26198 -YY_RULE_SETUP
26199 -#line 109 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26200 -{ lexer_line.line++; }
26201 - YY_BREAK
26202 -case 12:
26203 -/* rule 12 can match eol */
26204 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26205 -(yy_c_buf_p) = yy_cp = yy_bp + 5;
26206 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26207 -YY_RULE_SETUP
26208 -#line 111 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26209 -/* don't care */
26210 - YY_BREAK
26211 -case 13:
26212 -/* rule 13 can match eol */
26213 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26214 -(yy_c_buf_p) = yy_cp = yy_bp + 3;
26215 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26216 -YY_RULE_SETUP
26217 -#line 112 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26218 -{ return GTY_TOKEN; }
26219 - YY_BREAK
26220 -case 14:
26221 -/* rule 14 can match eol */
26222 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26223 -(yy_c_buf_p) = yy_cp = yy_bp + 3;
26224 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26225 -YY_RULE_SETUP
26226 -#line 113 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26227 -{ return VEC_TOKEN; }
26228 - YY_BREAK
26229 -case 15:
26230 -/* rule 15 can match eol */
26231 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26232 -(yy_c_buf_p) = yy_cp = yy_bp + 5;
26233 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26234 -YY_RULE_SETUP
26235 -#line 114 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26236 -{ return UNION; }
26237 - YY_BREAK
26238 -case 16:
26239 -/* rule 16 can match eol */
26240 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26241 -(yy_c_buf_p) = yy_cp = yy_bp + 6;
26242 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26243 -YY_RULE_SETUP
26244 -#line 115 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26245 -{ return STRUCT; }
26246 - YY_BREAK
26247 -case 17:
26248 -/* rule 17 can match eol */
26249 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26250 -(yy_c_buf_p) = yy_cp = yy_bp + 4;
26251 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26252 -YY_RULE_SETUP
26253 -#line 116 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26254 -{ return ENUM; }
26255 - YY_BREAK
26256 -case 18:
26257 -/* rule 18 can match eol */
26258 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26259 -(yy_c_buf_p) = yy_cp = yy_bp + 9;
26260 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26261 -YY_RULE_SETUP
26262 -#line 117 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26263 -{ return PTR_ALIAS; }
26264 - YY_BREAK
26265 -case 19:
26266 -/* rule 19 can match eol */
26267 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26268 -(yy_c_buf_p) = yy_cp = yy_bp + 10;
26269 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26270 -YY_RULE_SETUP
26271 -#line 118 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26272 -{ return NESTED_PTR; }
26273 - YY_BREAK
26274 -case 20:
26275 -YY_RULE_SETUP
26276 -#line 119 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26277 -{ return NUM; }
26278 - YY_BREAK
26279 -case 21:
26280 -/* rule 21 can match eol */
26281 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26282 -(yy_c_buf_p) = yy_cp -= 1;
26283 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26284 -YY_RULE_SETUP
26285 -#line 120 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26286 -{
26287 - *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
26288 - return PARAM_IS;
26289 -}
26290 - YY_BREAK
26291 -case 22:
26292 -/* rule 22 can match eol */
26293 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26294 -(yy_c_buf_p) = yy_cp -= 1;
26295 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26296 -#line 126 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26297 -case 23:
26298 -/* rule 23 can match eol */
26299 -YY_RULE_SETUP
26300 -#line 126 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26301 -{
26302 - size_t len;
26303 -
26304 - for (len = yyleng; ISSPACE (yytext[len-1]); len--)
26305 - ;
26306 -
26307 - *yylval = XDUPVAR (const char, yytext, len, len+1);
26308 - update_lineno (yytext, yyleng);
26309 - return SCALAR;
26310 -}
26311 - YY_BREAK
26312 -case 24:
26313 -/* rule 24 can match eol */
26314 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26315 -(yy_c_buf_p) = yy_cp -= 1;
26316 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26317 -YY_RULE_SETUP
26318 -#line 138 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26319 -{
26320 - *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
26321 - return ID;
26322 -}
26323 - YY_BREAK
26324 -case 25:
26325 -/* rule 25 can match eol */
26326 -YY_RULE_SETUP
26327 -#line 143 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26328 -{
26329 - *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
26330 - return STRING;
26331 -}
26332 - YY_BREAK
26333 -/* This "terminal" avoids having to parse integer constant expressions. */
26334 -case 26:
26335 -/* rule 26 can match eol */
26336 -YY_RULE_SETUP
26337 -#line 148 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26338 -{
26339 - *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
26340 - return ARRAY;
26341 -}
26342 - YY_BREAK
26343 -case 27:
26344 -/* rule 27 can match eol */
26345 -YY_RULE_SETUP
26346 -#line 152 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26347 -{
26348 - *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
26349 - return CHAR;
26350 -}
26351 - YY_BREAK
26352 -case 28:
26353 -YY_RULE_SETUP
26354 -#line 157 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26355 -{ return ELLIPSIS; }
26356 - YY_BREAK
26357 -case 29:
26358 -YY_RULE_SETUP
26359 -#line 158 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26360 -{ return yytext[0]; }
26361 - YY_BREAK
26362 -/* ignore pp-directives */
26363 -case 30:
26364 -/* rule 30 can match eol */
26365 -YY_RULE_SETUP
26366 -#line 161 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26367 -{lexer_line.line++;}
26368 - YY_BREAK
26369 -case 31:
26370 -YY_RULE_SETUP
26371 -#line 163 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26372 -{
26373 - error_at_line (&lexer_line, "unexpected character `%s'", yytext);
26374 -}
26375 - YY_BREAK
26376 -
26377 -case 32:
26378 -YY_RULE_SETUP
26379 -#line 168 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26380 -{ BEGIN(in_comment); }
26381 - YY_BREAK
26382 -case 33:
26383 -/* rule 33 can match eol */
26384 -YY_RULE_SETUP
26385 -#line 169 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26386 -{ lexer_line.line++; }
26387 - YY_BREAK
26388 -case 34:
26389 -#line 171 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26390 -case 35:
26391 -/* rule 35 can match eol */
26392 -#line 172 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26393 -case 36:
26394 -/* rule 36 can match eol */
26395 -YY_RULE_SETUP
26396 -#line 172 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26397 -/* do nothing */
26398 - YY_BREAK
26399 -case 37:
26400 -/* rule 37 can match eol */
26401 -YY_RULE_SETUP
26402 -#line 173 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26403 -{ update_lineno (yytext, yyleng); }
26404 - YY_BREAK
26405 -case 38:
26406 -/* rule 38 can match eol */
26407 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26408 -(yy_c_buf_p) = yy_cp = yy_bp + 1;
26409 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26410 -YY_RULE_SETUP
26411 -#line 174 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26412 -/* do nothing */
26413 - YY_BREAK
26414 -
26415 -case 39:
26416 -/* rule 39 can match eol */
26417 -YY_RULE_SETUP
26418 -#line 177 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26419 -{ lexer_line.line++; }
26420 - YY_BREAK
26421 -case 40:
26422 -#line 179 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26423 -case 41:
26424 -YY_RULE_SETUP
26425 -#line 179 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26426 -/* do nothing */
26427 - YY_BREAK
26428 -case 42:
26429 -/* rule 42 can match eol */
26430 -*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
26431 -(yy_c_buf_p) = yy_cp = yy_bp + 1;
26432 -YY_DO_BEFORE_ACTION; /* set up yytext again */
26433 -YY_RULE_SETUP
26434 -#line 180 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26435 -/* do nothing */
26436 - YY_BREAK
26437 -
26438 -case 43:
26439 -YY_RULE_SETUP
26440 -#line 182 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26441 -{ BEGIN(INITIAL); }
26442 - YY_BREAK
26443 -case 44:
26444 -YY_RULE_SETUP
26445 -#line 183 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26446 -{ BEGIN(in_struct); }
26447 - YY_BREAK
26448 -case 45:
26449 -#line 186 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26450 -case 46:
26451 -YY_RULE_SETUP
26452 -#line 186 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26453 -{
26454 - error_at_line (&lexer_line,
26455 - "unterminated comment or string; unexpected EOF");
26456 -}
26457 - YY_BREAK
26458 -case 47:
26459 -/* rule 47 can match eol */
26460 -YY_RULE_SETUP
26461 -#line 191 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26462 -/* do nothing */
26463 - YY_BREAK
26464 -case 48:
26465 -/* rule 48 can match eol */
26466 -YY_RULE_SETUP
26467 -#line 192 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26468 -{
26469 - error_at_line (&lexer_line, "stray GTY marker");
26470 -}
26471 - YY_BREAK
26472 -case 49:
26473 -YY_RULE_SETUP
26474 -#line 196 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
26475 -YY_FATAL_ERROR( "flex scanner jammed" );
26476 - YY_BREAK
26477 -#line 1653 "gengtype-lex.c"
26478 -case YY_STATE_EOF(INITIAL):
26479 -case YY_STATE_EOF(in_struct):
26480 -case YY_STATE_EOF(in_struct_comment):
26481 -case YY_STATE_EOF(in_comment):
26482 - yyterminate();
26483 -
26484 - case YY_END_OF_BUFFER:
26485 - {
26486 - /* Amount of text matched not including the EOB char. */
26487 - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
26488 -
26489 - /* Undo the effects of YY_DO_BEFORE_ACTION. */
26490 - *yy_cp = (yy_hold_char);
26491 - YY_RESTORE_YY_MORE_OFFSET
26492 -
26493 - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
26494 - {
26495 - /* We're scanning a new file or input source. It's
26496 - * possible that this happened because the user
26497 - * just pointed yyin at a new source and called
26498 - * yylex(). If so, then we have to assure
26499 - * consistency between YY_CURRENT_BUFFER and our
26500 - * globals. Here is the right place to do so, because
26501 - * this is the first action (other than possibly a
26502 - * back-up) that will match for the new input source.
26503 - */
26504 - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
26505 - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
26506 - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
26507 - }
26508 -
26509 - /* Note that here we test for yy_c_buf_p "<=" to the position
26510 - * of the first EOB in the buffer, since yy_c_buf_p will
26511 - * already have been incremented past the NUL character
26512 - * (since all states make transitions on EOB to the
26513 - * end-of-buffer state). Contrast this with the test
26514 - * in input().
26515 - */
26516 - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
26517 - { /* This was really a NUL. */
26518 - yy_state_type yy_next_state;
26519 -
26520 - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
26521 -
26522 - yy_current_state = yy_get_previous_state( );
26523 -
26524 - /* Okay, we're now positioned to make the NUL
26525 - * transition. We couldn't have
26526 - * yy_get_previous_state() go ahead and do it
26527 - * for us because it doesn't know how to deal
26528 - * with the possibility of jamming (and we don't
26529 - * want to build jamming into it because then it
26530 - * will run more slowly).
26531 - */
26532 -
26533 - yy_next_state = yy_try_NUL_trans( yy_current_state );
26534 -
26535 - yy_bp = (yytext_ptr) + YY_MORE_ADJ;
26536 -
26537 - if ( yy_next_state )
26538 - {
26539 - /* Consume the NUL. */
26540 - yy_cp = ++(yy_c_buf_p);
26541 - yy_current_state = yy_next_state;
26542 - goto yy_match;
26543 - }
26544 -
26545 - else
26546 - {
26547 - yy_cp = (yy_last_accepting_cpos);
26548 - yy_current_state = (yy_last_accepting_state);
26549 - goto yy_find_action;
26550 - }
26551 - }
26552 -
26553 - else switch ( yy_get_next_buffer( ) )
26554 - {
26555 - case EOB_ACT_END_OF_FILE:
26556 - {
26557 - (yy_did_buffer_switch_on_eof) = 0;
26558 -
26559 - if ( yywrap( ) )
26560 - {
26561 - /* Note: because we've taken care in
26562 - * yy_get_next_buffer() to have set up
26563 - * yytext, we can now set up
26564 - * yy_c_buf_p so that if some total
26565 - * hoser (like flex itself) wants to
26566 - * call the scanner after we return the
26567 - * YY_NULL, it'll still work - another
26568 - * YY_NULL will get returned.
26569 - */
26570 - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
26571 -
26572 - yy_act = YY_STATE_EOF(YY_START);
26573 - goto do_action;
26574 - }
26575 -
26576 - else
26577 - {
26578 - if ( ! (yy_did_buffer_switch_on_eof) )
26579 - YY_NEW_FILE;
26580 - }
26581 - break;
26582 - }
26583 -
26584 - case EOB_ACT_CONTINUE_SCAN:
26585 - (yy_c_buf_p) =
26586 - (yytext_ptr) + yy_amount_of_matched_text;
26587 -
26588 - yy_current_state = yy_get_previous_state( );
26589 -
26590 - yy_cp = (yy_c_buf_p);
26591 - yy_bp = (yytext_ptr) + YY_MORE_ADJ;
26592 - goto yy_match;
26593 -
26594 - case EOB_ACT_LAST_MATCH:
26595 - (yy_c_buf_p) =
26596 - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
26597 -
26598 - yy_current_state = yy_get_previous_state( );
26599 -
26600 - yy_cp = (yy_c_buf_p);
26601 - yy_bp = (yytext_ptr) + YY_MORE_ADJ;
26602 - goto yy_find_action;
26603 - }
26604 - break;
26605 - }
26606 -
26607 - default:
26608 - YY_FATAL_ERROR(
26609 - "fatal flex scanner internal error--no action found" );
26610 - } /* end of action switch */
26611 - } /* end of scanning one token */
26612 -} /* end of yylex */
26613 -
26614 -/* yy_get_next_buffer - try to read in a new buffer
26615 - *
26616 - * Returns a code representing an action:
26617 - * EOB_ACT_LAST_MATCH -
26618 - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
26619 - * EOB_ACT_END_OF_FILE - end of file
26620 - */
26621 -static int yy_get_next_buffer (void)
26622 -{
26623 - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
26624 - register char *source = (yytext_ptr);
26625 - register int number_to_move, i;
26626 - int ret_val;
26627 -
26628 - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
26629 - YY_FATAL_ERROR(
26630 - "fatal flex scanner internal error--end of buffer missed" );
26631 -
26632 - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
26633 - { /* Don't try to fill the buffer, so this is an EOF. */
26634 - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
26635 - {
26636 - /* We matched a single character, the EOB, so
26637 - * treat this as a final EOF.
26638 - */
26639 - return EOB_ACT_END_OF_FILE;
26640 - }
26641 -
26642 - else
26643 - {
26644 - /* We matched some text prior to the EOB, first
26645 - * process it.
26646 - */
26647 - return EOB_ACT_LAST_MATCH;
26648 - }
26649 - }
26650 -
26651 - /* Try to read more data. */
26652 -
26653 - /* First move last chars to start of buffer. */
26654 - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
26655 -
26656 - for ( i = 0; i < number_to_move; ++i )
26657 - *(dest++) = *(source++);
26658 -
26659 - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
26660 - /* don't do the read, it's not guaranteed to return an EOF,
26661 - * just force an EOF
26662 - */
26663 - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
26664 -
26665 - else
26666 - {
26667 - int num_to_read =
26668 - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
26669 -
26670 - while ( num_to_read <= 0 )
26671 - { /* Not enough room in the buffer - grow it. */
26672 -
26673 - /* just a shorter name for the current buffer */
26674 - YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
26675 -
26676 - int yy_c_buf_p_offset =
26677 - (int) ((yy_c_buf_p) - b->yy_ch_buf);
26678 -
26679 - if ( b->yy_is_our_buffer )
26680 - {
26681 - int new_size = b->yy_buf_size * 2;
26682 -
26683 - if ( new_size <= 0 )
26684 - b->yy_buf_size += b->yy_buf_size / 8;
26685 - else
26686 - b->yy_buf_size *= 2;
26687 -
26688 - b->yy_ch_buf = (char *)
26689 - /* Include room in for 2 EOB chars. */
26690 - yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
26691 - }
26692 - else
26693 - /* Can't grow it, we don't own it. */
26694 - b->yy_ch_buf = 0;
26695 -
26696 - if ( ! b->yy_ch_buf )
26697 - YY_FATAL_ERROR(
26698 - "fatal error - scanner input buffer overflow" );
26699 -
26700 - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
26701 -
26702 - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
26703 - number_to_move - 1;
26704 -
26705 - }
26706 -
26707 - if ( num_to_read > YY_READ_BUF_SIZE )
26708 - num_to_read = YY_READ_BUF_SIZE;
26709 -
26710 - /* Read in more data. */
26711 - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
26712 - (yy_n_chars), (size_t) num_to_read );
26713 -
26714 - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
26715 - }
26716 -
26717 - if ( (yy_n_chars) == 0 )
26718 - {
26719 - if ( number_to_move == YY_MORE_ADJ )
26720 - {
26721 - ret_val = EOB_ACT_END_OF_FILE;
26722 - yyrestart(yyin );
26723 - }
26724 -
26725 - else
26726 - {
26727 - ret_val = EOB_ACT_LAST_MATCH;
26728 - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
26729 - YY_BUFFER_EOF_PENDING;
26730 - }
26731 - }
26732 -
26733 - else
26734 - ret_val = EOB_ACT_CONTINUE_SCAN;
26735 -
26736 - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
26737 - /* Extend the array by 50%, plus the number we really need. */
26738 - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
26739 - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
26740 - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
26741 - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
26742 - }
26743 -
26744 - (yy_n_chars) += number_to_move;
26745 - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
26746 - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
26747 -
26748 - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
26749 -
26750 - return ret_val;
26751 -}
26752 -
26753 -/* yy_get_previous_state - get the state just before the EOB char was reached */
26754 -
26755 - static yy_state_type yy_get_previous_state (void)
26756 -{
26757 - register yy_state_type yy_current_state;
26758 - register char *yy_cp;
26759 -
26760 - yy_current_state = (yy_start);
26761 - yy_current_state += YY_AT_BOL();
26762 -
26763 - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
26764 - {
26765 - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
26766 - if ( yy_accept[yy_current_state] )
26767 - {
26768 - (yy_last_accepting_state) = yy_current_state;
26769 - (yy_last_accepting_cpos) = yy_cp;
26770 - }
26771 - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
26772 - {
26773 - yy_current_state = (int) yy_def[yy_current_state];
26774 - if ( yy_current_state >= 445 )
26775 - yy_c = yy_meta[(unsigned int) yy_c];
26776 - }
26777 - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
26778 - }
26779 -
26780 - return yy_current_state;
26781 -}
26782 -
26783 -/* yy_try_NUL_trans - try to make a transition on the NUL character
26784 - *
26785 - * synopsis
26786 - * next_state = yy_try_NUL_trans( current_state );
26787 - */
26788 - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
26789 -{
26790 - register int yy_is_jam;
26791 - register char *yy_cp = (yy_c_buf_p);
26792 -
26793 - register YY_CHAR yy_c = 1;
26794 - if ( yy_accept[yy_current_state] )
26795 - {
26796 - (yy_last_accepting_state) = yy_current_state;
26797 - (yy_last_accepting_cpos) = yy_cp;
26798 - }
26799 - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
26800 - {
26801 - yy_current_state = (int) yy_def[yy_current_state];
26802 - if ( yy_current_state >= 445 )
26803 - yy_c = yy_meta[(unsigned int) yy_c];
26804 - }
26805 - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
26806 - yy_is_jam = (yy_current_state == 444);
26807 -
26808 - return yy_is_jam ? 0 : yy_current_state;
26809 -}
26810 -
26811 -#ifndef YY_NO_INPUT
26812 -#ifdef __cplusplus
26813 - static int yyinput (void)
26814 -#else
26815 - static int input (void)
26816 -#endif
26817 -
26818 -{
26819 - int c;
26820 -
26821 - *(yy_c_buf_p) = (yy_hold_char);
26822 -
26823 - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
26824 - {
26825 - /* yy_c_buf_p now points to the character we want to return.
26826 - * If this occurs *before* the EOB characters, then it's a
26827 - * valid NUL; if not, then we've hit the end of the buffer.
26828 - */
26829 - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
26830 - /* This was really a NUL. */
26831 - *(yy_c_buf_p) = '\0';
26832 -
26833 - else
26834 - { /* need more input */
26835 - int offset = (yy_c_buf_p) - (yytext_ptr);
26836 - ++(yy_c_buf_p);
26837 -
26838 - switch ( yy_get_next_buffer( ) )
26839 - {
26840 - case EOB_ACT_LAST_MATCH:
26841 - /* This happens because yy_g_n_b()
26842 - * sees that we've accumulated a
26843 - * token and flags that we need to
26844 - * try matching the token before
26845 - * proceeding. But for input(),
26846 - * there's no matching to consider.
26847 - * So convert the EOB_ACT_LAST_MATCH
26848 - * to EOB_ACT_END_OF_FILE.
26849 - */
26850 -
26851 - /* Reset buffer status. */
26852 - yyrestart(yyin );
26853 -
26854 - /*FALLTHROUGH*/
26855 -
26856 - case EOB_ACT_END_OF_FILE:
26857 - {
26858 - if ( yywrap( ) )
26859 - return EOF;
26860 -
26861 - if ( ! (yy_did_buffer_switch_on_eof) )
26862 - YY_NEW_FILE;
26863 -#ifdef __cplusplus
26864 - return yyinput();
26865 -#else
26866 - return input();
26867 -#endif
26868 - }
26869 -
26870 - case EOB_ACT_CONTINUE_SCAN:
26871 - (yy_c_buf_p) = (yytext_ptr) + offset;
26872 - break;
26873 - }
26874 - }
26875 - }
26876 -
26877 - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
26878 - *(yy_c_buf_p) = '\0'; /* preserve yytext */
26879 - (yy_hold_char) = *++(yy_c_buf_p);
26880 -
26881 - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
26882 -
26883 - return c;
26884 -}
26885 -#endif /* ifndef YY_NO_INPUT */
26886 -
26887 -/** Immediately switch to a different input stream.
26888 - * @param input_file A readable stream.
26889 - *
26890 - * @note This function does not reset the start condition to @c INITIAL .
26891 - */
26892 - void yyrestart (FILE * input_file )
26893 -{
26894 -
26895 - if ( ! YY_CURRENT_BUFFER ){
26896 - yyensure_buffer_stack ();
26897 - YY_CURRENT_BUFFER_LVALUE =
26898 - yy_create_buffer(yyin,YY_BUF_SIZE );
26899 - }
26900 -
26901 - yy_init_buffer(YY_CURRENT_BUFFER,input_file );
26902 - yy_load_buffer_state( );
26903 -}
26904 -
26905 -/** Switch to a different input buffer.
26906 - * @param new_buffer The new input buffer.
26907 - *
26908 - */
26909 - void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
26910 -{
26911 -
26912 - /* TODO. We should be able to replace this entire function body
26913 - * with
26914 - * yypop_buffer_state();
26915 - * yypush_buffer_state(new_buffer);
26916 - */
26917 - yyensure_buffer_stack ();
26918 - if ( YY_CURRENT_BUFFER == new_buffer )
26919 - return;
26920 -
26921 - if ( YY_CURRENT_BUFFER )
26922 - {
26923 - /* Flush out information for old buffer. */
26924 - *(yy_c_buf_p) = (yy_hold_char);
26925 - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
26926 - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
26927 - }
26928 -
26929 - YY_CURRENT_BUFFER_LVALUE = new_buffer;
26930 - yy_load_buffer_state( );
26931 -
26932 - /* We don't actually know whether we did this switch during
26933 - * EOF (yywrap()) processing, but the only time this flag
26934 - * is looked at is after yywrap() is called, so it's safe
26935 - * to go ahead and always set it.
26936 - */
26937 - (yy_did_buffer_switch_on_eof) = 1;
26938 -}
26939 -
26940 -static void yy_load_buffer_state (void)
26941 -{
26942 - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
26943 - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
26944 - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
26945 - (yy_hold_char) = *(yy_c_buf_p);
26946 -}
26947 -
26948 -/** Allocate and initialize an input buffer state.
26949 - * @param file A readable stream.
26950 - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
26951 - *
26952 - * @return the allocated buffer state.
26953 - */
26954 - YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
26955 -{
26956 - YY_BUFFER_STATE b;
26957 -
26958 - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
26959 - if ( ! b )
26960 - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
26961 -
26962 - b->yy_buf_size = size;
26963 -
26964 - /* yy_ch_buf has to be 2 characters longer than the size given because
26965 - * we need to put in 2 end-of-buffer characters.
26966 - */
26967 - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
26968 - if ( ! b->yy_ch_buf )
26969 - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
26970 -
26971 - b->yy_is_our_buffer = 1;
26972 -
26973 - yy_init_buffer(b,file );
26974 -
26975 - return b;
26976 -}
26977 -
26978 -/** Destroy the buffer.
26979 - * @param b a buffer created with yy_create_buffer()
26980 - *
26981 - */
26982 - void yy_delete_buffer (YY_BUFFER_STATE b )
26983 -{
26984 -
26985 - if ( ! b )
26986 - return;
26987 -
26988 - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
26989 - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
26990 -
26991 - if ( b->yy_is_our_buffer )
26992 - yyfree((void *) b->yy_ch_buf );
26993 -
26994 - yyfree((void *) b );
26995 -}
26996 -
26997 -/* Initializes or reinitializes a buffer.
26998 - * This function is sometimes called more than once on the same buffer,
26999 - * such as during a yyrestart() or at EOF.
27000 - */
27001 - static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
27002 -
27003 -{
27004 - int oerrno = errno;
27005 -
27006 - yy_flush_buffer(b );
27007 -
27008 - b->yy_input_file = file;
27009 - b->yy_fill_buffer = 1;
27010 -
27011 - /* If b is the current buffer, then yy_init_buffer was _probably_
27012 - * called from yyrestart() or through yy_get_next_buffer.
27013 - * In that case, we don't want to reset the lineno or column.
27014 - */
27015 - if (b != YY_CURRENT_BUFFER){
27016 - b->yy_bs_lineno = 1;
27017 - b->yy_bs_column = 0;
27018 - }
27019 -
27020 - b->yy_is_interactive = 0;
27021 -
27022 - errno = oerrno;
27023 -}
27024 -
27025 -/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
27026 - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
27027 - *
27028 - */
27029 - void yy_flush_buffer (YY_BUFFER_STATE b )
27030 -{
27031 - if ( ! b )
27032 - return;
27033 -
27034 - b->yy_n_chars = 0;
27035 -
27036 - /* We always need two end-of-buffer characters. The first causes
27037 - * a transition to the end-of-buffer state. The second causes
27038 - * a jam in that state.
27039 - */
27040 - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
27041 - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
27042 -
27043 - b->yy_buf_pos = &b->yy_ch_buf[0];
27044 -
27045 - b->yy_at_bol = 1;
27046 - b->yy_buffer_status = YY_BUFFER_NEW;
27047 -
27048 - if ( b == YY_CURRENT_BUFFER )
27049 - yy_load_buffer_state( );
27050 -}
27051 -
27052 -/** Pushes the new state onto the stack. The new state becomes
27053 - * the current state. This function will allocate the stack
27054 - * if necessary.
27055 - * @param new_buffer The new state.
27056 - *
27057 - */
27058 -void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
27059 -{
27060 - if (new_buffer == NULL)
27061 - return;
27062 -
27063 - yyensure_buffer_stack();
27064 -
27065 - /* This block is copied from yy_switch_to_buffer. */
27066 - if ( YY_CURRENT_BUFFER )
27067 - {
27068 - /* Flush out information for old buffer. */
27069 - *(yy_c_buf_p) = (yy_hold_char);
27070 - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
27071 - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
27072 - }
27073 -
27074 - /* Only push if top exists. Otherwise, replace top. */
27075 - if (YY_CURRENT_BUFFER)
27076 - (yy_buffer_stack_top)++;
27077 - YY_CURRENT_BUFFER_LVALUE = new_buffer;
27078 -
27079 - /* copied from yy_switch_to_buffer. */
27080 - yy_load_buffer_state( );
27081 - (yy_did_buffer_switch_on_eof) = 1;
27082 -}
27083 -
27084 -/** Removes and deletes the top of the stack, if present.
27085 - * The next element becomes the new top.
27086 - *
27087 - */
27088 -void yypop_buffer_state (void)
27089 -{
27090 - if (!YY_CURRENT_BUFFER)
27091 - return;
27092 -
27093 - yy_delete_buffer(YY_CURRENT_BUFFER );
27094 - YY_CURRENT_BUFFER_LVALUE = NULL;
27095 - if ((yy_buffer_stack_top) > 0)
27096 - --(yy_buffer_stack_top);
27097 -
27098 - if (YY_CURRENT_BUFFER) {
27099 - yy_load_buffer_state( );
27100 - (yy_did_buffer_switch_on_eof) = 1;
27101 - }
27102 -}
27103 -
27104 -/* Allocates the stack if it does not exist.
27105 - * Guarantees space for at least one push.
27106 - */
27107 -static void yyensure_buffer_stack (void)
27108 -{
27109 - int num_to_alloc;
27110 -
27111 - if (!(yy_buffer_stack)) {
27112 -
27113 - /* First allocation is just for 2 elements, since we don't know if this
27114 - * scanner will even need a stack. We use 2 instead of 1 to avoid an
27115 - * immediate realloc on the next call.
27116 - */
27117 - num_to_alloc = 1;
27118 - (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
27119 - (num_to_alloc * sizeof(struct yy_buffer_state*)
27120 - );
27121 - if ( ! (yy_buffer_stack) )
27122 - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
27123 -
27124 - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
27125 -
27126 - (yy_buffer_stack_max) = num_to_alloc;
27127 - (yy_buffer_stack_top) = 0;
27128 - return;
27129 - }
27130 -
27131 - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
27132 -
27133 - /* Increase the buffer to prepare for a possible push. */
27134 - int grow_size = 8 /* arbitrary grow size */;
27135 -
27136 - num_to_alloc = (yy_buffer_stack_max) + grow_size;
27137 - (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
27138 - ((yy_buffer_stack),
27139 - num_to_alloc * sizeof(struct yy_buffer_state*)
27140 - );
27141 - if ( ! (yy_buffer_stack) )
27142 - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
27143 -
27144 - /* zero only the new slots.*/
27145 - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
27146 - (yy_buffer_stack_max) = num_to_alloc;
27147 - }
27148 -}
27149 -
27150 -/** Setup the input buffer state to scan directly from a user-specified character buffer.
27151 - * @param base the character buffer
27152 - * @param size the size in bytes of the character buffer
27153 - *
27154 - * @return the newly allocated buffer state object.
27155 - */
27156 -YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
27157 -{
27158 - YY_BUFFER_STATE b;
27159 -
27160 - if ( size < 2 ||
27161 - base[size-2] != YY_END_OF_BUFFER_CHAR ||
27162 - base[size-1] != YY_END_OF_BUFFER_CHAR )
27163 - /* They forgot to leave room for the EOB's. */
27164 - return 0;
27165 -
27166 - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
27167 - if ( ! b )
27168 - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
27169 -
27170 - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
27171 - b->yy_buf_pos = b->yy_ch_buf = base;
27172 - b->yy_is_our_buffer = 0;
27173 - b->yy_input_file = 0;
27174 - b->yy_n_chars = b->yy_buf_size;
27175 - b->yy_is_interactive = 0;
27176 - b->yy_at_bol = 1;
27177 - b->yy_fill_buffer = 0;
27178 - b->yy_buffer_status = YY_BUFFER_NEW;
27179 -
27180 - yy_switch_to_buffer(b );
27181 -
27182 - return b;
27183 -}
27184 -
27185 -/** Setup the input buffer state to scan a string. The next call to yylex() will
27186 - * scan from a @e copy of @a str.
27187 - * @param yystr a NUL-terminated string to scan
27188 - *
27189 - * @return the newly allocated buffer state object.
27190 - * @note If you want to scan bytes that may contain NUL values, then use
27191 - * yy_scan_bytes() instead.
27192 - */
27193 -YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
27194 -{
27195 -
27196 - return yy_scan_bytes(yystr,strlen(yystr) );
27197 -}
27198 -
27199 -/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
27200 - * scan from a @e copy of @a bytes.
27201 - * @param bytes the byte buffer to scan
27202 - * @param len the number of bytes in the buffer pointed to by @a bytes.
27203 - *
27204 - * @return the newly allocated buffer state object.
27205 - */
27206 -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
27207 -{
27208 - YY_BUFFER_STATE b;
27209 - char *buf;
27210 - yy_size_t n;
27211 - int i;
27212 -
27213 - /* Get memory for full buffer, including space for trailing EOB's. */
27214 - n = _yybytes_len + 2;
27215 - buf = (char *) yyalloc(n );
27216 - if ( ! buf )
27217 - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
27218 -
27219 - for ( i = 0; i < _yybytes_len; ++i )
27220 - buf[i] = yybytes[i];
27221 -
27222 - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
27223 -
27224 - b = yy_scan_buffer(buf,n );
27225 - if ( ! b )
27226 - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
27227 -
27228 - /* It's okay to grow etc. this buffer, and we should throw it
27229 - * away when we're done.
27230 - */
27231 - b->yy_is_our_buffer = 1;
27232 -
27233 - return b;
27234 -}
27235 -
27236 -#ifndef YY_EXIT_FAILURE
27237 -#define YY_EXIT_FAILURE 2
27238 -#endif
27239 -
27240 -static void yy_fatal_error (yyconst char* msg )
27241 -{
27242 - (void) fprintf( stderr, "%s\n", msg );
27243 - exit( YY_EXIT_FAILURE );
27244 -}
27245 -
27246 -/* Redefine yyless() so it works in section 3 code. */
27247 -
27248 -#undef yyless
27249 -#define yyless(n) \
27250 - do \
27251 - { \
27252 - /* Undo effects of setting up yytext. */ \
27253 - int yyless_macro_arg = (n); \
27254 - YY_LESS_LINENO(yyless_macro_arg);\
27255 - yytext[yyleng] = (yy_hold_char); \
27256 - (yy_c_buf_p) = yytext + yyless_macro_arg; \
27257 - (yy_hold_char) = *(yy_c_buf_p); \
27258 - *(yy_c_buf_p) = '\0'; \
27259 - yyleng = yyless_macro_arg; \
27260 - } \
27261 - while ( 0 )
27262 -
27263 -/* Accessor methods (get/set functions) to struct members. */
27264 -
27265 -/** Get the current line number.
27266 - *
27267 - */
27268 -int yyget_lineno (void)
27269 -{
27270 -
27271 - return yylineno;
27272 -}
27273 -
27274 -/** Get the input stream.
27275 - *
27276 - */
27277 -FILE *yyget_in (void)
27278 -{
27279 - return yyin;
27280 -}
27281 -
27282 -/** Get the output stream.
27283 - *
27284 - */
27285 -FILE *yyget_out (void)
27286 -{
27287 - return yyout;
27288 -}
27289 -
27290 -/** Get the length of the current token.
27291 - *
27292 - */
27293 -int yyget_leng (void)
27294 -{
27295 - return yyleng;
27296 -}
27297 -
27298 -/** Get the current token.
27299 - *
27300 - */
27301 -
27302 -char *yyget_text (void)
27303 -{
27304 - return yytext;
27305 -}
27306 -
27307 -/** Set the current line number.
27308 - * @param line_number
27309 - *
27310 - */
27311 -void yyset_lineno (int line_number )
27312 -{
27313 -
27314 - yylineno = line_number;
27315 -}
27316 -
27317 -/** Set the input stream. This does not discard the current
27318 - * input buffer.
27319 - * @param in_str A readable stream.
27320 - *
27321 - * @see yy_switch_to_buffer
27322 - */
27323 -void yyset_in (FILE * in_str )
27324 -{
27325 - yyin = in_str ;
27326 -}
27327 -
27328 -void yyset_out (FILE * out_str )
27329 -{
27330 - yyout = out_str ;
27331 -}
27332 -
27333 -int yyget_debug (void)
27334 -{
27335 - return yy_flex_debug;
27336 -}
27337 -
27338 -void yyset_debug (int bdebug )
27339 -{
27340 - yy_flex_debug = bdebug ;
27341 -}
27342 -
27343 -static int yy_init_globals (void)
27344 -{
27345 - /* Initialization is the same as for the non-reentrant scanner.
27346 - * This function is called from yylex_destroy(), so don't allocate here.
27347 - */
27348 -
27349 - (yy_buffer_stack) = 0;
27350 - (yy_buffer_stack_top) = 0;
27351 - (yy_buffer_stack_max) = 0;
27352 - (yy_c_buf_p) = (char *) 0;
27353 - (yy_init) = 0;
27354 - (yy_start) = 0;
27355 -
27356 -/* Defined in main.c */
27357 -#ifdef YY_STDINIT
27358 - yyin = stdin;
27359 - yyout = stdout;
27360 -#else
27361 - yyin = (FILE *) 0;
27362 - yyout = (FILE *) 0;
27363 -#endif
27364 -
27365 - /* For future reference: Set errno on error, since we are called by
27366 - * yylex_init()
27367 - */
27368 - return 0;
27369 -}
27370 -
27371 -/* yylex_destroy is for both reentrant and non-reentrant scanners. */
27372 -int yylex_destroy (void)
27373 -{
27374 -
27375 - /* Pop the buffer stack, destroying each element. */
27376 - while(YY_CURRENT_BUFFER){
27377 - yy_delete_buffer(YY_CURRENT_BUFFER );
27378 - YY_CURRENT_BUFFER_LVALUE = NULL;
27379 - yypop_buffer_state();
27380 - }
27381 -
27382 - /* Destroy the stack itself. */
27383 - yyfree((yy_buffer_stack) );
27384 - (yy_buffer_stack) = NULL;
27385 -
27386 - /* Reset the globals. This is important in a non-reentrant scanner so the next time
27387 - * yylex() is called, initialization will occur. */
27388 - yy_init_globals( );
27389 -
27390 - return 0;
27391 -}
27392 -
27393 -/*
27394 - * Internal utility routines.
27395 - */
27396 -
27397 -#ifndef yytext_ptr
27398 -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
27399 -{
27400 - register int i;
27401 - for ( i = 0; i < n; ++i )
27402 - s1[i] = s2[i];
27403 -}
27404 -#endif
27405 -
27406 -#ifdef YY_NEED_STRLEN
27407 -static int yy_flex_strlen (yyconst char * s )
27408 -{
27409 - register int n;
27410 - for ( n = 0; s[n]; ++n )
27411 - ;
27412 -
27413 - return n;
27414 -}
27415 -#endif
27416 -
27417 -void *yyalloc (yy_size_t size )
27418 -{
27419 - return (void *) malloc( size );
27420 -}
27421 -
27422 -void *yyrealloc (void * ptr, yy_size_t size )
27423 -{
27424 - /* The cast to (char *) in the following accommodates both
27425 - * implementations that use char* generic pointers, and those
27426 - * that use void* generic pointers. It works with the latter
27427 - * because both ANSI C and C++ allow castless assignment from
27428 - * any pointer type to void*, and deal with argument conversions
27429 - * as though doing an assignment.
27430 - */
27431 - return (void *) realloc( (char *) ptr, size );
27432 -}
27433 -
27434 -void yyfree (void * ptr )
27435 -{
27436 - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
27437 -}
27438 -
27439 -#define YYTABLES_NAME "yytables"
27440 -
27441 -#line 196 "/d/gcc-4.4.1/gcc-4.4.1/gcc/gengtype-lex.l"
27442 -
27443 -
27444 -
27445 -void
27446 -yybegin (const char *fname)
27447 -{
27448 - yyin = fopen (fname, "r");
27449 - if (yyin == NULL)
27450 - {
27451 - perror (fname);
27452 - exit (1);
27453 - }
27454 - lexer_line.file = fname;
27455 - lexer_line.line = 1;
27456 -}
27457 -
27458 -void
27459 -yyend (void)
27460 -{
27461 - fclose (yyin);
27462 -}
27463 -
27464 diff -Nur a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l
27465 --- a/gcc/gengtype-lex.l 2009-02-20 16:20:38.000000000 +0100
27466 +++ b/gcc/gengtype-lex.l 2010-01-25 09:50:29.145688053 +0100
27467 @@ -48,7 +48,7 @@
27468 ID [[:alpha:]_][[:alnum:]_]*
27469 WS [[:space:]]+
27470 HWS [ \t\r\v\f]*
27471 -IWORD short|long|(un)?signed|char|int|HOST_WIDE_INT|HOST_WIDEST_INT|bool|size_t|BOOL_BITFIELD|CPPCHAR_SIGNED_T|ino_t|dev_t
27472 +IWORD short|long|(un)?signed|char|int|HOST_WIDE_INT|HOST_WIDEST_INT|bool|size_t|BOOL_BITFIELD|CPPCHAR_SIGNED_T|ino_t|dev_t|HARD_REG_SET
27473 ITYPE {IWORD}({WS}{IWORD})*
27474 EOID [^[:alnum:]_]
27475
27476 diff -Nur a/gcc/genmultilib b/gcc/genmultilib
27477 --- a/gcc/genmultilib 2007-07-26 10:37:01.000000000 +0200
27478 +++ b/gcc/genmultilib 2010-01-25 09:50:29.145688053 +0100
27479 @@ -73,6 +73,20 @@
27480 # the os directory names are used exclusively. Use the mapping when
27481 # there is no one-to-one equivalence between GCC levels and the OS.
27482
27483 +# The optional eighth option is a list of multilib aliases. This takes the
27484 +# same form as the third argument. It specifies that the second multilib is
27485 +# a synonym for the first. This allows a suitable multilib to be selected
27486 +# for all option combinations while only building a subset of all possible
27487 +# multilibs.
27488 +# For example:
27489 +# genmultilib "mbig-endian mthumb" "eb thumb" "" "" "" "" "" \
27490 +# "mbig-endian=mbig-endian/mthumb" yes
27491 +# This produces:
27492 +# ". !mbig-endian !mthumb;",
27493 +# "be mbig-endian !mthumb;",
27494 +# "be mbig-endian mthumb;",
27495 +# "thumb !mbig-endian mthumb;",
27496 +
27497 # The last option should be "yes" if multilibs are enabled. If it is not
27498 # "yes", all GCC multilib dir names will be ".".
27499
27500 @@ -121,7 +135,8 @@
27501 extra=$5
27502 exclusions=$6
27503 osdirnames=$7
27504 -enable_multilib=$8
27505 +aliases=$8
27506 +enable_multilib=$9
27507
27508 echo "static const char *const multilib_raw[] = {"
27509
27510 @@ -129,6 +144,23 @@
27511 # Use cd ./foo to avoid CDPATH output.
27512 cd ./tmpmultilib.$$ || exit 1
27513
27514 +# Handle aliases
27515 +cat >tmpmultilib3 <<\EOF
27516 +#!/bin/sh
27517 +# Output a list of aliases (including the original name) for a multilib.
27518 +
27519 +echo $1
27520 +EOF
27521 +for a in ${aliases}; do
27522 + l=`echo $a | sed -e 's/=.*$//' -e 's/?/=/g'`
27523 + r=`echo $a | sed -e 's/^.*=//' -e 's/?/=/g'`
27524 + echo "[ \$1 == /$l/ ] && echo /$r/" >>tmpmultilib3
27525 +
27526 + # Also add the alias to the exclusion list
27527 + exceptions="${exceptions} $r"
27528 +done
27529 +chmod +x tmpmultilib3
27530 +
27531 # What we want to do is select all combinations of the sets in
27532 # options. Each combination which includes a set of mutually
27533 # exclusive options must then be output multiple times, once for each
27534 @@ -195,6 +227,21 @@
27535 combinations=`./tmpmultilib2 ${combinations}`
27536 fi
27537
27538 +# Check that all the aliases actually exist
27539 +for a in ${aliases}; do
27540 + l=`echo $a | sed -e 's/=.*$//' -e 's/?/=/g'`
27541 + for c in ${combinations}; do
27542 + if [ "/$l/" = "$c" ]; then
27543 + l=""
27544 + break;
27545 + fi
27546 + done
27547 + if [ -n "$l" ] ;then
27548 + echo "Missing multilib $l for alias $a" 1>&2
27549 + exit 1
27550 + fi
27551 +done
27552 +
27553 # Construct a sed pattern which will convert option names to directory
27554 # names.
27555 todirnames=
27556 @@ -343,23 +390,25 @@
27557 fi
27558 fi
27559
27560 - # Look through the options. We must output each option that is
27561 - # present, and negate each option that is not present.
27562 - optout=
27563 - for set in ${options}; do
27564 - setopts=`echo ${set} | sed -e 's_[/|]_ _g'`
27565 - for opt in ${setopts}; do
27566 - if expr "${combo} " : ".*/${opt}/.*" > /dev/null; then
27567 - optout="${optout} ${opt}"
27568 - else
27569 - optout="${optout} !${opt}"
27570 - fi
27571 + for optcombo in `./tmpmultilib3 ${combo}`; do
27572 + # Look through the options. We must output each option that is
27573 + # present, and negate each option that is not present.
27574 + optout=
27575 + for set in ${options}; do
27576 + setopts=`echo ${set} | sed -e 's_[/|]_ _g'`
27577 + for opt in ${setopts}; do
27578 + if expr "${optcombo} " : ".*/${opt}/.*" > /dev/null; then
27579 + optout="${optout} ${opt}"
27580 + else
27581 + optout="${optout} !${opt}"
27582 + fi
27583 + done
27584 done
27585 - done
27586 - optout=`echo ${optout} | sed -e 's/^ //'`
27587 + optout=`echo ${optout} | sed -e 's/^ //'`
27588
27589 - # Output the line with all appropriate matches.
27590 - dirout="${dirout}" optout="${optout}" ./tmpmultilib2
27591 + # Output the line with all appropriate matches.
27592 + dirout="${dirout}" optout="${optout}" ./tmpmultilib2
27593 + done
27594 done
27595
27596 # Terminate the list of string.
27597 diff -Nur a/gcc/haifa-sched.c b/gcc/haifa-sched.c
27598 --- a/gcc/haifa-sched.c 2008-10-14 14:52:19.000000000 +0200
27599 +++ b/gcc/haifa-sched.c 2010-01-25 09:50:29.145688053 +0100
27600 @@ -1990,6 +1990,23 @@
27601 SCHED_GROUP_P (insn) = 0;
27602 }
27603
27604 +/* Return true if scheduling INSN will finish current clock cycle. */
27605 +static bool
27606 +insn_finishes_cycle_p (rtx insn)
27607 +{
27608 + if (SCHED_GROUP_P (insn))
27609 + /* After issuing INSN, rest of the sched_group will be forced to issue
27610 + in order. Don't make any plans for the rest of cycle. */
27611 + return true;
27612 +
27613 + /* Finishing the block will, apparently, finish the cycle. */
27614 + if (current_sched_info->insn_finishes_block_p
27615 + && current_sched_info->insn_finishes_block_p (insn))
27616 + return true;
27617 +
27618 + return false;
27619 +}
27620 +
27621 /* The following structure describe an entry of the stack of choices. */
27622 struct choice_entry
27623 {
27624 @@ -2168,7 +2185,10 @@
27625 delay = state_transition (state, insn);
27626 if (delay < 0)
27627 {
27628 - if (state_dead_lock_p (state))
27629 + if (state_dead_lock_p (state)
27630 + || insn_finishes_cycle_p (insn))
27631 + /* We won't issue any more instructions in the next
27632 + choice_state. */
27633 top->rest = 0;
27634 else
27635 top->rest--;
27636 diff -Nur a/gcc/hooks.c b/gcc/hooks.c
27637 --- a/gcc/hooks.c 2009-02-20 16:20:38.000000000 +0100
27638 +++ b/gcc/hooks.c 2010-01-25 09:50:29.145688053 +0100
27639 @@ -335,3 +335,10 @@
27640 {
27641 return NULL;
27642 }
27643 +
27644 +/* Generic hook that takes a const_tree and returns NULL_TREE. */
27645 +tree
27646 +hook_tree_const_tree_null (const_tree t ATTRIBUTE_UNUSED)
27647 +{
27648 + return NULL;
27649 +}
27650 diff -Nur a/gcc/hooks.h b/gcc/hooks.h
27651 --- a/gcc/hooks.h 2009-02-20 16:20:38.000000000 +0100
27652 +++ b/gcc/hooks.h 2010-01-25 09:50:29.145688053 +0100
27653 @@ -64,6 +64,8 @@
27654 extern int hook_int_size_t_constcharptr_int_0 (size_t, const char *, int);
27655 extern int hook_int_void_no_regs (void);
27656
27657 +extern tree hook_tree_const_tree_null (const_tree);
27658 +
27659 extern tree hook_tree_tree_tree_null (tree, tree);
27660 extern tree hook_tree_tree_tree_tree_null (tree, tree, tree);
27661 extern tree hook_tree_tree_tree_tree_3rd_identity (tree, tree, tree);
27662 diff -Nur a/gcc/incpath.c b/gcc/incpath.c
27663 --- a/gcc/incpath.c 2009-02-20 16:20:38.000000000 +0100
27664 +++ b/gcc/incpath.c 2010-01-25 09:50:29.145688053 +0100
27665 @@ -30,6 +30,8 @@
27666 #include "intl.h"
27667 #include "incpath.h"
27668 #include "cppdefault.h"
27669 +#include "flags.h"
27670 +#include "toplev.h"
27671
27672 /* Microsoft Windows does not natively support inodes.
27673 VMS has non-numeric inodes. */
27674 @@ -353,6 +355,24 @@
27675 }
27676 fprintf (stderr, _("End of search list.\n"));
27677 }
27678 +
27679 +#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
27680 + if (flag_poison_system_directories)
27681 + {
27682 + struct cpp_dir *p;
27683 +
27684 + for (p = heads[QUOTE]; p; p = p->next)
27685 + {
27686 + if ((!strncmp (p->name, "/usr/include", 12))
27687 + || (!strncmp (p->name, "/usr/local/include", 18))
27688 + || (!strncmp (p->name, "/usr/X11R6/include", 18)))
27689 + warning (OPT_Wpoison_system_directories,
27690 + "include location \"%s\" is unsafe for "
27691 + "cross-compilation",
27692 + p->name);
27693 + }
27694 + }
27695 +#endif
27696 }
27697
27698 /* Use given -I paths for #include "..." but not #include <...>, and
27699 diff -Nur a/gcc/ira.c b/gcc/ira.c
27700 --- a/gcc/ira.c 2009-07-04 00:46:30.000000000 +0200
27701 +++ b/gcc/ira.c 2010-01-25 09:50:29.145688053 +0100
27702 @@ -1349,14 +1349,12 @@
27703 return for_each_rtx (&insn, insn_contains_asm_1, NULL);
27704 }
27705
27706 -/* Set up regs_asm_clobbered. */
27707 +/* Add register clobbers from asm statements. */
27708 static void
27709 -compute_regs_asm_clobbered (char *regs_asm_clobbered)
27710 +compute_regs_asm_clobbered (void)
27711 {
27712 basic_block bb;
27713
27714 - memset (regs_asm_clobbered, 0, sizeof (char) * FIRST_PSEUDO_REGISTER);
27715 -
27716 FOR_EACH_BB (bb)
27717 {
27718 rtx insn;
27719 @@ -1377,7 +1375,7 @@
27720 + hard_regno_nregs[dregno][mode] - 1;
27721
27722 for (i = dregno; i <= end; ++i)
27723 - regs_asm_clobbered[i] = 1;
27724 + SET_HARD_REG_BIT(crtl->asm_clobbers, i);
27725 }
27726 }
27727 }
27728 @@ -1415,7 +1413,8 @@
27729 COPY_HARD_REG_SET (ira_no_alloc_regs, no_unit_alloc_regs);
27730 CLEAR_HARD_REG_SET (eliminable_regset);
27731
27732 - compute_regs_asm_clobbered (regs_asm_clobbered);
27733 + compute_regs_asm_clobbered ();
27734 +
27735 /* Build the regset of all eliminable registers and show we can't
27736 use those that we already know won't be eliminated. */
27737 #ifdef ELIMINABLE_REGS
27738 @@ -1425,7 +1424,7 @@
27739 = (! CAN_ELIMINATE (eliminables[i].from, eliminables[i].to)
27740 || (eliminables[i].to == STACK_POINTER_REGNUM && need_fp));
27741
27742 - if (! regs_asm_clobbered[eliminables[i].from])
27743 + if (!TEST_HARD_REG_BIT (crtl->asm_clobbers, eliminables[i].from))
27744 {
27745 SET_HARD_REG_BIT (eliminable_regset, eliminables[i].from);
27746
27747 @@ -1439,7 +1438,7 @@
27748 df_set_regs_ever_live (eliminables[i].from, true);
27749 }
27750 #if FRAME_POINTER_REGNUM != HARD_FRAME_POINTER_REGNUM
27751 - if (! regs_asm_clobbered[HARD_FRAME_POINTER_REGNUM])
27752 + if (!TEST_HARD_REG_BIT (crtl->asm_clobbers, HARD_FRAME_POINTER_REGNUM))
27753 {
27754 SET_HARD_REG_BIT (eliminable_regset, HARD_FRAME_POINTER_REGNUM);
27755 if (need_fp)
27756 @@ -1453,7 +1452,7 @@
27757 #endif
27758
27759 #else
27760 - if (! regs_asm_clobbered[FRAME_POINTER_REGNUM])
27761 + if (!TEST_HARD_REG_BIT (crtl->asm_clobbers, HARD_FRAME_POINTER_REGNUM))
27762 {
27763 SET_HARD_REG_BIT (eliminable_regset, FRAME_POINTER_REGNUM);
27764 if (need_fp)
27765 diff -Nur a/gcc/ira-costs.c b/gcc/ira-costs.c
27766 --- a/gcc/ira-costs.c 2009-04-22 22:16:13.000000000 +0200
27767 +++ b/gcc/ira-costs.c 2010-01-25 09:50:29.145688053 +0100
27768 @@ -706,11 +706,11 @@
27769
27770 /* Wrapper around REGNO_OK_FOR_INDEX_P, to allow pseudo registers. */
27771 static inline bool
27772 -ok_for_index_p_nonstrict (rtx reg)
27773 +ok_for_index_p_nonstrict (rtx reg, enum machine_mode mode)
27774 {
27775 unsigned regno = REGNO (reg);
27776
27777 - return regno >= FIRST_PSEUDO_REGISTER || REGNO_OK_FOR_INDEX_P (regno);
27778 + return regno >= FIRST_PSEUDO_REGISTER || ok_for_index_p_1 (regno, mode);
27779 }
27780
27781 /* A version of regno_ok_for_base_p for use here, when all
27782 @@ -748,7 +748,7 @@
27783 enum reg_class rclass;
27784
27785 if (context == 1)
27786 - rclass = INDEX_REG_CLASS;
27787 + rclass = index_reg_class (mode);
27788 else
27789 rclass = base_reg_class (mode, outer_code, index_code);
27790
27791 @@ -795,7 +795,8 @@
27792 just record registers in any non-constant operands. We
27793 assume here, as well as in the tests below, that all
27794 addresses are in canonical form. */
27795 - else if (INDEX_REG_CLASS == base_reg_class (VOIDmode, PLUS, SCRATCH))
27796 + else if (index_reg_class (mode)
27797 + == base_reg_class (mode, PLUS, SCRATCH))
27798 {
27799 record_address_regs (mode, arg0, context, PLUS, code1, scale);
27800 if (! CONSTANT_P (arg1))
27801 @@ -816,7 +817,7 @@
27802 else if (code0 == REG && code1 == REG
27803 && REGNO (arg0) < FIRST_PSEUDO_REGISTER
27804 && (ok_for_base_p_nonstrict (arg0, mode, PLUS, REG)
27805 - || ok_for_index_p_nonstrict (arg0)))
27806 + || ok_for_index_p_nonstrict (arg0, mode)))
27807 record_address_regs (mode, arg1,
27808 ok_for_base_p_nonstrict (arg0, mode, PLUS, REG)
27809 ? 1 : 0,
27810 @@ -824,7 +825,7 @@
27811 else if (code0 == REG && code1 == REG
27812 && REGNO (arg1) < FIRST_PSEUDO_REGISTER
27813 && (ok_for_base_p_nonstrict (arg1, mode, PLUS, REG)
27814 - || ok_for_index_p_nonstrict (arg1)))
27815 + || ok_for_index_p_nonstrict (arg1, mode)))
27816 record_address_regs (mode, arg0,
27817 ok_for_base_p_nonstrict (arg1, mode, PLUS, REG)
27818 ? 1 : 0,
27819 diff -Nur a/gcc/longlong.h b/gcc/longlong.h
27820 --- a/gcc/longlong.h 2009-02-12 17:30:53.000000000 +0100
27821 +++ b/gcc/longlong.h 2010-01-25 09:50:29.145688053 +0100
27822 @@ -982,7 +982,7 @@
27823 " or r1,%0" \
27824 : "=r" (q), "=&z" (r) \
27825 : "1" (n1), "r" (n0), "rm" (d), "r" (&__udiv_qrnnd_16) \
27826 - : "r1", "r2", "r4", "r5", "r6", "pr"); \
27827 + : "r1", "r2", "r4", "r5", "r6", "pr", "t"); \
27828 } while (0)
27829
27830 #define UDIV_TIME 80
27831 diff -Nur a/gcc/Makefile.in b/gcc/Makefile.in
27832 --- a/gcc/Makefile.in 2009-05-22 01:17:37.000000000 +0200
27833 +++ b/gcc/Makefile.in 2010-01-25 09:50:29.145688053 +0100
27834 @@ -327,6 +327,8 @@
27835 # It also specifies -isystem ./include to find, e.g., stddef.h.
27836 GCC_CFLAGS=$(CFLAGS_FOR_TARGET) $(INTERNAL_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS)
27837
27838 +EGLIBC_CONFIGS = @EGLIBC_CONFIGS@
27839 +
27840 # ---------------------------------------------------
27841 # Programs which produce files for the target machine
27842 # ---------------------------------------------------
27843 @@ -408,6 +410,9 @@
27844
27845 xmake_file=@xmake_file@
27846 tmake_file=@tmake_file@
27847 +TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@
27848 +TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
27849 +TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
27850 out_file=$(srcdir)/config/@out_file@
27851 out_object_file=@out_object_file@
27852 md_file=$(srcdir)/config/@md_file@
27853 @@ -542,6 +547,23 @@
27854 exeext = @host_exeext@
27855 build_exeext = @build_exeext@
27856
27857 +licensedir = @licensedir@
27858 +ifneq ($(licensedir),)
27859 +# Header files for licensing.
27860 +CSL_LICENSEINC = -I $(licensedir)/include
27861 +# Libraries for licensing.
27862 +CSL_LICENSELIB = -L$(licensedir)/lib -lcsllicense
27863 +# The licensing program. If the program does not exist, assume that
27864 +# it is not needed.
27865 +CSL_LICENSE_PROG = cs-license$(exeext)
27866 +$(CSL_LICENSE_PROG):
27867 + if [ -f "$(licensedir)/libexec/cs-license$(exeext)" ] ; then \
27868 + $(LN_S) $(licensedir)/libexec/cs-license$(exeext) . ; \
27869 + else \
27870 + touch $@; \
27871 + fi
27872 +endif
27873 +
27874 # Directory in which to put man pages.
27875 mandir = @mandir@
27876 man1dir = $(mandir)/man1
27877 @@ -684,7 +706,7 @@
27878
27879 # List of things which should already be built whenever we try to use xgcc
27880 # to compile anything (without linking).
27881 -GCC_PASSES=xgcc$(exeext) cc1$(exeext) specs $(EXTRA_PASSES)
27882 +GCC_PASSES=xgcc$(exeext) cc1$(exeext) specs $(EXTRA_PASSES) $(CSL_LICENSE_PROG)
27883
27884 # Directory to link to, when using the target `maketest'.
27885 DIR = ../gcc
27886 @@ -913,7 +935,7 @@
27887
27888 # How to link with both our special library facilities
27889 # and the system's installed libraries.
27890 -LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER)
27891 +LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER) $(CSL_LICENSELIB)
27892 BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS)
27893 # Any system libraries needed just for GNAT.
27894 SYSLIBS = @GNAT_LIBEXC@
27895 @@ -943,7 +965,7 @@
27896 INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
27897 -I$(srcdir)/../include @INCINTL@ \
27898 $(CPPINC) $(GMPINC) $(DECNUMINC) \
27899 - $(PPLINC) $(CLOOGINC)
27900 + $(PPLINC) $(CLOOGINC) $(CSL_LICENSEINC)
27901
27902 .c.o:
27903 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
27904 @@ -1249,6 +1271,7 @@
27905 tree-ssa-loop-manip.o \
27906 tree-ssa-loop-niter.o \
27907 tree-ssa-loop-prefetch.o \
27908 + tree-ssa-loop-promote.o \
27909 tree-ssa-loop-unswitch.o \
27910 tree-ssa-loop.o \
27911 tree-ssa-math-opts.o \
27912 @@ -1258,6 +1281,7 @@
27913 tree-ssa-pre.o \
27914 tree-ssa-propagate.o \
27915 tree-ssa-reassoc.o \
27916 + tree-ssa-remove-local-statics.o \
27917 tree-ssa-sccvn.o \
27918 tree-ssa-sink.o \
27919 tree-ssa-structalias.o \
27920 @@ -1674,7 +1698,7 @@
27921 $(MACHMODE_H) $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
27922 $(LIB2ADD_ST) $(LIB2ADDEH) $(srcdir)/emutls.c gcov-iov.h $(SFP_MACHINE)
27923
27924 -libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \
27925 +libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs $(tmake_file) \
27926 xgcc$(exeext)
27927 : > tmp-libgcc.mvars
27928 echo LIB1ASMFUNCS = '$(LIB1ASMFUNCS)' >> tmp-libgcc.mvars
27929 @@ -1728,7 +1752,7 @@
27930 # driver program needs to select the library directory based on the
27931 # switches.
27932 multilib.h: s-mlib; @true
27933 -s-mlib: $(srcdir)/genmultilib Makefile
27934 +s-mlib: $(srcdir)/genmultilib Makefile $(tmakefile)
27935 if test @enable_multilib@ = yes \
27936 || test -n "$(MULTILIB_OSDIRNAMES)"; then \
27937 $(SHELL) $(srcdir)/genmultilib \
27938 @@ -1739,10 +1763,11 @@
27939 "$(MULTILIB_EXTRA_OPTS)" \
27940 "$(MULTILIB_EXCLUSIONS)" \
27941 "$(MULTILIB_OSDIRNAMES)" \
27942 + "$(MULTILIB_ALIASES)" \
27943 "@enable_multilib@" \
27944 > tmp-mlib.h; \
27945 else \
27946 - $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' no \
27947 + $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' '' no \
27948 > tmp-mlib.h; \
27949 fi
27950 $(SHELL) $(srcdir)/../move-if-change tmp-mlib.h multilib.h
27951 @@ -1816,7 +1841,7 @@
27952
27953 incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
27954 intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
27955 - $(MACHMODE_H)
27956 + $(MACHMODE_H) $(FLAGS_H) toplev.h
27957
27958 c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
27959 $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \
27960 @@ -1900,7 +1925,7 @@
27961 $(TREE_H) $(C_PRAGMA_H) $(FLAGS_H) $(TOPLEV_H) langhooks.h \
27962 $(TREE_INLINE_H) $(DIAGNOSTIC_H) intl.h debug.h $(C_COMMON_H) \
27963 opts.h options.h $(MKDEPS_H) incpath.h cppdefault.h $(TARGET_H) \
27964 - $(TM_P_H) $(VARRAY_H)
27965 + $(TM_P_H) $(VARRAY_H) $(C_TREE_H)
27966 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
27967 $< $(OUTPUT_OPTION) @TARGET_SYSTEM_ROOT_DEFINE@
27968
27969 @@ -1953,7 +1978,8 @@
27970 -DTOOLDIR_BASE_PREFIX=\"$(libsubdir_to_prefix)$(prefix_to_exec_prefix)\" \
27971 @TARGET_SYSTEM_ROOT_DEFINE@ \
27972 $(VALGRIND_DRIVER_DEFINES) \
27973 - `test "X$${SHLIB_LINK}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"`
27974 + `test "X$${SHLIB_LINK}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"` \
27975 + -DCONFIGURE_SPECS="\"@CONFIGURE_SPECS@\""
27976
27977 gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
27978 Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
27979 @@ -2176,6 +2202,9 @@
27980 alloc-pool.h $(BASIC_BLOCK_H) $(BITMAP_H) $(HASHTAB_H) $(GIMPLE_H) \
27981 $(TREE_INLINE_H) tree-iterator.h tree-ssa-sccvn.h $(PARAMS_H) \
27982 $(DBGCNT_H)
27983 +tree-ssa-remove-local-statics.o: tree-ssa-remove-local-statics.c \
27984 + coretypes.h $(CONFIG_H) $(SYSTEM_H) $(BASIC_BLOCK_H) tree.h tree-pass.h \
27985 + $(TM_H) $(HASHTAB_H) $(BASIC_BLOCK_H)
27986 tree-ssa-sccvn.o : tree-ssa-sccvn.c $(TREE_FLOW_H) $(CONFIG_H) \
27987 $(SYSTEM_H) $(TREE_H) $(GGC_H) $(DIAGNOSTIC_H) $(TIMEVAR_H) $(FIBHEAP_H) \
27988 $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) $(CFGLOOP_H) \
27989 @@ -2271,6 +2300,12 @@
27990 $(CFGLOOP_H) $(PARAMS_H) langhooks.h $(BASIC_BLOCK_H) hard-reg-set.h \
27991 tree-chrec.h $(TOPLEV_H) langhooks.h $(TREE_INLINE_H) $(TREE_DATA_REF_H) \
27992 $(OPTABS_H)
27993 +tree-ssa-loop-promote.o: tree-ssa-loop-promote.c \
27994 + coretypes.h $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TOPLEV_H) \
27995 + $(RTL_H) $(TM_P_H) hard-reg-set.h $(OBSTACK_H) $(BASIC_BLOCK_H) \
27996 + pointer-set.h intl.h $(TREE_H) $(GIMPLE_H) $(HASHTAB_H) $(DIAGNOSTIC_H) \
27997 + $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(FLAGS_H) $(TIMEVAR_H) \
27998 + tree-pass.h $(TM_H)
27999 tree-predcom.o: tree-predcom.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TM_P_H) \
28000 $(CFGLOOP_H) $(TREE_FLOW_H) $(GGC_H) $(TREE_DATA_REF_H) $(SCEV_H) \
28001 $(PARAMS_H) $(DIAGNOSTIC_H) tree-pass.h $(TM_H) coretypes.h tree-affine.h \
28002 @@ -2865,7 +2900,7 @@
28003 $(RTL_H) $(REAL_H) $(FLAGS_H) $(EXPR_H) $(OPTABS_H) reload.h $(REGS_H) \
28004 hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) output.h \
28005 $(FUNCTION_H) $(TOPLEV_H) cselib.h $(TM_P_H) except.h $(TREE_H) $(MACHMODE_H) \
28006 - $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h $(DF_H) $(DBGCNT_H)
28007 + $(OBSTACK_H) $(TIMEVAR_H) tree-pass.h addresses.h $(DF_H) $(DBGCNT_H)
28008 postreload-gcse.o : postreload-gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
28009 $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
28010 $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) output.h $(TOPLEV_H) \
28011 @@ -3582,7 +3617,7 @@
28012 # be rebuilt.
28013
28014 # Build the include directories.
28015 -stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fixinc_list
28016 +stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H)
28017 # Copy in the headers provided with gcc.
28018 # The sed command gets just the last file name component;
28019 # this is necessary because VPATH could add a dirname.
28020 @@ -3601,21 +3636,23 @@
28021 done
28022 rm -f include/unwind.h
28023 cp $(UNWIND_H) include/unwind.h
28024 - set -e; for ml in `cat fixinc_list`; do \
28025 - sysroot_headers_suffix=`echo $${ml} | sed -e 's/;.*$$//'`; \
28026 - multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
28027 - fix_dir=include-fixed$${multi_dir}; \
28028 - if $(LIMITS_H_TEST) ; then \
28029 - cat $(srcdir)/limitx.h $(srcdir)/glimits.h $(srcdir)/limity.h > tmp-xlimits.h; \
28030 - else \
28031 - cat $(srcdir)/glimits.h > tmp-xlimits.h; \
28032 - fi; \
28033 - $(mkinstalldirs) $${fix_dir}; \
28034 - chmod a+rx $${fix_dir} || true; \
28035 - rm -f $${fix_dir}/limits.h; \
28036 - mv tmp-xlimits.h $${fix_dir}/limits.h; \
28037 - chmod a+r $${fix_dir}/limits.h; \
28038 - done
28039 + set -e; if [ -f fixinc_list ] ; then \
28040 + for ml in `cat fixinc_list`; do \
28041 + sysroot_headers_suffix=`echo $${ml} | sed -e 's/;.*$$//'`; \
28042 + multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
28043 + fix_dir=include-fixed$${multi_dir}; \
28044 + if $(LIMITS_H_TEST) ; then \
28045 + cat $(srcdir)/limitx.h $(srcdir)/glimits.h $(srcdir)/limity.h > tmp-xlimits.h; \
28046 + else \
28047 + cat $(srcdir)/glimits.h > tmp-xlimits.h; \
28048 + fi; \
28049 + $(mkinstalldirs) $${fix_dir}; \
28050 + chmod a+rx $${fix_dir} || true; \
28051 + rm -f $${fix_dir}/limits.h; \
28052 + mv tmp-xlimits.h $${fix_dir}/limits.h; \
28053 + chmod a+r $${fix_dir}/limits.h; \
28054 + done; \
28055 + fi
28056 # Install the README
28057 rm -f include-fixed/README
28058 cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README
28059 @@ -4340,16 +4377,18 @@
28060
28061 # Install supporting files for fixincludes to be run later.
28062 install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-itoolsdirs \
28063 - macro_list fixinc_list
28064 + macro_list
28065 $(INSTALL_DATA) $(srcdir)/gsyslimits.h \
28066 $(DESTDIR)$(itoolsdatadir)/gsyslimits.h
28067 $(INSTALL_DATA) macro_list $(DESTDIR)$(itoolsdatadir)/macro_list
28068 - $(INSTALL_DATA) fixinc_list $(DESTDIR)$(itoolsdatadir)/fixinc_list
28069 - set -e; for ml in `cat fixinc_list`; do \
28070 - multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
28071 - $(mkinstalldirs) $(DESTDIR)$(itoolsdatadir)/include$${multi_dir}; \
28072 - $(INSTALL_DATA) include-fixed$${multidir}/limits.h $(DESTDIR)$(itoolsdatadir)/include$${multi_dir}/limits.h; \
28073 - done
28074 + set -e; if [ -f fixinc_list ] ; then \
28075 + $(INSTALL_DATA) fixinc_list $(DESTDIR)$(itoolsdatadir)/fixinc_list; \
28076 + for ml in `cat fixinc_list`; do \
28077 + multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
28078 + $(mkinstalldirs) $(DESTDIR)$(itoolsdatadir)/include$${multi_dir}; \
28079 + $(INSTALL_DATA) include-fixed$${multidir}/limits.h $(DESTDIR)$(itoolsdatadir)/include$${multi_dir}/limits.h; \
28080 + done; \
28081 + fi
28082 $(INSTALL_SCRIPT) $(srcdir)/../mkinstalldirs \
28083 $(DESTDIR)$(itoolsdir)/mkinstalldirs ; \
28084 if [ x$(STMP_FIXPROTO) != x ] ; then \
28085 diff -Nur a/gcc/modulo-sched.c b/gcc/modulo-sched.c
28086 --- a/gcc/modulo-sched.c 2008-09-01 10:57:00.000000000 +0200
28087 +++ b/gcc/modulo-sched.c 2010-01-25 09:50:29.155687438 +0100
28088 @@ -270,6 +270,7 @@
28089 NULL,
28090 sms_print_insn,
28091 NULL,
28092 + NULL, /* insn_finishes_block_p */
28093 NULL, NULL,
28094 NULL, NULL,
28095 0, 0,
28096 diff -Nur a/gcc/optabs.c b/gcc/optabs.c
28097 --- a/gcc/optabs.c 2009-03-17 18:46:23.000000000 +0100
28098 +++ b/gcc/optabs.c 2010-01-25 09:50:29.155687438 +0100
28099 @@ -3300,7 +3300,8 @@
28100 if (unoptab == ffs_optab || unoptab == clz_optab || unoptab == ctz_optab
28101 || unoptab == popcount_optab || unoptab == parity_optab)
28102 outmode
28103 - = GET_MODE (hard_libcall_value (TYPE_MODE (integer_type_node)));
28104 + = GET_MODE (hard_libcall_value (TYPE_MODE (integer_type_node),
28105 + optab_libfunc (unoptab, mode)));
28106
28107 start_sequence ();
28108
28109 @@ -4357,10 +4358,12 @@
28110 mode != VOIDmode;
28111 mode = GET_MODE_WIDER_MODE (mode))
28112 {
28113 - if ((libfunc = optab_libfunc (code_to_optab[comparison], mode)))
28114 + if (code_to_optab[comparison]
28115 + && (libfunc = optab_libfunc (code_to_optab[comparison], mode)))
28116 break;
28117
28118 - if ((libfunc = optab_libfunc (code_to_optab[swapped] , mode)))
28119 + if (code_to_optab[swapped]
28120 + && (libfunc = optab_libfunc (code_to_optab[swapped], mode)))
28121 {
28122 rtx tmp;
28123 tmp = x; x = y; y = tmp;
28124 @@ -4368,7 +4371,8 @@
28125 break;
28126 }
28127
28128 - if ((libfunc = optab_libfunc (code_to_optab[reversed], mode))
28129 + if (code_to_optab[reversed]
28130 + && (libfunc = optab_libfunc (code_to_optab[reversed], mode))
28131 && FLOAT_LIB_COMPARE_RETURNS_BOOL (mode, reversed))
28132 {
28133 comparison = reversed;
28134 diff -Nur a/gcc/opts.c b/gcc/opts.c
28135 --- a/gcc/opts.c 2009-03-28 18:28:45.000000000 +0100
28136 +++ b/gcc/opts.c 2010-01-25 09:50:29.155687438 +0100
28137 @@ -904,7 +904,7 @@
28138 flag_tree_vrp = opt2;
28139 flag_tree_builtin_call_dce = opt2;
28140 flag_tree_pre = opt2;
28141 - flag_tree_switch_conversion = 1;
28142 + flag_tree_switch_conversion = opt2;
28143 flag_ipa_cp = opt2;
28144
28145 /* Allow more virtual operators to increase alias precision. */
28146 @@ -928,6 +928,7 @@
28147 flag_gcse_after_reload = opt3;
28148 flag_tree_vectorize = opt3;
28149 flag_ipa_cp_clone = opt3;
28150 + flag_tree_pre_partial_partial = opt3;
28151 if (flag_ipa_cp_clone)
28152 flag_ipa_cp = 1;
28153
28154 @@ -951,10 +952,13 @@
28155 being declared inline. */
28156 flag_inline_functions = 1;
28157
28158 - /* Basic optimization options. */
28159 - optimize_size = 1;
28160 + /* Basic optimization options at -Os are almost the same as -O2. The
28161 + only difference is that we disable PRE, because it sometimes still
28162 + increases code size. If the user want to run PRE with -Os, he/she
28163 + will have to indicate so explicitly. */
28164 if (optimize > 2)
28165 optimize = 2;
28166 + flag_tree_pre = 0;
28167
28168 /* We want to crossjump as much as possible. */
28169 set_param_value ("min-crossjump-insns", 1);
28170 @@ -2060,6 +2064,10 @@
28171 /* These are no-ops, preserved for backward compatibility. */
28172 break;
28173
28174 + case OPT_feglibc_:
28175 + /* This is a no-op at the moment. */
28176 + break;
28177 +
28178 default:
28179 /* If the flag was handled in a standard way, assume the lack of
28180 processing here is intentional. */
28181 diff -Nur a/gcc/passes.c b/gcc/passes.c
28182 --- a/gcc/passes.c 2009-02-20 16:20:38.000000000 +0100
28183 +++ b/gcc/passes.c 2010-01-25 09:50:29.155687438 +0100
28184 @@ -591,6 +591,7 @@
28185 NEXT_PASS (pass_rename_ssa_copies);
28186 NEXT_PASS (pass_complete_unrolli);
28187 NEXT_PASS (pass_ccp);
28188 + NEXT_PASS (pass_promote_indices);
28189 NEXT_PASS (pass_forwprop);
28190 /* Ideally the function call conditional
28191 dead code elimination phase can be delayed
28192 @@ -605,6 +606,7 @@
28193 alias information also rewrites no longer addressed
28194 locals into SSA form if possible. */
28195 NEXT_PASS (pass_build_alias);
28196 + NEXT_PASS (pass_remove_local_statics);
28197 NEXT_PASS (pass_return_slot);
28198 NEXT_PASS (pass_phiprop);
28199 NEXT_PASS (pass_fre);
28200 diff -Nur a/gcc/pointer-set.c b/gcc/pointer-set.c
28201 --- a/gcc/pointer-set.c 2007-08-16 16:31:21.000000000 +0200
28202 +++ b/gcc/pointer-set.c 2010-01-25 09:50:29.155687438 +0100
28203 @@ -181,6 +181,23 @@
28204 break;
28205 }
28206
28207 +/* Return the number of elements in PSET. */
28208 +
28209 +size_t
28210 +pointer_set_n_elements (struct pointer_set_t *pset)
28211 +{
28212 + return pset->n_elements;
28213 +}
28214 +
28215 +/* Remove all entries from PSET. */
28216 +
28217 +void
28218 +pointer_set_clear (struct pointer_set_t *pset)
28219 +{
28220 + pset->n_elements = 0;
28221 + memset (pset->slots, 0, sizeof (pset->slots[0]) * pset->n_slots);
28222 +}
28223 +
28224 \f
28225 /* A pointer map is represented the same way as a pointer_set, so
28226 the hash code is based on the address of the key, rather than
28227 @@ -301,3 +318,20 @@
28228 if (pmap->keys[i] && !fn (pmap->keys[i], &pmap->values[i], data))
28229 break;
28230 }
28231 +
28232 +/* Return the number of elements in PMAP. */
28233 +
28234 +size_t
28235 +pointer_map_n_elements (struct pointer_map_t *pmap)
28236 +{
28237 + return pmap->n_elements;
28238 +}
28239 +
28240 +/* Remove all entries from PMAP. */
28241 +
28242 +void pointer_map_clear (struct pointer_map_t *pmap)
28243 +{
28244 + pmap->n_elements = 0;
28245 + memset (pmap->keys, 0, sizeof (pmap->keys[0]) * pmap->n_slots);
28246 + memset (pmap->values, 0, sizeof (pmap->values[0]) * pmap->n_slots);
28247 +}
28248 diff -Nur a/gcc/pointer-set.h b/gcc/pointer-set.h
28249 --- a/gcc/pointer-set.h 2007-08-16 16:31:21.000000000 +0200
28250 +++ b/gcc/pointer-set.h 2010-01-25 09:50:29.155687438 +0100
28251 @@ -29,6 +29,8 @@
28252 void pointer_set_traverse (const struct pointer_set_t *,
28253 bool (*) (const void *, void *),
28254 void *);
28255 +size_t pointer_set_n_elements (struct pointer_set_t *);
28256 +void pointer_set_clear (struct pointer_set_t *);
28257
28258 struct pointer_map_t;
28259 struct pointer_map_t *pointer_map_create (void);
28260 @@ -38,5 +40,7 @@
28261 void **pointer_map_insert (struct pointer_map_t *pmap, const void *p);
28262 void pointer_map_traverse (const struct pointer_map_t *,
28263 bool (*) (const void *, void **, void *), void *);
28264 +size_t pointer_map_n_elements (struct pointer_map_t *);
28265 +void pointer_map_clear (struct pointer_map_t *);
28266
28267 #endif /* POINTER_SET_H */
28268 diff -Nur a/gcc/postreload.c b/gcc/postreload.c
28269 --- a/gcc/postreload.c 2008-08-31 11:44:25.000000000 +0200
28270 +++ b/gcc/postreload.c 2010-01-25 09:50:29.155687438 +0100
28271 @@ -46,6 +46,7 @@
28272 #include "tree.h"
28273 #include "timevar.h"
28274 #include "tree-pass.h"
28275 +#include "addresses.h"
28276 #include "df.h"
28277 #include "dbgcnt.h"
28278
28279 @@ -708,17 +709,19 @@
28280 int last_label_ruid;
28281 int min_labelno, n_labels;
28282 HARD_REG_SET ever_live_at_start, *label_live;
28283 + enum reg_class index_regs;
28284
28285 /* If reg+reg can be used in offsetable memory addresses, the main chunk of
28286 reload has already used it where appropriate, so there is no use in
28287 trying to generate it now. */
28288 - if (double_reg_address_ok && INDEX_REG_CLASS != NO_REGS)
28289 + index_regs = index_reg_class (VOIDmode);
28290 + if (double_reg_address_ok && index_regs != NO_REGS)
28291 return;
28292
28293 /* To avoid wasting too much time later searching for an index register,
28294 determine the minimum and maximum index register numbers. */
28295 for (r = 0; r < FIRST_PSEUDO_REGISTER; r++)
28296 - if (TEST_HARD_REG_BIT (reg_class_contents[INDEX_REG_CLASS], r))
28297 + if (TEST_HARD_REG_BIT (reg_class_contents[index_regs], r))
28298 {
28299 if (first_index_reg == -1)
28300 first_index_reg = r;
28301 @@ -826,8 +829,8 @@
28302 substitute uses of REG (typically in MEMs) with.
28303 First check REG and BASE for being index registers;
28304 we can use them even if they are not dead. */
28305 - if (TEST_HARD_REG_BIT (reg_class_contents[INDEX_REG_CLASS], regno)
28306 - || TEST_HARD_REG_BIT (reg_class_contents[INDEX_REG_CLASS],
28307 + if (TEST_HARD_REG_BIT (reg_class_contents[index_regs], regno)
28308 + || TEST_HARD_REG_BIT (reg_class_contents[index_regs],
28309 REGNO (base)))
28310 {
28311 const_reg = reg;
28312 @@ -841,8 +844,7 @@
28313 two registers. */
28314 for (i = first_index_reg; i <= last_index_reg; i++)
28315 {
28316 - if (TEST_HARD_REG_BIT (reg_class_contents[INDEX_REG_CLASS],
28317 - i)
28318 + if (TEST_HARD_REG_BIT (reg_class_contents[index_regs], i)
28319 && reg_state[i].use_index == RELOAD_COMBINE_MAX_USES
28320 && reg_state[i].store_ruid <= reg_state[regno].use_ruid
28321 && hard_regno_nregs[i][GET_MODE (reg)] == 1)
28322 diff -Nur a/gcc/real.c b/gcc/real.c
28323 --- a/gcc/real.c 2009-02-06 22:01:46.000000000 +0100
28324 +++ b/gcc/real.c 2010-01-25 09:50:29.155687438 +0100
28325 @@ -4513,6 +4513,167 @@
28326 false
28327 };
28328 \f
28329 +/* Encode half-precision floats. This routine is used both for the IEEE
28330 + ARM alternative encodings. */
28331 +static void
28332 +encode_ieee_half (const struct real_format *fmt, long *buf,
28333 + const REAL_VALUE_TYPE *r)
28334 +{
28335 + unsigned long image, sig, exp;
28336 + unsigned long sign = r->sign;
28337 + bool denormal = (r->sig[SIGSZ-1] & SIG_MSB) == 0;
28338 +
28339 + image = sign << 15;
28340 + sig = (r->sig[SIGSZ-1] >> (HOST_BITS_PER_LONG - 11)) & 0x3ff;
28341 +
28342 + switch (r->cl)
28343 + {
28344 + case rvc_zero:
28345 + break;
28346 +
28347 + case rvc_inf:
28348 + if (fmt->has_inf)
28349 + image |= 31 << 10;
28350 + else
28351 + image |= 0x7fff;
28352 + break;
28353 +
28354 + case rvc_nan:
28355 + if (fmt->has_nans)
28356 + {
28357 + if (r->canonical)
28358 + sig = (fmt->canonical_nan_lsbs_set ? (1 << 9) - 1 : 0);
28359 + if (r->signalling == fmt->qnan_msb_set)
28360 + sig &= ~(1 << 9);
28361 + else
28362 + sig |= 1 << 9;
28363 + if (sig == 0)
28364 + sig = 1 << 8;
28365 +
28366 + image |= 31 << 10;
28367 + image |= sig;
28368 + }
28369 + else
28370 + image |= 0x3ff;
28371 + break;
28372 +
28373 + case rvc_normal:
28374 + /* Recall that IEEE numbers are interpreted as 1.F x 2**exp,
28375 + whereas the intermediate representation is 0.F x 2**exp.
28376 + Which means we're off by one. */
28377 + if (denormal)
28378 + exp = 0;
28379 + else
28380 + exp = REAL_EXP (r) + 15 - 1;
28381 + image |= exp << 10;
28382 + image |= sig;
28383 + break;
28384 +
28385 + default:
28386 + gcc_unreachable ();
28387 + }
28388 +
28389 + buf[0] = image;
28390 +}
28391 +
28392 +/* Decode half-precision floats. This routine is used both for the IEEE
28393 + ARM alternative encodings. */
28394 +static void
28395 +decode_ieee_half (const struct real_format *fmt, REAL_VALUE_TYPE *r,
28396 + const long *buf)
28397 +{
28398 + unsigned long image = buf[0] & 0xffff;
28399 + bool sign = (image >> 15) & 1;
28400 + int exp = (image >> 10) & 0x1f;
28401 +
28402 + memset (r, 0, sizeof (*r));
28403 + image <<= HOST_BITS_PER_LONG - 11;
28404 + image &= ~SIG_MSB;
28405 +
28406 + if (exp == 0)
28407 + {
28408 + if (image && fmt->has_denorm)
28409 + {
28410 + r->cl = rvc_normal;
28411 + r->sign = sign;
28412 + SET_REAL_EXP (r, -14);
28413 + r->sig[SIGSZ-1] = image << 1;
28414 + normalize (r);
28415 + }
28416 + else if (fmt->has_signed_zero)
28417 + r->sign = sign;
28418 + }
28419 + else if (exp == 31 && (fmt->has_nans || fmt->has_inf))
28420 + {
28421 + if (image)
28422 + {
28423 + r->cl = rvc_nan;
28424 + r->sign = sign;
28425 + r->signalling = (((image >> (HOST_BITS_PER_LONG - 2)) & 1)
28426 + ^ fmt->qnan_msb_set);
28427 + r->sig[SIGSZ-1] = image;
28428 + }
28429 + else
28430 + {
28431 + r->cl = rvc_inf;
28432 + r->sign = sign;
28433 + }
28434 + }
28435 + else
28436 + {
28437 + r->cl = rvc_normal;
28438 + r->sign = sign;
28439 + SET_REAL_EXP (r, exp - 15 + 1);
28440 + r->sig[SIGSZ-1] = image | SIG_MSB;
28441 + }
28442 +}
28443 +
28444 +/* Half-precision format, as specified in IEEE 754R. */
28445 +const struct real_format ieee_half_format =
28446 + {
28447 + encode_ieee_half,
28448 + decode_ieee_half,
28449 + 2,
28450 + 11,
28451 + 11,
28452 + -13,
28453 + 16,
28454 + 15,
28455 + 15,
28456 + false,
28457 + true,
28458 + true,
28459 + true,
28460 + true,
28461 + true,
28462 + true,
28463 + false
28464 + };
28465 +
28466 +/* ARM's alternative half-precision format, similar to IEEE but with
28467 + no reserved exponent value for NaNs and infinities; rather, it just
28468 + extends the range of exponents by one. */
28469 +const struct real_format arm_half_format =
28470 + {
28471 + encode_ieee_half,
28472 + decode_ieee_half,
28473 + 2,
28474 + 11,
28475 + 11,
28476 + -13,
28477 + 17,
28478 + 15,
28479 + 15,
28480 + false,
28481 + true,
28482 + false,
28483 + false,
28484 + true,
28485 + true,
28486 + false,
28487 + false
28488 + };
28489 +\f
28490 /* A synthetic "format" for internal arithmetic. It's the size of the
28491 internal significand minus the two bits needed for proper rounding.
28492 The encode and decode routines exist only to satisfy our paranoia
28493 diff -Nur a/gcc/real.h b/gcc/real.h
28494 --- a/gcc/real.h 2008-10-29 18:05:42.000000000 +0100
28495 +++ b/gcc/real.h 2010-01-25 09:50:29.155687438 +0100
28496 @@ -304,6 +304,8 @@
28497 extern const struct real_format decimal_single_format;
28498 extern const struct real_format decimal_double_format;
28499 extern const struct real_format decimal_quad_format;
28500 +extern const struct real_format ieee_half_format;
28501 +extern const struct real_format arm_half_format;
28502
28503
28504 /* ====================================================================== */
28505 diff -Nur a/gcc/regrename.c b/gcc/regrename.c
28506 --- a/gcc/regrename.c 2009-02-20 16:20:38.000000000 +0100
28507 +++ b/gcc/regrename.c 2010-01-25 09:50:29.155687438 +0100
28508 @@ -567,14 +567,14 @@
28509 int index_op;
28510 unsigned regno0 = REGNO (op0), regno1 = REGNO (op1);
28511
28512 - if (REGNO_OK_FOR_INDEX_P (regno1)
28513 + if (regno_ok_for_index_p (regno1, mode)
28514 && regno_ok_for_base_p (regno0, mode, PLUS, REG))
28515 index_op = 1;
28516 - else if (REGNO_OK_FOR_INDEX_P (regno0)
28517 + else if (regno_ok_for_index_p (regno0, mode)
28518 && regno_ok_for_base_p (regno1, mode, PLUS, REG))
28519 index_op = 0;
28520 else if (regno_ok_for_base_p (regno0, mode, PLUS, REG)
28521 - || REGNO_OK_FOR_INDEX_P (regno1))
28522 + || regno_ok_for_index_p (regno1, mode))
28523 index_op = 1;
28524 else if (regno_ok_for_base_p (regno1, mode, PLUS, REG))
28525 index_op = 0;
28526 @@ -599,7 +599,7 @@
28527 }
28528
28529 if (locI)
28530 - scan_rtx_address (insn, locI, INDEX_REG_CLASS, action, mode);
28531 + scan_rtx_address (insn, locI, index_reg_class (mode), action, mode);
28532 if (locB)
28533 scan_rtx_address (insn, locB, base_reg_class (mode, PLUS, index_code),
28534 action, mode);
28535 @@ -1488,14 +1488,14 @@
28536 int index_op;
28537 unsigned regno0 = REGNO (op0), regno1 = REGNO (op1);
28538
28539 - if (REGNO_OK_FOR_INDEX_P (regno1)
28540 + if (regno_ok_for_index_p (regno1, mode)
28541 && regno_ok_for_base_p (regno0, mode, PLUS, REG))
28542 index_op = 1;
28543 - else if (REGNO_OK_FOR_INDEX_P (regno0)
28544 + else if (regno_ok_for_index_p (regno0, mode)
28545 && regno_ok_for_base_p (regno1, mode, PLUS, REG))
28546 index_op = 0;
28547 else if (regno_ok_for_base_p (regno0, mode, PLUS, REG)
28548 - || REGNO_OK_FOR_INDEX_P (regno1))
28549 + || regno_ok_for_index_p (regno1, mode))
28550 index_op = 1;
28551 else if (regno_ok_for_base_p (regno1, mode, PLUS, REG))
28552 index_op = 0;
28553 @@ -1520,8 +1520,8 @@
28554 }
28555
28556 if (locI)
28557 - changed |= replace_oldest_value_addr (locI, INDEX_REG_CLASS, mode,
28558 - insn, vd);
28559 + changed |= replace_oldest_value_addr (locI, index_reg_class (mode),
28560 + mode, insn, vd);
28561 if (locB)
28562 changed |= replace_oldest_value_addr (locB,
28563 base_reg_class (mode, PLUS,
28564 diff -Nur a/gcc/reload.c b/gcc/reload.c
28565 --- a/gcc/reload.c 2009-02-20 16:20:38.000000000 +0100
28566 +++ b/gcc/reload.c 2010-01-25 09:50:29.155687438 +0100
28567 @@ -5046,7 +5046,7 @@
28568 loc = &XEXP (*loc, 0);
28569 }
28570
28571 - if (double_reg_address_ok)
28572 + if (double_reg_address_ok && index_reg_class (mode) != NO_REGS)
28573 {
28574 /* Unshare the sum as well. */
28575 *loc = ad = copy_rtx (ad);
28576 @@ -5054,8 +5054,8 @@
28577 /* Reload the displacement into an index reg.
28578 We assume the frame pointer or arg pointer is a base reg. */
28579 find_reloads_address_part (XEXP (ad, 1), &XEXP (ad, 1),
28580 - INDEX_REG_CLASS, GET_MODE (ad), opnum,
28581 - type, ind_levels);
28582 + index_reg_class (mode), GET_MODE (ad),
28583 + opnum, type, ind_levels);
28584 return 0;
28585 }
28586 else
28587 @@ -5448,13 +5448,13 @@
28588 #define REG_OK_FOR_CONTEXT(CONTEXT, REGNO, MODE, OUTER, INDEX) \
28589 ((CONTEXT) == 0 \
28590 ? regno_ok_for_base_p (REGNO, MODE, OUTER, INDEX) \
28591 - : REGNO_OK_FOR_INDEX_P (REGNO))
28592 + : regno_ok_for_index_p (REGNO, MODE))
28593
28594 enum reg_class context_reg_class;
28595 RTX_CODE code = GET_CODE (x);
28596
28597 if (context == 1)
28598 - context_reg_class = INDEX_REG_CLASS;
28599 + context_reg_class = index_reg_class (mode);
28600 else
28601 context_reg_class = base_reg_class (mode, outer_code, index_code);
28602
28603 @@ -5546,17 +5546,17 @@
28604
28605 else if (code0 == REG && code1 == REG)
28606 {
28607 - if (REGNO_OK_FOR_INDEX_P (REGNO (op1))
28608 + if (regno_ok_for_index_p (REGNO (op1), mode)
28609 && regno_ok_for_base_p (REGNO (op0), mode, PLUS, REG))
28610 return 0;
28611 - else if (REGNO_OK_FOR_INDEX_P (REGNO (op0))
28612 + else if (regno_ok_for_index_p (REGNO (op0), mode)
28613 && regno_ok_for_base_p (REGNO (op1), mode, PLUS, REG))
28614 return 0;
28615 else if (regno_ok_for_base_p (REGNO (op0), mode, PLUS, REG))
28616 find_reloads_address_1 (mode, orig_op1, 1, PLUS, SCRATCH,
28617 &XEXP (x, 1), opnum, type, ind_levels,
28618 insn);
28619 - else if (REGNO_OK_FOR_INDEX_P (REGNO (op1)))
28620 + else if (regno_ok_for_index_p (REGNO (op1), mode))
28621 find_reloads_address_1 (mode, orig_op0, 0, PLUS, REG,
28622 &XEXP (x, 0), opnum, type, ind_levels,
28623 insn);
28624 @@ -5564,7 +5564,7 @@
28625 find_reloads_address_1 (mode, orig_op0, 1, PLUS, SCRATCH,
28626 &XEXP (x, 0), opnum, type, ind_levels,
28627 insn);
28628 - else if (REGNO_OK_FOR_INDEX_P (REGNO (op0)))
28629 + else if (regno_ok_for_index_p (REGNO (op0), mode))
28630 find_reloads_address_1 (mode, orig_op1, 0, PLUS, REG,
28631 &XEXP (x, 1), opnum, type, ind_levels,
28632 insn);
28633 @@ -5634,7 +5634,7 @@
28634 need to live longer than a TYPE reload normally would, so be
28635 conservative and class it as RELOAD_OTHER. */
28636 if ((REG_P (XEXP (op1, 1))
28637 - && !REGNO_OK_FOR_INDEX_P (REGNO (XEXP (op1, 1))))
28638 + && !regno_ok_for_index_p (REGNO (XEXP (op1, 1)), mode))
28639 || GET_CODE (XEXP (op1, 1)) == PLUS)
28640 find_reloads_address_1 (mode, XEXP (op1, 1), 1, code, SCRATCH,
28641 &XEXP (op1, 1), opnum, RELOAD_OTHER,
28642 @@ -6128,18 +6128,26 @@
28643 /* For some processors an address may be valid in the
28644 original mode but not in a smaller mode. For
28645 example, ARM accepts a scaled index register in
28646 - SImode but not in HImode. Similarly, the address may
28647 - have been valid before the subreg offset was added,
28648 - but not afterwards. find_reloads_address
28649 - assumes that we pass it a valid address, and doesn't
28650 - force a reload. This will probably be fine if
28651 - find_reloads_address finds some reloads. But if it
28652 - doesn't find any, then we may have just converted a
28653 - valid address into an invalid one. Check for that
28654 - here. */
28655 + SImode but not in HImode. Note that this is only
28656 + a problem if the address in reg_equiv_mem is already
28657 + invalid in the new mode; other cases would be fixed
28658 + by find_reloads_address as usual.
28659 +
28660 + ??? We attempt to handle such cases here by doing an
28661 + additional reload of the full address after the
28662 + usual processing by find_reloads_address. Note that
28663 + this may not work in the general case, but it seems
28664 + to cover the cases where this situation currently
28665 + occurs. A more general fix might be to reload the
28666 + *value* instead of the address, but this would not
28667 + be expected by the callers of this routine as-is.
28668 +
28669 + If find_reloads_address already completed replaced
28670 + the address, there is nothing further to do. */
28671 if (reloaded == 0
28672 - && !strict_memory_address_p (GET_MODE (tem),
28673 - XEXP (tem, 0)))
28674 + && reg_equiv_mem[regno] != 0
28675 + && !strict_memory_address_p (GET_MODE (x),
28676 + XEXP (reg_equiv_mem[regno], 0)))
28677 push_reload (XEXP (tem, 0), NULL_RTX, &XEXP (tem, 0), (rtx*) 0,
28678 base_reg_class (GET_MODE (tem), MEM, SCRATCH),
28679 GET_MODE (XEXP (tem, 0)), VOIDmode, 0, 0,
28680 diff -Nur a/gcc/rtlanal.c b/gcc/rtlanal.c
28681 --- a/gcc/rtlanal.c 2009-03-14 09:10:55.000000000 +0100
28682 +++ b/gcc/rtlanal.c 2010-01-25 09:50:29.155687438 +0100
28683 @@ -2913,62 +2913,78 @@
28684 commutative_operand_precedence (rtx op)
28685 {
28686 enum rtx_code code = GET_CODE (op);
28687 + int value;
28688
28689 /* Constants always come the second operand. Prefer "nice" constants. */
28690 if (code == CONST_INT)
28691 - return -8;
28692 - if (code == CONST_DOUBLE)
28693 - return -7;
28694 - if (code == CONST_FIXED)
28695 - return -7;
28696 - op = avoid_constant_pool_reference (op);
28697 - code = GET_CODE (op);
28698 -
28699 - switch (GET_RTX_CLASS (code))
28700 - {
28701 - case RTX_CONST_OBJ:
28702 - if (code == CONST_INT)
28703 - return -6;
28704 - if (code == CONST_DOUBLE)
28705 - return -5;
28706 - if (code == CONST_FIXED)
28707 - return -5;
28708 - return -4;
28709 -
28710 - case RTX_EXTRA:
28711 - /* SUBREGs of objects should come second. */
28712 - if (code == SUBREG && OBJECT_P (SUBREG_REG (op)))
28713 - return -3;
28714 - return 0;
28715 + value = -8;
28716 + else if (code == CONST_DOUBLE)
28717 + value = -7;
28718 + else if (code == CONST_FIXED)
28719 + value = -7;
28720 + else
28721 + {
28722 + op = avoid_constant_pool_reference (op);
28723 + code = GET_CODE (op);
28724 +
28725 + switch (GET_RTX_CLASS (code))
28726 + {
28727 + case RTX_CONST_OBJ:
28728 + if (code == CONST_INT)
28729 + value = -6;
28730 + else if (code == CONST_DOUBLE)
28731 + value = -5;
28732 + else if (code == CONST_FIXED)
28733 + value = -5;
28734 + else
28735 + value = -4;
28736 + break;
28737 +
28738 + case RTX_EXTRA:
28739 + /* SUBREGs of objects should come second. */
28740 + if (code == SUBREG && OBJECT_P (SUBREG_REG (op)))
28741 + value = -3;
28742 + else
28743 + value = 0;
28744 + break;
28745 +
28746 + case RTX_OBJ:
28747 + /* Complex expressions should be the first, so decrease priority
28748 + of objects. */
28749 + value = -1;
28750 + break;
28751
28752 - case RTX_OBJ:
28753 - /* Complex expressions should be the first, so decrease priority
28754 - of objects. Prefer pointer objects over non pointer objects. */
28755 - if ((REG_P (op) && REG_POINTER (op))
28756 - || (MEM_P (op) && MEM_POINTER (op)))
28757 - return -1;
28758 - return -2;
28759 -
28760 - case RTX_COMM_ARITH:
28761 - /* Prefer operands that are themselves commutative to be first.
28762 - This helps to make things linear. In particular,
28763 - (and (and (reg) (reg)) (not (reg))) is canonical. */
28764 - return 4;
28765 -
28766 - case RTX_BIN_ARITH:
28767 - /* If only one operand is a binary expression, it will be the first
28768 - operand. In particular, (plus (minus (reg) (reg)) (neg (reg)))
28769 - is canonical, although it will usually be further simplified. */
28770 - return 2;
28771 + case RTX_COMM_ARITH:
28772 + /* Prefer operands that are themselves commutative to be first.
28773 + This helps to make things linear. In particular,
28774 + (and (and (reg) (reg)) (not (reg))) is canonical. */
28775 + value = 4;
28776 + break;
28777 +
28778 + case RTX_BIN_ARITH:
28779 + /* If only one operand is a binary expression, it will be the first
28780 + operand. In particular, (plus (minus (reg) (reg)) (neg (reg)))
28781 + is canonical, although it will usually be further simplified. */
28782 + value = 2;
28783 + break;
28784
28785 - case RTX_UNARY:
28786 - /* Then prefer NEG and NOT. */
28787 - if (code == NEG || code == NOT)
28788 - return 1;
28789 + case RTX_UNARY:
28790 + /* Then prefer NEG and NOT. */
28791 + if (code == NEG || code == NOT)
28792 + value = 1;
28793 + else
28794 + value = 0;
28795 + break;
28796
28797 - default:
28798 - return 0;
28799 + default:
28800 + value = 0;
28801 + }
28802 }
28803 +
28804 + if (targetm.commutative_operand_precedence)
28805 + value = targetm.commutative_operand_precedence (op, value);
28806 +
28807 + return value;
28808 }
28809
28810 /* Return 1 iff it is necessary to swap operands of commutative operation
28811 diff -Nur a/gcc/rtl.def b/gcc/rtl.def
28812 --- a/gcc/rtl.def 2008-02-26 17:05:24.000000000 +0100
28813 +++ b/gcc/rtl.def 2010-01-25 09:50:29.155687438 +0100
28814 @@ -1088,7 +1088,11 @@
28815 guard for the bypass. The function will get the two insns as
28816 parameters. If the function returns zero the bypass will be
28817 ignored for this case. Additional guard is necessary to recognize
28818 - complicated bypasses, e.g. when consumer is load address. */
28819 + complicated bypasses, e.g. when consumer is load address. If there
28820 + are more one bypass with the same output and input insns, the
28821 + chosen bypass is the first bypass with a guard in description whose
28822 + guard function returns nonzero. If there is no such bypass, then
28823 + bypass without the guard function is chosen. */
28824 DEF_RTL_EXPR(DEFINE_BYPASS, "define_bypass", "issS", RTX_EXTRA)
28825
28826 /* (define_automaton string) describes names of automata generated and
28827 diff -Nur a/gcc/sched-ebb.c b/gcc/sched-ebb.c
28828 --- a/gcc/sched-ebb.c 2009-02-20 16:20:38.000000000 +0100
28829 +++ b/gcc/sched-ebb.c 2010-01-25 09:50:29.155687438 +0100
28830 @@ -286,6 +286,7 @@
28831 rank,
28832 ebb_print_insn,
28833 ebb_contributes_to_priority,
28834 + NULL, /* insn_finishes_block_p */
28835
28836 NULL, NULL,
28837 NULL, NULL,
28838 diff -Nur a/gcc/sched-int.h b/gcc/sched-int.h
28839 --- a/gcc/sched-int.h 2009-02-20 16:20:38.000000000 +0100
28840 +++ b/gcc/sched-int.h 2010-01-25 09:50:29.155687438 +0100
28841 @@ -558,6 +558,10 @@
28842 calculations. */
28843 int (*contributes_to_priority) (rtx, rtx);
28844
28845 + /* Return true if scheduling insn (passed as the parameter) will trigger
28846 + finish of scheduling current block. */
28847 + bool (*insn_finishes_block_p) (rtx);
28848 +
28849 /* The boundaries of the set of insns to be scheduled. */
28850 rtx prev_head, next_tail;
28851
28852 diff -Nur a/gcc/sched-rgn.c b/gcc/sched-rgn.c
28853 --- a/gcc/sched-rgn.c 2008-09-18 10:29:48.000000000 +0200
28854 +++ b/gcc/sched-rgn.c 2010-01-25 09:50:29.155687438 +0100
28855 @@ -2338,6 +2338,19 @@
28856 0, 0, 0
28857 };
28858
28859 +/* Return true if scheduling INSN will trigger finish of scheduling
28860 + current block. */
28861 +static bool
28862 +rgn_insn_finishes_block_p (rtx insn)
28863 +{
28864 + if (INSN_BB (insn) == target_bb
28865 + && sched_target_n_insns + 1 == target_n_insns)
28866 + /* INSN is the last not-scheduled instruction in the current block. */
28867 + return true;
28868 +
28869 + return false;
28870 +}
28871 +
28872 /* Used in schedule_insns to initialize current_sched_info for scheduling
28873 regions (or single basic blocks). */
28874
28875 @@ -2350,6 +2363,7 @@
28876 rgn_rank,
28877 rgn_print_insn,
28878 contributes_to_priority,
28879 + rgn_insn_finishes_block_p,
28880
28881 NULL, NULL,
28882 NULL, NULL,
28883 diff -Nur a/gcc/sdbout.c b/gcc/sdbout.c
28884 --- a/gcc/sdbout.c 2009-02-20 16:20:38.000000000 +0100
28885 +++ b/gcc/sdbout.c 2010-01-25 09:50:29.155687438 +0100
28886 @@ -337,6 +337,7 @@
28887 debug_nothing_int, /* handle_pch */
28888 debug_nothing_rtx, /* var_location */
28889 debug_nothing_void, /* switch_text_section */
28890 + debug_nothing_tree_tree, /* set_name */
28891 0 /* start_end_main_source_file */
28892 };
28893
28894 diff -Nur a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
28895 --- a/gcc/sel-sched-ir.c 2008-10-12 01:39:21.000000000 +0200
28896 +++ b/gcc/sel-sched-ir.c 2010-01-25 09:50:29.165687452 +0100
28897 @@ -5431,6 +5431,7 @@
28898 NULL, /* rgn_rank */
28899 sel_print_insn, /* rgn_print_insn */
28900 contributes_to_priority,
28901 + NULL, /* insn_finishes_block_p */
28902
28903 NULL, NULL,
28904 NULL, NULL,
28905 diff -Nur a/gcc/target-def.h b/gcc/target-def.h
28906 --- a/gcc/target-def.h 2009-02-20 16:20:38.000000000 +0100
28907 +++ b/gcc/target-def.h 2010-01-25 09:50:29.165687452 +0100
28908 @@ -84,7 +84,7 @@
28909 #define TARGET_ASM_INTERNAL_LABEL default_internal_label
28910 #endif
28911
28912 -#ifndef TARGET_ARM_TTYPE
28913 +#ifndef TARGET_ASM_TTYPE
28914 #define TARGET_ASM_TTYPE hook_bool_rtx_false
28915 #endif
28916
28917 @@ -208,6 +208,10 @@
28918 #define TARGET_EXTRA_LIVE_ON_ENTRY hook_void_bitmap
28919 #endif
28920
28921 +#ifndef TARGET_WARN_FUNC_RESULT
28922 +#define TARGET_WARN_FUNC_RESULT hook_bool_void_true
28923 +#endif
28924 +
28925 #ifndef TARGET_ASM_FILE_START_APP_OFF
28926 #define TARGET_ASM_FILE_START_APP_OFF false
28927 #endif
28928 @@ -383,6 +387,9 @@
28929 #define TARGET_VECTOR_ALIGNMENT_REACHABLE \
28930 default_builtin_vector_alignment_reachable
28931 #define TARGET_VECTORIZE_BUILTIN_VEC_PERM 0
28932 +#define TARGET_VECTOR_MIN_ALIGNMENT \
28933 + default_vector_min_alignment
28934 +#define TARGET_VECTOR_ALWAYS_MISALIGN hook_bool_const_tree_false
28935
28936 #define TARGET_VECTORIZE \
28937 { \
28938 @@ -393,7 +400,9 @@
28939 TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD, \
28940 TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST, \
28941 TARGET_VECTOR_ALIGNMENT_REACHABLE, \
28942 - TARGET_VECTORIZE_BUILTIN_VEC_PERM \
28943 + TARGET_VECTORIZE_BUILTIN_VEC_PERM, \
28944 + TARGET_VECTOR_MIN_ALIGNMENT, \
28945 + TARGET_VECTOR_ALWAYS_MISALIGN, \
28946 }
28947
28948 #define TARGET_DEFAULT_TARGET_FLAGS 0
28949 @@ -504,6 +513,7 @@
28950 #define TARGET_ALLOCATE_INITIAL_VALUE NULL
28951
28952 #define TARGET_UNSPEC_MAY_TRAP_P default_unspec_may_trap_p
28953 +#define TARGET_COMMUTATIVE_OPERAND_PRECEDENCE NULL
28954
28955 #ifndef TARGET_SET_CURRENT_FUNCTION
28956 #define TARGET_SET_CURRENT_FUNCTION hook_void_tree
28957 @@ -532,6 +542,10 @@
28958 #define TARGET_INVALID_CONVERSION hook_constcharptr_const_tree_const_tree_null
28959 #define TARGET_INVALID_UNARY_OP hook_constcharptr_int_const_tree_null
28960 #define TARGET_INVALID_BINARY_OP hook_constcharptr_int_const_tree_const_tree_null
28961 +#define TARGET_INVALID_PARAMETER_TYPE hook_constcharptr_const_tree_null
28962 +#define TARGET_INVALID_RETURN_TYPE hook_constcharptr_const_tree_null
28963 +#define TARGET_PROMOTED_TYPE hook_tree_const_tree_null
28964 +#define TARGET_CONVERT_TO_TYPE hook_tree_tree_tree_null
28965
28966 #define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false
28967
28968 @@ -590,6 +604,7 @@
28969 #define TARGET_ARG_PARTIAL_BYTES hook_int_CUMULATIVE_ARGS_mode_tree_bool_0
28970
28971 #define TARGET_FUNCTION_VALUE default_function_value
28972 +#define TARGET_LIBCALL_VALUE default_libcall_value
28973 #define TARGET_INTERNAL_ARG_POINTER default_internal_arg_pointer
28974 #define TARGET_UPDATE_STACK_BOUNDARY NULL
28975 #define TARGET_GET_DRAP_RTX NULL
28976 @@ -613,6 +628,7 @@
28977 TARGET_ARG_PARTIAL_BYTES, \
28978 TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN, \
28979 TARGET_FUNCTION_VALUE, \
28980 + TARGET_LIBCALL_VALUE, \
28981 TARGET_INTERNAL_ARG_POINTER, \
28982 TARGET_UPDATE_STACK_BOUNDARY, \
28983 TARGET_GET_DRAP_RTX, \
28984 @@ -716,6 +732,11 @@
28985 #define TARGET_CXX_ADJUST_CLASS_AT_DEFINITION hook_void_tree
28986 #endif
28987
28988 +
28989 +#ifndef TARGET_CXX_TTYPE_REF_ENCODE
28990 +#define TARGET_CXX_TTYPE_REF_ENCODE NULL
28991 +#endif
28992 +
28993 #define TARGET_CXX \
28994 { \
28995 TARGET_CXX_GUARD_TYPE, \
28996 @@ -730,7 +751,8 @@
28997 TARGET_CXX_LIBRARY_RTTI_COMDAT, \
28998 TARGET_CXX_USE_AEABI_ATEXIT, \
28999 TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT, \
29000 - TARGET_CXX_ADJUST_CLASS_AT_DEFINITION \
29001 + TARGET_CXX_ADJUST_CLASS_AT_DEFINITION, \
29002 + TARGET_CXX_TTYPE_REF_ENCODE \
29003 }
29004
29005 /* EMUTLS specific */
29006 @@ -886,6 +908,7 @@
29007 TARGET_ADDRESS_COST, \
29008 TARGET_ALLOCATE_INITIAL_VALUE, \
29009 TARGET_UNSPEC_MAY_TRAP_P, \
29010 + TARGET_COMMUTATIVE_OPERAND_PRECEDENCE, \
29011 TARGET_DWARF_REGISTER_SPAN, \
29012 TARGET_INIT_DWARF_REG_SIZES_EXTRA, \
29013 TARGET_FIXED_CONDITION_CODE_REGS, \
29014 @@ -913,6 +936,10 @@
29015 TARGET_INVALID_CONVERSION, \
29016 TARGET_INVALID_UNARY_OP, \
29017 TARGET_INVALID_BINARY_OP, \
29018 + TARGET_INVALID_PARAMETER_TYPE, \
29019 + TARGET_INVALID_RETURN_TYPE, \
29020 + TARGET_PROMOTED_TYPE, \
29021 + TARGET_CONVERT_TO_TYPE, \
29022 TARGET_IRA_COVER_CLASSES, \
29023 TARGET_SECONDARY_RELOAD, \
29024 TARGET_EXPAND_TO_RTL_HOOK, \
29025 @@ -923,6 +950,7 @@
29026 TARGET_EMUTLS, \
29027 TARGET_OPTION_HOOKS, \
29028 TARGET_EXTRA_LIVE_ON_ENTRY, \
29029 + TARGET_WARN_FUNC_RESULT, \
29030 TARGET_UNWIND_TABLES_DEFAULT, \
29031 TARGET_HAVE_NAMED_SECTIONS, \
29032 TARGET_HAVE_SWITCHABLE_BSS_SECTIONS, \
29033 diff -Nur a/gcc/target.h b/gcc/target.h
29034 --- a/gcc/target.h 2009-02-20 16:20:38.000000000 +0100
29035 +++ b/gcc/target.h 2010-01-25 09:50:29.165687452 +0100
29036 @@ -473,7 +473,16 @@
29037
29038 /* Target builtin that implements vector permute. */
29039 tree (* builtin_vec_perm) (tree, tree*);
29040 -} vectorize;
29041 +
29042 + /* Return the minimum alignment required to load or store a
29043 + vector of the given type, which may be less than the
29044 + natural alignment of the type. */
29045 + int (* vector_min_alignment) (const_tree);
29046 +
29047 + /* Return true if "movmisalign" patterns should be used for all
29048 + loads/stores from data arrays. */
29049 + bool (* always_misalign) (const_tree);
29050 + } vectorize;
29051
29052 /* The initial value of target_flags. */
29053 int default_target_flags;
29054 @@ -694,6 +703,10 @@
29055 FLAGS has the same meaning as in rtlanal.c: may_trap_p_1. */
29056 int (* unspec_may_trap_p) (const_rtx x, unsigned flags);
29057
29058 + /* Return a value indicating whether an operand of a commutative
29059 + operation is preferred as the first or second operand. */
29060 + int (* commutative_operand_precedence) (const_rtx, int);
29061 +
29062 /* Given a register, this hook should return a parallel of registers
29063 to represent where to find the register pieces. Define this hook
29064 if the register and its mode are represented in Dwarf in
29065 @@ -870,6 +883,10 @@
29066 rtx (*function_value) (const_tree ret_type, const_tree fn_decl_or_type,
29067 bool outgoing);
29068
29069 + /* Return the rtx for the result of a libcall of mode MODE,
29070 + calling the function FN_NAME. */
29071 + rtx (*libcall_value) (enum machine_mode, rtx);
29072 +
29073 /* Return an rtx for the argument pointer incoming to the
29074 current function. */
29075 rtx (*internal_arg_pointer) (void);
29076 @@ -899,6 +916,24 @@
29077 is not permitted on TYPE1 and TYPE2, NULL otherwise. */
29078 const char *(*invalid_binary_op) (int op, const_tree type1, const_tree type2);
29079
29080 + /* Return the diagnostic message string if TYPE is not valid as a
29081 + function parameter type, NULL otherwise. */
29082 + const char *(*invalid_parameter_type) (const_tree type);
29083 +
29084 + /* Return the diagnostic message string if TYPE is not valid as a
29085 + function return type, NULL otherwise. */
29086 + const char *(*invalid_return_type) (const_tree type);
29087 +
29088 + /* If values of TYPE are promoted to some other type when used in
29089 + expressions (analogous to the integer promotions), return that type,
29090 + or NULL_TREE otherwise. */
29091 + tree (*promoted_type) (const_tree type);
29092 +
29093 + /* Convert EXPR to TYPE, if target-specific types with special conversion
29094 + rules are involved. Return the converted expression, or NULL to apply
29095 + the standard conversion rules. */
29096 + tree (*convert_to_type) (tree type, tree expr);
29097 +
29098 /* Return the array of IRA cover classes for the current target. */
29099 const enum reg_class *(*ira_cover_classes) (void);
29100
29101 @@ -977,6 +1012,11 @@
29102 class (eg, tweak visibility or perform any other required
29103 target modifications). */
29104 void (*adjust_class_at_definition) (tree type);
29105 + /* Encode a reference type info, used for catching pointer
29106 + references. The provided expression will be the address of the
29107 + type info object of the type to which a reference is being
29108 + caught. */
29109 + tree (* ttype_ref_encode) (tree);
29110 } cxx;
29111
29112 /* Functions and data for emulated TLS support. */
29113 @@ -1040,6 +1080,10 @@
29114 bits in the bitmap passed in. */
29115 void (*live_on_entry) (bitmap);
29116
29117 + /* Return false if warnings about missing return statements or suspect
29118 + noreturn attributes should be suppressed for the current function. */
29119 + bool (*warn_func_result) (void);
29120 +
29121 /* True if unwinding tables should be generated by default. */
29122 bool unwind_tables_default;
29123
29124 diff -Nur a/gcc/targhooks.c b/gcc/targhooks.c
29125 --- a/gcc/targhooks.c 2009-02-20 16:20:38.000000000 +0100
29126 +++ b/gcc/targhooks.c 2010-01-25 09:50:29.165687452 +0100
29127 @@ -441,6 +441,15 @@
29128 return NULL;
29129 }
29130
29131 +tree
29132 +hook_cxx_ttype_ref_in_bit0 (tree exp)
29133 +{
29134 + exp = convert (build_pointer_type (char_type_node), exp);
29135 + exp = pointer_int_sum (PLUS_EXPR, exp, integer_one_node);
29136 +
29137 + return exp;
29138 +}
29139 +
29140 /* Initialize the stack protection decls. */
29141
29142 /* Stack protection related decls living in libgcc. */
29143 @@ -561,6 +570,12 @@
29144 }
29145
29146 rtx
29147 +default_libcall_value (enum machine_mode mode, rtx fun ATTRIBUTE_UNUSED)
29148 +{
29149 + return LIBCALL_VALUE (mode);
29150 +}
29151 +
29152 +rtx
29153 default_internal_arg_pointer (void)
29154 {
29155 /* If the reg that the virtual arg pointer will be translated into is
29156 @@ -712,6 +727,12 @@
29157 return true;
29158 }
29159
29160 +int
29161 +default_vector_min_alignment (const_tree type)
29162 +{
29163 + return TYPE_ALIGN_UNIT (type);
29164 +}
29165 +
29166 bool
29167 default_hard_regno_scratch_ok (unsigned int regno ATTRIBUTE_UNUSED)
29168 {
29169 diff -Nur a/gcc/targhooks.h b/gcc/targhooks.h
29170 --- a/gcc/targhooks.h 2009-02-20 16:20:38.000000000 +0100
29171 +++ b/gcc/targhooks.h 2010-01-25 09:50:29.165687452 +0100
29172 @@ -48,6 +48,7 @@
29173
29174 extern tree default_cxx_guard_type (void);
29175 extern tree default_cxx_get_cookie_size (tree);
29176 +extern tree hook_cxx_ttype_ref_in_bit0 (tree);
29177
29178 extern bool hook_pass_by_reference_must_pass_in_stack
29179 (CUMULATIVE_ARGS *, enum machine_mode mode, const_tree, bool);
29180 @@ -71,6 +72,8 @@
29181
29182 extern bool default_builtin_vector_alignment_reachable (const_tree, bool);
29183
29184 +extern int default_vector_min_alignment (const_tree);
29185 +
29186 /* These are here, and not in hooks.[ch], because not all users of
29187 hooks.h include tm.h, and thus we don't have CUMULATIVE_ARGS. */
29188
29189 @@ -87,6 +90,7 @@
29190 (const_tree, const_tree, const_tree);
29191 extern bool hook_bool_const_rtx_commutative_p (const_rtx, int);
29192 extern rtx default_function_value (const_tree, const_tree, bool);
29193 +extern rtx default_libcall_value (enum machine_mode, rtx);
29194 extern rtx default_internal_arg_pointer (void);
29195 #ifdef IRA_COVER_CLASSES
29196 extern const enum reg_class *default_ira_cover_classes (void);
29197 diff -Nur a/gcc/testsuite/gcc.c-torture/execute/990208-1.x b/gcc/testsuite/gcc.c-torture/execute/990208-1.x
29198 --- a/gcc/testsuite/gcc.c-torture/execute/990208-1.x 1970-01-01 01:00:00.000000000 +0100
29199 +++ b/gcc/testsuite/gcc.c-torture/execute/990208-1.x 2010-01-25 09:50:29.165687452 +0100
29200 @@ -0,0 +1,12 @@
29201 +
29202 +# On ARM, with -Os, some of the functions that this test
29203 +# expects to be inlined are not inlined for code size
29204 +# reasons. This is not a bug, it's intentional,
29205 +# so stop this test from running.
29206 +set torture_eval_before_compile {
29207 + if { [istarget "arm-*-*"] && [string match {*-Os*} "$option"] } {
29208 + continue
29209 + }
29210 +}
29211 +
29212 +return 0
29213 \ No newline at end of file
29214 diff -Nur a/gcc/testsuite/gcc.c-torture/execute/bcp-1.x b/gcc/testsuite/gcc.c-torture/execute/bcp-1.x
29215 --- a/gcc/testsuite/gcc.c-torture/execute/bcp-1.x 1970-01-01 01:00:00.000000000 +0100
29216 +++ b/gcc/testsuite/gcc.c-torture/execute/bcp-1.x 2010-01-25 09:50:29.165687452 +0100
29217 @@ -0,0 +1,12 @@
29218 +
29219 +# On ARM, with -Os, some of the functions that this test
29220 +# expects to be inlined are not inlined for code size
29221 +# reasons. This is not a bug, it's intentional,
29222 +# so stop this test from running.
29223 +set torture_eval_before_compile {
29224 + if { [istarget "arm-*-*"] && [string match {*-Os*} "$option"] } {
29225 + continue
29226 + }
29227 +}
29228 +
29229 +return 0
29230 \ No newline at end of file
29231 diff -Nur a/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp b/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
29232 --- a/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp 2009-03-16 22:11:57.000000000 +0100
29233 +++ b/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp 2010-01-25 09:50:29.165687452 +0100
29234 @@ -54,6 +54,9 @@
29235 || [istarget "sh*-*-*"] } then {
29236 lappend additional_flags "-mieee"
29237 }
29238 +if [istarget "mips*-sde-*"] then {
29239 + lappend additional_flags "-Wl,--defsym=__cs3_mips_float_type=2" "-lcs3-mips-cp1" "-lcs3-mips-fpemu"
29240 +}
29241
29242 # load support procs
29243 load_lib c-torture.exp
29244 diff -Nur a/gcc/testsuite/gcc.dg/builtin-redefine.c b/gcc/testsuite/gcc.dg/builtin-redefine.c
29245 --- a/gcc/testsuite/gcc.dg/builtin-redefine.c 2008-09-18 17:39:08.000000000 +0200
29246 +++ b/gcc/testsuite/gcc.dg/builtin-redefine.c 2010-01-25 09:50:29.165687452 +0100
29247 @@ -28,7 +28,7 @@
29248 #define __TIME__ "X" /* Re-define while defined. */
29249
29250 #define __TIME__ "Y" /* { dg-warning "\"__TIME__\" redefined" } */
29251 -/* { dg-warning "previous definition" "" { target *-*-* } 28 } */
29252 +/* { dg-message "previous definition" "" { target *-*-* } 28 } */
29253
29254 #undef __TIME__ /* Undefine while defined. */
29255
29256 @@ -39,7 +39,7 @@
29257 #define __DATE__ "X" /* Re-define while defined. */
29258
29259 #define __DATE__ "Y" /* { dg-warning "\"__DATE__\" redefined" } */
29260 -/* { dg-warning "previous definition" "" { target *-*-* } 39 } */
29261 +/* { dg-message "previous definition" "" { target *-*-* } 39 } */
29262
29263 #undef __DATE__ /* Undefine while defined. */
29264
29265 @@ -48,7 +48,7 @@
29266 #define __TIMESTAMP__ "X" /* Re-define while defined. */
29267
29268 #define __TIMESTAMP__ "Y" /* { dg-warning "\"__TIMESTAMP__\" redefined" } */
29269 -/* { dg-warning "previous definition" "" { target *-*-* } 48 } */
29270 +/* { dg-message "previous definition" "" { target *-*-* } 48 } */
29271
29272 #undef __TIMESTAMP__ /* Undefine while defined. */
29273
29274 diff -Nur a/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c b/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
29275 --- a/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c 2009-03-19 23:10:22.000000000 +0100
29276 +++ b/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c 2010-01-25 09:50:29.165687452 +0100
29277 @@ -46,7 +46,7 @@
29278 "/* { dg-options \"%s-I%s\" } */\n",
29279 "/* { dg-options \"%s-I%s -Wno-abi\" } */\n",
29280 "/* { dg-options \"%s-I%s -mno-mmx -Wno-abi\" { target i?86-*-* x86_64-*-* } } */\n",
29281 -"/* { dg-options \"%s-I%s -fno-common\" { target hppa*-*-hpux* powerpc*-*-darwin* *-*-mingw32* *-*-cygwin* } } */\n",
29282 +"/* { dg-options \"%s-I%s -fno-common\" { target hppa*-*-hpux* powerpc*-*-darwin* } } */\n",
29283 "/* { dg-options \"%s-I%s -mno-mmx -fno-common -Wno-abi\" { target i?86-*-darwin* x86_64-*-darwin* } } */\n",
29284 "/* { dg-options \"%s-I%s -mno-base-addresses\" { target mmix-*-* } } */\n",
29285 "/* { dg-options \"%s-I%s -mlongcalls -mtext-section-literals\" { target xtensa*-*-* } } */\n"
29286 diff -Nur a/gcc/testsuite/gcc.dg/cpp/include2a.c b/gcc/testsuite/gcc.dg/cpp/include2a.c
29287 --- a/gcc/testsuite/gcc.dg/cpp/include2a.c 1970-01-01 01:00:00.000000000 +0100
29288 +++ b/gcc/testsuite/gcc.dg/cpp/include2a.c 2010-01-25 09:50:29.165687452 +0100
29289 @@ -0,0 +1,16 @@
29290 +/* Copyright (C) 2000 Free Software Foundation, Inc. */
29291 +
29292 +/* { dg-do preprocess } */
29293 +
29294 +/* Tests that #include does not allow the terminating '>' or '"' to be
29295 + escaped, as per the standard. */
29296 +
29297 +/* Source: Neil Booth, 4 Nov 2000. */
29298 +
29299 +#include "silly\"" /* { dg-error "extra tokens" "" } */
29300 +
29301 +/* These error is No such file or directory, just once. However, this
29302 + message is locale-dependent, so don't test for it. */
29303 +/* { dg-error "silly" "" { target *-*-* } 10 } */
29304 +/* { dg-error "missing" "" { target *-*-* } 10 } */
29305 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29306 diff -Nur a/gcc/testsuite/gcc.dg/cpp/include2.c b/gcc/testsuite/gcc.dg/cpp/include2.c
29307 --- a/gcc/testsuite/gcc.dg/cpp/include2.c 2007-05-17 22:58:47.000000000 +0200
29308 +++ b/gcc/testsuite/gcc.dg/cpp/include2.c 2010-01-25 09:50:29.165687452 +0100
29309 @@ -8,9 +8,8 @@
29310 /* Source: Neil Booth, 4 Nov 2000. */
29311
29312 #include <silly\>> /* { dg-error "extra tokens" "" } */
29313 -#include "silly\"" /* { dg-error "extra tokens" "" } */
29314
29315 /* These error is No such file or directory, just once. However, this
29316 message is locale-dependent, so don't test for it. */
29317 /* { dg-error "silly" "" { target *-*-* } 10 } */
29318 -/* { dg-error "missing" "" { target *-*-* } 11 } */
29319 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29320 diff -Nur a/gcc/testsuite/gcc.dg/cpp/missing-header-1.c b/gcc/testsuite/gcc.dg/cpp/missing-header-1.c
29321 --- a/gcc/testsuite/gcc.dg/cpp/missing-header-1.c 1970-01-01 01:00:00.000000000 +0100
29322 +++ b/gcc/testsuite/gcc.dg/cpp/missing-header-1.c 2010-01-25 09:50:29.165687452 +0100
29323 @@ -0,0 +1,9 @@
29324 +/* Test that missing headers are fatal errors. PR 15638. */
29325 +/* { dg-do compile } */
29326 +/* { dg-options "" } */
29327 +
29328 +#include "nonexistent.h" /* { dg-error "nonexistent.h" } */
29329 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29330 +
29331 +/* This declaration should not receive any diagnostic. */
29332 +foo bar;
29333 diff -Nur a/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c b/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c
29334 --- a/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c 1970-01-01 01:00:00.000000000 +0100
29335 +++ b/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c 2010-01-25 09:50:29.165687452 +0100
29336 @@ -0,0 +1,6 @@
29337 +/* Test that missing user headers are fatal errors with -MD. */
29338 +/* { dg-do compile } */
29339 +/* { dg-options "-MD" } */
29340 +
29341 +#include "nonexistent.h" /* { dg-error "nonexistent.h" } */
29342 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29343 diff -Nur a/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c b/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c
29344 --- a/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c 1970-01-01 01:00:00.000000000 +0100
29345 +++ b/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c 2010-01-25 09:50:29.165687452 +0100
29346 @@ -0,0 +1,6 @@
29347 +/* Test that missing user headers are fatal errors with -MMD. */
29348 +/* { dg-do compile } */
29349 +/* { dg-options "-MMD" } */
29350 +
29351 +#include "nonexistent.h" /* { dg-error "nonexistent.h" } */
29352 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29353 diff -Nur a/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c b/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c
29354 --- a/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c 1970-01-01 01:00:00.000000000 +0100
29355 +++ b/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c 2010-01-25 09:50:29.165687452 +0100
29356 @@ -0,0 +1,6 @@
29357 +/* Test that missing system headers are fatal errors with -MD. */
29358 +/* { dg-do compile } */
29359 +/* { dg-options "-MD" } */
29360 +
29361 +#include <nonexistent.h> /* { dg-error "nonexistent.h" } */
29362 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29363 diff -Nur a/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c b/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c
29364 --- a/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c 1970-01-01 01:00:00.000000000 +0100
29365 +++ b/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c 2010-01-25 09:50:29.165687452 +0100
29366 @@ -0,0 +1,6 @@
29367 +/* Test that missing system headers are fatal errors with -MMD. */
29368 +/* { dg-do compile } */
29369 +/* { dg-options "-MMD" } */
29370 +
29371 +#include <nonexistent.h> /* { dg-error "nonexistent.h" } */
29372 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29373 diff -Nur a/gcc/testsuite/gcc.dg/cpp/redef2.c b/gcc/testsuite/gcc.dg/cpp/redef2.c
29374 --- a/gcc/testsuite/gcc.dg/cpp/redef2.c 2001-11-23 08:50:42.000000000 +0100
29375 +++ b/gcc/testsuite/gcc.dg/cpp/redef2.c 2010-01-25 09:50:29.165687452 +0100
29376 @@ -23,9 +23,9 @@
29377 { dg-warning "redefined" "redef ro" { target *-*-* } 12 }
29378 { dg-warning "redefined" "redef va" { target *-*-* } 15 }
29379
29380 - { dg-warning "previous" "prev def mac" { target *-*-* } 6 }
29381 - { dg-warning "previous" "prev def mac" { target *-*-* } 7 }
29382 - { dg-warning "previous" "prev def mac" { target *-*-* } 8 }
29383 - { dg-warning "previous" "prev def ro" { target *-*-* } 11 }
29384 - { dg-warning "previous" "prev def va" { target *-*-* } 14 }
29385 + { dg-message "previous" "prev def mac" { target *-*-* } 6 }
29386 + { dg-message "previous" "prev def mac" { target *-*-* } 7 }
29387 + { dg-message "previous" "prev def mac" { target *-*-* } 8 }
29388 + { dg-message "previous" "prev def ro" { target *-*-* } 11 }
29389 + { dg-message "previous" "prev def va" { target *-*-* } 14 }
29390 */
29391 diff -Nur a/gcc/testsuite/gcc.dg/cpp/redef3.c b/gcc/testsuite/gcc.dg/cpp/redef3.c
29392 --- a/gcc/testsuite/gcc.dg/cpp/redef3.c 2003-06-01 20:55:15.000000000 +0200
29393 +++ b/gcc/testsuite/gcc.dg/cpp/redef3.c 2010-01-25 09:50:29.165687452 +0100
29394 @@ -15,7 +15,7 @@
29395 { dg-warning "redefined" "redef B" { target *-*-* } 9 }
29396 { dg-warning "redefined" "redef D" { target *-*-* } 11 }
29397 { dg-warning "redefined" "redef E" { target *-*-* } 12 }
29398 - { dg-warning "previous" "prev def A" { target *-*-* } 6 }
29399 - { dg-warning "previous" "prev def B" { target *-*-* } 8 }
29400 - { dg-warning "previous" "prev def D/E" { target *-*-* } 0 }
29401 + { dg-message "previous" "prev def A" { target *-*-* } 6 }
29402 + { dg-message "previous" "prev def B" { target *-*-* } 8 }
29403 + { dg-message "previous" "prev def D/E" { target *-*-* } 0 }
29404 */
29405 diff -Nur a/gcc/testsuite/gcc.dg/cpp/trad/redef2.c b/gcc/testsuite/gcc.dg/cpp/trad/redef2.c
29406 --- a/gcc/testsuite/gcc.dg/cpp/trad/redef2.c 2002-06-21 07:29:09.000000000 +0200
29407 +++ b/gcc/testsuite/gcc.dg/cpp/trad/redef2.c 2010-01-25 09:50:29.165687452 +0100
29408 @@ -2,31 +2,31 @@
29409
29410 /* { dg-do preprocess } */
29411
29412 -#define foo bar /* { dg-warning "previous def" "foo prev def" } */
29413 +#define foo bar /* { dg-message "previous def" "foo prev def" } */
29414 #define foo barr /* { dg-warning "redefined" "foo redefined" } */
29415
29416 #undef foo
29417 -#define foo bar /* { dg-warning "previous def" "foo prev def 2" } */
29418 +#define foo bar /* { dg-message "previous def" "foo prev def 2" } */
29419 #define foo() bar /* { dg-warning "redefined" "foo redefined 2" } */
29420
29421 #undef foo
29422 -#define foo() bar /* { dg-warning "previous def" "foo prev def" } */
29423 +#define foo() bar /* { dg-message "previous def" "foo prev def" } */
29424 #define foo() barr /* { dg-warning "redefined" "foo redefined" } */
29425
29426 -#define quux(thud) a thud b /* { dg-warning "previous def" "quux prev def" } */
29427 +#define quux(thud) a thud b /* { dg-message "previous def" "quux prev def" } */
29428 #define quux(thu) a thud b /* { dg-warning "redefined" "quux redefined" } */
29429
29430 -#define bar(x, y) x+y /* { dg-warning "previous def" "bar prev def" } */
29431 +#define bar(x, y) x+y /* { dg-message "previous def" "bar prev def" } */
29432 #define bar(x, y) x+x /* { dg-warning "redefined" "bar redefined" } */
29433
29434 -#define bat(x, y) x+y /* { dg-warning "previous def" "bat prev def" } */
29435 +#define bat(x, y) x+y /* { dg-message "previous def" "bat prev def" } */
29436 #define bat(x, y) x+ y /* { dg-warning "redefined" "bat redefined" } */
29437
29438 -#define baz(x, y) x+y /* { dg-warning "previous def" "baz prev def" } */
29439 +#define baz(x, y) x+y /* { dg-message "previous def" "baz prev def" } */
29440 #define baz(x, y) x +y /* { dg-warning "redefined" "baz redefined" } */
29441
29442 -#define f(x, y) "x y" /* { dg-warning "previous def" "f prev def" } */
29443 +#define f(x, y) "x y" /* { dg-message "previous def" "f prev def" } */
29444 #define f(x, y) "x y" /* { dg-warning "redefined" "f redefined" } */
29445
29446 -#define g(x, y) 'x' /* { dg-warning "previous def" "g prev def" } */
29447 +#define g(x, y) 'x' /* { dg-message "previous def" "g prev def" } */
29448 #define g(x, y) ' x' /* { dg-warning "redefined" "g redefined" } */
29449 diff -Nur a/gcc/testsuite/gcc.dg/cpp/Wvariadic-1.c b/gcc/testsuite/gcc.dg/cpp/Wvariadic-1.c
29450 --- a/gcc/testsuite/gcc.dg/cpp/Wvariadic-1.c 2004-02-20 19:42:51.000000000 +0100
29451 +++ b/gcc/testsuite/gcc.dg/cpp/Wvariadic-1.c 2010-01-25 09:50:29.165687452 +0100
29452 @@ -4,3 +4,4 @@
29453 #define f(x,...) /* { dg-error "variadic" } */
29454 #define g(x,y...) /* { dg-error "variadic" } */
29455 int not_empty;
29456 +/* { dg-message "warnings being treated as errors" "" { target *-*-* } 0 } */
29457 diff -Nur a/gcc/testsuite/gcc.dg/cpp/Wvariadic-3.c b/gcc/testsuite/gcc.dg/cpp/Wvariadic-3.c
29458 --- a/gcc/testsuite/gcc.dg/cpp/Wvariadic-3.c 2004-02-20 19:42:51.000000000 +0100
29459 +++ b/gcc/testsuite/gcc.dg/cpp/Wvariadic-3.c 2010-01-25 09:50:29.165687452 +0100
29460 @@ -4,3 +4,4 @@
29461 #define f(x,...)
29462 #define g(x,y...) /* { dg-error "variadic" } */
29463 int not_empty;
29464 +/* { dg-message "warnings being treated as errors" "" { target *-*-* } 0 } */
29465 diff -Nur a/gcc/testsuite/gcc.dg/dll-4.c b/gcc/testsuite/gcc.dg/dll-4.c
29466 --- a/gcc/testsuite/gcc.dg/dll-4.c 2005-10-12 22:54:50.000000000 +0200
29467 +++ b/gcc/testsuite/gcc.dg/dll-4.c 2010-01-25 09:50:29.165687452 +0100
29468 @@ -11,5 +11,6 @@
29469 int f () { return foo1 + foo2; }
29470
29471 /* FIXME: We should scan the output of nm for this case. */
29472 -/* { dg-final { scan-assembler "(foo2:.*\.comm\[ \t_\]*foo1)" } } */
29473 +/* { dg-final { scan-assembler "(foo2:)" } } */
29474 +/* { dg-final { scan-assembler "(\.comm\[ \t_\]*foo1)" } } */
29475 /* { dg-final { scan-assembler-not "(__imp_|_imp__)" } } */
29476 diff -Nur a/gcc/testsuite/gcc.dg/dll-6a.c b/gcc/testsuite/gcc.dg/dll-6a.c
29477 --- a/gcc/testsuite/gcc.dg/dll-6a.c 1970-01-01 01:00:00.000000000 +0100
29478 +++ b/gcc/testsuite/gcc.dg/dll-6a.c 2010-01-25 09:50:29.165687452 +0100
29479 @@ -0,0 +1,21 @@
29480 +extern void i1();
29481 +extern void i3();
29482 +extern void i4();
29483 +extern void i5();
29484 +
29485 +extern void e1();
29486 +extern void e3();
29487 +extern void e4();
29488 +extern void e5();
29489 +
29490 +int main () {
29491 + i1();
29492 + i3();
29493 + i4();
29494 + i5();
29495 +
29496 + e1();
29497 + e3();
29498 + e4();
29499 + e5();
29500 +}
29501 diff -Nur a/gcc/testsuite/gcc.dg/dll-6.c b/gcc/testsuite/gcc.dg/dll-6.c
29502 --- a/gcc/testsuite/gcc.dg/dll-6.c 1970-01-01 01:00:00.000000000 +0100
29503 +++ b/gcc/testsuite/gcc.dg/dll-6.c 2010-01-25 09:50:29.165687452 +0100
29504 @@ -0,0 +1,52 @@
29505 +/* { dg-do link } */
29506 +/* { dg-require-dll "" } */
29507 +/* { dg-additional-sources "dll-6a.c" } */
29508 +/* { dg-options "-w -O2 -std=gnu89" } */
29509 +
29510 +/* Test that inline functions declared "dllexport" appear in object
29511 + files, even if they are not called.
29512 +
29513 + This behavior is required by the ARM C++ ABI:
29514 +
29515 + Exporting a function that can be inlined should force the
29516 + creation and export of an out-of-line copy of it.
29517 +
29518 + and should presumably also apply.
29519 +
29520 + Visual Studio 2005 also honors that rule. */
29521 +
29522 +__declspec(dllexport) inline void i1() {}
29523 +
29524 +__declspec(dllexport) extern inline void e1() {}
29525 +
29526 +/* It is invalid to declare the function inline after its definition. */
29527 +#if 0
29528 +__declspec(dllexport) void i2() {}
29529 +inline void i2();
29530 +
29531 +__declspec(dllexport) extern void e2() {}
29532 +inline void e2();
29533 +#endif
29534 +
29535 +__declspec(dllexport) inline void i3() {}
29536 +void i3();
29537 +
29538 +__declspec(dllexport) inline void e3() {}
29539 +extern void e3();
29540 +
29541 +__declspec(dllexport) void i4();
29542 +inline void i4() {};
29543 +
29544 +__declspec(dllexport) extern void e4();
29545 +inline void e4() {};
29546 +
29547 +__declspec(dllexport) inline void i5();
29548 +void i5() {};
29549 +
29550 +__declspec(dllexport) inline void e5();
29551 +extern void e5() {};
29552 +
29553 +/* Make sure that just declaring the function -- without defining it
29554 + -- does not cause errors. */
29555 +__declspec(dllexport) inline void i6();
29556 +__declspec(dllexport) extern inline void e6();
29557 diff -Nur a/gcc/testsuite/gcc.dg/dll-7a.c b/gcc/testsuite/gcc.dg/dll-7a.c
29558 --- a/gcc/testsuite/gcc.dg/dll-7a.c 1970-01-01 01:00:00.000000000 +0100
29559 +++ b/gcc/testsuite/gcc.dg/dll-7a.c 2010-01-25 09:50:29.165687452 +0100
29560 @@ -0,0 +1,21 @@
29561 +extern void i1();
29562 +extern void i3();
29563 +extern void i4();
29564 +extern void i5();
29565 +
29566 +extern void e1();
29567 +extern void e3();
29568 +extern void e4();
29569 +extern void e5();
29570 +
29571 +int main () {
29572 + i1();
29573 + i3();
29574 + i4();
29575 + i5();
29576 +
29577 + e1();
29578 + e3();
29579 + e4();
29580 + e5();
29581 +}
29582 diff -Nur a/gcc/testsuite/gcc.dg/dll-7.c b/gcc/testsuite/gcc.dg/dll-7.c
29583 --- a/gcc/testsuite/gcc.dg/dll-7.c 1970-01-01 01:00:00.000000000 +0100
29584 +++ b/gcc/testsuite/gcc.dg/dll-7.c 2010-01-25 09:50:29.165687452 +0100
29585 @@ -0,0 +1,52 @@
29586 +/* { dg-do link } */
29587 +/* { dg-require-dll "" } */
29588 +/* { dg-additional-sources "dll-7a.c" } */
29589 +/* { dg-options "-w -O2 -std=gnu99" } */
29590 +
29591 +/* Test that inline functions declared "dllexport" appear in object
29592 + files, even if they are not called.
29593 +
29594 + This behavior is required by the ARM C++ ABI:
29595 +
29596 + Exporting a function that can be inlined should force the
29597 + creation and export of an out-of-line copy of it.
29598 +
29599 + and should presumably also apply.
29600 +
29601 + Visual Studio 2005 also honors that rule. */
29602 +
29603 +__declspec(dllexport) inline void i1() {}
29604 +
29605 +__declspec(dllexport) extern inline void e1() {}
29606 +
29607 +/* It is invalid to declare the function inline after its definition. */
29608 +#if 0
29609 +__declspec(dllexport) void i2() {}
29610 +inline void i2();
29611 +
29612 +__declspec(dllexport) extern void e2() {}
29613 +inline void e2();
29614 +#endif
29615 +
29616 +__declspec(dllexport) inline void i3() {}
29617 +void i3();
29618 +
29619 +__declspec(dllexport) inline void e3() {}
29620 +extern void e3();
29621 +
29622 +__declspec(dllexport) void i4();
29623 +inline void i4() {};
29624 +
29625 +__declspec(dllexport) extern void e4();
29626 +inline void e4() {};
29627 +
29628 +__declspec(dllexport) inline void i5();
29629 +void i5() {};
29630 +
29631 +__declspec(dllexport) inline void e5();
29632 +extern void e5() {};
29633 +
29634 +/* Make sure that just declaring the function -- without defining it
29635 + -- does not cause errors. */
29636 +__declspec(dllexport) inline void i6();
29637 +__declspec(dllexport) extern inline void e6();
29638 diff -Nur a/gcc/testsuite/gcc.dg/falign-labels-1.c b/gcc/testsuite/gcc.dg/falign-labels-1.c
29639 --- a/gcc/testsuite/gcc.dg/falign-labels-1.c 1970-01-01 01:00:00.000000000 +0100
29640 +++ b/gcc/testsuite/gcc.dg/falign-labels-1.c 2010-01-25 09:50:29.165687452 +0100
29641 @@ -0,0 +1,39 @@
29642 +/* { dg-do run } */
29643 +/* { dg-options "-falign-labels=8" { target { ! { m68k*-*-* || fido*-*-* } } } } */
29644 +
29645 +/* On ARMv7-A CPUs, this test resulted in incorrect code generation.
29646 + The code generated for the switch statement expected the jump table
29647 + to immediately follow the jump instruction, but -falign-labels
29648 + caused the label preceding the table to be aligned. */
29649 +/* M68K and fido only support -falign-labels argument <= 2. */
29650 +
29651 +volatile int x;
29652 +
29653 +int main(void)
29654 +{
29655 + int y;
29656 +
29657 + x = 0;
29658 +
29659 + switch(x)
29660 + {
29661 + case 0:
29662 + y = 2 * x;
29663 + break;
29664 + case 1:
29665 + y = -3 * x;
29666 + break;
29667 + case 2:
29668 + y = x + 5;
29669 + break;
29670 + case 3:
29671 + y = x - 7;
29672 + break;
29673 + default:
29674 + break;
29675 + }
29676 +
29677 + x = y;
29678 +
29679 + return 0;
29680 +}
29681 diff -Nur a/gcc/testsuite/gcc.dg/fltconst-1.c b/gcc/testsuite/gcc.dg/fltconst-1.c
29682 --- a/gcc/testsuite/gcc.dg/fltconst-1.c 2008-08-21 19:50:01.000000000 +0200
29683 +++ b/gcc/testsuite/gcc.dg/fltconst-1.c 2010-01-25 09:50:29.165687452 +0100
29684 @@ -1,5 +1,5 @@
29685 /* { dg-do compile } */
29686 -/* { dg-options "-std=gnu99" } */
29687 +/* { dg-options "-std=gnu99 -fshow-column" } */
29688
29689 double a = 1.ld; /* { dg-error "12:invalid suffix" } */
29690 double b = 1.fd; /* { dg-error "12:invalid suffix" } */
29691 diff -Nur a/gcc/testsuite/gcc.dg/m68k-fp-1.c b/gcc/testsuite/gcc.dg/m68k-fp-1.c
29692 --- a/gcc/testsuite/gcc.dg/m68k-fp-1.c 1970-01-01 01:00:00.000000000 +0100
29693 +++ b/gcc/testsuite/gcc.dg/m68k-fp-1.c 2010-01-25 09:50:29.165687452 +0100
29694 @@ -0,0 +1,13 @@
29695 +/* ColdFire has restricted addressing modes for float operands. */
29696 +/* { dg-do compile { target m68k-*-* } } */
29697 +/* { dg-options "-O0 -mcpu=547x -mhard-float" } */
29698 +
29699 +double Foo (unsigned a)
29700 +{
29701 + unsigned local_data[16384] __attribute__((unused));
29702 + double d;
29703 +
29704 + d = a;
29705 +
29706 + return d;
29707 +}
29708 diff -Nur a/gcc/testsuite/gcc.dg/pch/counter-2.c b/gcc/testsuite/gcc.dg/pch/counter-2.c
29709 --- a/gcc/testsuite/gcc.dg/pch/counter-2.c 2008-05-21 02:04:45.000000000 +0200
29710 +++ b/gcc/testsuite/gcc.dg/pch/counter-2.c 2010-01-25 09:50:29.165687452 +0100
29711 @@ -10,6 +10,7 @@
29712 #include "counter-2.h" /* { dg-warning "not used because `__COUNTER__' is invalid" } */
29713 /* { dg-error "counter-2.h: No such file or directory" "no such file" { target *-*-* } 10 } */
29714 /* { dg-error "one or more PCH files were found, but they were invalid" "invalid files" { target *-*-* } 10 } */
29715 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29716
29717 int main(void)
29718 {
29719 diff -Nur a/gcc/testsuite/gcc.dg/pch/valid-1.c b/gcc/testsuite/gcc.dg/pch/valid-1.c
29720 --- a/gcc/testsuite/gcc.dg/pch/valid-1.c 2008-05-21 02:04:45.000000000 +0200
29721 +++ b/gcc/testsuite/gcc.dg/pch/valid-1.c 2010-01-25 09:50:29.165687452 +0100
29722 @@ -3,5 +3,6 @@
29723 #include "valid-1.h"/* { dg-warning "created with -gnone, but used with -g" } */
29724 /* { dg-error "No such file" "no such file" { target *-*-* } 3 } */
29725 /* { dg-error "they were invalid" "invalid files" { target *-*-* } 3 } */
29726 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29727
29728 int x;
29729 diff -Nur a/gcc/testsuite/gcc.dg/pch/valid-2.c b/gcc/testsuite/gcc.dg/pch/valid-2.c
29730 --- a/gcc/testsuite/gcc.dg/pch/valid-2.c 2008-05-21 02:04:45.000000000 +0200
29731 +++ b/gcc/testsuite/gcc.dg/pch/valid-2.c 2010-01-25 09:50:29.165687452 +0100
29732 @@ -3,4 +3,5 @@
29733 #include "valid-2.h" /* { dg-warning "settings for -fexceptions do not match" } */
29734 /* { dg-error "No such file" "no such file" { target *-*-* } 3 } */
29735 /* { dg-error "they were invalid" "invalid files" { target *-*-* } 3 } */
29736 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29737 int x;
29738 diff -Nur a/gcc/testsuite/gcc.dg/pch/warn-1.c b/gcc/testsuite/gcc.dg/pch/warn-1.c
29739 --- a/gcc/testsuite/gcc.dg/pch/warn-1.c 2008-05-21 02:04:45.000000000 +0200
29740 +++ b/gcc/testsuite/gcc.dg/pch/warn-1.c 2010-01-25 09:50:29.165687452 +0100
29741 @@ -5,6 +5,7 @@
29742 #include "warn-1.h"/* { dg-warning "not used because .DEFINED_VALUE. is defined" } */
29743 /* { dg-error "No such file" "no such file" { target *-*-* } 5 } */
29744 /* { dg-error "they were invalid" "invalid files" { target *-*-* } 5 } */
29745 +/* { dg-message "terminated" "" { target *-*-* } 0 } */
29746
29747
29748 int main(void)
29749 diff -Nur a/gcc/testsuite/gcc.dg/pr34263.c b/gcc/testsuite/gcc.dg/pr34263.c
29750 --- a/gcc/testsuite/gcc.dg/pr34263.c 2008-01-06 16:24:10.000000000 +0100
29751 +++ b/gcc/testsuite/gcc.dg/pr34263.c 2010-01-25 09:50:29.165687452 +0100
29752 @@ -1,5 +1,5 @@
29753 /* { dg-do run } */
29754 -/* { dg-options "-O2 -fdump-tree-optimized" } */
29755 +/* { dg-options "-O2 -fdump-tree-optimized -fno-unroll-loops" } */
29756 /* Same test as 990128-1.c. */
29757
29758 extern int printf (const char *,...);
29759 diff -Nur a/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c b/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c
29760 --- a/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c 2007-08-13 11:24:46.000000000 +0200
29761 +++ b/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c 2010-01-25 09:50:29.165687452 +0100
29762 @@ -1,4 +1,6 @@
29763 /* { dg-do compile { target { { sh-*-* sh4*-*-* } && nonpic } } } */
29764 +/* { dg-skip-if "FPU Required" { "sh*-*-*" } { "-m*nofpu*" } { "" } } */
29765 +/* { dg-skip-if "FPU Required" { "sh*-*-*" } { "-m4al*" } { "" } } */
29766 /* { dg-options "-O -m4" } */
29767
29768 extern void foo ();
29769 diff -Nur a/gcc/testsuite/gcc.dg/profile-dir-1.c b/gcc/testsuite/gcc.dg/profile-dir-1.c
29770 --- a/gcc/testsuite/gcc.dg/profile-dir-1.c 2008-04-22 01:35:47.000000000 +0200
29771 +++ b/gcc/testsuite/gcc.dg/profile-dir-1.c 2010-01-25 09:50:29.165687452 +0100
29772 @@ -1,5 +1,6 @@
29773 /* { dg-do compile } */
29774 /* { dg-options "-O -fprofile-generate=. -fdump-tree-tree_profile" } */
29775 +/* { dg-require-host-local "" } */
29776 /* { dg-final { scan-tree-dump " ./profile-dir-1.gcda" "tree_profile" } } */
29777
29778 int
29779 diff -Nur a/gcc/testsuite/gcc.dg/profile-dir-2.c b/gcc/testsuite/gcc.dg/profile-dir-2.c
29780 --- a/gcc/testsuite/gcc.dg/profile-dir-2.c 2008-04-22 01:35:47.000000000 +0200
29781 +++ b/gcc/testsuite/gcc.dg/profile-dir-2.c 2010-01-25 09:50:29.165687452 +0100
29782 @@ -1,5 +1,6 @@
29783 /* { dg-do compile } */
29784 /* { dg-options "-O -fprofile-generate -fdump-tree-tree_profile" } */
29785 +/* { dg-require-host-local "" } */
29786 /* { dg-final { scan-tree-dump "/profile-dir-2.gcda" "tree_profile" } } */
29787
29788 int
29789 diff -Nur a/gcc/testsuite/gcc.dg/profile-dir-3.c b/gcc/testsuite/gcc.dg/profile-dir-3.c
29790 --- a/gcc/testsuite/gcc.dg/profile-dir-3.c 2008-04-22 01:35:47.000000000 +0200
29791 +++ b/gcc/testsuite/gcc.dg/profile-dir-3.c 2010-01-25 09:50:29.165687452 +0100
29792 @@ -1,5 +1,6 @@
29793 /* { dg-do compile } */
29794 /* { dg-options "-O -fprofile-generate -fprofile-dir=. -fdump-tree-tree_profile" } */
29795 +/* { dg-require-host-local "" } */
29796 /* { dg-final { scan-tree-dump " ./profile-dir-3.gcda" "tree_profile" } } */
29797
29798 int
29799 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-10.c b/gcc/testsuite/gcc.dg/promote-short-10.c
29800 --- a/gcc/testsuite/gcc.dg/promote-short-10.c 1970-01-01 01:00:00.000000000 +0100
29801 +++ b/gcc/testsuite/gcc.dg/promote-short-10.c 2010-01-25 09:50:29.165687452 +0100
29802 @@ -0,0 +1,20 @@
29803 +/* Verify that we do not promote a short loop index variable when its
29804 + address is taken. */
29805 +
29806 +/* { dg-do compile } */
29807 +/* { dg-options "-O2 -fpromote-loop-indices -fdump-tree-promoteshort" } */
29808 +/* { dg-final { scan-tree-dump-times "Found 0 candidates" 1 "promoteshort" } } */
29809 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29810 +
29811 +extern void outside (short *);
29812 +
29813 +void
29814 +test1 (int n, int *x)
29815 +{
29816 + short i;
29817 +
29818 + for (i = 0; i < n; i++)
29819 + {
29820 + outside (&i);
29821 + }
29822 +}
29823 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-1.c b/gcc/testsuite/gcc.dg/promote-short-1.c
29824 --- a/gcc/testsuite/gcc.dg/promote-short-1.c 1970-01-01 01:00:00.000000000 +0100
29825 +++ b/gcc/testsuite/gcc.dg/promote-short-1.c 2010-01-25 09:50:29.165687452 +0100
29826 @@ -0,0 +1,15 @@
29827 +/* Verify that we promote a short loop index variable. */
29828 +
29829 +/* { dg-do compile } */
29830 +/* { dg-options "-O2 -fpromote-loop-indices -fdump-tree-promoteshort" } */
29831 +/* { dg-final { scan-tree-dump-times "Promoting 1 variables" 1 "promoteshort" } } */
29832 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29833 +
29834 +void
29835 +test1 (short n, int *x)
29836 +{
29837 + short i;
29838 +
29839 + for (i = 0; i < n; i++)
29840 + x[i] = 0;
29841 +}
29842 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-2.c b/gcc/testsuite/gcc.dg/promote-short-2.c
29843 --- a/gcc/testsuite/gcc.dg/promote-short-2.c 1970-01-01 01:00:00.000000000 +0100
29844 +++ b/gcc/testsuite/gcc.dg/promote-short-2.c 2010-01-25 09:50:29.165687452 +0100
29845 @@ -0,0 +1,16 @@
29846 +/* Verify that we do not promote a short loop index variable when it is
29847 + being stored to memory. */
29848 +
29849 +/* { dg-do compile } */
29850 +/* { dg-options "-O2 -fpromote-loop-indices -fdump-tree-promoteshort" } */
29851 +/* { dg-final { scan-tree-dump-times "Promoting 0 variables" 1 "promoteshort" } } */
29852 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29853 +
29854 +void
29855 +test1 (short n, short *x)
29856 +{
29857 + short i;
29858 +
29859 + for (i = 0; i < n; i++)
29860 + x[i] = i;
29861 +}
29862 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-3.c b/gcc/testsuite/gcc.dg/promote-short-3.c
29863 --- a/gcc/testsuite/gcc.dg/promote-short-3.c 1970-01-01 01:00:00.000000000 +0100
29864 +++ b/gcc/testsuite/gcc.dg/promote-short-3.c 2010-01-25 09:50:29.165687452 +0100
29865 @@ -0,0 +1,18 @@
29866 +/* Verify that we do not promote a short loop index variable when it is
29867 + being passed as a function parameter. */
29868 +
29869 +/* { dg-do compile } */
29870 +/* { dg-options "-O2 -fpromote-loop-indices -fdump-tree-promoteshort" } */
29871 +/* { dg-final { scan-tree-dump-times "Promoting 0 variables" 1 "promoteshort" { xfail m68k*-*-* fido*-*-* i?86-*-* x86_64-*-* mips*-*-* sh*-*-* } } } */
29872 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29873 +
29874 +extern void outside (short);
29875 +
29876 +void
29877 +test1 (short n)
29878 +{
29879 + short i;
29880 +
29881 + for (i = 0; i < n; i++)
29882 + outside (i);
29883 +}
29884 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-4.c b/gcc/testsuite/gcc.dg/promote-short-4.c
29885 --- a/gcc/testsuite/gcc.dg/promote-short-4.c 1970-01-01 01:00:00.000000000 +0100
29886 +++ b/gcc/testsuite/gcc.dg/promote-short-4.c 2010-01-25 09:50:29.165687452 +0100
29887 @@ -0,0 +1,19 @@
29888 +/* Verify that we do not promote a short loop index variable when it is
29889 + modified within the loop. */
29890 +
29891 +/* { dg-do compile } */
29892 +/* { dg-options "-O2 -fpromote-loop-indices -fdump-tree-promoteshort" } */
29893 +/* { dg-final { scan-tree-dump-times "Promoting 0 variables" 1 "promoteshort" } } */
29894 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29895 +
29896 +void
29897 +test1 (short n, int *x)
29898 +{
29899 + short i;
29900 +
29901 + for (i = 0; i < n; i++)
29902 + {
29903 + i++;
29904 + x[i] = 0;
29905 + }
29906 +}
29907 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-5.c b/gcc/testsuite/gcc.dg/promote-short-5.c
29908 --- a/gcc/testsuite/gcc.dg/promote-short-5.c 1970-01-01 01:00:00.000000000 +0100
29909 +++ b/gcc/testsuite/gcc.dg/promote-short-5.c 2010-01-25 09:50:29.165687452 +0100
29910 @@ -0,0 +1,18 @@
29911 +/* Verify that we do not promote a short loop index variable when it has
29912 + a non-unit-increment. */
29913 +
29914 +/* { dg-do compile } */
29915 +/* { dg-options "-O2 -fpromote-loop-indices -fdump-tree-promoteshort" } */
29916 +/* { dg-final { scan-tree-dump-times "Promoting 0 variables" 1 "promoteshort" } } */
29917 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29918 +
29919 +void
29920 +test1 (short n, int *x)
29921 +{
29922 + short i;
29923 +
29924 + for (i = 0; i < n; i+=2)
29925 + {
29926 + x[i] = 0;
29927 + }
29928 +}
29929 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-6.c b/gcc/testsuite/gcc.dg/promote-short-6.c
29930 --- a/gcc/testsuite/gcc.dg/promote-short-6.c 1970-01-01 01:00:00.000000000 +0100
29931 +++ b/gcc/testsuite/gcc.dg/promote-short-6.c 2010-01-25 09:50:29.165687452 +0100
29932 @@ -0,0 +1,18 @@
29933 +/* Verify that we do promote a short loop index variable when it has
29934 + a non-unit-increment and -funsafe-loop-optimizations is in effect. */
29935 +
29936 +/* { dg-do compile } */
29937 +/* { dg-options "-O2 -fpromote-loop-indices -funsafe-loop-optimizations -fdump-tree-promoteshort" } */
29938 +/* { dg-final { scan-tree-dump-times "Promoting 1 variables" 1 "promoteshort" } } */
29939 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29940 +
29941 +void
29942 +test1 (short n, int *x)
29943 +{
29944 + short i;
29945 +
29946 + for (i = 0; i < n; i+=2)
29947 + {
29948 + x[i] = 0;
29949 + }
29950 +}
29951 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-7.c b/gcc/testsuite/gcc.dg/promote-short-7.c
29952 --- a/gcc/testsuite/gcc.dg/promote-short-7.c 1970-01-01 01:00:00.000000000 +0100
29953 +++ b/gcc/testsuite/gcc.dg/promote-short-7.c 2010-01-25 09:50:29.165687452 +0100
29954 @@ -0,0 +1,18 @@
29955 +/* Verify that we do not promote a short loop index variable when the
29956 + loop in which it is used has a bound of wider type. */
29957 +
29958 +/* { dg-do compile } */
29959 +/* { dg-options "-O2 -fpromote-loop-indices -fdump-tree-promoteshort" } */
29960 +/* { dg-final { scan-tree-dump-times "Promoting 0 variables" 1 "promoteshort" } } */
29961 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29962 +
29963 +void
29964 +test1 (int n, int *x)
29965 +{
29966 + short i;
29967 +
29968 + for (i = 0; i < n; i++)
29969 + {
29970 + x[i] = 0;
29971 + }
29972 +}
29973 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-8.c b/gcc/testsuite/gcc.dg/promote-short-8.c
29974 --- a/gcc/testsuite/gcc.dg/promote-short-8.c 1970-01-01 01:00:00.000000000 +0100
29975 +++ b/gcc/testsuite/gcc.dg/promote-short-8.c 2010-01-25 09:50:29.165687452 +0100
29976 @@ -0,0 +1,19 @@
29977 +/* Verify that we do promote a short loop index variable when the loop
29978 + in which it is used has a bound of wider type and
29979 + -funsafe-loop-optimizations is in effect. */
29980 +
29981 +/* { dg-do compile } */
29982 +/* { dg-options "-O2 -fpromote-loop-indices -funsafe-loop-optimizations -fdump-tree-promoteshort" } */
29983 +/* { dg-final { scan-tree-dump-times "Promoting 1 variables" 1 "promoteshort" } } */
29984 +/* { dg-final { cleanup-tree-dump "promoteshort" } } */
29985 +
29986 +void
29987 +test1 (int n, int *x)
29988 +{
29989 + short i;
29990 +
29991 + for (i = 0; i < n; i++)
29992 + {
29993 + x[i] = 0;
29994 + }
29995 +}
29996 diff -Nur a/gcc/testsuite/gcc.dg/promote-short-9.c b/gcc/testsuite/gcc.dg/promote-short-9.c
29997 --- a/gcc/testsuite/gcc.dg/promote-short-9.c 1970-01-01 01:00:00.000000000 +0100
29998 +++ b/gcc/testsuite/gcc.dg/promote-short-9.c 2010-01-25 09:50:29.165687452 +0100
29999 @@ -0,0 +1,15 @@
30000 +/* -fpromote-loop-indices used to ICE on this. */
30001 +
30002 +/* { dg-do compile } */
30003 +/* { dg-options "-O2 -fpromote-loop-indices" } */
30004 +
30005 +char
30006 +lookup (char *haystack, char *needle)
30007 +{
30008 + char x;
30009 +
30010 + for (x = haystack[-2]; x < *needle; x++)
30011 + haystack[x] = needle[x];
30012 +
30013 + return 1;
30014 +}
30015 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-10.c b/gcc/testsuite/gcc.dg/remove-local-statics-10.c
30016 --- a/gcc/testsuite/gcc.dg/remove-local-statics-10.c 1970-01-01 01:00:00.000000000 +0100
30017 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-10.c 2010-01-25 09:50:29.165687452 +0100
30018 @@ -0,0 +1,32 @@
30019 +/* Verify that we do not eliminate a static local variable when it is
30020 + live on return from a function call that recursively calls the
30021 + function in which the variable is defined. */
30022 +
30023 +/* { dg-do compile } */
30024 +/* { dg-options "-O2 -fremove-local-statics" } */
30025 +/* { dg-final { scan-assembler "thestatic" } } */
30026 +
30027 +int
30028 +test2 (int x)
30029 +{
30030 + if (x < 0)
30031 + return 0;
30032 + else
30033 + return test1 (x - 1);
30034 +}
30035 +
30036 +int
30037 +test1 (int x)
30038 +{
30039 + static int thestatic;
30040 + int y;
30041 +
30042 + thestatic = x;
30043 +
30044 + y = test2 (x - 1);
30045 +
30046 + y += thestatic;
30047 +
30048 + return y + x;
30049 +}
30050 +
30051 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-11.c b/gcc/testsuite/gcc.dg/remove-local-statics-11.c
30052 --- a/gcc/testsuite/gcc.dg/remove-local-statics-11.c 1970-01-01 01:00:00.000000000 +0100
30053 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-11.c 2010-01-25 09:50:29.165687452 +0100
30054 @@ -0,0 +1,16 @@
30055 +/* Verify that we do not eliminate a static local variable when its
30056 + address is taken. */
30057 +
30058 +/* { dg-do compile } */
30059 +/* { dg-options "-O2 -fremove-local-statics" } */
30060 +/* { dg-final { scan-assembler "thestatic" } } */
30061 +
30062 +int *
30063 +test1 (int x)
30064 +{
30065 + static int thestatic;
30066 +
30067 + thestatic = x;
30068 +
30069 + return &thestatic + x;
30070 +}
30071 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-12.c b/gcc/testsuite/gcc.dg/remove-local-statics-12.c
30072 --- a/gcc/testsuite/gcc.dg/remove-local-statics-12.c 1970-01-01 01:00:00.000000000 +0100
30073 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-12.c 2010-01-25 09:50:29.165687452 +0100
30074 @@ -0,0 +1,20 @@
30075 +/* Verify that we do not eliminate a static variable when it is declared
30076 + in a function that has nested functions. */
30077 +
30078 +/* { dg-do compile } */
30079 +/* { dg-options "-O2 -fremove-local-statics" } */
30080 +/* { dg-final { scan-assembler "thestatic" } } */
30081 +
30082 +int test1 (int x)
30083 +{
30084 + static int thestatic;
30085 +
30086 + int nested_test1 (int x)
30087 + {
30088 + return x + thestatic;
30089 + }
30090 +
30091 + thestatic = x;
30092 +
30093 + return thestatic + x + nested_test1 (x);
30094 +}
30095 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-13.c b/gcc/testsuite/gcc.dg/remove-local-statics-13.c
30096 --- a/gcc/testsuite/gcc.dg/remove-local-statics-13.c 1970-01-01 01:00:00.000000000 +0100
30097 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-13.c 2010-01-25 09:50:29.165687452 +0100
30098 @@ -0,0 +1,24 @@
30099 +/* We used to ICE on this test, because the call to BAR appeared to
30100 + define both static variables in FOO. Verify that we no longer do
30101 + this. */
30102 +
30103 +/* { dg-do compile } */
30104 +/* { dg-options "-O2 -fremove-local-statics" } */
30105 +/* { dg-final { scan-assembler "static1" } } */
30106 +/* { dg-final { scan-assembler-not "static2" } } */
30107 +
30108 +int foo(int i) {
30109 + static int static1 = 0;
30110 + static int static2;
30111 +
30112 + if (static2 = bar(i))
30113 + static1 = 1;
30114 + static2 = static1 + 30;
30115 +
30116 + return static1 + static2;
30117 +}
30118 +
30119 +int bar(int i) {
30120 + if (i) { foo(i-1); return 0; }
30121 + return 1;
30122 +}
30123 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-14.c b/gcc/testsuite/gcc.dg/remove-local-statics-14.c
30124 --- a/gcc/testsuite/gcc.dg/remove-local-statics-14.c 1970-01-01 01:00:00.000000000 +0100
30125 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-14.c 2010-01-25 09:50:29.165687452 +0100
30126 @@ -0,0 +1,29 @@
30127 +/* Verify that we do eliminate a static local variable whose last use is
30128 + in a statement containing a call expression. */
30129 +
30130 +/* { dg-do compile } */
30131 +/* { dg-options "-O2 -fremove-local-statics" } */
30132 +/* { dg-final { scan-assembler-not "thestatic" } } */
30133 +
30134 +int
30135 +test2 (int x)
30136 +{
30137 + if (x < 0)
30138 + return 0;
30139 + else
30140 + return test1 (x - 1);
30141 +}
30142 +
30143 +int
30144 +test1 (int x)
30145 +{
30146 + static int thestatic;
30147 + int y;
30148 +
30149 + thestatic = x;
30150 +
30151 + y = test2 (thestatic - 1);
30152 +
30153 + return y + x;
30154 +}
30155 +
30156 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-15.c b/gcc/testsuite/gcc.dg/remove-local-statics-15.c
30157 --- a/gcc/testsuite/gcc.dg/remove-local-statics-15.c 1970-01-01 01:00:00.000000000 +0100
30158 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-15.c 2010-01-25 09:50:29.165687452 +0100
30159 @@ -0,0 +1,17 @@
30160 +/* Verify that we do not consider an array variable for local static
30161 + elimination. */
30162 +
30163 +/* { dg-do compile } */
30164 +/* { dg-options "-O2 -fremove-local-statics -fdump-tree-remlocstatic-details" } */
30165 +
30166 +int foo (void)
30167 +{
30168 + static int a[1];
30169 +
30170 + a[0] = 0;
30171 +
30172 + return a[0];
30173 +}
30174 +
30175 +/* { dg-final { scan-tree-dump-times "static variables to consider" 0 "remlocstatic" } } */
30176 +/* { dg-final { cleanup-tree-dump "remlocstatic" } } */
30177 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-16.c b/gcc/testsuite/gcc.dg/remove-local-statics-16.c
30178 --- a/gcc/testsuite/gcc.dg/remove-local-statics-16.c 1970-01-01 01:00:00.000000000 +0100
30179 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-16.c 2010-01-25 09:50:29.165687452 +0100
30180 @@ -0,0 +1,20 @@
30181 +/* Verify that we do not consider an structure variable for local static
30182 + elimination. */
30183 +
30184 +/* { dg-do compile } */
30185 +/* { dg-options "-O2 -fremove-local-statics -fdump-tree-remlocstatic-details" } */
30186 +
30187 +int foo (void)
30188 +{
30189 + static struct {
30190 + int x;
30191 + int y;
30192 + } a;
30193 +
30194 + a.x = 0;
30195 +
30196 + return a.y;
30197 +}
30198 +
30199 +/* { dg-final { scan-tree-dump-times "static variables to consider" 0 "remlocstatic" } } */
30200 +/* { dg-final { cleanup-tree-dump "remlocstatic" } } */
30201 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-17.c b/gcc/testsuite/gcc.dg/remove-local-statics-17.c
30202 --- a/gcc/testsuite/gcc.dg/remove-local-statics-17.c 1970-01-01 01:00:00.000000000 +0100
30203 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-17.c 2010-01-25 09:50:29.165687452 +0100
30204 @@ -0,0 +1,19 @@
30205 +/* Verify that we do not eliminate a static variable that is "defined"
30206 + by an asm that clobbers memory. */
30207 +
30208 +/* { dg-do compile } */
30209 +/* { dg-options "-O2 -fremove-local-statics -fdump-tree-remlocstatic-details" } */
30210 +
30211 +int foo (void)
30212 +{
30213 + static int foo = 0;
30214 +
30215 + __asm__ __volatile__ ("bogus" : : : "memory");
30216 +
30217 + foo++;
30218 +
30219 + return foo;
30220 +}
30221 +
30222 +/* { dg-final { scan-tree-dump-times "static variables to consider" 0 "remlocstatic" } } */
30223 +/* { dg-final { cleanup-tree-dump "remlocstatic" } } */
30224 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-1.c b/gcc/testsuite/gcc.dg/remove-local-statics-1.c
30225 --- a/gcc/testsuite/gcc.dg/remove-local-statics-1.c 1970-01-01 01:00:00.000000000 +0100
30226 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-1.c 2010-01-25 09:50:29.165687452 +0100
30227 @@ -0,0 +1,16 @@
30228 +/* Verify that we eliminate a static local variable where its uses
30229 + are dominated by a def. */
30230 +
30231 +/* { dg-do compile } */
30232 +/* { dg-options "-O2 -fremove-local-statics" } */
30233 +/* { dg-final { scan-assembler-not "thestatic" } } */
30234 +
30235 +int
30236 +test1 (int x)
30237 +{
30238 + static int thestatic;
30239 +
30240 + thestatic = x;
30241 +
30242 + return thestatic + x;
30243 +}
30244 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-2.c b/gcc/testsuite/gcc.dg/remove-local-statics-2.c
30245 --- a/gcc/testsuite/gcc.dg/remove-local-statics-2.c 1970-01-01 01:00:00.000000000 +0100
30246 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-2.c 2010-01-25 09:50:29.165687452 +0100
30247 @@ -0,0 +1,19 @@
30248 +/* Verify that we do not eliminate a static local variable when its uses
30249 + are not dominated by a def. */
30250 +
30251 +/* { dg-do compile } */
30252 +/* { dg-options "-O2 -fremove-local-statics" } */
30253 +/* { dg-final { scan-assembler "first_time" } } */
30254 +
30255 +int
30256 +test1 (int x)
30257 +{
30258 + static int first_time;
30259 +
30260 + if (x == 1)
30261 + first_time = 1;
30262 + else if (x > 0)
30263 + first_time = 2;
30264 +
30265 + return first_time + x;
30266 +}
30267 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-3.c b/gcc/testsuite/gcc.dg/remove-local-statics-3.c
30268 --- a/gcc/testsuite/gcc.dg/remove-local-statics-3.c 1970-01-01 01:00:00.000000000 +0100
30269 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-3.c 2010-01-25 09:50:29.235686709 +0100
30270 @@ -0,0 +1,16 @@
30271 +/* Verify that we do not eliminate a static local variable whose uses
30272 + are dominated by a def when the variable is volatile. */
30273 +
30274 +/* { dg-do compile } */
30275 +/* { dg-options "-O2 -fremove-local-statics" } */
30276 +/* { dg-final { scan-assembler "thestatic" } } */
30277 +
30278 +int
30279 +test1 (int x)
30280 +{
30281 + static volatile int thestatic;
30282 +
30283 + thestatic = x;
30284 +
30285 + return thestatic + x;
30286 +}
30287 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-4.c b/gcc/testsuite/gcc.dg/remove-local-statics-4.c
30288 --- a/gcc/testsuite/gcc.dg/remove-local-statics-4.c 1970-01-01 01:00:00.000000000 +0100
30289 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-4.c 2010-01-25 09:50:29.235686709 +0100
30290 @@ -0,0 +1,15 @@
30291 +/* Verify that we don't eliminate a global static variable. */
30292 +
30293 +/* { dg-do compile } */
30294 +/* { dg-options "-O2 -fremove-local-statics" } */
30295 +/* { dg-final { scan-assembler "global_static" } } */
30296 +
30297 +static int global_static;
30298 +
30299 +int
30300 +test1 (int x)
30301 +{
30302 + global_static = x;
30303 +
30304 + return global_static + x;
30305 +}
30306 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-5.c b/gcc/testsuite/gcc.dg/remove-local-statics-5.c
30307 --- a/gcc/testsuite/gcc.dg/remove-local-statics-5.c 1970-01-01 01:00:00.000000000 +0100
30308 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-5.c 2010-01-25 09:50:29.235686709 +0100
30309 @@ -0,0 +1,24 @@
30310 +/* Verify that we do not eliminate a static local variable whose uses
30311 + are dominated by a def when the function calls setjmp. */
30312 +
30313 +/* { dg-do compile } */
30314 +/* { dg-options "-O2 -fremove-local-statics" } */
30315 +/* { dg-final { scan-assembler "thestatic" } } */
30316 +
30317 +#include <setjmp.h>
30318 +
30319 +int
30320 +foo (int x)
30321 +{
30322 + static int thestatic;
30323 + int retval;
30324 + jmp_buf env;
30325 +
30326 + thestatic = x;
30327 +
30328 + retval = thestatic + x;
30329 +
30330 + setjmp (env);
30331 +
30332 + return retval;
30333 +}
30334 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-6.c b/gcc/testsuite/gcc.dg/remove-local-statics-6.c
30335 --- a/gcc/testsuite/gcc.dg/remove-local-statics-6.c 1970-01-01 01:00:00.000000000 +0100
30336 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-6.c 2010-01-25 09:50:29.235686709 +0100
30337 @@ -0,0 +1,16 @@
30338 +/* Verify that we do not eliminate a static local variable whose uses
30339 + are dominated by a def when the variable is addressed. */
30340 +
30341 +/* { dg-do compile } */
30342 +/* { dg-options "-O2 -fremove-local-statics" } */
30343 +/* { dg-final { scan-assembler "thestatic" } } */
30344 +
30345 +int *
30346 +test1 (int x)
30347 +{
30348 + static int thestatic;
30349 +
30350 + thestatic = x;
30351 +
30352 + return &thestatic + x;
30353 +}
30354 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-7.c b/gcc/testsuite/gcc.dg/remove-local-statics-7.c
30355 --- a/gcc/testsuite/gcc.dg/remove-local-statics-7.c 1970-01-01 01:00:00.000000000 +0100
30356 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-7.c 2010-01-25 09:50:29.235686709 +0100
30357 @@ -0,0 +1,21 @@
30358 +/* Verify that we eliminate a static local variable where it is defined
30359 + along all paths leading to a use.
30360 +
30361 + XFAIL'd because our analysis is currently too weak. */
30362 +
30363 +/* { dg-do compile } */
30364 +/* { dg-options "-O2 -fremove-local-statics" } */
30365 +/* { dg-final { scan-assembler-not "thestatic" } } */
30366 +
30367 +int
30368 +test1 (int x)
30369 +{
30370 + static int thestatic;
30371 +
30372 + if (x < 0)
30373 + thestatic = x;
30374 + else
30375 + thestatic = -x;
30376 +
30377 + return thestatic + x;
30378 +}
30379 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-8.c b/gcc/testsuite/gcc.dg/remove-local-statics-8.c
30380 --- a/gcc/testsuite/gcc.dg/remove-local-statics-8.c 1970-01-01 01:00:00.000000000 +0100
30381 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-8.c 2010-01-25 09:50:29.235686709 +0100
30382 @@ -0,0 +1,33 @@
30383 +/* Verify that we eliminate a static local variable when it is dead on
30384 + return from a function call that recursively calls the function in
30385 + which the variable is defined. */
30386 +
30387 +/* { dg-do compile } */
30388 +/* { dg-options "-O2 -fremove-local-statics" } */
30389 +/* { dg-final { scan-assembler-not "thestatic" } } */
30390 +
30391 +int test1 (int);
30392 +int test2 (int);
30393 +
30394 +int
30395 +test2 (int x)
30396 +{
30397 + if (x < 0)
30398 + return 0;
30399 + else
30400 + return test1 (x - 1);
30401 +}
30402 +
30403 +int
30404 +test1 (int x)
30405 +{
30406 + static int thestatic;
30407 + int y;
30408 +
30409 + thestatic = x;
30410 +
30411 + y = thestatic;
30412 +
30413 + return y + x + test1 (x - 1) + test2 (x - 1);
30414 +}
30415 +
30416 diff -Nur a/gcc/testsuite/gcc.dg/remove-local-statics-9.c b/gcc/testsuite/gcc.dg/remove-local-statics-9.c
30417 --- a/gcc/testsuite/gcc.dg/remove-local-statics-9.c 1970-01-01 01:00:00.000000000 +0100
30418 +++ b/gcc/testsuite/gcc.dg/remove-local-statics-9.c 2010-01-25 09:50:29.235686709 +0100
30419 @@ -0,0 +1,34 @@
30420 +/* Verify that we eliminate a static local variable when it is live
30421 + on return from a function call that does not recursively call the
30422 + function in which the variable is defined. */
30423 +
30424 +/* XFAIL'd because we don't utilize the callgraph properly. */
30425 +
30426 +/* { dg-do compile } */
30427 +/* { dg-options "-O2 -fremove-local-statics" } */
30428 +/* { dg-final { scan-assembler-not "thestatic" { xfail *-*-* } } } */
30429 +
30430 +static int
30431 +test2 (int x)
30432 +{
30433 + if (x < 0)
30434 + return 0;
30435 + else
30436 + return x + test2 (x - 1);
30437 +}
30438 +
30439 +int
30440 +test1 (int x)
30441 +{
30442 + static int thestatic;
30443 + int y;
30444 +
30445 + thestatic = x;
30446 +
30447 + y = test2 (x - 1);
30448 +
30449 + y += thestatic;
30450 +
30451 + return y + x;
30452 +}
30453 +
30454 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-compile-assign.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-compile-assign.c
30455 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-compile-assign.c 1970-01-01 01:00:00.000000000 +0100
30456 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-compile-assign.c 2010-01-25 09:50:29.235686709 +0100
30457 @@ -0,0 +1,29 @@
30458 +/* { dg-do compile { target arm*-*-* } } */
30459 +/* { dg-options "-mfp16-format=ieee" } */
30460 +
30461 +/* Test basic assignments and conversions for __fp16. */
30462 +
30463 +__fp16 h0 = -1.0;
30464 +__fp16 h1 = 0.0;
30465 +__fp16 h2 = 1234.0;
30466 +__fp16 h3 = 42.0;
30467 +float f1 = 2.0;
30468 +float f2 = -999.9;
30469 +
30470 +void f (__fp16 *p)
30471 +{
30472 + __fp16 t;
30473 +
30474 + h0 = 1.0;
30475 + h1 = h2;
30476 + h2 = f1;
30477 + f2 = h2;
30478 +
30479 + t = *p;
30480 + *p = h3;
30481 + h3 = t;
30482 +}
30483 +
30484 +/* Make sure we are not falling through to undefined libcalls. */
30485 +/* { dg-final { scan-assembler-not "__truncsfhf" } } */
30486 +/* { dg-final { scan-assembler-not "__extendhfsf" } } */
30487 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-compile-convert.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-compile-convert.c
30488 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-compile-convert.c 1970-01-01 01:00:00.000000000 +0100
30489 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-compile-convert.c 2010-01-25 09:50:29.235686709 +0100
30490 @@ -0,0 +1,41 @@
30491 +/* { dg-do compile { target arm*-*-* } } */
30492 +/* { dg-options "-mfp16-format=ieee" } */
30493 +
30494 +/* Test basic assignments and conversions for __fp16. */
30495 +
30496 +__fp16 h1 = 0.0;
30497 +__fp16 h2 = 1234.0;
30498 +char c1 = 1;
30499 +char c2 = 2;
30500 +short s1 = 10;
30501 +short s2 = 20;
30502 +int i1 = -100;
30503 +int i2 = -200;
30504 +long long l1 = 1000.0;
30505 +long long l2 = 2000.0;
30506 +double d1 = -10000.0;
30507 +double d2 = -20000.0;
30508 +
30509 +void f (void)
30510 +{
30511 + c1 = h1;
30512 + h2 = c2;
30513 +
30514 + h1 = s1;
30515 + s2 = h2;
30516 +
30517 + i1 = h1;
30518 + h2 = i2;
30519 +
30520 + h1 = l1;
30521 + l2 = h2;
30522 +
30523 + d1 = h1;
30524 + h2 = d2;
30525 +}
30526 +
30527 +/* Make sure we are not falling through to undefined libcalls. */
30528 +/* { dg-final { scan-assembler-not "__float.ihf" } } */
30529 +/* { dg-final { scan-assembler-not "__fixhf.i" } } */
30530 +/* { dg-final { scan-assembler-not "__trunc.fhf" } } */
30531 +/* { dg-final { scan-assembler-not "__extendhf.f" } } */
30532 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c
30533 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c 1970-01-01 01:00:00.000000000 +0100
30534 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c 2010-01-25 09:50:29.235686709 +0100
30535 @@ -0,0 +1,17 @@
30536 +/* Test floating-point conversions. Standard types and __fp16. */
30537 +/* { dg-do run { target arm*-*-* } } */
30538 +/* { dg-options "-mfp16-format=alternative" } */
30539 +
30540 +#include "fp-int-convert.h"
30541 +#define FP16_MANT_DIG 11
30542 +
30543 +int
30544 +main (void)
30545 +{
30546 + TEST_I_F(signed char, unsigned char, float, FP16_MANT_DIG);
30547 + TEST_I_F(signed short, unsigned short, float, FP16_MANT_DIG);
30548 + TEST_I_F(signed int, unsigned int, float, FP16_MANT_DIG);
30549 + TEST_I_F(signed long, unsigned long, float, FP16_MANT_DIG);
30550 + TEST_I_F(signed long long, unsigned long long, float, FP16_MANT_DIG);
30551 + exit (0);
30552 +}
30553 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c
30554 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c 1970-01-01 01:00:00.000000000 +0100
30555 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c 2010-01-25 09:50:29.235686709 +0100
30556 @@ -0,0 +1,17 @@
30557 +/* Test floating-point conversions. Standard types and __fp16. */
30558 +/* { dg-do run { target arm*-*-* } } */
30559 +/* { dg-options "-mfp16-format=ieee" } */
30560 +
30561 +#include "fp-int-convert.h"
30562 +#define FP16_MANT_DIG 11
30563 +
30564 +int
30565 +main (void)
30566 +{
30567 + TEST_I_F(signed char, unsigned char, float, FP16_MANT_DIG);
30568 + TEST_I_F(signed short, unsigned short, float, FP16_MANT_DIG);
30569 + TEST_I_F(signed int, unsigned int, float, FP16_MANT_DIG);
30570 + TEST_I_F(signed long, unsigned long, float, FP16_MANT_DIG);
30571 + TEST_I_F(signed long long, unsigned long long, float, FP16_MANT_DIG);
30572 + exit (0);
30573 +}
30574 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-1.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-1.c
30575 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-1.c 1970-01-01 01:00:00.000000000 +0100
30576 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-1.c 2010-01-25 09:50:29.235686709 +0100
30577 @@ -0,0 +1,5 @@
30578 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30579 +/* { dg-do run { target arm*-*-* } } */
30580 +/* { dg-options "-mfp16-format=ieee" } */
30581 +
30582 +#include "arm-fp16-ops.h"
30583 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-2.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-2.c
30584 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-2.c 1970-01-01 01:00:00.000000000 +0100
30585 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-2.c 2010-01-25 09:50:29.235686709 +0100
30586 @@ -0,0 +1,5 @@
30587 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30588 +/* { dg-do run { target arm*-*-* } } */
30589 +/* { dg-options "-mfp16-format=ieee -ffast-math" } */
30590 +
30591 +#include "arm-fp16-ops.h"
30592 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-3.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-3.c
30593 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-3.c 1970-01-01 01:00:00.000000000 +0100
30594 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-3.c 2010-01-25 09:50:29.245686094 +0100
30595 @@ -0,0 +1,5 @@
30596 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30597 +/* { dg-do run { target arm*-*-* } } */
30598 +/* { dg-options "-mfp16-format=alternative" } */
30599 +
30600 +#include "arm-fp16-ops.h"
30601 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-4.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-4.c
30602 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-4.c 1970-01-01 01:00:00.000000000 +0100
30603 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-4.c 2010-01-25 09:50:29.245686094 +0100
30604 @@ -0,0 +1,5 @@
30605 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30606 +/* { dg-do run { target arm*-*-* } } */
30607 +/* { dg-options "-mfp16-format=alternative -ffast-math" } */
30608 +
30609 +#include "arm-fp16-ops.h"
30610 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-5.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-5.c
30611 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-5.c 1970-01-01 01:00:00.000000000 +0100
30612 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-5.c 2010-01-25 09:50:29.245686094 +0100
30613 @@ -0,0 +1,15 @@
30614 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30615 +/* { dg-do compile { target arm*-*-* } } */
30616 +/* { dg-require-effective-target arm_neon_fp16_ok } */
30617 +/* { dg-options "-mfp16-format=ieee" } */
30618 +/* { dg-add-options arm_neon_fp16 } */
30619 +
30620 +#include "arm-fp16-ops.h"
30621 +
30622 +/* We've specified options for hardware float, including fp16 support, so
30623 + we should not see any calls to libfuncs here. */
30624 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf2" } } */
30625 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf3" } } */
30626 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h\[a-z\]*_ieee" } } */
30627 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h2f_ieee" } } */
30628 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_f2h_ieee" } } */
30629 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-6.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-6.c
30630 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-6.c 1970-01-01 01:00:00.000000000 +0100
30631 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-6.c 2010-01-25 09:50:29.245686094 +0100
30632 @@ -0,0 +1,15 @@
30633 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30634 +/* { dg-do compile { target arm*-*-* } } */
30635 +/* { dg-require-effective-target arm_neon_fp16_ok } */
30636 +/* { dg-options "-mfp16-format=ieee -ffast-math" } */
30637 +/* { dg-add-options arm_neon_fp16 } */
30638 +
30639 +#include "arm-fp16-ops.h"
30640 +
30641 +/* We've specified options for hardware float, including fp16 support, so
30642 + we should not see any calls to libfuncs here. */
30643 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf2" } } */
30644 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf3" } } */
30645 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h\[a-z\]*_ieee" } } */
30646 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h2f_ieee" } } */
30647 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_f2h_ieee" } } */
30648 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-7.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-7.c
30649 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-7.c 1970-01-01 01:00:00.000000000 +0100
30650 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-7.c 2010-01-25 09:50:29.245686094 +0100
30651 @@ -0,0 +1,13 @@
30652 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30653 +/* { dg-do compile { target arm*-*-* } } */
30654 +/* { dg-require-effective-target arm_neon_ok } */
30655 +/* { dg-options "-mfp16-format=ieee" } */
30656 +/* { dg-add-options arm_neon } */
30657 +
30658 +#include "arm-fp16-ops.h"
30659 +
30660 +/* We've specified options for hardware float, so we should not see any
30661 + calls to libfuncs here except for those to the conversion functions. */
30662 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf2" } } */
30663 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf3" } } */
30664 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h\[a-z\]*_ieee" } } */
30665 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-8.c b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-8.c
30666 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-8.c 1970-01-01 01:00:00.000000000 +0100
30667 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops-8.c 2010-01-25 09:50:29.245686094 +0100
30668 @@ -0,0 +1,13 @@
30669 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30670 +/* { dg-do compile { target arm*-*-* } } */
30671 +/* { dg-require-effective-target arm_neon_ok } */
30672 +/* { dg-options "-mfp16-format=ieee -ffast-math" } */
30673 +/* { dg-add-options arm_neon } */
30674 +
30675 +#include "arm-fp16-ops.h"
30676 +
30677 +/* We've specified options for hardware float, so we should not see any
30678 + calls to libfuncs here except for those to the conversion functions. */
30679 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf2" } } */
30680 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf3" } } */
30681 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h\[a-z\]*_ieee" } } */
30682 diff -Nur a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops.h b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops.h
30683 --- a/gcc/testsuite/gcc.dg/torture/arm-fp16-ops.h 1970-01-01 01:00:00.000000000 +0100
30684 +++ b/gcc/testsuite/gcc.dg/torture/arm-fp16-ops.h 2010-01-25 09:50:29.245686094 +0100
30685 @@ -0,0 +1,135 @@
30686 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
30687 +
30688 +#include <assert.h>
30689 +
30690 +#define CHECK(e,r) assert ((e) == r)
30691 +#define CHECK2(e,r) (assert ((e) == r), temp = (e), assert (temp == r))
30692 +#define TEST(e) assert (e)
30693 +#define TESTNOT(e) assert (!(e))
30694 +
30695 +volatile __fp16 h0 = 0.0;
30696 +volatile __fp16 h1 = 1.0;
30697 +volatile __fp16 h42 = 42.0;
30698 +volatile __fp16 hm2 = -2.0;
30699 +volatile __fp16 temp;
30700 +
30701 +volatile float f0 = 0.0;
30702 +volatile float f1 = 1.0;
30703 +volatile float f42 = 42.0;
30704 +volatile float fm2 = -2.0;
30705 +
30706 +int main (void)
30707 +{
30708 + TEST (h1);
30709 + TESTNOT (h0);
30710 + TEST (!h0);
30711 + TESTNOT (!h1);
30712 +
30713 + CHECK2 (-h1, -1.0);
30714 + CHECK2 (+h1, 1.0);
30715 +
30716 + CHECK (h1++, 1.0);
30717 + CHECK (h1, 2.0);
30718 + CHECK (++h1, 3.0);
30719 + CHECK (h1, 3.0);
30720 +
30721 + CHECK (--h1, 2.0);
30722 + CHECK (h1, 2.0);
30723 + CHECK (h1--, 2.0);
30724 + CHECK (h1, 1.0);
30725 +
30726 + CHECK2 (h42 * hm2, -84.0);
30727 + CHECK2 (h42 * (__fp16) -2.0, -84.0);
30728 + CHECK2 (h42 * fm2, -84.0);
30729 + CHECK2 (f42 * hm2, -84.0);
30730 +
30731 + CHECK2 (h42 / hm2, -21.0);
30732 + CHECK2 (h42 / (__fp16) -2.0, -21.0);
30733 + CHECK2 (h42 / fm2, -21.0);
30734 + CHECK2 (f42 / hm2, -21.0);
30735 +
30736 + CHECK2 (hm2 + h42, 40.0);
30737 + CHECK2 ((__fp16)-2.0 + h42, 40.0);
30738 + CHECK2 (hm2 + f42, 40.0);
30739 + CHECK2 (fm2 + h42, 40.0);
30740 +
30741 + CHECK2 (hm2 - h42, -44.0);
30742 + CHECK2 ((__fp16)-2.0 - h42, -44.0);
30743 + CHECK2 (hm2 - f42, -44.0);
30744 + CHECK2 (fm2 - h42, -44.0);
30745 +
30746 + TEST (hm2 < h42);
30747 + TEST (hm2 < (__fp16)42.0);
30748 + TEST (hm2 < f42);
30749 + TEST (fm2 < h42);
30750 +
30751 + TEST (h42 > hm2);
30752 + TEST ((__fp16)42.0 > hm2);
30753 + TEST (h42 > fm2);
30754 + TEST (f42 > hm2);
30755 +
30756 + TEST (hm2 <= h42);
30757 + TEST (hm2 <= (__fp16)42.0);
30758 + TEST (hm2 <= f42);
30759 + TEST (fm2 <= h42);
30760 +
30761 + TEST (h42 >= hm2);
30762 + TEST (h42 >= (__fp16)-2.0);
30763 + TEST (h42 >= fm2);
30764 + TEST (f42 >= hm2);
30765 +
30766 + TESTNOT (h1 == hm2);
30767 + TEST (h1 == h1);
30768 + TEST (h1 == (__fp16)1.0);
30769 + TEST (h1 == f1);
30770 + TEST (f1 == h1);
30771 +
30772 + TEST (h1 != hm2);
30773 + TESTNOT (h1 != h1);
30774 + TESTNOT (h1 != (__fp16)1.0);
30775 + TESTNOT (h1 != f1);
30776 + TESTNOT (f1 != h1);
30777 +
30778 + CHECK2 ((h1 ? hm2 : h42), -2.0);
30779 + CHECK2 ((h0 ? hm2 : h42), 42.0);
30780 +
30781 + CHECK (h0 = h42, 42.0);
30782 + CHECK (h0, 42.0);
30783 + CHECK (h0 = (__fp16)-2.0, -2.0);
30784 + CHECK (h0, -2.0);
30785 + CHECK (h0 = f0, 0.0);
30786 + CHECK (h0, 0.0);
30787 +
30788 + CHECK (h0 += h1, 1.0);
30789 + CHECK (h0, 1.0);
30790 + CHECK (h0 += (__fp16)1.0, 2.0);
30791 + CHECK (h0, 2.0);
30792 + CHECK (h0 += fm2, 0.0);
30793 + CHECK (h0, 0.0);
30794 +
30795 + CHECK (h0 -= h1, -1.0);
30796 + CHECK (h0, -1.0);
30797 + CHECK (h0 -= (__fp16)1.0, -2.0);
30798 + CHECK (h0, -2.0);
30799 + CHECK (h0 -= fm2, 0.0);
30800 + CHECK (h0, 0.0);
30801 +
30802 + h0 = hm2;
30803 + CHECK (h0 *= hm2, 4.0);
30804 + CHECK (h0, 4.0);
30805 + CHECK (h0 *= (__fp16)-2.0, -8.0);
30806 + CHECK (h0, -8.0);
30807 + CHECK (h0 *= fm2, 16.0);
30808 + CHECK (h0, 16.0);
30809 +
30810 + CHECK (h0 /= hm2, -8.0);
30811 + CHECK (h0, -8.0);
30812 + CHECK (h0 /= (__fp16)-2.0, 4.0);
30813 + CHECK (h0, 4.0);
30814 + CHECK (h0 /= fm2, -2.0);
30815 + CHECK (h0, -2.0);
30816 +
30817 + CHECK ((h0, h1), 1.0);
30818 +
30819 + return 0;
30820 +}
30821 diff -Nur a/gcc/testsuite/gcc.dg/torture/type-generic-1.c b/gcc/testsuite/gcc.dg/torture/type-generic-1.c
30822 --- a/gcc/testsuite/gcc.dg/torture/type-generic-1.c 2008-12-10 08:49:40.000000000 +0100
30823 +++ b/gcc/testsuite/gcc.dg/torture/type-generic-1.c 2010-01-25 09:50:29.245686094 +0100
30824 @@ -3,6 +3,7 @@
30825
30826 /* { dg-do run } */
30827 /* { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } */
30828 +/* { dg-options "-Wl,--defsym=__cs3_mips_float_type=2 -lcs3-mips-cp1 -lcs3-mips-fpemu" { target mips*-*sde*-* } } */
30829 /* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
30830
30831 #include "../tg-tests.h"
30832 diff -Nur a/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c
30833 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c 2007-07-12 04:20:04.000000000 +0200
30834 +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c 2010-01-25 09:50:29.245686094 +0100
30835 @@ -1,5 +1,5 @@
30836 /* { dg-do compile } */
30837 -/* { dg-options "-O2 -fdump-tree-vrp1-details" } */
30838 +/* { dg-options "-O2 -fdump-tree-vrp1-details -fno-remove-local-statics" } */
30839
30840 static int blocksize = 4096;
30841
30842 diff -Nur a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c
30843 --- a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c 2007-06-10 22:39:22.000000000 +0200
30844 +++ b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-7.c 2010-01-25 09:50:29.245686094 +0100
30845 @@ -1,5 +1,6 @@
30846 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
30847 /* { dg-require-effective-target ilp32 } */
30848 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=athlon" } } */
30849 /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon -msse2 -mfpmath=sse --param simultaneous-prefetches=100 --param max-unrolled-insns=1 -fdump-tree-aprefetch-details -fdump-tree-final_cleanup" } */
30850
30851 #define K 1000000
30852 diff -Nur a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c
30853 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c 2005-04-26 19:15:46.000000000 +0200
30854 +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c 2010-01-25 09:50:29.245686094 +0100
30855 @@ -1,5 +1,5 @@
30856 /* { dg-do compile } */
30857 -/* { dg-options "-O2 -fdump-tree-dse1" } */
30858 +/* { dg-options "-O2 -fdump-tree-dse1 -fno-remove-local-statics" } */
30859
30860 int foo11 (int c)
30861 {
30862 diff -Nur a/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c b/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c
30863 --- a/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c 1970-01-01 01:00:00.000000000 +0100
30864 +++ b/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c 2010-01-25 09:50:29.245686094 +0100
30865 @@ -0,0 +1,34 @@
30866 +/* { dg-do compile } */
30867 +/* { dg-require-effective-target section_anchors } */
30868 +/* { dg-require-effective-target vect_int } */
30869 +
30870 +#include <stdarg.h>
30871 +#include "tree-vect.h"
30872 +
30873 +#define N 32
30874 +
30875 +static int a[N][N];
30876 +static int b[N][N];
30877 +static int c[N][N];
30878 +
30879 +void clobber(int *);
30880 +
30881 +int *foo(void)
30882 +{
30883 + int i;
30884 + int j;
30885 +
30886 + clobber (&a[0][0]);
30887 + clobber (&b[0][0]);
30888 + clobber (&c[0][0]);
30889 +
30890 + for (i = 0; i < N; i++) {
30891 + for (j = 0; j < N; j++) {
30892 + c[j][i] += a[j][i] + c[j][i];
30893 + }
30894 + }
30895 + return &c[0][0];
30896 +}
30897 +
30898 +/* { dg-final { scan-ipa-dump-times "Increasing alignment of decl" 3 "increase_alignment" } } */
30899 +/* { dg-final { cleanup-ipa-dump "increase_alignment" } } */
30900 diff -Nur a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
30901 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c 2007-10-30 06:25:10.000000000 +0100
30902 +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c 2010-01-25 09:50:29.245686094 +0100
30903 @@ -88,5 +88,5 @@
30904
30905 /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
30906 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
30907 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
30908 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target { ! vect_element_align } } } } */
30909 /* { dg-final { cleanup-tree-dump "vect" } } */
30910 diff -Nur a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
30911 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c 2007-10-30 06:25:10.000000000 +0100
30912 +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c 2010-01-25 09:50:29.245686094 +0100
30913 @@ -84,5 +84,5 @@
30914
30915 /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
30916 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
30917 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
30918 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target { ! vect_element_align } } } } */
30919 /* { dg-final { cleanup-tree-dump "vect" } } */
30920 diff -Nur a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c
30921 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c 2008-04-27 18:27:08.000000000 +0200
30922 +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c 2010-01-25 09:50:29.245686094 +0100
30923 @@ -79,5 +79,5 @@
30924
30925 /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
30926 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
30927 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
30928 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! vect_element_align } } } } */
30929 /* { dg-final { cleanup-tree-dump "vect" } } */
30930 diff -Nur a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c
30931 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c 2007-10-30 06:25:10.000000000 +0100
30932 +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c 2010-01-25 09:50:29.245686094 +0100
30933 @@ -88,5 +88,5 @@
30934
30935 /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
30936 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
30937 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
30938 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target { ! vect_element_align } } } } */
30939 /* { dg-final { cleanup-tree-dump "vect" } } */
30940 diff -Nur a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
30941 --- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c 2008-04-27 18:27:08.000000000 +0200
30942 +++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c 2010-01-25 09:50:29.245686094 +0100
30943 @@ -114,7 +114,7 @@
30944
30945 /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
30946 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
30947 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail {! vector_alignment_reachable} } } } */
30948 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail { vect_element_align || {! vector_alignment_reachable} } } } } */
30949 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target {! vector_alignment_reachable} } } } */
30950 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target {! vector_alignment_reachable} } } } */
30951 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { { ! vector_alignment_reachable } && { ! vect_element_align } } } } } */
30952 /* { dg-final { cleanup-tree-dump "vect" } } */
30953 diff -Nur a/gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c b/gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
30954 --- a/gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c 2007-08-07 21:13:27.000000000 +0200
30955 +++ b/gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c 2010-01-25 09:50:29.245686094 +0100
30956 @@ -115,6 +115,6 @@
30957 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
30958 /* Alignment forced using versioning until the pass that increases alignment
30959 is extended to handle structs. */
30960 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 4 "vect" { target {vect_int && vector_alignment_reachable } } } } */
30961 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 4 "vect" { target { {vect_int && vector_alignment_reachable } && { ! vect_element_align } } } } } */
30962 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 4 "vect" { target {vect_int && {! vector_alignment_reachable} } } } } */
30963 /* { dg-final { cleanup-tree-dump "vect" } } */
30964 diff -Nur a/gcc/testsuite/gcc.dg/vect/slp-25.c b/gcc/testsuite/gcc.dg/vect/slp-25.c
30965 --- a/gcc/testsuite/gcc.dg/vect/slp-25.c 2008-04-22 01:32:32.000000000 +0200
30966 +++ b/gcc/testsuite/gcc.dg/vect/slp-25.c 2010-01-25 09:50:29.245686094 +0100
30967 @@ -56,5 +56,5 @@
30968
30969 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
30970 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
30971 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail vect_no_align } } } */
30972 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
30973 /* { dg-final { cleanup-tree-dump "vect" } } */
30974 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-109.c b/gcc/testsuite/gcc.dg/vect/vect-109.c
30975 --- a/gcc/testsuite/gcc.dg/vect/vect-109.c 2007-09-04 15:05:19.000000000 +0200
30976 +++ b/gcc/testsuite/gcc.dg/vect/vect-109.c 2010-01-25 09:50:29.245686094 +0100
30977 @@ -73,6 +73,6 @@
30978 }
30979
30980 /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect" } } */
30981 -/* { dg-final { scan-tree-dump-times "not vectorized: unsupported unaligned store" 2 "vect" } } */
30982 +/* { dg-final { scan-tree-dump-times "not vectorized: unsupported unaligned store" 2 "vect" { target { ! vect_element_align } } } } */
30983 /* { dg-final { cleanup-tree-dump "vect" } } */
30984
30985 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-26.c b/gcc/testsuite/gcc.dg/vect/vect-26.c
30986 --- a/gcc/testsuite/gcc.dg/vect/vect-26.c 2007-09-04 15:05:19.000000000 +0200
30987 +++ b/gcc/testsuite/gcc.dg/vect/vect-26.c 2010-01-25 09:50:29.245686094 +0100
30988 @@ -37,5 +37,5 @@
30989
30990 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
30991 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
30992 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
30993 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! vect_element_align } } } } */
30994 /* { dg-final { cleanup-tree-dump "vect" } } */
30995 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-27.c b/gcc/testsuite/gcc.dg/vect/vect-27.c
30996 --- a/gcc/testsuite/gcc.dg/vect/vect-27.c 2007-10-30 06:25:10.000000000 +0100
30997 +++ b/gcc/testsuite/gcc.dg/vect/vect-27.c 2010-01-25 09:50:29.245686094 +0100
30998 @@ -45,6 +45,6 @@
30999 /* The initialization induction loop (with aligned access) is also vectorized. */
31000 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail vect_no_align } } } */
31001 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_no_align } } } */
31002 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
31003 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
31004 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31005 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { ! vect_element_align } } } } */
31006 /* { dg-final { cleanup-tree-dump "vect" } } */
31007 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-28.c b/gcc/testsuite/gcc.dg/vect/vect-28.c
31008 --- a/gcc/testsuite/gcc.dg/vect/vect-28.c 2007-09-04 15:05:19.000000000 +0200
31009 +++ b/gcc/testsuite/gcc.dg/vect/vect-28.c 2010-01-25 09:50:29.245686094 +0100
31010 @@ -40,6 +40,6 @@
31011
31012 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31013 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31014 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target vector_alignment_reachable } } } */
31015 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vector_alignment_reachable && { ! vect_element_align } } } } } */
31016 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target { ! vector_alignment_reachable } } } } */
31017 /* { dg-final { cleanup-tree-dump "vect" } } */
31018 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-29.c b/gcc/testsuite/gcc.dg/vect/vect-29.c
31019 --- a/gcc/testsuite/gcc.dg/vect/vect-29.c 2007-10-30 06:25:10.000000000 +0100
31020 +++ b/gcc/testsuite/gcc.dg/vect/vect-29.c 2010-01-25 09:50:29.245686094 +0100
31021 @@ -50,7 +50,7 @@
31022
31023 /* The initialization induction loop (with aligned access) is also vectorized. */
31024 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
31025 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
31026 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
31027 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31028 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { ! vect_element_align } } } } */
31029 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" {target vect_no_align } } } */
31030 /* { dg-final { cleanup-tree-dump "vect" } } */
31031 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-33.c b/gcc/testsuite/gcc.dg/vect/vect-33.c
31032 --- a/gcc/testsuite/gcc.dg/vect/vect-33.c 2007-09-04 15:05:19.000000000 +0200
31033 +++ b/gcc/testsuite/gcc.dg/vect/vect-33.c 2010-01-25 09:50:29.245686094 +0100
31034 @@ -39,6 +39,6 @@
31035
31036 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31037 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31038 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target vector_alignment_reachable } } } */
31039 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vector_alignment_reachable && { ! vect_element_align } } } } } */
31040 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target { ! vector_alignment_reachable } } } } */
31041 /* { dg-final { cleanup-tree-dump "vect" } } */
31042 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-42.c b/gcc/testsuite/gcc.dg/vect/vect-42.c
31043 --- a/gcc/testsuite/gcc.dg/vect/vect-42.c 2007-09-04 15:05:19.000000000 +0200
31044 +++ b/gcc/testsuite/gcc.dg/vect/vect-42.c 2010-01-25 09:50:29.245686094 +0100
31045 @@ -57,6 +57,6 @@
31046
31047 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31048 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target { vect_no_align || { ! vector_alignment_reachable } } } } } */
31049 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || { ! vector_alignment_reachable } } } } } */
31050 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail {vect_no_align || { ! vector_alignment_reachable } } } } } */
31051 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { { vect_no_align || vect_element_align } || { ! vector_alignment_reachable } } } } } */
31052 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { { vect_no_align || vect_element_align } || { ! vector_alignment_reachable } } } } } */
31053 /* { dg-final { cleanup-tree-dump "vect" } } */
31054 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-44.c b/gcc/testsuite/gcc.dg/vect/vect-44.c
31055 --- a/gcc/testsuite/gcc.dg/vect/vect-44.c 2007-09-04 15:05:19.000000000 +0200
31056 +++ b/gcc/testsuite/gcc.dg/vect/vect-44.c 2010-01-25 09:50:29.245686094 +0100
31057 @@ -65,8 +65,8 @@
31058 two loads to be aligned). */
31059
31060 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31061 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
31062 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { vect_no_align || {! vector_alignment_reachable} } } } } */
31063 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31064 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { { vect_no_align || vect_element_align } || {! vector_alignment_reachable} } } } } */
31065 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" { target vect_no_align } } } */
31066 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" { target { {! vector_alignment_reachable} && {! vect_no_align} } } } } */
31067 /* { dg-final { cleanup-tree-dump "vect" } } */
31068 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-48.c b/gcc/testsuite/gcc.dg/vect/vect-48.c
31069 --- a/gcc/testsuite/gcc.dg/vect/vect-48.c 2007-09-04 15:05:19.000000000 +0200
31070 +++ b/gcc/testsuite/gcc.dg/vect/vect-48.c 2010-01-25 09:50:29.245686094 +0100
31071 @@ -54,7 +54,7 @@
31072 (The store is aligned). */
31073
31074 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31075 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
31076 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
31077 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31078 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { ! vect_element_align } } } } */
31079 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 2 "vect" { target vect_no_align } } } */
31080 /* { dg-final { cleanup-tree-dump "vect" } } */
31081 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-50.c b/gcc/testsuite/gcc.dg/vect/vect-50.c
31082 --- a/gcc/testsuite/gcc.dg/vect/vect-50.c 2007-09-04 15:05:19.000000000 +0200
31083 +++ b/gcc/testsuite/gcc.dg/vect/vect-50.c 2010-01-25 09:50:29.245686094 +0100
31084 @@ -61,8 +61,8 @@
31085 two loads to be aligned). */
31086
31087 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31088 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
31089 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { vect_no_align || {! vector_alignment_reachable} } } } } */
31090 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31091 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { { vect_no_align || vect_element_align } || {! vector_alignment_reachable} } } } } */
31092 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" { target vect_no_align } } } */
31093 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" { target { {! vector_alignment_reachable} && {! vect_no_align} } } } } */
31094 /* { dg-final { cleanup-tree-dump "vect" } } */
31095 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-52.c b/gcc/testsuite/gcc.dg/vect/vect-52.c
31096 --- a/gcc/testsuite/gcc.dg/vect/vect-52.c 2007-09-04 15:05:19.000000000 +0200
31097 +++ b/gcc/testsuite/gcc.dg/vect/vect-52.c 2010-01-25 09:50:29.245686094 +0100
31098 @@ -55,7 +55,7 @@
31099 (The store is aligned). */
31100
31101 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31102 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
31103 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
31104 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31105 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { ! vect_element_align } } } } */
31106 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 2 "vect" { target vect_no_align } } } */
31107 /* { dg-final { cleanup-tree-dump "vect" } } */
31108 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-54.c b/gcc/testsuite/gcc.dg/vect/vect-54.c
31109 --- a/gcc/testsuite/gcc.dg/vect/vect-54.c 2007-09-04 15:05:19.000000000 +0200
31110 +++ b/gcc/testsuite/gcc.dg/vect/vect-54.c 2010-01-25 09:50:29.245686094 +0100
31111 @@ -59,5 +59,5 @@
31112
31113 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31114 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31115 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
31116 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! vect_element_align } } } } */
31117 /* { dg-final { cleanup-tree-dump "vect" } } */
31118 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-56.c b/gcc/testsuite/gcc.dg/vect/vect-56.c
31119 --- a/gcc/testsuite/gcc.dg/vect/vect-56.c 2007-09-04 15:05:19.000000000 +0200
31120 +++ b/gcc/testsuite/gcc.dg/vect/vect-56.c 2010-01-25 09:50:29.245686094 +0100
31121 @@ -67,6 +67,6 @@
31122 }
31123
31124 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
31125 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
31126 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
31127 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31128 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { ! vect_element_align } } } } */
31129 /* { dg-final { cleanup-tree-dump "vect" } } */
31130 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-58.c b/gcc/testsuite/gcc.dg/vect/vect-58.c
31131 --- a/gcc/testsuite/gcc.dg/vect/vect-58.c 2007-09-04 15:05:19.000000000 +0200
31132 +++ b/gcc/testsuite/gcc.dg/vect/vect-58.c 2010-01-25 09:50:29.245686094 +0100
31133 @@ -58,5 +58,5 @@
31134
31135 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31136 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31137 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
31138 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! vect_element_align } } } } */
31139 /* { dg-final { cleanup-tree-dump "vect" } } */
31140 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-60.c b/gcc/testsuite/gcc.dg/vect/vect-60.c
31141 --- a/gcc/testsuite/gcc.dg/vect/vect-60.c 2007-09-04 15:05:19.000000000 +0200
31142 +++ b/gcc/testsuite/gcc.dg/vect/vect-60.c 2010-01-25 09:50:29.245686094 +0100
31143 @@ -68,6 +68,6 @@
31144 }
31145
31146 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
31147 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
31148 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
31149 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31150 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { ! vect_element_align } } } } */
31151 /* { dg-final { cleanup-tree-dump "vect" } } */
31152 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-70.c b/gcc/testsuite/gcc.dg/vect/vect-70.c
31153 --- a/gcc/testsuite/gcc.dg/vect/vect-70.c 2007-09-04 15:05:19.000000000 +0200
31154 +++ b/gcc/testsuite/gcc.dg/vect/vect-70.c 2010-01-25 09:50:29.245686094 +0100
31155 @@ -64,6 +64,6 @@
31156
31157 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31158 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31159 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" {target vector_alignment_reachable } } } */
31160 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" {target { vector_alignment_reachable && { ! vect_element_align } } } } } */
31161 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" {target {! vector_alignment_reachable} } } } */
31162 /* { dg-final { cleanup-tree-dump "vect" } } */
31163 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-72.c b/gcc/testsuite/gcc.dg/vect/vect-72.c
31164 --- a/gcc/testsuite/gcc.dg/vect/vect-72.c 2008-08-12 08:31:57.000000000 +0200
31165 +++ b/gcc/testsuite/gcc.dg/vect/vect-72.c 2010-01-25 09:50:29.245686094 +0100
31166 @@ -46,6 +46,6 @@
31167 }
31168
31169 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
31170 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
31171 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
31172 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31173 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" { target { ! vect_element_align } } } } */
31174 /* { dg-final { cleanup-tree-dump "vect" } } */
31175 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-75.c b/gcc/testsuite/gcc.dg/vect/vect-75.c
31176 --- a/gcc/testsuite/gcc.dg/vect/vect-75.c 2007-09-04 15:05:19.000000000 +0200
31177 +++ b/gcc/testsuite/gcc.dg/vect/vect-75.c 2010-01-25 09:50:29.245686094 +0100
31178 @@ -45,5 +45,5 @@
31179
31180 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31181 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target vect_no_align } } } */
31182 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
31183 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31184 /* { dg-final { cleanup-tree-dump "vect" } } */
31185 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-87.c b/gcc/testsuite/gcc.dg/vect/vect-87.c
31186 --- a/gcc/testsuite/gcc.dg/vect/vect-87.c 2007-09-04 15:05:19.000000000 +0200
31187 +++ b/gcc/testsuite/gcc.dg/vect/vect-87.c 2010-01-25 09:50:29.245686094 +0100
31188 @@ -51,6 +51,6 @@
31189 /* Fails for targets that don't vectorize PLUS (e.g alpha). */
31190 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31191 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31192 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" {target vector_alignment_reachable } } } */
31193 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" {target { vector_alignment_reachable && { ! vect_element_align } } } } } */
31194 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" {target {! vector_alignment_reachable} } } } */
31195 /* { dg-final { cleanup-tree-dump "vect" } } */
31196 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-88.c b/gcc/testsuite/gcc.dg/vect/vect-88.c
31197 --- a/gcc/testsuite/gcc.dg/vect/vect-88.c 2007-09-04 15:05:19.000000000 +0200
31198 +++ b/gcc/testsuite/gcc.dg/vect/vect-88.c 2010-01-25 09:50:29.245686094 +0100
31199 @@ -51,6 +51,6 @@
31200 /* Fails for targets that don't vectorize PLUS (e.g alpha). */
31201 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31202 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31203 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" {target vector_alignment_reachable } } } */
31204 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" {target { vector_alignment_reachable && { ! vect_element_align } } } } } */
31205 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" {target {! vector_alignment_reachable} } } } */
31206 /* { dg-final { cleanup-tree-dump "vect" } } */
31207 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-89.c b/gcc/testsuite/gcc.dg/vect/vect-89.c
31208 --- a/gcc/testsuite/gcc.dg/vect/vect-89.c 2007-09-04 15:05:19.000000000 +0200
31209 +++ b/gcc/testsuite/gcc.dg/vect/vect-89.c 2010-01-25 09:50:29.245686094 +0100
31210 @@ -46,5 +46,5 @@
31211
31212 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31213 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31214 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
31215 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! vect_element_align } } } } */
31216 /* { dg-final { cleanup-tree-dump "vect" } } */
31217 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-91.c b/gcc/testsuite/gcc.dg/vect/vect-91.c
31218 --- a/gcc/testsuite/gcc.dg/vect/vect-91.c 2007-09-04 15:05:19.000000000 +0200
31219 +++ b/gcc/testsuite/gcc.dg/vect/vect-91.c 2010-01-25 09:50:29.245686094 +0100
31220 @@ -59,6 +59,6 @@
31221
31222 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" { xfail vect_no_int_add } } } */
31223 /* { dg-final { scan-tree-dump-times "accesses have the same alignment." 3 "vect" } } */
31224 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" {target vector_alignment_reachable } } } */
31225 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" {target { vector_alignment_reachable && { ! vect_element_align } } } } } */
31226 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 3 "vect" {target {! vector_alignment_reachable} } } } */
31227 /* { dg-final { cleanup-tree-dump "vect" } } */
31228 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-92.c b/gcc/testsuite/gcc.dg/vect/vect-92.c
31229 --- a/gcc/testsuite/gcc.dg/vect/vect-92.c 2007-09-04 15:05:19.000000000 +0200
31230 +++ b/gcc/testsuite/gcc.dg/vect/vect-92.c 2010-01-25 09:50:29.245686094 +0100
31231 @@ -92,5 +92,5 @@
31232
31233 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" } } */
31234 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
31235 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" } } */
31236 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { target { ! vect_element_align } } } } */
31237 /* { dg-final { cleanup-tree-dump "vect" } } */
31238 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-93.c b/gcc/testsuite/gcc.dg/vect/vect-93.c
31239 --- a/gcc/testsuite/gcc.dg/vect/vect-93.c 2007-09-04 15:05:19.000000000 +0200
31240 +++ b/gcc/testsuite/gcc.dg/vect/vect-93.c 2010-01-25 09:50:29.245686094 +0100
31241 @@ -72,7 +72,7 @@
31242 /* main && main1 together: */
31243 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 2 "vect" { target powerpc*-*-* i?86-*-* x86_64-*-* } } } */
31244 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target { vect_no_align && {! vector_alignment_reachable} } } } } */
31245 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail { vect_no_align || {! vector_alignment_reachable} } } } } */
31246 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail { { vect_no_align || vect_element_align } || {! vector_alignment_reachable} } } } } */
31247
31248 /* in main1: */
31249 /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { target !powerpc*-*-* !i?86-*-* !x86_64-*-* } } } */
31250 @@ -80,6 +80,6 @@
31251
31252 /* in main: */
31253 /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target vect_no_align } } } */
31254 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
31255 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31256
31257 /* { dg-final { cleanup-tree-dump "vect" } } */
31258 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-95.c b/gcc/testsuite/gcc.dg/vect/vect-95.c
31259 --- a/gcc/testsuite/gcc.dg/vect/vect-95.c 2007-09-04 15:05:19.000000000 +0200
31260 +++ b/gcc/testsuite/gcc.dg/vect/vect-95.c 2010-01-25 09:50:29.245686094 +0100
31261 @@ -62,8 +62,8 @@
31262 stores and generate misaligned accesses for the loads. For targets that
31263 don't support unaligned loads we version for all four accesses. */
31264
31265 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
31266 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { xfail vect_no_align } } } */
31267 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31268 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31269 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" { target vect_no_align } } } */
31270 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 4 "vect" { target vect_no_align } } } */
31271 /* { dg-final { cleanup-tree-dump "vect" } } */
31272 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-align-2.c b/gcc/testsuite/gcc.dg/vect/vect-align-2.c
31273 --- a/gcc/testsuite/gcc.dg/vect/vect-align-2.c 2008-03-13 21:13:29.000000000 +0100
31274 +++ b/gcc/testsuite/gcc.dg/vect/vect-align-2.c 2010-01-25 09:50:29.245686094 +0100
31275 @@ -43,6 +43,6 @@
31276
31277
31278 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
31279 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" } } */
31280 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target { ! vect_element_align } } } } */
31281 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31282 /* { dg-final { cleanup-tree-dump "vect" } } */
31283 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect.exp b/gcc/testsuite/gcc.dg/vect/vect.exp
31284 --- a/gcc/testsuite/gcc.dg/vect/vect.exp 2009-02-20 16:20:38.000000000 +0100
31285 +++ b/gcc/testsuite/gcc.dg/vect/vect.exp 2010-01-25 09:50:29.245686094 +0100
31286 @@ -97,7 +97,7 @@
31287 } elseif [istarget "ia64-*-*"] {
31288 set dg-do-what-default run
31289 } elseif [is-effective-target arm_neon_ok] {
31290 - lappend DEFAULT_VECTCFLAGS "-mfpu=neon" "-mfloat-abi=softfp"
31291 + eval lappend DEFAULT_VECTCFLAGS [add_options_for_arm_neon ""]
31292 if [is-effective-target arm_neon_hw] {
31293 set dg-do-what-default run
31294 } else {
31295 @@ -183,6 +183,12 @@
31296 dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/section-anchors-*.\[cS\]]] \
31297 "" $DEFAULT_VECTCFLAGS
31298
31299 +# alignment-sensitive -fsection-anchors tests
31300 +set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
31301 +lappend DEFAULT_VECTCFLAGS "-fsection-anchors" "-fdump-ipa-increase_alignment"
31302 +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/aligned-section-anchors-*.\[cS\]]] \
31303 + "" $DEFAULT_VECTCFLAGS
31304 +
31305 # -fno-section-anchors tests
31306 set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
31307 lappend DEFAULT_VECTCFLAGS "-fno-section-anchors"
31308 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
31309 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c 2007-09-04 15:05:19.000000000 +0200
31310 +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c 2010-01-25 09:50:29.245686094 +0100
31311 @@ -78,11 +78,11 @@
31312 return 0;
31313 }
31314
31315 -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail *-*-* } } } */
31316 -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
31317 +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail { ! vect_element_align } } } } */
31318 +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31319 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail *-*-* } } } */
31320 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
31321 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31322 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" { xfail *-*-* } } } */
31323 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
31324 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31325 /* { dg-final { cleanup-tree-dump "vect" } } */
31326
31327 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
31328 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c 2007-09-04 15:05:19.000000000 +0200
31329 +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c 2010-01-25 09:50:29.245686094 +0100
31330 @@ -54,6 +54,6 @@
31331
31332 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31333 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 3 "vect" { target vect_no_align } } } */
31334 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 3 "vect" {xfail vect_no_align } } } */
31335 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 3 "vect" {xfail { vect_no_align || vect_element_align } } } } */
31336 /* { dg-final { cleanup-tree-dump "vect" } } */
31337
31338 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
31339 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c 2007-09-04 15:05:19.000000000 +0200
31340 +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c 2010-01-25 09:50:29.245686094 +0100
31341 @@ -85,11 +85,11 @@
31342 return 0;
31343 }
31344
31345 -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail *-*-* } } } */
31346 -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
31347 +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail { ! vect_element_align } } } } */
31348 +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31349 /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail *-*-* } } } */
31350 -/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
31351 +/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31352 /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 8 "vect" { xfail *-*-* } } } */
31353 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" { xfail vect_no_align } } } */
31354 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" { xfail { vect_no_align || vect_element_align } } } } */
31355 /* { dg-final { cleanup-tree-dump "vect" } } */
31356
31357 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
31358 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c 2007-09-04 15:05:19.000000000 +0200
31359 +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c 2010-01-25 09:50:29.245686094 +0100
31360 @@ -61,6 +61,6 @@
31361
31362 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31363 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 6 "vect" { target vect_no_align } } } */
31364 -/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 6 "vect" {xfail vect_no_align } } } */
31365 +/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 6 "vect" {xfail { vect_no_align || vect_element_align } } } } */
31366 /* { dg-final { cleanup-tree-dump "vect" } } */
31367
31368 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-shift-2.c b/gcc/testsuite/gcc.dg/vect/vect-shift-2.c
31369 --- a/gcc/testsuite/gcc.dg/vect/vect-shift-2.c 1970-01-01 01:00:00.000000000 +0100
31370 +++ b/gcc/testsuite/gcc.dg/vect/vect-shift-2.c 2010-01-25 09:50:29.245686094 +0100
31371 @@ -0,0 +1,37 @@
31372 +/* { dg-require-effective-target vect_shift_char } */
31373 +/* { dg-require-effective-target vect_int } */
31374 +
31375 +#include "tree-vect.h"
31376 +
31377 +#define N 32
31378 +
31379 +unsigned char dst[N] __attribute__((aligned(N)));
31380 +unsigned char src[N] __attribute__((aligned(N)));
31381 +
31382 +__attribute__ ((noinline))
31383 +void array_shift(void)
31384 +{
31385 + int i;
31386 + for (i = 0; i < N; i++)
31387 + dst[i] = src[i] >> 3;
31388 +}
31389 +
31390 +int main()
31391 +{
31392 + volatile int i;
31393 + check_vect ();
31394 +
31395 + for (i = 0; i < N; i++)
31396 + src[i] = i << 3;
31397 +
31398 + array_shift ();
31399 +
31400 + for (i = 0; i < N; i++)
31401 + if (dst[i] != i)
31402 + abort ();
31403 +
31404 + return 0;
31405 +}
31406 +
31407 +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31408 +/* { dg-final { cleanup-tree-dump "vect" } } */
31409 diff -Nur a/gcc/testsuite/gcc.dg/vect/vect-shift-3.c b/gcc/testsuite/gcc.dg/vect/vect-shift-3.c
31410 --- a/gcc/testsuite/gcc.dg/vect/vect-shift-3.c 1970-01-01 01:00:00.000000000 +0100
31411 +++ b/gcc/testsuite/gcc.dg/vect/vect-shift-3.c 2010-01-25 09:50:29.245686094 +0100
31412 @@ -0,0 +1,37 @@
31413 +/* { dg-require-effective-target vect_shift } */
31414 +/* { dg-require-effective-target vect_int } */
31415 +
31416 +#include "tree-vect.h"
31417 +
31418 +#define N 32
31419 +
31420 +unsigned short dst[N] __attribute__((aligned(N)));
31421 +unsigned short src[N] __attribute__((aligned(N)));
31422 +
31423 +__attribute__ ((noinline))
31424 +void array_shift(void)
31425 +{
31426 + int i;
31427 + for (i = 0; i < N; i++)
31428 + dst[i] = src[i] >> 3;
31429 +}
31430 +
31431 +int main()
31432 +{
31433 + volatile int i;
31434 + check_vect ();
31435 +
31436 + for (i = 0; i < N; i++)
31437 + src[i] = i << 3;
31438 +
31439 + array_shift ();
31440 +
31441 + for (i = 0; i < N; i++)
31442 + if (dst[i] != i)
31443 + abort ();
31444 +
31445 + return 0;
31446 +}
31447 +
31448 +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
31449 +/* { dg-final { cleanup-tree-dump "vect" } } */
31450 diff -Nur a/gcc/testsuite/gcc.dg/vmx/vmx.exp b/gcc/testsuite/gcc.dg/vmx/vmx.exp
31451 --- a/gcc/testsuite/gcc.dg/vmx/vmx.exp 2007-08-01 18:25:11.000000000 +0200
31452 +++ b/gcc/testsuite/gcc.dg/vmx/vmx.exp 2010-01-25 09:50:29.245686094 +0100
31453 @@ -31,7 +31,7 @@
31454 # nothing but extensions.
31455 global DEFAULT_VMXCFLAGS
31456 if ![info exists DEFAULT_VMXCFLAGS] then {
31457 - set DEFAULT_VMXCFLAGS "-maltivec -mabi=altivec -std=gnu99"
31458 + set DEFAULT_VMXCFLAGS "-maltivec -std=gnu99"
31459 }
31460
31461 # If the target system supports AltiVec instructions, the default action
31462 diff -Nur a/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp b/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
31463 --- a/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp 2009-02-20 16:20:38.000000000 +0100
31464 +++ b/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp 2010-01-25 09:50:29.245686094 +0100
31465 @@ -90,6 +90,13 @@
31466 dg-init
31467 torture-init
31468
31469 +if { [board_info target exists multilib_flags]
31470 + && [string match "* -march=*" " [board_info target multilib_flags] "] } {
31471 + # Multilib flags come after the -march flags we pass and override
31472 + # them, so skip these tests when such flags are passed.
31473 + return
31474 +}
31475 +
31476 set-torture-options $PREFETCH_NONE
31477 gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/i386-pf-none-*.c]] ""
31478
31479 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp b/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp
31480 --- a/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp 1970-01-01 01:00:00.000000000 +0100
31481 +++ b/gcc/testsuite/gcc.target/arm/aapcs/aapcs.exp 2010-01-25 09:50:29.245686094 +0100
31482 @@ -0,0 +1,35 @@
31483 +# Copyright (C) 1997, 2004, 2006, 2007 Free Software Foundation, Inc.
31484 +
31485 +# This program is free software; you can redistribute it and/or modify
31486 +# it under the terms of the GNU General Public License as published by
31487 +# the Free Software Foundation; either version 3 of the License, or
31488 +# (at your option) any later version.
31489 +#
31490 +# This program is distributed in the hope that it will be useful,
31491 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
31492 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31493 +# GNU General Public License for more details.
31494 +#
31495 +# You should have received a copy of the GNU General Public License
31496 +# along with GCC; see the file COPYING3. If not see
31497 +# <http://www.gnu.org/licenses/>.
31498 +
31499 +# GCC testsuite that uses the `dg.exp' driver.
31500 +
31501 +# Exit immediately if this isn't an ARM target.
31502 +if ![istarget arm*-*-*] then {
31503 + return
31504 +}
31505 +
31506 +# Load support procs.
31507 +load_lib gcc-dg.exp
31508 +
31509 +# Initialize `dg'.
31510 +dg-init
31511 +
31512 +# Main loop.
31513 +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
31514 + "" ""
31515 +
31516 +# All done.
31517 +dg-finish
31518 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/abitest.h b/gcc/testsuite/gcc.target/arm/aapcs/abitest.h
31519 --- a/gcc/testsuite/gcc.target/arm/aapcs/abitest.h 1970-01-01 01:00:00.000000000 +0100
31520 +++ b/gcc/testsuite/gcc.target/arm/aapcs/abitest.h 2010-01-25 09:50:29.245686094 +0100
31521 @@ -0,0 +1,118 @@
31522 +#define IN_FRAMEWORK
31523 +
31524 +#ifdef VFP
31525 +#define D0 0
31526 +#define D1 8
31527 +#define D2 16
31528 +#define D3 24
31529 +#define D4 32
31530 +#define D5 40
31531 +#define D6 48
31532 +#define D7 56
31533 +
31534 +#define S0 64
31535 +#define S1 68
31536 +#define S2 72
31537 +#define S3 76
31538 +#define S4 80
31539 +#define S5 84
31540 +#define S6 88
31541 +#define S7 92
31542 +#define S8 86
31543 +#define S9 100
31544 +#define S10 104
31545 +#define S11 108
31546 +#define S12 112
31547 +#define S13 116
31548 +#define S14 120
31549 +#define S15 124
31550 +
31551 +#define R0 128
31552 +#define R1 132
31553 +#define R2 136
31554 +#define R3 140
31555 +
31556 +#define STACK 144
31557 +
31558 +#else
31559 +
31560 +#define R0 0
31561 +#define R1 4
31562 +#define R2 8
31563 +#define R3 12
31564 +
31565 +#define STACK 16
31566 +
31567 +#endif
31568 +
31569 +extern void abort (void);
31570 +
31571 +__attribute__((naked)) void dumpregs () __asm("myfunc");
31572 +__attribute__((naked)) void dumpregs ()
31573 +{
31574 + asm(
31575 + "mov ip, sp\n\t"
31576 + "stmfd sp!, {r0-r3}\n\t"
31577 +#ifdef VFP
31578 + "fstmdbs sp!, {s0-s15}\n\t"
31579 + "fstmdbd sp!, {d0-d7}\n\t"
31580 +#endif
31581 + "mov r0, sp\n\t"
31582 + "stmfd sp!, {ip, r14}\n\t"
31583 + "bl testfunc\n\t"
31584 + "ldmfd sp!, {r0, r14}\n\t"
31585 + "mov sp, r0\n\t"
31586 + "bx lr");
31587 +}
31588 +
31589 +
31590 +#define LAST_ARG(type,val,offset) { type __x = val; if (memcmp(&__x, stack+offset, sizeof(type)) != 0) abort(); }
31591 +#define ARG(type,val,offset) LAST_ARG(type, val, offset)
31592 +#define ANON(type,val,offset) LAST_ARG(type, val, offset)
31593 +#define LAST_ANON(type,val,offset) LAST_ARG(type, val, offset)
31594 +#define DOTS
31595 +
31596 +void testfunc(char* stack)
31597 +{
31598 +#include TESTFILE
31599 + return;
31600 +}
31601 +
31602 +#undef LAST_ARG
31603 +#undef ARG
31604 +#undef DOTS
31605 +#undef ANON
31606 +#undef LAST_ANON
31607 +#define LAST_ARG(type,val,offset) type
31608 +#define ARG(type,val,offset) LAST_ARG(type, val, offset),
31609 +#define DOTS ...
31610 +#define ANON(type,val, offset)
31611 +#define LAST_ANON(type,val, offset)
31612 +
31613 +#ifndef MYFUNCTYPE
31614 +#define MYFUNCTYPE void
31615 +#endif
31616 +
31617 +MYFUNCTYPE myfunc(
31618 +#include TESTFILE
31619 +);
31620 +
31621 +#undef LAST_ARG
31622 +#undef ARG
31623 +#undef DOTS
31624 +#undef ANON
31625 +#undef LAST_ANON
31626 +#define LAST_ARG(type,val,offset) val
31627 +#define ARG(type,val,offset) LAST_ARG(type, val, offset),
31628 +#define DOTS
31629 +#define LAST_ANON(type,val,offset) LAST_ARG(type, val, offset)
31630 +#define ANON(type,val,offset) LAST_ARG(type, val, offset),
31631 +
31632 +
31633 +int main()
31634 +{
31635 + myfunc(
31636 +#include TESTFILE
31637 +);
31638 + return 0;
31639 +}
31640 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp10.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp10.c
31641 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp10.c 1970-01-01 01:00:00.000000000 +0100
31642 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp10.c 2010-01-25 09:50:29.245686094 +0100
31643 @@ -0,0 +1,38 @@
31644 +/* Test AAPCS layout (VFP variant) */
31645 +
31646 +/* { dg-do run { target arm*-*-eabi* } } */
31647 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31648 +/* { dg-require-effective-target arm32 } */
31649 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31650 +
31651 +#ifndef IN_FRAMEWORK
31652 +#define VFP
31653 +#define TESTFILE "vfp10.c"
31654 +
31655 +__complex__ x = 1.0+2.0i;
31656 +
31657 +struct y
31658 +{
31659 + int p;
31660 + int q;
31661 + int r;
31662 + int s;
31663 +} v = { 1, 2, 3, 4 };
31664 +
31665 +struct z
31666 +{
31667 + double x[4];
31668 +};
31669 +
31670 +struct z a = { 5.0, 6.0, 7.0, 8.0 };
31671 +struct z b = { 9.0, 10.0, 11.0, 12.0 };
31672 +
31673 +#include "abitest.h"
31674 +#else
31675 + /* A variadic function passes using the base ABI */
31676 + ARG(double, 11.0, R0)
31677 + DOTS
31678 + ANON(struct z, a, R2)
31679 + ANON(struct z, b, STACK+24)
31680 + LAST_ANON(double, 0.5, STACK+56)
31681 +#endif
31682 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp11.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp11.c
31683 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp11.c 1970-01-01 01:00:00.000000000 +0100
31684 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp11.c 2010-01-25 09:50:29.245686094 +0100
31685 @@ -0,0 +1,39 @@
31686 +/* Test AAPCS layout (VFP variant) */
31687 +
31688 +/* { dg-do run { target arm*-*-eabi* } } */
31689 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31690 +/* { dg-require-effective-target arm32 } */
31691 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31692 +
31693 +#ifndef IN_FRAMEWORK
31694 +#define VFP
31695 +#define TESTFILE "vfp11.c"
31696 +
31697 +__complex__ x = 1.0+2.0i;
31698 +
31699 +struct y
31700 +{
31701 + int p;
31702 + int q;
31703 + int r;
31704 + int s;
31705 +} v = { 1, 2, 3, 4 };
31706 +
31707 +struct z
31708 +{
31709 + double x[4];
31710 +};
31711 +
31712 +struct z a = { 5.0, 6.0, 7.0, 8.0 };
31713 +struct z b = { 9.0, 10.0, 11.0, 12.0 };
31714 +
31715 +#define MYFUNCTYPE struct y
31716 +
31717 +#include "abitest.h"
31718 +#else
31719 + ARG(int, 7, R1)
31720 + ARG(struct y, v, R2)
31721 + ARG(struct z, a, D0)
31722 + ARG(struct z, b, D4)
31723 + LAST_ARG(double, 0.5, STACK+8)
31724 +#endif
31725 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp12.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp12.c
31726 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp12.c 1970-01-01 01:00:00.000000000 +0100
31727 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp12.c 2010-01-25 09:50:29.245686094 +0100
31728 @@ -0,0 +1,38 @@
31729 +/* Test AAPCS layout (VFP variant) */
31730 +
31731 +/* { dg-do run { target arm*-*-eabi* } } */
31732 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31733 +/* { dg-require-effective-target arm32 } */
31734 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31735 +
31736 +#ifndef IN_FRAMEWORK
31737 +#define VFP
31738 +#define TESTFILE "vfp12.c"
31739 +
31740 +__complex__ x = 1.0+2.0i;
31741 +
31742 +struct y
31743 +{
31744 + int p;
31745 + int q;
31746 + int r;
31747 + int s;
31748 +} v = { 1, 2, 3, 4 };
31749 +
31750 +struct z
31751 +{
31752 + double x[4];
31753 +};
31754 +
31755 +struct z a = { 5.0, 6.0, 7.0, 8.0 };
31756 +struct z b = { 9.0, 10.0, 11.0, 12.0 };
31757 +
31758 +#include "abitest.h"
31759 +#else
31760 + ARG(int, 7, R0)
31761 + ARG(struct y, v, R1)
31762 + ARG(struct z, a, D0)
31763 + ARG(double, 1.0, D4)
31764 + ARG(struct z, b, STACK+8)
31765 + LAST_ARG(double, 0.5, STACK+40)
31766 +#endif
31767 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp13.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp13.c
31768 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp13.c 1970-01-01 01:00:00.000000000 +0100
31769 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp13.c 2010-01-25 09:50:29.245686094 +0100
31770 @@ -0,0 +1,39 @@
31771 +/* Test AAPCS layout (VFP variant) */
31772 +
31773 +/* { dg-do run { target arm*-*-eabi* } } */
31774 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31775 +/* { dg-require-effective-target arm32 } */
31776 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31777 +
31778 +#ifndef IN_FRAMEWORK
31779 +#define VFP
31780 +#define TESTFILE "vfp13.c"
31781 +
31782 +__complex__ x = 1.0+2.0i;
31783 +
31784 +struct y
31785 +{
31786 + int p;
31787 + int q;
31788 + int r;
31789 + int s;
31790 +} v = { 1, 2, 3, 4 };
31791 +
31792 +struct z
31793 +{
31794 + double x[4];
31795 +};
31796 +
31797 +struct z a = { 5.0, 6.0, 7.0, 8.0 };
31798 +struct z b = { 9.0, 10.0, 11.0, 12.0 };
31799 +
31800 +#include "abitest.h"
31801 +#else
31802 + ARG(int, 7, R0)
31803 + ARG(int, 9, R1)
31804 + ARG(struct z, a, D0)
31805 + ARG(double, 1.0, D4)
31806 + ARG(struct z, b, STACK)
31807 + ARG(int, 4, R2)
31808 + LAST_ARG(double, 0.5, STACK+32)
31809 +#endif
31810 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp14.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp14.c
31811 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp14.c 1970-01-01 01:00:00.000000000 +0100
31812 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp14.c 2010-01-25 09:50:29.245686094 +0100
31813 @@ -0,0 +1,24 @@
31814 +/* Test AAPCS layout (VFP variant) */
31815 +
31816 +/* { dg-do run { target arm*-*-eabi* } } */
31817 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31818 +/* { dg-require-effective-target arm32 } */
31819 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31820 +
31821 +#ifndef IN_FRAMEWORK
31822 +#define VFP
31823 +#define TESTFILE "vfp14.c"
31824 +
31825 +#include "abitest.h"
31826 +#else
31827 + ARG(double, 1.0, D0)
31828 + ARG(double, 2.0, D1)
31829 + ARG(double, 3.0, D2)
31830 + ARG(double, 4.0, D3)
31831 + ARG(double, 5.0, D4)
31832 + ARG(double, 6.0, D5)
31833 + ARG(double, 7.0, D6)
31834 + ARG(double, 8.0, D7)
31835 + ARG(double, 9.0, STACK)
31836 + LAST_ARG(double, 10.0, STACK+8)
31837 +#endif
31838 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp1.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp1.c
31839 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp1.c 1970-01-01 01:00:00.000000000 +0100
31840 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp1.c 2010-01-25 09:50:29.245686094 +0100
31841 @@ -0,0 +1,17 @@
31842 +/* Test AAPCS layout (VFP variant) */
31843 +
31844 +/* { dg-do run { target arm*-*-eabi* } } */
31845 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31846 +/* { dg-require-effective-target arm32 } */
31847 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31848 +
31849 +#ifndef IN_FRAMEWORK
31850 +#define VFP
31851 +#define TESTFILE "vfp1.c"
31852 +#include "abitest.h"
31853 +
31854 +#else
31855 + ARG(int, 4, R0)
31856 + ARG(double, 4.0, D0)
31857 + LAST_ARG(int, 3, R1)
31858 +#endif
31859 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp2.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp2.c
31860 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp2.c 1970-01-01 01:00:00.000000000 +0100
31861 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp2.c 2010-01-25 09:50:29.245686094 +0100
31862 @@ -0,0 +1,19 @@
31863 +/* Test AAPCS layout (VFP variant) */
31864 +
31865 +/* { dg-do run { target arm*-*-eabi* } } */
31866 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31867 +/* { dg-require-effective-target arm32 } */
31868 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31869 +
31870 +#ifndef IN_FRAMEWORK
31871 +#define VFP
31872 +#define TESTFILE "vfp2.c"
31873 +#include "abitest.h"
31874 +
31875 +#else
31876 + ARG(float, 1.0f, S0)
31877 + ARG(double, 4.0, D1)
31878 + ARG(float, 2.0f, S1)
31879 + ARG(double, 5.0, D2)
31880 + LAST_ARG(int, 3, R0)
31881 +#endif
31882 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp3.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp3.c
31883 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp3.c 1970-01-01 01:00:00.000000000 +0100
31884 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp3.c 2010-01-25 09:50:29.245686094 +0100
31885 @@ -0,0 +1,21 @@
31886 +/* Test AAPCS layout (VFP variant) */
31887 +
31888 +/* { dg-do run { target arm*-*-eabi* } } */
31889 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31890 +/* { dg-require-effective-target arm32 } */
31891 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31892 +
31893 +#ifndef IN_FRAMEWORK
31894 +#define VFP
31895 +#define TESTFILE "vfp3.c"
31896 +
31897 +__complex__ x = 1.0+2.0i;
31898 +
31899 +#include "abitest.h"
31900 +#else
31901 + ARG(float, 1.0f, S0)
31902 + ARG(__complex__ double, x, D1)
31903 + ARG(float, 2.0f, S1)
31904 + ARG(double, 5.0, D3)
31905 + LAST_ARG(int, 3, R0)
31906 +#endif
31907 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp4.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp4.c
31908 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp4.c 1970-01-01 01:00:00.000000000 +0100
31909 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp4.c 2010-01-25 09:50:29.245686094 +0100
31910 @@ -0,0 +1,20 @@
31911 +/* Test AAPCS layout (VFP variant) */
31912 +
31913 +/* { dg-do run { target arm*-*-eabi* } } */
31914 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31915 +/* { dg-require-effective-target arm32 } */
31916 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31917 +
31918 +#ifndef IN_FRAMEWORK
31919 +#define VFP
31920 +#define TESTFILE "vfp4.c"
31921 +
31922 +__complex__ float x = 1.0f + 2.0fi;
31923 +#include "abitest.h"
31924 +#else
31925 + ARG(float, 1.0f, S0)
31926 + ARG(__complex__ float, x, S1)
31927 + ARG(float, 2.0f, S3)
31928 + ARG(double, 5.0, D2)
31929 + LAST_ARG(int, 3, R0)
31930 +#endif
31931 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp5.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp5.c
31932 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp5.c 1970-01-01 01:00:00.000000000 +0100
31933 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp5.c 2010-01-25 09:50:29.245686094 +0100
31934 @@ -0,0 +1,30 @@
31935 +/* Test AAPCS layout (VFP variant) */
31936 +
31937 +/* { dg-do run { target arm*-*-eabi* } } */
31938 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31939 +/* { dg-require-effective-target arm32 } */
31940 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31941 +
31942 +#ifndef IN_FRAMEWORK
31943 +#define VFP
31944 +#define TESTFILE "vfp5.c"
31945 +
31946 +__complex__ float x = 1.0+2.0i;
31947 +
31948 +struct y
31949 +{
31950 + int p;
31951 + int q;
31952 + int r;
31953 + int s;
31954 +} v = { 1, 2, 3, 4 };
31955 +
31956 +#include "abitest.h"
31957 +#else
31958 + ARG(float, 1.0f, S0)
31959 + ARG(__complex__ float, x, S1)
31960 + ARG(float, 2.0f, S3)
31961 + ARG(double, 5.0, D2)
31962 + ARG(struct y, v, R0)
31963 + LAST_ARG(int, 3, STACK)
31964 +#endif
31965 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp6.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp6.c
31966 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp6.c 1970-01-01 01:00:00.000000000 +0100
31967 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp6.c 2010-01-25 09:50:29.245686094 +0100
31968 @@ -0,0 +1,30 @@
31969 +/* Test AAPCS layout (VFP variant) */
31970 +
31971 +/* { dg-do run { target arm*-*-eabi* } } */
31972 +/* { dg-require-effective-target arm_hard_vfp_ok } */
31973 +/* { dg-require-effective-target arm32 } */
31974 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
31975 +
31976 +#ifndef IN_FRAMEWORK
31977 +#define VFP
31978 +#define TESTFILE "vfp6.c"
31979 +
31980 +__complex__ float x = 1.0+2.0i;
31981 +
31982 +struct y
31983 +{
31984 + int p;
31985 + int q;
31986 + int r;
31987 + int s;
31988 +} v = { 1, 2, 3, 4 };
31989 +
31990 +#include "abitest.h"
31991 +#else
31992 + ARG(struct y, v, R0)
31993 + ARG(float, 1.0f, S0)
31994 + ARG(__complex__ float, x, S1)
31995 + ARG(float, 2.0f, S3)
31996 + ARG(double, 5.0, D2)
31997 + LAST_ARG(int, 3, STACK)
31998 +#endif
31999 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp7.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp7.c
32000 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp7.c 1970-01-01 01:00:00.000000000 +0100
32001 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp7.c 2010-01-25 09:50:29.245686094 +0100
32002 @@ -0,0 +1,37 @@
32003 +/* Test AAPCS layout (VFP variant) */
32004 +
32005 +/* { dg-do run { target arm*-*-eabi* } } */
32006 +/* { dg-require-effective-target arm_hard_vfp_ok } */
32007 +/* { dg-require-effective-target arm32 } */
32008 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
32009 +
32010 +#ifndef IN_FRAMEWORK
32011 +#define VFP
32012 +#define TESTFILE "vfp7.c"
32013 +
32014 +__complex__ x = 1.0+2.0i;
32015 +
32016 +struct y
32017 +{
32018 + int p;
32019 + int q;
32020 + int r;
32021 + int s;
32022 +} v = { 1, 2, 3, 4 };
32023 +
32024 +struct z
32025 +{
32026 + double x[4];
32027 +};
32028 +
32029 +struct z a = { 5.0, 6.0, 7.0, 8.0 };
32030 +struct z b = { 9.0, 10.0, 11.0, 12.0 };
32031 +
32032 +#include "abitest.h"
32033 +#else
32034 + ARG(struct z, a, D0)
32035 + ARG(struct z, b, D4)
32036 + ARG(double, 0.5, STACK)
32037 + ARG(int, 7, R0)
32038 + LAST_ARG(struct y, v, STACK+8)
32039 +#endif
32040 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp8.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp8.c
32041 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp8.c 1970-01-01 01:00:00.000000000 +0100
32042 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp8.c 2010-01-25 09:50:29.245686094 +0100
32043 @@ -0,0 +1,37 @@
32044 +/* Test AAPCS layout (VFP variant) */
32045 +
32046 +/* { dg-do run { target arm*-*-eabi* } } */
32047 +/* { dg-require-effective-target arm_hard_vfp_ok } */
32048 +/* { dg-require-effective-target arm32 } */
32049 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
32050 +
32051 +#ifndef IN_FRAMEWORK
32052 +#define VFP
32053 +#define TESTFILE "vfp8.c"
32054 +
32055 +__complex__ x = 1.0+2.0i;
32056 +
32057 +struct y
32058 +{
32059 + int p;
32060 + int q;
32061 + int r;
32062 + int s;
32063 +} v = { 1, 2, 3, 4 };
32064 +
32065 +struct z
32066 +{
32067 + double x[4];
32068 +};
32069 +
32070 +struct z a = { 5.0, 6.0, 7.0, 8.0 };
32071 +struct z b = { 9.0, 10.0, 11.0, 12.0 };
32072 +
32073 +#include "abitest.h"
32074 +#else
32075 + ARG(int, 7, R0)
32076 + ARG(struct y, v, R1)
32077 + ARG(struct z, a, D0)
32078 + ARG(struct z, b, D4)
32079 + LAST_ARG(double, 0.5, STACK+8)
32080 +#endif
32081 diff -Nur a/gcc/testsuite/gcc.target/arm/aapcs/vfp9.c b/gcc/testsuite/gcc.target/arm/aapcs/vfp9.c
32082 --- a/gcc/testsuite/gcc.target/arm/aapcs/vfp9.c 1970-01-01 01:00:00.000000000 +0100
32083 +++ b/gcc/testsuite/gcc.target/arm/aapcs/vfp9.c 2010-01-25 09:50:29.245686094 +0100
32084 @@ -0,0 +1,38 @@
32085 +/* Test AAPCS layout (VFP variant) */
32086 +
32087 +/* { dg-do run { target arm*-*-eabi* } } */
32088 +/* { dg-require-effective-target arm_hard_vfp_ok } */
32089 +/* { dg-require-effective-target arm32 } */
32090 +/* { dg-options "-O -mfpu=vfp -mfloat-abi=hard" } */
32091 +
32092 +#ifndef IN_FRAMEWORK
32093 +#define VFP
32094 +#define TESTFILE "vfp9.c"
32095 +
32096 +__complex__ x = 1.0+2.0i;
32097 +
32098 +struct y
32099 +{
32100 + int p;
32101 + int q;
32102 + int r;
32103 + int s;
32104 +} v = { 1, 2, 3, 4 };
32105 +
32106 +struct z
32107 +{
32108 + double x[4];
32109 +};
32110 +
32111 +struct z a = { 5.0, 6.0, 7.0, 8.0 };
32112 +struct z b = { 9.0, 10.0, 11.0, 12.0 };
32113 +
32114 +#include "abitest.h"
32115 +#else
32116 + /* A variadic function passes using the base ABI */
32117 + ARG(int, 7, R0)
32118 + DOTS
32119 + ANON(struct z, a, R2)
32120 + ANON(struct z, b, STACK+24)
32121 + LAST_ANON(double, 0.5, STACK+56)
32122 +#endif
32123 diff -Nur a/gcc/testsuite/gcc.target/arm/ctz.c b/gcc/testsuite/gcc.target/arm/ctz.c
32124 --- a/gcc/testsuite/gcc.target/arm/ctz.c 1970-01-01 01:00:00.000000000 +0100
32125 +++ b/gcc/testsuite/gcc.target/arm/ctz.c 2010-01-25 09:50:29.265686890 +0100
32126 @@ -0,0 +1,12 @@
32127 +/* { dg-do compile } */
32128 +/* { dg-require-effective-target arm32 } */
32129 +/* { dg-options "-O2 -march=armv6t2" } */
32130 +
32131 +unsigned int functest(unsigned int x)
32132 +{
32133 + return __builtin_ctz(x);
32134 +}
32135 +
32136 +/* { dg-final { scan-assembler "rbit" } } */
32137 +/* { dg-final { scan-assembler "clz" } } */
32138 +/* { dg-final { scan-assembler-not "rsb" } } */
32139 diff -Nur a/gcc/testsuite/gcc.target/arm/eabi1.c b/gcc/testsuite/gcc.target/arm/eabi1.c
32140 --- a/gcc/testsuite/gcc.target/arm/eabi1.c 2009-01-14 02:44:39.000000000 +0100
32141 +++ b/gcc/testsuite/gcc.target/arm/eabi1.c 2010-01-25 09:50:29.265686890 +0100
32142 @@ -30,43 +30,48 @@
32143 #include <stdlib.h>
32144 #include <math.h>
32145
32146 -#define decl_float(code, type) \
32147 - extern type __aeabi_ ## code ## add (type, type); \
32148 - extern type __aeabi_ ## code ## div (type, type); \
32149 - extern type __aeabi_ ## code ## mul (type, type); \
32150 - extern type __aeabi_ ## code ## neg (type); \
32151 - extern type __aeabi_ ## code ## rsub (type, type); \
32152 - extern type __aeabi_ ## code ## sub (type, type); \
32153 - extern int __aeabi_ ## code ## cmpeq (type, type); \
32154 - extern int __aeabi_ ## code ## cmplt (type, type); \
32155 - extern int __aeabi_ ## code ## cmple (type, type); \
32156 - extern int __aeabi_ ## code ## cmpge (type, type); \
32157 - extern int __aeabi_ ## code ## cmpgt (type, type); \
32158 - extern int __aeabi_ ## code ## cmpun (type, type); \
32159 - extern int __aeabi_ ## code ## 2iz (type); \
32160 - extern unsigned int __aeabi_ ## code ## 2uiz (type); \
32161 - extern long long __aeabi_ ## code ## 2lz (type); \
32162 - extern unsigned long long __aeabi_ ## code ## 2ulz (type); \
32163 - extern type __aeabi_i2 ## code (int); \
32164 - extern type __aeabi_ui2 ## code (int); \
32165 - extern type __aeabi_l2 ## code (long long); \
32166 - extern type __aeabi_ul2 ## code (unsigned long long); \
32167 - \
32168 - type code ## zero = 0.0; \
32169 - type code ## one = 1.0; \
32170 - type code ## two = 2.0; \
32171 - type code ## four = 4.0; \
32172 - type code ## minus_one = -1.0; \
32173 - type code ## minus_two = -2.0; \
32174 - type code ## minus_four = -4.0; \
32175 - type code ## epsilon = 1E-32; \
32176 - type code ## NaN = 0.0 / 0.0;
32177 +/* All these functions are defined to use the base ABI, so use the
32178 + attribute to ensure the tests use the base ABI to call them even
32179 + when the VFP ABI is otherwise in effect. */
32180 +#define PCS __attribute__((pcs("aapcs")))
32181 +
32182 +#define decl_float(code, type) \
32183 + extern type __aeabi_ ## code ## add (type, type) PCS; \
32184 + extern type __aeabi_ ## code ## div (type, type) PCS; \
32185 + extern type __aeabi_ ## code ## mul (type, type) PCS; \
32186 + extern type __aeabi_ ## code ## neg (type) PCS; \
32187 + extern type __aeabi_ ## code ## rsub (type, type) PCS; \
32188 + extern type __aeabi_ ## code ## sub (type, type) PCS; \
32189 + extern int __aeabi_ ## code ## cmpeq (type, type) PCS; \
32190 + extern int __aeabi_ ## code ## cmplt (type, type) PCS; \
32191 + extern int __aeabi_ ## code ## cmple (type, type) PCS; \
32192 + extern int __aeabi_ ## code ## cmpge (type, type) PCS; \
32193 + extern int __aeabi_ ## code ## cmpgt (type, type) PCS; \
32194 + extern int __aeabi_ ## code ## cmpun (type, type) PCS; \
32195 + extern int __aeabi_ ## code ## 2iz (type) PCS; \
32196 + extern unsigned int __aeabi_ ## code ## 2uiz (type) PCS; \
32197 + extern long long __aeabi_ ## code ## 2lz (type) PCS; \
32198 + extern unsigned long long __aeabi_ ## code ## 2ulz (type) PCS; \
32199 + extern type __aeabi_i2 ## code (int) PCS; \
32200 + extern type __aeabi_ui2 ## code (int) PCS; \
32201 + extern type __aeabi_l2 ## code (long long) PCS; \
32202 + extern type __aeabi_ul2 ## code (unsigned long long) PCS; \
32203 + \
32204 + type code ## zero = 0.0; \
32205 + type code ## one = 1.0; \
32206 + type code ## two = 2.0; \
32207 + type code ## four = 4.0; \
32208 + type code ## minus_one = -1.0; \
32209 + type code ## minus_two = -2.0; \
32210 + type code ## minus_four = -4.0; \
32211 + type code ## epsilon = 1E-32; \
32212 + type code ## NaN = 0.0 / 0.0;
32213
32214 decl_float (d, double)
32215 decl_float (f, float)
32216
32217 -extern float __aeabi_d2f (double);
32218 -extern double __aeabi_f2d (float);
32219 +extern float __aeabi_d2f (double) PCS;
32220 +extern double __aeabi_f2d (float) PCS;
32221 extern long long __aeabi_lmul (long long, long long);
32222 extern long long __aeabi_llsl (long long, int);
32223 extern long long __aeabi_llsr (long long, int);
32224 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-builtins-1.c b/gcc/testsuite/gcc.target/arm/fp16-builtins-1.c
32225 --- a/gcc/testsuite/gcc.target/arm/fp16-builtins-1.c 1970-01-01 01:00:00.000000000 +0100
32226 +++ b/gcc/testsuite/gcc.target/arm/fp16-builtins-1.c 2010-01-25 09:50:29.265686890 +0100
32227 @@ -0,0 +1,92 @@
32228 +/* Test type-generic builtins with __fp16 arguments.
32229 + Except as otherwise noted, they should behave exactly
32230 + the same as those with float arguments. */
32231 +
32232 +/* { dg-do run } */
32233 +/* { dg-options "-mfp16-format=ieee -std=gnu99" } */
32234 +
32235 +#include <stdlib.h>
32236 +#include <math.h>
32237 +
32238 +volatile __fp16 h1, h2;
32239 +volatile float f1, f2;
32240 +
32241 +void
32242 +set1 (double x)
32243 +{
32244 + h1 = x;
32245 + f1 = h1;
32246 +}
32247 +
32248 +void
32249 +set2 (double x, double y)
32250 +{
32251 + h1 = x;
32252 + f1 = h1;
32253 + h2 = y;
32254 + f2 = h2;
32255 +}
32256 +
32257 +#define test1(p,x) \
32258 + set1 (x); \
32259 + hp = (p (h1) ? 1 : 0); \
32260 + fp = (p (f1) ? 1 : 0); \
32261 + if (hp ^ fp) abort ()
32262 +
32263 +#define test2(p,x,y) \
32264 + set2 (x,y); \
32265 + hp = (p (h1, h2) ? 1 : 0); \
32266 + fp = (p (f1, f2) ? 1 : 0); \
32267 + if (hp ^ fp) abort ()
32268 +
32269 +int
32270 +main (void)
32271 +{
32272 + int hp, fp;
32273 +
32274 + test1 (__builtin_isfinite, 17.0);
32275 + test1 (__builtin_isfinite, INFINITY);
32276 + test1 (__builtin_isinf, -0.5);
32277 + test1 (__builtin_isinf, INFINITY);
32278 + test1 (__builtin_isnan, 493.0);
32279 + test1 (__builtin_isnan, NAN);
32280 + test1 (__builtin_isnormal, 3.14159);
32281 +
32282 + test2 (__builtin_isgreater, 5.0, 3.0);
32283 + test2 (__builtin_isgreater, 3.0, 5.0);
32284 + test2 (__builtin_isgreater, 73.5, 73.5);
32285 + test2 (__builtin_isgreater, 1.0, NAN);
32286 +
32287 + test2 (__builtin_isgreaterequal, 5.0, 3.0);
32288 + test2 (__builtin_isgreaterequal, 3.0, 5.0);
32289 + test2 (__builtin_isgreaterequal, 73.5, 73.5);
32290 + test2 (__builtin_isgreaterequal, 1.0, NAN);
32291 +
32292 + test2 (__builtin_isless, 5.0, 3.0);
32293 + test2 (__builtin_isless, 3.0, 5.0);
32294 + test2 (__builtin_isless, 73.5, 73.5);
32295 + test2 (__builtin_isless, 1.0, NAN);
32296 +
32297 + test2 (__builtin_islessequal, 5.0, 3.0);
32298 + test2 (__builtin_islessequal, 3.0, 5.0);
32299 + test2 (__builtin_islessequal, 73.5, 73.5);
32300 + test2 (__builtin_islessequal, 1.0, NAN);
32301 +
32302 + test2 (__builtin_islessgreater, 5.0, 3.0);
32303 + test2 (__builtin_islessgreater, 3.0, 5.0);
32304 + test2 (__builtin_islessgreater, 73.5, 73.5);
32305 + test2 (__builtin_islessgreater, 1.0, NAN);
32306 +
32307 + test2 (__builtin_isunordered, 5.0, 3.0);
32308 + test2 (__builtin_isunordered, 3.0, 5.0);
32309 + test2 (__builtin_isunordered, 73.5, 73.5);
32310 + test2 (__builtin_isunordered, 1.0, NAN);
32311 +
32312 + /* Test that __builtin_isnormal recognizes a denormalized __fp16 value,
32313 + even if it's representable as a normalized float. */
32314 + h1 = 5.96046E-8;
32315 + if (__builtin_isnormal (h1))
32316 + abort ();
32317 +
32318 + return 0;
32319 +}
32320 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-10.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-10.c
32321 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-10.c 1970-01-01 01:00:00.000000000 +0100
32322 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-10.c 2010-01-25 09:50:29.265686890 +0100
32323 @@ -0,0 +1,8 @@
32324 +/* { dg-do compile } */
32325 +/* { dg-options "-mfp16-format=alternative -pedantic -std=gnu99" } */
32326 +
32327 +#include <math.h>
32328 +
32329 +/* NaNs are not representable in the alternative format; we should get a
32330 + diagnostic. */
32331 +__fp16 xx = NAN; /* { dg-warning "overflow" } */
32332 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-11.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-11.c
32333 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-11.c 1970-01-01 01:00:00.000000000 +0100
32334 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-11.c 2010-01-25 09:50:29.265686890 +0100
32335 @@ -0,0 +1,13 @@
32336 +/* { dg-do compile } */
32337 +/* { dg-options "-mfp16-format=alternative -pedantic -std=gnu99" } */
32338 +
32339 +#include <math.h>
32340 +
32341 +/* Infinities are not representable in the alternative format;
32342 + we should get a diagnostic, and the value set to the largest
32343 + representable value. */
32344 +/* 0x7fff = 32767 */
32345 +__fp16 xx = INFINITY; /* { dg-warning "overflow" } */
32346 +
32347 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32348 +/* { dg-final { scan-assembler "\t.short\t32767" } } */
32349 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-12.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-12.c
32350 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-12.c 1970-01-01 01:00:00.000000000 +0100
32351 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-12.c 2010-01-25 09:50:29.265686890 +0100
32352 @@ -0,0 +1,8 @@
32353 +/* { dg-do compile } */
32354 +/* { dg-options "-mfp16-format=alternative" } */
32355 +
32356 +float xx __attribute__((mode(HF))) = 0.0;
32357 +
32358 +/* { dg-final { scan-assembler "\t.eabi_attribute 38, 2" } } */
32359 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32360 +/* { dg-final { scan-assembler "\t.space\t2" } } */
32361 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-1.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-1.c
32362 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-1.c 1970-01-01 01:00:00.000000000 +0100
32363 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-1.c 2010-01-25 09:50:29.265686890 +0100
32364 @@ -0,0 +1,8 @@
32365 +/* { dg-do compile } */
32366 +/* { dg-options "-mfp16-format=alternative" } */
32367 +
32368 +__fp16 xx = 0.0;
32369 +
32370 +/* { dg-final { scan-assembler "\t.eabi_attribute 38, 2" } } */
32371 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32372 +/* { dg-final { scan-assembler "\t.space\t2" } } */
32373 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-2.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-2.c
32374 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-2.c 1970-01-01 01:00:00.000000000 +0100
32375 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-2.c 2010-01-25 09:50:29.265686890 +0100
32376 @@ -0,0 +1,9 @@
32377 +/* { dg-do compile } */
32378 +/* { dg-options "-mfp16-format=alternative" } */
32379 +
32380 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32381 +/* 0x3c00 = 15360 */
32382 +__fp16 xx = 1.0;
32383 +
32384 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32385 +/* { dg-final { scan-assembler "\t.short\t15360" } } */
32386 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-3.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-3.c
32387 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-3.c 1970-01-01 01:00:00.000000000 +0100
32388 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-3.c 2010-01-25 09:50:29.265686890 +0100
32389 @@ -0,0 +1,9 @@
32390 +/* { dg-do compile } */
32391 +/* { dg-options "-mfp16-format=alternative" } */
32392 +
32393 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32394 +/* 0xc000 = 49152 */
32395 +__fp16 xx = -2.0;
32396 +
32397 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32398 +/* { dg-final { scan-assembler "\t.short\t49152" } } */
32399 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-4.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-4.c
32400 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-4.c 1970-01-01 01:00:00.000000000 +0100
32401 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-4.c 2010-01-25 09:50:29.265686890 +0100
32402 @@ -0,0 +1,9 @@
32403 +/* { dg-do compile } */
32404 +/* { dg-options "-mfp16-format=alternative" } */
32405 +
32406 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32407 +/* 0x7bff = 31743 */
32408 +__fp16 xx = 65504.0;
32409 +
32410 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32411 +/* { dg-final { scan-assembler "\t.short\t31743" } } */
32412 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-5.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-5.c
32413 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-5.c 1970-01-01 01:00:00.000000000 +0100
32414 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-5.c 2010-01-25 09:50:29.265686890 +0100
32415 @@ -0,0 +1,9 @@
32416 +/* { dg-do compile } */
32417 +/* { dg-options "-mfp16-format=alternative" } */
32418 +
32419 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32420 +/* 0x3555 = 13653 */
32421 +__fp16 xx = (1.0/3.0);
32422 +
32423 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32424 +/* { dg-final { scan-assembler "\t.short\t13653" } } */
32425 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-6.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-6.c
32426 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-6.c 1970-01-01 01:00:00.000000000 +0100
32427 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-6.c 2010-01-25 09:50:29.265686890 +0100
32428 @@ -0,0 +1,10 @@
32429 +/* { dg-do compile } */
32430 +/* { dg-options "-mfp16-format=alternative" } */
32431 +
32432 +/* This number is the maximum value representable in the alternative
32433 + encoding. */
32434 +/* 0x7fff = 32767 */
32435 +__fp16 xx = 131008.0;
32436 +
32437 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32438 +/* { dg-final { scan-assembler "\t.short\t32767" } } */
32439 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-7.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-7.c
32440 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-7.c 1970-01-01 01:00:00.000000000 +0100
32441 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-7.c 2010-01-25 09:50:29.265686890 +0100
32442 @@ -0,0 +1,11 @@
32443 +/* { dg-do compile } */
32444 +/* { dg-options "-mfp16-format=alternative -pedantic" } */
32445 +
32446 +/* This number overflows the range of the alternative encoding. Since this
32447 + encoding doesn't have infinities, we should get a pedantic warning,
32448 + and the value should be set to the largest representable value. */
32449 +/* 0x7fff = 32767 */
32450 +__fp16 xx = 123456789.0; /* { dg-warning "overflow" } */
32451 +
32452 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32453 +/* { dg-final { scan-assembler "\t.short\t32767" } } */
32454 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-8.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-8.c
32455 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-8.c 1970-01-01 01:00:00.000000000 +0100
32456 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-8.c 2010-01-25 09:50:29.265686890 +0100
32457 @@ -0,0 +1,10 @@
32458 +/* { dg-do compile } */
32459 +/* { dg-options "-mfp16-format=alternative" } */
32460 +
32461 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32462 +/* This is the minimum normalized value. */
32463 +/* 0x0400 = 1024 */
32464 +__fp16 xx = 6.10352E-5;
32465 +
32466 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32467 +/* { dg-final { scan-assembler "\t.short\t1024" } } */
32468 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-9.c b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-9.c
32469 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-alt-9.c 1970-01-01 01:00:00.000000000 +0100
32470 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-alt-9.c 2010-01-25 09:50:29.265686890 +0100
32471 @@ -0,0 +1,10 @@
32472 +/* { dg-do compile } */
32473 +/* { dg-options "-mfp16-format=alternative" } */
32474 +
32475 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32476 +/* This is the minimum denormalized value. */
32477 +/* 0x0001 = 1 */
32478 +__fp16 xx = 5.96046E-8;
32479 +
32480 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32481 +/* { dg-final { scan-assembler "\t.short\t1" } } */
32482 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-exprtype.c b/gcc/testsuite/gcc.target/arm/fp16-compile-exprtype.c
32483 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-exprtype.c 1970-01-01 01:00:00.000000000 +0100
32484 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-exprtype.c 2010-01-25 09:50:29.265686890 +0100
32485 @@ -0,0 +1,29 @@
32486 +/* Test that expressions involving __fp16 values have the right types. */
32487 +/* { dg-do compile } */
32488 +/* { dg-options "-mfp16-format=ieee" } */
32489 +
32490 +/* This produces a diagnostic if EXPR doesn't have type TYPE. */
32491 +#define CHECK(expr,type) \
32492 + do { \
32493 + type v; \
32494 + __typeof (expr) *p = &v; \
32495 + } while (0);
32496 +
32497 +volatile __fp16 f1;
32498 +volatile __fp16 f2;
32499 +
32500 +int
32501 +main (void)
32502 +{
32503 + CHECK (f1, __fp16);
32504 + CHECK (+f1, float);
32505 + CHECK (-f1, float);
32506 + CHECK (f1+f2, float);
32507 + CHECK ((__fp16)(f1+f2), __fp16);
32508 + CHECK ((__fp16)99.99, __fp16);
32509 + CHECK ((f1+f2, f1), __fp16);
32510 +}
32511 +
32512 +
32513 +
32514 +
32515 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-10.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-10.c
32516 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-10.c 1970-01-01 01:00:00.000000000 +0100
32517 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-10.c 2010-01-25 09:50:29.265686890 +0100
32518 @@ -0,0 +1,10 @@
32519 +/* { dg-do compile } */
32520 +/* { dg-options "-mfp16-format=ieee -std=gnu99" } */
32521 +
32522 +#include <math.h>
32523 +
32524 +/* 0x7e00 = 32256 */
32525 +__fp16 xx = NAN;
32526 +
32527 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32528 +/* { dg-final { scan-assembler "\t.short\t32256" } } */
32529 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-11.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-11.c
32530 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-11.c 1970-01-01 01:00:00.000000000 +0100
32531 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-11.c 2010-01-25 09:50:29.265686890 +0100
32532 @@ -0,0 +1,10 @@
32533 +/* { dg-do compile } */
32534 +/* { dg-options "-mfp16-format=ieee -std=gnu99" } */
32535 +
32536 +#include <math.h>
32537 +
32538 +/* 0x7c00 = 31744 */
32539 +__fp16 xx = INFINITY;
32540 +
32541 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32542 +/* { dg-final { scan-assembler "\t.short\t31744" } } */
32543 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-12.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-12.c
32544 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-12.c 1970-01-01 01:00:00.000000000 +0100
32545 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-12.c 2010-01-25 09:50:29.265686890 +0100
32546 @@ -0,0 +1,8 @@
32547 +/* { dg-do compile } */
32548 +/* { dg-options "-mfp16-format=ieee" } */
32549 +
32550 +float xx __attribute__((mode(HF))) = 0.0;
32551 +
32552 +/* { dg-final { scan-assembler "\t.eabi_attribute 38, 1" } } */
32553 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32554 +/* { dg-final { scan-assembler "\t.space\t2" } } */
32555 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-1.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-1.c
32556 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-1.c 1970-01-01 01:00:00.000000000 +0100
32557 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-1.c 2010-01-25 09:50:29.275686903 +0100
32558 @@ -0,0 +1,8 @@
32559 +/* { dg-do compile } */
32560 +/* { dg-options "-mfp16-format=ieee" } */
32561 +
32562 +__fp16 xx = 0.0;
32563 +
32564 +/* { dg-final { scan-assembler "\t.eabi_attribute 38, 1" } } */
32565 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32566 +/* { dg-final { scan-assembler "\t.space\t2" } } */
32567 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-2.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-2.c
32568 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-2.c 1970-01-01 01:00:00.000000000 +0100
32569 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-2.c 2010-01-25 09:50:29.275686903 +0100
32570 @@ -0,0 +1,9 @@
32571 +/* { dg-do compile } */
32572 +/* { dg-options "-mfp16-format=ieee" } */
32573 +
32574 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32575 +/* 0x3c00 = 15360 */
32576 +__fp16 xx = 1.0;
32577 +
32578 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32579 +/* { dg-final { scan-assembler "\t.short\t15360" } } */
32580 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-3.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-3.c
32581 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-3.c 1970-01-01 01:00:00.000000000 +0100
32582 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-3.c 2010-01-25 09:50:29.275686903 +0100
32583 @@ -0,0 +1,9 @@
32584 +/* { dg-do compile } */
32585 +/* { dg-options "-mfp16-format=ieee" } */
32586 +
32587 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32588 +/* 0xc000 = 49152 */
32589 +__fp16 xx = -2.0;
32590 +
32591 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32592 +/* { dg-final { scan-assembler "\t.short\t49152" } } */
32593 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-4.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-4.c
32594 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-4.c 1970-01-01 01:00:00.000000000 +0100
32595 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-4.c 2010-01-25 09:50:29.275686903 +0100
32596 @@ -0,0 +1,9 @@
32597 +/* { dg-do compile } */
32598 +/* { dg-options "-mfp16-format=ieee" } */
32599 +
32600 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32601 +/* 0x7bff = 31743 */
32602 +__fp16 xx = 65504.0;
32603 +
32604 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32605 +/* { dg-final { scan-assembler "\t.short\t31743" } } */
32606 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-5.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-5.c
32607 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-5.c 1970-01-01 01:00:00.000000000 +0100
32608 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-5.c 2010-01-25 09:50:29.275686903 +0100
32609 @@ -0,0 +1,9 @@
32610 +/* { dg-do compile } */
32611 +/* { dg-options "-mfp16-format=ieee" } */
32612 +
32613 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32614 +/* 0x3555 = 13653 */
32615 +__fp16 xx = (1.0/3.0);
32616 +
32617 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32618 +/* { dg-final { scan-assembler "\t.short\t13653" } } */
32619 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-6.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-6.c
32620 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-6.c 1970-01-01 01:00:00.000000000 +0100
32621 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-6.c 2010-01-25 09:50:29.275686903 +0100
32622 @@ -0,0 +1,10 @@
32623 +/* { dg-do compile } */
32624 +/* { dg-options "-mfp16-format=ieee" } */
32625 +
32626 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32627 +/* This number is too big and is represented as infinity. */
32628 +/* 0x7c00 = 31744 */
32629 +__fp16 xx = 131008.0;
32630 +
32631 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32632 +/* { dg-final { scan-assembler "\t.short\t31744" } } */
32633 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-7.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-7.c
32634 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-7.c 1970-01-01 01:00:00.000000000 +0100
32635 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-7.c 2010-01-25 09:50:29.275686903 +0100
32636 @@ -0,0 +1,11 @@
32637 +/* { dg-do compile } */
32638 +/* { dg-options "-mfp16-format=ieee -pedantic" } */
32639 +
32640 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32641 +/* This number is too big and is represented as infinity. */
32642 +/* We should *not* get an overflow warning here. */
32643 +/* 0x7c00 = 31744 */
32644 +__fp16 xx = 123456789.0;
32645 +
32646 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32647 +/* { dg-final { scan-assembler "\t.short\t31744" } } */
32648 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-8.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-8.c
32649 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-8.c 1970-01-01 01:00:00.000000000 +0100
32650 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-8.c 2010-01-25 09:50:29.275686903 +0100
32651 @@ -0,0 +1,10 @@
32652 +/* { dg-do compile } */
32653 +/* { dg-options "-mfp16-format=ieee" } */
32654 +
32655 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32656 +/* This is the minimum normalized value. */
32657 +/* 0x0400 = 1024 */
32658 +__fp16 xx = 6.10352E-5;
32659 +
32660 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32661 +/* { dg-final { scan-assembler "\t.short\t1024" } } */
32662 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-9.c b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-9.c
32663 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-9.c 1970-01-01 01:00:00.000000000 +0100
32664 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-ieee-9.c 2010-01-25 09:50:29.275686903 +0100
32665 @@ -0,0 +1,10 @@
32666 +/* { dg-do compile } */
32667 +/* { dg-options "-mfp16-format=ieee" } */
32668 +
32669 +/* Encoding taken from: http://en.wikipedia.org/wiki/Half_precision */
32670 +/* This is the minimum denormalized value. */
32671 +/* 0x0001 = 1 */
32672 +__fp16 xx = 5.96046E-8;
32673 +
32674 +/* { dg-final { scan-assembler "\t.size\txx, 2" } } */
32675 +/* { dg-final { scan-assembler "\t.short\t1" } } */
32676 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-none-1.c b/gcc/testsuite/gcc.target/arm/fp16-compile-none-1.c
32677 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-none-1.c 1970-01-01 01:00:00.000000000 +0100
32678 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-none-1.c 2010-01-25 09:50:29.275686903 +0100
32679 @@ -0,0 +1,6 @@
32680 +/* { dg-do compile } */
32681 +/* { dg-options "-mfp16-format=none" } */
32682 +
32683 +/* __fp16 type name is not recognized unless you explicitly enable it
32684 + by selecting -mfp16-format=ieee or -mfp16-format=alternative. */
32685 +__fp16 xx = 0.0; /* { dg-error "expected" } */
32686 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-none-2.c b/gcc/testsuite/gcc.target/arm/fp16-compile-none-2.c
32687 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-none-2.c 1970-01-01 01:00:00.000000000 +0100
32688 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-none-2.c 2010-01-25 09:50:29.275686903 +0100
32689 @@ -0,0 +1,7 @@
32690 +/* { dg-do compile } */
32691 +/* { dg-options "-mfp16-format=none" } */
32692 +
32693 +/* mode(HF) attributes are not recognized unless you explicitly enable
32694 + half-precision floating point by selecting -mfp16-format=ieee or
32695 + -mfp16-format=alternative. */
32696 +float xx __attribute__((mode(HF))) = 0.0; /* { dg-error "HF" } */
32697 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-compile-vcvt.c b/gcc/testsuite/gcc.target/arm/fp16-compile-vcvt.c
32698 --- a/gcc/testsuite/gcc.target/arm/fp16-compile-vcvt.c 1970-01-01 01:00:00.000000000 +0100
32699 +++ b/gcc/testsuite/gcc.target/arm/fp16-compile-vcvt.c 2010-01-25 09:50:29.275686903 +0100
32700 @@ -0,0 +1,20 @@
32701 +/* { dg-do compile } */
32702 +/* { dg-require-effective-target arm_neon_fp16_ok } */
32703 +/* { dg-options "-mfp16-format=ieee" } */
32704 +/* { dg-add-options arm_neon_fp16 } */
32705 +
32706 +/* Test generation of VFP __fp16 instructions. */
32707 +
32708 +__fp16 h1 = 0.0;
32709 +__fp16 h2 = 1234.0;
32710 +float f1 = 2.0;
32711 +float f2 = -999.9;
32712 +
32713 +void f (void)
32714 +{
32715 + h1 = f1;
32716 + f2 = h2;
32717 +}
32718 +
32719 +/* { dg-final { scan-assembler "\tvcvtb.f32.f16" } } */
32720 +/* { dg-final { scan-assembler "\tvcvtb.f16.f32" } } */
32721 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-param-1.c b/gcc/testsuite/gcc.target/arm/fp16-param-1.c
32722 --- a/gcc/testsuite/gcc.target/arm/fp16-param-1.c 1970-01-01 01:00:00.000000000 +0100
32723 +++ b/gcc/testsuite/gcc.target/arm/fp16-param-1.c 2010-01-25 09:50:29.275686903 +0100
32724 @@ -0,0 +1,10 @@
32725 +/* { dg-do compile } */
32726 +/* { dg-options "-mfp16-format=ieee" } */
32727 +
32728 +/* Functions cannot have parameters of type __fp16. */
32729 +extern void f (__fp16); /* { dg-error "parameters cannot have __fp16 type" } */
32730 +extern void (*pf) (__fp16); /* { dg-error "parameters cannot have __fp16 type" } */
32731 +
32732 +/* These should be OK. */
32733 +extern void g (__fp16 *);
32734 +extern void (*pg) (__fp16 *);
32735 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-return-1.c b/gcc/testsuite/gcc.target/arm/fp16-return-1.c
32736 --- a/gcc/testsuite/gcc.target/arm/fp16-return-1.c 1970-01-01 01:00:00.000000000 +0100
32737 +++ b/gcc/testsuite/gcc.target/arm/fp16-return-1.c 2010-01-25 09:50:29.275686903 +0100
32738 @@ -0,0 +1,10 @@
32739 +/* { dg-do compile } */
32740 +/* { dg-options "-mfp16-format=ieee" } */
32741 +
32742 +/* Functions cannot return type __fp16. */
32743 +extern __fp16 f (void); /* { dg-error "cannot return __fp16" } */
32744 +extern __fp16 (*pf) (void); /* { dg-error "cannot return __fp16" } */
32745 +
32746 +/* These should be OK. */
32747 +extern __fp16 *g (void);
32748 +extern __fp16 *(*pg) (void);
32749 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-rounding-alt-1.c b/gcc/testsuite/gcc.target/arm/fp16-rounding-alt-1.c
32750 --- a/gcc/testsuite/gcc.target/arm/fp16-rounding-alt-1.c 1970-01-01 01:00:00.000000000 +0100
32751 +++ b/gcc/testsuite/gcc.target/arm/fp16-rounding-alt-1.c 2010-01-25 09:50:29.275686903 +0100
32752 @@ -0,0 +1,47 @@
32753 +/* Test intermediate rounding of double to float and then to __fp16, using
32754 + an example of a number that would round differently if it went directly
32755 + from double to __fp16. */
32756 +
32757 +/* { dg-do run } */
32758 +/* { dg-options "-mfp16-format=alternative" } */
32759 +
32760 +#include <stdlib.h>
32761 +
32762 +/* The original double value. */
32763 +#define ORIG 0x1.0020008p0
32764 +
32765 +/* The expected (double)((__fp16)((float)ORIG)) value. */
32766 +#define ROUNDED 0x1.0000000p0
32767 +
32768 +typedef union u {
32769 + __fp16 f;
32770 + unsigned short h;
32771 +} ufh;
32772 +
32773 +ufh s = { ORIG };
32774 +ufh r = { ROUNDED };
32775 +
32776 +double d = ORIG;
32777 +
32778 +int
32779 +main (void)
32780 +{
32781 + ufh x;
32782 +
32783 + /* Test that the rounding is correct for static initializers. */
32784 + if (s.h != r.h)
32785 + abort ();
32786 +
32787 + /* Test that the rounding is correct for a casted constant expression
32788 + not in a static initializer. */
32789 + x.f = (__fp16)ORIG;
32790 + if (x.h != r.h)
32791 + abort ();
32792 +
32793 + /* Test that the rounding is correct for a runtime conversion. */
32794 + x.f = (__fp16)d;
32795 + if (x.h != r.h)
32796 + abort ();
32797 +
32798 + return 0;
32799 +}
32800 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-rounding-ieee-1.c b/gcc/testsuite/gcc.target/arm/fp16-rounding-ieee-1.c
32801 --- a/gcc/testsuite/gcc.target/arm/fp16-rounding-ieee-1.c 1970-01-01 01:00:00.000000000 +0100
32802 +++ b/gcc/testsuite/gcc.target/arm/fp16-rounding-ieee-1.c 2010-01-25 09:50:29.275686903 +0100
32803 @@ -0,0 +1,47 @@
32804 +/* Test intermediate rounding of double to float and then to __fp16, using
32805 + an example of a number that would round differently if it went directly
32806 + from double to __fp16. */
32807 +
32808 +/* { dg-do run } */
32809 +/* { dg-options "-mfp16-format=ieee" } */
32810 +
32811 +#include <stdlib.h>
32812 +
32813 +/* The original double value. */
32814 +#define ORIG 0x1.0020008p0
32815 +
32816 +/* The expected (double)((__fp16)((float)ORIG)) value. */
32817 +#define ROUNDED 0x1.0000000p0
32818 +
32819 +typedef union u {
32820 + __fp16 f;
32821 + unsigned short h;
32822 +} ufh;
32823 +
32824 +ufh s = { ORIG };
32825 +ufh r = { ROUNDED };
32826 +
32827 +double d = ORIG;
32828 +
32829 +int
32830 +main (void)
32831 +{
32832 + ufh x;
32833 +
32834 + /* Test that the rounding is correct for static initializers. */
32835 + if (s.h != r.h)
32836 + abort ();
32837 +
32838 + /* Test that the rounding is correct for a casted constant expression
32839 + not in a static initializer. */
32840 + x.f = (__fp16)ORIG;
32841 + if (x.h != r.h)
32842 + abort ();
32843 +
32844 + /* Test that the rounding is correct for a runtime conversion. */
32845 + x.f = (__fp16)d;
32846 + if (x.h != r.h)
32847 + abort ();
32848 +
32849 + return 0;
32850 +}
32851 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-unprototyped-1.c b/gcc/testsuite/gcc.target/arm/fp16-unprototyped-1.c
32852 --- a/gcc/testsuite/gcc.target/arm/fp16-unprototyped-1.c 1970-01-01 01:00:00.000000000 +0100
32853 +++ b/gcc/testsuite/gcc.target/arm/fp16-unprototyped-1.c 2010-01-25 09:50:29.275686903 +0100
32854 @@ -0,0 +1,21 @@
32855 +/* Test promotion of __fp16 to double as arguments to unprototyped
32856 + function in another compilation unit. */
32857 +
32858 +/* { dg-do run } */
32859 +/* { dg-options "-mfp16-format=ieee" } */
32860 +/* { dg-additional-sources "fp16-unprototyped-2.c" } */
32861 +
32862 +#include <stdlib.h>
32863 +
32864 +extern int f ();
32865 +
32866 +static __fp16 x = 42.0;
32867 +static __fp16 y = -42.0;
32868 +
32869 +int
32870 +main (void)
32871 +{
32872 + if (!f (x, y))
32873 + abort ();
32874 + return 0;
32875 +}
32876 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-unprototyped-2.c b/gcc/testsuite/gcc.target/arm/fp16-unprototyped-2.c
32877 --- a/gcc/testsuite/gcc.target/arm/fp16-unprototyped-2.c 1970-01-01 01:00:00.000000000 +0100
32878 +++ b/gcc/testsuite/gcc.target/arm/fp16-unprototyped-2.c 2010-01-25 09:50:29.275686903 +0100
32879 @@ -0,0 +1,12 @@
32880 +/* { dg-do compile } */
32881 +/* { dg-options "-mfp16-format=ieee" } */
32882 +
32883 +extern int f ();
32884 +
32885 +int
32886 +f (double xx, double yy)
32887 +{
32888 + if (xx == 42.0 && yy == -42.0)
32889 + return 1;
32890 + return 0;
32891 +}
32892 diff -Nur a/gcc/testsuite/gcc.target/arm/fp16-variadic-1.c b/gcc/testsuite/gcc.target/arm/fp16-variadic-1.c
32893 --- a/gcc/testsuite/gcc.target/arm/fp16-variadic-1.c 1970-01-01 01:00:00.000000000 +0100
32894 +++ b/gcc/testsuite/gcc.target/arm/fp16-variadic-1.c 2010-01-25 09:50:29.275686903 +0100
32895 @@ -0,0 +1,37 @@
32896 +/* Test promotion of __fp16 to double as arguments to variadic function. */
32897 +
32898 +/* { dg-do run } */
32899 +/* { dg-options "-mfp16-format=ieee" } */
32900 +
32901 +#include <stdlib.h>
32902 +#include <stdarg.h>
32903 +
32904 +extern int f (int n, ...);
32905 +
32906 +int
32907 +f (int n, ...)
32908 +{
32909 + if (n == 2)
32910 + {
32911 + double xx, yy;
32912 + va_list ap;
32913 + va_start (ap, n);
32914 + xx = va_arg (ap, double);
32915 + yy = va_arg (ap, double);
32916 + va_end (ap);
32917 + if (xx == 42.0 && yy == -42.0)
32918 + return 1;
32919 + }
32920 + return 0;
32921 +}
32922 +
32923 +static __fp16 x = 42.0;
32924 +static __fp16 y = -42.0;
32925 +
32926 +int
32927 +main (void)
32928 +{
32929 + if (!f (2, x, y))
32930 + abort ();
32931 + return 0;
32932 +}
32933 diff -Nur a/gcc/testsuite/gcc.target/arm/frame-pointer-1.c b/gcc/testsuite/gcc.target/arm/frame-pointer-1.c
32934 --- a/gcc/testsuite/gcc.target/arm/frame-pointer-1.c 1970-01-01 01:00:00.000000000 +0100
32935 +++ b/gcc/testsuite/gcc.target/arm/frame-pointer-1.c 2010-01-25 09:50:29.275686903 +0100
32936 @@ -0,0 +1,42 @@
32937 +/* Check local register variables using a register conventionally
32938 + used as the frame pointer aren't clobbered under high register pressure. */
32939 +/* { dg-do run } */
32940 +/* { dg-options "-Os -mthumb -fomit-frame-pointer" } */
32941 +
32942 +#include <stdlib.h>
32943 +
32944 +int global=5;
32945 +
32946 +void __attribute__((noinline)) foo(int p1, int p2, int p3, int p4)
32947 +{
32948 + if (global != 5 || p1 != 1 || p2 != 2 || p3 != 3 || p4 != 4)
32949 + abort();
32950 +}
32951 +
32952 +int __attribute__((noinline)) test(int a, int b, int c, int d)
32953 +{
32954 + register unsigned long r __asm__("r7") = 0xdeadbeef;
32955 + int e;
32956 +
32957 + /* ABCD are live after the call which should be enough
32958 + to cause r7 to be used if it weren't for the register variable. */
32959 + foo(a,b,c,d);
32960 +
32961 + e = 0;
32962 + __asm__ __volatile__ ("mov %0, %2"
32963 + : "=r" (e)
32964 + : "0" (e), "r" (r));
32965 +
32966 + global = a+b+c+d;
32967 +
32968 + return e;
32969 +}
32970 +
32971 +int main()
32972 +{
32973 + if (test(1, 2, 3, 4) != 0xdeadbeef)
32974 + abort();
32975 + if (global != 10)
32976 + abort();
32977 + return 0;
32978 +}
32979 diff -Nur a/gcc/testsuite/gcc.target/arm/janus-2cc-shift-1.c b/gcc/testsuite/gcc.target/arm/janus-2cc-shift-1.c
32980 --- a/gcc/testsuite/gcc.target/arm/janus-2cc-shift-1.c 1970-01-01 01:00:00.000000000 +0100
32981 +++ b/gcc/testsuite/gcc.target/arm/janus-2cc-shift-1.c 2010-01-25 09:50:29.275686903 +0100
32982 @@ -0,0 +1,17 @@
32983 +/* Check that a nop is inserted after a shift taking a register operand. */
32984 +/* { dg-do compile } */
32985 +/* { dg-options "-mfix-janus-2cc" } */
32986 +/* { dg-require-effective-target arm_not_thumb } */
32987 +int foo(int x)
32988 +{
32989 + int y;
32990 + int z;
32991 +
32992 + y = x << 4;
32993 + z = y << x;
32994 +
32995 + return y+z;
32996 +}
32997 +/* { dg-final { scan-assembler "\tmov\tr\[0-9], r\[0-9], asl r\[0-9]\n\tnop\n" } } */
32998 +/* { dg-final { scan-assembler-not "\tmov\tr\[0-9], r\[0-9], asl #4\n\tnop\n" } } */
32999 +
33000 diff -Nur a/gcc/testsuite/gcc.target/arm/janus-2cc-shift-2.c b/gcc/testsuite/gcc.target/arm/janus-2cc-shift-2.c
33001 --- a/gcc/testsuite/gcc.target/arm/janus-2cc-shift-2.c 1970-01-01 01:00:00.000000000 +0100
33002 +++ b/gcc/testsuite/gcc.target/arm/janus-2cc-shift-2.c 2010-01-25 09:50:29.275686903 +0100
33003 @@ -0,0 +1,17 @@
33004 +/* Check that a nop is inserted after a shift taking a register operand. */
33005 +/* { dg-do compile } */
33006 +/* { dg-options "-mfix-janus-2cc -mthumb" } */
33007 +/* { dg-require-effective-target arm_thumb1_ok } */
33008 +int foo(int x)
33009 +{
33010 + int y;
33011 + int z;
33012 +
33013 + y = x << 4;
33014 + z = y << x;
33015 +
33016 + return y+z;
33017 +}
33018 +/* { dg-final { scan-assembler "\tlsl\tr\[0-9], r\[0-9], r\[0-9]\n\tnop\n" } } */
33019 +/* { dg-final { scan-assembler-not "\tlsl\tr\[0-9], r\[0-9], #4\n\tnop\n" } } */
33020 +
33021 diff -Nur a/gcc/testsuite/gcc.target/arm/mmx-1.c b/gcc/testsuite/gcc.target/arm/mmx-1.c
33022 --- a/gcc/testsuite/gcc.target/arm/mmx-1.c 2008-09-13 15:26:46.000000000 +0200
33023 +++ b/gcc/testsuite/gcc.target/arm/mmx-1.c 2010-01-25 09:50:29.275686903 +0100
33024 @@ -3,10 +3,10 @@
33025 /* { dg-do compile } */
33026 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mcpu=*" } { "-mcpu=iwmmxt" } } */
33027 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mabi=*" } { "-mabi=iwmmxt" } } */
33028 -/* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mfloat-abi=softfp" } { "" } } */
33029 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-march=*" } { "-march=iwmmxt" } } */
33030 /* { dg-options "-O -mno-apcs-frame -mcpu=iwmmxt -mabi=iwmmxt" } */
33031 /* { dg-require-effective-target arm32 } */
33032 +/* { dg-require-effective-target arm_iwmmxt_ok } */
33033 /* { dg-final { scan-assembler "ldmfd\[ ]sp!.*ip,\[ ]*pc" } } */
33034
33035 /* This function uses all the call-saved registers, namely r4, r5, r6,
33036 diff -Nur a/gcc/testsuite/gcc.target/arm/naked-3.c b/gcc/testsuite/gcc.target/arm/naked-3.c
33037 --- a/gcc/testsuite/gcc.target/arm/naked-3.c 1970-01-01 01:00:00.000000000 +0100
33038 +++ b/gcc/testsuite/gcc.target/arm/naked-3.c 2010-01-25 09:50:29.275686903 +0100
33039 @@ -0,0 +1,15 @@
33040 +/* { dg-do compile } */
33041 +/* { dg-options "-O2 -Wall" } */
33042 +/* Check that we do not get warnings about missing return statements
33043 + or bogus looking noreturn functions. */
33044 +int __attribute__((naked))
33045 +foo(void)
33046 +{
33047 + __asm__ volatile ("mov r0, #1\r\nbx lr\n");
33048 +}
33049 +
33050 +int __attribute__((naked,noreturn))
33051 +bar(void)
33052 +{
33053 + __asm__ volatile ("frob r0\n");
33054 +}
33055 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/polytypes.c b/gcc/testsuite/gcc.target/arm/neon/polytypes.c
33056 --- a/gcc/testsuite/gcc.target/arm/neon/polytypes.c 2008-07-02 21:35:08.000000000 +0200
33057 +++ b/gcc/testsuite/gcc.target/arm/neon/polytypes.c 2010-01-25 09:50:29.275686903 +0100
33058 @@ -3,7 +3,7 @@
33059
33060 /* { dg-do compile } */
33061 /* { dg-require-effective-target arm_neon_ok } */
33062 -/* { dg-options "-mfpu=neon -mfloat-abi=softfp" } */
33063 +/* { dg-add-options arm_neon } */
33064
33065 #include <arm_neon.h>
33066
33067 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabals16.c b/gcc/testsuite/gcc.target/arm/neon/vabals16.c
33068 --- a/gcc/testsuite/gcc.target/arm/neon/vabals16.c 2007-07-25 14:28:31.000000000 +0200
33069 +++ b/gcc/testsuite/gcc.target/arm/neon/vabals16.c 2010-01-25 09:50:29.275686903 +0100
33070 @@ -3,7 +3,8 @@
33071
33072 /* { dg-do assemble } */
33073 /* { dg-require-effective-target arm_neon_ok } */
33074 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33075 +/* { dg-options "-save-temps -O0" } */
33076 +/* { dg-add-options arm_neon } */
33077
33078 #include "arm_neon.h"
33079
33080 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabals32.c b/gcc/testsuite/gcc.target/arm/neon/vabals32.c
33081 --- a/gcc/testsuite/gcc.target/arm/neon/vabals32.c 2007-07-25 14:28:31.000000000 +0200
33082 +++ b/gcc/testsuite/gcc.target/arm/neon/vabals32.c 2010-01-25 09:50:29.275686903 +0100
33083 @@ -3,7 +3,8 @@
33084
33085 /* { dg-do assemble } */
33086 /* { dg-require-effective-target arm_neon_ok } */
33087 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33088 +/* { dg-options "-save-temps -O0" } */
33089 +/* { dg-add-options arm_neon } */
33090
33091 #include "arm_neon.h"
33092
33093 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabals8.c b/gcc/testsuite/gcc.target/arm/neon/vabals8.c
33094 --- a/gcc/testsuite/gcc.target/arm/neon/vabals8.c 2007-07-25 14:28:31.000000000 +0200
33095 +++ b/gcc/testsuite/gcc.target/arm/neon/vabals8.c 2010-01-25 09:50:29.275686903 +0100
33096 @@ -3,7 +3,8 @@
33097
33098 /* { dg-do assemble } */
33099 /* { dg-require-effective-target arm_neon_ok } */
33100 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33101 +/* { dg-options "-save-temps -O0" } */
33102 +/* { dg-add-options arm_neon } */
33103
33104 #include "arm_neon.h"
33105
33106 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabalu16.c b/gcc/testsuite/gcc.target/arm/neon/vabalu16.c
33107 --- a/gcc/testsuite/gcc.target/arm/neon/vabalu16.c 2007-07-25 14:28:31.000000000 +0200
33108 +++ b/gcc/testsuite/gcc.target/arm/neon/vabalu16.c 2010-01-25 09:50:29.275686903 +0100
33109 @@ -3,7 +3,8 @@
33110
33111 /* { dg-do assemble } */
33112 /* { dg-require-effective-target arm_neon_ok } */
33113 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33114 +/* { dg-options "-save-temps -O0" } */
33115 +/* { dg-add-options arm_neon } */
33116
33117 #include "arm_neon.h"
33118
33119 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabalu32.c b/gcc/testsuite/gcc.target/arm/neon/vabalu32.c
33120 --- a/gcc/testsuite/gcc.target/arm/neon/vabalu32.c 2007-07-25 14:28:31.000000000 +0200
33121 +++ b/gcc/testsuite/gcc.target/arm/neon/vabalu32.c 2010-01-25 09:50:29.275686903 +0100
33122 @@ -3,7 +3,8 @@
33123
33124 /* { dg-do assemble } */
33125 /* { dg-require-effective-target arm_neon_ok } */
33126 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33127 +/* { dg-options "-save-temps -O0" } */
33128 +/* { dg-add-options arm_neon } */
33129
33130 #include "arm_neon.h"
33131
33132 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabalu8.c b/gcc/testsuite/gcc.target/arm/neon/vabalu8.c
33133 --- a/gcc/testsuite/gcc.target/arm/neon/vabalu8.c 2007-07-25 14:28:31.000000000 +0200
33134 +++ b/gcc/testsuite/gcc.target/arm/neon/vabalu8.c 2010-01-25 09:50:29.275686903 +0100
33135 @@ -3,7 +3,8 @@
33136
33137 /* { dg-do assemble } */
33138 /* { dg-require-effective-target arm_neon_ok } */
33139 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33140 +/* { dg-options "-save-temps -O0" } */
33141 +/* { dg-add-options arm_neon } */
33142
33143 #include "arm_neon.h"
33144
33145 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabaQs16.c b/gcc/testsuite/gcc.target/arm/neon/vabaQs16.c
33146 --- a/gcc/testsuite/gcc.target/arm/neon/vabaQs16.c 2007-07-25 14:28:31.000000000 +0200
33147 +++ b/gcc/testsuite/gcc.target/arm/neon/vabaQs16.c 2010-01-25 09:50:29.275686903 +0100
33148 @@ -3,7 +3,8 @@
33149
33150 /* { dg-do assemble } */
33151 /* { dg-require-effective-target arm_neon_ok } */
33152 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33153 +/* { dg-options "-save-temps -O0" } */
33154 +/* { dg-add-options arm_neon } */
33155
33156 #include "arm_neon.h"
33157
33158 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabaQs32.c b/gcc/testsuite/gcc.target/arm/neon/vabaQs32.c
33159 --- a/gcc/testsuite/gcc.target/arm/neon/vabaQs32.c 2007-07-25 14:28:31.000000000 +0200
33160 +++ b/gcc/testsuite/gcc.target/arm/neon/vabaQs32.c 2010-01-25 09:50:29.275686903 +0100
33161 @@ -3,7 +3,8 @@
33162
33163 /* { dg-do assemble } */
33164 /* { dg-require-effective-target arm_neon_ok } */
33165 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33166 +/* { dg-options "-save-temps -O0" } */
33167 +/* { dg-add-options arm_neon } */
33168
33169 #include "arm_neon.h"
33170
33171 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabaQs8.c b/gcc/testsuite/gcc.target/arm/neon/vabaQs8.c
33172 --- a/gcc/testsuite/gcc.target/arm/neon/vabaQs8.c 2007-07-25 14:28:31.000000000 +0200
33173 +++ b/gcc/testsuite/gcc.target/arm/neon/vabaQs8.c 2010-01-25 09:50:29.275686903 +0100
33174 @@ -3,7 +3,8 @@
33175
33176 /* { dg-do assemble } */
33177 /* { dg-require-effective-target arm_neon_ok } */
33178 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33179 +/* { dg-options "-save-temps -O0" } */
33180 +/* { dg-add-options arm_neon } */
33181
33182 #include "arm_neon.h"
33183
33184 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabaQu16.c b/gcc/testsuite/gcc.target/arm/neon/vabaQu16.c
33185 --- a/gcc/testsuite/gcc.target/arm/neon/vabaQu16.c 2007-07-25 14:28:31.000000000 +0200
33186 +++ b/gcc/testsuite/gcc.target/arm/neon/vabaQu16.c 2010-01-25 09:50:29.275686903 +0100
33187 @@ -3,7 +3,8 @@
33188
33189 /* { dg-do assemble } */
33190 /* { dg-require-effective-target arm_neon_ok } */
33191 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33192 +/* { dg-options "-save-temps -O0" } */
33193 +/* { dg-add-options arm_neon } */
33194
33195 #include "arm_neon.h"
33196
33197 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabaQu32.c b/gcc/testsuite/gcc.target/arm/neon/vabaQu32.c
33198 --- a/gcc/testsuite/gcc.target/arm/neon/vabaQu32.c 2007-07-25 14:28:31.000000000 +0200
33199 +++ b/gcc/testsuite/gcc.target/arm/neon/vabaQu32.c 2010-01-25 09:50:29.275686903 +0100
33200 @@ -3,7 +3,8 @@
33201
33202 /* { dg-do assemble } */
33203 /* { dg-require-effective-target arm_neon_ok } */
33204 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33205 +/* { dg-options "-save-temps -O0" } */
33206 +/* { dg-add-options arm_neon } */
33207
33208 #include "arm_neon.h"
33209
33210 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabaQu8.c b/gcc/testsuite/gcc.target/arm/neon/vabaQu8.c
33211 --- a/gcc/testsuite/gcc.target/arm/neon/vabaQu8.c 2007-07-25 14:28:31.000000000 +0200
33212 +++ b/gcc/testsuite/gcc.target/arm/neon/vabaQu8.c 2010-01-25 09:50:29.275686903 +0100
33213 @@ -3,7 +3,8 @@
33214
33215 /* { dg-do assemble } */
33216 /* { dg-require-effective-target arm_neon_ok } */
33217 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33218 +/* { dg-options "-save-temps -O0" } */
33219 +/* { dg-add-options arm_neon } */
33220
33221 #include "arm_neon.h"
33222
33223 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabas16.c b/gcc/testsuite/gcc.target/arm/neon/vabas16.c
33224 --- a/gcc/testsuite/gcc.target/arm/neon/vabas16.c 2007-07-25 14:28:31.000000000 +0200
33225 +++ b/gcc/testsuite/gcc.target/arm/neon/vabas16.c 2010-01-25 09:50:29.275686903 +0100
33226 @@ -3,7 +3,8 @@
33227
33228 /* { dg-do assemble } */
33229 /* { dg-require-effective-target arm_neon_ok } */
33230 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33231 +/* { dg-options "-save-temps -O0" } */
33232 +/* { dg-add-options arm_neon } */
33233
33234 #include "arm_neon.h"
33235
33236 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabas32.c b/gcc/testsuite/gcc.target/arm/neon/vabas32.c
33237 --- a/gcc/testsuite/gcc.target/arm/neon/vabas32.c 2007-07-25 14:28:31.000000000 +0200
33238 +++ b/gcc/testsuite/gcc.target/arm/neon/vabas32.c 2010-01-25 09:50:29.275686903 +0100
33239 @@ -3,7 +3,8 @@
33240
33241 /* { dg-do assemble } */
33242 /* { dg-require-effective-target arm_neon_ok } */
33243 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33244 +/* { dg-options "-save-temps -O0" } */
33245 +/* { dg-add-options arm_neon } */
33246
33247 #include "arm_neon.h"
33248
33249 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabas8.c b/gcc/testsuite/gcc.target/arm/neon/vabas8.c
33250 --- a/gcc/testsuite/gcc.target/arm/neon/vabas8.c 2007-07-25 14:28:31.000000000 +0200
33251 +++ b/gcc/testsuite/gcc.target/arm/neon/vabas8.c 2010-01-25 09:50:29.275686903 +0100
33252 @@ -3,7 +3,8 @@
33253
33254 /* { dg-do assemble } */
33255 /* { dg-require-effective-target arm_neon_ok } */
33256 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33257 +/* { dg-options "-save-temps -O0" } */
33258 +/* { dg-add-options arm_neon } */
33259
33260 #include "arm_neon.h"
33261
33262 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabau16.c b/gcc/testsuite/gcc.target/arm/neon/vabau16.c
33263 --- a/gcc/testsuite/gcc.target/arm/neon/vabau16.c 2007-07-25 14:28:31.000000000 +0200
33264 +++ b/gcc/testsuite/gcc.target/arm/neon/vabau16.c 2010-01-25 09:50:29.275686903 +0100
33265 @@ -3,7 +3,8 @@
33266
33267 /* { dg-do assemble } */
33268 /* { dg-require-effective-target arm_neon_ok } */
33269 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33270 +/* { dg-options "-save-temps -O0" } */
33271 +/* { dg-add-options arm_neon } */
33272
33273 #include "arm_neon.h"
33274
33275 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabau32.c b/gcc/testsuite/gcc.target/arm/neon/vabau32.c
33276 --- a/gcc/testsuite/gcc.target/arm/neon/vabau32.c 2007-07-25 14:28:31.000000000 +0200
33277 +++ b/gcc/testsuite/gcc.target/arm/neon/vabau32.c 2010-01-25 09:50:29.275686903 +0100
33278 @@ -3,7 +3,8 @@
33279
33280 /* { dg-do assemble } */
33281 /* { dg-require-effective-target arm_neon_ok } */
33282 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33283 +/* { dg-options "-save-temps -O0" } */
33284 +/* { dg-add-options arm_neon } */
33285
33286 #include "arm_neon.h"
33287
33288 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabau8.c b/gcc/testsuite/gcc.target/arm/neon/vabau8.c
33289 --- a/gcc/testsuite/gcc.target/arm/neon/vabau8.c 2007-07-25 14:28:31.000000000 +0200
33290 +++ b/gcc/testsuite/gcc.target/arm/neon/vabau8.c 2010-01-25 09:50:29.275686903 +0100
33291 @@ -3,7 +3,8 @@
33292
33293 /* { dg-do assemble } */
33294 /* { dg-require-effective-target arm_neon_ok } */
33295 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33296 +/* { dg-options "-save-temps -O0" } */
33297 +/* { dg-add-options arm_neon } */
33298
33299 #include "arm_neon.h"
33300
33301 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdf32.c b/gcc/testsuite/gcc.target/arm/neon/vabdf32.c
33302 --- a/gcc/testsuite/gcc.target/arm/neon/vabdf32.c 2007-07-25 14:28:31.000000000 +0200
33303 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdf32.c 2010-01-25 09:50:29.275686903 +0100
33304 @@ -3,7 +3,8 @@
33305
33306 /* { dg-do assemble } */
33307 /* { dg-require-effective-target arm_neon_ok } */
33308 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33309 +/* { dg-options "-save-temps -O0" } */
33310 +/* { dg-add-options arm_neon } */
33311
33312 #include "arm_neon.h"
33313
33314 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdls16.c b/gcc/testsuite/gcc.target/arm/neon/vabdls16.c
33315 --- a/gcc/testsuite/gcc.target/arm/neon/vabdls16.c 2007-07-25 14:28:31.000000000 +0200
33316 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdls16.c 2010-01-25 09:50:29.275686903 +0100
33317 @@ -3,7 +3,8 @@
33318
33319 /* { dg-do assemble } */
33320 /* { dg-require-effective-target arm_neon_ok } */
33321 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33322 +/* { dg-options "-save-temps -O0" } */
33323 +/* { dg-add-options arm_neon } */
33324
33325 #include "arm_neon.h"
33326
33327 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdls32.c b/gcc/testsuite/gcc.target/arm/neon/vabdls32.c
33328 --- a/gcc/testsuite/gcc.target/arm/neon/vabdls32.c 2007-07-25 14:28:31.000000000 +0200
33329 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdls32.c 2010-01-25 09:50:29.275686903 +0100
33330 @@ -3,7 +3,8 @@
33331
33332 /* { dg-do assemble } */
33333 /* { dg-require-effective-target arm_neon_ok } */
33334 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33335 +/* { dg-options "-save-temps -O0" } */
33336 +/* { dg-add-options arm_neon } */
33337
33338 #include "arm_neon.h"
33339
33340 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdls8.c b/gcc/testsuite/gcc.target/arm/neon/vabdls8.c
33341 --- a/gcc/testsuite/gcc.target/arm/neon/vabdls8.c 2007-07-25 14:28:31.000000000 +0200
33342 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdls8.c 2010-01-25 09:50:29.275686903 +0100
33343 @@ -3,7 +3,8 @@
33344
33345 /* { dg-do assemble } */
33346 /* { dg-require-effective-target arm_neon_ok } */
33347 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33348 +/* { dg-options "-save-temps -O0" } */
33349 +/* { dg-add-options arm_neon } */
33350
33351 #include "arm_neon.h"
33352
33353 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdlu16.c b/gcc/testsuite/gcc.target/arm/neon/vabdlu16.c
33354 --- a/gcc/testsuite/gcc.target/arm/neon/vabdlu16.c 2007-07-25 14:28:31.000000000 +0200
33355 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdlu16.c 2010-01-25 09:50:29.275686903 +0100
33356 @@ -3,7 +3,8 @@
33357
33358 /* { dg-do assemble } */
33359 /* { dg-require-effective-target arm_neon_ok } */
33360 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33361 +/* { dg-options "-save-temps -O0" } */
33362 +/* { dg-add-options arm_neon } */
33363
33364 #include "arm_neon.h"
33365
33366 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdlu32.c b/gcc/testsuite/gcc.target/arm/neon/vabdlu32.c
33367 --- a/gcc/testsuite/gcc.target/arm/neon/vabdlu32.c 2007-07-25 14:28:31.000000000 +0200
33368 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdlu32.c 2010-01-25 09:50:29.275686903 +0100
33369 @@ -3,7 +3,8 @@
33370
33371 /* { dg-do assemble } */
33372 /* { dg-require-effective-target arm_neon_ok } */
33373 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33374 +/* { dg-options "-save-temps -O0" } */
33375 +/* { dg-add-options arm_neon } */
33376
33377 #include "arm_neon.h"
33378
33379 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdlu8.c b/gcc/testsuite/gcc.target/arm/neon/vabdlu8.c
33380 --- a/gcc/testsuite/gcc.target/arm/neon/vabdlu8.c 2007-07-25 14:28:31.000000000 +0200
33381 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdlu8.c 2010-01-25 09:50:29.275686903 +0100
33382 @@ -3,7 +3,8 @@
33383
33384 /* { dg-do assemble } */
33385 /* { dg-require-effective-target arm_neon_ok } */
33386 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33387 +/* { dg-options "-save-temps -O0" } */
33388 +/* { dg-add-options arm_neon } */
33389
33390 #include "arm_neon.h"
33391
33392 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdQf32.c b/gcc/testsuite/gcc.target/arm/neon/vabdQf32.c
33393 --- a/gcc/testsuite/gcc.target/arm/neon/vabdQf32.c 2007-07-25 14:28:31.000000000 +0200
33394 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdQf32.c 2010-01-25 09:50:29.275686903 +0100
33395 @@ -3,7 +3,8 @@
33396
33397 /* { dg-do assemble } */
33398 /* { dg-require-effective-target arm_neon_ok } */
33399 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33400 +/* { dg-options "-save-temps -O0" } */
33401 +/* { dg-add-options arm_neon } */
33402
33403 #include "arm_neon.h"
33404
33405 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdQs16.c b/gcc/testsuite/gcc.target/arm/neon/vabdQs16.c
33406 --- a/gcc/testsuite/gcc.target/arm/neon/vabdQs16.c 2007-07-25 14:28:31.000000000 +0200
33407 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdQs16.c 2010-01-25 09:50:29.275686903 +0100
33408 @@ -3,7 +3,8 @@
33409
33410 /* { dg-do assemble } */
33411 /* { dg-require-effective-target arm_neon_ok } */
33412 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33413 +/* { dg-options "-save-temps -O0" } */
33414 +/* { dg-add-options arm_neon } */
33415
33416 #include "arm_neon.h"
33417
33418 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdQs32.c b/gcc/testsuite/gcc.target/arm/neon/vabdQs32.c
33419 --- a/gcc/testsuite/gcc.target/arm/neon/vabdQs32.c 2007-07-25 14:28:31.000000000 +0200
33420 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdQs32.c 2010-01-25 09:50:29.275686903 +0100
33421 @@ -3,7 +3,8 @@
33422
33423 /* { dg-do assemble } */
33424 /* { dg-require-effective-target arm_neon_ok } */
33425 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33426 +/* { dg-options "-save-temps -O0" } */
33427 +/* { dg-add-options arm_neon } */
33428
33429 #include "arm_neon.h"
33430
33431 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdQs8.c b/gcc/testsuite/gcc.target/arm/neon/vabdQs8.c
33432 --- a/gcc/testsuite/gcc.target/arm/neon/vabdQs8.c 2007-07-25 14:28:31.000000000 +0200
33433 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdQs8.c 2010-01-25 09:50:29.275686903 +0100
33434 @@ -3,7 +3,8 @@
33435
33436 /* { dg-do assemble } */
33437 /* { dg-require-effective-target arm_neon_ok } */
33438 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33439 +/* { dg-options "-save-temps -O0" } */
33440 +/* { dg-add-options arm_neon } */
33441
33442 #include "arm_neon.h"
33443
33444 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdQu16.c b/gcc/testsuite/gcc.target/arm/neon/vabdQu16.c
33445 --- a/gcc/testsuite/gcc.target/arm/neon/vabdQu16.c 2007-07-25 14:28:31.000000000 +0200
33446 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdQu16.c 2010-01-25 09:50:29.275686903 +0100
33447 @@ -3,7 +3,8 @@
33448
33449 /* { dg-do assemble } */
33450 /* { dg-require-effective-target arm_neon_ok } */
33451 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33452 +/* { dg-options "-save-temps -O0" } */
33453 +/* { dg-add-options arm_neon } */
33454
33455 #include "arm_neon.h"
33456
33457 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdQu32.c b/gcc/testsuite/gcc.target/arm/neon/vabdQu32.c
33458 --- a/gcc/testsuite/gcc.target/arm/neon/vabdQu32.c 2007-07-25 14:28:31.000000000 +0200
33459 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdQu32.c 2010-01-25 09:50:29.275686903 +0100
33460 @@ -3,7 +3,8 @@
33461
33462 /* { dg-do assemble } */
33463 /* { dg-require-effective-target arm_neon_ok } */
33464 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33465 +/* { dg-options "-save-temps -O0" } */
33466 +/* { dg-add-options arm_neon } */
33467
33468 #include "arm_neon.h"
33469
33470 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdQu8.c b/gcc/testsuite/gcc.target/arm/neon/vabdQu8.c
33471 --- a/gcc/testsuite/gcc.target/arm/neon/vabdQu8.c 2007-07-25 14:28:31.000000000 +0200
33472 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdQu8.c 2010-01-25 09:50:29.275686903 +0100
33473 @@ -3,7 +3,8 @@
33474
33475 /* { dg-do assemble } */
33476 /* { dg-require-effective-target arm_neon_ok } */
33477 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33478 +/* { dg-options "-save-temps -O0" } */
33479 +/* { dg-add-options arm_neon } */
33480
33481 #include "arm_neon.h"
33482
33483 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabds16.c b/gcc/testsuite/gcc.target/arm/neon/vabds16.c
33484 --- a/gcc/testsuite/gcc.target/arm/neon/vabds16.c 2007-07-25 14:28:31.000000000 +0200
33485 +++ b/gcc/testsuite/gcc.target/arm/neon/vabds16.c 2010-01-25 09:50:29.275686903 +0100
33486 @@ -3,7 +3,8 @@
33487
33488 /* { dg-do assemble } */
33489 /* { dg-require-effective-target arm_neon_ok } */
33490 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33491 +/* { dg-options "-save-temps -O0" } */
33492 +/* { dg-add-options arm_neon } */
33493
33494 #include "arm_neon.h"
33495
33496 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabds32.c b/gcc/testsuite/gcc.target/arm/neon/vabds32.c
33497 --- a/gcc/testsuite/gcc.target/arm/neon/vabds32.c 2007-07-25 14:28:31.000000000 +0200
33498 +++ b/gcc/testsuite/gcc.target/arm/neon/vabds32.c 2010-01-25 09:50:29.275686903 +0100
33499 @@ -3,7 +3,8 @@
33500
33501 /* { dg-do assemble } */
33502 /* { dg-require-effective-target arm_neon_ok } */
33503 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33504 +/* { dg-options "-save-temps -O0" } */
33505 +/* { dg-add-options arm_neon } */
33506
33507 #include "arm_neon.h"
33508
33509 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabds8.c b/gcc/testsuite/gcc.target/arm/neon/vabds8.c
33510 --- a/gcc/testsuite/gcc.target/arm/neon/vabds8.c 2007-07-25 14:28:31.000000000 +0200
33511 +++ b/gcc/testsuite/gcc.target/arm/neon/vabds8.c 2010-01-25 09:50:29.275686903 +0100
33512 @@ -3,7 +3,8 @@
33513
33514 /* { dg-do assemble } */
33515 /* { dg-require-effective-target arm_neon_ok } */
33516 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33517 +/* { dg-options "-save-temps -O0" } */
33518 +/* { dg-add-options arm_neon } */
33519
33520 #include "arm_neon.h"
33521
33522 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdu16.c b/gcc/testsuite/gcc.target/arm/neon/vabdu16.c
33523 --- a/gcc/testsuite/gcc.target/arm/neon/vabdu16.c 2007-07-25 14:28:31.000000000 +0200
33524 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdu16.c 2010-01-25 09:50:29.275686903 +0100
33525 @@ -3,7 +3,8 @@
33526
33527 /* { dg-do assemble } */
33528 /* { dg-require-effective-target arm_neon_ok } */
33529 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33530 +/* { dg-options "-save-temps -O0" } */
33531 +/* { dg-add-options arm_neon } */
33532
33533 #include "arm_neon.h"
33534
33535 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdu32.c b/gcc/testsuite/gcc.target/arm/neon/vabdu32.c
33536 --- a/gcc/testsuite/gcc.target/arm/neon/vabdu32.c 2007-07-25 14:28:31.000000000 +0200
33537 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdu32.c 2010-01-25 09:50:29.275686903 +0100
33538 @@ -3,7 +3,8 @@
33539
33540 /* { dg-do assemble } */
33541 /* { dg-require-effective-target arm_neon_ok } */
33542 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33543 +/* { dg-options "-save-temps -O0" } */
33544 +/* { dg-add-options arm_neon } */
33545
33546 #include "arm_neon.h"
33547
33548 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabdu8.c b/gcc/testsuite/gcc.target/arm/neon/vabdu8.c
33549 --- a/gcc/testsuite/gcc.target/arm/neon/vabdu8.c 2007-07-25 14:28:31.000000000 +0200
33550 +++ b/gcc/testsuite/gcc.target/arm/neon/vabdu8.c 2010-01-25 09:50:29.275686903 +0100
33551 @@ -3,7 +3,8 @@
33552
33553 /* { dg-do assemble } */
33554 /* { dg-require-effective-target arm_neon_ok } */
33555 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33556 +/* { dg-options "-save-temps -O0" } */
33557 +/* { dg-add-options arm_neon } */
33558
33559 #include "arm_neon.h"
33560
33561 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabsf32.c b/gcc/testsuite/gcc.target/arm/neon/vabsf32.c
33562 --- a/gcc/testsuite/gcc.target/arm/neon/vabsf32.c 2007-07-25 14:28:31.000000000 +0200
33563 +++ b/gcc/testsuite/gcc.target/arm/neon/vabsf32.c 2010-01-25 09:50:29.275686903 +0100
33564 @@ -3,7 +3,8 @@
33565
33566 /* { dg-do assemble } */
33567 /* { dg-require-effective-target arm_neon_ok } */
33568 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33569 +/* { dg-options "-save-temps -O0" } */
33570 +/* { dg-add-options arm_neon } */
33571
33572 #include "arm_neon.h"
33573
33574 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabsQf32.c b/gcc/testsuite/gcc.target/arm/neon/vabsQf32.c
33575 --- a/gcc/testsuite/gcc.target/arm/neon/vabsQf32.c 2007-07-25 14:28:31.000000000 +0200
33576 +++ b/gcc/testsuite/gcc.target/arm/neon/vabsQf32.c 2010-01-25 09:50:29.275686903 +0100
33577 @@ -3,7 +3,8 @@
33578
33579 /* { dg-do assemble } */
33580 /* { dg-require-effective-target arm_neon_ok } */
33581 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33582 +/* { dg-options "-save-temps -O0" } */
33583 +/* { dg-add-options arm_neon } */
33584
33585 #include "arm_neon.h"
33586
33587 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabsQs16.c b/gcc/testsuite/gcc.target/arm/neon/vabsQs16.c
33588 --- a/gcc/testsuite/gcc.target/arm/neon/vabsQs16.c 2007-07-25 14:28:31.000000000 +0200
33589 +++ b/gcc/testsuite/gcc.target/arm/neon/vabsQs16.c 2010-01-25 09:50:29.275686903 +0100
33590 @@ -3,7 +3,8 @@
33591
33592 /* { dg-do assemble } */
33593 /* { dg-require-effective-target arm_neon_ok } */
33594 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33595 +/* { dg-options "-save-temps -O0" } */
33596 +/* { dg-add-options arm_neon } */
33597
33598 #include "arm_neon.h"
33599
33600 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabsQs32.c b/gcc/testsuite/gcc.target/arm/neon/vabsQs32.c
33601 --- a/gcc/testsuite/gcc.target/arm/neon/vabsQs32.c 2007-07-25 14:28:31.000000000 +0200
33602 +++ b/gcc/testsuite/gcc.target/arm/neon/vabsQs32.c 2010-01-25 09:50:29.275686903 +0100
33603 @@ -3,7 +3,8 @@
33604
33605 /* { dg-do assemble } */
33606 /* { dg-require-effective-target arm_neon_ok } */
33607 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33608 +/* { dg-options "-save-temps -O0" } */
33609 +/* { dg-add-options arm_neon } */
33610
33611 #include "arm_neon.h"
33612
33613 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabsQs8.c b/gcc/testsuite/gcc.target/arm/neon/vabsQs8.c
33614 --- a/gcc/testsuite/gcc.target/arm/neon/vabsQs8.c 2007-07-25 14:28:31.000000000 +0200
33615 +++ b/gcc/testsuite/gcc.target/arm/neon/vabsQs8.c 2010-01-25 09:50:29.275686903 +0100
33616 @@ -3,7 +3,8 @@
33617
33618 /* { dg-do assemble } */
33619 /* { dg-require-effective-target arm_neon_ok } */
33620 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33621 +/* { dg-options "-save-temps -O0" } */
33622 +/* { dg-add-options arm_neon } */
33623
33624 #include "arm_neon.h"
33625
33626 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabss16.c b/gcc/testsuite/gcc.target/arm/neon/vabss16.c
33627 --- a/gcc/testsuite/gcc.target/arm/neon/vabss16.c 2007-07-25 14:28:31.000000000 +0200
33628 +++ b/gcc/testsuite/gcc.target/arm/neon/vabss16.c 2010-01-25 09:50:29.275686903 +0100
33629 @@ -3,7 +3,8 @@
33630
33631 /* { dg-do assemble } */
33632 /* { dg-require-effective-target arm_neon_ok } */
33633 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33634 +/* { dg-options "-save-temps -O0" } */
33635 +/* { dg-add-options arm_neon } */
33636
33637 #include "arm_neon.h"
33638
33639 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabss32.c b/gcc/testsuite/gcc.target/arm/neon/vabss32.c
33640 --- a/gcc/testsuite/gcc.target/arm/neon/vabss32.c 2007-07-25 14:28:31.000000000 +0200
33641 +++ b/gcc/testsuite/gcc.target/arm/neon/vabss32.c 2010-01-25 09:50:29.275686903 +0100
33642 @@ -3,7 +3,8 @@
33643
33644 /* { dg-do assemble } */
33645 /* { dg-require-effective-target arm_neon_ok } */
33646 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33647 +/* { dg-options "-save-temps -O0" } */
33648 +/* { dg-add-options arm_neon } */
33649
33650 #include "arm_neon.h"
33651
33652 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vabss8.c b/gcc/testsuite/gcc.target/arm/neon/vabss8.c
33653 --- a/gcc/testsuite/gcc.target/arm/neon/vabss8.c 2007-07-25 14:28:31.000000000 +0200
33654 +++ b/gcc/testsuite/gcc.target/arm/neon/vabss8.c 2010-01-25 09:50:29.275686903 +0100
33655 @@ -3,7 +3,8 @@
33656
33657 /* { dg-do assemble } */
33658 /* { dg-require-effective-target arm_neon_ok } */
33659 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33660 +/* { dg-options "-save-temps -O0" } */
33661 +/* { dg-add-options arm_neon } */
33662
33663 #include "arm_neon.h"
33664
33665 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddf32.c b/gcc/testsuite/gcc.target/arm/neon/vaddf32.c
33666 --- a/gcc/testsuite/gcc.target/arm/neon/vaddf32.c 2007-07-25 14:28:31.000000000 +0200
33667 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddf32.c 2010-01-25 09:50:29.275686903 +0100
33668 @@ -3,7 +3,8 @@
33669
33670 /* { dg-do assemble } */
33671 /* { dg-require-effective-target arm_neon_ok } */
33672 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33673 +/* { dg-options "-save-temps -O0" } */
33674 +/* { dg-add-options arm_neon } */
33675
33676 #include "arm_neon.h"
33677
33678 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddhns16.c b/gcc/testsuite/gcc.target/arm/neon/vaddhns16.c
33679 --- a/gcc/testsuite/gcc.target/arm/neon/vaddhns16.c 2007-07-25 14:28:31.000000000 +0200
33680 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddhns16.c 2010-01-25 09:50:29.275686903 +0100
33681 @@ -3,7 +3,8 @@
33682
33683 /* { dg-do assemble } */
33684 /* { dg-require-effective-target arm_neon_ok } */
33685 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33686 +/* { dg-options "-save-temps -O0" } */
33687 +/* { dg-add-options arm_neon } */
33688
33689 #include "arm_neon.h"
33690
33691 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddhns32.c b/gcc/testsuite/gcc.target/arm/neon/vaddhns32.c
33692 --- a/gcc/testsuite/gcc.target/arm/neon/vaddhns32.c 2007-07-25 14:28:31.000000000 +0200
33693 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddhns32.c 2010-01-25 09:50:29.275686903 +0100
33694 @@ -3,7 +3,8 @@
33695
33696 /* { dg-do assemble } */
33697 /* { dg-require-effective-target arm_neon_ok } */
33698 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33699 +/* { dg-options "-save-temps -O0" } */
33700 +/* { dg-add-options arm_neon } */
33701
33702 #include "arm_neon.h"
33703
33704 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddhns64.c b/gcc/testsuite/gcc.target/arm/neon/vaddhns64.c
33705 --- a/gcc/testsuite/gcc.target/arm/neon/vaddhns64.c 2007-07-25 14:28:31.000000000 +0200
33706 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddhns64.c 2010-01-25 09:50:29.275686903 +0100
33707 @@ -3,7 +3,8 @@
33708
33709 /* { dg-do assemble } */
33710 /* { dg-require-effective-target arm_neon_ok } */
33711 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33712 +/* { dg-options "-save-temps -O0" } */
33713 +/* { dg-add-options arm_neon } */
33714
33715 #include "arm_neon.h"
33716
33717 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddhnu16.c b/gcc/testsuite/gcc.target/arm/neon/vaddhnu16.c
33718 --- a/gcc/testsuite/gcc.target/arm/neon/vaddhnu16.c 2007-07-25 14:28:31.000000000 +0200
33719 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddhnu16.c 2010-01-25 09:50:29.275686903 +0100
33720 @@ -3,7 +3,8 @@
33721
33722 /* { dg-do assemble } */
33723 /* { dg-require-effective-target arm_neon_ok } */
33724 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33725 +/* { dg-options "-save-temps -O0" } */
33726 +/* { dg-add-options arm_neon } */
33727
33728 #include "arm_neon.h"
33729
33730 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddhnu32.c b/gcc/testsuite/gcc.target/arm/neon/vaddhnu32.c
33731 --- a/gcc/testsuite/gcc.target/arm/neon/vaddhnu32.c 2007-07-25 14:28:31.000000000 +0200
33732 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddhnu32.c 2010-01-25 09:50:29.285687196 +0100
33733 @@ -3,7 +3,8 @@
33734
33735 /* { dg-do assemble } */
33736 /* { dg-require-effective-target arm_neon_ok } */
33737 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33738 +/* { dg-options "-save-temps -O0" } */
33739 +/* { dg-add-options arm_neon } */
33740
33741 #include "arm_neon.h"
33742
33743 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddhnu64.c b/gcc/testsuite/gcc.target/arm/neon/vaddhnu64.c
33744 --- a/gcc/testsuite/gcc.target/arm/neon/vaddhnu64.c 2007-07-25 14:28:31.000000000 +0200
33745 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddhnu64.c 2010-01-25 09:50:29.285687196 +0100
33746 @@ -3,7 +3,8 @@
33747
33748 /* { dg-do assemble } */
33749 /* { dg-require-effective-target arm_neon_ok } */
33750 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33751 +/* { dg-options "-save-temps -O0" } */
33752 +/* { dg-add-options arm_neon } */
33753
33754 #include "arm_neon.h"
33755
33756 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddls16.c b/gcc/testsuite/gcc.target/arm/neon/vaddls16.c
33757 --- a/gcc/testsuite/gcc.target/arm/neon/vaddls16.c 2007-07-25 14:28:31.000000000 +0200
33758 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddls16.c 2010-01-25 09:50:29.285687196 +0100
33759 @@ -3,7 +3,8 @@
33760
33761 /* { dg-do assemble } */
33762 /* { dg-require-effective-target arm_neon_ok } */
33763 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33764 +/* { dg-options "-save-temps -O0" } */
33765 +/* { dg-add-options arm_neon } */
33766
33767 #include "arm_neon.h"
33768
33769 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddls32.c b/gcc/testsuite/gcc.target/arm/neon/vaddls32.c
33770 --- a/gcc/testsuite/gcc.target/arm/neon/vaddls32.c 2007-07-25 14:28:31.000000000 +0200
33771 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddls32.c 2010-01-25 09:50:29.285687196 +0100
33772 @@ -3,7 +3,8 @@
33773
33774 /* { dg-do assemble } */
33775 /* { dg-require-effective-target arm_neon_ok } */
33776 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33777 +/* { dg-options "-save-temps -O0" } */
33778 +/* { dg-add-options arm_neon } */
33779
33780 #include "arm_neon.h"
33781
33782 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddls8.c b/gcc/testsuite/gcc.target/arm/neon/vaddls8.c
33783 --- a/gcc/testsuite/gcc.target/arm/neon/vaddls8.c 2007-07-25 14:28:31.000000000 +0200
33784 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddls8.c 2010-01-25 09:50:29.285687196 +0100
33785 @@ -3,7 +3,8 @@
33786
33787 /* { dg-do assemble } */
33788 /* { dg-require-effective-target arm_neon_ok } */
33789 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33790 +/* { dg-options "-save-temps -O0" } */
33791 +/* { dg-add-options arm_neon } */
33792
33793 #include "arm_neon.h"
33794
33795 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddlu16.c b/gcc/testsuite/gcc.target/arm/neon/vaddlu16.c
33796 --- a/gcc/testsuite/gcc.target/arm/neon/vaddlu16.c 2007-07-25 14:28:31.000000000 +0200
33797 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddlu16.c 2010-01-25 09:50:29.285687196 +0100
33798 @@ -3,7 +3,8 @@
33799
33800 /* { dg-do assemble } */
33801 /* { dg-require-effective-target arm_neon_ok } */
33802 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33803 +/* { dg-options "-save-temps -O0" } */
33804 +/* { dg-add-options arm_neon } */
33805
33806 #include "arm_neon.h"
33807
33808 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddlu32.c b/gcc/testsuite/gcc.target/arm/neon/vaddlu32.c
33809 --- a/gcc/testsuite/gcc.target/arm/neon/vaddlu32.c 2007-07-25 14:28:31.000000000 +0200
33810 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddlu32.c 2010-01-25 09:50:29.285687196 +0100
33811 @@ -3,7 +3,8 @@
33812
33813 /* { dg-do assemble } */
33814 /* { dg-require-effective-target arm_neon_ok } */
33815 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33816 +/* { dg-options "-save-temps -O0" } */
33817 +/* { dg-add-options arm_neon } */
33818
33819 #include "arm_neon.h"
33820
33821 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddlu8.c b/gcc/testsuite/gcc.target/arm/neon/vaddlu8.c
33822 --- a/gcc/testsuite/gcc.target/arm/neon/vaddlu8.c 2007-07-25 14:28:31.000000000 +0200
33823 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddlu8.c 2010-01-25 09:50:29.285687196 +0100
33824 @@ -3,7 +3,8 @@
33825
33826 /* { dg-do assemble } */
33827 /* { dg-require-effective-target arm_neon_ok } */
33828 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33829 +/* { dg-options "-save-temps -O0" } */
33830 +/* { dg-add-options arm_neon } */
33831
33832 #include "arm_neon.h"
33833
33834 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQf32.c b/gcc/testsuite/gcc.target/arm/neon/vaddQf32.c
33835 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQf32.c 2007-07-25 14:28:31.000000000 +0200
33836 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQf32.c 2010-01-25 09:50:29.285687196 +0100
33837 @@ -3,7 +3,8 @@
33838
33839 /* { dg-do assemble } */
33840 /* { dg-require-effective-target arm_neon_ok } */
33841 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33842 +/* { dg-options "-save-temps -O0" } */
33843 +/* { dg-add-options arm_neon } */
33844
33845 #include "arm_neon.h"
33846
33847 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQs16.c b/gcc/testsuite/gcc.target/arm/neon/vaddQs16.c
33848 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQs16.c 2007-07-25 14:28:31.000000000 +0200
33849 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQs16.c 2010-01-25 09:50:29.285687196 +0100
33850 @@ -3,7 +3,8 @@
33851
33852 /* { dg-do assemble } */
33853 /* { dg-require-effective-target arm_neon_ok } */
33854 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33855 +/* { dg-options "-save-temps -O0" } */
33856 +/* { dg-add-options arm_neon } */
33857
33858 #include "arm_neon.h"
33859
33860 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQs32.c b/gcc/testsuite/gcc.target/arm/neon/vaddQs32.c
33861 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQs32.c 2007-07-25 14:28:31.000000000 +0200
33862 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQs32.c 2010-01-25 09:50:29.285687196 +0100
33863 @@ -3,7 +3,8 @@
33864
33865 /* { dg-do assemble } */
33866 /* { dg-require-effective-target arm_neon_ok } */
33867 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33868 +/* { dg-options "-save-temps -O0" } */
33869 +/* { dg-add-options arm_neon } */
33870
33871 #include "arm_neon.h"
33872
33873 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQs64.c b/gcc/testsuite/gcc.target/arm/neon/vaddQs64.c
33874 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQs64.c 2007-07-25 14:28:31.000000000 +0200
33875 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQs64.c 2010-01-25 09:50:29.285687196 +0100
33876 @@ -3,7 +3,8 @@
33877
33878 /* { dg-do assemble } */
33879 /* { dg-require-effective-target arm_neon_ok } */
33880 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33881 +/* { dg-options "-save-temps -O0" } */
33882 +/* { dg-add-options arm_neon } */
33883
33884 #include "arm_neon.h"
33885
33886 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQs8.c b/gcc/testsuite/gcc.target/arm/neon/vaddQs8.c
33887 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQs8.c 2007-07-25 14:28:31.000000000 +0200
33888 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQs8.c 2010-01-25 09:50:29.285687196 +0100
33889 @@ -3,7 +3,8 @@
33890
33891 /* { dg-do assemble } */
33892 /* { dg-require-effective-target arm_neon_ok } */
33893 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33894 +/* { dg-options "-save-temps -O0" } */
33895 +/* { dg-add-options arm_neon } */
33896
33897 #include "arm_neon.h"
33898
33899 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQu16.c b/gcc/testsuite/gcc.target/arm/neon/vaddQu16.c
33900 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQu16.c 2007-07-25 14:28:31.000000000 +0200
33901 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQu16.c 2010-01-25 09:50:29.285687196 +0100
33902 @@ -3,7 +3,8 @@
33903
33904 /* { dg-do assemble } */
33905 /* { dg-require-effective-target arm_neon_ok } */
33906 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33907 +/* { dg-options "-save-temps -O0" } */
33908 +/* { dg-add-options arm_neon } */
33909
33910 #include "arm_neon.h"
33911
33912 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQu32.c b/gcc/testsuite/gcc.target/arm/neon/vaddQu32.c
33913 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQu32.c 2007-07-25 14:28:31.000000000 +0200
33914 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQu32.c 2010-01-25 09:50:29.285687196 +0100
33915 @@ -3,7 +3,8 @@
33916
33917 /* { dg-do assemble } */
33918 /* { dg-require-effective-target arm_neon_ok } */
33919 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33920 +/* { dg-options "-save-temps -O0" } */
33921 +/* { dg-add-options arm_neon } */
33922
33923 #include "arm_neon.h"
33924
33925 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQu64.c b/gcc/testsuite/gcc.target/arm/neon/vaddQu64.c
33926 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQu64.c 2007-07-25 14:28:31.000000000 +0200
33927 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQu64.c 2010-01-25 09:50:29.285687196 +0100
33928 @@ -3,7 +3,8 @@
33929
33930 /* { dg-do assemble } */
33931 /* { dg-require-effective-target arm_neon_ok } */
33932 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33933 +/* { dg-options "-save-temps -O0" } */
33934 +/* { dg-add-options arm_neon } */
33935
33936 #include "arm_neon.h"
33937
33938 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddQu8.c b/gcc/testsuite/gcc.target/arm/neon/vaddQu8.c
33939 --- a/gcc/testsuite/gcc.target/arm/neon/vaddQu8.c 2007-07-25 14:28:31.000000000 +0200
33940 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddQu8.c 2010-01-25 09:50:29.285687196 +0100
33941 @@ -3,7 +3,8 @@
33942
33943 /* { dg-do assemble } */
33944 /* { dg-require-effective-target arm_neon_ok } */
33945 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33946 +/* { dg-options "-save-temps -O0" } */
33947 +/* { dg-add-options arm_neon } */
33948
33949 #include "arm_neon.h"
33950
33951 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vadds16.c b/gcc/testsuite/gcc.target/arm/neon/vadds16.c
33952 --- a/gcc/testsuite/gcc.target/arm/neon/vadds16.c 2007-07-25 14:28:31.000000000 +0200
33953 +++ b/gcc/testsuite/gcc.target/arm/neon/vadds16.c 2010-01-25 09:50:29.285687196 +0100
33954 @@ -3,7 +3,8 @@
33955
33956 /* { dg-do assemble } */
33957 /* { dg-require-effective-target arm_neon_ok } */
33958 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33959 +/* { dg-options "-save-temps -O0" } */
33960 +/* { dg-add-options arm_neon } */
33961
33962 #include "arm_neon.h"
33963
33964 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vadds32.c b/gcc/testsuite/gcc.target/arm/neon/vadds32.c
33965 --- a/gcc/testsuite/gcc.target/arm/neon/vadds32.c 2007-07-25 14:28:31.000000000 +0200
33966 +++ b/gcc/testsuite/gcc.target/arm/neon/vadds32.c 2010-01-25 09:50:29.285687196 +0100
33967 @@ -3,7 +3,8 @@
33968
33969 /* { dg-do assemble } */
33970 /* { dg-require-effective-target arm_neon_ok } */
33971 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33972 +/* { dg-options "-save-temps -O0" } */
33973 +/* { dg-add-options arm_neon } */
33974
33975 #include "arm_neon.h"
33976
33977 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vadds64.c b/gcc/testsuite/gcc.target/arm/neon/vadds64.c
33978 --- a/gcc/testsuite/gcc.target/arm/neon/vadds64.c 2007-07-25 14:28:31.000000000 +0200
33979 +++ b/gcc/testsuite/gcc.target/arm/neon/vadds64.c 2010-01-25 09:50:29.285687196 +0100
33980 @@ -3,7 +3,8 @@
33981
33982 /* { dg-do assemble } */
33983 /* { dg-require-effective-target arm_neon_ok } */
33984 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33985 +/* { dg-options "-save-temps -O0" } */
33986 +/* { dg-add-options arm_neon } */
33987
33988 #include "arm_neon.h"
33989
33990 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vadds8.c b/gcc/testsuite/gcc.target/arm/neon/vadds8.c
33991 --- a/gcc/testsuite/gcc.target/arm/neon/vadds8.c 2007-07-25 14:28:31.000000000 +0200
33992 +++ b/gcc/testsuite/gcc.target/arm/neon/vadds8.c 2010-01-25 09:50:29.285687196 +0100
33993 @@ -3,7 +3,8 @@
33994
33995 /* { dg-do assemble } */
33996 /* { dg-require-effective-target arm_neon_ok } */
33997 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
33998 +/* { dg-options "-save-temps -O0" } */
33999 +/* { dg-add-options arm_neon } */
34000
34001 #include "arm_neon.h"
34002
34003 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddu16.c b/gcc/testsuite/gcc.target/arm/neon/vaddu16.c
34004 --- a/gcc/testsuite/gcc.target/arm/neon/vaddu16.c 2007-07-25 14:28:31.000000000 +0200
34005 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddu16.c 2010-01-25 09:50:29.285687196 +0100
34006 @@ -3,7 +3,8 @@
34007
34008 /* { dg-do assemble } */
34009 /* { dg-require-effective-target arm_neon_ok } */
34010 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34011 +/* { dg-options "-save-temps -O0" } */
34012 +/* { dg-add-options arm_neon } */
34013
34014 #include "arm_neon.h"
34015
34016 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddu32.c b/gcc/testsuite/gcc.target/arm/neon/vaddu32.c
34017 --- a/gcc/testsuite/gcc.target/arm/neon/vaddu32.c 2007-07-25 14:28:31.000000000 +0200
34018 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddu32.c 2010-01-25 09:50:29.285687196 +0100
34019 @@ -3,7 +3,8 @@
34020
34021 /* { dg-do assemble } */
34022 /* { dg-require-effective-target arm_neon_ok } */
34023 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34024 +/* { dg-options "-save-temps -O0" } */
34025 +/* { dg-add-options arm_neon } */
34026
34027 #include "arm_neon.h"
34028
34029 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddu64.c b/gcc/testsuite/gcc.target/arm/neon/vaddu64.c
34030 --- a/gcc/testsuite/gcc.target/arm/neon/vaddu64.c 2007-07-25 14:28:31.000000000 +0200
34031 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddu64.c 2010-01-25 09:50:29.285687196 +0100
34032 @@ -3,7 +3,8 @@
34033
34034 /* { dg-do assemble } */
34035 /* { dg-require-effective-target arm_neon_ok } */
34036 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34037 +/* { dg-options "-save-temps -O0" } */
34038 +/* { dg-add-options arm_neon } */
34039
34040 #include "arm_neon.h"
34041
34042 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddu8.c b/gcc/testsuite/gcc.target/arm/neon/vaddu8.c
34043 --- a/gcc/testsuite/gcc.target/arm/neon/vaddu8.c 2007-07-25 14:28:31.000000000 +0200
34044 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddu8.c 2010-01-25 09:50:29.285687196 +0100
34045 @@ -3,7 +3,8 @@
34046
34047 /* { dg-do assemble } */
34048 /* { dg-require-effective-target arm_neon_ok } */
34049 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34050 +/* { dg-options "-save-temps -O0" } */
34051 +/* { dg-add-options arm_neon } */
34052
34053 #include "arm_neon.h"
34054
34055 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddws16.c b/gcc/testsuite/gcc.target/arm/neon/vaddws16.c
34056 --- a/gcc/testsuite/gcc.target/arm/neon/vaddws16.c 2007-07-25 14:28:31.000000000 +0200
34057 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddws16.c 2010-01-25 09:50:29.285687196 +0100
34058 @@ -3,7 +3,8 @@
34059
34060 /* { dg-do assemble } */
34061 /* { dg-require-effective-target arm_neon_ok } */
34062 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34063 +/* { dg-options "-save-temps -O0" } */
34064 +/* { dg-add-options arm_neon } */
34065
34066 #include "arm_neon.h"
34067
34068 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddws32.c b/gcc/testsuite/gcc.target/arm/neon/vaddws32.c
34069 --- a/gcc/testsuite/gcc.target/arm/neon/vaddws32.c 2007-07-25 14:28:31.000000000 +0200
34070 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddws32.c 2010-01-25 09:50:29.285687196 +0100
34071 @@ -3,7 +3,8 @@
34072
34073 /* { dg-do assemble } */
34074 /* { dg-require-effective-target arm_neon_ok } */
34075 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34076 +/* { dg-options "-save-temps -O0" } */
34077 +/* { dg-add-options arm_neon } */
34078
34079 #include "arm_neon.h"
34080
34081 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddws8.c b/gcc/testsuite/gcc.target/arm/neon/vaddws8.c
34082 --- a/gcc/testsuite/gcc.target/arm/neon/vaddws8.c 2007-07-25 14:28:31.000000000 +0200
34083 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddws8.c 2010-01-25 09:50:29.285687196 +0100
34084 @@ -3,7 +3,8 @@
34085
34086 /* { dg-do assemble } */
34087 /* { dg-require-effective-target arm_neon_ok } */
34088 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34089 +/* { dg-options "-save-temps -O0" } */
34090 +/* { dg-add-options arm_neon } */
34091
34092 #include "arm_neon.h"
34093
34094 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddwu16.c b/gcc/testsuite/gcc.target/arm/neon/vaddwu16.c
34095 --- a/gcc/testsuite/gcc.target/arm/neon/vaddwu16.c 2007-07-25 14:28:31.000000000 +0200
34096 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddwu16.c 2010-01-25 09:50:29.285687196 +0100
34097 @@ -3,7 +3,8 @@
34098
34099 /* { dg-do assemble } */
34100 /* { dg-require-effective-target arm_neon_ok } */
34101 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34102 +/* { dg-options "-save-temps -O0" } */
34103 +/* { dg-add-options arm_neon } */
34104
34105 #include "arm_neon.h"
34106
34107 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddwu32.c b/gcc/testsuite/gcc.target/arm/neon/vaddwu32.c
34108 --- a/gcc/testsuite/gcc.target/arm/neon/vaddwu32.c 2007-07-25 14:28:31.000000000 +0200
34109 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddwu32.c 2010-01-25 09:50:29.285687196 +0100
34110 @@ -3,7 +3,8 @@
34111
34112 /* { dg-do assemble } */
34113 /* { dg-require-effective-target arm_neon_ok } */
34114 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34115 +/* { dg-options "-save-temps -O0" } */
34116 +/* { dg-add-options arm_neon } */
34117
34118 #include "arm_neon.h"
34119
34120 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vaddwu8.c b/gcc/testsuite/gcc.target/arm/neon/vaddwu8.c
34121 --- a/gcc/testsuite/gcc.target/arm/neon/vaddwu8.c 2007-07-25 14:28:31.000000000 +0200
34122 +++ b/gcc/testsuite/gcc.target/arm/neon/vaddwu8.c 2010-01-25 09:50:29.285687196 +0100
34123 @@ -3,7 +3,8 @@
34124
34125 /* { dg-do assemble } */
34126 /* { dg-require-effective-target arm_neon_ok } */
34127 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34128 +/* { dg-options "-save-temps -O0" } */
34129 +/* { dg-add-options arm_neon } */
34130
34131 #include "arm_neon.h"
34132
34133 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandQs16.c b/gcc/testsuite/gcc.target/arm/neon/vandQs16.c
34134 --- a/gcc/testsuite/gcc.target/arm/neon/vandQs16.c 2007-07-25 14:28:31.000000000 +0200
34135 +++ b/gcc/testsuite/gcc.target/arm/neon/vandQs16.c 2010-01-25 09:50:29.285687196 +0100
34136 @@ -3,7 +3,8 @@
34137
34138 /* { dg-do assemble } */
34139 /* { dg-require-effective-target arm_neon_ok } */
34140 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34141 +/* { dg-options "-save-temps -O0" } */
34142 +/* { dg-add-options arm_neon } */
34143
34144 #include "arm_neon.h"
34145
34146 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandQs32.c b/gcc/testsuite/gcc.target/arm/neon/vandQs32.c
34147 --- a/gcc/testsuite/gcc.target/arm/neon/vandQs32.c 2007-07-25 14:28:31.000000000 +0200
34148 +++ b/gcc/testsuite/gcc.target/arm/neon/vandQs32.c 2010-01-25 09:50:29.285687196 +0100
34149 @@ -3,7 +3,8 @@
34150
34151 /* { dg-do assemble } */
34152 /* { dg-require-effective-target arm_neon_ok } */
34153 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34154 +/* { dg-options "-save-temps -O0" } */
34155 +/* { dg-add-options arm_neon } */
34156
34157 #include "arm_neon.h"
34158
34159 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandQs64.c b/gcc/testsuite/gcc.target/arm/neon/vandQs64.c
34160 --- a/gcc/testsuite/gcc.target/arm/neon/vandQs64.c 2007-07-25 14:28:31.000000000 +0200
34161 +++ b/gcc/testsuite/gcc.target/arm/neon/vandQs64.c 2010-01-25 09:50:29.285687196 +0100
34162 @@ -3,7 +3,8 @@
34163
34164 /* { dg-do assemble } */
34165 /* { dg-require-effective-target arm_neon_ok } */
34166 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34167 +/* { dg-options "-save-temps -O0" } */
34168 +/* { dg-add-options arm_neon } */
34169
34170 #include "arm_neon.h"
34171
34172 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandQs8.c b/gcc/testsuite/gcc.target/arm/neon/vandQs8.c
34173 --- a/gcc/testsuite/gcc.target/arm/neon/vandQs8.c 2007-07-25 14:28:31.000000000 +0200
34174 +++ b/gcc/testsuite/gcc.target/arm/neon/vandQs8.c 2010-01-25 09:50:29.285687196 +0100
34175 @@ -3,7 +3,8 @@
34176
34177 /* { dg-do assemble } */
34178 /* { dg-require-effective-target arm_neon_ok } */
34179 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34180 +/* { dg-options "-save-temps -O0" } */
34181 +/* { dg-add-options arm_neon } */
34182
34183 #include "arm_neon.h"
34184
34185 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandQu16.c b/gcc/testsuite/gcc.target/arm/neon/vandQu16.c
34186 --- a/gcc/testsuite/gcc.target/arm/neon/vandQu16.c 2007-07-25 14:28:31.000000000 +0200
34187 +++ b/gcc/testsuite/gcc.target/arm/neon/vandQu16.c 2010-01-25 09:50:29.285687196 +0100
34188 @@ -3,7 +3,8 @@
34189
34190 /* { dg-do assemble } */
34191 /* { dg-require-effective-target arm_neon_ok } */
34192 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34193 +/* { dg-options "-save-temps -O0" } */
34194 +/* { dg-add-options arm_neon } */
34195
34196 #include "arm_neon.h"
34197
34198 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandQu32.c b/gcc/testsuite/gcc.target/arm/neon/vandQu32.c
34199 --- a/gcc/testsuite/gcc.target/arm/neon/vandQu32.c 2007-07-25 14:28:31.000000000 +0200
34200 +++ b/gcc/testsuite/gcc.target/arm/neon/vandQu32.c 2010-01-25 09:50:29.285687196 +0100
34201 @@ -3,7 +3,8 @@
34202
34203 /* { dg-do assemble } */
34204 /* { dg-require-effective-target arm_neon_ok } */
34205 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34206 +/* { dg-options "-save-temps -O0" } */
34207 +/* { dg-add-options arm_neon } */
34208
34209 #include "arm_neon.h"
34210
34211 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandQu64.c b/gcc/testsuite/gcc.target/arm/neon/vandQu64.c
34212 --- a/gcc/testsuite/gcc.target/arm/neon/vandQu64.c 2007-07-25 14:28:31.000000000 +0200
34213 +++ b/gcc/testsuite/gcc.target/arm/neon/vandQu64.c 2010-01-25 09:50:29.285687196 +0100
34214 @@ -3,7 +3,8 @@
34215
34216 /* { dg-do assemble } */
34217 /* { dg-require-effective-target arm_neon_ok } */
34218 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34219 +/* { dg-options "-save-temps -O0" } */
34220 +/* { dg-add-options arm_neon } */
34221
34222 #include "arm_neon.h"
34223
34224 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandQu8.c b/gcc/testsuite/gcc.target/arm/neon/vandQu8.c
34225 --- a/gcc/testsuite/gcc.target/arm/neon/vandQu8.c 2007-07-25 14:28:31.000000000 +0200
34226 +++ b/gcc/testsuite/gcc.target/arm/neon/vandQu8.c 2010-01-25 09:50:29.285687196 +0100
34227 @@ -3,7 +3,8 @@
34228
34229 /* { dg-do assemble } */
34230 /* { dg-require-effective-target arm_neon_ok } */
34231 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34232 +/* { dg-options "-save-temps -O0" } */
34233 +/* { dg-add-options arm_neon } */
34234
34235 #include "arm_neon.h"
34236
34237 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vands16.c b/gcc/testsuite/gcc.target/arm/neon/vands16.c
34238 --- a/gcc/testsuite/gcc.target/arm/neon/vands16.c 2007-07-25 14:28:31.000000000 +0200
34239 +++ b/gcc/testsuite/gcc.target/arm/neon/vands16.c 2010-01-25 09:50:29.285687196 +0100
34240 @@ -3,7 +3,8 @@
34241
34242 /* { dg-do assemble } */
34243 /* { dg-require-effective-target arm_neon_ok } */
34244 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34245 +/* { dg-options "-save-temps -O0" } */
34246 +/* { dg-add-options arm_neon } */
34247
34248 #include "arm_neon.h"
34249
34250 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vands32.c b/gcc/testsuite/gcc.target/arm/neon/vands32.c
34251 --- a/gcc/testsuite/gcc.target/arm/neon/vands32.c 2007-07-25 14:28:31.000000000 +0200
34252 +++ b/gcc/testsuite/gcc.target/arm/neon/vands32.c 2010-01-25 09:50:29.285687196 +0100
34253 @@ -3,7 +3,8 @@
34254
34255 /* { dg-do assemble } */
34256 /* { dg-require-effective-target arm_neon_ok } */
34257 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34258 +/* { dg-options "-save-temps -O0" } */
34259 +/* { dg-add-options arm_neon } */
34260
34261 #include "arm_neon.h"
34262
34263 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vands64.c b/gcc/testsuite/gcc.target/arm/neon/vands64.c
34264 --- a/gcc/testsuite/gcc.target/arm/neon/vands64.c 2007-07-25 14:28:31.000000000 +0200
34265 +++ b/gcc/testsuite/gcc.target/arm/neon/vands64.c 2010-01-25 09:50:29.285687196 +0100
34266 @@ -3,7 +3,8 @@
34267
34268 /* { dg-do assemble } */
34269 /* { dg-require-effective-target arm_neon_ok } */
34270 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34271 +/* { dg-options "-save-temps -O0" } */
34272 +/* { dg-add-options arm_neon } */
34273
34274 #include "arm_neon.h"
34275
34276 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vands8.c b/gcc/testsuite/gcc.target/arm/neon/vands8.c
34277 --- a/gcc/testsuite/gcc.target/arm/neon/vands8.c 2007-07-25 14:28:31.000000000 +0200
34278 +++ b/gcc/testsuite/gcc.target/arm/neon/vands8.c 2010-01-25 09:50:29.285687196 +0100
34279 @@ -3,7 +3,8 @@
34280
34281 /* { dg-do assemble } */
34282 /* { dg-require-effective-target arm_neon_ok } */
34283 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34284 +/* { dg-options "-save-temps -O0" } */
34285 +/* { dg-add-options arm_neon } */
34286
34287 #include "arm_neon.h"
34288
34289 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandu16.c b/gcc/testsuite/gcc.target/arm/neon/vandu16.c
34290 --- a/gcc/testsuite/gcc.target/arm/neon/vandu16.c 2007-07-25 14:28:31.000000000 +0200
34291 +++ b/gcc/testsuite/gcc.target/arm/neon/vandu16.c 2010-01-25 09:50:29.285687196 +0100
34292 @@ -3,7 +3,8 @@
34293
34294 /* { dg-do assemble } */
34295 /* { dg-require-effective-target arm_neon_ok } */
34296 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34297 +/* { dg-options "-save-temps -O0" } */
34298 +/* { dg-add-options arm_neon } */
34299
34300 #include "arm_neon.h"
34301
34302 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandu32.c b/gcc/testsuite/gcc.target/arm/neon/vandu32.c
34303 --- a/gcc/testsuite/gcc.target/arm/neon/vandu32.c 2007-07-25 14:28:31.000000000 +0200
34304 +++ b/gcc/testsuite/gcc.target/arm/neon/vandu32.c 2010-01-25 09:50:29.285687196 +0100
34305 @@ -3,7 +3,8 @@
34306
34307 /* { dg-do assemble } */
34308 /* { dg-require-effective-target arm_neon_ok } */
34309 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34310 +/* { dg-options "-save-temps -O0" } */
34311 +/* { dg-add-options arm_neon } */
34312
34313 #include "arm_neon.h"
34314
34315 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandu64.c b/gcc/testsuite/gcc.target/arm/neon/vandu64.c
34316 --- a/gcc/testsuite/gcc.target/arm/neon/vandu64.c 2007-07-25 14:28:31.000000000 +0200
34317 +++ b/gcc/testsuite/gcc.target/arm/neon/vandu64.c 2010-01-25 09:50:29.285687196 +0100
34318 @@ -3,7 +3,8 @@
34319
34320 /* { dg-do assemble } */
34321 /* { dg-require-effective-target arm_neon_ok } */
34322 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34323 +/* { dg-options "-save-temps -O0" } */
34324 +/* { dg-add-options arm_neon } */
34325
34326 #include "arm_neon.h"
34327
34328 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vandu8.c b/gcc/testsuite/gcc.target/arm/neon/vandu8.c
34329 --- a/gcc/testsuite/gcc.target/arm/neon/vandu8.c 2007-07-25 14:28:31.000000000 +0200
34330 +++ b/gcc/testsuite/gcc.target/arm/neon/vandu8.c 2010-01-25 09:50:29.285687196 +0100
34331 @@ -3,7 +3,8 @@
34332
34333 /* { dg-do assemble } */
34334 /* { dg-require-effective-target arm_neon_ok } */
34335 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34336 +/* { dg-options "-save-temps -O0" } */
34337 +/* { dg-add-options arm_neon } */
34338
34339 #include "arm_neon.h"
34340
34341 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicQs16.c b/gcc/testsuite/gcc.target/arm/neon/vbicQs16.c
34342 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQs16.c 2007-07-25 14:28:31.000000000 +0200
34343 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQs16.c 2010-01-25 09:50:29.285687196 +0100
34344 @@ -3,7 +3,8 @@
34345
34346 /* { dg-do assemble } */
34347 /* { dg-require-effective-target arm_neon_ok } */
34348 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34349 +/* { dg-options "-save-temps -O0" } */
34350 +/* { dg-add-options arm_neon } */
34351
34352 #include "arm_neon.h"
34353
34354 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicQs32.c b/gcc/testsuite/gcc.target/arm/neon/vbicQs32.c
34355 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQs32.c 2007-07-25 14:28:31.000000000 +0200
34356 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQs32.c 2010-01-25 09:50:29.285687196 +0100
34357 @@ -3,7 +3,8 @@
34358
34359 /* { dg-do assemble } */
34360 /* { dg-require-effective-target arm_neon_ok } */
34361 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34362 +/* { dg-options "-save-temps -O0" } */
34363 +/* { dg-add-options arm_neon } */
34364
34365 #include "arm_neon.h"
34366
34367 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicQs64.c b/gcc/testsuite/gcc.target/arm/neon/vbicQs64.c
34368 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQs64.c 2007-07-25 14:28:31.000000000 +0200
34369 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQs64.c 2010-01-25 09:50:29.285687196 +0100
34370 @@ -3,7 +3,8 @@
34371
34372 /* { dg-do assemble } */
34373 /* { dg-require-effective-target arm_neon_ok } */
34374 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34375 +/* { dg-options "-save-temps -O0" } */
34376 +/* { dg-add-options arm_neon } */
34377
34378 #include "arm_neon.h"
34379
34380 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicQs8.c b/gcc/testsuite/gcc.target/arm/neon/vbicQs8.c
34381 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQs8.c 2007-07-25 14:28:31.000000000 +0200
34382 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQs8.c 2010-01-25 09:50:29.285687196 +0100
34383 @@ -3,7 +3,8 @@
34384
34385 /* { dg-do assemble } */
34386 /* { dg-require-effective-target arm_neon_ok } */
34387 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34388 +/* { dg-options "-save-temps -O0" } */
34389 +/* { dg-add-options arm_neon } */
34390
34391 #include "arm_neon.h"
34392
34393 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicQu16.c b/gcc/testsuite/gcc.target/arm/neon/vbicQu16.c
34394 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQu16.c 2007-07-25 14:28:31.000000000 +0200
34395 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQu16.c 2010-01-25 09:50:29.285687196 +0100
34396 @@ -3,7 +3,8 @@
34397
34398 /* { dg-do assemble } */
34399 /* { dg-require-effective-target arm_neon_ok } */
34400 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34401 +/* { dg-options "-save-temps -O0" } */
34402 +/* { dg-add-options arm_neon } */
34403
34404 #include "arm_neon.h"
34405
34406 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicQu32.c b/gcc/testsuite/gcc.target/arm/neon/vbicQu32.c
34407 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQu32.c 2007-07-25 14:28:31.000000000 +0200
34408 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQu32.c 2010-01-25 09:50:29.285687196 +0100
34409 @@ -3,7 +3,8 @@
34410
34411 /* { dg-do assemble } */
34412 /* { dg-require-effective-target arm_neon_ok } */
34413 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34414 +/* { dg-options "-save-temps -O0" } */
34415 +/* { dg-add-options arm_neon } */
34416
34417 #include "arm_neon.h"
34418
34419 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicQu64.c b/gcc/testsuite/gcc.target/arm/neon/vbicQu64.c
34420 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQu64.c 2007-07-25 14:28:31.000000000 +0200
34421 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQu64.c 2010-01-25 09:50:29.285687196 +0100
34422 @@ -3,7 +3,8 @@
34423
34424 /* { dg-do assemble } */
34425 /* { dg-require-effective-target arm_neon_ok } */
34426 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34427 +/* { dg-options "-save-temps -O0" } */
34428 +/* { dg-add-options arm_neon } */
34429
34430 #include "arm_neon.h"
34431
34432 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicQu8.c b/gcc/testsuite/gcc.target/arm/neon/vbicQu8.c
34433 --- a/gcc/testsuite/gcc.target/arm/neon/vbicQu8.c 2007-07-25 14:28:31.000000000 +0200
34434 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicQu8.c 2010-01-25 09:50:29.285687196 +0100
34435 @@ -3,7 +3,8 @@
34436
34437 /* { dg-do assemble } */
34438 /* { dg-require-effective-target arm_neon_ok } */
34439 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34440 +/* { dg-options "-save-temps -O0" } */
34441 +/* { dg-add-options arm_neon } */
34442
34443 #include "arm_neon.h"
34444
34445 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbics16.c b/gcc/testsuite/gcc.target/arm/neon/vbics16.c
34446 --- a/gcc/testsuite/gcc.target/arm/neon/vbics16.c 2007-07-25 14:28:31.000000000 +0200
34447 +++ b/gcc/testsuite/gcc.target/arm/neon/vbics16.c 2010-01-25 09:50:29.285687196 +0100
34448 @@ -3,7 +3,8 @@
34449
34450 /* { dg-do assemble } */
34451 /* { dg-require-effective-target arm_neon_ok } */
34452 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34453 +/* { dg-options "-save-temps -O0" } */
34454 +/* { dg-add-options arm_neon } */
34455
34456 #include "arm_neon.h"
34457
34458 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbics32.c b/gcc/testsuite/gcc.target/arm/neon/vbics32.c
34459 --- a/gcc/testsuite/gcc.target/arm/neon/vbics32.c 2007-07-25 14:28:31.000000000 +0200
34460 +++ b/gcc/testsuite/gcc.target/arm/neon/vbics32.c 2010-01-25 09:50:29.285687196 +0100
34461 @@ -3,7 +3,8 @@
34462
34463 /* { dg-do assemble } */
34464 /* { dg-require-effective-target arm_neon_ok } */
34465 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34466 +/* { dg-options "-save-temps -O0" } */
34467 +/* { dg-add-options arm_neon } */
34468
34469 #include "arm_neon.h"
34470
34471 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbics64.c b/gcc/testsuite/gcc.target/arm/neon/vbics64.c
34472 --- a/gcc/testsuite/gcc.target/arm/neon/vbics64.c 2007-07-25 14:28:31.000000000 +0200
34473 +++ b/gcc/testsuite/gcc.target/arm/neon/vbics64.c 2010-01-25 09:50:29.285687196 +0100
34474 @@ -3,7 +3,8 @@
34475
34476 /* { dg-do assemble } */
34477 /* { dg-require-effective-target arm_neon_ok } */
34478 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34479 +/* { dg-options "-save-temps -O0" } */
34480 +/* { dg-add-options arm_neon } */
34481
34482 #include "arm_neon.h"
34483
34484 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbics8.c b/gcc/testsuite/gcc.target/arm/neon/vbics8.c
34485 --- a/gcc/testsuite/gcc.target/arm/neon/vbics8.c 2007-07-25 14:28:31.000000000 +0200
34486 +++ b/gcc/testsuite/gcc.target/arm/neon/vbics8.c 2010-01-25 09:50:29.285687196 +0100
34487 @@ -3,7 +3,8 @@
34488
34489 /* { dg-do assemble } */
34490 /* { dg-require-effective-target arm_neon_ok } */
34491 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34492 +/* { dg-options "-save-temps -O0" } */
34493 +/* { dg-add-options arm_neon } */
34494
34495 #include "arm_neon.h"
34496
34497 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicu16.c b/gcc/testsuite/gcc.target/arm/neon/vbicu16.c
34498 --- a/gcc/testsuite/gcc.target/arm/neon/vbicu16.c 2007-07-25 14:28:31.000000000 +0200
34499 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicu16.c 2010-01-25 09:50:29.285687196 +0100
34500 @@ -3,7 +3,8 @@
34501
34502 /* { dg-do assemble } */
34503 /* { dg-require-effective-target arm_neon_ok } */
34504 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34505 +/* { dg-options "-save-temps -O0" } */
34506 +/* { dg-add-options arm_neon } */
34507
34508 #include "arm_neon.h"
34509
34510 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicu32.c b/gcc/testsuite/gcc.target/arm/neon/vbicu32.c
34511 --- a/gcc/testsuite/gcc.target/arm/neon/vbicu32.c 2007-07-25 14:28:31.000000000 +0200
34512 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicu32.c 2010-01-25 09:50:29.285687196 +0100
34513 @@ -3,7 +3,8 @@
34514
34515 /* { dg-do assemble } */
34516 /* { dg-require-effective-target arm_neon_ok } */
34517 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34518 +/* { dg-options "-save-temps -O0" } */
34519 +/* { dg-add-options arm_neon } */
34520
34521 #include "arm_neon.h"
34522
34523 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicu64.c b/gcc/testsuite/gcc.target/arm/neon/vbicu64.c
34524 --- a/gcc/testsuite/gcc.target/arm/neon/vbicu64.c 2007-07-25 14:28:31.000000000 +0200
34525 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicu64.c 2010-01-25 09:50:29.285687196 +0100
34526 @@ -3,7 +3,8 @@
34527
34528 /* { dg-do assemble } */
34529 /* { dg-require-effective-target arm_neon_ok } */
34530 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34531 +/* { dg-options "-save-temps -O0" } */
34532 +/* { dg-add-options arm_neon } */
34533
34534 #include "arm_neon.h"
34535
34536 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbicu8.c b/gcc/testsuite/gcc.target/arm/neon/vbicu8.c
34537 --- a/gcc/testsuite/gcc.target/arm/neon/vbicu8.c 2007-07-25 14:28:31.000000000 +0200
34538 +++ b/gcc/testsuite/gcc.target/arm/neon/vbicu8.c 2010-01-25 09:50:29.285687196 +0100
34539 @@ -3,7 +3,8 @@
34540
34541 /* { dg-do assemble } */
34542 /* { dg-require-effective-target arm_neon_ok } */
34543 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34544 +/* { dg-options "-save-temps -O0" } */
34545 +/* { dg-add-options arm_neon } */
34546
34547 #include "arm_neon.h"
34548
34549 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslf32.c b/gcc/testsuite/gcc.target/arm/neon/vbslf32.c
34550 --- a/gcc/testsuite/gcc.target/arm/neon/vbslf32.c 2007-07-25 14:28:31.000000000 +0200
34551 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslf32.c 2010-01-25 09:50:29.285687196 +0100
34552 @@ -3,7 +3,8 @@
34553
34554 /* { dg-do assemble } */
34555 /* { dg-require-effective-target arm_neon_ok } */
34556 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34557 +/* { dg-options "-save-temps -O0" } */
34558 +/* { dg-add-options arm_neon } */
34559
34560 #include "arm_neon.h"
34561
34562 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslp16.c b/gcc/testsuite/gcc.target/arm/neon/vbslp16.c
34563 --- a/gcc/testsuite/gcc.target/arm/neon/vbslp16.c 2007-07-25 14:28:31.000000000 +0200
34564 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslp16.c 2010-01-25 09:50:29.285687196 +0100
34565 @@ -3,7 +3,8 @@
34566
34567 /* { dg-do assemble } */
34568 /* { dg-require-effective-target arm_neon_ok } */
34569 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34570 +/* { dg-options "-save-temps -O0" } */
34571 +/* { dg-add-options arm_neon } */
34572
34573 #include "arm_neon.h"
34574
34575 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslp8.c b/gcc/testsuite/gcc.target/arm/neon/vbslp8.c
34576 --- a/gcc/testsuite/gcc.target/arm/neon/vbslp8.c 2007-07-25 14:28:31.000000000 +0200
34577 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslp8.c 2010-01-25 09:50:29.285687196 +0100
34578 @@ -3,7 +3,8 @@
34579
34580 /* { dg-do assemble } */
34581 /* { dg-require-effective-target arm_neon_ok } */
34582 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34583 +/* { dg-options "-save-temps -O0" } */
34584 +/* { dg-add-options arm_neon } */
34585
34586 #include "arm_neon.h"
34587
34588 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQf32.c b/gcc/testsuite/gcc.target/arm/neon/vbslQf32.c
34589 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQf32.c 2007-07-25 14:28:31.000000000 +0200
34590 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQf32.c 2010-01-25 09:50:29.295686791 +0100
34591 @@ -3,7 +3,8 @@
34592
34593 /* { dg-do assemble } */
34594 /* { dg-require-effective-target arm_neon_ok } */
34595 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34596 +/* { dg-options "-save-temps -O0" } */
34597 +/* { dg-add-options arm_neon } */
34598
34599 #include "arm_neon.h"
34600
34601 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQp16.c b/gcc/testsuite/gcc.target/arm/neon/vbslQp16.c
34602 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQp16.c 2007-07-25 14:28:31.000000000 +0200
34603 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQp16.c 2010-01-25 09:50:29.295686791 +0100
34604 @@ -3,7 +3,8 @@
34605
34606 /* { dg-do assemble } */
34607 /* { dg-require-effective-target arm_neon_ok } */
34608 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34609 +/* { dg-options "-save-temps -O0" } */
34610 +/* { dg-add-options arm_neon } */
34611
34612 #include "arm_neon.h"
34613
34614 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQp8.c b/gcc/testsuite/gcc.target/arm/neon/vbslQp8.c
34615 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQp8.c 2007-07-25 14:28:31.000000000 +0200
34616 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQp8.c 2010-01-25 09:50:29.295686791 +0100
34617 @@ -3,7 +3,8 @@
34618
34619 /* { dg-do assemble } */
34620 /* { dg-require-effective-target arm_neon_ok } */
34621 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34622 +/* { dg-options "-save-temps -O0" } */
34623 +/* { dg-add-options arm_neon } */
34624
34625 #include "arm_neon.h"
34626
34627 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQs16.c b/gcc/testsuite/gcc.target/arm/neon/vbslQs16.c
34628 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQs16.c 2007-07-25 14:28:31.000000000 +0200
34629 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQs16.c 2010-01-25 09:50:29.295686791 +0100
34630 @@ -3,7 +3,8 @@
34631
34632 /* { dg-do assemble } */
34633 /* { dg-require-effective-target arm_neon_ok } */
34634 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34635 +/* { dg-options "-save-temps -O0" } */
34636 +/* { dg-add-options arm_neon } */
34637
34638 #include "arm_neon.h"
34639
34640 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQs32.c b/gcc/testsuite/gcc.target/arm/neon/vbslQs32.c
34641 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQs32.c 2007-07-25 14:28:31.000000000 +0200
34642 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQs32.c 2010-01-25 09:50:29.295686791 +0100
34643 @@ -3,7 +3,8 @@
34644
34645 /* { dg-do assemble } */
34646 /* { dg-require-effective-target arm_neon_ok } */
34647 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34648 +/* { dg-options "-save-temps -O0" } */
34649 +/* { dg-add-options arm_neon } */
34650
34651 #include "arm_neon.h"
34652
34653 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQs64.c b/gcc/testsuite/gcc.target/arm/neon/vbslQs64.c
34654 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQs64.c 2007-07-25 14:28:31.000000000 +0200
34655 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQs64.c 2010-01-25 09:50:29.295686791 +0100
34656 @@ -3,7 +3,8 @@
34657
34658 /* { dg-do assemble } */
34659 /* { dg-require-effective-target arm_neon_ok } */
34660 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34661 +/* { dg-options "-save-temps -O0" } */
34662 +/* { dg-add-options arm_neon } */
34663
34664 #include "arm_neon.h"
34665
34666 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQs8.c b/gcc/testsuite/gcc.target/arm/neon/vbslQs8.c
34667 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQs8.c 2007-07-25 14:28:31.000000000 +0200
34668 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQs8.c 2010-01-25 09:50:29.295686791 +0100
34669 @@ -3,7 +3,8 @@
34670
34671 /* { dg-do assemble } */
34672 /* { dg-require-effective-target arm_neon_ok } */
34673 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34674 +/* { dg-options "-save-temps -O0" } */
34675 +/* { dg-add-options arm_neon } */
34676
34677 #include "arm_neon.h"
34678
34679 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQu16.c b/gcc/testsuite/gcc.target/arm/neon/vbslQu16.c
34680 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQu16.c 2007-07-25 14:28:31.000000000 +0200
34681 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQu16.c 2010-01-25 09:50:29.295686791 +0100
34682 @@ -3,7 +3,8 @@
34683
34684 /* { dg-do assemble } */
34685 /* { dg-require-effective-target arm_neon_ok } */
34686 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34687 +/* { dg-options "-save-temps -O0" } */
34688 +/* { dg-add-options arm_neon } */
34689
34690 #include "arm_neon.h"
34691
34692 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQu32.c b/gcc/testsuite/gcc.target/arm/neon/vbslQu32.c
34693 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQu32.c 2007-07-25 14:28:31.000000000 +0200
34694 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQu32.c 2010-01-25 09:50:29.295686791 +0100
34695 @@ -3,7 +3,8 @@
34696
34697 /* { dg-do assemble } */
34698 /* { dg-require-effective-target arm_neon_ok } */
34699 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34700 +/* { dg-options "-save-temps -O0" } */
34701 +/* { dg-add-options arm_neon } */
34702
34703 #include "arm_neon.h"
34704
34705 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQu64.c b/gcc/testsuite/gcc.target/arm/neon/vbslQu64.c
34706 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQu64.c 2007-07-25 14:28:31.000000000 +0200
34707 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQu64.c 2010-01-25 09:50:29.295686791 +0100
34708 @@ -3,7 +3,8 @@
34709
34710 /* { dg-do assemble } */
34711 /* { dg-require-effective-target arm_neon_ok } */
34712 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34713 +/* { dg-options "-save-temps -O0" } */
34714 +/* { dg-add-options arm_neon } */
34715
34716 #include "arm_neon.h"
34717
34718 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslQu8.c b/gcc/testsuite/gcc.target/arm/neon/vbslQu8.c
34719 --- a/gcc/testsuite/gcc.target/arm/neon/vbslQu8.c 2007-07-25 14:28:31.000000000 +0200
34720 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslQu8.c 2010-01-25 09:50:29.295686791 +0100
34721 @@ -3,7 +3,8 @@
34722
34723 /* { dg-do assemble } */
34724 /* { dg-require-effective-target arm_neon_ok } */
34725 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34726 +/* { dg-options "-save-temps -O0" } */
34727 +/* { dg-add-options arm_neon } */
34728
34729 #include "arm_neon.h"
34730
34731 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbsls16.c b/gcc/testsuite/gcc.target/arm/neon/vbsls16.c
34732 --- a/gcc/testsuite/gcc.target/arm/neon/vbsls16.c 2007-07-25 14:28:31.000000000 +0200
34733 +++ b/gcc/testsuite/gcc.target/arm/neon/vbsls16.c 2010-01-25 09:50:29.295686791 +0100
34734 @@ -3,7 +3,8 @@
34735
34736 /* { dg-do assemble } */
34737 /* { dg-require-effective-target arm_neon_ok } */
34738 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34739 +/* { dg-options "-save-temps -O0" } */
34740 +/* { dg-add-options arm_neon } */
34741
34742 #include "arm_neon.h"
34743
34744 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbsls32.c b/gcc/testsuite/gcc.target/arm/neon/vbsls32.c
34745 --- a/gcc/testsuite/gcc.target/arm/neon/vbsls32.c 2007-07-25 14:28:31.000000000 +0200
34746 +++ b/gcc/testsuite/gcc.target/arm/neon/vbsls32.c 2010-01-25 09:50:29.295686791 +0100
34747 @@ -3,7 +3,8 @@
34748
34749 /* { dg-do assemble } */
34750 /* { dg-require-effective-target arm_neon_ok } */
34751 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34752 +/* { dg-options "-save-temps -O0" } */
34753 +/* { dg-add-options arm_neon } */
34754
34755 #include "arm_neon.h"
34756
34757 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbsls64.c b/gcc/testsuite/gcc.target/arm/neon/vbsls64.c
34758 --- a/gcc/testsuite/gcc.target/arm/neon/vbsls64.c 2007-07-25 14:28:31.000000000 +0200
34759 +++ b/gcc/testsuite/gcc.target/arm/neon/vbsls64.c 2010-01-25 09:50:29.295686791 +0100
34760 @@ -3,7 +3,8 @@
34761
34762 /* { dg-do assemble } */
34763 /* { dg-require-effective-target arm_neon_ok } */
34764 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34765 +/* { dg-options "-save-temps -O0" } */
34766 +/* { dg-add-options arm_neon } */
34767
34768 #include "arm_neon.h"
34769
34770 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbsls8.c b/gcc/testsuite/gcc.target/arm/neon/vbsls8.c
34771 --- a/gcc/testsuite/gcc.target/arm/neon/vbsls8.c 2007-07-25 14:28:31.000000000 +0200
34772 +++ b/gcc/testsuite/gcc.target/arm/neon/vbsls8.c 2010-01-25 09:50:29.295686791 +0100
34773 @@ -3,7 +3,8 @@
34774
34775 /* { dg-do assemble } */
34776 /* { dg-require-effective-target arm_neon_ok } */
34777 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34778 +/* { dg-options "-save-temps -O0" } */
34779 +/* { dg-add-options arm_neon } */
34780
34781 #include "arm_neon.h"
34782
34783 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslu16.c b/gcc/testsuite/gcc.target/arm/neon/vbslu16.c
34784 --- a/gcc/testsuite/gcc.target/arm/neon/vbslu16.c 2007-07-25 14:28:31.000000000 +0200
34785 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslu16.c 2010-01-25 09:50:29.295686791 +0100
34786 @@ -3,7 +3,8 @@
34787
34788 /* { dg-do assemble } */
34789 /* { dg-require-effective-target arm_neon_ok } */
34790 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34791 +/* { dg-options "-save-temps -O0" } */
34792 +/* { dg-add-options arm_neon } */
34793
34794 #include "arm_neon.h"
34795
34796 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslu32.c b/gcc/testsuite/gcc.target/arm/neon/vbslu32.c
34797 --- a/gcc/testsuite/gcc.target/arm/neon/vbslu32.c 2007-07-25 14:28:31.000000000 +0200
34798 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslu32.c 2010-01-25 09:50:29.295686791 +0100
34799 @@ -3,7 +3,8 @@
34800
34801 /* { dg-do assemble } */
34802 /* { dg-require-effective-target arm_neon_ok } */
34803 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34804 +/* { dg-options "-save-temps -O0" } */
34805 +/* { dg-add-options arm_neon } */
34806
34807 #include "arm_neon.h"
34808
34809 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslu64.c b/gcc/testsuite/gcc.target/arm/neon/vbslu64.c
34810 --- a/gcc/testsuite/gcc.target/arm/neon/vbslu64.c 2007-07-25 14:28:31.000000000 +0200
34811 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslu64.c 2010-01-25 09:50:29.295686791 +0100
34812 @@ -3,7 +3,8 @@
34813
34814 /* { dg-do assemble } */
34815 /* { dg-require-effective-target arm_neon_ok } */
34816 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34817 +/* { dg-options "-save-temps -O0" } */
34818 +/* { dg-add-options arm_neon } */
34819
34820 #include "arm_neon.h"
34821
34822 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vbslu8.c b/gcc/testsuite/gcc.target/arm/neon/vbslu8.c
34823 --- a/gcc/testsuite/gcc.target/arm/neon/vbslu8.c 2007-07-25 14:28:31.000000000 +0200
34824 +++ b/gcc/testsuite/gcc.target/arm/neon/vbslu8.c 2010-01-25 09:50:29.295686791 +0100
34825 @@ -3,7 +3,8 @@
34826
34827 /* { dg-do assemble } */
34828 /* { dg-require-effective-target arm_neon_ok } */
34829 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34830 +/* { dg-options "-save-temps -O0" } */
34831 +/* { dg-add-options arm_neon } */
34832
34833 #include "arm_neon.h"
34834
34835 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcagef32.c b/gcc/testsuite/gcc.target/arm/neon/vcagef32.c
34836 --- a/gcc/testsuite/gcc.target/arm/neon/vcagef32.c 2007-07-25 14:28:31.000000000 +0200
34837 +++ b/gcc/testsuite/gcc.target/arm/neon/vcagef32.c 2010-01-25 09:50:29.295686791 +0100
34838 @@ -3,7 +3,8 @@
34839
34840 /* { dg-do assemble } */
34841 /* { dg-require-effective-target arm_neon_ok } */
34842 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34843 +/* { dg-options "-save-temps -O0" } */
34844 +/* { dg-add-options arm_neon } */
34845
34846 #include "arm_neon.h"
34847
34848 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcageQf32.c b/gcc/testsuite/gcc.target/arm/neon/vcageQf32.c
34849 --- a/gcc/testsuite/gcc.target/arm/neon/vcageQf32.c 2007-07-25 14:28:31.000000000 +0200
34850 +++ b/gcc/testsuite/gcc.target/arm/neon/vcageQf32.c 2010-01-25 09:50:29.295686791 +0100
34851 @@ -3,7 +3,8 @@
34852
34853 /* { dg-do assemble } */
34854 /* { dg-require-effective-target arm_neon_ok } */
34855 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34856 +/* { dg-options "-save-temps -O0" } */
34857 +/* { dg-add-options arm_neon } */
34858
34859 #include "arm_neon.h"
34860
34861 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcagtf32.c b/gcc/testsuite/gcc.target/arm/neon/vcagtf32.c
34862 --- a/gcc/testsuite/gcc.target/arm/neon/vcagtf32.c 2007-07-25 14:28:31.000000000 +0200
34863 +++ b/gcc/testsuite/gcc.target/arm/neon/vcagtf32.c 2010-01-25 09:50:29.295686791 +0100
34864 @@ -3,7 +3,8 @@
34865
34866 /* { dg-do assemble } */
34867 /* { dg-require-effective-target arm_neon_ok } */
34868 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34869 +/* { dg-options "-save-temps -O0" } */
34870 +/* { dg-add-options arm_neon } */
34871
34872 #include "arm_neon.h"
34873
34874 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcagtQf32.c b/gcc/testsuite/gcc.target/arm/neon/vcagtQf32.c
34875 --- a/gcc/testsuite/gcc.target/arm/neon/vcagtQf32.c 2007-07-25 14:28:31.000000000 +0200
34876 +++ b/gcc/testsuite/gcc.target/arm/neon/vcagtQf32.c 2010-01-25 09:50:29.295686791 +0100
34877 @@ -3,7 +3,8 @@
34878
34879 /* { dg-do assemble } */
34880 /* { dg-require-effective-target arm_neon_ok } */
34881 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34882 +/* { dg-options "-save-temps -O0" } */
34883 +/* { dg-add-options arm_neon } */
34884
34885 #include "arm_neon.h"
34886
34887 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcalef32.c b/gcc/testsuite/gcc.target/arm/neon/vcalef32.c
34888 --- a/gcc/testsuite/gcc.target/arm/neon/vcalef32.c 2007-07-25 14:28:31.000000000 +0200
34889 +++ b/gcc/testsuite/gcc.target/arm/neon/vcalef32.c 2010-01-25 09:50:29.295686791 +0100
34890 @@ -3,7 +3,8 @@
34891
34892 /* { dg-do assemble } */
34893 /* { dg-require-effective-target arm_neon_ok } */
34894 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34895 +/* { dg-options "-save-temps -O0" } */
34896 +/* { dg-add-options arm_neon } */
34897
34898 #include "arm_neon.h"
34899
34900 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcaleQf32.c b/gcc/testsuite/gcc.target/arm/neon/vcaleQf32.c
34901 --- a/gcc/testsuite/gcc.target/arm/neon/vcaleQf32.c 2007-07-25 14:28:31.000000000 +0200
34902 +++ b/gcc/testsuite/gcc.target/arm/neon/vcaleQf32.c 2010-01-25 09:50:29.295686791 +0100
34903 @@ -3,7 +3,8 @@
34904
34905 /* { dg-do assemble } */
34906 /* { dg-require-effective-target arm_neon_ok } */
34907 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34908 +/* { dg-options "-save-temps -O0" } */
34909 +/* { dg-add-options arm_neon } */
34910
34911 #include "arm_neon.h"
34912
34913 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcaltf32.c b/gcc/testsuite/gcc.target/arm/neon/vcaltf32.c
34914 --- a/gcc/testsuite/gcc.target/arm/neon/vcaltf32.c 2007-07-25 14:28:31.000000000 +0200
34915 +++ b/gcc/testsuite/gcc.target/arm/neon/vcaltf32.c 2010-01-25 09:50:29.295686791 +0100
34916 @@ -3,7 +3,8 @@
34917
34918 /* { dg-do assemble } */
34919 /* { dg-require-effective-target arm_neon_ok } */
34920 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34921 +/* { dg-options "-save-temps -O0" } */
34922 +/* { dg-add-options arm_neon } */
34923
34924 #include "arm_neon.h"
34925
34926 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcaltQf32.c b/gcc/testsuite/gcc.target/arm/neon/vcaltQf32.c
34927 --- a/gcc/testsuite/gcc.target/arm/neon/vcaltQf32.c 2007-07-25 14:28:31.000000000 +0200
34928 +++ b/gcc/testsuite/gcc.target/arm/neon/vcaltQf32.c 2010-01-25 09:50:29.295686791 +0100
34929 @@ -3,7 +3,8 @@
34930
34931 /* { dg-do assemble } */
34932 /* { dg-require-effective-target arm_neon_ok } */
34933 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34934 +/* { dg-options "-save-temps -O0" } */
34935 +/* { dg-add-options arm_neon } */
34936
34937 #include "arm_neon.h"
34938
34939 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqf32.c b/gcc/testsuite/gcc.target/arm/neon/vceqf32.c
34940 --- a/gcc/testsuite/gcc.target/arm/neon/vceqf32.c 2007-07-25 14:28:31.000000000 +0200
34941 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqf32.c 2010-01-25 09:50:29.305687083 +0100
34942 @@ -3,7 +3,8 @@
34943
34944 /* { dg-do assemble } */
34945 /* { dg-require-effective-target arm_neon_ok } */
34946 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34947 +/* { dg-options "-save-temps -O0" } */
34948 +/* { dg-add-options arm_neon } */
34949
34950 #include "arm_neon.h"
34951
34952 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqp8.c b/gcc/testsuite/gcc.target/arm/neon/vceqp8.c
34953 --- a/gcc/testsuite/gcc.target/arm/neon/vceqp8.c 2007-07-25 14:28:31.000000000 +0200
34954 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqp8.c 2010-01-25 09:50:29.305687083 +0100
34955 @@ -3,7 +3,8 @@
34956
34957 /* { dg-do assemble } */
34958 /* { dg-require-effective-target arm_neon_ok } */
34959 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34960 +/* { dg-options "-save-temps -O0" } */
34961 +/* { dg-add-options arm_neon } */
34962
34963 #include "arm_neon.h"
34964
34965 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqQf32.c b/gcc/testsuite/gcc.target/arm/neon/vceqQf32.c
34966 --- a/gcc/testsuite/gcc.target/arm/neon/vceqQf32.c 2007-07-25 14:28:31.000000000 +0200
34967 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqQf32.c 2010-01-25 09:50:29.305687083 +0100
34968 @@ -3,7 +3,8 @@
34969
34970 /* { dg-do assemble } */
34971 /* { dg-require-effective-target arm_neon_ok } */
34972 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34973 +/* { dg-options "-save-temps -O0" } */
34974 +/* { dg-add-options arm_neon } */
34975
34976 #include "arm_neon.h"
34977
34978 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqQp8.c b/gcc/testsuite/gcc.target/arm/neon/vceqQp8.c
34979 --- a/gcc/testsuite/gcc.target/arm/neon/vceqQp8.c 2007-07-25 14:28:31.000000000 +0200
34980 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqQp8.c 2010-01-25 09:50:29.305687083 +0100
34981 @@ -3,7 +3,8 @@
34982
34983 /* { dg-do assemble } */
34984 /* { dg-require-effective-target arm_neon_ok } */
34985 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34986 +/* { dg-options "-save-temps -O0" } */
34987 +/* { dg-add-options arm_neon } */
34988
34989 #include "arm_neon.h"
34990
34991 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqQs16.c b/gcc/testsuite/gcc.target/arm/neon/vceqQs16.c
34992 --- a/gcc/testsuite/gcc.target/arm/neon/vceqQs16.c 2007-07-25 14:28:31.000000000 +0200
34993 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqQs16.c 2010-01-25 09:50:29.305687083 +0100
34994 @@ -3,7 +3,8 @@
34995
34996 /* { dg-do assemble } */
34997 /* { dg-require-effective-target arm_neon_ok } */
34998 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
34999 +/* { dg-options "-save-temps -O0" } */
35000 +/* { dg-add-options arm_neon } */
35001
35002 #include "arm_neon.h"
35003
35004 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqQs32.c b/gcc/testsuite/gcc.target/arm/neon/vceqQs32.c
35005 --- a/gcc/testsuite/gcc.target/arm/neon/vceqQs32.c 2007-07-25 14:28:31.000000000 +0200
35006 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqQs32.c 2010-01-25 09:50:29.305687083 +0100
35007 @@ -3,7 +3,8 @@
35008
35009 /* { dg-do assemble } */
35010 /* { dg-require-effective-target arm_neon_ok } */
35011 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35012 +/* { dg-options "-save-temps -O0" } */
35013 +/* { dg-add-options arm_neon } */
35014
35015 #include "arm_neon.h"
35016
35017 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqQs8.c b/gcc/testsuite/gcc.target/arm/neon/vceqQs8.c
35018 --- a/gcc/testsuite/gcc.target/arm/neon/vceqQs8.c 2007-07-25 14:28:31.000000000 +0200
35019 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqQs8.c 2010-01-25 09:50:29.305687083 +0100
35020 @@ -3,7 +3,8 @@
35021
35022 /* { dg-do assemble } */
35023 /* { dg-require-effective-target arm_neon_ok } */
35024 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35025 +/* { dg-options "-save-temps -O0" } */
35026 +/* { dg-add-options arm_neon } */
35027
35028 #include "arm_neon.h"
35029
35030 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqQu16.c b/gcc/testsuite/gcc.target/arm/neon/vceqQu16.c
35031 --- a/gcc/testsuite/gcc.target/arm/neon/vceqQu16.c 2007-07-25 14:28:31.000000000 +0200
35032 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqQu16.c 2010-01-25 09:50:29.305687083 +0100
35033 @@ -3,7 +3,8 @@
35034
35035 /* { dg-do assemble } */
35036 /* { dg-require-effective-target arm_neon_ok } */
35037 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35038 +/* { dg-options "-save-temps -O0" } */
35039 +/* { dg-add-options arm_neon } */
35040
35041 #include "arm_neon.h"
35042
35043 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqQu32.c b/gcc/testsuite/gcc.target/arm/neon/vceqQu32.c
35044 --- a/gcc/testsuite/gcc.target/arm/neon/vceqQu32.c 2007-07-25 14:28:31.000000000 +0200
35045 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqQu32.c 2010-01-25 09:50:29.305687083 +0100
35046 @@ -3,7 +3,8 @@
35047
35048 /* { dg-do assemble } */
35049 /* { dg-require-effective-target arm_neon_ok } */
35050 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35051 +/* { dg-options "-save-temps -O0" } */
35052 +/* { dg-add-options arm_neon } */
35053
35054 #include "arm_neon.h"
35055
35056 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqQu8.c b/gcc/testsuite/gcc.target/arm/neon/vceqQu8.c
35057 --- a/gcc/testsuite/gcc.target/arm/neon/vceqQu8.c 2007-07-25 14:28:31.000000000 +0200
35058 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqQu8.c 2010-01-25 09:50:29.305687083 +0100
35059 @@ -3,7 +3,8 @@
35060
35061 /* { dg-do assemble } */
35062 /* { dg-require-effective-target arm_neon_ok } */
35063 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35064 +/* { dg-options "-save-temps -O0" } */
35065 +/* { dg-add-options arm_neon } */
35066
35067 #include "arm_neon.h"
35068
35069 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqs16.c b/gcc/testsuite/gcc.target/arm/neon/vceqs16.c
35070 --- a/gcc/testsuite/gcc.target/arm/neon/vceqs16.c 2007-07-25 14:28:31.000000000 +0200
35071 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqs16.c 2010-01-25 09:50:29.305687083 +0100
35072 @@ -3,7 +3,8 @@
35073
35074 /* { dg-do assemble } */
35075 /* { dg-require-effective-target arm_neon_ok } */
35076 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35077 +/* { dg-options "-save-temps -O0" } */
35078 +/* { dg-add-options arm_neon } */
35079
35080 #include "arm_neon.h"
35081
35082 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqs32.c b/gcc/testsuite/gcc.target/arm/neon/vceqs32.c
35083 --- a/gcc/testsuite/gcc.target/arm/neon/vceqs32.c 2007-07-25 14:28:31.000000000 +0200
35084 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqs32.c 2010-01-25 09:50:29.305687083 +0100
35085 @@ -3,7 +3,8 @@
35086
35087 /* { dg-do assemble } */
35088 /* { dg-require-effective-target arm_neon_ok } */
35089 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35090 +/* { dg-options "-save-temps -O0" } */
35091 +/* { dg-add-options arm_neon } */
35092
35093 #include "arm_neon.h"
35094
35095 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vceqs8.c b/gcc/testsuite/gcc.target/arm/neon/vceqs8.c
35096 --- a/gcc/testsuite/gcc.target/arm/neon/vceqs8.c 2007-07-25 14:28:31.000000000 +0200
35097 +++ b/gcc/testsuite/gcc.target/arm/neon/vceqs8.c 2010-01-25 09:50:29.305687083 +0100
35098 @@ -3,7 +3,8 @@
35099
35100 /* { dg-do assemble } */
35101 /* { dg-require-effective-target arm_neon_ok } */
35102 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35103 +/* { dg-options "-save-temps -O0" } */
35104 +/* { dg-add-options arm_neon } */
35105
35106 #include "arm_neon.h"
35107
35108 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcequ16.c b/gcc/testsuite/gcc.target/arm/neon/vcequ16.c
35109 --- a/gcc/testsuite/gcc.target/arm/neon/vcequ16.c 2007-07-25 14:28:31.000000000 +0200
35110 +++ b/gcc/testsuite/gcc.target/arm/neon/vcequ16.c 2010-01-25 09:50:29.305687083 +0100
35111 @@ -3,7 +3,8 @@
35112
35113 /* { dg-do assemble } */
35114 /* { dg-require-effective-target arm_neon_ok } */
35115 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35116 +/* { dg-options "-save-temps -O0" } */
35117 +/* { dg-add-options arm_neon } */
35118
35119 #include "arm_neon.h"
35120
35121 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcequ32.c b/gcc/testsuite/gcc.target/arm/neon/vcequ32.c
35122 --- a/gcc/testsuite/gcc.target/arm/neon/vcequ32.c 2007-07-25 14:28:31.000000000 +0200
35123 +++ b/gcc/testsuite/gcc.target/arm/neon/vcequ32.c 2010-01-25 09:50:29.305687083 +0100
35124 @@ -3,7 +3,8 @@
35125
35126 /* { dg-do assemble } */
35127 /* { dg-require-effective-target arm_neon_ok } */
35128 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35129 +/* { dg-options "-save-temps -O0" } */
35130 +/* { dg-add-options arm_neon } */
35131
35132 #include "arm_neon.h"
35133
35134 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcequ8.c b/gcc/testsuite/gcc.target/arm/neon/vcequ8.c
35135 --- a/gcc/testsuite/gcc.target/arm/neon/vcequ8.c 2007-07-25 14:28:31.000000000 +0200
35136 +++ b/gcc/testsuite/gcc.target/arm/neon/vcequ8.c 2010-01-25 09:50:29.305687083 +0100
35137 @@ -3,7 +3,8 @@
35138
35139 /* { dg-do assemble } */
35140 /* { dg-require-effective-target arm_neon_ok } */
35141 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35142 +/* { dg-options "-save-temps -O0" } */
35143 +/* { dg-add-options arm_neon } */
35144
35145 #include "arm_neon.h"
35146
35147 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgef32.c b/gcc/testsuite/gcc.target/arm/neon/vcgef32.c
35148 --- a/gcc/testsuite/gcc.target/arm/neon/vcgef32.c 2007-07-25 14:28:31.000000000 +0200
35149 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgef32.c 2010-01-25 09:50:29.305687083 +0100
35150 @@ -3,7 +3,8 @@
35151
35152 /* { dg-do assemble } */
35153 /* { dg-require-effective-target arm_neon_ok } */
35154 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35155 +/* { dg-options "-save-temps -O0" } */
35156 +/* { dg-add-options arm_neon } */
35157
35158 #include "arm_neon.h"
35159
35160 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeQf32.c b/gcc/testsuite/gcc.target/arm/neon/vcgeQf32.c
35161 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeQf32.c 2007-07-25 14:28:31.000000000 +0200
35162 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeQf32.c 2010-01-25 09:50:29.315687027 +0100
35163 @@ -3,7 +3,8 @@
35164
35165 /* { dg-do assemble } */
35166 /* { dg-require-effective-target arm_neon_ok } */
35167 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35168 +/* { dg-options "-save-temps -O0" } */
35169 +/* { dg-add-options arm_neon } */
35170
35171 #include "arm_neon.h"
35172
35173 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeQs16.c b/gcc/testsuite/gcc.target/arm/neon/vcgeQs16.c
35174 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeQs16.c 2007-07-25 14:28:31.000000000 +0200
35175 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeQs16.c 2010-01-25 09:50:29.315687027 +0100
35176 @@ -3,7 +3,8 @@
35177
35178 /* { dg-do assemble } */
35179 /* { dg-require-effective-target arm_neon_ok } */
35180 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35181 +/* { dg-options "-save-temps -O0" } */
35182 +/* { dg-add-options arm_neon } */
35183
35184 #include "arm_neon.h"
35185
35186 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeQs32.c b/gcc/testsuite/gcc.target/arm/neon/vcgeQs32.c
35187 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeQs32.c 2007-07-25 14:28:31.000000000 +0200
35188 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeQs32.c 2010-01-25 09:50:29.315687027 +0100
35189 @@ -3,7 +3,8 @@
35190
35191 /* { dg-do assemble } */
35192 /* { dg-require-effective-target arm_neon_ok } */
35193 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35194 +/* { dg-options "-save-temps -O0" } */
35195 +/* { dg-add-options arm_neon } */
35196
35197 #include "arm_neon.h"
35198
35199 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeQs8.c b/gcc/testsuite/gcc.target/arm/neon/vcgeQs8.c
35200 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeQs8.c 2007-07-25 14:28:31.000000000 +0200
35201 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeQs8.c 2010-01-25 09:50:29.315687027 +0100
35202 @@ -3,7 +3,8 @@
35203
35204 /* { dg-do assemble } */
35205 /* { dg-require-effective-target arm_neon_ok } */
35206 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35207 +/* { dg-options "-save-temps -O0" } */
35208 +/* { dg-add-options arm_neon } */
35209
35210 #include "arm_neon.h"
35211
35212 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeQu16.c b/gcc/testsuite/gcc.target/arm/neon/vcgeQu16.c
35213 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeQu16.c 2007-07-25 14:28:31.000000000 +0200
35214 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeQu16.c 2010-01-25 09:50:29.315687027 +0100
35215 @@ -3,7 +3,8 @@
35216
35217 /* { dg-do assemble } */
35218 /* { dg-require-effective-target arm_neon_ok } */
35219 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35220 +/* { dg-options "-save-temps -O0" } */
35221 +/* { dg-add-options arm_neon } */
35222
35223 #include "arm_neon.h"
35224
35225 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeQu32.c b/gcc/testsuite/gcc.target/arm/neon/vcgeQu32.c
35226 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeQu32.c 2007-07-25 14:28:31.000000000 +0200
35227 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeQu32.c 2010-01-25 09:50:29.315687027 +0100
35228 @@ -3,7 +3,8 @@
35229
35230 /* { dg-do assemble } */
35231 /* { dg-require-effective-target arm_neon_ok } */
35232 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35233 +/* { dg-options "-save-temps -O0" } */
35234 +/* { dg-add-options arm_neon } */
35235
35236 #include "arm_neon.h"
35237
35238 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeQu8.c b/gcc/testsuite/gcc.target/arm/neon/vcgeQu8.c
35239 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeQu8.c 2007-07-25 14:28:31.000000000 +0200
35240 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeQu8.c 2010-01-25 09:50:29.315687027 +0100
35241 @@ -3,7 +3,8 @@
35242
35243 /* { dg-do assemble } */
35244 /* { dg-require-effective-target arm_neon_ok } */
35245 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35246 +/* { dg-options "-save-temps -O0" } */
35247 +/* { dg-add-options arm_neon } */
35248
35249 #include "arm_neon.h"
35250
35251 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcges16.c b/gcc/testsuite/gcc.target/arm/neon/vcges16.c
35252 --- a/gcc/testsuite/gcc.target/arm/neon/vcges16.c 2007-07-25 14:28:31.000000000 +0200
35253 +++ b/gcc/testsuite/gcc.target/arm/neon/vcges16.c 2010-01-25 09:50:29.315687027 +0100
35254 @@ -3,7 +3,8 @@
35255
35256 /* { dg-do assemble } */
35257 /* { dg-require-effective-target arm_neon_ok } */
35258 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35259 +/* { dg-options "-save-temps -O0" } */
35260 +/* { dg-add-options arm_neon } */
35261
35262 #include "arm_neon.h"
35263
35264 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcges32.c b/gcc/testsuite/gcc.target/arm/neon/vcges32.c
35265 --- a/gcc/testsuite/gcc.target/arm/neon/vcges32.c 2007-07-25 14:28:31.000000000 +0200
35266 +++ b/gcc/testsuite/gcc.target/arm/neon/vcges32.c 2010-01-25 09:50:29.315687027 +0100
35267 @@ -3,7 +3,8 @@
35268
35269 /* { dg-do assemble } */
35270 /* { dg-require-effective-target arm_neon_ok } */
35271 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35272 +/* { dg-options "-save-temps -O0" } */
35273 +/* { dg-add-options arm_neon } */
35274
35275 #include "arm_neon.h"
35276
35277 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcges8.c b/gcc/testsuite/gcc.target/arm/neon/vcges8.c
35278 --- a/gcc/testsuite/gcc.target/arm/neon/vcges8.c 2007-07-25 14:28:31.000000000 +0200
35279 +++ b/gcc/testsuite/gcc.target/arm/neon/vcges8.c 2010-01-25 09:50:29.315687027 +0100
35280 @@ -3,7 +3,8 @@
35281
35282 /* { dg-do assemble } */
35283 /* { dg-require-effective-target arm_neon_ok } */
35284 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35285 +/* { dg-options "-save-temps -O0" } */
35286 +/* { dg-add-options arm_neon } */
35287
35288 #include "arm_neon.h"
35289
35290 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeu16.c b/gcc/testsuite/gcc.target/arm/neon/vcgeu16.c
35291 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeu16.c 2007-07-25 14:28:31.000000000 +0200
35292 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeu16.c 2010-01-25 09:50:29.315687027 +0100
35293 @@ -3,7 +3,8 @@
35294
35295 /* { dg-do assemble } */
35296 /* { dg-require-effective-target arm_neon_ok } */
35297 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35298 +/* { dg-options "-save-temps -O0" } */
35299 +/* { dg-add-options arm_neon } */
35300
35301 #include "arm_neon.h"
35302
35303 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeu32.c b/gcc/testsuite/gcc.target/arm/neon/vcgeu32.c
35304 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeu32.c 2007-07-25 14:28:31.000000000 +0200
35305 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeu32.c 2010-01-25 09:50:29.315687027 +0100
35306 @@ -3,7 +3,8 @@
35307
35308 /* { dg-do assemble } */
35309 /* { dg-require-effective-target arm_neon_ok } */
35310 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35311 +/* { dg-options "-save-temps -O0" } */
35312 +/* { dg-add-options arm_neon } */
35313
35314 #include "arm_neon.h"
35315
35316 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgeu8.c b/gcc/testsuite/gcc.target/arm/neon/vcgeu8.c
35317 --- a/gcc/testsuite/gcc.target/arm/neon/vcgeu8.c 2007-07-25 14:28:31.000000000 +0200
35318 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgeu8.c 2010-01-25 09:50:29.315687027 +0100
35319 @@ -3,7 +3,8 @@
35320
35321 /* { dg-do assemble } */
35322 /* { dg-require-effective-target arm_neon_ok } */
35323 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35324 +/* { dg-options "-save-temps -O0" } */
35325 +/* { dg-add-options arm_neon } */
35326
35327 #include "arm_neon.h"
35328
35329 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtf32.c b/gcc/testsuite/gcc.target/arm/neon/vcgtf32.c
35330 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtf32.c 2007-07-25 14:28:31.000000000 +0200
35331 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtf32.c 2010-01-25 09:50:29.315687027 +0100
35332 @@ -3,7 +3,8 @@
35333
35334 /* { dg-do assemble } */
35335 /* { dg-require-effective-target arm_neon_ok } */
35336 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35337 +/* { dg-options "-save-temps -O0" } */
35338 +/* { dg-add-options arm_neon } */
35339
35340 #include "arm_neon.h"
35341
35342 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtQf32.c b/gcc/testsuite/gcc.target/arm/neon/vcgtQf32.c
35343 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtQf32.c 2007-07-25 14:28:31.000000000 +0200
35344 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtQf32.c 2010-01-25 09:50:29.315687027 +0100
35345 @@ -3,7 +3,8 @@
35346
35347 /* { dg-do assemble } */
35348 /* { dg-require-effective-target arm_neon_ok } */
35349 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35350 +/* { dg-options "-save-temps -O0" } */
35351 +/* { dg-add-options arm_neon } */
35352
35353 #include "arm_neon.h"
35354
35355 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtQs16.c b/gcc/testsuite/gcc.target/arm/neon/vcgtQs16.c
35356 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtQs16.c 2007-07-25 14:28:31.000000000 +0200
35357 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtQs16.c 2010-01-25 09:50:29.315687027 +0100
35358 @@ -3,7 +3,8 @@
35359
35360 /* { dg-do assemble } */
35361 /* { dg-require-effective-target arm_neon_ok } */
35362 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35363 +/* { dg-options "-save-temps -O0" } */
35364 +/* { dg-add-options arm_neon } */
35365
35366 #include "arm_neon.h"
35367
35368 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtQs32.c b/gcc/testsuite/gcc.target/arm/neon/vcgtQs32.c
35369 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtQs32.c 2007-07-25 14:28:31.000000000 +0200
35370 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtQs32.c 2010-01-25 09:50:29.315687027 +0100
35371 @@ -3,7 +3,8 @@
35372
35373 /* { dg-do assemble } */
35374 /* { dg-require-effective-target arm_neon_ok } */
35375 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35376 +/* { dg-options "-save-temps -O0" } */
35377 +/* { dg-add-options arm_neon } */
35378
35379 #include "arm_neon.h"
35380
35381 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtQs8.c b/gcc/testsuite/gcc.target/arm/neon/vcgtQs8.c
35382 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtQs8.c 2007-07-25 14:28:31.000000000 +0200
35383 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtQs8.c 2010-01-25 09:50:29.315687027 +0100
35384 @@ -3,7 +3,8 @@
35385
35386 /* { dg-do assemble } */
35387 /* { dg-require-effective-target arm_neon_ok } */
35388 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35389 +/* { dg-options "-save-temps -O0" } */
35390 +/* { dg-add-options arm_neon } */
35391
35392 #include "arm_neon.h"
35393
35394 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtQu16.c b/gcc/testsuite/gcc.target/arm/neon/vcgtQu16.c
35395 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtQu16.c 2007-07-25 14:28:31.000000000 +0200
35396 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtQu16.c 2010-01-25 09:50:29.315687027 +0100
35397 @@ -3,7 +3,8 @@
35398
35399 /* { dg-do assemble } */
35400 /* { dg-require-effective-target arm_neon_ok } */
35401 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35402 +/* { dg-options "-save-temps -O0" } */
35403 +/* { dg-add-options arm_neon } */
35404
35405 #include "arm_neon.h"
35406
35407 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtQu32.c b/gcc/testsuite/gcc.target/arm/neon/vcgtQu32.c
35408 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtQu32.c 2007-07-25 14:28:31.000000000 +0200
35409 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtQu32.c 2010-01-25 09:50:29.315687027 +0100
35410 @@ -3,7 +3,8 @@
35411
35412 /* { dg-do assemble } */
35413 /* { dg-require-effective-target arm_neon_ok } */
35414 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35415 +/* { dg-options "-save-temps -O0" } */
35416 +/* { dg-add-options arm_neon } */
35417
35418 #include "arm_neon.h"
35419
35420 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtQu8.c b/gcc/testsuite/gcc.target/arm/neon/vcgtQu8.c
35421 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtQu8.c 2007-07-25 14:28:31.000000000 +0200
35422 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtQu8.c 2010-01-25 09:50:29.315687027 +0100
35423 @@ -3,7 +3,8 @@
35424
35425 /* { dg-do assemble } */
35426 /* { dg-require-effective-target arm_neon_ok } */
35427 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35428 +/* { dg-options "-save-temps -O0" } */
35429 +/* { dg-add-options arm_neon } */
35430
35431 #include "arm_neon.h"
35432
35433 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgts16.c b/gcc/testsuite/gcc.target/arm/neon/vcgts16.c
35434 --- a/gcc/testsuite/gcc.target/arm/neon/vcgts16.c 2007-07-25 14:28:31.000000000 +0200
35435 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgts16.c 2010-01-25 09:50:29.315687027 +0100
35436 @@ -3,7 +3,8 @@
35437
35438 /* { dg-do assemble } */
35439 /* { dg-require-effective-target arm_neon_ok } */
35440 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35441 +/* { dg-options "-save-temps -O0" } */
35442 +/* { dg-add-options arm_neon } */
35443
35444 #include "arm_neon.h"
35445
35446 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgts32.c b/gcc/testsuite/gcc.target/arm/neon/vcgts32.c
35447 --- a/gcc/testsuite/gcc.target/arm/neon/vcgts32.c 2007-07-25 14:28:31.000000000 +0200
35448 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgts32.c 2010-01-25 09:50:29.315687027 +0100
35449 @@ -3,7 +3,8 @@
35450
35451 /* { dg-do assemble } */
35452 /* { dg-require-effective-target arm_neon_ok } */
35453 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35454 +/* { dg-options "-save-temps -O0" } */
35455 +/* { dg-add-options arm_neon } */
35456
35457 #include "arm_neon.h"
35458
35459 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgts8.c b/gcc/testsuite/gcc.target/arm/neon/vcgts8.c
35460 --- a/gcc/testsuite/gcc.target/arm/neon/vcgts8.c 2007-07-25 14:28:31.000000000 +0200
35461 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgts8.c 2010-01-25 09:50:29.315687027 +0100
35462 @@ -3,7 +3,8 @@
35463
35464 /* { dg-do assemble } */
35465 /* { dg-require-effective-target arm_neon_ok } */
35466 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35467 +/* { dg-options "-save-temps -O0" } */
35468 +/* { dg-add-options arm_neon } */
35469
35470 #include "arm_neon.h"
35471
35472 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtu16.c b/gcc/testsuite/gcc.target/arm/neon/vcgtu16.c
35473 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtu16.c 2007-07-25 14:28:31.000000000 +0200
35474 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtu16.c 2010-01-25 09:50:29.315687027 +0100
35475 @@ -3,7 +3,8 @@
35476
35477 /* { dg-do assemble } */
35478 /* { dg-require-effective-target arm_neon_ok } */
35479 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35480 +/* { dg-options "-save-temps -O0" } */
35481 +/* { dg-add-options arm_neon } */
35482
35483 #include "arm_neon.h"
35484
35485 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtu32.c b/gcc/testsuite/gcc.target/arm/neon/vcgtu32.c
35486 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtu32.c 2007-07-25 14:28:31.000000000 +0200
35487 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtu32.c 2010-01-25 09:50:29.315687027 +0100
35488 @@ -3,7 +3,8 @@
35489
35490 /* { dg-do assemble } */
35491 /* { dg-require-effective-target arm_neon_ok } */
35492 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35493 +/* { dg-options "-save-temps -O0" } */
35494 +/* { dg-add-options arm_neon } */
35495
35496 #include "arm_neon.h"
35497
35498 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcgtu8.c b/gcc/testsuite/gcc.target/arm/neon/vcgtu8.c
35499 --- a/gcc/testsuite/gcc.target/arm/neon/vcgtu8.c 2007-07-25 14:28:31.000000000 +0200
35500 +++ b/gcc/testsuite/gcc.target/arm/neon/vcgtu8.c 2010-01-25 09:50:29.315687027 +0100
35501 @@ -3,7 +3,8 @@
35502
35503 /* { dg-do assemble } */
35504 /* { dg-require-effective-target arm_neon_ok } */
35505 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35506 +/* { dg-options "-save-temps -O0" } */
35507 +/* { dg-add-options arm_neon } */
35508
35509 #include "arm_neon.h"
35510
35511 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclef32.c b/gcc/testsuite/gcc.target/arm/neon/vclef32.c
35512 --- a/gcc/testsuite/gcc.target/arm/neon/vclef32.c 2007-07-25 14:28:31.000000000 +0200
35513 +++ b/gcc/testsuite/gcc.target/arm/neon/vclef32.c 2010-01-25 09:50:29.315687027 +0100
35514 @@ -3,7 +3,8 @@
35515
35516 /* { dg-do assemble } */
35517 /* { dg-require-effective-target arm_neon_ok } */
35518 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35519 +/* { dg-options "-save-temps -O0" } */
35520 +/* { dg-add-options arm_neon } */
35521
35522 #include "arm_neon.h"
35523
35524 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleQf32.c b/gcc/testsuite/gcc.target/arm/neon/vcleQf32.c
35525 --- a/gcc/testsuite/gcc.target/arm/neon/vcleQf32.c 2007-07-25 14:28:31.000000000 +0200
35526 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleQf32.c 2010-01-25 09:50:29.315687027 +0100
35527 @@ -3,7 +3,8 @@
35528
35529 /* { dg-do assemble } */
35530 /* { dg-require-effective-target arm_neon_ok } */
35531 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35532 +/* { dg-options "-save-temps -O0" } */
35533 +/* { dg-add-options arm_neon } */
35534
35535 #include "arm_neon.h"
35536
35537 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleQs16.c b/gcc/testsuite/gcc.target/arm/neon/vcleQs16.c
35538 --- a/gcc/testsuite/gcc.target/arm/neon/vcleQs16.c 2007-07-25 14:28:31.000000000 +0200
35539 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleQs16.c 2010-01-25 09:50:29.315687027 +0100
35540 @@ -3,7 +3,8 @@
35541
35542 /* { dg-do assemble } */
35543 /* { dg-require-effective-target arm_neon_ok } */
35544 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35545 +/* { dg-options "-save-temps -O0" } */
35546 +/* { dg-add-options arm_neon } */
35547
35548 #include "arm_neon.h"
35549
35550 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleQs32.c b/gcc/testsuite/gcc.target/arm/neon/vcleQs32.c
35551 --- a/gcc/testsuite/gcc.target/arm/neon/vcleQs32.c 2007-07-25 14:28:31.000000000 +0200
35552 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleQs32.c 2010-01-25 09:50:29.315687027 +0100
35553 @@ -3,7 +3,8 @@
35554
35555 /* { dg-do assemble } */
35556 /* { dg-require-effective-target arm_neon_ok } */
35557 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35558 +/* { dg-options "-save-temps -O0" } */
35559 +/* { dg-add-options arm_neon } */
35560
35561 #include "arm_neon.h"
35562
35563 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleQs8.c b/gcc/testsuite/gcc.target/arm/neon/vcleQs8.c
35564 --- a/gcc/testsuite/gcc.target/arm/neon/vcleQs8.c 2007-07-25 14:28:31.000000000 +0200
35565 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleQs8.c 2010-01-25 09:50:29.315687027 +0100
35566 @@ -3,7 +3,8 @@
35567
35568 /* { dg-do assemble } */
35569 /* { dg-require-effective-target arm_neon_ok } */
35570 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35571 +/* { dg-options "-save-temps -O0" } */
35572 +/* { dg-add-options arm_neon } */
35573
35574 #include "arm_neon.h"
35575
35576 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleQu16.c b/gcc/testsuite/gcc.target/arm/neon/vcleQu16.c
35577 --- a/gcc/testsuite/gcc.target/arm/neon/vcleQu16.c 2007-07-25 14:28:31.000000000 +0200
35578 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleQu16.c 2010-01-25 09:50:29.315687027 +0100
35579 @@ -3,7 +3,8 @@
35580
35581 /* { dg-do assemble } */
35582 /* { dg-require-effective-target arm_neon_ok } */
35583 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35584 +/* { dg-options "-save-temps -O0" } */
35585 +/* { dg-add-options arm_neon } */
35586
35587 #include "arm_neon.h"
35588
35589 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleQu32.c b/gcc/testsuite/gcc.target/arm/neon/vcleQu32.c
35590 --- a/gcc/testsuite/gcc.target/arm/neon/vcleQu32.c 2007-07-25 14:28:31.000000000 +0200
35591 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleQu32.c 2010-01-25 09:50:29.315687027 +0100
35592 @@ -3,7 +3,8 @@
35593
35594 /* { dg-do assemble } */
35595 /* { dg-require-effective-target arm_neon_ok } */
35596 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35597 +/* { dg-options "-save-temps -O0" } */
35598 +/* { dg-add-options arm_neon } */
35599
35600 #include "arm_neon.h"
35601
35602 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleQu8.c b/gcc/testsuite/gcc.target/arm/neon/vcleQu8.c
35603 --- a/gcc/testsuite/gcc.target/arm/neon/vcleQu8.c 2007-07-25 14:28:31.000000000 +0200
35604 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleQu8.c 2010-01-25 09:50:29.315687027 +0100
35605 @@ -3,7 +3,8 @@
35606
35607 /* { dg-do assemble } */
35608 /* { dg-require-effective-target arm_neon_ok } */
35609 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35610 +/* { dg-options "-save-temps -O0" } */
35611 +/* { dg-add-options arm_neon } */
35612
35613 #include "arm_neon.h"
35614
35615 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcles16.c b/gcc/testsuite/gcc.target/arm/neon/vcles16.c
35616 --- a/gcc/testsuite/gcc.target/arm/neon/vcles16.c 2007-07-25 14:28:31.000000000 +0200
35617 +++ b/gcc/testsuite/gcc.target/arm/neon/vcles16.c 2010-01-25 09:50:29.315687027 +0100
35618 @@ -3,7 +3,8 @@
35619
35620 /* { dg-do assemble } */
35621 /* { dg-require-effective-target arm_neon_ok } */
35622 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35623 +/* { dg-options "-save-temps -O0" } */
35624 +/* { dg-add-options arm_neon } */
35625
35626 #include "arm_neon.h"
35627
35628 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcles32.c b/gcc/testsuite/gcc.target/arm/neon/vcles32.c
35629 --- a/gcc/testsuite/gcc.target/arm/neon/vcles32.c 2007-07-25 14:28:31.000000000 +0200
35630 +++ b/gcc/testsuite/gcc.target/arm/neon/vcles32.c 2010-01-25 09:50:29.315687027 +0100
35631 @@ -3,7 +3,8 @@
35632
35633 /* { dg-do assemble } */
35634 /* { dg-require-effective-target arm_neon_ok } */
35635 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35636 +/* { dg-options "-save-temps -O0" } */
35637 +/* { dg-add-options arm_neon } */
35638
35639 #include "arm_neon.h"
35640
35641 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcles8.c b/gcc/testsuite/gcc.target/arm/neon/vcles8.c
35642 --- a/gcc/testsuite/gcc.target/arm/neon/vcles8.c 2007-07-25 14:28:31.000000000 +0200
35643 +++ b/gcc/testsuite/gcc.target/arm/neon/vcles8.c 2010-01-25 09:50:29.315687027 +0100
35644 @@ -3,7 +3,8 @@
35645
35646 /* { dg-do assemble } */
35647 /* { dg-require-effective-target arm_neon_ok } */
35648 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35649 +/* { dg-options "-save-temps -O0" } */
35650 +/* { dg-add-options arm_neon } */
35651
35652 #include "arm_neon.h"
35653
35654 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleu16.c b/gcc/testsuite/gcc.target/arm/neon/vcleu16.c
35655 --- a/gcc/testsuite/gcc.target/arm/neon/vcleu16.c 2007-07-25 14:28:31.000000000 +0200
35656 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleu16.c 2010-01-25 09:50:29.315687027 +0100
35657 @@ -3,7 +3,8 @@
35658
35659 /* { dg-do assemble } */
35660 /* { dg-require-effective-target arm_neon_ok } */
35661 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35662 +/* { dg-options "-save-temps -O0" } */
35663 +/* { dg-add-options arm_neon } */
35664
35665 #include "arm_neon.h"
35666
35667 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleu32.c b/gcc/testsuite/gcc.target/arm/neon/vcleu32.c
35668 --- a/gcc/testsuite/gcc.target/arm/neon/vcleu32.c 2007-07-25 14:28:31.000000000 +0200
35669 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleu32.c 2010-01-25 09:50:29.315687027 +0100
35670 @@ -3,7 +3,8 @@
35671
35672 /* { dg-do assemble } */
35673 /* { dg-require-effective-target arm_neon_ok } */
35674 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35675 +/* { dg-options "-save-temps -O0" } */
35676 +/* { dg-add-options arm_neon } */
35677
35678 #include "arm_neon.h"
35679
35680 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcleu8.c b/gcc/testsuite/gcc.target/arm/neon/vcleu8.c
35681 --- a/gcc/testsuite/gcc.target/arm/neon/vcleu8.c 2007-07-25 14:28:31.000000000 +0200
35682 +++ b/gcc/testsuite/gcc.target/arm/neon/vcleu8.c 2010-01-25 09:50:29.315687027 +0100
35683 @@ -3,7 +3,8 @@
35684
35685 /* { dg-do assemble } */
35686 /* { dg-require-effective-target arm_neon_ok } */
35687 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35688 +/* { dg-options "-save-temps -O0" } */
35689 +/* { dg-add-options arm_neon } */
35690
35691 #include "arm_neon.h"
35692
35693 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclsQs16.c b/gcc/testsuite/gcc.target/arm/neon/vclsQs16.c
35694 --- a/gcc/testsuite/gcc.target/arm/neon/vclsQs16.c 2007-07-25 14:28:31.000000000 +0200
35695 +++ b/gcc/testsuite/gcc.target/arm/neon/vclsQs16.c 2010-01-25 09:50:29.315687027 +0100
35696 @@ -3,7 +3,8 @@
35697
35698 /* { dg-do assemble } */
35699 /* { dg-require-effective-target arm_neon_ok } */
35700 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35701 +/* { dg-options "-save-temps -O0" } */
35702 +/* { dg-add-options arm_neon } */
35703
35704 #include "arm_neon.h"
35705
35706 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclsQs32.c b/gcc/testsuite/gcc.target/arm/neon/vclsQs32.c
35707 --- a/gcc/testsuite/gcc.target/arm/neon/vclsQs32.c 2007-07-25 14:28:31.000000000 +0200
35708 +++ b/gcc/testsuite/gcc.target/arm/neon/vclsQs32.c 2010-01-25 09:50:29.315687027 +0100
35709 @@ -3,7 +3,8 @@
35710
35711 /* { dg-do assemble } */
35712 /* { dg-require-effective-target arm_neon_ok } */
35713 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35714 +/* { dg-options "-save-temps -O0" } */
35715 +/* { dg-add-options arm_neon } */
35716
35717 #include "arm_neon.h"
35718
35719 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclsQs8.c b/gcc/testsuite/gcc.target/arm/neon/vclsQs8.c
35720 --- a/gcc/testsuite/gcc.target/arm/neon/vclsQs8.c 2007-07-25 14:28:31.000000000 +0200
35721 +++ b/gcc/testsuite/gcc.target/arm/neon/vclsQs8.c 2010-01-25 09:50:29.315687027 +0100
35722 @@ -3,7 +3,8 @@
35723
35724 /* { dg-do assemble } */
35725 /* { dg-require-effective-target arm_neon_ok } */
35726 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35727 +/* { dg-options "-save-temps -O0" } */
35728 +/* { dg-add-options arm_neon } */
35729
35730 #include "arm_neon.h"
35731
35732 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclss16.c b/gcc/testsuite/gcc.target/arm/neon/vclss16.c
35733 --- a/gcc/testsuite/gcc.target/arm/neon/vclss16.c 2007-07-25 14:28:31.000000000 +0200
35734 +++ b/gcc/testsuite/gcc.target/arm/neon/vclss16.c 2010-01-25 09:50:29.315687027 +0100
35735 @@ -3,7 +3,8 @@
35736
35737 /* { dg-do assemble } */
35738 /* { dg-require-effective-target arm_neon_ok } */
35739 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35740 +/* { dg-options "-save-temps -O0" } */
35741 +/* { dg-add-options arm_neon } */
35742
35743 #include "arm_neon.h"
35744
35745 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclss32.c b/gcc/testsuite/gcc.target/arm/neon/vclss32.c
35746 --- a/gcc/testsuite/gcc.target/arm/neon/vclss32.c 2007-07-25 14:28:31.000000000 +0200
35747 +++ b/gcc/testsuite/gcc.target/arm/neon/vclss32.c 2010-01-25 09:50:29.315687027 +0100
35748 @@ -3,7 +3,8 @@
35749
35750 /* { dg-do assemble } */
35751 /* { dg-require-effective-target arm_neon_ok } */
35752 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35753 +/* { dg-options "-save-temps -O0" } */
35754 +/* { dg-add-options arm_neon } */
35755
35756 #include "arm_neon.h"
35757
35758 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclss8.c b/gcc/testsuite/gcc.target/arm/neon/vclss8.c
35759 --- a/gcc/testsuite/gcc.target/arm/neon/vclss8.c 2007-07-25 14:28:31.000000000 +0200
35760 +++ b/gcc/testsuite/gcc.target/arm/neon/vclss8.c 2010-01-25 09:50:29.315687027 +0100
35761 @@ -3,7 +3,8 @@
35762
35763 /* { dg-do assemble } */
35764 /* { dg-require-effective-target arm_neon_ok } */
35765 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35766 +/* { dg-options "-save-temps -O0" } */
35767 +/* { dg-add-options arm_neon } */
35768
35769 #include "arm_neon.h"
35770
35771 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltf32.c b/gcc/testsuite/gcc.target/arm/neon/vcltf32.c
35772 --- a/gcc/testsuite/gcc.target/arm/neon/vcltf32.c 2007-07-25 14:28:31.000000000 +0200
35773 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltf32.c 2010-01-25 09:50:29.315687027 +0100
35774 @@ -3,7 +3,8 @@
35775
35776 /* { dg-do assemble } */
35777 /* { dg-require-effective-target arm_neon_ok } */
35778 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35779 +/* { dg-options "-save-temps -O0" } */
35780 +/* { dg-add-options arm_neon } */
35781
35782 #include "arm_neon.h"
35783
35784 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltQf32.c b/gcc/testsuite/gcc.target/arm/neon/vcltQf32.c
35785 --- a/gcc/testsuite/gcc.target/arm/neon/vcltQf32.c 2007-07-25 14:28:31.000000000 +0200
35786 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltQf32.c 2010-01-25 09:50:29.315687027 +0100
35787 @@ -3,7 +3,8 @@
35788
35789 /* { dg-do assemble } */
35790 /* { dg-require-effective-target arm_neon_ok } */
35791 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35792 +/* { dg-options "-save-temps -O0" } */
35793 +/* { dg-add-options arm_neon } */
35794
35795 #include "arm_neon.h"
35796
35797 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltQs16.c b/gcc/testsuite/gcc.target/arm/neon/vcltQs16.c
35798 --- a/gcc/testsuite/gcc.target/arm/neon/vcltQs16.c 2007-07-25 14:28:31.000000000 +0200
35799 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltQs16.c 2010-01-25 09:50:29.315687027 +0100
35800 @@ -3,7 +3,8 @@
35801
35802 /* { dg-do assemble } */
35803 /* { dg-require-effective-target arm_neon_ok } */
35804 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35805 +/* { dg-options "-save-temps -O0" } */
35806 +/* { dg-add-options arm_neon } */
35807
35808 #include "arm_neon.h"
35809
35810 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltQs32.c b/gcc/testsuite/gcc.target/arm/neon/vcltQs32.c
35811 --- a/gcc/testsuite/gcc.target/arm/neon/vcltQs32.c 2007-07-25 14:28:31.000000000 +0200
35812 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltQs32.c 2010-01-25 09:50:29.315687027 +0100
35813 @@ -3,7 +3,8 @@
35814
35815 /* { dg-do assemble } */
35816 /* { dg-require-effective-target arm_neon_ok } */
35817 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35818 +/* { dg-options "-save-temps -O0" } */
35819 +/* { dg-add-options arm_neon } */
35820
35821 #include "arm_neon.h"
35822
35823 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltQs8.c b/gcc/testsuite/gcc.target/arm/neon/vcltQs8.c
35824 --- a/gcc/testsuite/gcc.target/arm/neon/vcltQs8.c 2007-07-25 14:28:31.000000000 +0200
35825 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltQs8.c 2010-01-25 09:50:29.335686357 +0100
35826 @@ -3,7 +3,8 @@
35827
35828 /* { dg-do assemble } */
35829 /* { dg-require-effective-target arm_neon_ok } */
35830 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35831 +/* { dg-options "-save-temps -O0" } */
35832 +/* { dg-add-options arm_neon } */
35833
35834 #include "arm_neon.h"
35835
35836 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltQu16.c b/gcc/testsuite/gcc.target/arm/neon/vcltQu16.c
35837 --- a/gcc/testsuite/gcc.target/arm/neon/vcltQu16.c 2007-07-25 14:28:31.000000000 +0200
35838 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltQu16.c 2010-01-25 09:50:29.335686357 +0100
35839 @@ -3,7 +3,8 @@
35840
35841 /* { dg-do assemble } */
35842 /* { dg-require-effective-target arm_neon_ok } */
35843 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35844 +/* { dg-options "-save-temps -O0" } */
35845 +/* { dg-add-options arm_neon } */
35846
35847 #include "arm_neon.h"
35848
35849 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltQu32.c b/gcc/testsuite/gcc.target/arm/neon/vcltQu32.c
35850 --- a/gcc/testsuite/gcc.target/arm/neon/vcltQu32.c 2007-07-25 14:28:31.000000000 +0200
35851 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltQu32.c 2010-01-25 09:50:29.335686357 +0100
35852 @@ -3,7 +3,8 @@
35853
35854 /* { dg-do assemble } */
35855 /* { dg-require-effective-target arm_neon_ok } */
35856 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35857 +/* { dg-options "-save-temps -O0" } */
35858 +/* { dg-add-options arm_neon } */
35859
35860 #include "arm_neon.h"
35861
35862 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltQu8.c b/gcc/testsuite/gcc.target/arm/neon/vcltQu8.c
35863 --- a/gcc/testsuite/gcc.target/arm/neon/vcltQu8.c 2007-07-25 14:28:31.000000000 +0200
35864 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltQu8.c 2010-01-25 09:50:29.335686357 +0100
35865 @@ -3,7 +3,8 @@
35866
35867 /* { dg-do assemble } */
35868 /* { dg-require-effective-target arm_neon_ok } */
35869 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35870 +/* { dg-options "-save-temps -O0" } */
35871 +/* { dg-add-options arm_neon } */
35872
35873 #include "arm_neon.h"
35874
35875 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclts16.c b/gcc/testsuite/gcc.target/arm/neon/vclts16.c
35876 --- a/gcc/testsuite/gcc.target/arm/neon/vclts16.c 2007-07-25 14:28:31.000000000 +0200
35877 +++ b/gcc/testsuite/gcc.target/arm/neon/vclts16.c 2010-01-25 09:50:29.335686357 +0100
35878 @@ -3,7 +3,8 @@
35879
35880 /* { dg-do assemble } */
35881 /* { dg-require-effective-target arm_neon_ok } */
35882 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35883 +/* { dg-options "-save-temps -O0" } */
35884 +/* { dg-add-options arm_neon } */
35885
35886 #include "arm_neon.h"
35887
35888 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclts32.c b/gcc/testsuite/gcc.target/arm/neon/vclts32.c
35889 --- a/gcc/testsuite/gcc.target/arm/neon/vclts32.c 2007-07-25 14:28:31.000000000 +0200
35890 +++ b/gcc/testsuite/gcc.target/arm/neon/vclts32.c 2010-01-25 09:50:29.335686357 +0100
35891 @@ -3,7 +3,8 @@
35892
35893 /* { dg-do assemble } */
35894 /* { dg-require-effective-target arm_neon_ok } */
35895 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35896 +/* { dg-options "-save-temps -O0" } */
35897 +/* { dg-add-options arm_neon } */
35898
35899 #include "arm_neon.h"
35900
35901 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclts8.c b/gcc/testsuite/gcc.target/arm/neon/vclts8.c
35902 --- a/gcc/testsuite/gcc.target/arm/neon/vclts8.c 2007-07-25 14:28:31.000000000 +0200
35903 +++ b/gcc/testsuite/gcc.target/arm/neon/vclts8.c 2010-01-25 09:50:29.335686357 +0100
35904 @@ -3,7 +3,8 @@
35905
35906 /* { dg-do assemble } */
35907 /* { dg-require-effective-target arm_neon_ok } */
35908 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35909 +/* { dg-options "-save-temps -O0" } */
35910 +/* { dg-add-options arm_neon } */
35911
35912 #include "arm_neon.h"
35913
35914 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltu16.c b/gcc/testsuite/gcc.target/arm/neon/vcltu16.c
35915 --- a/gcc/testsuite/gcc.target/arm/neon/vcltu16.c 2007-07-25 14:28:31.000000000 +0200
35916 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltu16.c 2010-01-25 09:50:29.335686357 +0100
35917 @@ -3,7 +3,8 @@
35918
35919 /* { dg-do assemble } */
35920 /* { dg-require-effective-target arm_neon_ok } */
35921 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35922 +/* { dg-options "-save-temps -O0" } */
35923 +/* { dg-add-options arm_neon } */
35924
35925 #include "arm_neon.h"
35926
35927 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltu32.c b/gcc/testsuite/gcc.target/arm/neon/vcltu32.c
35928 --- a/gcc/testsuite/gcc.target/arm/neon/vcltu32.c 2007-07-25 14:28:31.000000000 +0200
35929 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltu32.c 2010-01-25 09:50:29.335686357 +0100
35930 @@ -3,7 +3,8 @@
35931
35932 /* { dg-do assemble } */
35933 /* { dg-require-effective-target arm_neon_ok } */
35934 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35935 +/* { dg-options "-save-temps -O0" } */
35936 +/* { dg-add-options arm_neon } */
35937
35938 #include "arm_neon.h"
35939
35940 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcltu8.c b/gcc/testsuite/gcc.target/arm/neon/vcltu8.c
35941 --- a/gcc/testsuite/gcc.target/arm/neon/vcltu8.c 2007-07-25 14:28:31.000000000 +0200
35942 +++ b/gcc/testsuite/gcc.target/arm/neon/vcltu8.c 2010-01-25 09:50:29.335686357 +0100
35943 @@ -3,7 +3,8 @@
35944
35945 /* { dg-do assemble } */
35946 /* { dg-require-effective-target arm_neon_ok } */
35947 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35948 +/* { dg-options "-save-temps -O0" } */
35949 +/* { dg-add-options arm_neon } */
35950
35951 #include "arm_neon.h"
35952
35953 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzQs16.c b/gcc/testsuite/gcc.target/arm/neon/vclzQs16.c
35954 --- a/gcc/testsuite/gcc.target/arm/neon/vclzQs16.c 2007-07-25 14:28:31.000000000 +0200
35955 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzQs16.c 2010-01-25 09:50:29.335686357 +0100
35956 @@ -3,7 +3,8 @@
35957
35958 /* { dg-do assemble } */
35959 /* { dg-require-effective-target arm_neon_ok } */
35960 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35961 +/* { dg-options "-save-temps -O0" } */
35962 +/* { dg-add-options arm_neon } */
35963
35964 #include "arm_neon.h"
35965
35966 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzQs32.c b/gcc/testsuite/gcc.target/arm/neon/vclzQs32.c
35967 --- a/gcc/testsuite/gcc.target/arm/neon/vclzQs32.c 2007-07-25 14:28:31.000000000 +0200
35968 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzQs32.c 2010-01-25 09:50:29.335686357 +0100
35969 @@ -3,7 +3,8 @@
35970
35971 /* { dg-do assemble } */
35972 /* { dg-require-effective-target arm_neon_ok } */
35973 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35974 +/* { dg-options "-save-temps -O0" } */
35975 +/* { dg-add-options arm_neon } */
35976
35977 #include "arm_neon.h"
35978
35979 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzQs8.c b/gcc/testsuite/gcc.target/arm/neon/vclzQs8.c
35980 --- a/gcc/testsuite/gcc.target/arm/neon/vclzQs8.c 2007-07-25 14:28:31.000000000 +0200
35981 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzQs8.c 2010-01-25 09:50:29.335686357 +0100
35982 @@ -3,7 +3,8 @@
35983
35984 /* { dg-do assemble } */
35985 /* { dg-require-effective-target arm_neon_ok } */
35986 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
35987 +/* { dg-options "-save-temps -O0" } */
35988 +/* { dg-add-options arm_neon } */
35989
35990 #include "arm_neon.h"
35991
35992 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzQu16.c b/gcc/testsuite/gcc.target/arm/neon/vclzQu16.c
35993 --- a/gcc/testsuite/gcc.target/arm/neon/vclzQu16.c 2007-07-25 14:28:31.000000000 +0200
35994 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzQu16.c 2010-01-25 09:50:29.335686357 +0100
35995 @@ -3,7 +3,8 @@
35996
35997 /* { dg-do assemble } */
35998 /* { dg-require-effective-target arm_neon_ok } */
35999 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36000 +/* { dg-options "-save-temps -O0" } */
36001 +/* { dg-add-options arm_neon } */
36002
36003 #include "arm_neon.h"
36004
36005 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzQu32.c b/gcc/testsuite/gcc.target/arm/neon/vclzQu32.c
36006 --- a/gcc/testsuite/gcc.target/arm/neon/vclzQu32.c 2007-07-25 14:28:31.000000000 +0200
36007 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzQu32.c 2010-01-25 09:50:29.335686357 +0100
36008 @@ -3,7 +3,8 @@
36009
36010 /* { dg-do assemble } */
36011 /* { dg-require-effective-target arm_neon_ok } */
36012 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36013 +/* { dg-options "-save-temps -O0" } */
36014 +/* { dg-add-options arm_neon } */
36015
36016 #include "arm_neon.h"
36017
36018 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzQu8.c b/gcc/testsuite/gcc.target/arm/neon/vclzQu8.c
36019 --- a/gcc/testsuite/gcc.target/arm/neon/vclzQu8.c 2007-07-25 14:28:31.000000000 +0200
36020 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzQu8.c 2010-01-25 09:50:29.335686357 +0100
36021 @@ -3,7 +3,8 @@
36022
36023 /* { dg-do assemble } */
36024 /* { dg-require-effective-target arm_neon_ok } */
36025 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36026 +/* { dg-options "-save-temps -O0" } */
36027 +/* { dg-add-options arm_neon } */
36028
36029 #include "arm_neon.h"
36030
36031 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzs16.c b/gcc/testsuite/gcc.target/arm/neon/vclzs16.c
36032 --- a/gcc/testsuite/gcc.target/arm/neon/vclzs16.c 2007-07-25 14:28:31.000000000 +0200
36033 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzs16.c 2010-01-25 09:50:29.335686357 +0100
36034 @@ -3,7 +3,8 @@
36035
36036 /* { dg-do assemble } */
36037 /* { dg-require-effective-target arm_neon_ok } */
36038 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36039 +/* { dg-options "-save-temps -O0" } */
36040 +/* { dg-add-options arm_neon } */
36041
36042 #include "arm_neon.h"
36043
36044 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzs32.c b/gcc/testsuite/gcc.target/arm/neon/vclzs32.c
36045 --- a/gcc/testsuite/gcc.target/arm/neon/vclzs32.c 2007-07-25 14:28:31.000000000 +0200
36046 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzs32.c 2010-01-25 09:50:29.335686357 +0100
36047 @@ -3,7 +3,8 @@
36048
36049 /* { dg-do assemble } */
36050 /* { dg-require-effective-target arm_neon_ok } */
36051 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36052 +/* { dg-options "-save-temps -O0" } */
36053 +/* { dg-add-options arm_neon } */
36054
36055 #include "arm_neon.h"
36056
36057 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzs8.c b/gcc/testsuite/gcc.target/arm/neon/vclzs8.c
36058 --- a/gcc/testsuite/gcc.target/arm/neon/vclzs8.c 2007-07-25 14:28:31.000000000 +0200
36059 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzs8.c 2010-01-25 09:50:29.335686357 +0100
36060 @@ -3,7 +3,8 @@
36061
36062 /* { dg-do assemble } */
36063 /* { dg-require-effective-target arm_neon_ok } */
36064 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36065 +/* { dg-options "-save-temps -O0" } */
36066 +/* { dg-add-options arm_neon } */
36067
36068 #include "arm_neon.h"
36069
36070 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzu16.c b/gcc/testsuite/gcc.target/arm/neon/vclzu16.c
36071 --- a/gcc/testsuite/gcc.target/arm/neon/vclzu16.c 2007-07-25 14:28:31.000000000 +0200
36072 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzu16.c 2010-01-25 09:50:29.335686357 +0100
36073 @@ -3,7 +3,8 @@
36074
36075 /* { dg-do assemble } */
36076 /* { dg-require-effective-target arm_neon_ok } */
36077 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36078 +/* { dg-options "-save-temps -O0" } */
36079 +/* { dg-add-options arm_neon } */
36080
36081 #include "arm_neon.h"
36082
36083 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzu32.c b/gcc/testsuite/gcc.target/arm/neon/vclzu32.c
36084 --- a/gcc/testsuite/gcc.target/arm/neon/vclzu32.c 2007-07-25 14:28:31.000000000 +0200
36085 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzu32.c 2010-01-25 09:50:29.335686357 +0100
36086 @@ -3,7 +3,8 @@
36087
36088 /* { dg-do assemble } */
36089 /* { dg-require-effective-target arm_neon_ok } */
36090 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36091 +/* { dg-options "-save-temps -O0" } */
36092 +/* { dg-add-options arm_neon } */
36093
36094 #include "arm_neon.h"
36095
36096 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vclzu8.c b/gcc/testsuite/gcc.target/arm/neon/vclzu8.c
36097 --- a/gcc/testsuite/gcc.target/arm/neon/vclzu8.c 2007-07-25 14:28:31.000000000 +0200
36098 +++ b/gcc/testsuite/gcc.target/arm/neon/vclzu8.c 2010-01-25 09:50:29.335686357 +0100
36099 @@ -3,7 +3,8 @@
36100
36101 /* { dg-do assemble } */
36102 /* { dg-require-effective-target arm_neon_ok } */
36103 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36104 +/* { dg-options "-save-temps -O0" } */
36105 +/* { dg-add-options arm_neon } */
36106
36107 #include "arm_neon.h"
36108
36109 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcntp8.c b/gcc/testsuite/gcc.target/arm/neon/vcntp8.c
36110 --- a/gcc/testsuite/gcc.target/arm/neon/vcntp8.c 2007-07-25 14:28:31.000000000 +0200
36111 +++ b/gcc/testsuite/gcc.target/arm/neon/vcntp8.c 2010-01-25 09:50:29.335686357 +0100
36112 @@ -3,7 +3,8 @@
36113
36114 /* { dg-do assemble } */
36115 /* { dg-require-effective-target arm_neon_ok } */
36116 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36117 +/* { dg-options "-save-temps -O0" } */
36118 +/* { dg-add-options arm_neon } */
36119
36120 #include "arm_neon.h"
36121
36122 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcntQp8.c b/gcc/testsuite/gcc.target/arm/neon/vcntQp8.c
36123 --- a/gcc/testsuite/gcc.target/arm/neon/vcntQp8.c 2007-07-25 14:28:31.000000000 +0200
36124 +++ b/gcc/testsuite/gcc.target/arm/neon/vcntQp8.c 2010-01-25 09:50:29.335686357 +0100
36125 @@ -3,7 +3,8 @@
36126
36127 /* { dg-do assemble } */
36128 /* { dg-require-effective-target arm_neon_ok } */
36129 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36130 +/* { dg-options "-save-temps -O0" } */
36131 +/* { dg-add-options arm_neon } */
36132
36133 #include "arm_neon.h"
36134
36135 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcntQs8.c b/gcc/testsuite/gcc.target/arm/neon/vcntQs8.c
36136 --- a/gcc/testsuite/gcc.target/arm/neon/vcntQs8.c 2007-07-25 14:28:31.000000000 +0200
36137 +++ b/gcc/testsuite/gcc.target/arm/neon/vcntQs8.c 2010-01-25 09:50:29.345686441 +0100
36138 @@ -3,7 +3,8 @@
36139
36140 /* { dg-do assemble } */
36141 /* { dg-require-effective-target arm_neon_ok } */
36142 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36143 +/* { dg-options "-save-temps -O0" } */
36144 +/* { dg-add-options arm_neon } */
36145
36146 #include "arm_neon.h"
36147
36148 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcntQu8.c b/gcc/testsuite/gcc.target/arm/neon/vcntQu8.c
36149 --- a/gcc/testsuite/gcc.target/arm/neon/vcntQu8.c 2007-07-25 14:28:31.000000000 +0200
36150 +++ b/gcc/testsuite/gcc.target/arm/neon/vcntQu8.c 2010-01-25 09:50:29.345686441 +0100
36151 @@ -3,7 +3,8 @@
36152
36153 /* { dg-do assemble } */
36154 /* { dg-require-effective-target arm_neon_ok } */
36155 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36156 +/* { dg-options "-save-temps -O0" } */
36157 +/* { dg-add-options arm_neon } */
36158
36159 #include "arm_neon.h"
36160
36161 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcnts8.c b/gcc/testsuite/gcc.target/arm/neon/vcnts8.c
36162 --- a/gcc/testsuite/gcc.target/arm/neon/vcnts8.c 2007-07-25 14:28:31.000000000 +0200
36163 +++ b/gcc/testsuite/gcc.target/arm/neon/vcnts8.c 2010-01-25 09:50:29.345686441 +0100
36164 @@ -3,7 +3,8 @@
36165
36166 /* { dg-do assemble } */
36167 /* { dg-require-effective-target arm_neon_ok } */
36168 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36169 +/* { dg-options "-save-temps -O0" } */
36170 +/* { dg-add-options arm_neon } */
36171
36172 #include "arm_neon.h"
36173
36174 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcntu8.c b/gcc/testsuite/gcc.target/arm/neon/vcntu8.c
36175 --- a/gcc/testsuite/gcc.target/arm/neon/vcntu8.c 2007-07-25 14:28:31.000000000 +0200
36176 +++ b/gcc/testsuite/gcc.target/arm/neon/vcntu8.c 2010-01-25 09:50:29.345686441 +0100
36177 @@ -3,7 +3,8 @@
36178
36179 /* { dg-do assemble } */
36180 /* { dg-require-effective-target arm_neon_ok } */
36181 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36182 +/* { dg-options "-save-temps -O0" } */
36183 +/* { dg-add-options arm_neon } */
36184
36185 #include "arm_neon.h"
36186
36187 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombinef32.c b/gcc/testsuite/gcc.target/arm/neon/vcombinef32.c
36188 --- a/gcc/testsuite/gcc.target/arm/neon/vcombinef32.c 2007-07-25 14:28:31.000000000 +0200
36189 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombinef32.c 2010-01-25 09:50:29.345686441 +0100
36190 @@ -3,7 +3,8 @@
36191
36192 /* { dg-do assemble } */
36193 /* { dg-require-effective-target arm_neon_ok } */
36194 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36195 +/* { dg-options "-save-temps -O0" } */
36196 +/* { dg-add-options arm_neon } */
36197
36198 #include "arm_neon.h"
36199
36200 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombinep16.c b/gcc/testsuite/gcc.target/arm/neon/vcombinep16.c
36201 --- a/gcc/testsuite/gcc.target/arm/neon/vcombinep16.c 2007-07-25 14:28:31.000000000 +0200
36202 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombinep16.c 2010-01-25 09:50:29.345686441 +0100
36203 @@ -3,7 +3,8 @@
36204
36205 /* { dg-do assemble } */
36206 /* { dg-require-effective-target arm_neon_ok } */
36207 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36208 +/* { dg-options "-save-temps -O0" } */
36209 +/* { dg-add-options arm_neon } */
36210
36211 #include "arm_neon.h"
36212
36213 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombinep8.c b/gcc/testsuite/gcc.target/arm/neon/vcombinep8.c
36214 --- a/gcc/testsuite/gcc.target/arm/neon/vcombinep8.c 2007-07-25 14:28:31.000000000 +0200
36215 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombinep8.c 2010-01-25 09:50:29.345686441 +0100
36216 @@ -3,7 +3,8 @@
36217
36218 /* { dg-do assemble } */
36219 /* { dg-require-effective-target arm_neon_ok } */
36220 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36221 +/* { dg-options "-save-temps -O0" } */
36222 +/* { dg-add-options arm_neon } */
36223
36224 #include "arm_neon.h"
36225
36226 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombines16.c b/gcc/testsuite/gcc.target/arm/neon/vcombines16.c
36227 --- a/gcc/testsuite/gcc.target/arm/neon/vcombines16.c 2007-07-25 14:28:31.000000000 +0200
36228 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombines16.c 2010-01-25 09:50:29.345686441 +0100
36229 @@ -3,7 +3,8 @@
36230
36231 /* { dg-do assemble } */
36232 /* { dg-require-effective-target arm_neon_ok } */
36233 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36234 +/* { dg-options "-save-temps -O0" } */
36235 +/* { dg-add-options arm_neon } */
36236
36237 #include "arm_neon.h"
36238
36239 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombines32.c b/gcc/testsuite/gcc.target/arm/neon/vcombines32.c
36240 --- a/gcc/testsuite/gcc.target/arm/neon/vcombines32.c 2007-07-25 14:28:31.000000000 +0200
36241 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombines32.c 2010-01-25 09:50:29.345686441 +0100
36242 @@ -3,7 +3,8 @@
36243
36244 /* { dg-do assemble } */
36245 /* { dg-require-effective-target arm_neon_ok } */
36246 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36247 +/* { dg-options "-save-temps -O0" } */
36248 +/* { dg-add-options arm_neon } */
36249
36250 #include "arm_neon.h"
36251
36252 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombines64.c b/gcc/testsuite/gcc.target/arm/neon/vcombines64.c
36253 --- a/gcc/testsuite/gcc.target/arm/neon/vcombines64.c 2007-07-25 14:28:31.000000000 +0200
36254 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombines64.c 2010-01-25 09:50:29.345686441 +0100
36255 @@ -3,7 +3,8 @@
36256
36257 /* { dg-do assemble } */
36258 /* { dg-require-effective-target arm_neon_ok } */
36259 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36260 +/* { dg-options "-save-temps -O0" } */
36261 +/* { dg-add-options arm_neon } */
36262
36263 #include "arm_neon.h"
36264
36265 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombines8.c b/gcc/testsuite/gcc.target/arm/neon/vcombines8.c
36266 --- a/gcc/testsuite/gcc.target/arm/neon/vcombines8.c 2007-07-25 14:28:31.000000000 +0200
36267 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombines8.c 2010-01-25 09:50:29.345686441 +0100
36268 @@ -3,7 +3,8 @@
36269
36270 /* { dg-do assemble } */
36271 /* { dg-require-effective-target arm_neon_ok } */
36272 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36273 +/* { dg-options "-save-temps -O0" } */
36274 +/* { dg-add-options arm_neon } */
36275
36276 #include "arm_neon.h"
36277
36278 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombineu16.c b/gcc/testsuite/gcc.target/arm/neon/vcombineu16.c
36279 --- a/gcc/testsuite/gcc.target/arm/neon/vcombineu16.c 2007-07-25 14:28:31.000000000 +0200
36280 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombineu16.c 2010-01-25 09:50:29.345686441 +0100
36281 @@ -3,7 +3,8 @@
36282
36283 /* { dg-do assemble } */
36284 /* { dg-require-effective-target arm_neon_ok } */
36285 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36286 +/* { dg-options "-save-temps -O0" } */
36287 +/* { dg-add-options arm_neon } */
36288
36289 #include "arm_neon.h"
36290
36291 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombineu32.c b/gcc/testsuite/gcc.target/arm/neon/vcombineu32.c
36292 --- a/gcc/testsuite/gcc.target/arm/neon/vcombineu32.c 2007-07-25 14:28:31.000000000 +0200
36293 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombineu32.c 2010-01-25 09:50:29.345686441 +0100
36294 @@ -3,7 +3,8 @@
36295
36296 /* { dg-do assemble } */
36297 /* { dg-require-effective-target arm_neon_ok } */
36298 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36299 +/* { dg-options "-save-temps -O0" } */
36300 +/* { dg-add-options arm_neon } */
36301
36302 #include "arm_neon.h"
36303
36304 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombineu64.c b/gcc/testsuite/gcc.target/arm/neon/vcombineu64.c
36305 --- a/gcc/testsuite/gcc.target/arm/neon/vcombineu64.c 2007-07-25 14:28:31.000000000 +0200
36306 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombineu64.c 2010-01-25 09:50:29.345686441 +0100
36307 @@ -3,7 +3,8 @@
36308
36309 /* { dg-do assemble } */
36310 /* { dg-require-effective-target arm_neon_ok } */
36311 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36312 +/* { dg-options "-save-temps -O0" } */
36313 +/* { dg-add-options arm_neon } */
36314
36315 #include "arm_neon.h"
36316
36317 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcombineu8.c b/gcc/testsuite/gcc.target/arm/neon/vcombineu8.c
36318 --- a/gcc/testsuite/gcc.target/arm/neon/vcombineu8.c 2007-07-25 14:28:31.000000000 +0200
36319 +++ b/gcc/testsuite/gcc.target/arm/neon/vcombineu8.c 2010-01-25 09:50:29.345686441 +0100
36320 @@ -3,7 +3,8 @@
36321
36322 /* { dg-do assemble } */
36323 /* { dg-require-effective-target arm_neon_ok } */
36324 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36325 +/* { dg-options "-save-temps -O0" } */
36326 +/* { dg-add-options arm_neon } */
36327
36328 #include "arm_neon.h"
36329
36330 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreatef32.c b/gcc/testsuite/gcc.target/arm/neon/vcreatef32.c
36331 --- a/gcc/testsuite/gcc.target/arm/neon/vcreatef32.c 2007-07-25 14:28:31.000000000 +0200
36332 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreatef32.c 2010-01-25 09:50:29.345686441 +0100
36333 @@ -3,7 +3,8 @@
36334
36335 /* { dg-do assemble } */
36336 /* { dg-require-effective-target arm_neon_ok } */
36337 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36338 +/* { dg-options "-save-temps -O0" } */
36339 +/* { dg-add-options arm_neon } */
36340
36341 #include "arm_neon.h"
36342
36343 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreatep16.c b/gcc/testsuite/gcc.target/arm/neon/vcreatep16.c
36344 --- a/gcc/testsuite/gcc.target/arm/neon/vcreatep16.c 2007-07-25 14:28:31.000000000 +0200
36345 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreatep16.c 2010-01-25 09:50:29.345686441 +0100
36346 @@ -3,7 +3,8 @@
36347
36348 /* { dg-do assemble } */
36349 /* { dg-require-effective-target arm_neon_ok } */
36350 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36351 +/* { dg-options "-save-temps -O0" } */
36352 +/* { dg-add-options arm_neon } */
36353
36354 #include "arm_neon.h"
36355
36356 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreatep8.c b/gcc/testsuite/gcc.target/arm/neon/vcreatep8.c
36357 --- a/gcc/testsuite/gcc.target/arm/neon/vcreatep8.c 2007-07-25 14:28:31.000000000 +0200
36358 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreatep8.c 2010-01-25 09:50:29.345686441 +0100
36359 @@ -3,7 +3,8 @@
36360
36361 /* { dg-do assemble } */
36362 /* { dg-require-effective-target arm_neon_ok } */
36363 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36364 +/* { dg-options "-save-temps -O0" } */
36365 +/* { dg-add-options arm_neon } */
36366
36367 #include "arm_neon.h"
36368
36369 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreates16.c b/gcc/testsuite/gcc.target/arm/neon/vcreates16.c
36370 --- a/gcc/testsuite/gcc.target/arm/neon/vcreates16.c 2007-07-25 14:28:31.000000000 +0200
36371 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreates16.c 2010-01-25 09:50:29.345686441 +0100
36372 @@ -3,7 +3,8 @@
36373
36374 /* { dg-do assemble } */
36375 /* { dg-require-effective-target arm_neon_ok } */
36376 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36377 +/* { dg-options "-save-temps -O0" } */
36378 +/* { dg-add-options arm_neon } */
36379
36380 #include "arm_neon.h"
36381
36382 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreates32.c b/gcc/testsuite/gcc.target/arm/neon/vcreates32.c
36383 --- a/gcc/testsuite/gcc.target/arm/neon/vcreates32.c 2007-07-25 14:28:31.000000000 +0200
36384 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreates32.c 2010-01-25 09:50:29.345686441 +0100
36385 @@ -3,7 +3,8 @@
36386
36387 /* { dg-do assemble } */
36388 /* { dg-require-effective-target arm_neon_ok } */
36389 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36390 +/* { dg-options "-save-temps -O0" } */
36391 +/* { dg-add-options arm_neon } */
36392
36393 #include "arm_neon.h"
36394
36395 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreates64.c b/gcc/testsuite/gcc.target/arm/neon/vcreates64.c
36396 --- a/gcc/testsuite/gcc.target/arm/neon/vcreates64.c 2007-07-25 14:28:31.000000000 +0200
36397 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreates64.c 2010-01-25 09:50:29.345686441 +0100
36398 @@ -3,7 +3,8 @@
36399
36400 /* { dg-do assemble } */
36401 /* { dg-require-effective-target arm_neon_ok } */
36402 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36403 +/* { dg-options "-save-temps -O0" } */
36404 +/* { dg-add-options arm_neon } */
36405
36406 #include "arm_neon.h"
36407
36408 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreates8.c b/gcc/testsuite/gcc.target/arm/neon/vcreates8.c
36409 --- a/gcc/testsuite/gcc.target/arm/neon/vcreates8.c 2007-07-25 14:28:31.000000000 +0200
36410 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreates8.c 2010-01-25 09:50:29.345686441 +0100
36411 @@ -3,7 +3,8 @@
36412
36413 /* { dg-do assemble } */
36414 /* { dg-require-effective-target arm_neon_ok } */
36415 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36416 +/* { dg-options "-save-temps -O0" } */
36417 +/* { dg-add-options arm_neon } */
36418
36419 #include "arm_neon.h"
36420
36421 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreateu16.c b/gcc/testsuite/gcc.target/arm/neon/vcreateu16.c
36422 --- a/gcc/testsuite/gcc.target/arm/neon/vcreateu16.c 2007-07-25 14:28:31.000000000 +0200
36423 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreateu16.c 2010-01-25 09:50:29.345686441 +0100
36424 @@ -3,7 +3,8 @@
36425
36426 /* { dg-do assemble } */
36427 /* { dg-require-effective-target arm_neon_ok } */
36428 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36429 +/* { dg-options "-save-temps -O0" } */
36430 +/* { dg-add-options arm_neon } */
36431
36432 #include "arm_neon.h"
36433
36434 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreateu32.c b/gcc/testsuite/gcc.target/arm/neon/vcreateu32.c
36435 --- a/gcc/testsuite/gcc.target/arm/neon/vcreateu32.c 2007-07-25 14:28:31.000000000 +0200
36436 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreateu32.c 2010-01-25 09:50:29.345686441 +0100
36437 @@ -3,7 +3,8 @@
36438
36439 /* { dg-do assemble } */
36440 /* { dg-require-effective-target arm_neon_ok } */
36441 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36442 +/* { dg-options "-save-temps -O0" } */
36443 +/* { dg-add-options arm_neon } */
36444
36445 #include "arm_neon.h"
36446
36447 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreateu64.c b/gcc/testsuite/gcc.target/arm/neon/vcreateu64.c
36448 --- a/gcc/testsuite/gcc.target/arm/neon/vcreateu64.c 2007-07-25 14:28:31.000000000 +0200
36449 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreateu64.c 2010-01-25 09:50:29.345686441 +0100
36450 @@ -3,7 +3,8 @@
36451
36452 /* { dg-do assemble } */
36453 /* { dg-require-effective-target arm_neon_ok } */
36454 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36455 +/* { dg-options "-save-temps -O0" } */
36456 +/* { dg-add-options arm_neon } */
36457
36458 #include "arm_neon.h"
36459
36460 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcreateu8.c b/gcc/testsuite/gcc.target/arm/neon/vcreateu8.c
36461 --- a/gcc/testsuite/gcc.target/arm/neon/vcreateu8.c 2007-07-25 14:28:31.000000000 +0200
36462 +++ b/gcc/testsuite/gcc.target/arm/neon/vcreateu8.c 2010-01-25 09:50:29.345686441 +0100
36463 @@ -3,7 +3,8 @@
36464
36465 /* { dg-do assemble } */
36466 /* { dg-require-effective-target arm_neon_ok } */
36467 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36468 +/* { dg-options "-save-temps -O0" } */
36469 +/* { dg-add-options arm_neon } */
36470
36471 #include "arm_neon.h"
36472
36473 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtf32_s32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtf32_s32.c
36474 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtf32_s32.c 2007-07-25 14:28:31.000000000 +0200
36475 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtf32_s32.c 2010-01-25 09:50:29.345686441 +0100
36476 @@ -3,7 +3,8 @@
36477
36478 /* { dg-do assemble } */
36479 /* { dg-require-effective-target arm_neon_ok } */
36480 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36481 +/* { dg-options "-save-temps -O0" } */
36482 +/* { dg-add-options arm_neon } */
36483
36484 #include "arm_neon.h"
36485
36486 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtf32_u32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtf32_u32.c
36487 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtf32_u32.c 2007-07-25 14:28:31.000000000 +0200
36488 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtf32_u32.c 2010-01-25 09:50:29.345686441 +0100
36489 @@ -3,7 +3,8 @@
36490
36491 /* { dg-do assemble } */
36492 /* { dg-require-effective-target arm_neon_ok } */
36493 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36494 +/* { dg-options "-save-temps -O0" } */
36495 +/* { dg-add-options arm_neon } */
36496
36497 #include "arm_neon.h"
36498
36499 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvt_nf32_s32.c b/gcc/testsuite/gcc.target/arm/neon/vcvt_nf32_s32.c
36500 --- a/gcc/testsuite/gcc.target/arm/neon/vcvt_nf32_s32.c 2007-07-25 14:28:31.000000000 +0200
36501 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvt_nf32_s32.c 2010-01-25 09:50:29.345686441 +0100
36502 @@ -3,7 +3,8 @@
36503
36504 /* { dg-do assemble } */
36505 /* { dg-require-effective-target arm_neon_ok } */
36506 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36507 +/* { dg-options "-save-temps -O0" } */
36508 +/* { dg-add-options arm_neon } */
36509
36510 #include "arm_neon.h"
36511
36512 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvt_nf32_u32.c b/gcc/testsuite/gcc.target/arm/neon/vcvt_nf32_u32.c
36513 --- a/gcc/testsuite/gcc.target/arm/neon/vcvt_nf32_u32.c 2007-07-25 14:28:31.000000000 +0200
36514 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvt_nf32_u32.c 2010-01-25 09:50:29.345686441 +0100
36515 @@ -3,7 +3,8 @@
36516
36517 /* { dg-do assemble } */
36518 /* { dg-require-effective-target arm_neon_ok } */
36519 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36520 +/* { dg-options "-save-temps -O0" } */
36521 +/* { dg-add-options arm_neon } */
36522
36523 #include "arm_neon.h"
36524
36525 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvt_ns32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vcvt_ns32_f32.c
36526 --- a/gcc/testsuite/gcc.target/arm/neon/vcvt_ns32_f32.c 2007-07-25 14:28:31.000000000 +0200
36527 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvt_ns32_f32.c 2010-01-25 09:50:29.345686441 +0100
36528 @@ -3,7 +3,8 @@
36529
36530 /* { dg-do assemble } */
36531 /* { dg-require-effective-target arm_neon_ok } */
36532 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36533 +/* { dg-options "-save-temps -O0" } */
36534 +/* { dg-add-options arm_neon } */
36535
36536 #include "arm_neon.h"
36537
36538 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvt_nu32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vcvt_nu32_f32.c
36539 --- a/gcc/testsuite/gcc.target/arm/neon/vcvt_nu32_f32.c 2007-07-25 14:28:31.000000000 +0200
36540 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvt_nu32_f32.c 2010-01-25 09:50:29.345686441 +0100
36541 @@ -3,7 +3,8 @@
36542
36543 /* { dg-do assemble } */
36544 /* { dg-require-effective-target arm_neon_ok } */
36545 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36546 +/* { dg-options "-save-temps -O0" } */
36547 +/* { dg-add-options arm_neon } */
36548
36549 #include "arm_neon.h"
36550
36551 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtQf32_s32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtQf32_s32.c
36552 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtQf32_s32.c 2007-07-25 14:28:31.000000000 +0200
36553 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtQf32_s32.c 2010-01-25 09:50:29.345686441 +0100
36554 @@ -3,7 +3,8 @@
36555
36556 /* { dg-do assemble } */
36557 /* { dg-require-effective-target arm_neon_ok } */
36558 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36559 +/* { dg-options "-save-temps -O0" } */
36560 +/* { dg-add-options arm_neon } */
36561
36562 #include "arm_neon.h"
36563
36564 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtQf32_u32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtQf32_u32.c
36565 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtQf32_u32.c 2007-07-25 14:28:31.000000000 +0200
36566 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtQf32_u32.c 2010-01-25 09:50:29.345686441 +0100
36567 @@ -3,7 +3,8 @@
36568
36569 /* { dg-do assemble } */
36570 /* { dg-require-effective-target arm_neon_ok } */
36571 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36572 +/* { dg-options "-save-temps -O0" } */
36573 +/* { dg-add-options arm_neon } */
36574
36575 #include "arm_neon.h"
36576
36577 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nf32_s32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nf32_s32.c
36578 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nf32_s32.c 2007-07-25 14:28:31.000000000 +0200
36579 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nf32_s32.c 2010-01-25 09:50:29.345686441 +0100
36580 @@ -3,7 +3,8 @@
36581
36582 /* { dg-do assemble } */
36583 /* { dg-require-effective-target arm_neon_ok } */
36584 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36585 +/* { dg-options "-save-temps -O0" } */
36586 +/* { dg-add-options arm_neon } */
36587
36588 #include "arm_neon.h"
36589
36590 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nf32_u32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nf32_u32.c
36591 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nf32_u32.c 2007-07-25 14:28:31.000000000 +0200
36592 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nf32_u32.c 2010-01-25 09:50:29.345686441 +0100
36593 @@ -3,7 +3,8 @@
36594
36595 /* { dg-do assemble } */
36596 /* { dg-require-effective-target arm_neon_ok } */
36597 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36598 +/* { dg-options "-save-temps -O0" } */
36599 +/* { dg-add-options arm_neon } */
36600
36601 #include "arm_neon.h"
36602
36603 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtQ_ns32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtQ_ns32_f32.c
36604 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtQ_ns32_f32.c 2007-07-25 14:28:31.000000000 +0200
36605 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtQ_ns32_f32.c 2010-01-25 09:50:29.345686441 +0100
36606 @@ -3,7 +3,8 @@
36607
36608 /* { dg-do assemble } */
36609 /* { dg-require-effective-target arm_neon_ok } */
36610 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36611 +/* { dg-options "-save-temps -O0" } */
36612 +/* { dg-add-options arm_neon } */
36613
36614 #include "arm_neon.h"
36615
36616 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nu32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nu32_f32.c
36617 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nu32_f32.c 2007-07-25 14:28:31.000000000 +0200
36618 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtQ_nu32_f32.c 2010-01-25 09:50:29.345686441 +0100
36619 @@ -3,7 +3,8 @@
36620
36621 /* { dg-do assemble } */
36622 /* { dg-require-effective-target arm_neon_ok } */
36623 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36624 +/* { dg-options "-save-temps -O0" } */
36625 +/* { dg-add-options arm_neon } */
36626
36627 #include "arm_neon.h"
36628
36629 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtQs32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtQs32_f32.c
36630 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtQs32_f32.c 2007-07-25 14:28:31.000000000 +0200
36631 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtQs32_f32.c 2010-01-25 09:50:29.345686441 +0100
36632 @@ -3,7 +3,8 @@
36633
36634 /* { dg-do assemble } */
36635 /* { dg-require-effective-target arm_neon_ok } */
36636 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36637 +/* { dg-options "-save-temps -O0" } */
36638 +/* { dg-add-options arm_neon } */
36639
36640 #include "arm_neon.h"
36641
36642 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtQu32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtQu32_f32.c
36643 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtQu32_f32.c 2007-07-25 14:28:31.000000000 +0200
36644 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtQu32_f32.c 2010-01-25 09:50:29.345686441 +0100
36645 @@ -3,7 +3,8 @@
36646
36647 /* { dg-do assemble } */
36648 /* { dg-require-effective-target arm_neon_ok } */
36649 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36650 +/* { dg-options "-save-temps -O0" } */
36651 +/* { dg-add-options arm_neon } */
36652
36653 #include "arm_neon.h"
36654
36655 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvts32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vcvts32_f32.c
36656 --- a/gcc/testsuite/gcc.target/arm/neon/vcvts32_f32.c 2007-07-25 14:28:31.000000000 +0200
36657 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvts32_f32.c 2010-01-25 09:50:29.345686441 +0100
36658 @@ -3,7 +3,8 @@
36659
36660 /* { dg-do assemble } */
36661 /* { dg-require-effective-target arm_neon_ok } */
36662 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36663 +/* { dg-options "-save-temps -O0" } */
36664 +/* { dg-add-options arm_neon } */
36665
36666 #include "arm_neon.h"
36667
36668 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vcvtu32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vcvtu32_f32.c
36669 --- a/gcc/testsuite/gcc.target/arm/neon/vcvtu32_f32.c 2007-07-25 14:28:31.000000000 +0200
36670 +++ b/gcc/testsuite/gcc.target/arm/neon/vcvtu32_f32.c 2010-01-25 09:50:29.345686441 +0100
36671 @@ -3,7 +3,8 @@
36672
36673 /* { dg-do assemble } */
36674 /* { dg-require-effective-target arm_neon_ok } */
36675 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36676 +/* { dg-options "-save-temps -O0" } */
36677 +/* { dg-add-options arm_neon } */
36678
36679 #include "arm_neon.h"
36680
36681 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vdup_lanef32.c
36682 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_lanef32.c 2007-07-25 14:28:31.000000000 +0200
36683 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_lanef32.c 2010-01-25 09:50:29.345686441 +0100
36684 @@ -3,7 +3,8 @@
36685
36686 /* { dg-do assemble } */
36687 /* { dg-require-effective-target arm_neon_ok } */
36688 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36689 +/* { dg-options "-save-temps -O0" } */
36690 +/* { dg-add-options arm_neon } */
36691
36692 #include "arm_neon.h"
36693
36694 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vdup_lanep16.c
36695 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_lanep16.c 2007-07-25 14:28:31.000000000 +0200
36696 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_lanep16.c 2010-01-25 09:50:29.345686441 +0100
36697 @@ -3,7 +3,8 @@
36698
36699 /* { dg-do assemble } */
36700 /* { dg-require-effective-target arm_neon_ok } */
36701 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36702 +/* { dg-options "-save-temps -O0" } */
36703 +/* { dg-add-options arm_neon } */
36704
36705 #include "arm_neon.h"
36706
36707 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vdup_lanep8.c
36708 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_lanep8.c 2007-07-25 14:28:31.000000000 +0200
36709 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_lanep8.c 2010-01-25 09:50:29.345686441 +0100
36710 @@ -3,7 +3,8 @@
36711
36712 /* { dg-do assemble } */
36713 /* { dg-require-effective-target arm_neon_ok } */
36714 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36715 +/* { dg-options "-save-temps -O0" } */
36716 +/* { dg-add-options arm_neon } */
36717
36718 #include "arm_neon.h"
36719
36720 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vdup_lanes16.c
36721 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_lanes16.c 2007-07-25 14:28:31.000000000 +0200
36722 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_lanes16.c 2010-01-25 09:50:29.345686441 +0100
36723 @@ -3,7 +3,8 @@
36724
36725 /* { dg-do assemble } */
36726 /* { dg-require-effective-target arm_neon_ok } */
36727 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36728 +/* { dg-options "-save-temps -O0" } */
36729 +/* { dg-add-options arm_neon } */
36730
36731 #include "arm_neon.h"
36732
36733 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vdup_lanes32.c
36734 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_lanes32.c 2007-07-25 14:28:31.000000000 +0200
36735 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_lanes32.c 2010-01-25 09:50:29.345686441 +0100
36736 @@ -3,7 +3,8 @@
36737
36738 /* { dg-do assemble } */
36739 /* { dg-require-effective-target arm_neon_ok } */
36740 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36741 +/* { dg-options "-save-temps -O0" } */
36742 +/* { dg-add-options arm_neon } */
36743
36744 #include "arm_neon.h"
36745
36746 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vdup_lanes64.c
36747 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_lanes64.c 2007-07-25 14:28:31.000000000 +0200
36748 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_lanes64.c 2010-01-25 09:50:29.345686441 +0100
36749 @@ -3,7 +3,8 @@
36750
36751 /* { dg-do assemble } */
36752 /* { dg-require-effective-target arm_neon_ok } */
36753 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36754 +/* { dg-options "-save-temps -O0" } */
36755 +/* { dg-add-options arm_neon } */
36756
36757 #include "arm_neon.h"
36758
36759 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vdup_lanes8.c
36760 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_lanes8.c 2007-07-25 14:28:31.000000000 +0200
36761 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_lanes8.c 2010-01-25 09:50:29.345686441 +0100
36762 @@ -3,7 +3,8 @@
36763
36764 /* { dg-do assemble } */
36765 /* { dg-require-effective-target arm_neon_ok } */
36766 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36767 +/* { dg-options "-save-temps -O0" } */
36768 +/* { dg-add-options arm_neon } */
36769
36770 #include "arm_neon.h"
36771
36772 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vdup_laneu16.c
36773 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_laneu16.c 2007-07-25 14:28:31.000000000 +0200
36774 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_laneu16.c 2010-01-25 09:50:29.345686441 +0100
36775 @@ -3,7 +3,8 @@
36776
36777 /* { dg-do assemble } */
36778 /* { dg-require-effective-target arm_neon_ok } */
36779 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36780 +/* { dg-options "-save-temps -O0" } */
36781 +/* { dg-add-options arm_neon } */
36782
36783 #include "arm_neon.h"
36784
36785 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vdup_laneu32.c
36786 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_laneu32.c 2007-07-25 14:28:31.000000000 +0200
36787 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_laneu32.c 2010-01-25 09:50:29.345686441 +0100
36788 @@ -3,7 +3,8 @@
36789
36790 /* { dg-do assemble } */
36791 /* { dg-require-effective-target arm_neon_ok } */
36792 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36793 +/* { dg-options "-save-temps -O0" } */
36794 +/* { dg-add-options arm_neon } */
36795
36796 #include "arm_neon.h"
36797
36798 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vdup_laneu64.c
36799 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_laneu64.c 2007-07-25 14:28:31.000000000 +0200
36800 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_laneu64.c 2010-01-25 09:50:29.345686441 +0100
36801 @@ -3,7 +3,8 @@
36802
36803 /* { dg-do assemble } */
36804 /* { dg-require-effective-target arm_neon_ok } */
36805 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36806 +/* { dg-options "-save-temps -O0" } */
36807 +/* { dg-add-options arm_neon } */
36808
36809 #include "arm_neon.h"
36810
36811 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vdup_laneu8.c
36812 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_laneu8.c 2007-07-25 14:28:31.000000000 +0200
36813 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_laneu8.c 2010-01-25 09:50:29.345686441 +0100
36814 @@ -3,7 +3,8 @@
36815
36816 /* { dg-do assemble } */
36817 /* { dg-require-effective-target arm_neon_ok } */
36818 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36819 +/* { dg-options "-save-temps -O0" } */
36820 +/* { dg-add-options arm_neon } */
36821
36822 #include "arm_neon.h"
36823
36824 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vdup_nf32.c
36825 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_nf32.c 2007-07-25 14:28:31.000000000 +0200
36826 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_nf32.c 2010-01-25 09:50:29.345686441 +0100
36827 @@ -3,7 +3,8 @@
36828
36829 /* { dg-do assemble } */
36830 /* { dg-require-effective-target arm_neon_ok } */
36831 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36832 +/* { dg-options "-save-temps -O0" } */
36833 +/* { dg-add-options arm_neon } */
36834
36835 #include "arm_neon.h"
36836
36837 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_np16.c b/gcc/testsuite/gcc.target/arm/neon/vdup_np16.c
36838 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_np16.c 2007-07-25 14:28:31.000000000 +0200
36839 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_np16.c 2010-01-25 09:50:29.345686441 +0100
36840 @@ -3,7 +3,8 @@
36841
36842 /* { dg-do assemble } */
36843 /* { dg-require-effective-target arm_neon_ok } */
36844 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36845 +/* { dg-options "-save-temps -O0" } */
36846 +/* { dg-add-options arm_neon } */
36847
36848 #include "arm_neon.h"
36849
36850 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_np8.c b/gcc/testsuite/gcc.target/arm/neon/vdup_np8.c
36851 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_np8.c 2007-07-25 14:28:31.000000000 +0200
36852 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_np8.c 2010-01-25 09:50:29.345686441 +0100
36853 @@ -3,7 +3,8 @@
36854
36855 /* { dg-do assemble } */
36856 /* { dg-require-effective-target arm_neon_ok } */
36857 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36858 +/* { dg-options "-save-temps -O0" } */
36859 +/* { dg-add-options arm_neon } */
36860
36861 #include "arm_neon.h"
36862
36863 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vdup_ns16.c
36864 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_ns16.c 2007-07-25 14:28:31.000000000 +0200
36865 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_ns16.c 2010-01-25 09:50:29.345686441 +0100
36866 @@ -3,7 +3,8 @@
36867
36868 /* { dg-do assemble } */
36869 /* { dg-require-effective-target arm_neon_ok } */
36870 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36871 +/* { dg-options "-save-temps -O0" } */
36872 +/* { dg-add-options arm_neon } */
36873
36874 #include "arm_neon.h"
36875
36876 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vdup_ns32.c
36877 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_ns32.c 2007-07-25 14:28:31.000000000 +0200
36878 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_ns32.c 2010-01-25 09:50:29.345686441 +0100
36879 @@ -3,7 +3,8 @@
36880
36881 /* { dg-do assemble } */
36882 /* { dg-require-effective-target arm_neon_ok } */
36883 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36884 +/* { dg-options "-save-temps -O0" } */
36885 +/* { dg-add-options arm_neon } */
36886
36887 #include "arm_neon.h"
36888
36889 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vdup_ns64.c
36890 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_ns64.c 2007-07-25 14:28:31.000000000 +0200
36891 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_ns64.c 2010-01-25 09:50:29.345686441 +0100
36892 @@ -3,7 +3,8 @@
36893
36894 /* { dg-do assemble } */
36895 /* { dg-require-effective-target arm_neon_ok } */
36896 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36897 +/* { dg-options "-save-temps -O0" } */
36898 +/* { dg-add-options arm_neon } */
36899
36900 #include "arm_neon.h"
36901
36902 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vdup_ns8.c
36903 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_ns8.c 2007-07-25 14:28:31.000000000 +0200
36904 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_ns8.c 2010-01-25 09:50:29.345686441 +0100
36905 @@ -3,7 +3,8 @@
36906
36907 /* { dg-do assemble } */
36908 /* { dg-require-effective-target arm_neon_ok } */
36909 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36910 +/* { dg-options "-save-temps -O0" } */
36911 +/* { dg-add-options arm_neon } */
36912
36913 #include "arm_neon.h"
36914
36915 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vdup_nu16.c
36916 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_nu16.c 2007-07-25 14:28:31.000000000 +0200
36917 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_nu16.c 2010-01-25 09:50:29.345686441 +0100
36918 @@ -3,7 +3,8 @@
36919
36920 /* { dg-do assemble } */
36921 /* { dg-require-effective-target arm_neon_ok } */
36922 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36923 +/* { dg-options "-save-temps -O0" } */
36924 +/* { dg-add-options arm_neon } */
36925
36926 #include "arm_neon.h"
36927
36928 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vdup_nu32.c
36929 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_nu32.c 2007-07-25 14:28:31.000000000 +0200
36930 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_nu32.c 2010-01-25 09:50:29.345686441 +0100
36931 @@ -3,7 +3,8 @@
36932
36933 /* { dg-do assemble } */
36934 /* { dg-require-effective-target arm_neon_ok } */
36935 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36936 +/* { dg-options "-save-temps -O0" } */
36937 +/* { dg-add-options arm_neon } */
36938
36939 #include "arm_neon.h"
36940
36941 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vdup_nu64.c
36942 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_nu64.c 2007-07-25 14:28:31.000000000 +0200
36943 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_nu64.c 2010-01-25 09:50:29.345686441 +0100
36944 @@ -3,7 +3,8 @@
36945
36946 /* { dg-do assemble } */
36947 /* { dg-require-effective-target arm_neon_ok } */
36948 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36949 +/* { dg-options "-save-temps -O0" } */
36950 +/* { dg-add-options arm_neon } */
36951
36952 #include "arm_neon.h"
36953
36954 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdup_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vdup_nu8.c
36955 --- a/gcc/testsuite/gcc.target/arm/neon/vdup_nu8.c 2007-07-25 14:28:31.000000000 +0200
36956 +++ b/gcc/testsuite/gcc.target/arm/neon/vdup_nu8.c 2010-01-25 09:50:29.345686441 +0100
36957 @@ -3,7 +3,8 @@
36958
36959 /* { dg-do assemble } */
36960 /* { dg-require-effective-target arm_neon_ok } */
36961 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36962 +/* { dg-options "-save-temps -O0" } */
36963 +/* { dg-add-options arm_neon } */
36964
36965 #include "arm_neon.h"
36966
36967 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanef32.c
36968 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanef32.c 2007-07-25 14:28:31.000000000 +0200
36969 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanef32.c 2010-01-25 09:50:29.345686441 +0100
36970 @@ -3,7 +3,8 @@
36971
36972 /* { dg-do assemble } */
36973 /* { dg-require-effective-target arm_neon_ok } */
36974 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36975 +/* { dg-options "-save-temps -O0" } */
36976 +/* { dg-add-options arm_neon } */
36977
36978 #include "arm_neon.h"
36979
36980 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanep16.c
36981 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanep16.c 2007-07-25 14:28:31.000000000 +0200
36982 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanep16.c 2010-01-25 09:50:29.345686441 +0100
36983 @@ -3,7 +3,8 @@
36984
36985 /* { dg-do assemble } */
36986 /* { dg-require-effective-target arm_neon_ok } */
36987 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
36988 +/* { dg-options "-save-temps -O0" } */
36989 +/* { dg-add-options arm_neon } */
36990
36991 #include "arm_neon.h"
36992
36993 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanep8.c
36994 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanep8.c 2007-07-25 14:28:31.000000000 +0200
36995 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanep8.c 2010-01-25 09:50:29.345686441 +0100
36996 @@ -3,7 +3,8 @@
36997
36998 /* { dg-do assemble } */
36999 /* { dg-require-effective-target arm_neon_ok } */
37000 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37001 +/* { dg-options "-save-temps -O0" } */
37002 +/* { dg-add-options arm_neon } */
37003
37004 #include "arm_neon.h"
37005
37006 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes16.c
37007 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes16.c 2007-07-25 14:28:31.000000000 +0200
37008 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes16.c 2010-01-25 09:50:29.345686441 +0100
37009 @@ -3,7 +3,8 @@
37010
37011 /* { dg-do assemble } */
37012 /* { dg-require-effective-target arm_neon_ok } */
37013 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37014 +/* { dg-options "-save-temps -O0" } */
37015 +/* { dg-add-options arm_neon } */
37016
37017 #include "arm_neon.h"
37018
37019 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes32.c
37020 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes32.c 2007-07-25 14:28:31.000000000 +0200
37021 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes32.c 2010-01-25 09:50:29.345686441 +0100
37022 @@ -3,7 +3,8 @@
37023
37024 /* { dg-do assemble } */
37025 /* { dg-require-effective-target arm_neon_ok } */
37026 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37027 +/* { dg-options "-save-temps -O0" } */
37028 +/* { dg-add-options arm_neon } */
37029
37030 #include "arm_neon.h"
37031
37032 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes64.c
37033 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes64.c 2007-07-25 14:28:31.000000000 +0200
37034 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes64.c 2010-01-25 09:50:29.345686441 +0100
37035 @@ -3,7 +3,8 @@
37036
37037 /* { dg-do assemble } */
37038 /* { dg-require-effective-target arm_neon_ok } */
37039 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37040 +/* { dg-options "-save-temps -O0" } */
37041 +/* { dg-add-options arm_neon } */
37042
37043 #include "arm_neon.h"
37044
37045 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes8.c
37046 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes8.c 2007-07-25 14:28:31.000000000 +0200
37047 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_lanes8.c 2010-01-25 09:50:29.345686441 +0100
37048 @@ -3,7 +3,8 @@
37049
37050 /* { dg-do assemble } */
37051 /* { dg-require-effective-target arm_neon_ok } */
37052 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37053 +/* { dg-options "-save-temps -O0" } */
37054 +/* { dg-add-options arm_neon } */
37055
37056 #include "arm_neon.h"
37057
37058 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu16.c
37059 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu16.c 2007-07-25 14:28:31.000000000 +0200
37060 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu16.c 2010-01-25 09:50:29.345686441 +0100
37061 @@ -3,7 +3,8 @@
37062
37063 /* { dg-do assemble } */
37064 /* { dg-require-effective-target arm_neon_ok } */
37065 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37066 +/* { dg-options "-save-temps -O0" } */
37067 +/* { dg-add-options arm_neon } */
37068
37069 #include "arm_neon.h"
37070
37071 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu32.c
37072 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu32.c 2007-07-25 14:28:31.000000000 +0200
37073 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu32.c 2010-01-25 09:50:29.345686441 +0100
37074 @@ -3,7 +3,8 @@
37075
37076 /* { dg-do assemble } */
37077 /* { dg-require-effective-target arm_neon_ok } */
37078 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37079 +/* { dg-options "-save-temps -O0" } */
37080 +/* { dg-add-options arm_neon } */
37081
37082 #include "arm_neon.h"
37083
37084 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu64.c
37085 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu64.c 2007-07-25 14:28:31.000000000 +0200
37086 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu64.c 2010-01-25 09:50:29.355686315 +0100
37087 @@ -3,7 +3,8 @@
37088
37089 /* { dg-do assemble } */
37090 /* { dg-require-effective-target arm_neon_ok } */
37091 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37092 +/* { dg-options "-save-temps -O0" } */
37093 +/* { dg-add-options arm_neon } */
37094
37095 #include "arm_neon.h"
37096
37097 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu8.c
37098 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu8.c 2007-07-25 14:28:31.000000000 +0200
37099 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_laneu8.c 2010-01-25 09:50:29.355686315 +0100
37100 @@ -3,7 +3,8 @@
37101
37102 /* { dg-do assemble } */
37103 /* { dg-require-effective-target arm_neon_ok } */
37104 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37105 +/* { dg-options "-save-temps -O0" } */
37106 +/* { dg-add-options arm_neon } */
37107
37108 #include "arm_neon.h"
37109
37110 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nf32.c
37111 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nf32.c 2007-07-25 14:28:31.000000000 +0200
37112 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nf32.c 2010-01-25 09:50:29.355686315 +0100
37113 @@ -3,7 +3,8 @@
37114
37115 /* { dg-do assemble } */
37116 /* { dg-require-effective-target arm_neon_ok } */
37117 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37118 +/* { dg-options "-save-temps -O0" } */
37119 +/* { dg-add-options arm_neon } */
37120
37121 #include "arm_neon.h"
37122
37123 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_np16.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_np16.c
37124 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_np16.c 2007-07-25 14:28:31.000000000 +0200
37125 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_np16.c 2010-01-25 09:50:29.355686315 +0100
37126 @@ -3,7 +3,8 @@
37127
37128 /* { dg-do assemble } */
37129 /* { dg-require-effective-target arm_neon_ok } */
37130 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37131 +/* { dg-options "-save-temps -O0" } */
37132 +/* { dg-add-options arm_neon } */
37133
37134 #include "arm_neon.h"
37135
37136 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_np8.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_np8.c
37137 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_np8.c 2007-07-25 14:28:31.000000000 +0200
37138 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_np8.c 2010-01-25 09:50:29.355686315 +0100
37139 @@ -3,7 +3,8 @@
37140
37141 /* { dg-do assemble } */
37142 /* { dg-require-effective-target arm_neon_ok } */
37143 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37144 +/* { dg-options "-save-temps -O0" } */
37145 +/* { dg-add-options arm_neon } */
37146
37147 #include "arm_neon.h"
37148
37149 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns16.c
37150 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
37151 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns16.c 2010-01-25 09:50:29.355686315 +0100
37152 @@ -3,7 +3,8 @@
37153
37154 /* { dg-do assemble } */
37155 /* { dg-require-effective-target arm_neon_ok } */
37156 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37157 +/* { dg-options "-save-temps -O0" } */
37158 +/* { dg-add-options arm_neon } */
37159
37160 #include "arm_neon.h"
37161
37162 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns32.c
37163 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
37164 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns32.c 2010-01-25 09:50:29.355686315 +0100
37165 @@ -3,7 +3,8 @@
37166
37167 /* { dg-do assemble } */
37168 /* { dg-require-effective-target arm_neon_ok } */
37169 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37170 +/* { dg-options "-save-temps -O0" } */
37171 +/* { dg-add-options arm_neon } */
37172
37173 #include "arm_neon.h"
37174
37175 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns64.c
37176 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
37177 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns64.c 2010-01-25 09:50:29.355686315 +0100
37178 @@ -3,7 +3,8 @@
37179
37180 /* { dg-do assemble } */
37181 /* { dg-require-effective-target arm_neon_ok } */
37182 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37183 +/* { dg-options "-save-temps -O0" } */
37184 +/* { dg-add-options arm_neon } */
37185
37186 #include "arm_neon.h"
37187
37188 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns8.c
37189 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
37190 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_ns8.c 2010-01-25 09:50:29.355686315 +0100
37191 @@ -3,7 +3,8 @@
37192
37193 /* { dg-do assemble } */
37194 /* { dg-require-effective-target arm_neon_ok } */
37195 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37196 +/* { dg-options "-save-temps -O0" } */
37197 +/* { dg-add-options arm_neon } */
37198
37199 #include "arm_neon.h"
37200
37201 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu16.c
37202 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
37203 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu16.c 2010-01-25 09:50:29.355686315 +0100
37204 @@ -3,7 +3,8 @@
37205
37206 /* { dg-do assemble } */
37207 /* { dg-require-effective-target arm_neon_ok } */
37208 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37209 +/* { dg-options "-save-temps -O0" } */
37210 +/* { dg-add-options arm_neon } */
37211
37212 #include "arm_neon.h"
37213
37214 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu32.c
37215 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
37216 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu32.c 2010-01-25 09:50:29.355686315 +0100
37217 @@ -3,7 +3,8 @@
37218
37219 /* { dg-do assemble } */
37220 /* { dg-require-effective-target arm_neon_ok } */
37221 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37222 +/* { dg-options "-save-temps -O0" } */
37223 +/* { dg-add-options arm_neon } */
37224
37225 #include "arm_neon.h"
37226
37227 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu64.c
37228 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
37229 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu64.c 2010-01-25 09:50:29.355686315 +0100
37230 @@ -3,7 +3,8 @@
37231
37232 /* { dg-do assemble } */
37233 /* { dg-require-effective-target arm_neon_ok } */
37234 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37235 +/* { dg-options "-save-temps -O0" } */
37236 +/* { dg-add-options arm_neon } */
37237
37238 #include "arm_neon.h"
37239
37240 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu8.c
37241 --- a/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
37242 +++ b/gcc/testsuite/gcc.target/arm/neon/vdupQ_nu8.c 2010-01-25 09:50:29.355686315 +0100
37243 @@ -3,7 +3,8 @@
37244
37245 /* { dg-do assemble } */
37246 /* { dg-require-effective-target arm_neon_ok } */
37247 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37248 +/* { dg-options "-save-temps -O0" } */
37249 +/* { dg-add-options arm_neon } */
37250
37251 #include "arm_neon.h"
37252
37253 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veorQs16.c b/gcc/testsuite/gcc.target/arm/neon/veorQs16.c
37254 --- a/gcc/testsuite/gcc.target/arm/neon/veorQs16.c 2007-07-25 14:28:31.000000000 +0200
37255 +++ b/gcc/testsuite/gcc.target/arm/neon/veorQs16.c 2010-01-25 09:50:29.355686315 +0100
37256 @@ -3,7 +3,8 @@
37257
37258 /* { dg-do assemble } */
37259 /* { dg-require-effective-target arm_neon_ok } */
37260 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37261 +/* { dg-options "-save-temps -O0" } */
37262 +/* { dg-add-options arm_neon } */
37263
37264 #include "arm_neon.h"
37265
37266 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veorQs32.c b/gcc/testsuite/gcc.target/arm/neon/veorQs32.c
37267 --- a/gcc/testsuite/gcc.target/arm/neon/veorQs32.c 2007-07-25 14:28:31.000000000 +0200
37268 +++ b/gcc/testsuite/gcc.target/arm/neon/veorQs32.c 2010-01-25 09:50:29.355686315 +0100
37269 @@ -3,7 +3,8 @@
37270
37271 /* { dg-do assemble } */
37272 /* { dg-require-effective-target arm_neon_ok } */
37273 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37274 +/* { dg-options "-save-temps -O0" } */
37275 +/* { dg-add-options arm_neon } */
37276
37277 #include "arm_neon.h"
37278
37279 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veorQs64.c b/gcc/testsuite/gcc.target/arm/neon/veorQs64.c
37280 --- a/gcc/testsuite/gcc.target/arm/neon/veorQs64.c 2007-07-25 14:28:31.000000000 +0200
37281 +++ b/gcc/testsuite/gcc.target/arm/neon/veorQs64.c 2010-01-25 09:50:29.355686315 +0100
37282 @@ -3,7 +3,8 @@
37283
37284 /* { dg-do assemble } */
37285 /* { dg-require-effective-target arm_neon_ok } */
37286 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37287 +/* { dg-options "-save-temps -O0" } */
37288 +/* { dg-add-options arm_neon } */
37289
37290 #include "arm_neon.h"
37291
37292 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veorQs8.c b/gcc/testsuite/gcc.target/arm/neon/veorQs8.c
37293 --- a/gcc/testsuite/gcc.target/arm/neon/veorQs8.c 2007-07-25 14:28:31.000000000 +0200
37294 +++ b/gcc/testsuite/gcc.target/arm/neon/veorQs8.c 2010-01-25 09:50:29.355686315 +0100
37295 @@ -3,7 +3,8 @@
37296
37297 /* { dg-do assemble } */
37298 /* { dg-require-effective-target arm_neon_ok } */
37299 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37300 +/* { dg-options "-save-temps -O0" } */
37301 +/* { dg-add-options arm_neon } */
37302
37303 #include "arm_neon.h"
37304
37305 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veorQu16.c b/gcc/testsuite/gcc.target/arm/neon/veorQu16.c
37306 --- a/gcc/testsuite/gcc.target/arm/neon/veorQu16.c 2007-07-25 14:28:31.000000000 +0200
37307 +++ b/gcc/testsuite/gcc.target/arm/neon/veorQu16.c 2010-01-25 09:50:29.355686315 +0100
37308 @@ -3,7 +3,8 @@
37309
37310 /* { dg-do assemble } */
37311 /* { dg-require-effective-target arm_neon_ok } */
37312 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37313 +/* { dg-options "-save-temps -O0" } */
37314 +/* { dg-add-options arm_neon } */
37315
37316 #include "arm_neon.h"
37317
37318 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veorQu32.c b/gcc/testsuite/gcc.target/arm/neon/veorQu32.c
37319 --- a/gcc/testsuite/gcc.target/arm/neon/veorQu32.c 2007-07-25 14:28:31.000000000 +0200
37320 +++ b/gcc/testsuite/gcc.target/arm/neon/veorQu32.c 2010-01-25 09:50:29.355686315 +0100
37321 @@ -3,7 +3,8 @@
37322
37323 /* { dg-do assemble } */
37324 /* { dg-require-effective-target arm_neon_ok } */
37325 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37326 +/* { dg-options "-save-temps -O0" } */
37327 +/* { dg-add-options arm_neon } */
37328
37329 #include "arm_neon.h"
37330
37331 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veorQu64.c b/gcc/testsuite/gcc.target/arm/neon/veorQu64.c
37332 --- a/gcc/testsuite/gcc.target/arm/neon/veorQu64.c 2007-07-25 14:28:31.000000000 +0200
37333 +++ b/gcc/testsuite/gcc.target/arm/neon/veorQu64.c 2010-01-25 09:50:29.355686315 +0100
37334 @@ -3,7 +3,8 @@
37335
37336 /* { dg-do assemble } */
37337 /* { dg-require-effective-target arm_neon_ok } */
37338 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37339 +/* { dg-options "-save-temps -O0" } */
37340 +/* { dg-add-options arm_neon } */
37341
37342 #include "arm_neon.h"
37343
37344 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veorQu8.c b/gcc/testsuite/gcc.target/arm/neon/veorQu8.c
37345 --- a/gcc/testsuite/gcc.target/arm/neon/veorQu8.c 2007-07-25 14:28:31.000000000 +0200
37346 +++ b/gcc/testsuite/gcc.target/arm/neon/veorQu8.c 2010-01-25 09:50:29.355686315 +0100
37347 @@ -3,7 +3,8 @@
37348
37349 /* { dg-do assemble } */
37350 /* { dg-require-effective-target arm_neon_ok } */
37351 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37352 +/* { dg-options "-save-temps -O0" } */
37353 +/* { dg-add-options arm_neon } */
37354
37355 #include "arm_neon.h"
37356
37357 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veors16.c b/gcc/testsuite/gcc.target/arm/neon/veors16.c
37358 --- a/gcc/testsuite/gcc.target/arm/neon/veors16.c 2007-07-25 14:28:31.000000000 +0200
37359 +++ b/gcc/testsuite/gcc.target/arm/neon/veors16.c 2010-01-25 09:50:29.355686315 +0100
37360 @@ -3,7 +3,8 @@
37361
37362 /* { dg-do assemble } */
37363 /* { dg-require-effective-target arm_neon_ok } */
37364 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37365 +/* { dg-options "-save-temps -O0" } */
37366 +/* { dg-add-options arm_neon } */
37367
37368 #include "arm_neon.h"
37369
37370 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veors32.c b/gcc/testsuite/gcc.target/arm/neon/veors32.c
37371 --- a/gcc/testsuite/gcc.target/arm/neon/veors32.c 2007-07-25 14:28:31.000000000 +0200
37372 +++ b/gcc/testsuite/gcc.target/arm/neon/veors32.c 2010-01-25 09:50:29.355686315 +0100
37373 @@ -3,7 +3,8 @@
37374
37375 /* { dg-do assemble } */
37376 /* { dg-require-effective-target arm_neon_ok } */
37377 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37378 +/* { dg-options "-save-temps -O0" } */
37379 +/* { dg-add-options arm_neon } */
37380
37381 #include "arm_neon.h"
37382
37383 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veors64.c b/gcc/testsuite/gcc.target/arm/neon/veors64.c
37384 --- a/gcc/testsuite/gcc.target/arm/neon/veors64.c 2007-07-25 14:28:31.000000000 +0200
37385 +++ b/gcc/testsuite/gcc.target/arm/neon/veors64.c 2010-01-25 09:50:29.355686315 +0100
37386 @@ -3,7 +3,8 @@
37387
37388 /* { dg-do assemble } */
37389 /* { dg-require-effective-target arm_neon_ok } */
37390 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37391 +/* { dg-options "-save-temps -O0" } */
37392 +/* { dg-add-options arm_neon } */
37393
37394 #include "arm_neon.h"
37395
37396 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veors8.c b/gcc/testsuite/gcc.target/arm/neon/veors8.c
37397 --- a/gcc/testsuite/gcc.target/arm/neon/veors8.c 2007-07-25 14:28:31.000000000 +0200
37398 +++ b/gcc/testsuite/gcc.target/arm/neon/veors8.c 2010-01-25 09:50:29.355686315 +0100
37399 @@ -3,7 +3,8 @@
37400
37401 /* { dg-do assemble } */
37402 /* { dg-require-effective-target arm_neon_ok } */
37403 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37404 +/* { dg-options "-save-temps -O0" } */
37405 +/* { dg-add-options arm_neon } */
37406
37407 #include "arm_neon.h"
37408
37409 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veoru16.c b/gcc/testsuite/gcc.target/arm/neon/veoru16.c
37410 --- a/gcc/testsuite/gcc.target/arm/neon/veoru16.c 2007-07-25 14:28:31.000000000 +0200
37411 +++ b/gcc/testsuite/gcc.target/arm/neon/veoru16.c 2010-01-25 09:50:29.355686315 +0100
37412 @@ -3,7 +3,8 @@
37413
37414 /* { dg-do assemble } */
37415 /* { dg-require-effective-target arm_neon_ok } */
37416 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37417 +/* { dg-options "-save-temps -O0" } */
37418 +/* { dg-add-options arm_neon } */
37419
37420 #include "arm_neon.h"
37421
37422 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veoru32.c b/gcc/testsuite/gcc.target/arm/neon/veoru32.c
37423 --- a/gcc/testsuite/gcc.target/arm/neon/veoru32.c 2007-07-25 14:28:31.000000000 +0200
37424 +++ b/gcc/testsuite/gcc.target/arm/neon/veoru32.c 2010-01-25 09:50:29.355686315 +0100
37425 @@ -3,7 +3,8 @@
37426
37427 /* { dg-do assemble } */
37428 /* { dg-require-effective-target arm_neon_ok } */
37429 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37430 +/* { dg-options "-save-temps -O0" } */
37431 +/* { dg-add-options arm_neon } */
37432
37433 #include "arm_neon.h"
37434
37435 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veoru64.c b/gcc/testsuite/gcc.target/arm/neon/veoru64.c
37436 --- a/gcc/testsuite/gcc.target/arm/neon/veoru64.c 2007-07-25 14:28:31.000000000 +0200
37437 +++ b/gcc/testsuite/gcc.target/arm/neon/veoru64.c 2010-01-25 09:50:29.355686315 +0100
37438 @@ -3,7 +3,8 @@
37439
37440 /* { dg-do assemble } */
37441 /* { dg-require-effective-target arm_neon_ok } */
37442 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37443 +/* { dg-options "-save-temps -O0" } */
37444 +/* { dg-add-options arm_neon } */
37445
37446 #include "arm_neon.h"
37447
37448 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/veoru8.c b/gcc/testsuite/gcc.target/arm/neon/veoru8.c
37449 --- a/gcc/testsuite/gcc.target/arm/neon/veoru8.c 2007-07-25 14:28:31.000000000 +0200
37450 +++ b/gcc/testsuite/gcc.target/arm/neon/veoru8.c 2010-01-25 09:50:29.355686315 +0100
37451 @@ -3,7 +3,8 @@
37452
37453 /* { dg-do assemble } */
37454 /* { dg-require-effective-target arm_neon_ok } */
37455 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37456 +/* { dg-options "-save-temps -O0" } */
37457 +/* { dg-add-options arm_neon } */
37458
37459 #include "arm_neon.h"
37460
37461 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextf32.c b/gcc/testsuite/gcc.target/arm/neon/vextf32.c
37462 --- a/gcc/testsuite/gcc.target/arm/neon/vextf32.c 2007-07-25 14:28:31.000000000 +0200
37463 +++ b/gcc/testsuite/gcc.target/arm/neon/vextf32.c 2010-01-25 09:50:29.355686315 +0100
37464 @@ -3,7 +3,8 @@
37465
37466 /* { dg-do assemble } */
37467 /* { dg-require-effective-target arm_neon_ok } */
37468 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37469 +/* { dg-options "-save-temps -O0" } */
37470 +/* { dg-add-options arm_neon } */
37471
37472 #include "arm_neon.h"
37473
37474 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextp16.c b/gcc/testsuite/gcc.target/arm/neon/vextp16.c
37475 --- a/gcc/testsuite/gcc.target/arm/neon/vextp16.c 2007-07-25 14:28:31.000000000 +0200
37476 +++ b/gcc/testsuite/gcc.target/arm/neon/vextp16.c 2010-01-25 09:50:29.355686315 +0100
37477 @@ -3,7 +3,8 @@
37478
37479 /* { dg-do assemble } */
37480 /* { dg-require-effective-target arm_neon_ok } */
37481 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37482 +/* { dg-options "-save-temps -O0" } */
37483 +/* { dg-add-options arm_neon } */
37484
37485 #include "arm_neon.h"
37486
37487 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextp8.c b/gcc/testsuite/gcc.target/arm/neon/vextp8.c
37488 --- a/gcc/testsuite/gcc.target/arm/neon/vextp8.c 2007-07-25 14:28:31.000000000 +0200
37489 +++ b/gcc/testsuite/gcc.target/arm/neon/vextp8.c 2010-01-25 09:50:29.355686315 +0100
37490 @@ -3,7 +3,8 @@
37491
37492 /* { dg-do assemble } */
37493 /* { dg-require-effective-target arm_neon_ok } */
37494 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37495 +/* { dg-options "-save-temps -O0" } */
37496 +/* { dg-add-options arm_neon } */
37497
37498 #include "arm_neon.h"
37499
37500 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQf32.c b/gcc/testsuite/gcc.target/arm/neon/vextQf32.c
37501 --- a/gcc/testsuite/gcc.target/arm/neon/vextQf32.c 2007-07-25 14:28:31.000000000 +0200
37502 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQf32.c 2010-01-25 09:50:29.355686315 +0100
37503 @@ -3,7 +3,8 @@
37504
37505 /* { dg-do assemble } */
37506 /* { dg-require-effective-target arm_neon_ok } */
37507 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37508 +/* { dg-options "-save-temps -O0" } */
37509 +/* { dg-add-options arm_neon } */
37510
37511 #include "arm_neon.h"
37512
37513 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQp16.c b/gcc/testsuite/gcc.target/arm/neon/vextQp16.c
37514 --- a/gcc/testsuite/gcc.target/arm/neon/vextQp16.c 2007-07-25 14:28:31.000000000 +0200
37515 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQp16.c 2010-01-25 09:50:29.355686315 +0100
37516 @@ -3,7 +3,8 @@
37517
37518 /* { dg-do assemble } */
37519 /* { dg-require-effective-target arm_neon_ok } */
37520 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37521 +/* { dg-options "-save-temps -O0" } */
37522 +/* { dg-add-options arm_neon } */
37523
37524 #include "arm_neon.h"
37525
37526 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQp8.c b/gcc/testsuite/gcc.target/arm/neon/vextQp8.c
37527 --- a/gcc/testsuite/gcc.target/arm/neon/vextQp8.c 2007-07-25 14:28:31.000000000 +0200
37528 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQp8.c 2010-01-25 09:50:29.355686315 +0100
37529 @@ -3,7 +3,8 @@
37530
37531 /* { dg-do assemble } */
37532 /* { dg-require-effective-target arm_neon_ok } */
37533 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37534 +/* { dg-options "-save-temps -O0" } */
37535 +/* { dg-add-options arm_neon } */
37536
37537 #include "arm_neon.h"
37538
37539 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQs16.c b/gcc/testsuite/gcc.target/arm/neon/vextQs16.c
37540 --- a/gcc/testsuite/gcc.target/arm/neon/vextQs16.c 2007-07-25 14:28:31.000000000 +0200
37541 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQs16.c 2010-01-25 09:50:29.355686315 +0100
37542 @@ -3,7 +3,8 @@
37543
37544 /* { dg-do assemble } */
37545 /* { dg-require-effective-target arm_neon_ok } */
37546 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37547 +/* { dg-options "-save-temps -O0" } */
37548 +/* { dg-add-options arm_neon } */
37549
37550 #include "arm_neon.h"
37551
37552 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQs32.c b/gcc/testsuite/gcc.target/arm/neon/vextQs32.c
37553 --- a/gcc/testsuite/gcc.target/arm/neon/vextQs32.c 2007-07-25 14:28:31.000000000 +0200
37554 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQs32.c 2010-01-25 09:50:29.355686315 +0100
37555 @@ -3,7 +3,8 @@
37556
37557 /* { dg-do assemble } */
37558 /* { dg-require-effective-target arm_neon_ok } */
37559 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37560 +/* { dg-options "-save-temps -O0" } */
37561 +/* { dg-add-options arm_neon } */
37562
37563 #include "arm_neon.h"
37564
37565 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQs64.c b/gcc/testsuite/gcc.target/arm/neon/vextQs64.c
37566 --- a/gcc/testsuite/gcc.target/arm/neon/vextQs64.c 2007-07-25 14:28:31.000000000 +0200
37567 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQs64.c 2010-01-25 09:50:29.355686315 +0100
37568 @@ -3,7 +3,8 @@
37569
37570 /* { dg-do assemble } */
37571 /* { dg-require-effective-target arm_neon_ok } */
37572 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37573 +/* { dg-options "-save-temps -O0" } */
37574 +/* { dg-add-options arm_neon } */
37575
37576 #include "arm_neon.h"
37577
37578 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQs8.c b/gcc/testsuite/gcc.target/arm/neon/vextQs8.c
37579 --- a/gcc/testsuite/gcc.target/arm/neon/vextQs8.c 2007-07-25 14:28:31.000000000 +0200
37580 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQs8.c 2010-01-25 09:50:29.355686315 +0100
37581 @@ -3,7 +3,8 @@
37582
37583 /* { dg-do assemble } */
37584 /* { dg-require-effective-target arm_neon_ok } */
37585 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37586 +/* { dg-options "-save-temps -O0" } */
37587 +/* { dg-add-options arm_neon } */
37588
37589 #include "arm_neon.h"
37590
37591 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQu16.c b/gcc/testsuite/gcc.target/arm/neon/vextQu16.c
37592 --- a/gcc/testsuite/gcc.target/arm/neon/vextQu16.c 2007-07-25 14:28:31.000000000 +0200
37593 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQu16.c 2010-01-25 09:50:29.355686315 +0100
37594 @@ -3,7 +3,8 @@
37595
37596 /* { dg-do assemble } */
37597 /* { dg-require-effective-target arm_neon_ok } */
37598 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37599 +/* { dg-options "-save-temps -O0" } */
37600 +/* { dg-add-options arm_neon } */
37601
37602 #include "arm_neon.h"
37603
37604 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQu32.c b/gcc/testsuite/gcc.target/arm/neon/vextQu32.c
37605 --- a/gcc/testsuite/gcc.target/arm/neon/vextQu32.c 2007-07-25 14:28:31.000000000 +0200
37606 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQu32.c 2010-01-25 09:50:29.355686315 +0100
37607 @@ -3,7 +3,8 @@
37608
37609 /* { dg-do assemble } */
37610 /* { dg-require-effective-target arm_neon_ok } */
37611 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37612 +/* { dg-options "-save-temps -O0" } */
37613 +/* { dg-add-options arm_neon } */
37614
37615 #include "arm_neon.h"
37616
37617 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQu64.c b/gcc/testsuite/gcc.target/arm/neon/vextQu64.c
37618 --- a/gcc/testsuite/gcc.target/arm/neon/vextQu64.c 2007-07-25 14:28:31.000000000 +0200
37619 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQu64.c 2010-01-25 09:50:29.355686315 +0100
37620 @@ -3,7 +3,8 @@
37621
37622 /* { dg-do assemble } */
37623 /* { dg-require-effective-target arm_neon_ok } */
37624 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37625 +/* { dg-options "-save-temps -O0" } */
37626 +/* { dg-add-options arm_neon } */
37627
37628 #include "arm_neon.h"
37629
37630 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextQu8.c b/gcc/testsuite/gcc.target/arm/neon/vextQu8.c
37631 --- a/gcc/testsuite/gcc.target/arm/neon/vextQu8.c 2007-07-25 14:28:31.000000000 +0200
37632 +++ b/gcc/testsuite/gcc.target/arm/neon/vextQu8.c 2010-01-25 09:50:29.355686315 +0100
37633 @@ -3,7 +3,8 @@
37634
37635 /* { dg-do assemble } */
37636 /* { dg-require-effective-target arm_neon_ok } */
37637 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37638 +/* { dg-options "-save-temps -O0" } */
37639 +/* { dg-add-options arm_neon } */
37640
37641 #include "arm_neon.h"
37642
37643 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vexts16.c b/gcc/testsuite/gcc.target/arm/neon/vexts16.c
37644 --- a/gcc/testsuite/gcc.target/arm/neon/vexts16.c 2007-07-25 14:28:31.000000000 +0200
37645 +++ b/gcc/testsuite/gcc.target/arm/neon/vexts16.c 2010-01-25 09:50:29.355686315 +0100
37646 @@ -3,7 +3,8 @@
37647
37648 /* { dg-do assemble } */
37649 /* { dg-require-effective-target arm_neon_ok } */
37650 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37651 +/* { dg-options "-save-temps -O0" } */
37652 +/* { dg-add-options arm_neon } */
37653
37654 #include "arm_neon.h"
37655
37656 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vexts32.c b/gcc/testsuite/gcc.target/arm/neon/vexts32.c
37657 --- a/gcc/testsuite/gcc.target/arm/neon/vexts32.c 2007-07-25 14:28:31.000000000 +0200
37658 +++ b/gcc/testsuite/gcc.target/arm/neon/vexts32.c 2010-01-25 09:50:29.355686315 +0100
37659 @@ -3,7 +3,8 @@
37660
37661 /* { dg-do assemble } */
37662 /* { dg-require-effective-target arm_neon_ok } */
37663 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37664 +/* { dg-options "-save-temps -O0" } */
37665 +/* { dg-add-options arm_neon } */
37666
37667 #include "arm_neon.h"
37668
37669 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vexts64.c b/gcc/testsuite/gcc.target/arm/neon/vexts64.c
37670 --- a/gcc/testsuite/gcc.target/arm/neon/vexts64.c 2007-07-25 14:28:31.000000000 +0200
37671 +++ b/gcc/testsuite/gcc.target/arm/neon/vexts64.c 2010-01-25 09:50:29.355686315 +0100
37672 @@ -3,7 +3,8 @@
37673
37674 /* { dg-do assemble } */
37675 /* { dg-require-effective-target arm_neon_ok } */
37676 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37677 +/* { dg-options "-save-temps -O0" } */
37678 +/* { dg-add-options arm_neon } */
37679
37680 #include "arm_neon.h"
37681
37682 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vexts8.c b/gcc/testsuite/gcc.target/arm/neon/vexts8.c
37683 --- a/gcc/testsuite/gcc.target/arm/neon/vexts8.c 2007-07-25 14:28:31.000000000 +0200
37684 +++ b/gcc/testsuite/gcc.target/arm/neon/vexts8.c 2010-01-25 09:50:29.355686315 +0100
37685 @@ -3,7 +3,8 @@
37686
37687 /* { dg-do assemble } */
37688 /* { dg-require-effective-target arm_neon_ok } */
37689 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37690 +/* { dg-options "-save-temps -O0" } */
37691 +/* { dg-add-options arm_neon } */
37692
37693 #include "arm_neon.h"
37694
37695 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextu16.c b/gcc/testsuite/gcc.target/arm/neon/vextu16.c
37696 --- a/gcc/testsuite/gcc.target/arm/neon/vextu16.c 2007-07-25 14:28:31.000000000 +0200
37697 +++ b/gcc/testsuite/gcc.target/arm/neon/vextu16.c 2010-01-25 09:50:29.355686315 +0100
37698 @@ -3,7 +3,8 @@
37699
37700 /* { dg-do assemble } */
37701 /* { dg-require-effective-target arm_neon_ok } */
37702 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37703 +/* { dg-options "-save-temps -O0" } */
37704 +/* { dg-add-options arm_neon } */
37705
37706 #include "arm_neon.h"
37707
37708 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextu32.c b/gcc/testsuite/gcc.target/arm/neon/vextu32.c
37709 --- a/gcc/testsuite/gcc.target/arm/neon/vextu32.c 2007-07-25 14:28:31.000000000 +0200
37710 +++ b/gcc/testsuite/gcc.target/arm/neon/vextu32.c 2010-01-25 09:50:29.355686315 +0100
37711 @@ -3,7 +3,8 @@
37712
37713 /* { dg-do assemble } */
37714 /* { dg-require-effective-target arm_neon_ok } */
37715 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37716 +/* { dg-options "-save-temps -O0" } */
37717 +/* { dg-add-options arm_neon } */
37718
37719 #include "arm_neon.h"
37720
37721 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextu64.c b/gcc/testsuite/gcc.target/arm/neon/vextu64.c
37722 --- a/gcc/testsuite/gcc.target/arm/neon/vextu64.c 2007-07-25 14:28:31.000000000 +0200
37723 +++ b/gcc/testsuite/gcc.target/arm/neon/vextu64.c 2010-01-25 09:50:29.355686315 +0100
37724 @@ -3,7 +3,8 @@
37725
37726 /* { dg-do assemble } */
37727 /* { dg-require-effective-target arm_neon_ok } */
37728 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37729 +/* { dg-options "-save-temps -O0" } */
37730 +/* { dg-add-options arm_neon } */
37731
37732 #include "arm_neon.h"
37733
37734 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vextu8.c b/gcc/testsuite/gcc.target/arm/neon/vextu8.c
37735 --- a/gcc/testsuite/gcc.target/arm/neon/vextu8.c 2007-07-25 14:28:31.000000000 +0200
37736 +++ b/gcc/testsuite/gcc.target/arm/neon/vextu8.c 2010-01-25 09:50:29.355686315 +0100
37737 @@ -3,7 +3,8 @@
37738
37739 /* { dg-do assemble } */
37740 /* { dg-require-effective-target arm_neon_ok } */
37741 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37742 +/* { dg-options "-save-temps -O0" } */
37743 +/* { dg-add-options arm_neon } */
37744
37745 #include "arm_neon.h"
37746
37747 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vfp-shift-a2t2.c b/gcc/testsuite/gcc.target/arm/neon/vfp-shift-a2t2.c
37748 --- a/gcc/testsuite/gcc.target/arm/neon/vfp-shift-a2t2.c 1970-01-01 01:00:00.000000000 +0100
37749 +++ b/gcc/testsuite/gcc.target/arm/neon/vfp-shift-a2t2.c 2010-01-25 09:50:29.355686315 +0100
37750 @@ -0,0 +1,27 @@
37751 +/* Check that NEON vector shifts support immediate values == size. /*
37752 +
37753 +/* { dg-do compile } */
37754 +/* { dg-require-effective-target arm_neon_ok } */
37755 +/* { dg-add-options arm_neon } */
37756 +
37757 +#include <arm_neon.h>
37758 +
37759 +uint16x8_t test_vshll_n_u8 (uint8x8_t a)
37760 +{
37761 + return vshll_n_u8(a, 8);
37762 +}
37763 +
37764 +uint32x4_t test_vshll_n_u16 (uint16x4_t a)
37765 +{
37766 + return vshll_n_u16(a, 16);
37767 +}
37768 +
37769 +uint64x2_t test_vshll_n_u32 (uint32x2_t a)
37770 +{
37771 + return vshll_n_u32(a, 32);
37772 +}
37773 +
37774 +/* { dg-final { scan-assembler "vshll\.u16\[ \]+\[qQ\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
37775 +/* { dg-final { scan-assembler "vshll\.u32\[ \]+\[qQ\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
37776 +/* { dg-final { scan-assembler "vshll\.u8\[ \]+\[qQ\]\[0-9\]+, \[dD\]\[0-9\]+, #\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */
37777 +/* { dg-final { cleanup-saved-temps } } */
37778 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highf32.c b/gcc/testsuite/gcc.target/arm/neon/vget_highf32.c
37779 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highf32.c 2007-07-25 14:28:31.000000000 +0200
37780 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highf32.c 2010-01-25 09:50:29.355686315 +0100
37781 @@ -3,7 +3,8 @@
37782
37783 /* { dg-do assemble } */
37784 /* { dg-require-effective-target arm_neon_ok } */
37785 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37786 +/* { dg-options "-save-temps -O0" } */
37787 +/* { dg-add-options arm_neon } */
37788
37789 #include "arm_neon.h"
37790
37791 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highp16.c b/gcc/testsuite/gcc.target/arm/neon/vget_highp16.c
37792 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highp16.c 2007-07-25 14:28:31.000000000 +0200
37793 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highp16.c 2010-01-25 09:50:29.365686888 +0100
37794 @@ -3,7 +3,8 @@
37795
37796 /* { dg-do assemble } */
37797 /* { dg-require-effective-target arm_neon_ok } */
37798 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37799 +/* { dg-options "-save-temps -O0" } */
37800 +/* { dg-add-options arm_neon } */
37801
37802 #include "arm_neon.h"
37803
37804 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highp8.c b/gcc/testsuite/gcc.target/arm/neon/vget_highp8.c
37805 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highp8.c 2007-07-25 14:28:31.000000000 +0200
37806 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highp8.c 2010-01-25 09:50:29.365686888 +0100
37807 @@ -3,7 +3,8 @@
37808
37809 /* { dg-do assemble } */
37810 /* { dg-require-effective-target arm_neon_ok } */
37811 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37812 +/* { dg-options "-save-temps -O0" } */
37813 +/* { dg-add-options arm_neon } */
37814
37815 #include "arm_neon.h"
37816
37817 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highs16.c b/gcc/testsuite/gcc.target/arm/neon/vget_highs16.c
37818 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highs16.c 2007-07-25 14:28:31.000000000 +0200
37819 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highs16.c 2010-01-25 09:50:29.365686888 +0100
37820 @@ -3,7 +3,8 @@
37821
37822 /* { dg-do assemble } */
37823 /* { dg-require-effective-target arm_neon_ok } */
37824 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37825 +/* { dg-options "-save-temps -O0" } */
37826 +/* { dg-add-options arm_neon } */
37827
37828 #include "arm_neon.h"
37829
37830 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highs32.c b/gcc/testsuite/gcc.target/arm/neon/vget_highs32.c
37831 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highs32.c 2007-07-25 14:28:31.000000000 +0200
37832 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highs32.c 2010-01-25 09:50:29.365686888 +0100
37833 @@ -3,7 +3,8 @@
37834
37835 /* { dg-do assemble } */
37836 /* { dg-require-effective-target arm_neon_ok } */
37837 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37838 +/* { dg-options "-save-temps -O0" } */
37839 +/* { dg-add-options arm_neon } */
37840
37841 #include "arm_neon.h"
37842
37843 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highs64.c b/gcc/testsuite/gcc.target/arm/neon/vget_highs64.c
37844 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highs64.c 2007-07-25 14:28:31.000000000 +0200
37845 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highs64.c 2010-01-25 09:50:29.365686888 +0100
37846 @@ -3,7 +3,8 @@
37847
37848 /* { dg-do assemble } */
37849 /* { dg-require-effective-target arm_neon_ok } */
37850 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37851 +/* { dg-options "-save-temps -O0" } */
37852 +/* { dg-add-options arm_neon } */
37853
37854 #include "arm_neon.h"
37855
37856 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highs8.c b/gcc/testsuite/gcc.target/arm/neon/vget_highs8.c
37857 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highs8.c 2007-07-25 14:28:31.000000000 +0200
37858 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highs8.c 2010-01-25 09:50:29.365686888 +0100
37859 @@ -3,7 +3,8 @@
37860
37861 /* { dg-do assemble } */
37862 /* { dg-require-effective-target arm_neon_ok } */
37863 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37864 +/* { dg-options "-save-temps -O0" } */
37865 +/* { dg-add-options arm_neon } */
37866
37867 #include "arm_neon.h"
37868
37869 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highu16.c b/gcc/testsuite/gcc.target/arm/neon/vget_highu16.c
37870 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highu16.c 2007-07-25 14:28:31.000000000 +0200
37871 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highu16.c 2010-01-25 09:50:29.365686888 +0100
37872 @@ -3,7 +3,8 @@
37873
37874 /* { dg-do assemble } */
37875 /* { dg-require-effective-target arm_neon_ok } */
37876 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37877 +/* { dg-options "-save-temps -O0" } */
37878 +/* { dg-add-options arm_neon } */
37879
37880 #include "arm_neon.h"
37881
37882 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highu32.c b/gcc/testsuite/gcc.target/arm/neon/vget_highu32.c
37883 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highu32.c 2007-07-25 14:28:31.000000000 +0200
37884 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highu32.c 2010-01-25 09:50:29.365686888 +0100
37885 @@ -3,7 +3,8 @@
37886
37887 /* { dg-do assemble } */
37888 /* { dg-require-effective-target arm_neon_ok } */
37889 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37890 +/* { dg-options "-save-temps -O0" } */
37891 +/* { dg-add-options arm_neon } */
37892
37893 #include "arm_neon.h"
37894
37895 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highu64.c b/gcc/testsuite/gcc.target/arm/neon/vget_highu64.c
37896 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highu64.c 2007-07-25 14:28:31.000000000 +0200
37897 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highu64.c 2010-01-25 09:50:29.365686888 +0100
37898 @@ -3,7 +3,8 @@
37899
37900 /* { dg-do assemble } */
37901 /* { dg-require-effective-target arm_neon_ok } */
37902 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37903 +/* { dg-options "-save-temps -O0" } */
37904 +/* { dg-add-options arm_neon } */
37905
37906 #include "arm_neon.h"
37907
37908 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_highu8.c b/gcc/testsuite/gcc.target/arm/neon/vget_highu8.c
37909 --- a/gcc/testsuite/gcc.target/arm/neon/vget_highu8.c 2007-07-25 14:28:31.000000000 +0200
37910 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_highu8.c 2010-01-25 09:50:29.365686888 +0100
37911 @@ -3,7 +3,8 @@
37912
37913 /* { dg-do assemble } */
37914 /* { dg-require-effective-target arm_neon_ok } */
37915 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37916 +/* { dg-options "-save-temps -O0" } */
37917 +/* { dg-add-options arm_neon } */
37918
37919 #include "arm_neon.h"
37920
37921 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vget_lanef32.c
37922 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lanef32.c 2007-07-30 15:48:43.000000000 +0200
37923 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lanef32.c 2010-01-25 09:50:29.365686888 +0100
37924 @@ -3,7 +3,8 @@
37925
37926 /* { dg-do assemble } */
37927 /* { dg-require-effective-target arm_neon_ok } */
37928 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37929 +/* { dg-options "-save-temps -O0" } */
37930 +/* { dg-add-options arm_neon } */
37931
37932 #include "arm_neon.h"
37933
37934 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vget_lanep16.c
37935 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lanep16.c 2007-07-25 14:28:31.000000000 +0200
37936 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lanep16.c 2010-01-25 09:50:29.365686888 +0100
37937 @@ -3,7 +3,8 @@
37938
37939 /* { dg-do assemble } */
37940 /* { dg-require-effective-target arm_neon_ok } */
37941 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37942 +/* { dg-options "-save-temps -O0" } */
37943 +/* { dg-add-options arm_neon } */
37944
37945 #include "arm_neon.h"
37946
37947 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vget_lanep8.c
37948 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lanep8.c 2007-07-25 14:28:31.000000000 +0200
37949 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lanep8.c 2010-01-25 09:50:29.365686888 +0100
37950 @@ -3,7 +3,8 @@
37951
37952 /* { dg-do assemble } */
37953 /* { dg-require-effective-target arm_neon_ok } */
37954 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37955 +/* { dg-options "-save-temps -O0" } */
37956 +/* { dg-add-options arm_neon } */
37957
37958 #include "arm_neon.h"
37959
37960 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vget_lanes16.c
37961 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lanes16.c 2007-07-25 14:28:31.000000000 +0200
37962 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lanes16.c 2010-01-25 09:50:29.365686888 +0100
37963 @@ -3,7 +3,8 @@
37964
37965 /* { dg-do assemble } */
37966 /* { dg-require-effective-target arm_neon_ok } */
37967 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37968 +/* { dg-options "-save-temps -O0" } */
37969 +/* { dg-add-options arm_neon } */
37970
37971 #include "arm_neon.h"
37972
37973 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vget_lanes32.c
37974 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lanes32.c 2007-07-30 15:48:43.000000000 +0200
37975 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lanes32.c 2010-01-25 09:50:29.365686888 +0100
37976 @@ -3,7 +3,8 @@
37977
37978 /* { dg-do assemble } */
37979 /* { dg-require-effective-target arm_neon_ok } */
37980 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37981 +/* { dg-options "-save-temps -O0" } */
37982 +/* { dg-add-options arm_neon } */
37983
37984 #include "arm_neon.h"
37985
37986 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vget_lanes64.c
37987 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lanes64.c 2007-07-25 14:28:31.000000000 +0200
37988 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lanes64.c 2010-01-25 09:50:29.365686888 +0100
37989 @@ -3,7 +3,8 @@
37990
37991 /* { dg-do assemble } */
37992 /* { dg-require-effective-target arm_neon_ok } */
37993 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
37994 +/* { dg-options "-save-temps -O0" } */
37995 +/* { dg-add-options arm_neon } */
37996
37997 #include "arm_neon.h"
37998
37999 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vget_lanes8.c
38000 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lanes8.c 2007-07-25 14:28:31.000000000 +0200
38001 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lanes8.c 2010-01-25 09:50:29.365686888 +0100
38002 @@ -3,7 +3,8 @@
38003
38004 /* { dg-do assemble } */
38005 /* { dg-require-effective-target arm_neon_ok } */
38006 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38007 +/* { dg-options "-save-temps -O0" } */
38008 +/* { dg-add-options arm_neon } */
38009
38010 #include "arm_neon.h"
38011
38012 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vget_laneu16.c
38013 --- a/gcc/testsuite/gcc.target/arm/neon/vget_laneu16.c 2007-07-25 14:28:31.000000000 +0200
38014 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_laneu16.c 2010-01-25 09:50:29.365686888 +0100
38015 @@ -3,7 +3,8 @@
38016
38017 /* { dg-do assemble } */
38018 /* { dg-require-effective-target arm_neon_ok } */
38019 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38020 +/* { dg-options "-save-temps -O0" } */
38021 +/* { dg-add-options arm_neon } */
38022
38023 #include "arm_neon.h"
38024
38025 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vget_laneu32.c
38026 --- a/gcc/testsuite/gcc.target/arm/neon/vget_laneu32.c 2007-07-30 15:48:43.000000000 +0200
38027 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_laneu32.c 2010-01-25 09:50:29.365686888 +0100
38028 @@ -3,7 +3,8 @@
38029
38030 /* { dg-do assemble } */
38031 /* { dg-require-effective-target arm_neon_ok } */
38032 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38033 +/* { dg-options "-save-temps -O0" } */
38034 +/* { dg-add-options arm_neon } */
38035
38036 #include "arm_neon.h"
38037
38038 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vget_laneu64.c
38039 --- a/gcc/testsuite/gcc.target/arm/neon/vget_laneu64.c 2007-07-25 14:28:31.000000000 +0200
38040 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_laneu64.c 2010-01-25 09:50:29.365686888 +0100
38041 @@ -3,7 +3,8 @@
38042
38043 /* { dg-do assemble } */
38044 /* { dg-require-effective-target arm_neon_ok } */
38045 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38046 +/* { dg-options "-save-temps -O0" } */
38047 +/* { dg-add-options arm_neon } */
38048
38049 #include "arm_neon.h"
38050
38051 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vget_laneu8.c
38052 --- a/gcc/testsuite/gcc.target/arm/neon/vget_laneu8.c 2007-07-25 14:28:31.000000000 +0200
38053 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_laneu8.c 2010-01-25 09:50:29.365686888 +0100
38054 @@ -3,7 +3,8 @@
38055
38056 /* { dg-do assemble } */
38057 /* { dg-require-effective-target arm_neon_ok } */
38058 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38059 +/* { dg-options "-save-temps -O0" } */
38060 +/* { dg-add-options arm_neon } */
38061
38062 #include "arm_neon.h"
38063
38064 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c b/gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c
38065 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c 2007-07-25 14:28:31.000000000 +0200
38066 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c 2010-01-25 09:50:29.365686888 +0100
38067 @@ -3,7 +3,8 @@
38068
38069 /* { dg-do assemble } */
38070 /* { dg-require-effective-target arm_neon_ok } */
38071 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38072 +/* { dg-options "-save-temps -O0" } */
38073 +/* { dg-add-options arm_neon } */
38074
38075 #include "arm_neon.h"
38076
38077 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c b/gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c
38078 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c 2007-07-25 14:28:31.000000000 +0200
38079 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c 2010-01-25 09:50:29.365686888 +0100
38080 @@ -3,7 +3,8 @@
38081
38082 /* { dg-do assemble } */
38083 /* { dg-require-effective-target arm_neon_ok } */
38084 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38085 +/* { dg-options "-save-temps -O0" } */
38086 +/* { dg-add-options arm_neon } */
38087
38088 #include "arm_neon.h"
38089
38090 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c b/gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c
38091 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c 2007-07-25 14:28:31.000000000 +0200
38092 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c 2010-01-25 09:50:29.365686888 +0100
38093 @@ -3,7 +3,8 @@
38094
38095 /* { dg-do assemble } */
38096 /* { dg-require-effective-target arm_neon_ok } */
38097 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38098 +/* { dg-options "-save-temps -O0" } */
38099 +/* { dg-add-options arm_neon } */
38100
38101 #include "arm_neon.h"
38102
38103 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lows16.c b/gcc/testsuite/gcc.target/arm/neon/vget_lows16.c
38104 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lows16.c 2007-07-25 14:28:31.000000000 +0200
38105 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lows16.c 2010-01-25 09:50:29.365686888 +0100
38106 @@ -3,7 +3,8 @@
38107
38108 /* { dg-do assemble } */
38109 /* { dg-require-effective-target arm_neon_ok } */
38110 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38111 +/* { dg-options "-save-temps -O0" } */
38112 +/* { dg-add-options arm_neon } */
38113
38114 #include "arm_neon.h"
38115
38116 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lows32.c b/gcc/testsuite/gcc.target/arm/neon/vget_lows32.c
38117 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lows32.c 2007-07-25 14:28:31.000000000 +0200
38118 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lows32.c 2010-01-25 09:50:29.365686888 +0100
38119 @@ -3,7 +3,8 @@
38120
38121 /* { dg-do assemble } */
38122 /* { dg-require-effective-target arm_neon_ok } */
38123 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38124 +/* { dg-options "-save-temps -O0" } */
38125 +/* { dg-add-options arm_neon } */
38126
38127 #include "arm_neon.h"
38128
38129 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lows64.c b/gcc/testsuite/gcc.target/arm/neon/vget_lows64.c
38130 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lows64.c 2007-07-25 14:28:31.000000000 +0200
38131 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lows64.c 2010-01-25 09:50:29.365686888 +0100
38132 @@ -3,7 +3,8 @@
38133
38134 /* { dg-do assemble } */
38135 /* { dg-require-effective-target arm_neon_ok } */
38136 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38137 +/* { dg-options "-save-temps -O0" } */
38138 +/* { dg-add-options arm_neon } */
38139
38140 #include "arm_neon.h"
38141
38142 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lows8.c b/gcc/testsuite/gcc.target/arm/neon/vget_lows8.c
38143 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lows8.c 2007-07-25 14:28:31.000000000 +0200
38144 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lows8.c 2010-01-25 09:50:29.365686888 +0100
38145 @@ -3,7 +3,8 @@
38146
38147 /* { dg-do assemble } */
38148 /* { dg-require-effective-target arm_neon_ok } */
38149 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38150 +/* { dg-options "-save-temps -O0" } */
38151 +/* { dg-add-options arm_neon } */
38152
38153 #include "arm_neon.h"
38154
38155 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c b/gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c
38156 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c 2007-07-25 14:28:31.000000000 +0200
38157 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c 2010-01-25 09:50:29.365686888 +0100
38158 @@ -3,7 +3,8 @@
38159
38160 /* { dg-do assemble } */
38161 /* { dg-require-effective-target arm_neon_ok } */
38162 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38163 +/* { dg-options "-save-temps -O0" } */
38164 +/* { dg-add-options arm_neon } */
38165
38166 #include "arm_neon.h"
38167
38168 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c b/gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c
38169 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c 2007-07-25 14:28:31.000000000 +0200
38170 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c 2010-01-25 09:50:29.365686888 +0100
38171 @@ -3,7 +3,8 @@
38172
38173 /* { dg-do assemble } */
38174 /* { dg-require-effective-target arm_neon_ok } */
38175 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38176 +/* { dg-options "-save-temps -O0" } */
38177 +/* { dg-add-options arm_neon } */
38178
38179 #include "arm_neon.h"
38180
38181 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c b/gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c
38182 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c 2007-07-25 14:28:31.000000000 +0200
38183 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c 2010-01-25 09:50:29.365686888 +0100
38184 @@ -3,7 +3,8 @@
38185
38186 /* { dg-do assemble } */
38187 /* { dg-require-effective-target arm_neon_ok } */
38188 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38189 +/* { dg-options "-save-temps -O0" } */
38190 +/* { dg-add-options arm_neon } */
38191
38192 #include "arm_neon.h"
38193
38194 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c b/gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c
38195 --- a/gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c 2007-07-25 14:28:31.000000000 +0200
38196 +++ b/gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c 2010-01-25 09:50:29.365686888 +0100
38197 @@ -3,7 +3,8 @@
38198
38199 /* { dg-do assemble } */
38200 /* { dg-require-effective-target arm_neon_ok } */
38201 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38202 +/* { dg-options "-save-temps -O0" } */
38203 +/* { dg-add-options arm_neon } */
38204
38205 #include "arm_neon.h"
38206
38207 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanef32.c
38208 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanef32.c 2007-07-30 15:48:43.000000000 +0200
38209 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanef32.c 2010-01-25 09:50:29.365686888 +0100
38210 @@ -3,7 +3,8 @@
38211
38212 /* { dg-do assemble } */
38213 /* { dg-require-effective-target arm_neon_ok } */
38214 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38215 +/* { dg-options "-save-temps -O0" } */
38216 +/* { dg-add-options arm_neon } */
38217
38218 #include "arm_neon.h"
38219
38220 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanep16.c
38221 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanep16.c 2007-07-25 14:28:31.000000000 +0200
38222 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanep16.c 2010-01-25 09:50:29.365686888 +0100
38223 @@ -3,7 +3,8 @@
38224
38225 /* { dg-do assemble } */
38226 /* { dg-require-effective-target arm_neon_ok } */
38227 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38228 +/* { dg-options "-save-temps -O0" } */
38229 +/* { dg-add-options arm_neon } */
38230
38231 #include "arm_neon.h"
38232
38233 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanep8.c
38234 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanep8.c 2007-07-25 14:28:31.000000000 +0200
38235 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanep8.c 2010-01-25 09:50:29.365686888 +0100
38236 @@ -3,7 +3,8 @@
38237
38238 /* { dg-do assemble } */
38239 /* { dg-require-effective-target arm_neon_ok } */
38240 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38241 +/* { dg-options "-save-temps -O0" } */
38242 +/* { dg-add-options arm_neon } */
38243
38244 #include "arm_neon.h"
38245
38246 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes16.c
38247 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes16.c 2007-07-25 14:28:31.000000000 +0200
38248 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes16.c 2010-01-25 09:50:29.365686888 +0100
38249 @@ -3,7 +3,8 @@
38250
38251 /* { dg-do assemble } */
38252 /* { dg-require-effective-target arm_neon_ok } */
38253 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38254 +/* { dg-options "-save-temps -O0" } */
38255 +/* { dg-add-options arm_neon } */
38256
38257 #include "arm_neon.h"
38258
38259 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes32.c
38260 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes32.c 2007-07-30 15:48:43.000000000 +0200
38261 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes32.c 2010-01-25 09:50:29.365686888 +0100
38262 @@ -3,7 +3,8 @@
38263
38264 /* { dg-do assemble } */
38265 /* { dg-require-effective-target arm_neon_ok } */
38266 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38267 +/* { dg-options "-save-temps -O0" } */
38268 +/* { dg-add-options arm_neon } */
38269
38270 #include "arm_neon.h"
38271
38272 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes64.c
38273 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes64.c 2007-07-25 14:28:31.000000000 +0200
38274 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes64.c 2010-01-25 09:50:29.365686888 +0100
38275 @@ -3,7 +3,8 @@
38276
38277 /* { dg-do assemble } */
38278 /* { dg-require-effective-target arm_neon_ok } */
38279 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38280 +/* { dg-options "-save-temps -O0" } */
38281 +/* { dg-add-options arm_neon } */
38282
38283 #include "arm_neon.h"
38284
38285 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes8.c
38286 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes8.c 2007-07-25 14:28:31.000000000 +0200
38287 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_lanes8.c 2010-01-25 09:50:29.365686888 +0100
38288 @@ -3,7 +3,8 @@
38289
38290 /* { dg-do assemble } */
38291 /* { dg-require-effective-target arm_neon_ok } */
38292 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38293 +/* { dg-options "-save-temps -O0" } */
38294 +/* { dg-add-options arm_neon } */
38295
38296 #include "arm_neon.h"
38297
38298 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu16.c
38299 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu16.c 2007-07-25 14:28:31.000000000 +0200
38300 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu16.c 2010-01-25 09:50:29.365686888 +0100
38301 @@ -3,7 +3,8 @@
38302
38303 /* { dg-do assemble } */
38304 /* { dg-require-effective-target arm_neon_ok } */
38305 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38306 +/* { dg-options "-save-temps -O0" } */
38307 +/* { dg-add-options arm_neon } */
38308
38309 #include "arm_neon.h"
38310
38311 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu32.c
38312 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu32.c 2007-07-30 15:48:43.000000000 +0200
38313 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu32.c 2010-01-25 09:50:29.365686888 +0100
38314 @@ -3,7 +3,8 @@
38315
38316 /* { dg-do assemble } */
38317 /* { dg-require-effective-target arm_neon_ok } */
38318 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38319 +/* { dg-options "-save-temps -O0" } */
38320 +/* { dg-add-options arm_neon } */
38321
38322 #include "arm_neon.h"
38323
38324 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu64.c
38325 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu64.c 2007-07-25 14:28:31.000000000 +0200
38326 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu64.c 2010-01-25 09:50:29.365686888 +0100
38327 @@ -3,7 +3,8 @@
38328
38329 /* { dg-do assemble } */
38330 /* { dg-require-effective-target arm_neon_ok } */
38331 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38332 +/* { dg-options "-save-temps -O0" } */
38333 +/* { dg-add-options arm_neon } */
38334
38335 #include "arm_neon.h"
38336
38337 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu8.c
38338 --- a/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu8.c 2007-07-25 14:28:31.000000000 +0200
38339 +++ b/gcc/testsuite/gcc.target/arm/neon/vgetQ_laneu8.c 2010-01-25 09:50:29.365686888 +0100
38340 @@ -3,7 +3,8 @@
38341
38342 /* { dg-do assemble } */
38343 /* { dg-require-effective-target arm_neon_ok } */
38344 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38345 +/* { dg-options "-save-temps -O0" } */
38346 +/* { dg-add-options arm_neon } */
38347
38348 #include "arm_neon.h"
38349
38350 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddQs16.c b/gcc/testsuite/gcc.target/arm/neon/vhaddQs16.c
38351 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddQs16.c 2007-07-25 14:28:31.000000000 +0200
38352 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddQs16.c 2010-01-25 09:50:29.365686888 +0100
38353 @@ -3,7 +3,8 @@
38354
38355 /* { dg-do assemble } */
38356 /* { dg-require-effective-target arm_neon_ok } */
38357 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38358 +/* { dg-options "-save-temps -O0" } */
38359 +/* { dg-add-options arm_neon } */
38360
38361 #include "arm_neon.h"
38362
38363 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddQs32.c b/gcc/testsuite/gcc.target/arm/neon/vhaddQs32.c
38364 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddQs32.c 2007-07-25 14:28:31.000000000 +0200
38365 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddQs32.c 2010-01-25 09:50:29.365686888 +0100
38366 @@ -3,7 +3,8 @@
38367
38368 /* { dg-do assemble } */
38369 /* { dg-require-effective-target arm_neon_ok } */
38370 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38371 +/* { dg-options "-save-temps -O0" } */
38372 +/* { dg-add-options arm_neon } */
38373
38374 #include "arm_neon.h"
38375
38376 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddQs8.c b/gcc/testsuite/gcc.target/arm/neon/vhaddQs8.c
38377 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddQs8.c 2007-07-25 14:28:31.000000000 +0200
38378 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddQs8.c 2010-01-25 09:50:29.365686888 +0100
38379 @@ -3,7 +3,8 @@
38380
38381 /* { dg-do assemble } */
38382 /* { dg-require-effective-target arm_neon_ok } */
38383 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38384 +/* { dg-options "-save-temps -O0" } */
38385 +/* { dg-add-options arm_neon } */
38386
38387 #include "arm_neon.h"
38388
38389 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddQu16.c b/gcc/testsuite/gcc.target/arm/neon/vhaddQu16.c
38390 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddQu16.c 2007-07-25 14:28:31.000000000 +0200
38391 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddQu16.c 2010-01-25 09:50:29.365686888 +0100
38392 @@ -3,7 +3,8 @@
38393
38394 /* { dg-do assemble } */
38395 /* { dg-require-effective-target arm_neon_ok } */
38396 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38397 +/* { dg-options "-save-temps -O0" } */
38398 +/* { dg-add-options arm_neon } */
38399
38400 #include "arm_neon.h"
38401
38402 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddQu32.c b/gcc/testsuite/gcc.target/arm/neon/vhaddQu32.c
38403 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddQu32.c 2007-07-25 14:28:31.000000000 +0200
38404 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddQu32.c 2010-01-25 09:50:29.365686888 +0100
38405 @@ -3,7 +3,8 @@
38406
38407 /* { dg-do assemble } */
38408 /* { dg-require-effective-target arm_neon_ok } */
38409 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38410 +/* { dg-options "-save-temps -O0" } */
38411 +/* { dg-add-options arm_neon } */
38412
38413 #include "arm_neon.h"
38414
38415 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddQu8.c b/gcc/testsuite/gcc.target/arm/neon/vhaddQu8.c
38416 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddQu8.c 2007-07-25 14:28:31.000000000 +0200
38417 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddQu8.c 2010-01-25 09:50:29.365686888 +0100
38418 @@ -3,7 +3,8 @@
38419
38420 /* { dg-do assemble } */
38421 /* { dg-require-effective-target arm_neon_ok } */
38422 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38423 +/* { dg-options "-save-temps -O0" } */
38424 +/* { dg-add-options arm_neon } */
38425
38426 #include "arm_neon.h"
38427
38428 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhadds16.c b/gcc/testsuite/gcc.target/arm/neon/vhadds16.c
38429 --- a/gcc/testsuite/gcc.target/arm/neon/vhadds16.c 2007-07-25 14:28:31.000000000 +0200
38430 +++ b/gcc/testsuite/gcc.target/arm/neon/vhadds16.c 2010-01-25 09:50:29.365686888 +0100
38431 @@ -3,7 +3,8 @@
38432
38433 /* { dg-do assemble } */
38434 /* { dg-require-effective-target arm_neon_ok } */
38435 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38436 +/* { dg-options "-save-temps -O0" } */
38437 +/* { dg-add-options arm_neon } */
38438
38439 #include "arm_neon.h"
38440
38441 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhadds32.c b/gcc/testsuite/gcc.target/arm/neon/vhadds32.c
38442 --- a/gcc/testsuite/gcc.target/arm/neon/vhadds32.c 2007-07-25 14:28:31.000000000 +0200
38443 +++ b/gcc/testsuite/gcc.target/arm/neon/vhadds32.c 2010-01-25 09:50:29.365686888 +0100
38444 @@ -3,7 +3,8 @@
38445
38446 /* { dg-do assemble } */
38447 /* { dg-require-effective-target arm_neon_ok } */
38448 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38449 +/* { dg-options "-save-temps -O0" } */
38450 +/* { dg-add-options arm_neon } */
38451
38452 #include "arm_neon.h"
38453
38454 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhadds8.c b/gcc/testsuite/gcc.target/arm/neon/vhadds8.c
38455 --- a/gcc/testsuite/gcc.target/arm/neon/vhadds8.c 2007-07-25 14:28:31.000000000 +0200
38456 +++ b/gcc/testsuite/gcc.target/arm/neon/vhadds8.c 2010-01-25 09:50:29.365686888 +0100
38457 @@ -3,7 +3,8 @@
38458
38459 /* { dg-do assemble } */
38460 /* { dg-require-effective-target arm_neon_ok } */
38461 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38462 +/* { dg-options "-save-temps -O0" } */
38463 +/* { dg-add-options arm_neon } */
38464
38465 #include "arm_neon.h"
38466
38467 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddu16.c b/gcc/testsuite/gcc.target/arm/neon/vhaddu16.c
38468 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddu16.c 2007-07-25 14:28:31.000000000 +0200
38469 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddu16.c 2010-01-25 09:50:29.365686888 +0100
38470 @@ -3,7 +3,8 @@
38471
38472 /* { dg-do assemble } */
38473 /* { dg-require-effective-target arm_neon_ok } */
38474 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38475 +/* { dg-options "-save-temps -O0" } */
38476 +/* { dg-add-options arm_neon } */
38477
38478 #include "arm_neon.h"
38479
38480 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddu32.c b/gcc/testsuite/gcc.target/arm/neon/vhaddu32.c
38481 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddu32.c 2007-07-25 14:28:31.000000000 +0200
38482 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddu32.c 2010-01-25 09:50:29.365686888 +0100
38483 @@ -3,7 +3,8 @@
38484
38485 /* { dg-do assemble } */
38486 /* { dg-require-effective-target arm_neon_ok } */
38487 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38488 +/* { dg-options "-save-temps -O0" } */
38489 +/* { dg-add-options arm_neon } */
38490
38491 #include "arm_neon.h"
38492
38493 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhaddu8.c b/gcc/testsuite/gcc.target/arm/neon/vhaddu8.c
38494 --- a/gcc/testsuite/gcc.target/arm/neon/vhaddu8.c 2007-07-25 14:28:31.000000000 +0200
38495 +++ b/gcc/testsuite/gcc.target/arm/neon/vhaddu8.c 2010-01-25 09:50:29.365686888 +0100
38496 @@ -3,7 +3,8 @@
38497
38498 /* { dg-do assemble } */
38499 /* { dg-require-effective-target arm_neon_ok } */
38500 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38501 +/* { dg-options "-save-temps -O0" } */
38502 +/* { dg-add-options arm_neon } */
38503
38504 #include "arm_neon.h"
38505
38506 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubQs16.c b/gcc/testsuite/gcc.target/arm/neon/vhsubQs16.c
38507 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubQs16.c 2007-07-25 14:28:31.000000000 +0200
38508 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubQs16.c 2010-01-25 09:50:29.365686888 +0100
38509 @@ -3,7 +3,8 @@
38510
38511 /* { dg-do assemble } */
38512 /* { dg-require-effective-target arm_neon_ok } */
38513 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38514 +/* { dg-options "-save-temps -O0" } */
38515 +/* { dg-add-options arm_neon } */
38516
38517 #include "arm_neon.h"
38518
38519 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubQs32.c b/gcc/testsuite/gcc.target/arm/neon/vhsubQs32.c
38520 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubQs32.c 2007-07-25 14:28:31.000000000 +0200
38521 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubQs32.c 2010-01-25 09:50:29.365686888 +0100
38522 @@ -3,7 +3,8 @@
38523
38524 /* { dg-do assemble } */
38525 /* { dg-require-effective-target arm_neon_ok } */
38526 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38527 +/* { dg-options "-save-temps -O0" } */
38528 +/* { dg-add-options arm_neon } */
38529
38530 #include "arm_neon.h"
38531
38532 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubQs8.c b/gcc/testsuite/gcc.target/arm/neon/vhsubQs8.c
38533 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubQs8.c 2007-07-25 14:28:31.000000000 +0200
38534 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubQs8.c 2010-01-25 09:50:29.365686888 +0100
38535 @@ -3,7 +3,8 @@
38536
38537 /* { dg-do assemble } */
38538 /* { dg-require-effective-target arm_neon_ok } */
38539 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38540 +/* { dg-options "-save-temps -O0" } */
38541 +/* { dg-add-options arm_neon } */
38542
38543 #include "arm_neon.h"
38544
38545 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubQu16.c b/gcc/testsuite/gcc.target/arm/neon/vhsubQu16.c
38546 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubQu16.c 2007-07-25 14:28:31.000000000 +0200
38547 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubQu16.c 2010-01-25 09:50:29.365686888 +0100
38548 @@ -3,7 +3,8 @@
38549
38550 /* { dg-do assemble } */
38551 /* { dg-require-effective-target arm_neon_ok } */
38552 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38553 +/* { dg-options "-save-temps -O0" } */
38554 +/* { dg-add-options arm_neon } */
38555
38556 #include "arm_neon.h"
38557
38558 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubQu32.c b/gcc/testsuite/gcc.target/arm/neon/vhsubQu32.c
38559 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubQu32.c 2007-07-25 14:28:31.000000000 +0200
38560 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubQu32.c 2010-01-25 09:50:29.365686888 +0100
38561 @@ -3,7 +3,8 @@
38562
38563 /* { dg-do assemble } */
38564 /* { dg-require-effective-target arm_neon_ok } */
38565 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38566 +/* { dg-options "-save-temps -O0" } */
38567 +/* { dg-add-options arm_neon } */
38568
38569 #include "arm_neon.h"
38570
38571 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubQu8.c b/gcc/testsuite/gcc.target/arm/neon/vhsubQu8.c
38572 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubQu8.c 2007-07-25 14:28:31.000000000 +0200
38573 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubQu8.c 2010-01-25 09:50:29.365686888 +0100
38574 @@ -3,7 +3,8 @@
38575
38576 /* { dg-do assemble } */
38577 /* { dg-require-effective-target arm_neon_ok } */
38578 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38579 +/* { dg-options "-save-temps -O0" } */
38580 +/* { dg-add-options arm_neon } */
38581
38582 #include "arm_neon.h"
38583
38584 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubs16.c b/gcc/testsuite/gcc.target/arm/neon/vhsubs16.c
38585 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubs16.c 2007-07-25 14:28:31.000000000 +0200
38586 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubs16.c 2010-01-25 09:50:29.365686888 +0100
38587 @@ -3,7 +3,8 @@
38588
38589 /* { dg-do assemble } */
38590 /* { dg-require-effective-target arm_neon_ok } */
38591 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38592 +/* { dg-options "-save-temps -O0" } */
38593 +/* { dg-add-options arm_neon } */
38594
38595 #include "arm_neon.h"
38596
38597 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubs32.c b/gcc/testsuite/gcc.target/arm/neon/vhsubs32.c
38598 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubs32.c 2007-07-25 14:28:31.000000000 +0200
38599 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubs32.c 2010-01-25 09:50:29.365686888 +0100
38600 @@ -3,7 +3,8 @@
38601
38602 /* { dg-do assemble } */
38603 /* { dg-require-effective-target arm_neon_ok } */
38604 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38605 +/* { dg-options "-save-temps -O0" } */
38606 +/* { dg-add-options arm_neon } */
38607
38608 #include "arm_neon.h"
38609
38610 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubs8.c b/gcc/testsuite/gcc.target/arm/neon/vhsubs8.c
38611 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubs8.c 2007-07-25 14:28:31.000000000 +0200
38612 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubs8.c 2010-01-25 09:50:29.365686888 +0100
38613 @@ -3,7 +3,8 @@
38614
38615 /* { dg-do assemble } */
38616 /* { dg-require-effective-target arm_neon_ok } */
38617 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38618 +/* { dg-options "-save-temps -O0" } */
38619 +/* { dg-add-options arm_neon } */
38620
38621 #include "arm_neon.h"
38622
38623 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubu16.c b/gcc/testsuite/gcc.target/arm/neon/vhsubu16.c
38624 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubu16.c 2007-07-25 14:28:31.000000000 +0200
38625 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubu16.c 2010-01-25 09:50:29.365686888 +0100
38626 @@ -3,7 +3,8 @@
38627
38628 /* { dg-do assemble } */
38629 /* { dg-require-effective-target arm_neon_ok } */
38630 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38631 +/* { dg-options "-save-temps -O0" } */
38632 +/* { dg-add-options arm_neon } */
38633
38634 #include "arm_neon.h"
38635
38636 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubu32.c b/gcc/testsuite/gcc.target/arm/neon/vhsubu32.c
38637 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubu32.c 2007-07-25 14:28:31.000000000 +0200
38638 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubu32.c 2010-01-25 09:50:29.365686888 +0100
38639 @@ -3,7 +3,8 @@
38640
38641 /* { dg-do assemble } */
38642 /* { dg-require-effective-target arm_neon_ok } */
38643 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38644 +/* { dg-options "-save-temps -O0" } */
38645 +/* { dg-add-options arm_neon } */
38646
38647 #include "arm_neon.h"
38648
38649 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vhsubu8.c b/gcc/testsuite/gcc.target/arm/neon/vhsubu8.c
38650 --- a/gcc/testsuite/gcc.target/arm/neon/vhsubu8.c 2007-07-25 14:28:31.000000000 +0200
38651 +++ b/gcc/testsuite/gcc.target/arm/neon/vhsubu8.c 2010-01-25 09:50:29.365686888 +0100
38652 @@ -3,7 +3,8 @@
38653
38654 /* { dg-do assemble } */
38655 /* { dg-require-effective-target arm_neon_ok } */
38656 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38657 +/* { dg-options "-save-temps -O0" } */
38658 +/* { dg-add-options arm_neon } */
38659
38660 #include "arm_neon.h"
38661
38662 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dupf32.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dupf32.c
38663 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dupf32.c 2007-07-25 14:28:31.000000000 +0200
38664 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dupf32.c 2010-01-25 09:50:29.365686888 +0100
38665 @@ -3,7 +3,8 @@
38666
38667 /* { dg-do assemble } */
38668 /* { dg-require-effective-target arm_neon_ok } */
38669 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38670 +/* { dg-options "-save-temps -O0" } */
38671 +/* { dg-add-options arm_neon } */
38672
38673 #include "arm_neon.h"
38674
38675 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dupp16.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dupp16.c
38676 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dupp16.c 2007-07-25 14:28:31.000000000 +0200
38677 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dupp16.c 2010-01-25 09:50:29.365686888 +0100
38678 @@ -3,7 +3,8 @@
38679
38680 /* { dg-do assemble } */
38681 /* { dg-require-effective-target arm_neon_ok } */
38682 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38683 +/* { dg-options "-save-temps -O0" } */
38684 +/* { dg-add-options arm_neon } */
38685
38686 #include "arm_neon.h"
38687
38688 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dupp8.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dupp8.c
38689 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dupp8.c 2007-07-25 14:28:31.000000000 +0200
38690 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dupp8.c 2010-01-25 09:50:29.365686888 +0100
38691 @@ -3,7 +3,8 @@
38692
38693 /* { dg-do assemble } */
38694 /* { dg-require-effective-target arm_neon_ok } */
38695 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38696 +/* { dg-options "-save-temps -O0" } */
38697 +/* { dg-add-options arm_neon } */
38698
38699 #include "arm_neon.h"
38700
38701 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dups16.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dups16.c
38702 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dups16.c 2007-07-25 14:28:31.000000000 +0200
38703 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dups16.c 2010-01-25 09:50:29.365686888 +0100
38704 @@ -3,7 +3,8 @@
38705
38706 /* { dg-do assemble } */
38707 /* { dg-require-effective-target arm_neon_ok } */
38708 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38709 +/* { dg-options "-save-temps -O0" } */
38710 +/* { dg-add-options arm_neon } */
38711
38712 #include "arm_neon.h"
38713
38714 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dups32.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dups32.c
38715 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dups32.c 2007-07-25 14:28:31.000000000 +0200
38716 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dups32.c 2010-01-25 09:50:29.365686888 +0100
38717 @@ -3,7 +3,8 @@
38718
38719 /* { dg-do assemble } */
38720 /* { dg-require-effective-target arm_neon_ok } */
38721 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38722 +/* { dg-options "-save-temps -O0" } */
38723 +/* { dg-add-options arm_neon } */
38724
38725 #include "arm_neon.h"
38726
38727 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dups64.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dups64.c
38728 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dups64.c 2007-07-25 14:28:31.000000000 +0200
38729 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dups64.c 2010-01-25 09:50:29.375686623 +0100
38730 @@ -3,7 +3,8 @@
38731
38732 /* { dg-do assemble } */
38733 /* { dg-require-effective-target arm_neon_ok } */
38734 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38735 +/* { dg-options "-save-temps -O0" } */
38736 +/* { dg-add-options arm_neon } */
38737
38738 #include "arm_neon.h"
38739
38740 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dups8.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dups8.c
38741 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dups8.c 2007-07-25 14:28:31.000000000 +0200
38742 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dups8.c 2010-01-25 09:50:29.375686623 +0100
38743 @@ -3,7 +3,8 @@
38744
38745 /* { dg-do assemble } */
38746 /* { dg-require-effective-target arm_neon_ok } */
38747 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38748 +/* { dg-options "-save-temps -O0" } */
38749 +/* { dg-add-options arm_neon } */
38750
38751 #include "arm_neon.h"
38752
38753 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dupu16.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dupu16.c
38754 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dupu16.c 2007-07-25 14:28:31.000000000 +0200
38755 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dupu16.c 2010-01-25 09:50:29.375686623 +0100
38756 @@ -3,7 +3,8 @@
38757
38758 /* { dg-do assemble } */
38759 /* { dg-require-effective-target arm_neon_ok } */
38760 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38761 +/* { dg-options "-save-temps -O0" } */
38762 +/* { dg-add-options arm_neon } */
38763
38764 #include "arm_neon.h"
38765
38766 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dupu32.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dupu32.c
38767 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dupu32.c 2007-07-25 14:28:31.000000000 +0200
38768 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dupu32.c 2010-01-25 09:50:29.375686623 +0100
38769 @@ -3,7 +3,8 @@
38770
38771 /* { dg-do assemble } */
38772 /* { dg-require-effective-target arm_neon_ok } */
38773 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38774 +/* { dg-options "-save-temps -O0" } */
38775 +/* { dg-add-options arm_neon } */
38776
38777 #include "arm_neon.h"
38778
38779 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dupu64.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dupu64.c
38780 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dupu64.c 2007-07-25 14:28:31.000000000 +0200
38781 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dupu64.c 2010-01-25 09:50:29.375686623 +0100
38782 @@ -3,7 +3,8 @@
38783
38784 /* { dg-do assemble } */
38785 /* { dg-require-effective-target arm_neon_ok } */
38786 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38787 +/* { dg-options "-save-temps -O0" } */
38788 +/* { dg-add-options arm_neon } */
38789
38790 #include "arm_neon.h"
38791
38792 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_dupu8.c b/gcc/testsuite/gcc.target/arm/neon/vld1_dupu8.c
38793 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_dupu8.c 2007-07-25 14:28:31.000000000 +0200
38794 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_dupu8.c 2010-01-25 09:50:29.375686623 +0100
38795 @@ -3,7 +3,8 @@
38796
38797 /* { dg-do assemble } */
38798 /* { dg-require-effective-target arm_neon_ok } */
38799 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38800 +/* { dg-options "-save-temps -O0" } */
38801 +/* { dg-add-options arm_neon } */
38802
38803 #include "arm_neon.h"
38804
38805 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1f32.c b/gcc/testsuite/gcc.target/arm/neon/vld1f32.c
38806 --- a/gcc/testsuite/gcc.target/arm/neon/vld1f32.c 2007-07-25 14:28:31.000000000 +0200
38807 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1f32.c 2010-01-25 09:50:29.375686623 +0100
38808 @@ -3,7 +3,8 @@
38809
38810 /* { dg-do assemble } */
38811 /* { dg-require-effective-target arm_neon_ok } */
38812 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38813 +/* { dg-options "-save-temps -O0" } */
38814 +/* { dg-add-options arm_neon } */
38815
38816 #include "arm_neon.h"
38817
38818 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vld1_lanef32.c
38819 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_lanef32.c 2007-07-25 14:28:31.000000000 +0200
38820 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_lanef32.c 2010-01-25 09:50:29.375686623 +0100
38821 @@ -3,7 +3,8 @@
38822
38823 /* { dg-do assemble } */
38824 /* { dg-require-effective-target arm_neon_ok } */
38825 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38826 +/* { dg-options "-save-temps -O0" } */
38827 +/* { dg-add-options arm_neon } */
38828
38829 #include "arm_neon.h"
38830
38831 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vld1_lanep16.c
38832 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_lanep16.c 2007-07-25 14:28:31.000000000 +0200
38833 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_lanep16.c 2010-01-25 09:50:29.375686623 +0100
38834 @@ -3,7 +3,8 @@
38835
38836 /* { dg-do assemble } */
38837 /* { dg-require-effective-target arm_neon_ok } */
38838 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38839 +/* { dg-options "-save-temps -O0" } */
38840 +/* { dg-add-options arm_neon } */
38841
38842 #include "arm_neon.h"
38843
38844 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vld1_lanep8.c
38845 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_lanep8.c 2007-07-25 14:28:31.000000000 +0200
38846 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_lanep8.c 2010-01-25 09:50:29.375686623 +0100
38847 @@ -3,7 +3,8 @@
38848
38849 /* { dg-do assemble } */
38850 /* { dg-require-effective-target arm_neon_ok } */
38851 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38852 +/* { dg-options "-save-temps -O0" } */
38853 +/* { dg-add-options arm_neon } */
38854
38855 #include "arm_neon.h"
38856
38857 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vld1_lanes16.c
38858 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_lanes16.c 2007-07-25 14:28:31.000000000 +0200
38859 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_lanes16.c 2010-01-25 09:50:29.375686623 +0100
38860 @@ -3,7 +3,8 @@
38861
38862 /* { dg-do assemble } */
38863 /* { dg-require-effective-target arm_neon_ok } */
38864 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38865 +/* { dg-options "-save-temps -O0" } */
38866 +/* { dg-add-options arm_neon } */
38867
38868 #include "arm_neon.h"
38869
38870 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vld1_lanes32.c
38871 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_lanes32.c 2007-07-25 14:28:31.000000000 +0200
38872 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_lanes32.c 2010-01-25 09:50:29.375686623 +0100
38873 @@ -3,7 +3,8 @@
38874
38875 /* { dg-do assemble } */
38876 /* { dg-require-effective-target arm_neon_ok } */
38877 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38878 +/* { dg-options "-save-temps -O0" } */
38879 +/* { dg-add-options arm_neon } */
38880
38881 #include "arm_neon.h"
38882
38883 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vld1_lanes64.c
38884 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_lanes64.c 2007-07-25 14:28:31.000000000 +0200
38885 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_lanes64.c 2010-01-25 09:50:29.375686623 +0100
38886 @@ -3,7 +3,8 @@
38887
38888 /* { dg-do assemble } */
38889 /* { dg-require-effective-target arm_neon_ok } */
38890 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38891 +/* { dg-options "-save-temps -O0" } */
38892 +/* { dg-add-options arm_neon } */
38893
38894 #include "arm_neon.h"
38895
38896 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vld1_lanes8.c
38897 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_lanes8.c 2007-07-25 14:28:31.000000000 +0200
38898 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_lanes8.c 2010-01-25 09:50:29.375686623 +0100
38899 @@ -3,7 +3,8 @@
38900
38901 /* { dg-do assemble } */
38902 /* { dg-require-effective-target arm_neon_ok } */
38903 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38904 +/* { dg-options "-save-temps -O0" } */
38905 +/* { dg-add-options arm_neon } */
38906
38907 #include "arm_neon.h"
38908
38909 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vld1_laneu16.c
38910 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_laneu16.c 2007-07-25 14:28:31.000000000 +0200
38911 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_laneu16.c 2010-01-25 09:50:29.375686623 +0100
38912 @@ -3,7 +3,8 @@
38913
38914 /* { dg-do assemble } */
38915 /* { dg-require-effective-target arm_neon_ok } */
38916 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38917 +/* { dg-options "-save-temps -O0" } */
38918 +/* { dg-add-options arm_neon } */
38919
38920 #include "arm_neon.h"
38921
38922 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vld1_laneu32.c
38923 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_laneu32.c 2007-07-25 14:28:31.000000000 +0200
38924 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_laneu32.c 2010-01-25 09:50:29.375686623 +0100
38925 @@ -3,7 +3,8 @@
38926
38927 /* { dg-do assemble } */
38928 /* { dg-require-effective-target arm_neon_ok } */
38929 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38930 +/* { dg-options "-save-temps -O0" } */
38931 +/* { dg-add-options arm_neon } */
38932
38933 #include "arm_neon.h"
38934
38935 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vld1_laneu64.c
38936 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_laneu64.c 2007-07-25 14:28:31.000000000 +0200
38937 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_laneu64.c 2010-01-25 09:50:29.375686623 +0100
38938 @@ -3,7 +3,8 @@
38939
38940 /* { dg-do assemble } */
38941 /* { dg-require-effective-target arm_neon_ok } */
38942 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38943 +/* { dg-options "-save-temps -O0" } */
38944 +/* { dg-add-options arm_neon } */
38945
38946 #include "arm_neon.h"
38947
38948 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vld1_laneu8.c
38949 --- a/gcc/testsuite/gcc.target/arm/neon/vld1_laneu8.c 2007-07-25 14:28:31.000000000 +0200
38950 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1_laneu8.c 2010-01-25 09:50:29.375686623 +0100
38951 @@ -3,7 +3,8 @@
38952
38953 /* { dg-do assemble } */
38954 /* { dg-require-effective-target arm_neon_ok } */
38955 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38956 +/* { dg-options "-save-temps -O0" } */
38957 +/* { dg-add-options arm_neon } */
38958
38959 #include "arm_neon.h"
38960
38961 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1p16.c b/gcc/testsuite/gcc.target/arm/neon/vld1p16.c
38962 --- a/gcc/testsuite/gcc.target/arm/neon/vld1p16.c 2007-07-25 14:28:31.000000000 +0200
38963 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1p16.c 2010-01-25 09:50:29.375686623 +0100
38964 @@ -3,7 +3,8 @@
38965
38966 /* { dg-do assemble } */
38967 /* { dg-require-effective-target arm_neon_ok } */
38968 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38969 +/* { dg-options "-save-temps -O0" } */
38970 +/* { dg-add-options arm_neon } */
38971
38972 #include "arm_neon.h"
38973
38974 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1p8.c b/gcc/testsuite/gcc.target/arm/neon/vld1p8.c
38975 --- a/gcc/testsuite/gcc.target/arm/neon/vld1p8.c 2007-07-25 14:28:31.000000000 +0200
38976 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1p8.c 2010-01-25 09:50:29.375686623 +0100
38977 @@ -3,7 +3,8 @@
38978
38979 /* { dg-do assemble } */
38980 /* { dg-require-effective-target arm_neon_ok } */
38981 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38982 +/* { dg-options "-save-temps -O0" } */
38983 +/* { dg-add-options arm_neon } */
38984
38985 #include "arm_neon.h"
38986
38987 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupf32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupf32.c
38988 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupf32.c 2007-07-25 14:28:31.000000000 +0200
38989 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupf32.c 2010-01-25 09:50:29.375686623 +0100
38990 @@ -3,7 +3,8 @@
38991
38992 /* { dg-do assemble } */
38993 /* { dg-require-effective-target arm_neon_ok } */
38994 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
38995 +/* { dg-options "-save-temps -O0" } */
38996 +/* { dg-add-options arm_neon } */
38997
38998 #include "arm_neon.h"
38999
39000 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupp16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupp16.c
39001 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupp16.c 2007-07-25 14:28:31.000000000 +0200
39002 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupp16.c 2010-01-25 09:50:29.375686623 +0100
39003 @@ -3,7 +3,8 @@
39004
39005 /* { dg-do assemble } */
39006 /* { dg-require-effective-target arm_neon_ok } */
39007 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39008 +/* { dg-options "-save-temps -O0" } */
39009 +/* { dg-add-options arm_neon } */
39010
39011 #include "arm_neon.h"
39012
39013 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupp8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupp8.c
39014 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupp8.c 2007-07-25 14:28:31.000000000 +0200
39015 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupp8.c 2010-01-25 09:50:29.375686623 +0100
39016 @@ -3,7 +3,8 @@
39017
39018 /* { dg-do assemble } */
39019 /* { dg-require-effective-target arm_neon_ok } */
39020 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39021 +/* { dg-options "-save-temps -O0" } */
39022 +/* { dg-add-options arm_neon } */
39023
39024 #include "arm_neon.h"
39025
39026 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups16.c
39027 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups16.c 2007-07-25 14:28:31.000000000 +0200
39028 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups16.c 2010-01-25 09:50:29.375686623 +0100
39029 @@ -3,7 +3,8 @@
39030
39031 /* { dg-do assemble } */
39032 /* { dg-require-effective-target arm_neon_ok } */
39033 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39034 +/* { dg-options "-save-temps -O0" } */
39035 +/* { dg-add-options arm_neon } */
39036
39037 #include "arm_neon.h"
39038
39039 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups32.c
39040 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups32.c 2007-07-25 14:28:31.000000000 +0200
39041 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups32.c 2010-01-25 09:50:29.375686623 +0100
39042 @@ -3,7 +3,8 @@
39043
39044 /* { dg-do assemble } */
39045 /* { dg-require-effective-target arm_neon_ok } */
39046 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39047 +/* { dg-options "-save-temps -O0" } */
39048 +/* { dg-add-options arm_neon } */
39049
39050 #include "arm_neon.h"
39051
39052 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups64.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups64.c
39053 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups64.c 2007-07-25 14:28:31.000000000 +0200
39054 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups64.c 2010-01-25 09:50:29.375686623 +0100
39055 @@ -3,7 +3,8 @@
39056
39057 /* { dg-do assemble } */
39058 /* { dg-require-effective-target arm_neon_ok } */
39059 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39060 +/* { dg-options "-save-temps -O0" } */
39061 +/* { dg-add-options arm_neon } */
39062
39063 #include "arm_neon.h"
39064
39065 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups8.c
39066 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups8.c 2007-07-25 14:28:31.000000000 +0200
39067 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dups8.c 2010-01-25 09:50:29.375686623 +0100
39068 @@ -3,7 +3,8 @@
39069
39070 /* { dg-do assemble } */
39071 /* { dg-require-effective-target arm_neon_ok } */
39072 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39073 +/* { dg-options "-save-temps -O0" } */
39074 +/* { dg-add-options arm_neon } */
39075
39076 #include "arm_neon.h"
39077
39078 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu16.c
39079 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu16.c 2007-07-25 14:28:31.000000000 +0200
39080 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu16.c 2010-01-25 09:50:29.375686623 +0100
39081 @@ -3,7 +3,8 @@
39082
39083 /* { dg-do assemble } */
39084 /* { dg-require-effective-target arm_neon_ok } */
39085 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39086 +/* { dg-options "-save-temps -O0" } */
39087 +/* { dg-add-options arm_neon } */
39088
39089 #include "arm_neon.h"
39090
39091 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu32.c
39092 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu32.c 2007-07-25 14:28:31.000000000 +0200
39093 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu32.c 2010-01-25 09:50:29.375686623 +0100
39094 @@ -3,7 +3,8 @@
39095
39096 /* { dg-do assemble } */
39097 /* { dg-require-effective-target arm_neon_ok } */
39098 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39099 +/* { dg-options "-save-temps -O0" } */
39100 +/* { dg-add-options arm_neon } */
39101
39102 #include "arm_neon.h"
39103
39104 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu64.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu64.c
39105 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu64.c 2007-07-25 14:28:31.000000000 +0200
39106 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu64.c 2010-01-25 09:50:29.375686623 +0100
39107 @@ -3,7 +3,8 @@
39108
39109 /* { dg-do assemble } */
39110 /* { dg-require-effective-target arm_neon_ok } */
39111 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39112 +/* { dg-options "-save-temps -O0" } */
39113 +/* { dg-add-options arm_neon } */
39114
39115 #include "arm_neon.h"
39116
39117 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu8.c
39118 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu8.c 2007-07-25 14:28:31.000000000 +0200
39119 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_dupu8.c 2010-01-25 09:50:29.375686623 +0100
39120 @@ -3,7 +3,8 @@
39121
39122 /* { dg-do assemble } */
39123 /* { dg-require-effective-target arm_neon_ok } */
39124 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39125 +/* { dg-options "-save-temps -O0" } */
39126 +/* { dg-add-options arm_neon } */
39127
39128 #include "arm_neon.h"
39129
39130 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qf32.c
39131 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qf32.c 2007-07-25 14:28:31.000000000 +0200
39132 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qf32.c 2010-01-25 09:50:29.375686623 +0100
39133 @@ -3,7 +3,8 @@
39134
39135 /* { dg-do assemble } */
39136 /* { dg-require-effective-target arm_neon_ok } */
39137 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39138 +/* { dg-options "-save-temps -O0" } */
39139 +/* { dg-add-options arm_neon } */
39140
39141 #include "arm_neon.h"
39142
39143 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanef32.c
39144 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanef32.c 2007-07-25 14:28:31.000000000 +0200
39145 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanef32.c 2010-01-25 09:50:29.375686623 +0100
39146 @@ -3,7 +3,8 @@
39147
39148 /* { dg-do assemble } */
39149 /* { dg-require-effective-target arm_neon_ok } */
39150 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39151 +/* { dg-options "-save-temps -O0" } */
39152 +/* { dg-add-options arm_neon } */
39153
39154 #include "arm_neon.h"
39155
39156 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanep16.c
39157 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanep16.c 2007-07-25 14:28:31.000000000 +0200
39158 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanep16.c 2010-01-25 09:50:29.375686623 +0100
39159 @@ -3,7 +3,8 @@
39160
39161 /* { dg-do assemble } */
39162 /* { dg-require-effective-target arm_neon_ok } */
39163 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39164 +/* { dg-options "-save-temps -O0" } */
39165 +/* { dg-add-options arm_neon } */
39166
39167 #include "arm_neon.h"
39168
39169 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanep8.c
39170 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanep8.c 2007-07-25 14:28:31.000000000 +0200
39171 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanep8.c 2010-01-25 09:50:29.375686623 +0100
39172 @@ -3,7 +3,8 @@
39173
39174 /* { dg-do assemble } */
39175 /* { dg-require-effective-target arm_neon_ok } */
39176 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39177 +/* { dg-options "-save-temps -O0" } */
39178 +/* { dg-add-options arm_neon } */
39179
39180 #include "arm_neon.h"
39181
39182 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes16.c
39183 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes16.c 2007-07-25 14:28:31.000000000 +0200
39184 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes16.c 2010-01-25 09:50:29.375686623 +0100
39185 @@ -3,7 +3,8 @@
39186
39187 /* { dg-do assemble } */
39188 /* { dg-require-effective-target arm_neon_ok } */
39189 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39190 +/* { dg-options "-save-temps -O0" } */
39191 +/* { dg-add-options arm_neon } */
39192
39193 #include "arm_neon.h"
39194
39195 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes32.c
39196 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes32.c 2007-07-25 14:28:31.000000000 +0200
39197 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes32.c 2010-01-25 09:50:29.375686623 +0100
39198 @@ -3,7 +3,8 @@
39199
39200 /* { dg-do assemble } */
39201 /* { dg-require-effective-target arm_neon_ok } */
39202 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39203 +/* { dg-options "-save-temps -O0" } */
39204 +/* { dg-add-options arm_neon } */
39205
39206 #include "arm_neon.h"
39207
39208 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes64.c
39209 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes64.c 2007-07-25 14:28:31.000000000 +0200
39210 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes64.c 2010-01-25 09:50:29.375686623 +0100
39211 @@ -3,7 +3,8 @@
39212
39213 /* { dg-do assemble } */
39214 /* { dg-require-effective-target arm_neon_ok } */
39215 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39216 +/* { dg-options "-save-temps -O0" } */
39217 +/* { dg-add-options arm_neon } */
39218
39219 #include "arm_neon.h"
39220
39221 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes8.c
39222 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes8.c 2007-07-25 14:28:31.000000000 +0200
39223 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_lanes8.c 2010-01-25 09:50:29.375686623 +0100
39224 @@ -3,7 +3,8 @@
39225
39226 /* { dg-do assemble } */
39227 /* { dg-require-effective-target arm_neon_ok } */
39228 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39229 +/* { dg-options "-save-temps -O0" } */
39230 +/* { dg-add-options arm_neon } */
39231
39232 #include "arm_neon.h"
39233
39234 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu16.c
39235 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu16.c 2007-07-25 14:28:31.000000000 +0200
39236 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu16.c 2010-01-25 09:50:29.375686623 +0100
39237 @@ -3,7 +3,8 @@
39238
39239 /* { dg-do assemble } */
39240 /* { dg-require-effective-target arm_neon_ok } */
39241 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39242 +/* { dg-options "-save-temps -O0" } */
39243 +/* { dg-add-options arm_neon } */
39244
39245 #include "arm_neon.h"
39246
39247 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu32.c
39248 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu32.c 2007-07-25 14:28:31.000000000 +0200
39249 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu32.c 2010-01-25 09:50:29.375686623 +0100
39250 @@ -3,7 +3,8 @@
39251
39252 /* { dg-do assemble } */
39253 /* { dg-require-effective-target arm_neon_ok } */
39254 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39255 +/* { dg-options "-save-temps -O0" } */
39256 +/* { dg-add-options arm_neon } */
39257
39258 #include "arm_neon.h"
39259
39260 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu64.c
39261 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu64.c 2007-07-25 14:28:31.000000000 +0200
39262 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu64.c 2010-01-25 09:50:29.375686623 +0100
39263 @@ -3,7 +3,8 @@
39264
39265 /* { dg-do assemble } */
39266 /* { dg-require-effective-target arm_neon_ok } */
39267 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39268 +/* { dg-options "-save-temps -O0" } */
39269 +/* { dg-add-options arm_neon } */
39270
39271 #include "arm_neon.h"
39272
39273 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu8.c
39274 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu8.c 2007-07-25 14:28:31.000000000 +0200
39275 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Q_laneu8.c 2010-01-25 09:50:29.375686623 +0100
39276 @@ -3,7 +3,8 @@
39277
39278 /* { dg-do assemble } */
39279 /* { dg-require-effective-target arm_neon_ok } */
39280 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39281 +/* { dg-options "-save-temps -O0" } */
39282 +/* { dg-add-options arm_neon } */
39283
39284 #include "arm_neon.h"
39285
39286 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qp16.c
39287 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qp16.c 2007-07-25 14:28:31.000000000 +0200
39288 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qp16.c 2010-01-25 09:50:29.375686623 +0100
39289 @@ -3,7 +3,8 @@
39290
39291 /* { dg-do assemble } */
39292 /* { dg-require-effective-target arm_neon_ok } */
39293 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39294 +/* { dg-options "-save-temps -O0" } */
39295 +/* { dg-add-options arm_neon } */
39296
39297 #include "arm_neon.h"
39298
39299 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qp8.c
39300 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qp8.c 2007-07-25 14:28:31.000000000 +0200
39301 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qp8.c 2010-01-25 09:50:29.375686623 +0100
39302 @@ -3,7 +3,8 @@
39303
39304 /* { dg-do assemble } */
39305 /* { dg-require-effective-target arm_neon_ok } */
39306 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39307 +/* { dg-options "-save-temps -O0" } */
39308 +/* { dg-add-options arm_neon } */
39309
39310 #include "arm_neon.h"
39311
39312 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qs16.c
39313 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qs16.c 2007-07-25 14:28:31.000000000 +0200
39314 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qs16.c 2010-01-25 09:50:29.375686623 +0100
39315 @@ -3,7 +3,8 @@
39316
39317 /* { dg-do assemble } */
39318 /* { dg-require-effective-target arm_neon_ok } */
39319 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39320 +/* { dg-options "-save-temps -O0" } */
39321 +/* { dg-add-options arm_neon } */
39322
39323 #include "arm_neon.h"
39324
39325 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qs32.c
39326 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qs32.c 2007-07-25 14:28:31.000000000 +0200
39327 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qs32.c 2010-01-25 09:50:29.375686623 +0100
39328 @@ -3,7 +3,8 @@
39329
39330 /* { dg-do assemble } */
39331 /* { dg-require-effective-target arm_neon_ok } */
39332 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39333 +/* { dg-options "-save-temps -O0" } */
39334 +/* { dg-add-options arm_neon } */
39335
39336 #include "arm_neon.h"
39337
39338 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qs64.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qs64.c
39339 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qs64.c 2007-07-25 14:28:31.000000000 +0200
39340 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qs64.c 2010-01-25 09:50:29.375686623 +0100
39341 @@ -3,7 +3,8 @@
39342
39343 /* { dg-do assemble } */
39344 /* { dg-require-effective-target arm_neon_ok } */
39345 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39346 +/* { dg-options "-save-temps -O0" } */
39347 +/* { dg-add-options arm_neon } */
39348
39349 #include "arm_neon.h"
39350
39351 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qs8.c
39352 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qs8.c 2007-07-25 14:28:31.000000000 +0200
39353 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qs8.c 2010-01-25 09:50:29.375686623 +0100
39354 @@ -3,7 +3,8 @@
39355
39356 /* { dg-do assemble } */
39357 /* { dg-require-effective-target arm_neon_ok } */
39358 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39359 +/* { dg-options "-save-temps -O0" } */
39360 +/* { dg-add-options arm_neon } */
39361
39362 #include "arm_neon.h"
39363
39364 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qu16.c
39365 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qu16.c 2007-07-25 14:28:31.000000000 +0200
39366 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qu16.c 2010-01-25 09:50:29.375686623 +0100
39367 @@ -3,7 +3,8 @@
39368
39369 /* { dg-do assemble } */
39370 /* { dg-require-effective-target arm_neon_ok } */
39371 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39372 +/* { dg-options "-save-temps -O0" } */
39373 +/* { dg-add-options arm_neon } */
39374
39375 #include "arm_neon.h"
39376
39377 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qu32.c
39378 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qu32.c 2007-07-25 14:28:31.000000000 +0200
39379 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qu32.c 2010-01-25 09:50:29.375686623 +0100
39380 @@ -3,7 +3,8 @@
39381
39382 /* { dg-do assemble } */
39383 /* { dg-require-effective-target arm_neon_ok } */
39384 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39385 +/* { dg-options "-save-temps -O0" } */
39386 +/* { dg-add-options arm_neon } */
39387
39388 #include "arm_neon.h"
39389
39390 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qu64.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qu64.c
39391 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qu64.c 2007-07-25 14:28:31.000000000 +0200
39392 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qu64.c 2010-01-25 09:50:29.375686623 +0100
39393 @@ -3,7 +3,8 @@
39394
39395 /* { dg-do assemble } */
39396 /* { dg-require-effective-target arm_neon_ok } */
39397 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39398 +/* { dg-options "-save-temps -O0" } */
39399 +/* { dg-add-options arm_neon } */
39400
39401 #include "arm_neon.h"
39402
39403 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vld1Qu8.c
39404 --- a/gcc/testsuite/gcc.target/arm/neon/vld1Qu8.c 2007-07-25 14:28:31.000000000 +0200
39405 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1Qu8.c 2010-01-25 09:50:29.375686623 +0100
39406 @@ -3,7 +3,8 @@
39407
39408 /* { dg-do assemble } */
39409 /* { dg-require-effective-target arm_neon_ok } */
39410 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39411 +/* { dg-options "-save-temps -O0" } */
39412 +/* { dg-add-options arm_neon } */
39413
39414 #include "arm_neon.h"
39415
39416 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1s16.c b/gcc/testsuite/gcc.target/arm/neon/vld1s16.c
39417 --- a/gcc/testsuite/gcc.target/arm/neon/vld1s16.c 2007-07-25 14:28:31.000000000 +0200
39418 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1s16.c 2010-01-25 09:50:29.375686623 +0100
39419 @@ -3,7 +3,8 @@
39420
39421 /* { dg-do assemble } */
39422 /* { dg-require-effective-target arm_neon_ok } */
39423 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39424 +/* { dg-options "-save-temps -O0" } */
39425 +/* { dg-add-options arm_neon } */
39426
39427 #include "arm_neon.h"
39428
39429 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1s32.c b/gcc/testsuite/gcc.target/arm/neon/vld1s32.c
39430 --- a/gcc/testsuite/gcc.target/arm/neon/vld1s32.c 2007-07-25 14:28:31.000000000 +0200
39431 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1s32.c 2010-01-25 09:50:29.375686623 +0100
39432 @@ -3,7 +3,8 @@
39433
39434 /* { dg-do assemble } */
39435 /* { dg-require-effective-target arm_neon_ok } */
39436 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39437 +/* { dg-options "-save-temps -O0" } */
39438 +/* { dg-add-options arm_neon } */
39439
39440 #include "arm_neon.h"
39441
39442 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1s64.c b/gcc/testsuite/gcc.target/arm/neon/vld1s64.c
39443 --- a/gcc/testsuite/gcc.target/arm/neon/vld1s64.c 2007-07-25 14:28:31.000000000 +0200
39444 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1s64.c 2010-01-25 09:50:29.375686623 +0100
39445 @@ -3,7 +3,8 @@
39446
39447 /* { dg-do assemble } */
39448 /* { dg-require-effective-target arm_neon_ok } */
39449 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39450 +/* { dg-options "-save-temps -O0" } */
39451 +/* { dg-add-options arm_neon } */
39452
39453 #include "arm_neon.h"
39454
39455 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1s8.c b/gcc/testsuite/gcc.target/arm/neon/vld1s8.c
39456 --- a/gcc/testsuite/gcc.target/arm/neon/vld1s8.c 2007-07-25 14:28:31.000000000 +0200
39457 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1s8.c 2010-01-25 09:50:29.375686623 +0100
39458 @@ -3,7 +3,8 @@
39459
39460 /* { dg-do assemble } */
39461 /* { dg-require-effective-target arm_neon_ok } */
39462 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39463 +/* { dg-options "-save-temps -O0" } */
39464 +/* { dg-add-options arm_neon } */
39465
39466 #include "arm_neon.h"
39467
39468 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1u16.c b/gcc/testsuite/gcc.target/arm/neon/vld1u16.c
39469 --- a/gcc/testsuite/gcc.target/arm/neon/vld1u16.c 2007-07-25 14:28:31.000000000 +0200
39470 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1u16.c 2010-01-25 09:50:29.375686623 +0100
39471 @@ -3,7 +3,8 @@
39472
39473 /* { dg-do assemble } */
39474 /* { dg-require-effective-target arm_neon_ok } */
39475 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39476 +/* { dg-options "-save-temps -O0" } */
39477 +/* { dg-add-options arm_neon } */
39478
39479 #include "arm_neon.h"
39480
39481 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1u32.c b/gcc/testsuite/gcc.target/arm/neon/vld1u32.c
39482 --- a/gcc/testsuite/gcc.target/arm/neon/vld1u32.c 2007-07-25 14:28:31.000000000 +0200
39483 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1u32.c 2010-01-25 09:50:29.375686623 +0100
39484 @@ -3,7 +3,8 @@
39485
39486 /* { dg-do assemble } */
39487 /* { dg-require-effective-target arm_neon_ok } */
39488 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39489 +/* { dg-options "-save-temps -O0" } */
39490 +/* { dg-add-options arm_neon } */
39491
39492 #include "arm_neon.h"
39493
39494 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1u64.c b/gcc/testsuite/gcc.target/arm/neon/vld1u64.c
39495 --- a/gcc/testsuite/gcc.target/arm/neon/vld1u64.c 2007-07-25 14:28:31.000000000 +0200
39496 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1u64.c 2010-01-25 09:50:29.375686623 +0100
39497 @@ -3,7 +3,8 @@
39498
39499 /* { dg-do assemble } */
39500 /* { dg-require-effective-target arm_neon_ok } */
39501 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39502 +/* { dg-options "-save-temps -O0" } */
39503 +/* { dg-add-options arm_neon } */
39504
39505 #include "arm_neon.h"
39506
39507 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld1u8.c b/gcc/testsuite/gcc.target/arm/neon/vld1u8.c
39508 --- a/gcc/testsuite/gcc.target/arm/neon/vld1u8.c 2007-07-25 14:28:31.000000000 +0200
39509 +++ b/gcc/testsuite/gcc.target/arm/neon/vld1u8.c 2010-01-25 09:50:29.375686623 +0100
39510 @@ -3,7 +3,8 @@
39511
39512 /* { dg-do assemble } */
39513 /* { dg-require-effective-target arm_neon_ok } */
39514 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39515 +/* { dg-options "-save-temps -O0" } */
39516 +/* { dg-add-options arm_neon } */
39517
39518 #include "arm_neon.h"
39519
39520 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dupf32.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dupf32.c
39521 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dupf32.c 2007-07-25 14:28:31.000000000 +0200
39522 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dupf32.c 2010-01-25 09:50:29.375686623 +0100
39523 @@ -3,7 +3,8 @@
39524
39525 /* { dg-do assemble } */
39526 /* { dg-require-effective-target arm_neon_ok } */
39527 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39528 +/* { dg-options "-save-temps -O0" } */
39529 +/* { dg-add-options arm_neon } */
39530
39531 #include "arm_neon.h"
39532
39533 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dupp16.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dupp16.c
39534 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dupp16.c 2007-07-25 14:28:31.000000000 +0200
39535 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dupp16.c 2010-01-25 09:50:29.375686623 +0100
39536 @@ -3,7 +3,8 @@
39537
39538 /* { dg-do assemble } */
39539 /* { dg-require-effective-target arm_neon_ok } */
39540 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39541 +/* { dg-options "-save-temps -O0" } */
39542 +/* { dg-add-options arm_neon } */
39543
39544 #include "arm_neon.h"
39545
39546 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dupp8.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dupp8.c
39547 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dupp8.c 2007-07-25 14:28:31.000000000 +0200
39548 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dupp8.c 2010-01-25 09:50:29.375686623 +0100
39549 @@ -3,7 +3,8 @@
39550
39551 /* { dg-do assemble } */
39552 /* { dg-require-effective-target arm_neon_ok } */
39553 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39554 +/* { dg-options "-save-temps -O0" } */
39555 +/* { dg-add-options arm_neon } */
39556
39557 #include "arm_neon.h"
39558
39559 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dups16.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dups16.c
39560 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dups16.c 2007-07-25 14:28:31.000000000 +0200
39561 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dups16.c 2010-01-25 09:50:29.375686623 +0100
39562 @@ -3,7 +3,8 @@
39563
39564 /* { dg-do assemble } */
39565 /* { dg-require-effective-target arm_neon_ok } */
39566 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39567 +/* { dg-options "-save-temps -O0" } */
39568 +/* { dg-add-options arm_neon } */
39569
39570 #include "arm_neon.h"
39571
39572 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dups32.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dups32.c
39573 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dups32.c 2007-07-25 14:28:31.000000000 +0200
39574 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dups32.c 2010-01-25 09:50:29.375686623 +0100
39575 @@ -3,7 +3,8 @@
39576
39577 /* { dg-do assemble } */
39578 /* { dg-require-effective-target arm_neon_ok } */
39579 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39580 +/* { dg-options "-save-temps -O0" } */
39581 +/* { dg-add-options arm_neon } */
39582
39583 #include "arm_neon.h"
39584
39585 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dups64.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dups64.c
39586 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dups64.c 2007-07-25 14:28:31.000000000 +0200
39587 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dups64.c 2010-01-25 09:50:29.375686623 +0100
39588 @@ -3,7 +3,8 @@
39589
39590 /* { dg-do assemble } */
39591 /* { dg-require-effective-target arm_neon_ok } */
39592 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39593 +/* { dg-options "-save-temps -O0" } */
39594 +/* { dg-add-options arm_neon } */
39595
39596 #include "arm_neon.h"
39597
39598 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dups8.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dups8.c
39599 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dups8.c 2007-07-25 14:28:31.000000000 +0200
39600 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dups8.c 2010-01-25 09:50:29.375686623 +0100
39601 @@ -3,7 +3,8 @@
39602
39603 /* { dg-do assemble } */
39604 /* { dg-require-effective-target arm_neon_ok } */
39605 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39606 +/* { dg-options "-save-temps -O0" } */
39607 +/* { dg-add-options arm_neon } */
39608
39609 #include "arm_neon.h"
39610
39611 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dupu16.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dupu16.c
39612 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dupu16.c 2007-07-25 14:28:31.000000000 +0200
39613 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dupu16.c 2010-01-25 09:50:29.375686623 +0100
39614 @@ -3,7 +3,8 @@
39615
39616 /* { dg-do assemble } */
39617 /* { dg-require-effective-target arm_neon_ok } */
39618 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39619 +/* { dg-options "-save-temps -O0" } */
39620 +/* { dg-add-options arm_neon } */
39621
39622 #include "arm_neon.h"
39623
39624 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dupu32.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dupu32.c
39625 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dupu32.c 2007-07-25 14:28:31.000000000 +0200
39626 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dupu32.c 2010-01-25 09:50:29.375686623 +0100
39627 @@ -3,7 +3,8 @@
39628
39629 /* { dg-do assemble } */
39630 /* { dg-require-effective-target arm_neon_ok } */
39631 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39632 +/* { dg-options "-save-temps -O0" } */
39633 +/* { dg-add-options arm_neon } */
39634
39635 #include "arm_neon.h"
39636
39637 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dupu64.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dupu64.c
39638 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dupu64.c 2007-07-25 14:28:31.000000000 +0200
39639 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dupu64.c 2010-01-25 09:50:29.375686623 +0100
39640 @@ -3,7 +3,8 @@
39641
39642 /* { dg-do assemble } */
39643 /* { dg-require-effective-target arm_neon_ok } */
39644 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39645 +/* { dg-options "-save-temps -O0" } */
39646 +/* { dg-add-options arm_neon } */
39647
39648 #include "arm_neon.h"
39649
39650 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_dupu8.c b/gcc/testsuite/gcc.target/arm/neon/vld2_dupu8.c
39651 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_dupu8.c 2007-07-25 14:28:31.000000000 +0200
39652 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_dupu8.c 2010-01-25 09:50:29.375686623 +0100
39653 @@ -3,7 +3,8 @@
39654
39655 /* { dg-do assemble } */
39656 /* { dg-require-effective-target arm_neon_ok } */
39657 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39658 +/* { dg-options "-save-temps -O0" } */
39659 +/* { dg-add-options arm_neon } */
39660
39661 #include "arm_neon.h"
39662
39663 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2f32.c b/gcc/testsuite/gcc.target/arm/neon/vld2f32.c
39664 --- a/gcc/testsuite/gcc.target/arm/neon/vld2f32.c 2007-07-25 14:28:31.000000000 +0200
39665 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2f32.c 2010-01-25 09:50:29.375686623 +0100
39666 @@ -3,7 +3,8 @@
39667
39668 /* { dg-do assemble } */
39669 /* { dg-require-effective-target arm_neon_ok } */
39670 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39671 +/* { dg-options "-save-temps -O0" } */
39672 +/* { dg-add-options arm_neon } */
39673
39674 #include "arm_neon.h"
39675
39676 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vld2_lanef32.c
39677 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_lanef32.c 2007-07-25 14:28:31.000000000 +0200
39678 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_lanef32.c 2010-01-25 09:50:29.375686623 +0100
39679 @@ -3,7 +3,8 @@
39680
39681 /* { dg-do assemble } */
39682 /* { dg-require-effective-target arm_neon_ok } */
39683 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39684 +/* { dg-options "-save-temps -O0" } */
39685 +/* { dg-add-options arm_neon } */
39686
39687 #include "arm_neon.h"
39688
39689 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vld2_lanep16.c
39690 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_lanep16.c 2007-07-25 14:28:31.000000000 +0200
39691 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_lanep16.c 2010-01-25 09:50:29.385686707 +0100
39692 @@ -3,7 +3,8 @@
39693
39694 /* { dg-do assemble } */
39695 /* { dg-require-effective-target arm_neon_ok } */
39696 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39697 +/* { dg-options "-save-temps -O0" } */
39698 +/* { dg-add-options arm_neon } */
39699
39700 #include "arm_neon.h"
39701
39702 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vld2_lanep8.c
39703 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_lanep8.c 2007-07-25 14:28:31.000000000 +0200
39704 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_lanep8.c 2010-01-25 09:50:29.385686707 +0100
39705 @@ -3,7 +3,8 @@
39706
39707 /* { dg-do assemble } */
39708 /* { dg-require-effective-target arm_neon_ok } */
39709 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39710 +/* { dg-options "-save-temps -O0" } */
39711 +/* { dg-add-options arm_neon } */
39712
39713 #include "arm_neon.h"
39714
39715 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vld2_lanes16.c
39716 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_lanes16.c 2007-07-25 14:28:31.000000000 +0200
39717 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_lanes16.c 2010-01-25 09:50:29.385686707 +0100
39718 @@ -3,7 +3,8 @@
39719
39720 /* { dg-do assemble } */
39721 /* { dg-require-effective-target arm_neon_ok } */
39722 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39723 +/* { dg-options "-save-temps -O0" } */
39724 +/* { dg-add-options arm_neon } */
39725
39726 #include "arm_neon.h"
39727
39728 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vld2_lanes32.c
39729 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_lanes32.c 2007-07-25 14:28:31.000000000 +0200
39730 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_lanes32.c 2010-01-25 09:50:29.385686707 +0100
39731 @@ -3,7 +3,8 @@
39732
39733 /* { dg-do assemble } */
39734 /* { dg-require-effective-target arm_neon_ok } */
39735 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39736 +/* { dg-options "-save-temps -O0" } */
39737 +/* { dg-add-options arm_neon } */
39738
39739 #include "arm_neon.h"
39740
39741 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vld2_lanes8.c
39742 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_lanes8.c 2007-07-25 14:28:31.000000000 +0200
39743 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_lanes8.c 2010-01-25 09:50:29.385686707 +0100
39744 @@ -3,7 +3,8 @@
39745
39746 /* { dg-do assemble } */
39747 /* { dg-require-effective-target arm_neon_ok } */
39748 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39749 +/* { dg-options "-save-temps -O0" } */
39750 +/* { dg-add-options arm_neon } */
39751
39752 #include "arm_neon.h"
39753
39754 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vld2_laneu16.c
39755 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_laneu16.c 2007-07-25 14:28:31.000000000 +0200
39756 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_laneu16.c 2010-01-25 09:50:29.385686707 +0100
39757 @@ -3,7 +3,8 @@
39758
39759 /* { dg-do assemble } */
39760 /* { dg-require-effective-target arm_neon_ok } */
39761 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39762 +/* { dg-options "-save-temps -O0" } */
39763 +/* { dg-add-options arm_neon } */
39764
39765 #include "arm_neon.h"
39766
39767 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vld2_laneu32.c
39768 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_laneu32.c 2007-07-25 14:28:31.000000000 +0200
39769 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_laneu32.c 2010-01-25 09:50:29.385686707 +0100
39770 @@ -3,7 +3,8 @@
39771
39772 /* { dg-do assemble } */
39773 /* { dg-require-effective-target arm_neon_ok } */
39774 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39775 +/* { dg-options "-save-temps -O0" } */
39776 +/* { dg-add-options arm_neon } */
39777
39778 #include "arm_neon.h"
39779
39780 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vld2_laneu8.c
39781 --- a/gcc/testsuite/gcc.target/arm/neon/vld2_laneu8.c 2007-07-25 14:28:31.000000000 +0200
39782 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2_laneu8.c 2010-01-25 09:50:29.385686707 +0100
39783 @@ -3,7 +3,8 @@
39784
39785 /* { dg-do assemble } */
39786 /* { dg-require-effective-target arm_neon_ok } */
39787 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39788 +/* { dg-options "-save-temps -O0" } */
39789 +/* { dg-add-options arm_neon } */
39790
39791 #include "arm_neon.h"
39792
39793 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2p16.c b/gcc/testsuite/gcc.target/arm/neon/vld2p16.c
39794 --- a/gcc/testsuite/gcc.target/arm/neon/vld2p16.c 2007-07-25 14:28:31.000000000 +0200
39795 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2p16.c 2010-01-25 09:50:29.385686707 +0100
39796 @@ -3,7 +3,8 @@
39797
39798 /* { dg-do assemble } */
39799 /* { dg-require-effective-target arm_neon_ok } */
39800 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39801 +/* { dg-options "-save-temps -O0" } */
39802 +/* { dg-add-options arm_neon } */
39803
39804 #include "arm_neon.h"
39805
39806 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2p8.c b/gcc/testsuite/gcc.target/arm/neon/vld2p8.c
39807 --- a/gcc/testsuite/gcc.target/arm/neon/vld2p8.c 2007-07-25 14:28:31.000000000 +0200
39808 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2p8.c 2010-01-25 09:50:29.385686707 +0100
39809 @@ -3,7 +3,8 @@
39810
39811 /* { dg-do assemble } */
39812 /* { dg-require-effective-target arm_neon_ok } */
39813 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39814 +/* { dg-options "-save-temps -O0" } */
39815 +/* { dg-add-options arm_neon } */
39816
39817 #include "arm_neon.h"
39818
39819 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qf32.c
39820 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qf32.c 2007-07-25 14:28:31.000000000 +0200
39821 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qf32.c 2010-01-25 09:50:29.385686707 +0100
39822 @@ -3,7 +3,8 @@
39823
39824 /* { dg-do assemble } */
39825 /* { dg-require-effective-target arm_neon_ok } */
39826 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39827 +/* { dg-options "-save-temps -O0" } */
39828 +/* { dg-add-options arm_neon } */
39829
39830 #include "arm_neon.h"
39831
39832 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanef32.c
39833 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanef32.c 2007-07-25 14:28:31.000000000 +0200
39834 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanef32.c 2010-01-25 09:50:29.385686707 +0100
39835 @@ -3,7 +3,8 @@
39836
39837 /* { dg-do assemble } */
39838 /* { dg-require-effective-target arm_neon_ok } */
39839 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39840 +/* { dg-options "-save-temps -O0" } */
39841 +/* { dg-add-options arm_neon } */
39842
39843 #include "arm_neon.h"
39844
39845 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanep16.c
39846 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanep16.c 2007-07-25 14:28:31.000000000 +0200
39847 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanep16.c 2010-01-25 09:50:29.385686707 +0100
39848 @@ -3,7 +3,8 @@
39849
39850 /* { dg-do assemble } */
39851 /* { dg-require-effective-target arm_neon_ok } */
39852 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39853 +/* { dg-options "-save-temps -O0" } */
39854 +/* { dg-add-options arm_neon } */
39855
39856 #include "arm_neon.h"
39857
39858 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanes16.c
39859 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanes16.c 2007-07-25 14:28:31.000000000 +0200
39860 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanes16.c 2010-01-25 09:50:29.385686707 +0100
39861 @@ -3,7 +3,8 @@
39862
39863 /* { dg-do assemble } */
39864 /* { dg-require-effective-target arm_neon_ok } */
39865 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39866 +/* { dg-options "-save-temps -O0" } */
39867 +/* { dg-add-options arm_neon } */
39868
39869 #include "arm_neon.h"
39870
39871 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanes32.c
39872 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanes32.c 2007-07-25 14:28:31.000000000 +0200
39873 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Q_lanes32.c 2010-01-25 09:50:29.385686707 +0100
39874 @@ -3,7 +3,8 @@
39875
39876 /* { dg-do assemble } */
39877 /* { dg-require-effective-target arm_neon_ok } */
39878 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39879 +/* { dg-options "-save-temps -O0" } */
39880 +/* { dg-add-options arm_neon } */
39881
39882 #include "arm_neon.h"
39883
39884 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Q_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vld2Q_laneu16.c
39885 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Q_laneu16.c 2007-07-25 14:28:31.000000000 +0200
39886 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Q_laneu16.c 2010-01-25 09:50:29.385686707 +0100
39887 @@ -3,7 +3,8 @@
39888
39889 /* { dg-do assemble } */
39890 /* { dg-require-effective-target arm_neon_ok } */
39891 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39892 +/* { dg-options "-save-temps -O0" } */
39893 +/* { dg-add-options arm_neon } */
39894
39895 #include "arm_neon.h"
39896
39897 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Q_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vld2Q_laneu32.c
39898 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Q_laneu32.c 2007-07-25 14:28:31.000000000 +0200
39899 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Q_laneu32.c 2010-01-25 09:50:29.385686707 +0100
39900 @@ -3,7 +3,8 @@
39901
39902 /* { dg-do assemble } */
39903 /* { dg-require-effective-target arm_neon_ok } */
39904 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39905 +/* { dg-options "-save-temps -O0" } */
39906 +/* { dg-add-options arm_neon } */
39907
39908 #include "arm_neon.h"
39909
39910 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qp16.c
39911 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qp16.c 2007-07-25 14:28:31.000000000 +0200
39912 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qp16.c 2010-01-25 09:50:29.385686707 +0100
39913 @@ -3,7 +3,8 @@
39914
39915 /* { dg-do assemble } */
39916 /* { dg-require-effective-target arm_neon_ok } */
39917 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39918 +/* { dg-options "-save-temps -O0" } */
39919 +/* { dg-add-options arm_neon } */
39920
39921 #include "arm_neon.h"
39922
39923 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qp8.c
39924 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qp8.c 2007-07-25 14:28:31.000000000 +0200
39925 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qp8.c 2010-01-25 09:50:29.385686707 +0100
39926 @@ -3,7 +3,8 @@
39927
39928 /* { dg-do assemble } */
39929 /* { dg-require-effective-target arm_neon_ok } */
39930 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39931 +/* { dg-options "-save-temps -O0" } */
39932 +/* { dg-add-options arm_neon } */
39933
39934 #include "arm_neon.h"
39935
39936 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qs16.c
39937 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qs16.c 2007-07-25 14:28:31.000000000 +0200
39938 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qs16.c 2010-01-25 09:50:29.385686707 +0100
39939 @@ -3,7 +3,8 @@
39940
39941 /* { dg-do assemble } */
39942 /* { dg-require-effective-target arm_neon_ok } */
39943 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39944 +/* { dg-options "-save-temps -O0" } */
39945 +/* { dg-add-options arm_neon } */
39946
39947 #include "arm_neon.h"
39948
39949 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qs32.c
39950 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qs32.c 2007-07-25 14:28:31.000000000 +0200
39951 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qs32.c 2010-01-25 09:50:29.385686707 +0100
39952 @@ -3,7 +3,8 @@
39953
39954 /* { dg-do assemble } */
39955 /* { dg-require-effective-target arm_neon_ok } */
39956 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39957 +/* { dg-options "-save-temps -O0" } */
39958 +/* { dg-add-options arm_neon } */
39959
39960 #include "arm_neon.h"
39961
39962 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qs8.c
39963 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qs8.c 2007-07-25 14:28:31.000000000 +0200
39964 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qs8.c 2010-01-25 09:50:29.385686707 +0100
39965 @@ -3,7 +3,8 @@
39966
39967 /* { dg-do assemble } */
39968 /* { dg-require-effective-target arm_neon_ok } */
39969 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39970 +/* { dg-options "-save-temps -O0" } */
39971 +/* { dg-add-options arm_neon } */
39972
39973 #include "arm_neon.h"
39974
39975 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qu16.c
39976 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qu16.c 2007-07-25 14:28:31.000000000 +0200
39977 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qu16.c 2010-01-25 09:50:29.385686707 +0100
39978 @@ -3,7 +3,8 @@
39979
39980 /* { dg-do assemble } */
39981 /* { dg-require-effective-target arm_neon_ok } */
39982 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39983 +/* { dg-options "-save-temps -O0" } */
39984 +/* { dg-add-options arm_neon } */
39985
39986 #include "arm_neon.h"
39987
39988 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qu32.c
39989 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qu32.c 2007-07-25 14:28:31.000000000 +0200
39990 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qu32.c 2010-01-25 09:50:29.385686707 +0100
39991 @@ -3,7 +3,8 @@
39992
39993 /* { dg-do assemble } */
39994 /* { dg-require-effective-target arm_neon_ok } */
39995 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
39996 +/* { dg-options "-save-temps -O0" } */
39997 +/* { dg-add-options arm_neon } */
39998
39999 #include "arm_neon.h"
40000
40001 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vld2Qu8.c
40002 --- a/gcc/testsuite/gcc.target/arm/neon/vld2Qu8.c 2007-07-25 14:28:31.000000000 +0200
40003 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2Qu8.c 2010-01-25 09:50:29.385686707 +0100
40004 @@ -3,7 +3,8 @@
40005
40006 /* { dg-do assemble } */
40007 /* { dg-require-effective-target arm_neon_ok } */
40008 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40009 +/* { dg-options "-save-temps -O0" } */
40010 +/* { dg-add-options arm_neon } */
40011
40012 #include "arm_neon.h"
40013
40014 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2s16.c b/gcc/testsuite/gcc.target/arm/neon/vld2s16.c
40015 --- a/gcc/testsuite/gcc.target/arm/neon/vld2s16.c 2007-07-25 14:28:31.000000000 +0200
40016 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2s16.c 2010-01-25 09:50:29.385686707 +0100
40017 @@ -3,7 +3,8 @@
40018
40019 /* { dg-do assemble } */
40020 /* { dg-require-effective-target arm_neon_ok } */
40021 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40022 +/* { dg-options "-save-temps -O0" } */
40023 +/* { dg-add-options arm_neon } */
40024
40025 #include "arm_neon.h"
40026
40027 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2s32.c b/gcc/testsuite/gcc.target/arm/neon/vld2s32.c
40028 --- a/gcc/testsuite/gcc.target/arm/neon/vld2s32.c 2007-07-25 14:28:31.000000000 +0200
40029 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2s32.c 2010-01-25 09:50:29.385686707 +0100
40030 @@ -3,7 +3,8 @@
40031
40032 /* { dg-do assemble } */
40033 /* { dg-require-effective-target arm_neon_ok } */
40034 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40035 +/* { dg-options "-save-temps -O0" } */
40036 +/* { dg-add-options arm_neon } */
40037
40038 #include "arm_neon.h"
40039
40040 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2s64.c b/gcc/testsuite/gcc.target/arm/neon/vld2s64.c
40041 --- a/gcc/testsuite/gcc.target/arm/neon/vld2s64.c 2007-07-25 14:28:31.000000000 +0200
40042 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2s64.c 2010-01-25 09:50:29.385686707 +0100
40043 @@ -3,7 +3,8 @@
40044
40045 /* { dg-do assemble } */
40046 /* { dg-require-effective-target arm_neon_ok } */
40047 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40048 +/* { dg-options "-save-temps -O0" } */
40049 +/* { dg-add-options arm_neon } */
40050
40051 #include "arm_neon.h"
40052
40053 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2s8.c b/gcc/testsuite/gcc.target/arm/neon/vld2s8.c
40054 --- a/gcc/testsuite/gcc.target/arm/neon/vld2s8.c 2007-07-25 14:28:31.000000000 +0200
40055 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2s8.c 2010-01-25 09:50:29.385686707 +0100
40056 @@ -3,7 +3,8 @@
40057
40058 /* { dg-do assemble } */
40059 /* { dg-require-effective-target arm_neon_ok } */
40060 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40061 +/* { dg-options "-save-temps -O0" } */
40062 +/* { dg-add-options arm_neon } */
40063
40064 #include "arm_neon.h"
40065
40066 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2u16.c b/gcc/testsuite/gcc.target/arm/neon/vld2u16.c
40067 --- a/gcc/testsuite/gcc.target/arm/neon/vld2u16.c 2007-07-25 14:28:31.000000000 +0200
40068 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2u16.c 2010-01-25 09:50:29.385686707 +0100
40069 @@ -3,7 +3,8 @@
40070
40071 /* { dg-do assemble } */
40072 /* { dg-require-effective-target arm_neon_ok } */
40073 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40074 +/* { dg-options "-save-temps -O0" } */
40075 +/* { dg-add-options arm_neon } */
40076
40077 #include "arm_neon.h"
40078
40079 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2u32.c b/gcc/testsuite/gcc.target/arm/neon/vld2u32.c
40080 --- a/gcc/testsuite/gcc.target/arm/neon/vld2u32.c 2007-07-25 14:28:31.000000000 +0200
40081 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2u32.c 2010-01-25 09:50:29.385686707 +0100
40082 @@ -3,7 +3,8 @@
40083
40084 /* { dg-do assemble } */
40085 /* { dg-require-effective-target arm_neon_ok } */
40086 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40087 +/* { dg-options "-save-temps -O0" } */
40088 +/* { dg-add-options arm_neon } */
40089
40090 #include "arm_neon.h"
40091
40092 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2u64.c b/gcc/testsuite/gcc.target/arm/neon/vld2u64.c
40093 --- a/gcc/testsuite/gcc.target/arm/neon/vld2u64.c 2007-07-25 14:28:31.000000000 +0200
40094 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2u64.c 2010-01-25 09:50:29.385686707 +0100
40095 @@ -3,7 +3,8 @@
40096
40097 /* { dg-do assemble } */
40098 /* { dg-require-effective-target arm_neon_ok } */
40099 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40100 +/* { dg-options "-save-temps -O0" } */
40101 +/* { dg-add-options arm_neon } */
40102
40103 #include "arm_neon.h"
40104
40105 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld2u8.c b/gcc/testsuite/gcc.target/arm/neon/vld2u8.c
40106 --- a/gcc/testsuite/gcc.target/arm/neon/vld2u8.c 2007-07-25 14:28:31.000000000 +0200
40107 +++ b/gcc/testsuite/gcc.target/arm/neon/vld2u8.c 2010-01-25 09:50:29.385686707 +0100
40108 @@ -3,7 +3,8 @@
40109
40110 /* { dg-do assemble } */
40111 /* { dg-require-effective-target arm_neon_ok } */
40112 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40113 +/* { dg-options "-save-temps -O0" } */
40114 +/* { dg-add-options arm_neon } */
40115
40116 #include "arm_neon.h"
40117
40118 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dupf32.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dupf32.c
40119 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dupf32.c 2007-07-25 14:28:31.000000000 +0200
40120 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dupf32.c 2010-01-25 09:50:29.385686707 +0100
40121 @@ -3,7 +3,8 @@
40122
40123 /* { dg-do assemble } */
40124 /* { dg-require-effective-target arm_neon_ok } */
40125 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40126 +/* { dg-options "-save-temps -O0" } */
40127 +/* { dg-add-options arm_neon } */
40128
40129 #include "arm_neon.h"
40130
40131 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dupp16.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dupp16.c
40132 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dupp16.c 2007-07-25 14:28:31.000000000 +0200
40133 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dupp16.c 2010-01-25 09:50:29.385686707 +0100
40134 @@ -3,7 +3,8 @@
40135
40136 /* { dg-do assemble } */
40137 /* { dg-require-effective-target arm_neon_ok } */
40138 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40139 +/* { dg-options "-save-temps -O0" } */
40140 +/* { dg-add-options arm_neon } */
40141
40142 #include "arm_neon.h"
40143
40144 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dupp8.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dupp8.c
40145 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dupp8.c 2007-07-25 14:28:31.000000000 +0200
40146 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dupp8.c 2010-01-25 09:50:29.385686707 +0100
40147 @@ -3,7 +3,8 @@
40148
40149 /* { dg-do assemble } */
40150 /* { dg-require-effective-target arm_neon_ok } */
40151 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40152 +/* { dg-options "-save-temps -O0" } */
40153 +/* { dg-add-options arm_neon } */
40154
40155 #include "arm_neon.h"
40156
40157 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dups16.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dups16.c
40158 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dups16.c 2007-07-25 14:28:31.000000000 +0200
40159 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dups16.c 2010-01-25 09:50:29.385686707 +0100
40160 @@ -3,7 +3,8 @@
40161
40162 /* { dg-do assemble } */
40163 /* { dg-require-effective-target arm_neon_ok } */
40164 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40165 +/* { dg-options "-save-temps -O0" } */
40166 +/* { dg-add-options arm_neon } */
40167
40168 #include "arm_neon.h"
40169
40170 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dups32.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dups32.c
40171 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dups32.c 2007-07-25 14:28:31.000000000 +0200
40172 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dups32.c 2010-01-25 09:50:29.385686707 +0100
40173 @@ -3,7 +3,8 @@
40174
40175 /* { dg-do assemble } */
40176 /* { dg-require-effective-target arm_neon_ok } */
40177 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40178 +/* { dg-options "-save-temps -O0" } */
40179 +/* { dg-add-options arm_neon } */
40180
40181 #include "arm_neon.h"
40182
40183 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dups64.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dups64.c
40184 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dups64.c 2007-07-25 14:28:31.000000000 +0200
40185 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dups64.c 2010-01-25 09:50:29.385686707 +0100
40186 @@ -3,7 +3,8 @@
40187
40188 /* { dg-do assemble } */
40189 /* { dg-require-effective-target arm_neon_ok } */
40190 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40191 +/* { dg-options "-save-temps -O0" } */
40192 +/* { dg-add-options arm_neon } */
40193
40194 #include "arm_neon.h"
40195
40196 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dups8.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dups8.c
40197 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dups8.c 2007-07-25 14:28:31.000000000 +0200
40198 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dups8.c 2010-01-25 09:50:29.385686707 +0100
40199 @@ -3,7 +3,8 @@
40200
40201 /* { dg-do assemble } */
40202 /* { dg-require-effective-target arm_neon_ok } */
40203 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40204 +/* { dg-options "-save-temps -O0" } */
40205 +/* { dg-add-options arm_neon } */
40206
40207 #include "arm_neon.h"
40208
40209 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dupu16.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dupu16.c
40210 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dupu16.c 2007-07-25 14:28:31.000000000 +0200
40211 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dupu16.c 2010-01-25 09:50:29.385686707 +0100
40212 @@ -3,7 +3,8 @@
40213
40214 /* { dg-do assemble } */
40215 /* { dg-require-effective-target arm_neon_ok } */
40216 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40217 +/* { dg-options "-save-temps -O0" } */
40218 +/* { dg-add-options arm_neon } */
40219
40220 #include "arm_neon.h"
40221
40222 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dupu32.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dupu32.c
40223 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dupu32.c 2007-07-25 14:28:31.000000000 +0200
40224 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dupu32.c 2010-01-25 09:50:29.385686707 +0100
40225 @@ -3,7 +3,8 @@
40226
40227 /* { dg-do assemble } */
40228 /* { dg-require-effective-target arm_neon_ok } */
40229 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40230 +/* { dg-options "-save-temps -O0" } */
40231 +/* { dg-add-options arm_neon } */
40232
40233 #include "arm_neon.h"
40234
40235 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dupu64.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dupu64.c
40236 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dupu64.c 2007-07-25 14:28:31.000000000 +0200
40237 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dupu64.c 2010-01-25 09:50:29.385686707 +0100
40238 @@ -3,7 +3,8 @@
40239
40240 /* { dg-do assemble } */
40241 /* { dg-require-effective-target arm_neon_ok } */
40242 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40243 +/* { dg-options "-save-temps -O0" } */
40244 +/* { dg-add-options arm_neon } */
40245
40246 #include "arm_neon.h"
40247
40248 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_dupu8.c b/gcc/testsuite/gcc.target/arm/neon/vld3_dupu8.c
40249 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_dupu8.c 2007-07-25 14:28:31.000000000 +0200
40250 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_dupu8.c 2010-01-25 09:50:29.385686707 +0100
40251 @@ -3,7 +3,8 @@
40252
40253 /* { dg-do assemble } */
40254 /* { dg-require-effective-target arm_neon_ok } */
40255 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40256 +/* { dg-options "-save-temps -O0" } */
40257 +/* { dg-add-options arm_neon } */
40258
40259 #include "arm_neon.h"
40260
40261 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3f32.c b/gcc/testsuite/gcc.target/arm/neon/vld3f32.c
40262 --- a/gcc/testsuite/gcc.target/arm/neon/vld3f32.c 2007-07-25 14:28:31.000000000 +0200
40263 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3f32.c 2010-01-25 09:50:29.385686707 +0100
40264 @@ -3,7 +3,8 @@
40265
40266 /* { dg-do assemble } */
40267 /* { dg-require-effective-target arm_neon_ok } */
40268 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40269 +/* { dg-options "-save-temps -O0" } */
40270 +/* { dg-add-options arm_neon } */
40271
40272 #include "arm_neon.h"
40273
40274 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vld3_lanef32.c
40275 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_lanef32.c 2007-07-25 14:28:31.000000000 +0200
40276 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_lanef32.c 2010-01-25 09:50:29.385686707 +0100
40277 @@ -3,7 +3,8 @@
40278
40279 /* { dg-do assemble } */
40280 /* { dg-require-effective-target arm_neon_ok } */
40281 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40282 +/* { dg-options "-save-temps -O0" } */
40283 +/* { dg-add-options arm_neon } */
40284
40285 #include "arm_neon.h"
40286
40287 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vld3_lanep16.c
40288 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_lanep16.c 2007-07-25 14:28:31.000000000 +0200
40289 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_lanep16.c 2010-01-25 09:50:29.385686707 +0100
40290 @@ -3,7 +3,8 @@
40291
40292 /* { dg-do assemble } */
40293 /* { dg-require-effective-target arm_neon_ok } */
40294 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40295 +/* { dg-options "-save-temps -O0" } */
40296 +/* { dg-add-options arm_neon } */
40297
40298 #include "arm_neon.h"
40299
40300 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vld3_lanep8.c
40301 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_lanep8.c 2007-07-25 14:28:31.000000000 +0200
40302 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_lanep8.c 2010-01-25 09:50:29.385686707 +0100
40303 @@ -3,7 +3,8 @@
40304
40305 /* { dg-do assemble } */
40306 /* { dg-require-effective-target arm_neon_ok } */
40307 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40308 +/* { dg-options "-save-temps -O0" } */
40309 +/* { dg-add-options arm_neon } */
40310
40311 #include "arm_neon.h"
40312
40313 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vld3_lanes16.c
40314 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_lanes16.c 2007-07-25 14:28:31.000000000 +0200
40315 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_lanes16.c 2010-01-25 09:50:29.385686707 +0100
40316 @@ -3,7 +3,8 @@
40317
40318 /* { dg-do assemble } */
40319 /* { dg-require-effective-target arm_neon_ok } */
40320 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40321 +/* { dg-options "-save-temps -O0" } */
40322 +/* { dg-add-options arm_neon } */
40323
40324 #include "arm_neon.h"
40325
40326 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vld3_lanes32.c
40327 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_lanes32.c 2007-07-25 14:28:31.000000000 +0200
40328 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_lanes32.c 2010-01-25 09:50:29.385686707 +0100
40329 @@ -3,7 +3,8 @@
40330
40331 /* { dg-do assemble } */
40332 /* { dg-require-effective-target arm_neon_ok } */
40333 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40334 +/* { dg-options "-save-temps -O0" } */
40335 +/* { dg-add-options arm_neon } */
40336
40337 #include "arm_neon.h"
40338
40339 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vld3_lanes8.c
40340 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_lanes8.c 2007-07-25 14:28:31.000000000 +0200
40341 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_lanes8.c 2010-01-25 09:50:29.385686707 +0100
40342 @@ -3,7 +3,8 @@
40343
40344 /* { dg-do assemble } */
40345 /* { dg-require-effective-target arm_neon_ok } */
40346 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40347 +/* { dg-options "-save-temps -O0" } */
40348 +/* { dg-add-options arm_neon } */
40349
40350 #include "arm_neon.h"
40351
40352 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vld3_laneu16.c
40353 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_laneu16.c 2007-07-25 14:28:31.000000000 +0200
40354 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_laneu16.c 2010-01-25 09:50:29.385686707 +0100
40355 @@ -3,7 +3,8 @@
40356
40357 /* { dg-do assemble } */
40358 /* { dg-require-effective-target arm_neon_ok } */
40359 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40360 +/* { dg-options "-save-temps -O0" } */
40361 +/* { dg-add-options arm_neon } */
40362
40363 #include "arm_neon.h"
40364
40365 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vld3_laneu32.c
40366 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_laneu32.c 2007-07-25 14:28:31.000000000 +0200
40367 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_laneu32.c 2010-01-25 09:50:29.385686707 +0100
40368 @@ -3,7 +3,8 @@
40369
40370 /* { dg-do assemble } */
40371 /* { dg-require-effective-target arm_neon_ok } */
40372 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40373 +/* { dg-options "-save-temps -O0" } */
40374 +/* { dg-add-options arm_neon } */
40375
40376 #include "arm_neon.h"
40377
40378 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vld3_laneu8.c
40379 --- a/gcc/testsuite/gcc.target/arm/neon/vld3_laneu8.c 2007-07-25 14:28:31.000000000 +0200
40380 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3_laneu8.c 2010-01-25 09:50:29.385686707 +0100
40381 @@ -3,7 +3,8 @@
40382
40383 /* { dg-do assemble } */
40384 /* { dg-require-effective-target arm_neon_ok } */
40385 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40386 +/* { dg-options "-save-temps -O0" } */
40387 +/* { dg-add-options arm_neon } */
40388
40389 #include "arm_neon.h"
40390
40391 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3p16.c b/gcc/testsuite/gcc.target/arm/neon/vld3p16.c
40392 --- a/gcc/testsuite/gcc.target/arm/neon/vld3p16.c 2007-07-25 14:28:31.000000000 +0200
40393 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3p16.c 2010-01-25 09:50:29.385686707 +0100
40394 @@ -3,7 +3,8 @@
40395
40396 /* { dg-do assemble } */
40397 /* { dg-require-effective-target arm_neon_ok } */
40398 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40399 +/* { dg-options "-save-temps -O0" } */
40400 +/* { dg-add-options arm_neon } */
40401
40402 #include "arm_neon.h"
40403
40404 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3p8.c b/gcc/testsuite/gcc.target/arm/neon/vld3p8.c
40405 --- a/gcc/testsuite/gcc.target/arm/neon/vld3p8.c 2007-07-25 14:28:31.000000000 +0200
40406 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3p8.c 2010-01-25 09:50:29.385686707 +0100
40407 @@ -3,7 +3,8 @@
40408
40409 /* { dg-do assemble } */
40410 /* { dg-require-effective-target arm_neon_ok } */
40411 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40412 +/* { dg-options "-save-temps -O0" } */
40413 +/* { dg-add-options arm_neon } */
40414
40415 #include "arm_neon.h"
40416
40417 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qf32.c
40418 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qf32.c 2007-07-25 14:28:31.000000000 +0200
40419 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qf32.c 2010-01-25 09:50:29.385686707 +0100
40420 @@ -3,7 +3,8 @@
40421
40422 /* { dg-do assemble } */
40423 /* { dg-require-effective-target arm_neon_ok } */
40424 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40425 +/* { dg-options "-save-temps -O0" } */
40426 +/* { dg-add-options arm_neon } */
40427
40428 #include "arm_neon.h"
40429
40430 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanef32.c
40431 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanef32.c 2007-07-25 14:28:31.000000000 +0200
40432 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanef32.c 2010-01-25 09:50:29.385686707 +0100
40433 @@ -3,7 +3,8 @@
40434
40435 /* { dg-do assemble } */
40436 /* { dg-require-effective-target arm_neon_ok } */
40437 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40438 +/* { dg-options "-save-temps -O0" } */
40439 +/* { dg-add-options arm_neon } */
40440
40441 #include "arm_neon.h"
40442
40443 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanep16.c
40444 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanep16.c 2007-07-25 14:28:31.000000000 +0200
40445 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanep16.c 2010-01-25 09:50:29.385686707 +0100
40446 @@ -3,7 +3,8 @@
40447
40448 /* { dg-do assemble } */
40449 /* { dg-require-effective-target arm_neon_ok } */
40450 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40451 +/* { dg-options "-save-temps -O0" } */
40452 +/* { dg-add-options arm_neon } */
40453
40454 #include "arm_neon.h"
40455
40456 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanes16.c
40457 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanes16.c 2007-07-25 14:28:31.000000000 +0200
40458 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanes16.c 2010-01-25 09:50:29.385686707 +0100
40459 @@ -3,7 +3,8 @@
40460
40461 /* { dg-do assemble } */
40462 /* { dg-require-effective-target arm_neon_ok } */
40463 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40464 +/* { dg-options "-save-temps -O0" } */
40465 +/* { dg-add-options arm_neon } */
40466
40467 #include "arm_neon.h"
40468
40469 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanes32.c
40470 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanes32.c 2007-07-25 14:28:31.000000000 +0200
40471 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Q_lanes32.c 2010-01-25 09:50:29.385686707 +0100
40472 @@ -3,7 +3,8 @@
40473
40474 /* { dg-do assemble } */
40475 /* { dg-require-effective-target arm_neon_ok } */
40476 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40477 +/* { dg-options "-save-temps -O0" } */
40478 +/* { dg-add-options arm_neon } */
40479
40480 #include "arm_neon.h"
40481
40482 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Q_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vld3Q_laneu16.c
40483 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Q_laneu16.c 2007-07-25 14:28:31.000000000 +0200
40484 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Q_laneu16.c 2010-01-25 09:50:29.385686707 +0100
40485 @@ -3,7 +3,8 @@
40486
40487 /* { dg-do assemble } */
40488 /* { dg-require-effective-target arm_neon_ok } */
40489 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40490 +/* { dg-options "-save-temps -O0" } */
40491 +/* { dg-add-options arm_neon } */
40492
40493 #include "arm_neon.h"
40494
40495 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Q_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vld3Q_laneu32.c
40496 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Q_laneu32.c 2007-07-25 14:28:31.000000000 +0200
40497 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Q_laneu32.c 2010-01-25 09:50:29.385686707 +0100
40498 @@ -3,7 +3,8 @@
40499
40500 /* { dg-do assemble } */
40501 /* { dg-require-effective-target arm_neon_ok } */
40502 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40503 +/* { dg-options "-save-temps -O0" } */
40504 +/* { dg-add-options arm_neon } */
40505
40506 #include "arm_neon.h"
40507
40508 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qp16.c
40509 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qp16.c 2007-07-25 14:28:31.000000000 +0200
40510 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qp16.c 2010-01-25 09:50:29.385686707 +0100
40511 @@ -3,7 +3,8 @@
40512
40513 /* { dg-do assemble } */
40514 /* { dg-require-effective-target arm_neon_ok } */
40515 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40516 +/* { dg-options "-save-temps -O0" } */
40517 +/* { dg-add-options arm_neon } */
40518
40519 #include "arm_neon.h"
40520
40521 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qp8.c
40522 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qp8.c 2007-07-25 14:28:31.000000000 +0200
40523 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qp8.c 2010-01-25 09:50:29.385686707 +0100
40524 @@ -3,7 +3,8 @@
40525
40526 /* { dg-do assemble } */
40527 /* { dg-require-effective-target arm_neon_ok } */
40528 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40529 +/* { dg-options "-save-temps -O0" } */
40530 +/* { dg-add-options arm_neon } */
40531
40532 #include "arm_neon.h"
40533
40534 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qs16.c
40535 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qs16.c 2007-07-25 14:28:31.000000000 +0200
40536 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qs16.c 2010-01-25 09:50:29.385686707 +0100
40537 @@ -3,7 +3,8 @@
40538
40539 /* { dg-do assemble } */
40540 /* { dg-require-effective-target arm_neon_ok } */
40541 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40542 +/* { dg-options "-save-temps -O0" } */
40543 +/* { dg-add-options arm_neon } */
40544
40545 #include "arm_neon.h"
40546
40547 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qs32.c
40548 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qs32.c 2007-07-25 14:28:31.000000000 +0200
40549 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qs32.c 2010-01-25 09:50:29.385686707 +0100
40550 @@ -3,7 +3,8 @@
40551
40552 /* { dg-do assemble } */
40553 /* { dg-require-effective-target arm_neon_ok } */
40554 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40555 +/* { dg-options "-save-temps -O0" } */
40556 +/* { dg-add-options arm_neon } */
40557
40558 #include "arm_neon.h"
40559
40560 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qs8.c
40561 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qs8.c 2007-07-25 14:28:31.000000000 +0200
40562 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qs8.c 2010-01-25 09:50:29.385686707 +0100
40563 @@ -3,7 +3,8 @@
40564
40565 /* { dg-do assemble } */
40566 /* { dg-require-effective-target arm_neon_ok } */
40567 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40568 +/* { dg-options "-save-temps -O0" } */
40569 +/* { dg-add-options arm_neon } */
40570
40571 #include "arm_neon.h"
40572
40573 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qu16.c
40574 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qu16.c 2007-07-25 14:28:31.000000000 +0200
40575 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qu16.c 2010-01-25 09:50:29.385686707 +0100
40576 @@ -3,7 +3,8 @@
40577
40578 /* { dg-do assemble } */
40579 /* { dg-require-effective-target arm_neon_ok } */
40580 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40581 +/* { dg-options "-save-temps -O0" } */
40582 +/* { dg-add-options arm_neon } */
40583
40584 #include "arm_neon.h"
40585
40586 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qu32.c
40587 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qu32.c 2007-07-25 14:28:31.000000000 +0200
40588 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qu32.c 2010-01-25 09:50:29.385686707 +0100
40589 @@ -3,7 +3,8 @@
40590
40591 /* { dg-do assemble } */
40592 /* { dg-require-effective-target arm_neon_ok } */
40593 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40594 +/* { dg-options "-save-temps -O0" } */
40595 +/* { dg-add-options arm_neon } */
40596
40597 #include "arm_neon.h"
40598
40599 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vld3Qu8.c
40600 --- a/gcc/testsuite/gcc.target/arm/neon/vld3Qu8.c 2007-07-25 14:28:31.000000000 +0200
40601 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3Qu8.c 2010-01-25 09:50:29.385686707 +0100
40602 @@ -3,7 +3,8 @@
40603
40604 /* { dg-do assemble } */
40605 /* { dg-require-effective-target arm_neon_ok } */
40606 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40607 +/* { dg-options "-save-temps -O0" } */
40608 +/* { dg-add-options arm_neon } */
40609
40610 #include "arm_neon.h"
40611
40612 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3s16.c b/gcc/testsuite/gcc.target/arm/neon/vld3s16.c
40613 --- a/gcc/testsuite/gcc.target/arm/neon/vld3s16.c 2007-07-25 14:28:31.000000000 +0200
40614 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3s16.c 2010-01-25 09:50:29.395687140 +0100
40615 @@ -3,7 +3,8 @@
40616
40617 /* { dg-do assemble } */
40618 /* { dg-require-effective-target arm_neon_ok } */
40619 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40620 +/* { dg-options "-save-temps -O0" } */
40621 +/* { dg-add-options arm_neon } */
40622
40623 #include "arm_neon.h"
40624
40625 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3s32.c b/gcc/testsuite/gcc.target/arm/neon/vld3s32.c
40626 --- a/gcc/testsuite/gcc.target/arm/neon/vld3s32.c 2007-07-25 14:28:31.000000000 +0200
40627 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3s32.c 2010-01-25 09:50:29.395687140 +0100
40628 @@ -3,7 +3,8 @@
40629
40630 /* { dg-do assemble } */
40631 /* { dg-require-effective-target arm_neon_ok } */
40632 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40633 +/* { dg-options "-save-temps -O0" } */
40634 +/* { dg-add-options arm_neon } */
40635
40636 #include "arm_neon.h"
40637
40638 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3s64.c b/gcc/testsuite/gcc.target/arm/neon/vld3s64.c
40639 --- a/gcc/testsuite/gcc.target/arm/neon/vld3s64.c 2007-07-25 14:28:31.000000000 +0200
40640 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3s64.c 2010-01-25 09:50:29.395687140 +0100
40641 @@ -3,7 +3,8 @@
40642
40643 /* { dg-do assemble } */
40644 /* { dg-require-effective-target arm_neon_ok } */
40645 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40646 +/* { dg-options "-save-temps -O0" } */
40647 +/* { dg-add-options arm_neon } */
40648
40649 #include "arm_neon.h"
40650
40651 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3s8.c b/gcc/testsuite/gcc.target/arm/neon/vld3s8.c
40652 --- a/gcc/testsuite/gcc.target/arm/neon/vld3s8.c 2007-07-25 14:28:31.000000000 +0200
40653 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3s8.c 2010-01-25 09:50:29.395687140 +0100
40654 @@ -3,7 +3,8 @@
40655
40656 /* { dg-do assemble } */
40657 /* { dg-require-effective-target arm_neon_ok } */
40658 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40659 +/* { dg-options "-save-temps -O0" } */
40660 +/* { dg-add-options arm_neon } */
40661
40662 #include "arm_neon.h"
40663
40664 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3u16.c b/gcc/testsuite/gcc.target/arm/neon/vld3u16.c
40665 --- a/gcc/testsuite/gcc.target/arm/neon/vld3u16.c 2007-07-25 14:28:31.000000000 +0200
40666 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3u16.c 2010-01-25 09:50:29.395687140 +0100
40667 @@ -3,7 +3,8 @@
40668
40669 /* { dg-do assemble } */
40670 /* { dg-require-effective-target arm_neon_ok } */
40671 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40672 +/* { dg-options "-save-temps -O0" } */
40673 +/* { dg-add-options arm_neon } */
40674
40675 #include "arm_neon.h"
40676
40677 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3u32.c b/gcc/testsuite/gcc.target/arm/neon/vld3u32.c
40678 --- a/gcc/testsuite/gcc.target/arm/neon/vld3u32.c 2007-07-25 14:28:31.000000000 +0200
40679 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3u32.c 2010-01-25 09:50:29.395687140 +0100
40680 @@ -3,7 +3,8 @@
40681
40682 /* { dg-do assemble } */
40683 /* { dg-require-effective-target arm_neon_ok } */
40684 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40685 +/* { dg-options "-save-temps -O0" } */
40686 +/* { dg-add-options arm_neon } */
40687
40688 #include "arm_neon.h"
40689
40690 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3u64.c b/gcc/testsuite/gcc.target/arm/neon/vld3u64.c
40691 --- a/gcc/testsuite/gcc.target/arm/neon/vld3u64.c 2007-07-25 14:28:31.000000000 +0200
40692 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3u64.c 2010-01-25 09:50:29.395687140 +0100
40693 @@ -3,7 +3,8 @@
40694
40695 /* { dg-do assemble } */
40696 /* { dg-require-effective-target arm_neon_ok } */
40697 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40698 +/* { dg-options "-save-temps -O0" } */
40699 +/* { dg-add-options arm_neon } */
40700
40701 #include "arm_neon.h"
40702
40703 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld3u8.c b/gcc/testsuite/gcc.target/arm/neon/vld3u8.c
40704 --- a/gcc/testsuite/gcc.target/arm/neon/vld3u8.c 2007-07-25 14:28:31.000000000 +0200
40705 +++ b/gcc/testsuite/gcc.target/arm/neon/vld3u8.c 2010-01-25 09:50:29.395687140 +0100
40706 @@ -3,7 +3,8 @@
40707
40708 /* { dg-do assemble } */
40709 /* { dg-require-effective-target arm_neon_ok } */
40710 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40711 +/* { dg-options "-save-temps -O0" } */
40712 +/* { dg-add-options arm_neon } */
40713
40714 #include "arm_neon.h"
40715
40716 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dupf32.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dupf32.c
40717 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dupf32.c 2007-07-25 14:28:31.000000000 +0200
40718 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dupf32.c 2010-01-25 09:50:29.395687140 +0100
40719 @@ -3,7 +3,8 @@
40720
40721 /* { dg-do assemble } */
40722 /* { dg-require-effective-target arm_neon_ok } */
40723 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40724 +/* { dg-options "-save-temps -O0" } */
40725 +/* { dg-add-options arm_neon } */
40726
40727 #include "arm_neon.h"
40728
40729 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dupp16.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dupp16.c
40730 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dupp16.c 2007-07-25 14:28:31.000000000 +0200
40731 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dupp16.c 2010-01-25 09:50:29.395687140 +0100
40732 @@ -3,7 +3,8 @@
40733
40734 /* { dg-do assemble } */
40735 /* { dg-require-effective-target arm_neon_ok } */
40736 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40737 +/* { dg-options "-save-temps -O0" } */
40738 +/* { dg-add-options arm_neon } */
40739
40740 #include "arm_neon.h"
40741
40742 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dupp8.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dupp8.c
40743 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dupp8.c 2007-07-25 14:28:31.000000000 +0200
40744 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dupp8.c 2010-01-25 09:50:29.395687140 +0100
40745 @@ -3,7 +3,8 @@
40746
40747 /* { dg-do assemble } */
40748 /* { dg-require-effective-target arm_neon_ok } */
40749 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40750 +/* { dg-options "-save-temps -O0" } */
40751 +/* { dg-add-options arm_neon } */
40752
40753 #include "arm_neon.h"
40754
40755 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dups16.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dups16.c
40756 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dups16.c 2007-07-25 14:28:31.000000000 +0200
40757 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dups16.c 2010-01-25 09:50:29.395687140 +0100
40758 @@ -3,7 +3,8 @@
40759
40760 /* { dg-do assemble } */
40761 /* { dg-require-effective-target arm_neon_ok } */
40762 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40763 +/* { dg-options "-save-temps -O0" } */
40764 +/* { dg-add-options arm_neon } */
40765
40766 #include "arm_neon.h"
40767
40768 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dups32.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dups32.c
40769 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dups32.c 2007-07-25 14:28:31.000000000 +0200
40770 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dups32.c 2010-01-25 09:50:29.395687140 +0100
40771 @@ -3,7 +3,8 @@
40772
40773 /* { dg-do assemble } */
40774 /* { dg-require-effective-target arm_neon_ok } */
40775 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40776 +/* { dg-options "-save-temps -O0" } */
40777 +/* { dg-add-options arm_neon } */
40778
40779 #include "arm_neon.h"
40780
40781 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dups64.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dups64.c
40782 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dups64.c 2007-07-25 14:28:31.000000000 +0200
40783 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dups64.c 2010-01-25 09:50:29.395687140 +0100
40784 @@ -3,7 +3,8 @@
40785
40786 /* { dg-do assemble } */
40787 /* { dg-require-effective-target arm_neon_ok } */
40788 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40789 +/* { dg-options "-save-temps -O0" } */
40790 +/* { dg-add-options arm_neon } */
40791
40792 #include "arm_neon.h"
40793
40794 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dups8.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dups8.c
40795 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dups8.c 2007-07-25 14:28:31.000000000 +0200
40796 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dups8.c 2010-01-25 09:50:29.395687140 +0100
40797 @@ -3,7 +3,8 @@
40798
40799 /* { dg-do assemble } */
40800 /* { dg-require-effective-target arm_neon_ok } */
40801 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40802 +/* { dg-options "-save-temps -O0" } */
40803 +/* { dg-add-options arm_neon } */
40804
40805 #include "arm_neon.h"
40806
40807 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dupu16.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dupu16.c
40808 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dupu16.c 2007-07-25 14:28:31.000000000 +0200
40809 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dupu16.c 2010-01-25 09:50:29.395687140 +0100
40810 @@ -3,7 +3,8 @@
40811
40812 /* { dg-do assemble } */
40813 /* { dg-require-effective-target arm_neon_ok } */
40814 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40815 +/* { dg-options "-save-temps -O0" } */
40816 +/* { dg-add-options arm_neon } */
40817
40818 #include "arm_neon.h"
40819
40820 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dupu32.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dupu32.c
40821 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dupu32.c 2007-07-25 14:28:31.000000000 +0200
40822 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dupu32.c 2010-01-25 09:50:29.395687140 +0100
40823 @@ -3,7 +3,8 @@
40824
40825 /* { dg-do assemble } */
40826 /* { dg-require-effective-target arm_neon_ok } */
40827 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40828 +/* { dg-options "-save-temps -O0" } */
40829 +/* { dg-add-options arm_neon } */
40830
40831 #include "arm_neon.h"
40832
40833 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dupu64.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dupu64.c
40834 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dupu64.c 2007-07-25 14:28:31.000000000 +0200
40835 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dupu64.c 2010-01-25 09:50:29.395687140 +0100
40836 @@ -3,7 +3,8 @@
40837
40838 /* { dg-do assemble } */
40839 /* { dg-require-effective-target arm_neon_ok } */
40840 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40841 +/* { dg-options "-save-temps -O0" } */
40842 +/* { dg-add-options arm_neon } */
40843
40844 #include "arm_neon.h"
40845
40846 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_dupu8.c b/gcc/testsuite/gcc.target/arm/neon/vld4_dupu8.c
40847 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_dupu8.c 2007-07-25 14:28:31.000000000 +0200
40848 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_dupu8.c 2010-01-25 09:50:29.395687140 +0100
40849 @@ -3,7 +3,8 @@
40850
40851 /* { dg-do assemble } */
40852 /* { dg-require-effective-target arm_neon_ok } */
40853 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40854 +/* { dg-options "-save-temps -O0" } */
40855 +/* { dg-add-options arm_neon } */
40856
40857 #include "arm_neon.h"
40858
40859 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4f32.c b/gcc/testsuite/gcc.target/arm/neon/vld4f32.c
40860 --- a/gcc/testsuite/gcc.target/arm/neon/vld4f32.c 2007-07-25 14:28:31.000000000 +0200
40861 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4f32.c 2010-01-25 09:50:29.395687140 +0100
40862 @@ -3,7 +3,8 @@
40863
40864 /* { dg-do assemble } */
40865 /* { dg-require-effective-target arm_neon_ok } */
40866 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40867 +/* { dg-options "-save-temps -O0" } */
40868 +/* { dg-add-options arm_neon } */
40869
40870 #include "arm_neon.h"
40871
40872 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vld4_lanef32.c
40873 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_lanef32.c 2007-07-25 14:28:31.000000000 +0200
40874 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_lanef32.c 2010-01-25 09:50:29.395687140 +0100
40875 @@ -3,7 +3,8 @@
40876
40877 /* { dg-do assemble } */
40878 /* { dg-require-effective-target arm_neon_ok } */
40879 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40880 +/* { dg-options "-save-temps -O0" } */
40881 +/* { dg-add-options arm_neon } */
40882
40883 #include "arm_neon.h"
40884
40885 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vld4_lanep16.c
40886 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_lanep16.c 2007-07-25 14:28:31.000000000 +0200
40887 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_lanep16.c 2010-01-25 09:50:29.395687140 +0100
40888 @@ -3,7 +3,8 @@
40889
40890 /* { dg-do assemble } */
40891 /* { dg-require-effective-target arm_neon_ok } */
40892 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40893 +/* { dg-options "-save-temps -O0" } */
40894 +/* { dg-add-options arm_neon } */
40895
40896 #include "arm_neon.h"
40897
40898 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vld4_lanep8.c
40899 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_lanep8.c 2007-07-25 14:28:31.000000000 +0200
40900 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_lanep8.c 2010-01-25 09:50:29.395687140 +0100
40901 @@ -3,7 +3,8 @@
40902
40903 /* { dg-do assemble } */
40904 /* { dg-require-effective-target arm_neon_ok } */
40905 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40906 +/* { dg-options "-save-temps -O0" } */
40907 +/* { dg-add-options arm_neon } */
40908
40909 #include "arm_neon.h"
40910
40911 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vld4_lanes16.c
40912 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_lanes16.c 2007-07-25 14:28:31.000000000 +0200
40913 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_lanes16.c 2010-01-25 09:50:29.395687140 +0100
40914 @@ -3,7 +3,8 @@
40915
40916 /* { dg-do assemble } */
40917 /* { dg-require-effective-target arm_neon_ok } */
40918 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40919 +/* { dg-options "-save-temps -O0" } */
40920 +/* { dg-add-options arm_neon } */
40921
40922 #include "arm_neon.h"
40923
40924 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vld4_lanes32.c
40925 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_lanes32.c 2007-07-25 14:28:31.000000000 +0200
40926 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_lanes32.c 2010-01-25 09:50:29.395687140 +0100
40927 @@ -3,7 +3,8 @@
40928
40929 /* { dg-do assemble } */
40930 /* { dg-require-effective-target arm_neon_ok } */
40931 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40932 +/* { dg-options "-save-temps -O0" } */
40933 +/* { dg-add-options arm_neon } */
40934
40935 #include "arm_neon.h"
40936
40937 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vld4_lanes8.c
40938 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_lanes8.c 2007-07-25 14:28:31.000000000 +0200
40939 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_lanes8.c 2010-01-25 09:50:29.395687140 +0100
40940 @@ -3,7 +3,8 @@
40941
40942 /* { dg-do assemble } */
40943 /* { dg-require-effective-target arm_neon_ok } */
40944 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40945 +/* { dg-options "-save-temps -O0" } */
40946 +/* { dg-add-options arm_neon } */
40947
40948 #include "arm_neon.h"
40949
40950 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vld4_laneu16.c
40951 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_laneu16.c 2007-07-25 14:28:31.000000000 +0200
40952 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_laneu16.c 2010-01-25 09:50:29.395687140 +0100
40953 @@ -3,7 +3,8 @@
40954
40955 /* { dg-do assemble } */
40956 /* { dg-require-effective-target arm_neon_ok } */
40957 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40958 +/* { dg-options "-save-temps -O0" } */
40959 +/* { dg-add-options arm_neon } */
40960
40961 #include "arm_neon.h"
40962
40963 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vld4_laneu32.c
40964 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_laneu32.c 2007-07-25 14:28:31.000000000 +0200
40965 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_laneu32.c 2010-01-25 09:50:29.395687140 +0100
40966 @@ -3,7 +3,8 @@
40967
40968 /* { dg-do assemble } */
40969 /* { dg-require-effective-target arm_neon_ok } */
40970 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40971 +/* { dg-options "-save-temps -O0" } */
40972 +/* { dg-add-options arm_neon } */
40973
40974 #include "arm_neon.h"
40975
40976 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vld4_laneu8.c
40977 --- a/gcc/testsuite/gcc.target/arm/neon/vld4_laneu8.c 2007-07-25 14:28:31.000000000 +0200
40978 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4_laneu8.c 2010-01-25 09:50:29.395687140 +0100
40979 @@ -3,7 +3,8 @@
40980
40981 /* { dg-do assemble } */
40982 /* { dg-require-effective-target arm_neon_ok } */
40983 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40984 +/* { dg-options "-save-temps -O0" } */
40985 +/* { dg-add-options arm_neon } */
40986
40987 #include "arm_neon.h"
40988
40989 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4p16.c b/gcc/testsuite/gcc.target/arm/neon/vld4p16.c
40990 --- a/gcc/testsuite/gcc.target/arm/neon/vld4p16.c 2007-07-25 14:28:31.000000000 +0200
40991 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4p16.c 2010-01-25 09:50:29.395687140 +0100
40992 @@ -3,7 +3,8 @@
40993
40994 /* { dg-do assemble } */
40995 /* { dg-require-effective-target arm_neon_ok } */
40996 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
40997 +/* { dg-options "-save-temps -O0" } */
40998 +/* { dg-add-options arm_neon } */
40999
41000 #include "arm_neon.h"
41001
41002 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4p8.c b/gcc/testsuite/gcc.target/arm/neon/vld4p8.c
41003 --- a/gcc/testsuite/gcc.target/arm/neon/vld4p8.c 2007-07-25 14:28:31.000000000 +0200
41004 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4p8.c 2010-01-25 09:50:29.395687140 +0100
41005 @@ -3,7 +3,8 @@
41006
41007 /* { dg-do assemble } */
41008 /* { dg-require-effective-target arm_neon_ok } */
41009 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41010 +/* { dg-options "-save-temps -O0" } */
41011 +/* { dg-add-options arm_neon } */
41012
41013 #include "arm_neon.h"
41014
41015 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qf32.c
41016 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qf32.c 2007-07-25 14:28:31.000000000 +0200
41017 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qf32.c 2010-01-25 09:50:29.395687140 +0100
41018 @@ -3,7 +3,8 @@
41019
41020 /* { dg-do assemble } */
41021 /* { dg-require-effective-target arm_neon_ok } */
41022 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41023 +/* { dg-options "-save-temps -O0" } */
41024 +/* { dg-add-options arm_neon } */
41025
41026 #include "arm_neon.h"
41027
41028 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanef32.c
41029 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanef32.c 2007-07-25 14:28:31.000000000 +0200
41030 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanef32.c 2010-01-25 09:50:29.395687140 +0100
41031 @@ -3,7 +3,8 @@
41032
41033 /* { dg-do assemble } */
41034 /* { dg-require-effective-target arm_neon_ok } */
41035 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41036 +/* { dg-options "-save-temps -O0" } */
41037 +/* { dg-add-options arm_neon } */
41038
41039 #include "arm_neon.h"
41040
41041 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanep16.c
41042 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanep16.c 2007-07-25 14:28:31.000000000 +0200
41043 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanep16.c 2010-01-25 09:50:29.395687140 +0100
41044 @@ -3,7 +3,8 @@
41045
41046 /* { dg-do assemble } */
41047 /* { dg-require-effective-target arm_neon_ok } */
41048 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41049 +/* { dg-options "-save-temps -O0" } */
41050 +/* { dg-add-options arm_neon } */
41051
41052 #include "arm_neon.h"
41053
41054 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanes16.c
41055 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanes16.c 2007-07-25 14:28:31.000000000 +0200
41056 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanes16.c 2010-01-25 09:50:29.395687140 +0100
41057 @@ -3,7 +3,8 @@
41058
41059 /* { dg-do assemble } */
41060 /* { dg-require-effective-target arm_neon_ok } */
41061 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41062 +/* { dg-options "-save-temps -O0" } */
41063 +/* { dg-add-options arm_neon } */
41064
41065 #include "arm_neon.h"
41066
41067 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanes32.c
41068 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanes32.c 2007-07-25 14:28:31.000000000 +0200
41069 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Q_lanes32.c 2010-01-25 09:50:29.395687140 +0100
41070 @@ -3,7 +3,8 @@
41071
41072 /* { dg-do assemble } */
41073 /* { dg-require-effective-target arm_neon_ok } */
41074 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41075 +/* { dg-options "-save-temps -O0" } */
41076 +/* { dg-add-options arm_neon } */
41077
41078 #include "arm_neon.h"
41079
41080 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Q_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vld4Q_laneu16.c
41081 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Q_laneu16.c 2007-07-25 14:28:31.000000000 +0200
41082 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Q_laneu16.c 2010-01-25 09:50:29.395687140 +0100
41083 @@ -3,7 +3,8 @@
41084
41085 /* { dg-do assemble } */
41086 /* { dg-require-effective-target arm_neon_ok } */
41087 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41088 +/* { dg-options "-save-temps -O0" } */
41089 +/* { dg-add-options arm_neon } */
41090
41091 #include "arm_neon.h"
41092
41093 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Q_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vld4Q_laneu32.c
41094 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Q_laneu32.c 2007-07-25 14:28:31.000000000 +0200
41095 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Q_laneu32.c 2010-01-25 09:50:29.395687140 +0100
41096 @@ -3,7 +3,8 @@
41097
41098 /* { dg-do assemble } */
41099 /* { dg-require-effective-target arm_neon_ok } */
41100 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41101 +/* { dg-options "-save-temps -O0" } */
41102 +/* { dg-add-options arm_neon } */
41103
41104 #include "arm_neon.h"
41105
41106 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qp16.c
41107 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qp16.c 2007-07-25 14:28:31.000000000 +0200
41108 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qp16.c 2010-01-25 09:50:29.395687140 +0100
41109 @@ -3,7 +3,8 @@
41110
41111 /* { dg-do assemble } */
41112 /* { dg-require-effective-target arm_neon_ok } */
41113 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41114 +/* { dg-options "-save-temps -O0" } */
41115 +/* { dg-add-options arm_neon } */
41116
41117 #include "arm_neon.h"
41118
41119 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qp8.c
41120 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qp8.c 2007-07-25 14:28:31.000000000 +0200
41121 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qp8.c 2010-01-25 09:50:29.395687140 +0100
41122 @@ -3,7 +3,8 @@
41123
41124 /* { dg-do assemble } */
41125 /* { dg-require-effective-target arm_neon_ok } */
41126 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41127 +/* { dg-options "-save-temps -O0" } */
41128 +/* { dg-add-options arm_neon } */
41129
41130 #include "arm_neon.h"
41131
41132 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qs16.c
41133 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qs16.c 2007-07-25 14:28:31.000000000 +0200
41134 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qs16.c 2010-01-25 09:50:29.395687140 +0100
41135 @@ -3,7 +3,8 @@
41136
41137 /* { dg-do assemble } */
41138 /* { dg-require-effective-target arm_neon_ok } */
41139 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41140 +/* { dg-options "-save-temps -O0" } */
41141 +/* { dg-add-options arm_neon } */
41142
41143 #include "arm_neon.h"
41144
41145 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qs32.c
41146 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qs32.c 2007-07-25 14:28:31.000000000 +0200
41147 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qs32.c 2010-01-25 09:50:29.395687140 +0100
41148 @@ -3,7 +3,8 @@
41149
41150 /* { dg-do assemble } */
41151 /* { dg-require-effective-target arm_neon_ok } */
41152 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41153 +/* { dg-options "-save-temps -O0" } */
41154 +/* { dg-add-options arm_neon } */
41155
41156 #include "arm_neon.h"
41157
41158 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qs8.c
41159 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qs8.c 2007-07-25 14:28:31.000000000 +0200
41160 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qs8.c 2010-01-25 09:50:29.395687140 +0100
41161 @@ -3,7 +3,8 @@
41162
41163 /* { dg-do assemble } */
41164 /* { dg-require-effective-target arm_neon_ok } */
41165 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41166 +/* { dg-options "-save-temps -O0" } */
41167 +/* { dg-add-options arm_neon } */
41168
41169 #include "arm_neon.h"
41170
41171 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qu16.c
41172 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qu16.c 2007-07-25 14:28:31.000000000 +0200
41173 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qu16.c 2010-01-25 09:50:29.395687140 +0100
41174 @@ -3,7 +3,8 @@
41175
41176 /* { dg-do assemble } */
41177 /* { dg-require-effective-target arm_neon_ok } */
41178 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41179 +/* { dg-options "-save-temps -O0" } */
41180 +/* { dg-add-options arm_neon } */
41181
41182 #include "arm_neon.h"
41183
41184 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qu32.c
41185 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qu32.c 2007-07-25 14:28:31.000000000 +0200
41186 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qu32.c 2010-01-25 09:50:29.395687140 +0100
41187 @@ -3,7 +3,8 @@
41188
41189 /* { dg-do assemble } */
41190 /* { dg-require-effective-target arm_neon_ok } */
41191 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41192 +/* { dg-options "-save-temps -O0" } */
41193 +/* { dg-add-options arm_neon } */
41194
41195 #include "arm_neon.h"
41196
41197 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vld4Qu8.c
41198 --- a/gcc/testsuite/gcc.target/arm/neon/vld4Qu8.c 2007-07-25 14:28:31.000000000 +0200
41199 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4Qu8.c 2010-01-25 09:50:29.395687140 +0100
41200 @@ -3,7 +3,8 @@
41201
41202 /* { dg-do assemble } */
41203 /* { dg-require-effective-target arm_neon_ok } */
41204 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41205 +/* { dg-options "-save-temps -O0" } */
41206 +/* { dg-add-options arm_neon } */
41207
41208 #include "arm_neon.h"
41209
41210 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4s16.c b/gcc/testsuite/gcc.target/arm/neon/vld4s16.c
41211 --- a/gcc/testsuite/gcc.target/arm/neon/vld4s16.c 2007-07-25 14:28:31.000000000 +0200
41212 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4s16.c 2010-01-25 09:50:29.395687140 +0100
41213 @@ -3,7 +3,8 @@
41214
41215 /* { dg-do assemble } */
41216 /* { dg-require-effective-target arm_neon_ok } */
41217 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41218 +/* { dg-options "-save-temps -O0" } */
41219 +/* { dg-add-options arm_neon } */
41220
41221 #include "arm_neon.h"
41222
41223 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4s32.c b/gcc/testsuite/gcc.target/arm/neon/vld4s32.c
41224 --- a/gcc/testsuite/gcc.target/arm/neon/vld4s32.c 2007-07-25 14:28:31.000000000 +0200
41225 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4s32.c 2010-01-25 09:50:29.395687140 +0100
41226 @@ -3,7 +3,8 @@
41227
41228 /* { dg-do assemble } */
41229 /* { dg-require-effective-target arm_neon_ok } */
41230 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41231 +/* { dg-options "-save-temps -O0" } */
41232 +/* { dg-add-options arm_neon } */
41233
41234 #include "arm_neon.h"
41235
41236 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4s64.c b/gcc/testsuite/gcc.target/arm/neon/vld4s64.c
41237 --- a/gcc/testsuite/gcc.target/arm/neon/vld4s64.c 2007-07-25 14:28:31.000000000 +0200
41238 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4s64.c 2010-01-25 09:50:29.395687140 +0100
41239 @@ -3,7 +3,8 @@
41240
41241 /* { dg-do assemble } */
41242 /* { dg-require-effective-target arm_neon_ok } */
41243 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41244 +/* { dg-options "-save-temps -O0" } */
41245 +/* { dg-add-options arm_neon } */
41246
41247 #include "arm_neon.h"
41248
41249 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4s8.c b/gcc/testsuite/gcc.target/arm/neon/vld4s8.c
41250 --- a/gcc/testsuite/gcc.target/arm/neon/vld4s8.c 2007-07-25 14:28:31.000000000 +0200
41251 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4s8.c 2010-01-25 09:50:29.395687140 +0100
41252 @@ -3,7 +3,8 @@
41253
41254 /* { dg-do assemble } */
41255 /* { dg-require-effective-target arm_neon_ok } */
41256 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41257 +/* { dg-options "-save-temps -O0" } */
41258 +/* { dg-add-options arm_neon } */
41259
41260 #include "arm_neon.h"
41261
41262 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4u16.c b/gcc/testsuite/gcc.target/arm/neon/vld4u16.c
41263 --- a/gcc/testsuite/gcc.target/arm/neon/vld4u16.c 2007-07-25 14:28:31.000000000 +0200
41264 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4u16.c 2010-01-25 09:50:29.395687140 +0100
41265 @@ -3,7 +3,8 @@
41266
41267 /* { dg-do assemble } */
41268 /* { dg-require-effective-target arm_neon_ok } */
41269 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41270 +/* { dg-options "-save-temps -O0" } */
41271 +/* { dg-add-options arm_neon } */
41272
41273 #include "arm_neon.h"
41274
41275 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4u32.c b/gcc/testsuite/gcc.target/arm/neon/vld4u32.c
41276 --- a/gcc/testsuite/gcc.target/arm/neon/vld4u32.c 2007-07-25 14:28:31.000000000 +0200
41277 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4u32.c 2010-01-25 09:50:29.395687140 +0100
41278 @@ -3,7 +3,8 @@
41279
41280 /* { dg-do assemble } */
41281 /* { dg-require-effective-target arm_neon_ok } */
41282 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41283 +/* { dg-options "-save-temps -O0" } */
41284 +/* { dg-add-options arm_neon } */
41285
41286 #include "arm_neon.h"
41287
41288 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4u64.c b/gcc/testsuite/gcc.target/arm/neon/vld4u64.c
41289 --- a/gcc/testsuite/gcc.target/arm/neon/vld4u64.c 2007-07-25 14:28:31.000000000 +0200
41290 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4u64.c 2010-01-25 09:50:29.395687140 +0100
41291 @@ -3,7 +3,8 @@
41292
41293 /* { dg-do assemble } */
41294 /* { dg-require-effective-target arm_neon_ok } */
41295 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41296 +/* { dg-options "-save-temps -O0" } */
41297 +/* { dg-add-options arm_neon } */
41298
41299 #include "arm_neon.h"
41300
41301 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vld4u8.c b/gcc/testsuite/gcc.target/arm/neon/vld4u8.c
41302 --- a/gcc/testsuite/gcc.target/arm/neon/vld4u8.c 2007-07-25 14:28:31.000000000 +0200
41303 +++ b/gcc/testsuite/gcc.target/arm/neon/vld4u8.c 2010-01-25 09:50:29.395687140 +0100
41304 @@ -3,7 +3,8 @@
41305
41306 /* { dg-do assemble } */
41307 /* { dg-require-effective-target arm_neon_ok } */
41308 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41309 +/* { dg-options "-save-temps -O0" } */
41310 +/* { dg-add-options arm_neon } */
41311
41312 #include "arm_neon.h"
41313
41314 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxf32.c b/gcc/testsuite/gcc.target/arm/neon/vmaxf32.c
41315 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxf32.c 2007-07-25 14:28:31.000000000 +0200
41316 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxf32.c 2010-01-25 09:50:29.395687140 +0100
41317 @@ -3,7 +3,8 @@
41318
41319 /* { dg-do assemble } */
41320 /* { dg-require-effective-target arm_neon_ok } */
41321 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41322 +/* { dg-options "-save-temps -O0" } */
41323 +/* { dg-add-options arm_neon } */
41324
41325 #include "arm_neon.h"
41326
41327 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxQf32.c b/gcc/testsuite/gcc.target/arm/neon/vmaxQf32.c
41328 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxQf32.c 2007-07-25 14:28:31.000000000 +0200
41329 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxQf32.c 2010-01-25 09:50:29.395687140 +0100
41330 @@ -3,7 +3,8 @@
41331
41332 /* { dg-do assemble } */
41333 /* { dg-require-effective-target arm_neon_ok } */
41334 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41335 +/* { dg-options "-save-temps -O0" } */
41336 +/* { dg-add-options arm_neon } */
41337
41338 #include "arm_neon.h"
41339
41340 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxQs16.c b/gcc/testsuite/gcc.target/arm/neon/vmaxQs16.c
41341 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxQs16.c 2007-07-25 14:28:31.000000000 +0200
41342 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxQs16.c 2010-01-25 09:50:29.395687140 +0100
41343 @@ -3,7 +3,8 @@
41344
41345 /* { dg-do assemble } */
41346 /* { dg-require-effective-target arm_neon_ok } */
41347 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41348 +/* { dg-options "-save-temps -O0" } */
41349 +/* { dg-add-options arm_neon } */
41350
41351 #include "arm_neon.h"
41352
41353 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxQs32.c b/gcc/testsuite/gcc.target/arm/neon/vmaxQs32.c
41354 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxQs32.c 2007-07-25 14:28:31.000000000 +0200
41355 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxQs32.c 2010-01-25 09:50:29.395687140 +0100
41356 @@ -3,7 +3,8 @@
41357
41358 /* { dg-do assemble } */
41359 /* { dg-require-effective-target arm_neon_ok } */
41360 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41361 +/* { dg-options "-save-temps -O0" } */
41362 +/* { dg-add-options arm_neon } */
41363
41364 #include "arm_neon.h"
41365
41366 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxQs8.c b/gcc/testsuite/gcc.target/arm/neon/vmaxQs8.c
41367 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxQs8.c 2007-07-25 14:28:31.000000000 +0200
41368 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxQs8.c 2010-01-25 09:50:29.395687140 +0100
41369 @@ -3,7 +3,8 @@
41370
41371 /* { dg-do assemble } */
41372 /* { dg-require-effective-target arm_neon_ok } */
41373 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41374 +/* { dg-options "-save-temps -O0" } */
41375 +/* { dg-add-options arm_neon } */
41376
41377 #include "arm_neon.h"
41378
41379 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxQu16.c b/gcc/testsuite/gcc.target/arm/neon/vmaxQu16.c
41380 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxQu16.c 2007-07-25 14:28:31.000000000 +0200
41381 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxQu16.c 2010-01-25 09:50:29.395687140 +0100
41382 @@ -3,7 +3,8 @@
41383
41384 /* { dg-do assemble } */
41385 /* { dg-require-effective-target arm_neon_ok } */
41386 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41387 +/* { dg-options "-save-temps -O0" } */
41388 +/* { dg-add-options arm_neon } */
41389
41390 #include "arm_neon.h"
41391
41392 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxQu32.c b/gcc/testsuite/gcc.target/arm/neon/vmaxQu32.c
41393 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxQu32.c 2007-07-25 14:28:31.000000000 +0200
41394 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxQu32.c 2010-01-25 09:50:29.395687140 +0100
41395 @@ -3,7 +3,8 @@
41396
41397 /* { dg-do assemble } */
41398 /* { dg-require-effective-target arm_neon_ok } */
41399 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41400 +/* { dg-options "-save-temps -O0" } */
41401 +/* { dg-add-options arm_neon } */
41402
41403 #include "arm_neon.h"
41404
41405 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxQu8.c b/gcc/testsuite/gcc.target/arm/neon/vmaxQu8.c
41406 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxQu8.c 2007-07-25 14:28:31.000000000 +0200
41407 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxQu8.c 2010-01-25 09:50:29.395687140 +0100
41408 @@ -3,7 +3,8 @@
41409
41410 /* { dg-do assemble } */
41411 /* { dg-require-effective-target arm_neon_ok } */
41412 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41413 +/* { dg-options "-save-temps -O0" } */
41414 +/* { dg-add-options arm_neon } */
41415
41416 #include "arm_neon.h"
41417
41418 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxs16.c b/gcc/testsuite/gcc.target/arm/neon/vmaxs16.c
41419 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxs16.c 2007-07-25 14:28:31.000000000 +0200
41420 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxs16.c 2010-01-25 09:50:29.395687140 +0100
41421 @@ -3,7 +3,8 @@
41422
41423 /* { dg-do assemble } */
41424 /* { dg-require-effective-target arm_neon_ok } */
41425 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41426 +/* { dg-options "-save-temps -O0" } */
41427 +/* { dg-add-options arm_neon } */
41428
41429 #include "arm_neon.h"
41430
41431 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxs32.c b/gcc/testsuite/gcc.target/arm/neon/vmaxs32.c
41432 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxs32.c 2007-07-25 14:28:31.000000000 +0200
41433 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxs32.c 2010-01-25 09:50:29.395687140 +0100
41434 @@ -3,7 +3,8 @@
41435
41436 /* { dg-do assemble } */
41437 /* { dg-require-effective-target arm_neon_ok } */
41438 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41439 +/* { dg-options "-save-temps -O0" } */
41440 +/* { dg-add-options arm_neon } */
41441
41442 #include "arm_neon.h"
41443
41444 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxs8.c b/gcc/testsuite/gcc.target/arm/neon/vmaxs8.c
41445 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxs8.c 2007-07-25 14:28:31.000000000 +0200
41446 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxs8.c 2010-01-25 09:50:29.395687140 +0100
41447 @@ -3,7 +3,8 @@
41448
41449 /* { dg-do assemble } */
41450 /* { dg-require-effective-target arm_neon_ok } */
41451 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41452 +/* { dg-options "-save-temps -O0" } */
41453 +/* { dg-add-options arm_neon } */
41454
41455 #include "arm_neon.h"
41456
41457 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxu16.c b/gcc/testsuite/gcc.target/arm/neon/vmaxu16.c
41458 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxu16.c 2007-07-25 14:28:31.000000000 +0200
41459 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxu16.c 2010-01-25 09:50:29.395687140 +0100
41460 @@ -3,7 +3,8 @@
41461
41462 /* { dg-do assemble } */
41463 /* { dg-require-effective-target arm_neon_ok } */
41464 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41465 +/* { dg-options "-save-temps -O0" } */
41466 +/* { dg-add-options arm_neon } */
41467
41468 #include "arm_neon.h"
41469
41470 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxu32.c b/gcc/testsuite/gcc.target/arm/neon/vmaxu32.c
41471 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxu32.c 2007-07-25 14:28:31.000000000 +0200
41472 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxu32.c 2010-01-25 09:50:29.395687140 +0100
41473 @@ -3,7 +3,8 @@
41474
41475 /* { dg-do assemble } */
41476 /* { dg-require-effective-target arm_neon_ok } */
41477 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41478 +/* { dg-options "-save-temps -O0" } */
41479 +/* { dg-add-options arm_neon } */
41480
41481 #include "arm_neon.h"
41482
41483 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmaxu8.c b/gcc/testsuite/gcc.target/arm/neon/vmaxu8.c
41484 --- a/gcc/testsuite/gcc.target/arm/neon/vmaxu8.c 2007-07-25 14:28:31.000000000 +0200
41485 +++ b/gcc/testsuite/gcc.target/arm/neon/vmaxu8.c 2010-01-25 09:50:29.395687140 +0100
41486 @@ -3,7 +3,8 @@
41487
41488 /* { dg-do assemble } */
41489 /* { dg-require-effective-target arm_neon_ok } */
41490 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41491 +/* { dg-options "-save-temps -O0" } */
41492 +/* { dg-add-options arm_neon } */
41493
41494 #include "arm_neon.h"
41495
41496 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminf32.c b/gcc/testsuite/gcc.target/arm/neon/vminf32.c
41497 --- a/gcc/testsuite/gcc.target/arm/neon/vminf32.c 2007-07-25 14:28:31.000000000 +0200
41498 +++ b/gcc/testsuite/gcc.target/arm/neon/vminf32.c 2010-01-25 09:50:29.395687140 +0100
41499 @@ -3,7 +3,8 @@
41500
41501 /* { dg-do assemble } */
41502 /* { dg-require-effective-target arm_neon_ok } */
41503 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41504 +/* { dg-options "-save-temps -O0" } */
41505 +/* { dg-add-options arm_neon } */
41506
41507 #include "arm_neon.h"
41508
41509 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminQf32.c b/gcc/testsuite/gcc.target/arm/neon/vminQf32.c
41510 --- a/gcc/testsuite/gcc.target/arm/neon/vminQf32.c 2007-07-25 14:28:31.000000000 +0200
41511 +++ b/gcc/testsuite/gcc.target/arm/neon/vminQf32.c 2010-01-25 09:50:29.395687140 +0100
41512 @@ -3,7 +3,8 @@
41513
41514 /* { dg-do assemble } */
41515 /* { dg-require-effective-target arm_neon_ok } */
41516 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41517 +/* { dg-options "-save-temps -O0" } */
41518 +/* { dg-add-options arm_neon } */
41519
41520 #include "arm_neon.h"
41521
41522 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminQs16.c b/gcc/testsuite/gcc.target/arm/neon/vminQs16.c
41523 --- a/gcc/testsuite/gcc.target/arm/neon/vminQs16.c 2007-07-25 14:28:31.000000000 +0200
41524 +++ b/gcc/testsuite/gcc.target/arm/neon/vminQs16.c 2010-01-25 09:50:29.395687140 +0100
41525 @@ -3,7 +3,8 @@
41526
41527 /* { dg-do assemble } */
41528 /* { dg-require-effective-target arm_neon_ok } */
41529 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41530 +/* { dg-options "-save-temps -O0" } */
41531 +/* { dg-add-options arm_neon } */
41532
41533 #include "arm_neon.h"
41534
41535 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminQs32.c b/gcc/testsuite/gcc.target/arm/neon/vminQs32.c
41536 --- a/gcc/testsuite/gcc.target/arm/neon/vminQs32.c 2007-07-25 14:28:31.000000000 +0200
41537 +++ b/gcc/testsuite/gcc.target/arm/neon/vminQs32.c 2010-01-25 09:50:29.395687140 +0100
41538 @@ -3,7 +3,8 @@
41539
41540 /* { dg-do assemble } */
41541 /* { dg-require-effective-target arm_neon_ok } */
41542 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41543 +/* { dg-options "-save-temps -O0" } */
41544 +/* { dg-add-options arm_neon } */
41545
41546 #include "arm_neon.h"
41547
41548 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminQs8.c b/gcc/testsuite/gcc.target/arm/neon/vminQs8.c
41549 --- a/gcc/testsuite/gcc.target/arm/neon/vminQs8.c 2007-07-25 14:28:31.000000000 +0200
41550 +++ b/gcc/testsuite/gcc.target/arm/neon/vminQs8.c 2010-01-25 09:50:29.395687140 +0100
41551 @@ -3,7 +3,8 @@
41552
41553 /* { dg-do assemble } */
41554 /* { dg-require-effective-target arm_neon_ok } */
41555 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41556 +/* { dg-options "-save-temps -O0" } */
41557 +/* { dg-add-options arm_neon } */
41558
41559 #include "arm_neon.h"
41560
41561 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminQu16.c b/gcc/testsuite/gcc.target/arm/neon/vminQu16.c
41562 --- a/gcc/testsuite/gcc.target/arm/neon/vminQu16.c 2007-07-25 14:28:31.000000000 +0200
41563 +++ b/gcc/testsuite/gcc.target/arm/neon/vminQu16.c 2010-01-25 09:50:29.405687154 +0100
41564 @@ -3,7 +3,8 @@
41565
41566 /* { dg-do assemble } */
41567 /* { dg-require-effective-target arm_neon_ok } */
41568 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41569 +/* { dg-options "-save-temps -O0" } */
41570 +/* { dg-add-options arm_neon } */
41571
41572 #include "arm_neon.h"
41573
41574 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminQu32.c b/gcc/testsuite/gcc.target/arm/neon/vminQu32.c
41575 --- a/gcc/testsuite/gcc.target/arm/neon/vminQu32.c 2007-07-25 14:28:31.000000000 +0200
41576 +++ b/gcc/testsuite/gcc.target/arm/neon/vminQu32.c 2010-01-25 09:50:29.405687154 +0100
41577 @@ -3,7 +3,8 @@
41578
41579 /* { dg-do assemble } */
41580 /* { dg-require-effective-target arm_neon_ok } */
41581 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41582 +/* { dg-options "-save-temps -O0" } */
41583 +/* { dg-add-options arm_neon } */
41584
41585 #include "arm_neon.h"
41586
41587 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminQu8.c b/gcc/testsuite/gcc.target/arm/neon/vminQu8.c
41588 --- a/gcc/testsuite/gcc.target/arm/neon/vminQu8.c 2007-07-25 14:28:31.000000000 +0200
41589 +++ b/gcc/testsuite/gcc.target/arm/neon/vminQu8.c 2010-01-25 09:50:29.405687154 +0100
41590 @@ -3,7 +3,8 @@
41591
41592 /* { dg-do assemble } */
41593 /* { dg-require-effective-target arm_neon_ok } */
41594 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41595 +/* { dg-options "-save-temps -O0" } */
41596 +/* { dg-add-options arm_neon } */
41597
41598 #include "arm_neon.h"
41599
41600 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmins16.c b/gcc/testsuite/gcc.target/arm/neon/vmins16.c
41601 --- a/gcc/testsuite/gcc.target/arm/neon/vmins16.c 2007-07-25 14:28:31.000000000 +0200
41602 +++ b/gcc/testsuite/gcc.target/arm/neon/vmins16.c 2010-01-25 09:50:29.405687154 +0100
41603 @@ -3,7 +3,8 @@
41604
41605 /* { dg-do assemble } */
41606 /* { dg-require-effective-target arm_neon_ok } */
41607 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41608 +/* { dg-options "-save-temps -O0" } */
41609 +/* { dg-add-options arm_neon } */
41610
41611 #include "arm_neon.h"
41612
41613 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmins32.c b/gcc/testsuite/gcc.target/arm/neon/vmins32.c
41614 --- a/gcc/testsuite/gcc.target/arm/neon/vmins32.c 2007-07-25 14:28:31.000000000 +0200
41615 +++ b/gcc/testsuite/gcc.target/arm/neon/vmins32.c 2010-01-25 09:50:29.405687154 +0100
41616 @@ -3,7 +3,8 @@
41617
41618 /* { dg-do assemble } */
41619 /* { dg-require-effective-target arm_neon_ok } */
41620 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41621 +/* { dg-options "-save-temps -O0" } */
41622 +/* { dg-add-options arm_neon } */
41623
41624 #include "arm_neon.h"
41625
41626 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmins8.c b/gcc/testsuite/gcc.target/arm/neon/vmins8.c
41627 --- a/gcc/testsuite/gcc.target/arm/neon/vmins8.c 2007-07-25 14:28:31.000000000 +0200
41628 +++ b/gcc/testsuite/gcc.target/arm/neon/vmins8.c 2010-01-25 09:50:29.405687154 +0100
41629 @@ -3,7 +3,8 @@
41630
41631 /* { dg-do assemble } */
41632 /* { dg-require-effective-target arm_neon_ok } */
41633 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41634 +/* { dg-options "-save-temps -O0" } */
41635 +/* { dg-add-options arm_neon } */
41636
41637 #include "arm_neon.h"
41638
41639 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminu16.c b/gcc/testsuite/gcc.target/arm/neon/vminu16.c
41640 --- a/gcc/testsuite/gcc.target/arm/neon/vminu16.c 2007-07-25 14:28:31.000000000 +0200
41641 +++ b/gcc/testsuite/gcc.target/arm/neon/vminu16.c 2010-01-25 09:50:29.405687154 +0100
41642 @@ -3,7 +3,8 @@
41643
41644 /* { dg-do assemble } */
41645 /* { dg-require-effective-target arm_neon_ok } */
41646 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41647 +/* { dg-options "-save-temps -O0" } */
41648 +/* { dg-add-options arm_neon } */
41649
41650 #include "arm_neon.h"
41651
41652 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminu32.c b/gcc/testsuite/gcc.target/arm/neon/vminu32.c
41653 --- a/gcc/testsuite/gcc.target/arm/neon/vminu32.c 2007-07-25 14:28:31.000000000 +0200
41654 +++ b/gcc/testsuite/gcc.target/arm/neon/vminu32.c 2010-01-25 09:50:29.405687154 +0100
41655 @@ -3,7 +3,8 @@
41656
41657 /* { dg-do assemble } */
41658 /* { dg-require-effective-target arm_neon_ok } */
41659 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41660 +/* { dg-options "-save-temps -O0" } */
41661 +/* { dg-add-options arm_neon } */
41662
41663 #include "arm_neon.h"
41664
41665 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vminu8.c b/gcc/testsuite/gcc.target/arm/neon/vminu8.c
41666 --- a/gcc/testsuite/gcc.target/arm/neon/vminu8.c 2007-07-25 14:28:31.000000000 +0200
41667 +++ b/gcc/testsuite/gcc.target/arm/neon/vminu8.c 2010-01-25 09:50:29.405687154 +0100
41668 @@ -3,7 +3,8 @@
41669
41670 /* { dg-do assemble } */
41671 /* { dg-require-effective-target arm_neon_ok } */
41672 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41673 +/* { dg-options "-save-temps -O0" } */
41674 +/* { dg-add-options arm_neon } */
41675
41676 #include "arm_neon.h"
41677
41678 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaf32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaf32.c
41679 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaf32.c 2007-07-25 14:28:31.000000000 +0200
41680 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaf32.c 2010-01-25 09:50:29.405687154 +0100
41681 @@ -3,7 +3,8 @@
41682
41683 /* { dg-do assemble } */
41684 /* { dg-require-effective-target arm_neon_ok } */
41685 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41686 +/* { dg-options "-save-temps -O0" } */
41687 +/* { dg-add-options arm_neon } */
41688
41689 #include "arm_neon.h"
41690
41691 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vmla_lanef32.c
41692 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_lanef32.c 2007-07-25 14:28:31.000000000 +0200
41693 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_lanef32.c 2010-01-25 09:50:29.405687154 +0100
41694 @@ -3,7 +3,8 @@
41695
41696 /* { dg-do assemble } */
41697 /* { dg-require-effective-target arm_neon_ok } */
41698 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41699 +/* { dg-options "-save-temps -O0" } */
41700 +/* { dg-add-options arm_neon } */
41701
41702 #include "arm_neon.h"
41703
41704 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmla_lanes16.c
41705 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_lanes16.c 2007-07-25 14:28:31.000000000 +0200
41706 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_lanes16.c 2010-01-25 09:50:29.405687154 +0100
41707 @@ -3,7 +3,8 @@
41708
41709 /* { dg-do assemble } */
41710 /* { dg-require-effective-target arm_neon_ok } */
41711 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41712 +/* { dg-options "-save-temps -O0" } */
41713 +/* { dg-add-options arm_neon } */
41714
41715 #include "arm_neon.h"
41716
41717 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmla_lanes32.c
41718 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_lanes32.c 2007-07-25 14:28:31.000000000 +0200
41719 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_lanes32.c 2010-01-25 09:50:29.405687154 +0100
41720 @@ -3,7 +3,8 @@
41721
41722 /* { dg-do assemble } */
41723 /* { dg-require-effective-target arm_neon_ok } */
41724 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41725 +/* { dg-options "-save-temps -O0" } */
41726 +/* { dg-add-options arm_neon } */
41727
41728 #include "arm_neon.h"
41729
41730 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmla_laneu16.c
41731 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_laneu16.c 2007-07-25 14:28:31.000000000 +0200
41732 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_laneu16.c 2010-01-25 09:50:29.405687154 +0100
41733 @@ -3,7 +3,8 @@
41734
41735 /* { dg-do assemble } */
41736 /* { dg-require-effective-target arm_neon_ok } */
41737 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41738 +/* { dg-options "-save-temps -O0" } */
41739 +/* { dg-add-options arm_neon } */
41740
41741 #include "arm_neon.h"
41742
41743 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmla_laneu32.c
41744 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_laneu32.c 2007-07-25 14:28:31.000000000 +0200
41745 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_laneu32.c 2010-01-25 09:50:29.405687154 +0100
41746 @@ -3,7 +3,8 @@
41747
41748 /* { dg-do assemble } */
41749 /* { dg-require-effective-target arm_neon_ok } */
41750 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41751 +/* { dg-options "-save-temps -O0" } */
41752 +/* { dg-add-options arm_neon } */
41753
41754 #include "arm_neon.h"
41755
41756 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlal_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmlal_lanes16.c
41757 --- a/gcc/testsuite/gcc.target/arm/neon/vmlal_lanes16.c 2007-07-25 14:28:31.000000000 +0200
41758 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlal_lanes16.c 2010-01-25 09:50:29.405687154 +0100
41759 @@ -3,7 +3,8 @@
41760
41761 /* { dg-do assemble } */
41762 /* { dg-require-effective-target arm_neon_ok } */
41763 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41764 +/* { dg-options "-save-temps -O0" } */
41765 +/* { dg-add-options arm_neon } */
41766
41767 #include "arm_neon.h"
41768
41769 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlal_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmlal_lanes32.c
41770 --- a/gcc/testsuite/gcc.target/arm/neon/vmlal_lanes32.c 2007-07-25 14:28:31.000000000 +0200
41771 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlal_lanes32.c 2010-01-25 09:50:29.405687154 +0100
41772 @@ -3,7 +3,8 @@
41773
41774 /* { dg-do assemble } */
41775 /* { dg-require-effective-target arm_neon_ok } */
41776 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41777 +/* { dg-options "-save-temps -O0" } */
41778 +/* { dg-add-options arm_neon } */
41779
41780 #include "arm_neon.h"
41781
41782 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlal_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlal_laneu16.c
41783 --- a/gcc/testsuite/gcc.target/arm/neon/vmlal_laneu16.c 2007-07-25 14:28:31.000000000 +0200
41784 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlal_laneu16.c 2010-01-25 09:50:29.405687154 +0100
41785 @@ -3,7 +3,8 @@
41786
41787 /* { dg-do assemble } */
41788 /* { dg-require-effective-target arm_neon_ok } */
41789 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41790 +/* { dg-options "-save-temps -O0" } */
41791 +/* { dg-add-options arm_neon } */
41792
41793 #include "arm_neon.h"
41794
41795 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlal_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlal_laneu32.c
41796 --- a/gcc/testsuite/gcc.target/arm/neon/vmlal_laneu32.c 2007-07-25 14:28:31.000000000 +0200
41797 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlal_laneu32.c 2010-01-25 09:50:29.405687154 +0100
41798 @@ -3,7 +3,8 @@
41799
41800 /* { dg-do assemble } */
41801 /* { dg-require-effective-target arm_neon_ok } */
41802 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41803 +/* { dg-options "-save-temps -O0" } */
41804 +/* { dg-add-options arm_neon } */
41805
41806 #include "arm_neon.h"
41807
41808 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlal_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmlal_ns16.c
41809 --- a/gcc/testsuite/gcc.target/arm/neon/vmlal_ns16.c 2007-07-25 14:28:31.000000000 +0200
41810 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlal_ns16.c 2010-01-25 09:50:29.405687154 +0100
41811 @@ -3,7 +3,8 @@
41812
41813 /* { dg-do assemble } */
41814 /* { dg-require-effective-target arm_neon_ok } */
41815 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41816 +/* { dg-options "-save-temps -O0" } */
41817 +/* { dg-add-options arm_neon } */
41818
41819 #include "arm_neon.h"
41820
41821 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlal_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmlal_ns32.c
41822 --- a/gcc/testsuite/gcc.target/arm/neon/vmlal_ns32.c 2007-07-25 14:28:31.000000000 +0200
41823 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlal_ns32.c 2010-01-25 09:50:29.405687154 +0100
41824 @@ -3,7 +3,8 @@
41825
41826 /* { dg-do assemble } */
41827 /* { dg-require-effective-target arm_neon_ok } */
41828 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41829 +/* { dg-options "-save-temps -O0" } */
41830 +/* { dg-add-options arm_neon } */
41831
41832 #include "arm_neon.h"
41833
41834 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlal_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlal_nu16.c
41835 --- a/gcc/testsuite/gcc.target/arm/neon/vmlal_nu16.c 2007-07-25 14:28:31.000000000 +0200
41836 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlal_nu16.c 2010-01-25 09:50:29.405687154 +0100
41837 @@ -3,7 +3,8 @@
41838
41839 /* { dg-do assemble } */
41840 /* { dg-require-effective-target arm_neon_ok } */
41841 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41842 +/* { dg-options "-save-temps -O0" } */
41843 +/* { dg-add-options arm_neon } */
41844
41845 #include "arm_neon.h"
41846
41847 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlal_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlal_nu32.c
41848 --- a/gcc/testsuite/gcc.target/arm/neon/vmlal_nu32.c 2007-07-25 14:28:31.000000000 +0200
41849 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlal_nu32.c 2010-01-25 09:50:29.405687154 +0100
41850 @@ -3,7 +3,8 @@
41851
41852 /* { dg-do assemble } */
41853 /* { dg-require-effective-target arm_neon_ok } */
41854 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41855 +/* { dg-options "-save-temps -O0" } */
41856 +/* { dg-add-options arm_neon } */
41857
41858 #include "arm_neon.h"
41859
41860 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlals16.c b/gcc/testsuite/gcc.target/arm/neon/vmlals16.c
41861 --- a/gcc/testsuite/gcc.target/arm/neon/vmlals16.c 2007-07-25 14:28:31.000000000 +0200
41862 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlals16.c 2010-01-25 09:50:29.405687154 +0100
41863 @@ -3,7 +3,8 @@
41864
41865 /* { dg-do assemble } */
41866 /* { dg-require-effective-target arm_neon_ok } */
41867 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41868 +/* { dg-options "-save-temps -O0" } */
41869 +/* { dg-add-options arm_neon } */
41870
41871 #include "arm_neon.h"
41872
41873 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlals32.c b/gcc/testsuite/gcc.target/arm/neon/vmlals32.c
41874 --- a/gcc/testsuite/gcc.target/arm/neon/vmlals32.c 2007-07-25 14:28:31.000000000 +0200
41875 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlals32.c 2010-01-25 09:50:29.405687154 +0100
41876 @@ -3,7 +3,8 @@
41877
41878 /* { dg-do assemble } */
41879 /* { dg-require-effective-target arm_neon_ok } */
41880 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41881 +/* { dg-options "-save-temps -O0" } */
41882 +/* { dg-add-options arm_neon } */
41883
41884 #include "arm_neon.h"
41885
41886 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlals8.c b/gcc/testsuite/gcc.target/arm/neon/vmlals8.c
41887 --- a/gcc/testsuite/gcc.target/arm/neon/vmlals8.c 2007-07-25 14:28:31.000000000 +0200
41888 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlals8.c 2010-01-25 09:50:29.405687154 +0100
41889 @@ -3,7 +3,8 @@
41890
41891 /* { dg-do assemble } */
41892 /* { dg-require-effective-target arm_neon_ok } */
41893 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41894 +/* { dg-options "-save-temps -O0" } */
41895 +/* { dg-add-options arm_neon } */
41896
41897 #include "arm_neon.h"
41898
41899 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlalu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlalu16.c
41900 --- a/gcc/testsuite/gcc.target/arm/neon/vmlalu16.c 2007-07-25 14:28:31.000000000 +0200
41901 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlalu16.c 2010-01-25 09:50:29.405687154 +0100
41902 @@ -3,7 +3,8 @@
41903
41904 /* { dg-do assemble } */
41905 /* { dg-require-effective-target arm_neon_ok } */
41906 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41907 +/* { dg-options "-save-temps -O0" } */
41908 +/* { dg-add-options arm_neon } */
41909
41910 #include "arm_neon.h"
41911
41912 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlalu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlalu32.c
41913 --- a/gcc/testsuite/gcc.target/arm/neon/vmlalu32.c 2007-07-25 14:28:31.000000000 +0200
41914 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlalu32.c 2010-01-25 09:50:29.405687154 +0100
41915 @@ -3,7 +3,8 @@
41916
41917 /* { dg-do assemble } */
41918 /* { dg-require-effective-target arm_neon_ok } */
41919 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41920 +/* { dg-options "-save-temps -O0" } */
41921 +/* { dg-add-options arm_neon } */
41922
41923 #include "arm_neon.h"
41924
41925 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlalu8.c b/gcc/testsuite/gcc.target/arm/neon/vmlalu8.c
41926 --- a/gcc/testsuite/gcc.target/arm/neon/vmlalu8.c 2007-07-25 14:28:31.000000000 +0200
41927 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlalu8.c 2010-01-25 09:50:29.405687154 +0100
41928 @@ -3,7 +3,8 @@
41929
41930 /* { dg-do assemble } */
41931 /* { dg-require-effective-target arm_neon_ok } */
41932 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41933 +/* { dg-options "-save-temps -O0" } */
41934 +/* { dg-add-options arm_neon } */
41935
41936 #include "arm_neon.h"
41937
41938 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vmla_nf32.c
41939 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_nf32.c 2007-07-25 14:28:31.000000000 +0200
41940 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_nf32.c 2010-01-25 09:50:29.405687154 +0100
41941 @@ -3,7 +3,8 @@
41942
41943 /* { dg-do assemble } */
41944 /* { dg-require-effective-target arm_neon_ok } */
41945 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41946 +/* { dg-options "-save-temps -O0" } */
41947 +/* { dg-add-options arm_neon } */
41948
41949 #include "arm_neon.h"
41950
41951 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmla_ns16.c
41952 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_ns16.c 2007-07-25 14:28:31.000000000 +0200
41953 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_ns16.c 2010-01-25 09:50:29.405687154 +0100
41954 @@ -3,7 +3,8 @@
41955
41956 /* { dg-do assemble } */
41957 /* { dg-require-effective-target arm_neon_ok } */
41958 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41959 +/* { dg-options "-save-temps -O0" } */
41960 +/* { dg-add-options arm_neon } */
41961
41962 #include "arm_neon.h"
41963
41964 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmla_ns32.c
41965 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_ns32.c 2007-07-25 14:28:31.000000000 +0200
41966 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_ns32.c 2010-01-25 09:50:29.405687154 +0100
41967 @@ -3,7 +3,8 @@
41968
41969 /* { dg-do assemble } */
41970 /* { dg-require-effective-target arm_neon_ok } */
41971 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41972 +/* { dg-options "-save-temps -O0" } */
41973 +/* { dg-add-options arm_neon } */
41974
41975 #include "arm_neon.h"
41976
41977 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmla_nu16.c
41978 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_nu16.c 2007-07-25 14:28:31.000000000 +0200
41979 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_nu16.c 2010-01-25 09:50:29.405687154 +0100
41980 @@ -3,7 +3,8 @@
41981
41982 /* { dg-do assemble } */
41983 /* { dg-require-effective-target arm_neon_ok } */
41984 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41985 +/* { dg-options "-save-temps -O0" } */
41986 +/* { dg-add-options arm_neon } */
41987
41988 #include "arm_neon.h"
41989
41990 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmla_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmla_nu32.c
41991 --- a/gcc/testsuite/gcc.target/arm/neon/vmla_nu32.c 2007-07-25 14:28:31.000000000 +0200
41992 +++ b/gcc/testsuite/gcc.target/arm/neon/vmla_nu32.c 2010-01-25 09:50:29.405687154 +0100
41993 @@ -3,7 +3,8 @@
41994
41995 /* { dg-do assemble } */
41996 /* { dg-require-effective-target arm_neon_ok } */
41997 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
41998 +/* { dg-options "-save-temps -O0" } */
41999 +/* { dg-add-options arm_neon } */
42000
42001 #include "arm_neon.h"
42002
42003 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQf32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQf32.c
42004 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQf32.c 2007-07-25 14:28:31.000000000 +0200
42005 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQf32.c 2010-01-25 09:50:29.405687154 +0100
42006 @@ -3,7 +3,8 @@
42007
42008 /* { dg-do assemble } */
42009 /* { dg-require-effective-target arm_neon_ok } */
42010 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42011 +/* { dg-options "-save-temps -O0" } */
42012 +/* { dg-add-options arm_neon } */
42013
42014 #include "arm_neon.h"
42015
42016 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanef32.c
42017 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanef32.c 2007-07-25 14:28:31.000000000 +0200
42018 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanef32.c 2010-01-25 09:50:29.405687154 +0100
42019 @@ -3,7 +3,8 @@
42020
42021 /* { dg-do assemble } */
42022 /* { dg-require-effective-target arm_neon_ok } */
42023 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42024 +/* { dg-options "-save-temps -O0" } */
42025 +/* { dg-add-options arm_neon } */
42026
42027 #include "arm_neon.h"
42028
42029 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanes16.c
42030 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanes16.c 2007-07-25 14:28:31.000000000 +0200
42031 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanes16.c 2010-01-25 09:50:29.405687154 +0100
42032 @@ -3,7 +3,8 @@
42033
42034 /* { dg-do assemble } */
42035 /* { dg-require-effective-target arm_neon_ok } */
42036 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42037 +/* { dg-options "-save-temps -O0" } */
42038 +/* { dg-add-options arm_neon } */
42039
42040 #include "arm_neon.h"
42041
42042 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanes32.c
42043 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanes32.c 2007-07-25 14:28:31.000000000 +0200
42044 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_lanes32.c 2010-01-25 09:50:29.405687154 +0100
42045 @@ -3,7 +3,8 @@
42046
42047 /* { dg-do assemble } */
42048 /* { dg-require-effective-target arm_neon_ok } */
42049 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42050 +/* { dg-options "-save-temps -O0" } */
42051 +/* { dg-add-options arm_neon } */
42052
42053 #include "arm_neon.h"
42054
42055 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_laneu16.c
42056 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_laneu16.c 2007-07-25 14:28:31.000000000 +0200
42057 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_laneu16.c 2010-01-25 09:50:29.405687154 +0100
42058 @@ -3,7 +3,8 @@
42059
42060 /* { dg-do assemble } */
42061 /* { dg-require-effective-target arm_neon_ok } */
42062 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42063 +/* { dg-options "-save-temps -O0" } */
42064 +/* { dg-add-options arm_neon } */
42065
42066 #include "arm_neon.h"
42067
42068 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_laneu32.c
42069 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_laneu32.c 2007-07-25 14:28:31.000000000 +0200
42070 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_laneu32.c 2010-01-25 09:50:29.405687154 +0100
42071 @@ -3,7 +3,8 @@
42072
42073 /* { dg-do assemble } */
42074 /* { dg-require-effective-target arm_neon_ok } */
42075 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42076 +/* { dg-options "-save-temps -O0" } */
42077 +/* { dg-add-options arm_neon } */
42078
42079 #include "arm_neon.h"
42080
42081 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nf32.c
42082 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nf32.c 2007-07-25 14:28:31.000000000 +0200
42083 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nf32.c 2010-01-25 09:50:29.405687154 +0100
42084 @@ -3,7 +3,8 @@
42085
42086 /* { dg-do assemble } */
42087 /* { dg-require-effective-target arm_neon_ok } */
42088 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42089 +/* { dg-options "-save-temps -O0" } */
42090 +/* { dg-add-options arm_neon } */
42091
42092 #include "arm_neon.h"
42093
42094 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_ns16.c
42095 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
42096 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_ns16.c 2010-01-25 09:50:29.405687154 +0100
42097 @@ -3,7 +3,8 @@
42098
42099 /* { dg-do assemble } */
42100 /* { dg-require-effective-target arm_neon_ok } */
42101 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42102 +/* { dg-options "-save-temps -O0" } */
42103 +/* { dg-add-options arm_neon } */
42104
42105 #include "arm_neon.h"
42106
42107 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_ns32.c
42108 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
42109 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_ns32.c 2010-01-25 09:50:29.405687154 +0100
42110 @@ -3,7 +3,8 @@
42111
42112 /* { dg-do assemble } */
42113 /* { dg-require-effective-target arm_neon_ok } */
42114 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42115 +/* { dg-options "-save-temps -O0" } */
42116 +/* { dg-add-options arm_neon } */
42117
42118 #include "arm_neon.h"
42119
42120 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nu16.c
42121 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
42122 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nu16.c 2010-01-25 09:50:29.405687154 +0100
42123 @@ -3,7 +3,8 @@
42124
42125 /* { dg-do assemble } */
42126 /* { dg-require-effective-target arm_neon_ok } */
42127 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42128 +/* { dg-options "-save-temps -O0" } */
42129 +/* { dg-add-options arm_neon } */
42130
42131 #include "arm_neon.h"
42132
42133 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nu32.c
42134 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
42135 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQ_nu32.c 2010-01-25 09:50:29.405687154 +0100
42136 @@ -3,7 +3,8 @@
42137
42138 /* { dg-do assemble } */
42139 /* { dg-require-effective-target arm_neon_ok } */
42140 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42141 +/* { dg-options "-save-temps -O0" } */
42142 +/* { dg-add-options arm_neon } */
42143
42144 #include "arm_neon.h"
42145
42146 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQs16.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQs16.c
42147 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQs16.c 2007-07-25 14:28:31.000000000 +0200
42148 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQs16.c 2010-01-25 09:50:29.405687154 +0100
42149 @@ -3,7 +3,8 @@
42150
42151 /* { dg-do assemble } */
42152 /* { dg-require-effective-target arm_neon_ok } */
42153 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42154 +/* { dg-options "-save-temps -O0" } */
42155 +/* { dg-add-options arm_neon } */
42156
42157 #include "arm_neon.h"
42158
42159 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQs32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQs32.c
42160 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQs32.c 2007-07-25 14:28:31.000000000 +0200
42161 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQs32.c 2010-01-25 09:50:29.405687154 +0100
42162 @@ -3,7 +3,8 @@
42163
42164 /* { dg-do assemble } */
42165 /* { dg-require-effective-target arm_neon_ok } */
42166 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42167 +/* { dg-options "-save-temps -O0" } */
42168 +/* { dg-add-options arm_neon } */
42169
42170 #include "arm_neon.h"
42171
42172 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQs8.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQs8.c
42173 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQs8.c 2007-07-25 14:28:31.000000000 +0200
42174 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQs8.c 2010-01-25 09:50:29.405687154 +0100
42175 @@ -3,7 +3,8 @@
42176
42177 /* { dg-do assemble } */
42178 /* { dg-require-effective-target arm_neon_ok } */
42179 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42180 +/* { dg-options "-save-temps -O0" } */
42181 +/* { dg-add-options arm_neon } */
42182
42183 #include "arm_neon.h"
42184
42185 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQu16.c
42186 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQu16.c 2007-07-25 14:28:31.000000000 +0200
42187 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQu16.c 2010-01-25 09:50:29.405687154 +0100
42188 @@ -3,7 +3,8 @@
42189
42190 /* { dg-do assemble } */
42191 /* { dg-require-effective-target arm_neon_ok } */
42192 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42193 +/* { dg-options "-save-temps -O0" } */
42194 +/* { dg-add-options arm_neon } */
42195
42196 #include "arm_neon.h"
42197
42198 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQu32.c
42199 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQu32.c 2007-07-25 14:28:31.000000000 +0200
42200 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQu32.c 2010-01-25 09:50:29.405687154 +0100
42201 @@ -3,7 +3,8 @@
42202
42203 /* { dg-do assemble } */
42204 /* { dg-require-effective-target arm_neon_ok } */
42205 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42206 +/* { dg-options "-save-temps -O0" } */
42207 +/* { dg-add-options arm_neon } */
42208
42209 #include "arm_neon.h"
42210
42211 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlaQu8.c b/gcc/testsuite/gcc.target/arm/neon/vmlaQu8.c
42212 --- a/gcc/testsuite/gcc.target/arm/neon/vmlaQu8.c 2007-07-25 14:28:31.000000000 +0200
42213 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlaQu8.c 2010-01-25 09:50:29.405687154 +0100
42214 @@ -3,7 +3,8 @@
42215
42216 /* { dg-do assemble } */
42217 /* { dg-require-effective-target arm_neon_ok } */
42218 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42219 +/* { dg-options "-save-temps -O0" } */
42220 +/* { dg-add-options arm_neon } */
42221
42222 #include "arm_neon.h"
42223
42224 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlas16.c b/gcc/testsuite/gcc.target/arm/neon/vmlas16.c
42225 --- a/gcc/testsuite/gcc.target/arm/neon/vmlas16.c 2007-07-25 14:28:31.000000000 +0200
42226 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlas16.c 2010-01-25 09:50:29.405687154 +0100
42227 @@ -3,7 +3,8 @@
42228
42229 /* { dg-do assemble } */
42230 /* { dg-require-effective-target arm_neon_ok } */
42231 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42232 +/* { dg-options "-save-temps -O0" } */
42233 +/* { dg-add-options arm_neon } */
42234
42235 #include "arm_neon.h"
42236
42237 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlas32.c b/gcc/testsuite/gcc.target/arm/neon/vmlas32.c
42238 --- a/gcc/testsuite/gcc.target/arm/neon/vmlas32.c 2007-07-25 14:28:31.000000000 +0200
42239 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlas32.c 2010-01-25 09:50:29.405687154 +0100
42240 @@ -3,7 +3,8 @@
42241
42242 /* { dg-do assemble } */
42243 /* { dg-require-effective-target arm_neon_ok } */
42244 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42245 +/* { dg-options "-save-temps -O0" } */
42246 +/* { dg-add-options arm_neon } */
42247
42248 #include "arm_neon.h"
42249
42250 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlas8.c b/gcc/testsuite/gcc.target/arm/neon/vmlas8.c
42251 --- a/gcc/testsuite/gcc.target/arm/neon/vmlas8.c 2007-07-25 14:28:31.000000000 +0200
42252 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlas8.c 2010-01-25 09:50:29.405687154 +0100
42253 @@ -3,7 +3,8 @@
42254
42255 /* { dg-do assemble } */
42256 /* { dg-require-effective-target arm_neon_ok } */
42257 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42258 +/* { dg-options "-save-temps -O0" } */
42259 +/* { dg-add-options arm_neon } */
42260
42261 #include "arm_neon.h"
42262
42263 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlau16.c b/gcc/testsuite/gcc.target/arm/neon/vmlau16.c
42264 --- a/gcc/testsuite/gcc.target/arm/neon/vmlau16.c 2007-07-25 14:28:31.000000000 +0200
42265 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlau16.c 2010-01-25 09:50:29.405687154 +0100
42266 @@ -3,7 +3,8 @@
42267
42268 /* { dg-do assemble } */
42269 /* { dg-require-effective-target arm_neon_ok } */
42270 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42271 +/* { dg-options "-save-temps -O0" } */
42272 +/* { dg-add-options arm_neon } */
42273
42274 #include "arm_neon.h"
42275
42276 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlau32.c b/gcc/testsuite/gcc.target/arm/neon/vmlau32.c
42277 --- a/gcc/testsuite/gcc.target/arm/neon/vmlau32.c 2007-07-25 14:28:31.000000000 +0200
42278 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlau32.c 2010-01-25 09:50:29.405687154 +0100
42279 @@ -3,7 +3,8 @@
42280
42281 /* { dg-do assemble } */
42282 /* { dg-require-effective-target arm_neon_ok } */
42283 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42284 +/* { dg-options "-save-temps -O0" } */
42285 +/* { dg-add-options arm_neon } */
42286
42287 #include "arm_neon.h"
42288
42289 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlau8.c b/gcc/testsuite/gcc.target/arm/neon/vmlau8.c
42290 --- a/gcc/testsuite/gcc.target/arm/neon/vmlau8.c 2007-07-25 14:28:31.000000000 +0200
42291 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlau8.c 2010-01-25 09:50:29.405687154 +0100
42292 @@ -3,7 +3,8 @@
42293
42294 /* { dg-do assemble } */
42295 /* { dg-require-effective-target arm_neon_ok } */
42296 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42297 +/* { dg-options "-save-temps -O0" } */
42298 +/* { dg-add-options arm_neon } */
42299
42300 #include "arm_neon.h"
42301
42302 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsf32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsf32.c
42303 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsf32.c 2007-07-25 14:28:31.000000000 +0200
42304 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsf32.c 2010-01-25 09:50:29.405687154 +0100
42305 @@ -3,7 +3,8 @@
42306
42307 /* { dg-do assemble } */
42308 /* { dg-require-effective-target arm_neon_ok } */
42309 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42310 +/* { dg-options "-save-temps -O0" } */
42311 +/* { dg-add-options arm_neon } */
42312
42313 #include "arm_neon.h"
42314
42315 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vmls_lanef32.c
42316 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_lanef32.c 2007-07-25 14:28:31.000000000 +0200
42317 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_lanef32.c 2010-01-25 09:50:29.405687154 +0100
42318 @@ -3,7 +3,8 @@
42319
42320 /* { dg-do assemble } */
42321 /* { dg-require-effective-target arm_neon_ok } */
42322 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42323 +/* { dg-options "-save-temps -O0" } */
42324 +/* { dg-add-options arm_neon } */
42325
42326 #include "arm_neon.h"
42327
42328 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmls_lanes16.c
42329 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_lanes16.c 2007-07-25 14:28:31.000000000 +0200
42330 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_lanes16.c 2010-01-25 09:50:29.405687154 +0100
42331 @@ -3,7 +3,8 @@
42332
42333 /* { dg-do assemble } */
42334 /* { dg-require-effective-target arm_neon_ok } */
42335 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42336 +/* { dg-options "-save-temps -O0" } */
42337 +/* { dg-add-options arm_neon } */
42338
42339 #include "arm_neon.h"
42340
42341 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmls_lanes32.c
42342 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_lanes32.c 2007-07-25 14:28:31.000000000 +0200
42343 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_lanes32.c 2010-01-25 09:50:29.405687154 +0100
42344 @@ -3,7 +3,8 @@
42345
42346 /* { dg-do assemble } */
42347 /* { dg-require-effective-target arm_neon_ok } */
42348 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42349 +/* { dg-options "-save-temps -O0" } */
42350 +/* { dg-add-options arm_neon } */
42351
42352 #include "arm_neon.h"
42353
42354 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmls_laneu16.c
42355 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_laneu16.c 2007-07-25 14:28:31.000000000 +0200
42356 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_laneu16.c 2010-01-25 09:50:29.405687154 +0100
42357 @@ -3,7 +3,8 @@
42358
42359 /* { dg-do assemble } */
42360 /* { dg-require-effective-target arm_neon_ok } */
42361 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42362 +/* { dg-options "-save-temps -O0" } */
42363 +/* { dg-add-options arm_neon } */
42364
42365 #include "arm_neon.h"
42366
42367 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmls_laneu32.c
42368 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_laneu32.c 2007-07-25 14:28:31.000000000 +0200
42369 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_laneu32.c 2010-01-25 09:50:29.405687154 +0100
42370 @@ -3,7 +3,8 @@
42371
42372 /* { dg-do assemble } */
42373 /* { dg-require-effective-target arm_neon_ok } */
42374 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42375 +/* { dg-options "-save-temps -O0" } */
42376 +/* { dg-add-options arm_neon } */
42377
42378 #include "arm_neon.h"
42379
42380 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsl_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsl_lanes16.c
42381 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsl_lanes16.c 2007-07-25 14:28:31.000000000 +0200
42382 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsl_lanes16.c 2010-01-25 09:50:29.405687154 +0100
42383 @@ -3,7 +3,8 @@
42384
42385 /* { dg-do assemble } */
42386 /* { dg-require-effective-target arm_neon_ok } */
42387 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42388 +/* { dg-options "-save-temps -O0" } */
42389 +/* { dg-add-options arm_neon } */
42390
42391 #include "arm_neon.h"
42392
42393 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsl_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsl_lanes32.c
42394 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsl_lanes32.c 2007-07-25 14:28:31.000000000 +0200
42395 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsl_lanes32.c 2010-01-25 09:50:29.405687154 +0100
42396 @@ -3,7 +3,8 @@
42397
42398 /* { dg-do assemble } */
42399 /* { dg-require-effective-target arm_neon_ok } */
42400 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42401 +/* { dg-options "-save-temps -O0" } */
42402 +/* { dg-add-options arm_neon } */
42403
42404 #include "arm_neon.h"
42405
42406 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsl_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsl_laneu16.c
42407 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsl_laneu16.c 2007-07-25 14:28:31.000000000 +0200
42408 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsl_laneu16.c 2010-01-25 09:50:29.405687154 +0100
42409 @@ -3,7 +3,8 @@
42410
42411 /* { dg-do assemble } */
42412 /* { dg-require-effective-target arm_neon_ok } */
42413 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42414 +/* { dg-options "-save-temps -O0" } */
42415 +/* { dg-add-options arm_neon } */
42416
42417 #include "arm_neon.h"
42418
42419 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsl_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsl_laneu32.c
42420 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsl_laneu32.c 2007-07-25 14:28:31.000000000 +0200
42421 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsl_laneu32.c 2010-01-25 09:50:29.405687154 +0100
42422 @@ -3,7 +3,8 @@
42423
42424 /* { dg-do assemble } */
42425 /* { dg-require-effective-target arm_neon_ok } */
42426 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42427 +/* { dg-options "-save-temps -O0" } */
42428 +/* { dg-add-options arm_neon } */
42429
42430 #include "arm_neon.h"
42431
42432 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsl_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsl_ns16.c
42433 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsl_ns16.c 2007-07-25 14:28:31.000000000 +0200
42434 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsl_ns16.c 2010-01-25 09:50:29.405687154 +0100
42435 @@ -3,7 +3,8 @@
42436
42437 /* { dg-do assemble } */
42438 /* { dg-require-effective-target arm_neon_ok } */
42439 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42440 +/* { dg-options "-save-temps -O0" } */
42441 +/* { dg-add-options arm_neon } */
42442
42443 #include "arm_neon.h"
42444
42445 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsl_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsl_ns32.c
42446 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsl_ns32.c 2007-07-25 14:28:31.000000000 +0200
42447 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsl_ns32.c 2010-01-25 09:50:29.405687154 +0100
42448 @@ -3,7 +3,8 @@
42449
42450 /* { dg-do assemble } */
42451 /* { dg-require-effective-target arm_neon_ok } */
42452 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42453 +/* { dg-options "-save-temps -O0" } */
42454 +/* { dg-add-options arm_neon } */
42455
42456 #include "arm_neon.h"
42457
42458 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsl_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsl_nu16.c
42459 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsl_nu16.c 2007-07-25 14:28:31.000000000 +0200
42460 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsl_nu16.c 2010-01-25 09:50:29.405687154 +0100
42461 @@ -3,7 +3,8 @@
42462
42463 /* { dg-do assemble } */
42464 /* { dg-require-effective-target arm_neon_ok } */
42465 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42466 +/* { dg-options "-save-temps -O0" } */
42467 +/* { dg-add-options arm_neon } */
42468
42469 #include "arm_neon.h"
42470
42471 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsl_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsl_nu32.c
42472 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsl_nu32.c 2007-07-25 14:28:31.000000000 +0200
42473 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsl_nu32.c 2010-01-25 09:50:29.405687154 +0100
42474 @@ -3,7 +3,8 @@
42475
42476 /* { dg-do assemble } */
42477 /* { dg-require-effective-target arm_neon_ok } */
42478 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42479 +/* { dg-options "-save-temps -O0" } */
42480 +/* { dg-add-options arm_neon } */
42481
42482 #include "arm_neon.h"
42483
42484 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsls16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsls16.c
42485 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsls16.c 2007-07-25 14:28:31.000000000 +0200
42486 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsls16.c 2010-01-25 09:50:29.405687154 +0100
42487 @@ -3,7 +3,8 @@
42488
42489 /* { dg-do assemble } */
42490 /* { dg-require-effective-target arm_neon_ok } */
42491 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42492 +/* { dg-options "-save-temps -O0" } */
42493 +/* { dg-add-options arm_neon } */
42494
42495 #include "arm_neon.h"
42496
42497 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsls32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsls32.c
42498 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsls32.c 2007-07-25 14:28:31.000000000 +0200
42499 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsls32.c 2010-01-25 09:50:29.405687154 +0100
42500 @@ -3,7 +3,8 @@
42501
42502 /* { dg-do assemble } */
42503 /* { dg-require-effective-target arm_neon_ok } */
42504 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42505 +/* { dg-options "-save-temps -O0" } */
42506 +/* { dg-add-options arm_neon } */
42507
42508 #include "arm_neon.h"
42509
42510 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsls8.c b/gcc/testsuite/gcc.target/arm/neon/vmlsls8.c
42511 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsls8.c 2007-07-25 14:28:31.000000000 +0200
42512 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsls8.c 2010-01-25 09:50:29.405687154 +0100
42513 @@ -3,7 +3,8 @@
42514
42515 /* { dg-do assemble } */
42516 /* { dg-require-effective-target arm_neon_ok } */
42517 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42518 +/* { dg-options "-save-temps -O0" } */
42519 +/* { dg-add-options arm_neon } */
42520
42521 #include "arm_neon.h"
42522
42523 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlslu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlslu16.c
42524 --- a/gcc/testsuite/gcc.target/arm/neon/vmlslu16.c 2007-07-25 14:28:31.000000000 +0200
42525 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlslu16.c 2010-01-25 09:50:29.415686609 +0100
42526 @@ -3,7 +3,8 @@
42527
42528 /* { dg-do assemble } */
42529 /* { dg-require-effective-target arm_neon_ok } */
42530 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42531 +/* { dg-options "-save-temps -O0" } */
42532 +/* { dg-add-options arm_neon } */
42533
42534 #include "arm_neon.h"
42535
42536 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlslu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlslu32.c
42537 --- a/gcc/testsuite/gcc.target/arm/neon/vmlslu32.c 2007-07-25 14:28:31.000000000 +0200
42538 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlslu32.c 2010-01-25 09:50:29.415686609 +0100
42539 @@ -3,7 +3,8 @@
42540
42541 /* { dg-do assemble } */
42542 /* { dg-require-effective-target arm_neon_ok } */
42543 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42544 +/* { dg-options "-save-temps -O0" } */
42545 +/* { dg-add-options arm_neon } */
42546
42547 #include "arm_neon.h"
42548
42549 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlslu8.c b/gcc/testsuite/gcc.target/arm/neon/vmlslu8.c
42550 --- a/gcc/testsuite/gcc.target/arm/neon/vmlslu8.c 2007-07-25 14:28:31.000000000 +0200
42551 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlslu8.c 2010-01-25 09:50:29.415686609 +0100
42552 @@ -3,7 +3,8 @@
42553
42554 /* { dg-do assemble } */
42555 /* { dg-require-effective-target arm_neon_ok } */
42556 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42557 +/* { dg-options "-save-temps -O0" } */
42558 +/* { dg-add-options arm_neon } */
42559
42560 #include "arm_neon.h"
42561
42562 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vmls_nf32.c
42563 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_nf32.c 2007-07-25 14:28:31.000000000 +0200
42564 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_nf32.c 2010-01-25 09:50:29.415686609 +0100
42565 @@ -3,7 +3,8 @@
42566
42567 /* { dg-do assemble } */
42568 /* { dg-require-effective-target arm_neon_ok } */
42569 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42570 +/* { dg-options "-save-temps -O0" } */
42571 +/* { dg-add-options arm_neon } */
42572
42573 #include "arm_neon.h"
42574
42575 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmls_ns16.c
42576 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_ns16.c 2007-07-25 14:28:31.000000000 +0200
42577 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_ns16.c 2010-01-25 09:50:29.415686609 +0100
42578 @@ -3,7 +3,8 @@
42579
42580 /* { dg-do assemble } */
42581 /* { dg-require-effective-target arm_neon_ok } */
42582 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42583 +/* { dg-options "-save-temps -O0" } */
42584 +/* { dg-add-options arm_neon } */
42585
42586 #include "arm_neon.h"
42587
42588 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmls_ns32.c
42589 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_ns32.c 2007-07-25 14:28:31.000000000 +0200
42590 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_ns32.c 2010-01-25 09:50:29.415686609 +0100
42591 @@ -3,7 +3,8 @@
42592
42593 /* { dg-do assemble } */
42594 /* { dg-require-effective-target arm_neon_ok } */
42595 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42596 +/* { dg-options "-save-temps -O0" } */
42597 +/* { dg-add-options arm_neon } */
42598
42599 #include "arm_neon.h"
42600
42601 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmls_nu16.c
42602 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_nu16.c 2007-07-25 14:28:31.000000000 +0200
42603 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_nu16.c 2010-01-25 09:50:29.415686609 +0100
42604 @@ -3,7 +3,8 @@
42605
42606 /* { dg-do assemble } */
42607 /* { dg-require-effective-target arm_neon_ok } */
42608 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42609 +/* { dg-options "-save-temps -O0" } */
42610 +/* { dg-add-options arm_neon } */
42611
42612 #include "arm_neon.h"
42613
42614 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmls_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmls_nu32.c
42615 --- a/gcc/testsuite/gcc.target/arm/neon/vmls_nu32.c 2007-07-25 14:28:31.000000000 +0200
42616 +++ b/gcc/testsuite/gcc.target/arm/neon/vmls_nu32.c 2010-01-25 09:50:29.415686609 +0100
42617 @@ -3,7 +3,8 @@
42618
42619 /* { dg-do assemble } */
42620 /* { dg-require-effective-target arm_neon_ok } */
42621 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42622 +/* { dg-options "-save-temps -O0" } */
42623 +/* { dg-add-options arm_neon } */
42624
42625 #include "arm_neon.h"
42626
42627 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQf32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQf32.c
42628 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQf32.c 2007-07-25 14:28:31.000000000 +0200
42629 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQf32.c 2010-01-25 09:50:29.415686609 +0100
42630 @@ -3,7 +3,8 @@
42631
42632 /* { dg-do assemble } */
42633 /* { dg-require-effective-target arm_neon_ok } */
42634 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42635 +/* { dg-options "-save-temps -O0" } */
42636 +/* { dg-add-options arm_neon } */
42637
42638 #include "arm_neon.h"
42639
42640 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanef32.c
42641 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanef32.c 2007-07-25 14:28:31.000000000 +0200
42642 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanef32.c 2010-01-25 09:50:29.415686609 +0100
42643 @@ -3,7 +3,8 @@
42644
42645 /* { dg-do assemble } */
42646 /* { dg-require-effective-target arm_neon_ok } */
42647 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42648 +/* { dg-options "-save-temps -O0" } */
42649 +/* { dg-add-options arm_neon } */
42650
42651 #include "arm_neon.h"
42652
42653 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanes16.c
42654 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanes16.c 2007-07-25 14:28:31.000000000 +0200
42655 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanes16.c 2010-01-25 09:50:29.415686609 +0100
42656 @@ -3,7 +3,8 @@
42657
42658 /* { dg-do assemble } */
42659 /* { dg-require-effective-target arm_neon_ok } */
42660 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42661 +/* { dg-options "-save-temps -O0" } */
42662 +/* { dg-add-options arm_neon } */
42663
42664 #include "arm_neon.h"
42665
42666 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanes32.c
42667 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanes32.c 2007-07-25 14:28:31.000000000 +0200
42668 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_lanes32.c 2010-01-25 09:50:29.415686609 +0100
42669 @@ -3,7 +3,8 @@
42670
42671 /* { dg-do assemble } */
42672 /* { dg-require-effective-target arm_neon_ok } */
42673 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42674 +/* { dg-options "-save-temps -O0" } */
42675 +/* { dg-add-options arm_neon } */
42676
42677 #include "arm_neon.h"
42678
42679 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_laneu16.c
42680 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_laneu16.c 2007-07-25 14:28:31.000000000 +0200
42681 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_laneu16.c 2010-01-25 09:50:29.415686609 +0100
42682 @@ -3,7 +3,8 @@
42683
42684 /* { dg-do assemble } */
42685 /* { dg-require-effective-target arm_neon_ok } */
42686 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42687 +/* { dg-options "-save-temps -O0" } */
42688 +/* { dg-add-options arm_neon } */
42689
42690 #include "arm_neon.h"
42691
42692 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_laneu32.c
42693 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_laneu32.c 2007-07-25 14:28:31.000000000 +0200
42694 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_laneu32.c 2010-01-25 09:50:29.415686609 +0100
42695 @@ -3,7 +3,8 @@
42696
42697 /* { dg-do assemble } */
42698 /* { dg-require-effective-target arm_neon_ok } */
42699 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42700 +/* { dg-options "-save-temps -O0" } */
42701 +/* { dg-add-options arm_neon } */
42702
42703 #include "arm_neon.h"
42704
42705 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nf32.c
42706 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nf32.c 2007-07-25 14:28:31.000000000 +0200
42707 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nf32.c 2010-01-25 09:50:29.415686609 +0100
42708 @@ -3,7 +3,8 @@
42709
42710 /* { dg-do assemble } */
42711 /* { dg-require-effective-target arm_neon_ok } */
42712 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42713 +/* { dg-options "-save-temps -O0" } */
42714 +/* { dg-add-options arm_neon } */
42715
42716 #include "arm_neon.h"
42717
42718 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_ns16.c
42719 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
42720 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_ns16.c 2010-01-25 09:50:29.415686609 +0100
42721 @@ -3,7 +3,8 @@
42722
42723 /* { dg-do assemble } */
42724 /* { dg-require-effective-target arm_neon_ok } */
42725 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42726 +/* { dg-options "-save-temps -O0" } */
42727 +/* { dg-add-options arm_neon } */
42728
42729 #include "arm_neon.h"
42730
42731 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_ns32.c
42732 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
42733 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_ns32.c 2010-01-25 09:50:29.415686609 +0100
42734 @@ -3,7 +3,8 @@
42735
42736 /* { dg-do assemble } */
42737 /* { dg-require-effective-target arm_neon_ok } */
42738 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42739 +/* { dg-options "-save-temps -O0" } */
42740 +/* { dg-add-options arm_neon } */
42741
42742 #include "arm_neon.h"
42743
42744 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nu16.c
42745 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
42746 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nu16.c 2010-01-25 09:50:29.415686609 +0100
42747 @@ -3,7 +3,8 @@
42748
42749 /* { dg-do assemble } */
42750 /* { dg-require-effective-target arm_neon_ok } */
42751 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42752 +/* { dg-options "-save-temps -O0" } */
42753 +/* { dg-add-options arm_neon } */
42754
42755 #include "arm_neon.h"
42756
42757 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nu32.c
42758 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
42759 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQ_nu32.c 2010-01-25 09:50:29.415686609 +0100
42760 @@ -3,7 +3,8 @@
42761
42762 /* { dg-do assemble } */
42763 /* { dg-require-effective-target arm_neon_ok } */
42764 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42765 +/* { dg-options "-save-temps -O0" } */
42766 +/* { dg-add-options arm_neon } */
42767
42768 #include "arm_neon.h"
42769
42770 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQs16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQs16.c
42771 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQs16.c 2007-07-25 14:28:31.000000000 +0200
42772 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQs16.c 2010-01-25 09:50:29.415686609 +0100
42773 @@ -3,7 +3,8 @@
42774
42775 /* { dg-do assemble } */
42776 /* { dg-require-effective-target arm_neon_ok } */
42777 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42778 +/* { dg-options "-save-temps -O0" } */
42779 +/* { dg-add-options arm_neon } */
42780
42781 #include "arm_neon.h"
42782
42783 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQs32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQs32.c
42784 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQs32.c 2007-07-25 14:28:31.000000000 +0200
42785 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQs32.c 2010-01-25 09:50:29.415686609 +0100
42786 @@ -3,7 +3,8 @@
42787
42788 /* { dg-do assemble } */
42789 /* { dg-require-effective-target arm_neon_ok } */
42790 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42791 +/* { dg-options "-save-temps -O0" } */
42792 +/* { dg-add-options arm_neon } */
42793
42794 #include "arm_neon.h"
42795
42796 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQs8.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQs8.c
42797 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQs8.c 2007-07-25 14:28:31.000000000 +0200
42798 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQs8.c 2010-01-25 09:50:29.415686609 +0100
42799 @@ -3,7 +3,8 @@
42800
42801 /* { dg-do assemble } */
42802 /* { dg-require-effective-target arm_neon_ok } */
42803 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42804 +/* { dg-options "-save-temps -O0" } */
42805 +/* { dg-add-options arm_neon } */
42806
42807 #include "arm_neon.h"
42808
42809 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQu16.c
42810 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQu16.c 2007-07-25 14:28:31.000000000 +0200
42811 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQu16.c 2010-01-25 09:50:29.415686609 +0100
42812 @@ -3,7 +3,8 @@
42813
42814 /* { dg-do assemble } */
42815 /* { dg-require-effective-target arm_neon_ok } */
42816 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42817 +/* { dg-options "-save-temps -O0" } */
42818 +/* { dg-add-options arm_neon } */
42819
42820 #include "arm_neon.h"
42821
42822 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQu32.c
42823 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQu32.c 2007-07-25 14:28:31.000000000 +0200
42824 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQu32.c 2010-01-25 09:50:29.415686609 +0100
42825 @@ -3,7 +3,8 @@
42826
42827 /* { dg-do assemble } */
42828 /* { dg-require-effective-target arm_neon_ok } */
42829 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42830 +/* { dg-options "-save-temps -O0" } */
42831 +/* { dg-add-options arm_neon } */
42832
42833 #include "arm_neon.h"
42834
42835 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsQu8.c b/gcc/testsuite/gcc.target/arm/neon/vmlsQu8.c
42836 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsQu8.c 2007-07-25 14:28:31.000000000 +0200
42837 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsQu8.c 2010-01-25 09:50:29.415686609 +0100
42838 @@ -3,7 +3,8 @@
42839
42840 /* { dg-do assemble } */
42841 /* { dg-require-effective-target arm_neon_ok } */
42842 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42843 +/* { dg-options "-save-temps -O0" } */
42844 +/* { dg-add-options arm_neon } */
42845
42846 #include "arm_neon.h"
42847
42848 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlss16.c b/gcc/testsuite/gcc.target/arm/neon/vmlss16.c
42849 --- a/gcc/testsuite/gcc.target/arm/neon/vmlss16.c 2007-07-25 14:28:31.000000000 +0200
42850 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlss16.c 2010-01-25 09:50:29.415686609 +0100
42851 @@ -3,7 +3,8 @@
42852
42853 /* { dg-do assemble } */
42854 /* { dg-require-effective-target arm_neon_ok } */
42855 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42856 +/* { dg-options "-save-temps -O0" } */
42857 +/* { dg-add-options arm_neon } */
42858
42859 #include "arm_neon.h"
42860
42861 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlss32.c b/gcc/testsuite/gcc.target/arm/neon/vmlss32.c
42862 --- a/gcc/testsuite/gcc.target/arm/neon/vmlss32.c 2007-07-25 14:28:31.000000000 +0200
42863 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlss32.c 2010-01-25 09:50:29.415686609 +0100
42864 @@ -3,7 +3,8 @@
42865
42866 /* { dg-do assemble } */
42867 /* { dg-require-effective-target arm_neon_ok } */
42868 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42869 +/* { dg-options "-save-temps -O0" } */
42870 +/* { dg-add-options arm_neon } */
42871
42872 #include "arm_neon.h"
42873
42874 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlss8.c b/gcc/testsuite/gcc.target/arm/neon/vmlss8.c
42875 --- a/gcc/testsuite/gcc.target/arm/neon/vmlss8.c 2007-07-25 14:28:31.000000000 +0200
42876 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlss8.c 2010-01-25 09:50:29.415686609 +0100
42877 @@ -3,7 +3,8 @@
42878
42879 /* { dg-do assemble } */
42880 /* { dg-require-effective-target arm_neon_ok } */
42881 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42882 +/* { dg-options "-save-temps -O0" } */
42883 +/* { dg-add-options arm_neon } */
42884
42885 #include "arm_neon.h"
42886
42887 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsu16.c b/gcc/testsuite/gcc.target/arm/neon/vmlsu16.c
42888 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsu16.c 2007-07-25 14:28:31.000000000 +0200
42889 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsu16.c 2010-01-25 09:50:29.415686609 +0100
42890 @@ -3,7 +3,8 @@
42891
42892 /* { dg-do assemble } */
42893 /* { dg-require-effective-target arm_neon_ok } */
42894 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42895 +/* { dg-options "-save-temps -O0" } */
42896 +/* { dg-add-options arm_neon } */
42897
42898 #include "arm_neon.h"
42899
42900 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsu32.c b/gcc/testsuite/gcc.target/arm/neon/vmlsu32.c
42901 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsu32.c 2007-07-25 14:28:31.000000000 +0200
42902 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsu32.c 2010-01-25 09:50:29.415686609 +0100
42903 @@ -3,7 +3,8 @@
42904
42905 /* { dg-do assemble } */
42906 /* { dg-require-effective-target arm_neon_ok } */
42907 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42908 +/* { dg-options "-save-temps -O0" } */
42909 +/* { dg-add-options arm_neon } */
42910
42911 #include "arm_neon.h"
42912
42913 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmlsu8.c b/gcc/testsuite/gcc.target/arm/neon/vmlsu8.c
42914 --- a/gcc/testsuite/gcc.target/arm/neon/vmlsu8.c 2007-07-25 14:28:31.000000000 +0200
42915 +++ b/gcc/testsuite/gcc.target/arm/neon/vmlsu8.c 2010-01-25 09:50:29.415686609 +0100
42916 @@ -3,7 +3,8 @@
42917
42918 /* { dg-do assemble } */
42919 /* { dg-require-effective-target arm_neon_ok } */
42920 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42921 +/* { dg-options "-save-temps -O0" } */
42922 +/* { dg-add-options arm_neon } */
42923
42924 #include "arm_neon.h"
42925
42926 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovls16.c b/gcc/testsuite/gcc.target/arm/neon/vmovls16.c
42927 --- a/gcc/testsuite/gcc.target/arm/neon/vmovls16.c 2007-07-25 14:28:31.000000000 +0200
42928 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovls16.c 2010-01-25 09:50:29.415686609 +0100
42929 @@ -3,7 +3,8 @@
42930
42931 /* { dg-do assemble } */
42932 /* { dg-require-effective-target arm_neon_ok } */
42933 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42934 +/* { dg-options "-save-temps -O0" } */
42935 +/* { dg-add-options arm_neon } */
42936
42937 #include "arm_neon.h"
42938
42939 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovls32.c b/gcc/testsuite/gcc.target/arm/neon/vmovls32.c
42940 --- a/gcc/testsuite/gcc.target/arm/neon/vmovls32.c 2007-07-25 14:28:31.000000000 +0200
42941 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovls32.c 2010-01-25 09:50:29.415686609 +0100
42942 @@ -3,7 +3,8 @@
42943
42944 /* { dg-do assemble } */
42945 /* { dg-require-effective-target arm_neon_ok } */
42946 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42947 +/* { dg-options "-save-temps -O0" } */
42948 +/* { dg-add-options arm_neon } */
42949
42950 #include "arm_neon.h"
42951
42952 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovls8.c b/gcc/testsuite/gcc.target/arm/neon/vmovls8.c
42953 --- a/gcc/testsuite/gcc.target/arm/neon/vmovls8.c 2007-07-25 14:28:31.000000000 +0200
42954 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovls8.c 2010-01-25 09:50:29.415686609 +0100
42955 @@ -3,7 +3,8 @@
42956
42957 /* { dg-do assemble } */
42958 /* { dg-require-effective-target arm_neon_ok } */
42959 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42960 +/* { dg-options "-save-temps -O0" } */
42961 +/* { dg-add-options arm_neon } */
42962
42963 #include "arm_neon.h"
42964
42965 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovlu16.c b/gcc/testsuite/gcc.target/arm/neon/vmovlu16.c
42966 --- a/gcc/testsuite/gcc.target/arm/neon/vmovlu16.c 2007-07-25 14:28:31.000000000 +0200
42967 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovlu16.c 2010-01-25 09:50:29.415686609 +0100
42968 @@ -3,7 +3,8 @@
42969
42970 /* { dg-do assemble } */
42971 /* { dg-require-effective-target arm_neon_ok } */
42972 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42973 +/* { dg-options "-save-temps -O0" } */
42974 +/* { dg-add-options arm_neon } */
42975
42976 #include "arm_neon.h"
42977
42978 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovlu32.c b/gcc/testsuite/gcc.target/arm/neon/vmovlu32.c
42979 --- a/gcc/testsuite/gcc.target/arm/neon/vmovlu32.c 2007-07-25 14:28:31.000000000 +0200
42980 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovlu32.c 2010-01-25 09:50:29.415686609 +0100
42981 @@ -3,7 +3,8 @@
42982
42983 /* { dg-do assemble } */
42984 /* { dg-require-effective-target arm_neon_ok } */
42985 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42986 +/* { dg-options "-save-temps -O0" } */
42987 +/* { dg-add-options arm_neon } */
42988
42989 #include "arm_neon.h"
42990
42991 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovlu8.c b/gcc/testsuite/gcc.target/arm/neon/vmovlu8.c
42992 --- a/gcc/testsuite/gcc.target/arm/neon/vmovlu8.c 2007-07-25 14:28:31.000000000 +0200
42993 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovlu8.c 2010-01-25 09:50:29.415686609 +0100
42994 @@ -3,7 +3,8 @@
42995
42996 /* { dg-do assemble } */
42997 /* { dg-require-effective-target arm_neon_ok } */
42998 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
42999 +/* { dg-options "-save-temps -O0" } */
43000 +/* { dg-add-options arm_neon } */
43001
43002 #include "arm_neon.h"
43003
43004 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vmov_nf32.c
43005 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_nf32.c 2007-07-25 14:28:31.000000000 +0200
43006 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_nf32.c 2010-01-25 09:50:29.415686609 +0100
43007 @@ -3,7 +3,8 @@
43008
43009 /* { dg-do assemble } */
43010 /* { dg-require-effective-target arm_neon_ok } */
43011 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43012 +/* { dg-options "-save-temps -O0" } */
43013 +/* { dg-add-options arm_neon } */
43014
43015 #include "arm_neon.h"
43016
43017 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_np16.c b/gcc/testsuite/gcc.target/arm/neon/vmov_np16.c
43018 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_np16.c 2007-07-25 14:28:31.000000000 +0200
43019 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_np16.c 2010-01-25 09:50:29.415686609 +0100
43020 @@ -3,7 +3,8 @@
43021
43022 /* { dg-do assemble } */
43023 /* { dg-require-effective-target arm_neon_ok } */
43024 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43025 +/* { dg-options "-save-temps -O0" } */
43026 +/* { dg-add-options arm_neon } */
43027
43028 #include "arm_neon.h"
43029
43030 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_np8.c b/gcc/testsuite/gcc.target/arm/neon/vmov_np8.c
43031 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_np8.c 2007-07-25 14:28:31.000000000 +0200
43032 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_np8.c 2010-01-25 09:50:29.415686609 +0100
43033 @@ -3,7 +3,8 @@
43034
43035 /* { dg-do assemble } */
43036 /* { dg-require-effective-target arm_neon_ok } */
43037 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43038 +/* { dg-options "-save-temps -O0" } */
43039 +/* { dg-add-options arm_neon } */
43040
43041 #include "arm_neon.h"
43042
43043 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmov_ns16.c
43044 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_ns16.c 2007-07-25 14:28:31.000000000 +0200
43045 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_ns16.c 2010-01-25 09:50:29.415686609 +0100
43046 @@ -3,7 +3,8 @@
43047
43048 /* { dg-do assemble } */
43049 /* { dg-require-effective-target arm_neon_ok } */
43050 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43051 +/* { dg-options "-save-temps -O0" } */
43052 +/* { dg-add-options arm_neon } */
43053
43054 #include "arm_neon.h"
43055
43056 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovns16.c b/gcc/testsuite/gcc.target/arm/neon/vmovns16.c
43057 --- a/gcc/testsuite/gcc.target/arm/neon/vmovns16.c 2007-07-25 14:28:31.000000000 +0200
43058 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovns16.c 2010-01-25 09:50:29.415686609 +0100
43059 @@ -3,7 +3,8 @@
43060
43061 /* { dg-do assemble } */
43062 /* { dg-require-effective-target arm_neon_ok } */
43063 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43064 +/* { dg-options "-save-temps -O0" } */
43065 +/* { dg-add-options arm_neon } */
43066
43067 #include "arm_neon.h"
43068
43069 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmov_ns32.c
43070 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_ns32.c 2007-07-25 14:28:31.000000000 +0200
43071 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_ns32.c 2010-01-25 09:50:29.415686609 +0100
43072 @@ -3,7 +3,8 @@
43073
43074 /* { dg-do assemble } */
43075 /* { dg-require-effective-target arm_neon_ok } */
43076 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43077 +/* { dg-options "-save-temps -O0" } */
43078 +/* { dg-add-options arm_neon } */
43079
43080 #include "arm_neon.h"
43081
43082 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovns32.c b/gcc/testsuite/gcc.target/arm/neon/vmovns32.c
43083 --- a/gcc/testsuite/gcc.target/arm/neon/vmovns32.c 2007-07-25 14:28:31.000000000 +0200
43084 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovns32.c 2010-01-25 09:50:29.415686609 +0100
43085 @@ -3,7 +3,8 @@
43086
43087 /* { dg-do assemble } */
43088 /* { dg-require-effective-target arm_neon_ok } */
43089 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43090 +/* { dg-options "-save-temps -O0" } */
43091 +/* { dg-add-options arm_neon } */
43092
43093 #include "arm_neon.h"
43094
43095 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vmov_ns64.c
43096 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_ns64.c 2007-07-25 14:28:31.000000000 +0200
43097 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_ns64.c 2010-01-25 09:50:29.415686609 +0100
43098 @@ -3,7 +3,8 @@
43099
43100 /* { dg-do assemble } */
43101 /* { dg-require-effective-target arm_neon_ok } */
43102 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43103 +/* { dg-options "-save-temps -O0" } */
43104 +/* { dg-add-options arm_neon } */
43105
43106 #include "arm_neon.h"
43107
43108 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovns64.c b/gcc/testsuite/gcc.target/arm/neon/vmovns64.c
43109 --- a/gcc/testsuite/gcc.target/arm/neon/vmovns64.c 2007-07-25 14:28:31.000000000 +0200
43110 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovns64.c 2010-01-25 09:50:29.415686609 +0100
43111 @@ -3,7 +3,8 @@
43112
43113 /* { dg-do assemble } */
43114 /* { dg-require-effective-target arm_neon_ok } */
43115 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43116 +/* { dg-options "-save-temps -O0" } */
43117 +/* { dg-add-options arm_neon } */
43118
43119 #include "arm_neon.h"
43120
43121 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vmov_ns8.c
43122 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_ns8.c 2007-07-25 14:28:31.000000000 +0200
43123 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_ns8.c 2010-01-25 09:50:29.415686609 +0100
43124 @@ -3,7 +3,8 @@
43125
43126 /* { dg-do assemble } */
43127 /* { dg-require-effective-target arm_neon_ok } */
43128 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43129 +/* { dg-options "-save-temps -O0" } */
43130 +/* { dg-add-options arm_neon } */
43131
43132 #include "arm_neon.h"
43133
43134 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmov_nu16.c
43135 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_nu16.c 2007-07-25 14:28:31.000000000 +0200
43136 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_nu16.c 2010-01-25 09:50:29.415686609 +0100
43137 @@ -3,7 +3,8 @@
43138
43139 /* { dg-do assemble } */
43140 /* { dg-require-effective-target arm_neon_ok } */
43141 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43142 +/* { dg-options "-save-temps -O0" } */
43143 +/* { dg-add-options arm_neon } */
43144
43145 #include "arm_neon.h"
43146
43147 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovnu16.c b/gcc/testsuite/gcc.target/arm/neon/vmovnu16.c
43148 --- a/gcc/testsuite/gcc.target/arm/neon/vmovnu16.c 2007-07-25 14:28:31.000000000 +0200
43149 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovnu16.c 2010-01-25 09:50:29.415686609 +0100
43150 @@ -3,7 +3,8 @@
43151
43152 /* { dg-do assemble } */
43153 /* { dg-require-effective-target arm_neon_ok } */
43154 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43155 +/* { dg-options "-save-temps -O0" } */
43156 +/* { dg-add-options arm_neon } */
43157
43158 #include "arm_neon.h"
43159
43160 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmov_nu32.c
43161 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_nu32.c 2007-07-25 14:28:31.000000000 +0200
43162 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_nu32.c 2010-01-25 09:50:29.415686609 +0100
43163 @@ -3,7 +3,8 @@
43164
43165 /* { dg-do assemble } */
43166 /* { dg-require-effective-target arm_neon_ok } */
43167 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43168 +/* { dg-options "-save-temps -O0" } */
43169 +/* { dg-add-options arm_neon } */
43170
43171 #include "arm_neon.h"
43172
43173 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovnu32.c b/gcc/testsuite/gcc.target/arm/neon/vmovnu32.c
43174 --- a/gcc/testsuite/gcc.target/arm/neon/vmovnu32.c 2007-07-25 14:28:31.000000000 +0200
43175 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovnu32.c 2010-01-25 09:50:29.415686609 +0100
43176 @@ -3,7 +3,8 @@
43177
43178 /* { dg-do assemble } */
43179 /* { dg-require-effective-target arm_neon_ok } */
43180 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43181 +/* { dg-options "-save-temps -O0" } */
43182 +/* { dg-add-options arm_neon } */
43183
43184 #include "arm_neon.h"
43185
43186 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vmov_nu64.c
43187 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_nu64.c 2007-07-25 14:28:31.000000000 +0200
43188 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_nu64.c 2010-01-25 09:50:29.415686609 +0100
43189 @@ -3,7 +3,8 @@
43190
43191 /* { dg-do assemble } */
43192 /* { dg-require-effective-target arm_neon_ok } */
43193 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43194 +/* { dg-options "-save-temps -O0" } */
43195 +/* { dg-add-options arm_neon } */
43196
43197 #include "arm_neon.h"
43198
43199 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovnu64.c b/gcc/testsuite/gcc.target/arm/neon/vmovnu64.c
43200 --- a/gcc/testsuite/gcc.target/arm/neon/vmovnu64.c 2007-07-25 14:28:31.000000000 +0200
43201 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovnu64.c 2010-01-25 09:50:29.415686609 +0100
43202 @@ -3,7 +3,8 @@
43203
43204 /* { dg-do assemble } */
43205 /* { dg-require-effective-target arm_neon_ok } */
43206 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43207 +/* { dg-options "-save-temps -O0" } */
43208 +/* { dg-add-options arm_neon } */
43209
43210 #include "arm_neon.h"
43211
43212 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmov_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vmov_nu8.c
43213 --- a/gcc/testsuite/gcc.target/arm/neon/vmov_nu8.c 2007-07-25 14:28:31.000000000 +0200
43214 +++ b/gcc/testsuite/gcc.target/arm/neon/vmov_nu8.c 2010-01-25 09:50:29.415686609 +0100
43215 @@ -3,7 +3,8 @@
43216
43217 /* { dg-do assemble } */
43218 /* { dg-require-effective-target arm_neon_ok } */
43219 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43220 +/* { dg-options "-save-temps -O0" } */
43221 +/* { dg-add-options arm_neon } */
43222
43223 #include "arm_neon.h"
43224
43225 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nf32.c
43226 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nf32.c 2007-07-25 14:28:31.000000000 +0200
43227 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nf32.c 2010-01-25 09:50:29.415686609 +0100
43228 @@ -3,7 +3,8 @@
43229
43230 /* { dg-do assemble } */
43231 /* { dg-require-effective-target arm_neon_ok } */
43232 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43233 +/* { dg-options "-save-temps -O0" } */
43234 +/* { dg-add-options arm_neon } */
43235
43236 #include "arm_neon.h"
43237
43238 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_np16.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_np16.c
43239 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_np16.c 2007-07-25 14:28:31.000000000 +0200
43240 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_np16.c 2010-01-25 09:50:29.415686609 +0100
43241 @@ -3,7 +3,8 @@
43242
43243 /* { dg-do assemble } */
43244 /* { dg-require-effective-target arm_neon_ok } */
43245 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43246 +/* { dg-options "-save-temps -O0" } */
43247 +/* { dg-add-options arm_neon } */
43248
43249 #include "arm_neon.h"
43250
43251 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_np8.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_np8.c
43252 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_np8.c 2007-07-25 14:28:31.000000000 +0200
43253 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_np8.c 2010-01-25 09:50:29.415686609 +0100
43254 @@ -3,7 +3,8 @@
43255
43256 /* { dg-do assemble } */
43257 /* { dg-require-effective-target arm_neon_ok } */
43258 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43259 +/* { dg-options "-save-temps -O0" } */
43260 +/* { dg-add-options arm_neon } */
43261
43262 #include "arm_neon.h"
43263
43264 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns16.c
43265 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
43266 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns16.c 2010-01-25 09:50:29.415686609 +0100
43267 @@ -3,7 +3,8 @@
43268
43269 /* { dg-do assemble } */
43270 /* { dg-require-effective-target arm_neon_ok } */
43271 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43272 +/* { dg-options "-save-temps -O0" } */
43273 +/* { dg-add-options arm_neon } */
43274
43275 #include "arm_neon.h"
43276
43277 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns32.c
43278 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
43279 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns32.c 2010-01-25 09:50:29.415686609 +0100
43280 @@ -3,7 +3,8 @@
43281
43282 /* { dg-do assemble } */
43283 /* { dg-require-effective-target arm_neon_ok } */
43284 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43285 +/* { dg-options "-save-temps -O0" } */
43286 +/* { dg-add-options arm_neon } */
43287
43288 #include "arm_neon.h"
43289
43290 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns64.c
43291 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
43292 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns64.c 2010-01-25 09:50:29.415686609 +0100
43293 @@ -3,7 +3,8 @@
43294
43295 /* { dg-do assemble } */
43296 /* { dg-require-effective-target arm_neon_ok } */
43297 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43298 +/* { dg-options "-save-temps -O0" } */
43299 +/* { dg-add-options arm_neon } */
43300
43301 #include "arm_neon.h"
43302
43303 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns8.c
43304 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
43305 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_ns8.c 2010-01-25 09:50:29.415686609 +0100
43306 @@ -3,7 +3,8 @@
43307
43308 /* { dg-do assemble } */
43309 /* { dg-require-effective-target arm_neon_ok } */
43310 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43311 +/* { dg-options "-save-temps -O0" } */
43312 +/* { dg-add-options arm_neon } */
43313
43314 #include "arm_neon.h"
43315
43316 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu16.c
43317 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
43318 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu16.c 2010-01-25 09:50:29.415686609 +0100
43319 @@ -3,7 +3,8 @@
43320
43321 /* { dg-do assemble } */
43322 /* { dg-require-effective-target arm_neon_ok } */
43323 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43324 +/* { dg-options "-save-temps -O0" } */
43325 +/* { dg-add-options arm_neon } */
43326
43327 #include "arm_neon.h"
43328
43329 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu32.c
43330 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
43331 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu32.c 2010-01-25 09:50:29.415686609 +0100
43332 @@ -3,7 +3,8 @@
43333
43334 /* { dg-do assemble } */
43335 /* { dg-require-effective-target arm_neon_ok } */
43336 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43337 +/* { dg-options "-save-temps -O0" } */
43338 +/* { dg-add-options arm_neon } */
43339
43340 #include "arm_neon.h"
43341
43342 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu64.c
43343 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
43344 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu64.c 2010-01-25 09:50:29.415686609 +0100
43345 @@ -3,7 +3,8 @@
43346
43347 /* { dg-do assemble } */
43348 /* { dg-require-effective-target arm_neon_ok } */
43349 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43350 +/* { dg-options "-save-temps -O0" } */
43351 +/* { dg-add-options arm_neon } */
43352
43353 #include "arm_neon.h"
43354
43355 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu8.c
43356 --- a/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
43357 +++ b/gcc/testsuite/gcc.target/arm/neon/vmovQ_nu8.c 2010-01-25 09:50:29.415686609 +0100
43358 @@ -3,7 +3,8 @@
43359
43360 /* { dg-do assemble } */
43361 /* { dg-require-effective-target arm_neon_ok } */
43362 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43363 +/* { dg-options "-save-temps -O0" } */
43364 +/* { dg-add-options arm_neon } */
43365
43366 #include "arm_neon.h"
43367
43368 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulf32.c b/gcc/testsuite/gcc.target/arm/neon/vmulf32.c
43369 --- a/gcc/testsuite/gcc.target/arm/neon/vmulf32.c 2007-07-25 14:28:31.000000000 +0200
43370 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulf32.c 2010-01-25 09:50:29.415686609 +0100
43371 @@ -3,7 +3,8 @@
43372
43373 /* { dg-do assemble } */
43374 /* { dg-require-effective-target arm_neon_ok } */
43375 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43376 +/* { dg-options "-save-temps -O0" } */
43377 +/* { dg-add-options arm_neon } */
43378
43379 #include "arm_neon.h"
43380
43381 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vmul_lanef32.c
43382 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_lanef32.c 2007-07-25 14:28:31.000000000 +0200
43383 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_lanef32.c 2010-01-25 09:50:29.415686609 +0100
43384 @@ -3,7 +3,8 @@
43385
43386 /* { dg-do assemble } */
43387 /* { dg-require-effective-target arm_neon_ok } */
43388 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43389 +/* { dg-options "-save-temps -O0" } */
43390 +/* { dg-add-options arm_neon } */
43391
43392 #include "arm_neon.h"
43393
43394 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmul_lanes16.c
43395 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_lanes16.c 2007-07-25 14:28:31.000000000 +0200
43396 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_lanes16.c 2010-01-25 09:50:29.415686609 +0100
43397 @@ -3,7 +3,8 @@
43398
43399 /* { dg-do assemble } */
43400 /* { dg-require-effective-target arm_neon_ok } */
43401 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43402 +/* { dg-options "-save-temps -O0" } */
43403 +/* { dg-add-options arm_neon } */
43404
43405 #include "arm_neon.h"
43406
43407 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmul_lanes32.c
43408 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_lanes32.c 2007-07-25 14:28:31.000000000 +0200
43409 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_lanes32.c 2010-01-25 09:50:29.415686609 +0100
43410 @@ -3,7 +3,8 @@
43411
43412 /* { dg-do assemble } */
43413 /* { dg-require-effective-target arm_neon_ok } */
43414 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43415 +/* { dg-options "-save-temps -O0" } */
43416 +/* { dg-add-options arm_neon } */
43417
43418 #include "arm_neon.h"
43419
43420 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmul_laneu16.c
43421 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_laneu16.c 2007-07-25 14:28:31.000000000 +0200
43422 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_laneu16.c 2010-01-25 09:50:29.415686609 +0100
43423 @@ -3,7 +3,8 @@
43424
43425 /* { dg-do assemble } */
43426 /* { dg-require-effective-target arm_neon_ok } */
43427 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43428 +/* { dg-options "-save-temps -O0" } */
43429 +/* { dg-add-options arm_neon } */
43430
43431 #include "arm_neon.h"
43432
43433 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmul_laneu32.c
43434 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_laneu32.c 2007-07-25 14:28:31.000000000 +0200
43435 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_laneu32.c 2010-01-25 09:50:29.415686609 +0100
43436 @@ -3,7 +3,8 @@
43437
43438 /* { dg-do assemble } */
43439 /* { dg-require-effective-target arm_neon_ok } */
43440 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43441 +/* { dg-options "-save-temps -O0" } */
43442 +/* { dg-add-options arm_neon } */
43443
43444 #include "arm_neon.h"
43445
43446 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmull_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmull_lanes16.c
43447 --- a/gcc/testsuite/gcc.target/arm/neon/vmull_lanes16.c 2007-07-25 14:28:31.000000000 +0200
43448 +++ b/gcc/testsuite/gcc.target/arm/neon/vmull_lanes16.c 2010-01-25 09:50:29.415686609 +0100
43449 @@ -3,7 +3,8 @@
43450
43451 /* { dg-do assemble } */
43452 /* { dg-require-effective-target arm_neon_ok } */
43453 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43454 +/* { dg-options "-save-temps -O0" } */
43455 +/* { dg-add-options arm_neon } */
43456
43457 #include "arm_neon.h"
43458
43459 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmull_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmull_lanes32.c
43460 --- a/gcc/testsuite/gcc.target/arm/neon/vmull_lanes32.c 2007-07-25 14:28:31.000000000 +0200
43461 +++ b/gcc/testsuite/gcc.target/arm/neon/vmull_lanes32.c 2010-01-25 09:50:29.425686763 +0100
43462 @@ -3,7 +3,8 @@
43463
43464 /* { dg-do assemble } */
43465 /* { dg-require-effective-target arm_neon_ok } */
43466 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43467 +/* { dg-options "-save-temps -O0" } */
43468 +/* { dg-add-options arm_neon } */
43469
43470 #include "arm_neon.h"
43471
43472 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmull_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmull_laneu16.c
43473 --- a/gcc/testsuite/gcc.target/arm/neon/vmull_laneu16.c 2007-07-25 14:28:31.000000000 +0200
43474 +++ b/gcc/testsuite/gcc.target/arm/neon/vmull_laneu16.c 2010-01-25 09:50:29.425686763 +0100
43475 @@ -3,7 +3,8 @@
43476
43477 /* { dg-do assemble } */
43478 /* { dg-require-effective-target arm_neon_ok } */
43479 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43480 +/* { dg-options "-save-temps -O0" } */
43481 +/* { dg-add-options arm_neon } */
43482
43483 #include "arm_neon.h"
43484
43485 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmull_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmull_laneu32.c
43486 --- a/gcc/testsuite/gcc.target/arm/neon/vmull_laneu32.c 2007-07-25 14:28:31.000000000 +0200
43487 +++ b/gcc/testsuite/gcc.target/arm/neon/vmull_laneu32.c 2010-01-25 09:50:29.425686763 +0100
43488 @@ -3,7 +3,8 @@
43489
43490 /* { dg-do assemble } */
43491 /* { dg-require-effective-target arm_neon_ok } */
43492 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43493 +/* { dg-options "-save-temps -O0" } */
43494 +/* { dg-add-options arm_neon } */
43495
43496 #include "arm_neon.h"
43497
43498 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmull_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmull_ns16.c
43499 --- a/gcc/testsuite/gcc.target/arm/neon/vmull_ns16.c 2007-07-25 14:28:31.000000000 +0200
43500 +++ b/gcc/testsuite/gcc.target/arm/neon/vmull_ns16.c 2010-01-25 09:50:29.425686763 +0100
43501 @@ -3,7 +3,8 @@
43502
43503 /* { dg-do assemble } */
43504 /* { dg-require-effective-target arm_neon_ok } */
43505 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43506 +/* { dg-options "-save-temps -O0" } */
43507 +/* { dg-add-options arm_neon } */
43508
43509 #include "arm_neon.h"
43510
43511 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmull_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmull_ns32.c
43512 --- a/gcc/testsuite/gcc.target/arm/neon/vmull_ns32.c 2007-07-25 14:28:31.000000000 +0200
43513 +++ b/gcc/testsuite/gcc.target/arm/neon/vmull_ns32.c 2010-01-25 09:50:29.425686763 +0100
43514 @@ -3,7 +3,8 @@
43515
43516 /* { dg-do assemble } */
43517 /* { dg-require-effective-target arm_neon_ok } */
43518 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43519 +/* { dg-options "-save-temps -O0" } */
43520 +/* { dg-add-options arm_neon } */
43521
43522 #include "arm_neon.h"
43523
43524 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmull_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmull_nu16.c
43525 --- a/gcc/testsuite/gcc.target/arm/neon/vmull_nu16.c 2007-07-25 14:28:31.000000000 +0200
43526 +++ b/gcc/testsuite/gcc.target/arm/neon/vmull_nu16.c 2010-01-25 09:50:29.425686763 +0100
43527 @@ -3,7 +3,8 @@
43528
43529 /* { dg-do assemble } */
43530 /* { dg-require-effective-target arm_neon_ok } */
43531 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43532 +/* { dg-options "-save-temps -O0" } */
43533 +/* { dg-add-options arm_neon } */
43534
43535 #include "arm_neon.h"
43536
43537 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmull_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmull_nu32.c
43538 --- a/gcc/testsuite/gcc.target/arm/neon/vmull_nu32.c 2007-07-25 14:28:31.000000000 +0200
43539 +++ b/gcc/testsuite/gcc.target/arm/neon/vmull_nu32.c 2010-01-25 09:50:29.425686763 +0100
43540 @@ -3,7 +3,8 @@
43541
43542 /* { dg-do assemble } */
43543 /* { dg-require-effective-target arm_neon_ok } */
43544 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43545 +/* { dg-options "-save-temps -O0" } */
43546 +/* { dg-add-options arm_neon } */
43547
43548 #include "arm_neon.h"
43549
43550 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmullp8.c b/gcc/testsuite/gcc.target/arm/neon/vmullp8.c
43551 --- a/gcc/testsuite/gcc.target/arm/neon/vmullp8.c 2007-07-25 14:28:31.000000000 +0200
43552 +++ b/gcc/testsuite/gcc.target/arm/neon/vmullp8.c 2010-01-25 09:50:29.425686763 +0100
43553 @@ -3,7 +3,8 @@
43554
43555 /* { dg-do assemble } */
43556 /* { dg-require-effective-target arm_neon_ok } */
43557 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43558 +/* { dg-options "-save-temps -O0" } */
43559 +/* { dg-add-options arm_neon } */
43560
43561 #include "arm_neon.h"
43562
43563 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulls16.c b/gcc/testsuite/gcc.target/arm/neon/vmulls16.c
43564 --- a/gcc/testsuite/gcc.target/arm/neon/vmulls16.c 2007-07-25 14:28:31.000000000 +0200
43565 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulls16.c 2010-01-25 09:50:29.425686763 +0100
43566 @@ -3,7 +3,8 @@
43567
43568 /* { dg-do assemble } */
43569 /* { dg-require-effective-target arm_neon_ok } */
43570 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43571 +/* { dg-options "-save-temps -O0" } */
43572 +/* { dg-add-options arm_neon } */
43573
43574 #include "arm_neon.h"
43575
43576 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulls32.c b/gcc/testsuite/gcc.target/arm/neon/vmulls32.c
43577 --- a/gcc/testsuite/gcc.target/arm/neon/vmulls32.c 2007-07-25 14:28:31.000000000 +0200
43578 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulls32.c 2010-01-25 09:50:29.425686763 +0100
43579 @@ -3,7 +3,8 @@
43580
43581 /* { dg-do assemble } */
43582 /* { dg-require-effective-target arm_neon_ok } */
43583 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43584 +/* { dg-options "-save-temps -O0" } */
43585 +/* { dg-add-options arm_neon } */
43586
43587 #include "arm_neon.h"
43588
43589 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulls8.c b/gcc/testsuite/gcc.target/arm/neon/vmulls8.c
43590 --- a/gcc/testsuite/gcc.target/arm/neon/vmulls8.c 2007-07-25 14:28:31.000000000 +0200
43591 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulls8.c 2010-01-25 09:50:29.425686763 +0100
43592 @@ -3,7 +3,8 @@
43593
43594 /* { dg-do assemble } */
43595 /* { dg-require-effective-target arm_neon_ok } */
43596 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43597 +/* { dg-options "-save-temps -O0" } */
43598 +/* { dg-add-options arm_neon } */
43599
43600 #include "arm_neon.h"
43601
43602 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmullu16.c b/gcc/testsuite/gcc.target/arm/neon/vmullu16.c
43603 --- a/gcc/testsuite/gcc.target/arm/neon/vmullu16.c 2007-07-25 14:28:31.000000000 +0200
43604 +++ b/gcc/testsuite/gcc.target/arm/neon/vmullu16.c 2010-01-25 09:50:29.425686763 +0100
43605 @@ -3,7 +3,8 @@
43606
43607 /* { dg-do assemble } */
43608 /* { dg-require-effective-target arm_neon_ok } */
43609 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43610 +/* { dg-options "-save-temps -O0" } */
43611 +/* { dg-add-options arm_neon } */
43612
43613 #include "arm_neon.h"
43614
43615 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmullu32.c b/gcc/testsuite/gcc.target/arm/neon/vmullu32.c
43616 --- a/gcc/testsuite/gcc.target/arm/neon/vmullu32.c 2007-07-25 14:28:31.000000000 +0200
43617 +++ b/gcc/testsuite/gcc.target/arm/neon/vmullu32.c 2010-01-25 09:50:29.425686763 +0100
43618 @@ -3,7 +3,8 @@
43619
43620 /* { dg-do assemble } */
43621 /* { dg-require-effective-target arm_neon_ok } */
43622 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43623 +/* { dg-options "-save-temps -O0" } */
43624 +/* { dg-add-options arm_neon } */
43625
43626 #include "arm_neon.h"
43627
43628 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmullu8.c b/gcc/testsuite/gcc.target/arm/neon/vmullu8.c
43629 --- a/gcc/testsuite/gcc.target/arm/neon/vmullu8.c 2007-07-25 14:28:31.000000000 +0200
43630 +++ b/gcc/testsuite/gcc.target/arm/neon/vmullu8.c 2010-01-25 09:50:29.425686763 +0100
43631 @@ -3,7 +3,8 @@
43632
43633 /* { dg-do assemble } */
43634 /* { dg-require-effective-target arm_neon_ok } */
43635 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43636 +/* { dg-options "-save-temps -O0" } */
43637 +/* { dg-add-options arm_neon } */
43638
43639 #include "arm_neon.h"
43640
43641 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vmul_nf32.c
43642 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_nf32.c 2007-07-25 14:28:31.000000000 +0200
43643 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_nf32.c 2010-01-25 09:50:29.425686763 +0100
43644 @@ -3,7 +3,8 @@
43645
43646 /* { dg-do assemble } */
43647 /* { dg-require-effective-target arm_neon_ok } */
43648 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43649 +/* { dg-options "-save-temps -O0" } */
43650 +/* { dg-add-options arm_neon } */
43651
43652 #include "arm_neon.h"
43653
43654 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmul_ns16.c
43655 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_ns16.c 2007-07-25 14:28:31.000000000 +0200
43656 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_ns16.c 2010-01-25 09:50:29.425686763 +0100
43657 @@ -3,7 +3,8 @@
43658
43659 /* { dg-do assemble } */
43660 /* { dg-require-effective-target arm_neon_ok } */
43661 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43662 +/* { dg-options "-save-temps -O0" } */
43663 +/* { dg-add-options arm_neon } */
43664
43665 #include "arm_neon.h"
43666
43667 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmul_ns32.c
43668 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_ns32.c 2007-07-25 14:28:31.000000000 +0200
43669 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_ns32.c 2010-01-25 09:50:29.425686763 +0100
43670 @@ -3,7 +3,8 @@
43671
43672 /* { dg-do assemble } */
43673 /* { dg-require-effective-target arm_neon_ok } */
43674 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43675 +/* { dg-options "-save-temps -O0" } */
43676 +/* { dg-add-options arm_neon } */
43677
43678 #include "arm_neon.h"
43679
43680 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmul_nu16.c
43681 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_nu16.c 2007-07-25 14:28:31.000000000 +0200
43682 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_nu16.c 2010-01-25 09:50:29.425686763 +0100
43683 @@ -3,7 +3,8 @@
43684
43685 /* { dg-do assemble } */
43686 /* { dg-require-effective-target arm_neon_ok } */
43687 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43688 +/* { dg-options "-save-temps -O0" } */
43689 +/* { dg-add-options arm_neon } */
43690
43691 #include "arm_neon.h"
43692
43693 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmul_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmul_nu32.c
43694 --- a/gcc/testsuite/gcc.target/arm/neon/vmul_nu32.c 2007-07-25 14:28:31.000000000 +0200
43695 +++ b/gcc/testsuite/gcc.target/arm/neon/vmul_nu32.c 2010-01-25 09:50:29.425686763 +0100
43696 @@ -3,7 +3,8 @@
43697
43698 /* { dg-do assemble } */
43699 /* { dg-require-effective-target arm_neon_ok } */
43700 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43701 +/* { dg-options "-save-temps -O0" } */
43702 +/* { dg-add-options arm_neon } */
43703
43704 #include "arm_neon.h"
43705
43706 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulp8.c b/gcc/testsuite/gcc.target/arm/neon/vmulp8.c
43707 --- a/gcc/testsuite/gcc.target/arm/neon/vmulp8.c 2007-07-25 14:28:31.000000000 +0200
43708 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulp8.c 2010-01-25 09:50:29.425686763 +0100
43709 @@ -3,7 +3,8 @@
43710
43711 /* { dg-do assemble } */
43712 /* { dg-require-effective-target arm_neon_ok } */
43713 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43714 +/* { dg-options "-save-temps -O0" } */
43715 +/* { dg-add-options arm_neon } */
43716
43717 #include "arm_neon.h"
43718
43719 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQf32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQf32.c
43720 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQf32.c 2007-07-25 14:28:31.000000000 +0200
43721 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQf32.c 2010-01-25 09:50:29.425686763 +0100
43722 @@ -3,7 +3,8 @@
43723
43724 /* { dg-do assemble } */
43725 /* { dg-require-effective-target arm_neon_ok } */
43726 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43727 +/* { dg-options "-save-temps -O0" } */
43728 +/* { dg-add-options arm_neon } */
43729
43730 #include "arm_neon.h"
43731
43732 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanef32.c
43733 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanef32.c 2007-07-25 14:28:31.000000000 +0200
43734 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanef32.c 2010-01-25 09:50:29.425686763 +0100
43735 @@ -3,7 +3,8 @@
43736
43737 /* { dg-do assemble } */
43738 /* { dg-require-effective-target arm_neon_ok } */
43739 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43740 +/* { dg-options "-save-temps -O0" } */
43741 +/* { dg-add-options arm_neon } */
43742
43743 #include "arm_neon.h"
43744
43745 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanes16.c
43746 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanes16.c 2007-07-25 14:28:31.000000000 +0200
43747 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanes16.c 2010-01-25 09:50:29.425686763 +0100
43748 @@ -3,7 +3,8 @@
43749
43750 /* { dg-do assemble } */
43751 /* { dg-require-effective-target arm_neon_ok } */
43752 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43753 +/* { dg-options "-save-temps -O0" } */
43754 +/* { dg-add-options arm_neon } */
43755
43756 #include "arm_neon.h"
43757
43758 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanes32.c
43759 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanes32.c 2007-07-25 14:28:31.000000000 +0200
43760 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_lanes32.c 2010-01-25 09:50:29.425686763 +0100
43761 @@ -3,7 +3,8 @@
43762
43763 /* { dg-do assemble } */
43764 /* { dg-require-effective-target arm_neon_ok } */
43765 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43766 +/* { dg-options "-save-temps -O0" } */
43767 +/* { dg-add-options arm_neon } */
43768
43769 #include "arm_neon.h"
43770
43771 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_laneu16.c
43772 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_laneu16.c 2007-07-25 14:28:31.000000000 +0200
43773 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_laneu16.c 2010-01-25 09:50:29.425686763 +0100
43774 @@ -3,7 +3,8 @@
43775
43776 /* { dg-do assemble } */
43777 /* { dg-require-effective-target arm_neon_ok } */
43778 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43779 +/* { dg-options "-save-temps -O0" } */
43780 +/* { dg-add-options arm_neon } */
43781
43782 #include "arm_neon.h"
43783
43784 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_laneu32.c
43785 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_laneu32.c 2007-07-25 14:28:31.000000000 +0200
43786 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_laneu32.c 2010-01-25 09:50:29.425686763 +0100
43787 @@ -3,7 +3,8 @@
43788
43789 /* { dg-do assemble } */
43790 /* { dg-require-effective-target arm_neon_ok } */
43791 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43792 +/* { dg-options "-save-temps -O0" } */
43793 +/* { dg-add-options arm_neon } */
43794
43795 #include "arm_neon.h"
43796
43797 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_nf32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_nf32.c
43798 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_nf32.c 2007-07-25 14:28:31.000000000 +0200
43799 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_nf32.c 2010-01-25 09:50:29.425686763 +0100
43800 @@ -3,7 +3,8 @@
43801
43802 /* { dg-do assemble } */
43803 /* { dg-require-effective-target arm_neon_ok } */
43804 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43805 +/* { dg-options "-save-temps -O0" } */
43806 +/* { dg-add-options arm_neon } */
43807
43808 #include "arm_neon.h"
43809
43810 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_ns16.c
43811 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
43812 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_ns16.c 2010-01-25 09:50:29.425686763 +0100
43813 @@ -3,7 +3,8 @@
43814
43815 /* { dg-do assemble } */
43816 /* { dg-require-effective-target arm_neon_ok } */
43817 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43818 +/* { dg-options "-save-temps -O0" } */
43819 +/* { dg-add-options arm_neon } */
43820
43821 #include "arm_neon.h"
43822
43823 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_ns32.c
43824 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
43825 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_ns32.c 2010-01-25 09:50:29.425686763 +0100
43826 @@ -3,7 +3,8 @@
43827
43828 /* { dg-do assemble } */
43829 /* { dg-require-effective-target arm_neon_ok } */
43830 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43831 +/* { dg-options "-save-temps -O0" } */
43832 +/* { dg-add-options arm_neon } */
43833
43834 #include "arm_neon.h"
43835
43836 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_nu16.c
43837 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
43838 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_nu16.c 2010-01-25 09:50:29.425686763 +0100
43839 @@ -3,7 +3,8 @@
43840
43841 /* { dg-do assemble } */
43842 /* { dg-require-effective-target arm_neon_ok } */
43843 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43844 +/* { dg-options "-save-temps -O0" } */
43845 +/* { dg-add-options arm_neon } */
43846
43847 #include "arm_neon.h"
43848
43849 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQ_nu32.c
43850 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
43851 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQ_nu32.c 2010-01-25 09:50:29.425686763 +0100
43852 @@ -3,7 +3,8 @@
43853
43854 /* { dg-do assemble } */
43855 /* { dg-require-effective-target arm_neon_ok } */
43856 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43857 +/* { dg-options "-save-temps -O0" } */
43858 +/* { dg-add-options arm_neon } */
43859
43860 #include "arm_neon.h"
43861
43862 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQp8.c b/gcc/testsuite/gcc.target/arm/neon/vmulQp8.c
43863 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQp8.c 2007-07-25 14:28:31.000000000 +0200
43864 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQp8.c 2010-01-25 09:50:29.425686763 +0100
43865 @@ -3,7 +3,8 @@
43866
43867 /* { dg-do assemble } */
43868 /* { dg-require-effective-target arm_neon_ok } */
43869 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43870 +/* { dg-options "-save-temps -O0" } */
43871 +/* { dg-add-options arm_neon } */
43872
43873 #include "arm_neon.h"
43874
43875 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQs16.c b/gcc/testsuite/gcc.target/arm/neon/vmulQs16.c
43876 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQs16.c 2007-07-25 14:28:31.000000000 +0200
43877 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQs16.c 2010-01-25 09:50:29.425686763 +0100
43878 @@ -3,7 +3,8 @@
43879
43880 /* { dg-do assemble } */
43881 /* { dg-require-effective-target arm_neon_ok } */
43882 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43883 +/* { dg-options "-save-temps -O0" } */
43884 +/* { dg-add-options arm_neon } */
43885
43886 #include "arm_neon.h"
43887
43888 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQs32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQs32.c
43889 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQs32.c 2007-07-25 14:28:31.000000000 +0200
43890 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQs32.c 2010-01-25 09:50:29.425686763 +0100
43891 @@ -3,7 +3,8 @@
43892
43893 /* { dg-do assemble } */
43894 /* { dg-require-effective-target arm_neon_ok } */
43895 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43896 +/* { dg-options "-save-temps -O0" } */
43897 +/* { dg-add-options arm_neon } */
43898
43899 #include "arm_neon.h"
43900
43901 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQs8.c b/gcc/testsuite/gcc.target/arm/neon/vmulQs8.c
43902 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQs8.c 2007-07-25 14:28:31.000000000 +0200
43903 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQs8.c 2010-01-25 09:50:29.425686763 +0100
43904 @@ -3,7 +3,8 @@
43905
43906 /* { dg-do assemble } */
43907 /* { dg-require-effective-target arm_neon_ok } */
43908 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43909 +/* { dg-options "-save-temps -O0" } */
43910 +/* { dg-add-options arm_neon } */
43911
43912 #include "arm_neon.h"
43913
43914 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQu16.c b/gcc/testsuite/gcc.target/arm/neon/vmulQu16.c
43915 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQu16.c 2007-07-25 14:28:31.000000000 +0200
43916 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQu16.c 2010-01-25 09:50:29.425686763 +0100
43917 @@ -3,7 +3,8 @@
43918
43919 /* { dg-do assemble } */
43920 /* { dg-require-effective-target arm_neon_ok } */
43921 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43922 +/* { dg-options "-save-temps -O0" } */
43923 +/* { dg-add-options arm_neon } */
43924
43925 #include "arm_neon.h"
43926
43927 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQu32.c b/gcc/testsuite/gcc.target/arm/neon/vmulQu32.c
43928 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQu32.c 2007-07-25 14:28:31.000000000 +0200
43929 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQu32.c 2010-01-25 09:50:29.425686763 +0100
43930 @@ -3,7 +3,8 @@
43931
43932 /* { dg-do assemble } */
43933 /* { dg-require-effective-target arm_neon_ok } */
43934 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43935 +/* { dg-options "-save-temps -O0" } */
43936 +/* { dg-add-options arm_neon } */
43937
43938 #include "arm_neon.h"
43939
43940 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulQu8.c b/gcc/testsuite/gcc.target/arm/neon/vmulQu8.c
43941 --- a/gcc/testsuite/gcc.target/arm/neon/vmulQu8.c 2007-07-25 14:28:31.000000000 +0200
43942 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulQu8.c 2010-01-25 09:50:29.425686763 +0100
43943 @@ -3,7 +3,8 @@
43944
43945 /* { dg-do assemble } */
43946 /* { dg-require-effective-target arm_neon_ok } */
43947 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43948 +/* { dg-options "-save-temps -O0" } */
43949 +/* { dg-add-options arm_neon } */
43950
43951 #include "arm_neon.h"
43952
43953 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmuls16.c b/gcc/testsuite/gcc.target/arm/neon/vmuls16.c
43954 --- a/gcc/testsuite/gcc.target/arm/neon/vmuls16.c 2007-07-25 14:28:31.000000000 +0200
43955 +++ b/gcc/testsuite/gcc.target/arm/neon/vmuls16.c 2010-01-25 09:50:29.425686763 +0100
43956 @@ -3,7 +3,8 @@
43957
43958 /* { dg-do assemble } */
43959 /* { dg-require-effective-target arm_neon_ok } */
43960 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43961 +/* { dg-options "-save-temps -O0" } */
43962 +/* { dg-add-options arm_neon } */
43963
43964 #include "arm_neon.h"
43965
43966 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmuls32.c b/gcc/testsuite/gcc.target/arm/neon/vmuls32.c
43967 --- a/gcc/testsuite/gcc.target/arm/neon/vmuls32.c 2007-07-25 14:28:31.000000000 +0200
43968 +++ b/gcc/testsuite/gcc.target/arm/neon/vmuls32.c 2010-01-25 09:50:29.425686763 +0100
43969 @@ -3,7 +3,8 @@
43970
43971 /* { dg-do assemble } */
43972 /* { dg-require-effective-target arm_neon_ok } */
43973 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43974 +/* { dg-options "-save-temps -O0" } */
43975 +/* { dg-add-options arm_neon } */
43976
43977 #include "arm_neon.h"
43978
43979 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmuls8.c b/gcc/testsuite/gcc.target/arm/neon/vmuls8.c
43980 --- a/gcc/testsuite/gcc.target/arm/neon/vmuls8.c 2007-07-25 14:28:31.000000000 +0200
43981 +++ b/gcc/testsuite/gcc.target/arm/neon/vmuls8.c 2010-01-25 09:50:29.425686763 +0100
43982 @@ -3,7 +3,8 @@
43983
43984 /* { dg-do assemble } */
43985 /* { dg-require-effective-target arm_neon_ok } */
43986 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
43987 +/* { dg-options "-save-temps -O0" } */
43988 +/* { dg-add-options arm_neon } */
43989
43990 #include "arm_neon.h"
43991
43992 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulu16.c b/gcc/testsuite/gcc.target/arm/neon/vmulu16.c
43993 --- a/gcc/testsuite/gcc.target/arm/neon/vmulu16.c 2007-07-25 14:28:31.000000000 +0200
43994 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulu16.c 2010-01-25 09:50:29.425686763 +0100
43995 @@ -3,7 +3,8 @@
43996
43997 /* { dg-do assemble } */
43998 /* { dg-require-effective-target arm_neon_ok } */
43999 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44000 +/* { dg-options "-save-temps -O0" } */
44001 +/* { dg-add-options arm_neon } */
44002
44003 #include "arm_neon.h"
44004
44005 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulu32.c b/gcc/testsuite/gcc.target/arm/neon/vmulu32.c
44006 --- a/gcc/testsuite/gcc.target/arm/neon/vmulu32.c 2007-07-25 14:28:31.000000000 +0200
44007 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulu32.c 2010-01-25 09:50:29.425686763 +0100
44008 @@ -3,7 +3,8 @@
44009
44010 /* { dg-do assemble } */
44011 /* { dg-require-effective-target arm_neon_ok } */
44012 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44013 +/* { dg-options "-save-temps -O0" } */
44014 +/* { dg-add-options arm_neon } */
44015
44016 #include "arm_neon.h"
44017
44018 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmulu8.c b/gcc/testsuite/gcc.target/arm/neon/vmulu8.c
44019 --- a/gcc/testsuite/gcc.target/arm/neon/vmulu8.c 2007-07-25 14:28:31.000000000 +0200
44020 +++ b/gcc/testsuite/gcc.target/arm/neon/vmulu8.c 2010-01-25 09:50:29.425686763 +0100
44021 @@ -3,7 +3,8 @@
44022
44023 /* { dg-do assemble } */
44024 /* { dg-require-effective-target arm_neon_ok } */
44025 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44026 +/* { dg-options "-save-temps -O0" } */
44027 +/* { dg-add-options arm_neon } */
44028
44029 #include "arm_neon.h"
44030
44031 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnp8.c b/gcc/testsuite/gcc.target/arm/neon/vmvnp8.c
44032 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnp8.c 2007-07-25 14:28:31.000000000 +0200
44033 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnp8.c 2010-01-25 09:50:29.425686763 +0100
44034 @@ -3,7 +3,8 @@
44035
44036 /* { dg-do assemble } */
44037 /* { dg-require-effective-target arm_neon_ok } */
44038 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44039 +/* { dg-options "-save-temps -O0" } */
44040 +/* { dg-add-options arm_neon } */
44041
44042 #include "arm_neon.h"
44043
44044 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnQp8.c b/gcc/testsuite/gcc.target/arm/neon/vmvnQp8.c
44045 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnQp8.c 2007-07-25 14:28:31.000000000 +0200
44046 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnQp8.c 2010-01-25 09:50:29.425686763 +0100
44047 @@ -3,7 +3,8 @@
44048
44049 /* { dg-do assemble } */
44050 /* { dg-require-effective-target arm_neon_ok } */
44051 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44052 +/* { dg-options "-save-temps -O0" } */
44053 +/* { dg-add-options arm_neon } */
44054
44055 #include "arm_neon.h"
44056
44057 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnQs16.c b/gcc/testsuite/gcc.target/arm/neon/vmvnQs16.c
44058 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnQs16.c 2007-07-25 14:28:31.000000000 +0200
44059 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnQs16.c 2010-01-25 09:50:29.425686763 +0100
44060 @@ -3,7 +3,8 @@
44061
44062 /* { dg-do assemble } */
44063 /* { dg-require-effective-target arm_neon_ok } */
44064 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44065 +/* { dg-options "-save-temps -O0" } */
44066 +/* { dg-add-options arm_neon } */
44067
44068 #include "arm_neon.h"
44069
44070 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnQs32.c b/gcc/testsuite/gcc.target/arm/neon/vmvnQs32.c
44071 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnQs32.c 2007-07-25 14:28:31.000000000 +0200
44072 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnQs32.c 2010-01-25 09:50:29.425686763 +0100
44073 @@ -3,7 +3,8 @@
44074
44075 /* { dg-do assemble } */
44076 /* { dg-require-effective-target arm_neon_ok } */
44077 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44078 +/* { dg-options "-save-temps -O0" } */
44079 +/* { dg-add-options arm_neon } */
44080
44081 #include "arm_neon.h"
44082
44083 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnQs8.c b/gcc/testsuite/gcc.target/arm/neon/vmvnQs8.c
44084 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnQs8.c 2007-07-25 14:28:31.000000000 +0200
44085 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnQs8.c 2010-01-25 09:50:29.425686763 +0100
44086 @@ -3,7 +3,8 @@
44087
44088 /* { dg-do assemble } */
44089 /* { dg-require-effective-target arm_neon_ok } */
44090 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44091 +/* { dg-options "-save-temps -O0" } */
44092 +/* { dg-add-options arm_neon } */
44093
44094 #include "arm_neon.h"
44095
44096 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnQu16.c b/gcc/testsuite/gcc.target/arm/neon/vmvnQu16.c
44097 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnQu16.c 2007-07-25 14:28:31.000000000 +0200
44098 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnQu16.c 2010-01-25 09:50:29.425686763 +0100
44099 @@ -3,7 +3,8 @@
44100
44101 /* { dg-do assemble } */
44102 /* { dg-require-effective-target arm_neon_ok } */
44103 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44104 +/* { dg-options "-save-temps -O0" } */
44105 +/* { dg-add-options arm_neon } */
44106
44107 #include "arm_neon.h"
44108
44109 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnQu32.c b/gcc/testsuite/gcc.target/arm/neon/vmvnQu32.c
44110 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnQu32.c 2007-07-25 14:28:31.000000000 +0200
44111 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnQu32.c 2010-01-25 09:50:29.425686763 +0100
44112 @@ -3,7 +3,8 @@
44113
44114 /* { dg-do assemble } */
44115 /* { dg-require-effective-target arm_neon_ok } */
44116 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44117 +/* { dg-options "-save-temps -O0" } */
44118 +/* { dg-add-options arm_neon } */
44119
44120 #include "arm_neon.h"
44121
44122 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnQu8.c b/gcc/testsuite/gcc.target/arm/neon/vmvnQu8.c
44123 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnQu8.c 2007-07-25 14:28:31.000000000 +0200
44124 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnQu8.c 2010-01-25 09:50:29.425686763 +0100
44125 @@ -3,7 +3,8 @@
44126
44127 /* { dg-do assemble } */
44128 /* { dg-require-effective-target arm_neon_ok } */
44129 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44130 +/* { dg-options "-save-temps -O0" } */
44131 +/* { dg-add-options arm_neon } */
44132
44133 #include "arm_neon.h"
44134
44135 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvns16.c b/gcc/testsuite/gcc.target/arm/neon/vmvns16.c
44136 --- a/gcc/testsuite/gcc.target/arm/neon/vmvns16.c 2007-07-25 14:28:31.000000000 +0200
44137 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvns16.c 2010-01-25 09:50:29.425686763 +0100
44138 @@ -3,7 +3,8 @@
44139
44140 /* { dg-do assemble } */
44141 /* { dg-require-effective-target arm_neon_ok } */
44142 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44143 +/* { dg-options "-save-temps -O0" } */
44144 +/* { dg-add-options arm_neon } */
44145
44146 #include "arm_neon.h"
44147
44148 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvns32.c b/gcc/testsuite/gcc.target/arm/neon/vmvns32.c
44149 --- a/gcc/testsuite/gcc.target/arm/neon/vmvns32.c 2007-07-25 14:28:31.000000000 +0200
44150 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvns32.c 2010-01-25 09:50:29.425686763 +0100
44151 @@ -3,7 +3,8 @@
44152
44153 /* { dg-do assemble } */
44154 /* { dg-require-effective-target arm_neon_ok } */
44155 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44156 +/* { dg-options "-save-temps -O0" } */
44157 +/* { dg-add-options arm_neon } */
44158
44159 #include "arm_neon.h"
44160
44161 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvns8.c b/gcc/testsuite/gcc.target/arm/neon/vmvns8.c
44162 --- a/gcc/testsuite/gcc.target/arm/neon/vmvns8.c 2007-07-25 14:28:31.000000000 +0200
44163 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvns8.c 2010-01-25 09:50:29.425686763 +0100
44164 @@ -3,7 +3,8 @@
44165
44166 /* { dg-do assemble } */
44167 /* { dg-require-effective-target arm_neon_ok } */
44168 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44169 +/* { dg-options "-save-temps -O0" } */
44170 +/* { dg-add-options arm_neon } */
44171
44172 #include "arm_neon.h"
44173
44174 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnu16.c b/gcc/testsuite/gcc.target/arm/neon/vmvnu16.c
44175 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnu16.c 2007-07-25 14:28:31.000000000 +0200
44176 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnu16.c 2010-01-25 09:50:29.425686763 +0100
44177 @@ -3,7 +3,8 @@
44178
44179 /* { dg-do assemble } */
44180 /* { dg-require-effective-target arm_neon_ok } */
44181 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44182 +/* { dg-options "-save-temps -O0" } */
44183 +/* { dg-add-options arm_neon } */
44184
44185 #include "arm_neon.h"
44186
44187 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnu32.c b/gcc/testsuite/gcc.target/arm/neon/vmvnu32.c
44188 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnu32.c 2007-07-25 14:28:31.000000000 +0200
44189 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnu32.c 2010-01-25 09:50:29.425686763 +0100
44190 @@ -3,7 +3,8 @@
44191
44192 /* { dg-do assemble } */
44193 /* { dg-require-effective-target arm_neon_ok } */
44194 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44195 +/* { dg-options "-save-temps -O0" } */
44196 +/* { dg-add-options arm_neon } */
44197
44198 #include "arm_neon.h"
44199
44200 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vmvnu8.c b/gcc/testsuite/gcc.target/arm/neon/vmvnu8.c
44201 --- a/gcc/testsuite/gcc.target/arm/neon/vmvnu8.c 2007-07-25 14:28:31.000000000 +0200
44202 +++ b/gcc/testsuite/gcc.target/arm/neon/vmvnu8.c 2010-01-25 09:50:29.425686763 +0100
44203 @@ -3,7 +3,8 @@
44204
44205 /* { dg-do assemble } */
44206 /* { dg-require-effective-target arm_neon_ok } */
44207 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44208 +/* { dg-options "-save-temps -O0" } */
44209 +/* { dg-add-options arm_neon } */
44210
44211 #include "arm_neon.h"
44212
44213 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vnegf32.c b/gcc/testsuite/gcc.target/arm/neon/vnegf32.c
44214 --- a/gcc/testsuite/gcc.target/arm/neon/vnegf32.c 2007-07-25 14:28:31.000000000 +0200
44215 +++ b/gcc/testsuite/gcc.target/arm/neon/vnegf32.c 2010-01-25 09:50:29.425686763 +0100
44216 @@ -3,7 +3,8 @@
44217
44218 /* { dg-do assemble } */
44219 /* { dg-require-effective-target arm_neon_ok } */
44220 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44221 +/* { dg-options "-save-temps -O0" } */
44222 +/* { dg-add-options arm_neon } */
44223
44224 #include "arm_neon.h"
44225
44226 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vnegQf32.c b/gcc/testsuite/gcc.target/arm/neon/vnegQf32.c
44227 --- a/gcc/testsuite/gcc.target/arm/neon/vnegQf32.c 2007-07-25 14:28:31.000000000 +0200
44228 +++ b/gcc/testsuite/gcc.target/arm/neon/vnegQf32.c 2010-01-25 09:50:29.425686763 +0100
44229 @@ -3,7 +3,8 @@
44230
44231 /* { dg-do assemble } */
44232 /* { dg-require-effective-target arm_neon_ok } */
44233 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44234 +/* { dg-options "-save-temps -O0" } */
44235 +/* { dg-add-options arm_neon } */
44236
44237 #include "arm_neon.h"
44238
44239 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vnegQs16.c b/gcc/testsuite/gcc.target/arm/neon/vnegQs16.c
44240 --- a/gcc/testsuite/gcc.target/arm/neon/vnegQs16.c 2007-07-25 14:28:31.000000000 +0200
44241 +++ b/gcc/testsuite/gcc.target/arm/neon/vnegQs16.c 2010-01-25 09:50:29.425686763 +0100
44242 @@ -3,7 +3,8 @@
44243
44244 /* { dg-do assemble } */
44245 /* { dg-require-effective-target arm_neon_ok } */
44246 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44247 +/* { dg-options "-save-temps -O0" } */
44248 +/* { dg-add-options arm_neon } */
44249
44250 #include "arm_neon.h"
44251
44252 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vnegQs32.c b/gcc/testsuite/gcc.target/arm/neon/vnegQs32.c
44253 --- a/gcc/testsuite/gcc.target/arm/neon/vnegQs32.c 2007-07-25 14:28:31.000000000 +0200
44254 +++ b/gcc/testsuite/gcc.target/arm/neon/vnegQs32.c 2010-01-25 09:50:29.425686763 +0100
44255 @@ -3,7 +3,8 @@
44256
44257 /* { dg-do assemble } */
44258 /* { dg-require-effective-target arm_neon_ok } */
44259 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44260 +/* { dg-options "-save-temps -O0" } */
44261 +/* { dg-add-options arm_neon } */
44262
44263 #include "arm_neon.h"
44264
44265 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vnegQs8.c b/gcc/testsuite/gcc.target/arm/neon/vnegQs8.c
44266 --- a/gcc/testsuite/gcc.target/arm/neon/vnegQs8.c 2007-07-25 14:28:31.000000000 +0200
44267 +++ b/gcc/testsuite/gcc.target/arm/neon/vnegQs8.c 2010-01-25 09:50:29.425686763 +0100
44268 @@ -3,7 +3,8 @@
44269
44270 /* { dg-do assemble } */
44271 /* { dg-require-effective-target arm_neon_ok } */
44272 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44273 +/* { dg-options "-save-temps -O0" } */
44274 +/* { dg-add-options arm_neon } */
44275
44276 #include "arm_neon.h"
44277
44278 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vnegs16.c b/gcc/testsuite/gcc.target/arm/neon/vnegs16.c
44279 --- a/gcc/testsuite/gcc.target/arm/neon/vnegs16.c 2007-07-25 14:28:31.000000000 +0200
44280 +++ b/gcc/testsuite/gcc.target/arm/neon/vnegs16.c 2010-01-25 09:50:29.425686763 +0100
44281 @@ -3,7 +3,8 @@
44282
44283 /* { dg-do assemble } */
44284 /* { dg-require-effective-target arm_neon_ok } */
44285 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44286 +/* { dg-options "-save-temps -O0" } */
44287 +/* { dg-add-options arm_neon } */
44288
44289 #include "arm_neon.h"
44290
44291 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vnegs32.c b/gcc/testsuite/gcc.target/arm/neon/vnegs32.c
44292 --- a/gcc/testsuite/gcc.target/arm/neon/vnegs32.c 2007-07-25 14:28:31.000000000 +0200
44293 +++ b/gcc/testsuite/gcc.target/arm/neon/vnegs32.c 2010-01-25 09:50:29.425686763 +0100
44294 @@ -3,7 +3,8 @@
44295
44296 /* { dg-do assemble } */
44297 /* { dg-require-effective-target arm_neon_ok } */
44298 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44299 +/* { dg-options "-save-temps -O0" } */
44300 +/* { dg-add-options arm_neon } */
44301
44302 #include "arm_neon.h"
44303
44304 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vnegs8.c b/gcc/testsuite/gcc.target/arm/neon/vnegs8.c
44305 --- a/gcc/testsuite/gcc.target/arm/neon/vnegs8.c 2007-07-25 14:28:31.000000000 +0200
44306 +++ b/gcc/testsuite/gcc.target/arm/neon/vnegs8.c 2010-01-25 09:50:29.425686763 +0100
44307 @@ -3,7 +3,8 @@
44308
44309 /* { dg-do assemble } */
44310 /* { dg-require-effective-target arm_neon_ok } */
44311 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44312 +/* { dg-options "-save-temps -O0" } */
44313 +/* { dg-add-options arm_neon } */
44314
44315 #include "arm_neon.h"
44316
44317 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornQs16.c b/gcc/testsuite/gcc.target/arm/neon/vornQs16.c
44318 --- a/gcc/testsuite/gcc.target/arm/neon/vornQs16.c 2007-07-25 14:28:31.000000000 +0200
44319 +++ b/gcc/testsuite/gcc.target/arm/neon/vornQs16.c 2010-01-25 09:50:29.425686763 +0100
44320 @@ -3,7 +3,8 @@
44321
44322 /* { dg-do assemble } */
44323 /* { dg-require-effective-target arm_neon_ok } */
44324 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44325 +/* { dg-options "-save-temps -O0" } */
44326 +/* { dg-add-options arm_neon } */
44327
44328 #include "arm_neon.h"
44329
44330 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornQs32.c b/gcc/testsuite/gcc.target/arm/neon/vornQs32.c
44331 --- a/gcc/testsuite/gcc.target/arm/neon/vornQs32.c 2007-07-25 14:28:31.000000000 +0200
44332 +++ b/gcc/testsuite/gcc.target/arm/neon/vornQs32.c 2010-01-25 09:50:29.425686763 +0100
44333 @@ -3,7 +3,8 @@
44334
44335 /* { dg-do assemble } */
44336 /* { dg-require-effective-target arm_neon_ok } */
44337 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44338 +/* { dg-options "-save-temps -O0" } */
44339 +/* { dg-add-options arm_neon } */
44340
44341 #include "arm_neon.h"
44342
44343 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornQs64.c b/gcc/testsuite/gcc.target/arm/neon/vornQs64.c
44344 --- a/gcc/testsuite/gcc.target/arm/neon/vornQs64.c 2007-07-25 14:28:31.000000000 +0200
44345 +++ b/gcc/testsuite/gcc.target/arm/neon/vornQs64.c 2010-01-25 09:50:29.425686763 +0100
44346 @@ -3,7 +3,8 @@
44347
44348 /* { dg-do assemble } */
44349 /* { dg-require-effective-target arm_neon_ok } */
44350 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44351 +/* { dg-options "-save-temps -O0" } */
44352 +/* { dg-add-options arm_neon } */
44353
44354 #include "arm_neon.h"
44355
44356 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornQs8.c b/gcc/testsuite/gcc.target/arm/neon/vornQs8.c
44357 --- a/gcc/testsuite/gcc.target/arm/neon/vornQs8.c 2007-07-25 14:28:31.000000000 +0200
44358 +++ b/gcc/testsuite/gcc.target/arm/neon/vornQs8.c 2010-01-25 09:50:29.425686763 +0100
44359 @@ -3,7 +3,8 @@
44360
44361 /* { dg-do assemble } */
44362 /* { dg-require-effective-target arm_neon_ok } */
44363 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44364 +/* { dg-options "-save-temps -O0" } */
44365 +/* { dg-add-options arm_neon } */
44366
44367 #include "arm_neon.h"
44368
44369 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornQu16.c b/gcc/testsuite/gcc.target/arm/neon/vornQu16.c
44370 --- a/gcc/testsuite/gcc.target/arm/neon/vornQu16.c 2007-07-25 14:28:31.000000000 +0200
44371 +++ b/gcc/testsuite/gcc.target/arm/neon/vornQu16.c 2010-01-25 09:50:29.425686763 +0100
44372 @@ -3,7 +3,8 @@
44373
44374 /* { dg-do assemble } */
44375 /* { dg-require-effective-target arm_neon_ok } */
44376 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44377 +/* { dg-options "-save-temps -O0" } */
44378 +/* { dg-add-options arm_neon } */
44379
44380 #include "arm_neon.h"
44381
44382 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornQu32.c b/gcc/testsuite/gcc.target/arm/neon/vornQu32.c
44383 --- a/gcc/testsuite/gcc.target/arm/neon/vornQu32.c 2007-07-25 14:28:31.000000000 +0200
44384 +++ b/gcc/testsuite/gcc.target/arm/neon/vornQu32.c 2010-01-25 09:50:29.425686763 +0100
44385 @@ -3,7 +3,8 @@
44386
44387 /* { dg-do assemble } */
44388 /* { dg-require-effective-target arm_neon_ok } */
44389 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44390 +/* { dg-options "-save-temps -O0" } */
44391 +/* { dg-add-options arm_neon } */
44392
44393 #include "arm_neon.h"
44394
44395 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornQu64.c b/gcc/testsuite/gcc.target/arm/neon/vornQu64.c
44396 --- a/gcc/testsuite/gcc.target/arm/neon/vornQu64.c 2007-07-25 14:28:31.000000000 +0200
44397 +++ b/gcc/testsuite/gcc.target/arm/neon/vornQu64.c 2010-01-25 09:50:29.425686763 +0100
44398 @@ -3,7 +3,8 @@
44399
44400 /* { dg-do assemble } */
44401 /* { dg-require-effective-target arm_neon_ok } */
44402 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44403 +/* { dg-options "-save-temps -O0" } */
44404 +/* { dg-add-options arm_neon } */
44405
44406 #include "arm_neon.h"
44407
44408 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornQu8.c b/gcc/testsuite/gcc.target/arm/neon/vornQu8.c
44409 --- a/gcc/testsuite/gcc.target/arm/neon/vornQu8.c 2007-07-25 14:28:31.000000000 +0200
44410 +++ b/gcc/testsuite/gcc.target/arm/neon/vornQu8.c 2010-01-25 09:50:29.435686987 +0100
44411 @@ -3,7 +3,8 @@
44412
44413 /* { dg-do assemble } */
44414 /* { dg-require-effective-target arm_neon_ok } */
44415 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44416 +/* { dg-options "-save-temps -O0" } */
44417 +/* { dg-add-options arm_neon } */
44418
44419 #include "arm_neon.h"
44420
44421 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorns16.c b/gcc/testsuite/gcc.target/arm/neon/vorns16.c
44422 --- a/gcc/testsuite/gcc.target/arm/neon/vorns16.c 2007-07-25 14:28:31.000000000 +0200
44423 +++ b/gcc/testsuite/gcc.target/arm/neon/vorns16.c 2010-01-25 09:50:29.435686987 +0100
44424 @@ -3,7 +3,8 @@
44425
44426 /* { dg-do assemble } */
44427 /* { dg-require-effective-target arm_neon_ok } */
44428 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44429 +/* { dg-options "-save-temps -O0" } */
44430 +/* { dg-add-options arm_neon } */
44431
44432 #include "arm_neon.h"
44433
44434 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorns32.c b/gcc/testsuite/gcc.target/arm/neon/vorns32.c
44435 --- a/gcc/testsuite/gcc.target/arm/neon/vorns32.c 2007-07-25 14:28:31.000000000 +0200
44436 +++ b/gcc/testsuite/gcc.target/arm/neon/vorns32.c 2010-01-25 09:50:29.435686987 +0100
44437 @@ -3,7 +3,8 @@
44438
44439 /* { dg-do assemble } */
44440 /* { dg-require-effective-target arm_neon_ok } */
44441 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44442 +/* { dg-options "-save-temps -O0" } */
44443 +/* { dg-add-options arm_neon } */
44444
44445 #include "arm_neon.h"
44446
44447 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorns64.c b/gcc/testsuite/gcc.target/arm/neon/vorns64.c
44448 --- a/gcc/testsuite/gcc.target/arm/neon/vorns64.c 2007-07-25 14:28:31.000000000 +0200
44449 +++ b/gcc/testsuite/gcc.target/arm/neon/vorns64.c 2010-01-25 09:50:29.435686987 +0100
44450 @@ -3,7 +3,8 @@
44451
44452 /* { dg-do assemble } */
44453 /* { dg-require-effective-target arm_neon_ok } */
44454 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44455 +/* { dg-options "-save-temps -O0" } */
44456 +/* { dg-add-options arm_neon } */
44457
44458 #include "arm_neon.h"
44459
44460 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorns8.c b/gcc/testsuite/gcc.target/arm/neon/vorns8.c
44461 --- a/gcc/testsuite/gcc.target/arm/neon/vorns8.c 2007-07-25 14:28:31.000000000 +0200
44462 +++ b/gcc/testsuite/gcc.target/arm/neon/vorns8.c 2010-01-25 09:50:29.435686987 +0100
44463 @@ -3,7 +3,8 @@
44464
44465 /* { dg-do assemble } */
44466 /* { dg-require-effective-target arm_neon_ok } */
44467 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44468 +/* { dg-options "-save-temps -O0" } */
44469 +/* { dg-add-options arm_neon } */
44470
44471 #include "arm_neon.h"
44472
44473 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornu16.c b/gcc/testsuite/gcc.target/arm/neon/vornu16.c
44474 --- a/gcc/testsuite/gcc.target/arm/neon/vornu16.c 2007-07-25 14:28:31.000000000 +0200
44475 +++ b/gcc/testsuite/gcc.target/arm/neon/vornu16.c 2010-01-25 09:50:29.435686987 +0100
44476 @@ -3,7 +3,8 @@
44477
44478 /* { dg-do assemble } */
44479 /* { dg-require-effective-target arm_neon_ok } */
44480 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44481 +/* { dg-options "-save-temps -O0" } */
44482 +/* { dg-add-options arm_neon } */
44483
44484 #include "arm_neon.h"
44485
44486 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornu32.c b/gcc/testsuite/gcc.target/arm/neon/vornu32.c
44487 --- a/gcc/testsuite/gcc.target/arm/neon/vornu32.c 2007-07-25 14:28:31.000000000 +0200
44488 +++ b/gcc/testsuite/gcc.target/arm/neon/vornu32.c 2010-01-25 09:50:29.435686987 +0100
44489 @@ -3,7 +3,8 @@
44490
44491 /* { dg-do assemble } */
44492 /* { dg-require-effective-target arm_neon_ok } */
44493 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44494 +/* { dg-options "-save-temps -O0" } */
44495 +/* { dg-add-options arm_neon } */
44496
44497 #include "arm_neon.h"
44498
44499 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornu64.c b/gcc/testsuite/gcc.target/arm/neon/vornu64.c
44500 --- a/gcc/testsuite/gcc.target/arm/neon/vornu64.c 2007-07-25 14:28:31.000000000 +0200
44501 +++ b/gcc/testsuite/gcc.target/arm/neon/vornu64.c 2010-01-25 09:50:29.435686987 +0100
44502 @@ -3,7 +3,8 @@
44503
44504 /* { dg-do assemble } */
44505 /* { dg-require-effective-target arm_neon_ok } */
44506 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44507 +/* { dg-options "-save-temps -O0" } */
44508 +/* { dg-add-options arm_neon } */
44509
44510 #include "arm_neon.h"
44511
44512 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vornu8.c b/gcc/testsuite/gcc.target/arm/neon/vornu8.c
44513 --- a/gcc/testsuite/gcc.target/arm/neon/vornu8.c 2007-07-25 14:28:31.000000000 +0200
44514 +++ b/gcc/testsuite/gcc.target/arm/neon/vornu8.c 2010-01-25 09:50:29.435686987 +0100
44515 @@ -3,7 +3,8 @@
44516
44517 /* { dg-do assemble } */
44518 /* { dg-require-effective-target arm_neon_ok } */
44519 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44520 +/* { dg-options "-save-temps -O0" } */
44521 +/* { dg-add-options arm_neon } */
44522
44523 #include "arm_neon.h"
44524
44525 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrQs16.c b/gcc/testsuite/gcc.target/arm/neon/vorrQs16.c
44526 --- a/gcc/testsuite/gcc.target/arm/neon/vorrQs16.c 2007-07-25 14:28:31.000000000 +0200
44527 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrQs16.c 2010-01-25 09:50:29.435686987 +0100
44528 @@ -3,7 +3,8 @@
44529
44530 /* { dg-do assemble } */
44531 /* { dg-require-effective-target arm_neon_ok } */
44532 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44533 +/* { dg-options "-save-temps -O0" } */
44534 +/* { dg-add-options arm_neon } */
44535
44536 #include "arm_neon.h"
44537
44538 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrQs32.c b/gcc/testsuite/gcc.target/arm/neon/vorrQs32.c
44539 --- a/gcc/testsuite/gcc.target/arm/neon/vorrQs32.c 2007-07-25 14:28:31.000000000 +0200
44540 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrQs32.c 2010-01-25 09:50:29.435686987 +0100
44541 @@ -3,7 +3,8 @@
44542
44543 /* { dg-do assemble } */
44544 /* { dg-require-effective-target arm_neon_ok } */
44545 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44546 +/* { dg-options "-save-temps -O0" } */
44547 +/* { dg-add-options arm_neon } */
44548
44549 #include "arm_neon.h"
44550
44551 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrQs64.c b/gcc/testsuite/gcc.target/arm/neon/vorrQs64.c
44552 --- a/gcc/testsuite/gcc.target/arm/neon/vorrQs64.c 2007-07-25 14:28:31.000000000 +0200
44553 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrQs64.c 2010-01-25 09:50:29.435686987 +0100
44554 @@ -3,7 +3,8 @@
44555
44556 /* { dg-do assemble } */
44557 /* { dg-require-effective-target arm_neon_ok } */
44558 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44559 +/* { dg-options "-save-temps -O0" } */
44560 +/* { dg-add-options arm_neon } */
44561
44562 #include "arm_neon.h"
44563
44564 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrQs8.c b/gcc/testsuite/gcc.target/arm/neon/vorrQs8.c
44565 --- a/gcc/testsuite/gcc.target/arm/neon/vorrQs8.c 2007-07-25 14:28:31.000000000 +0200
44566 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrQs8.c 2010-01-25 09:50:29.435686987 +0100
44567 @@ -3,7 +3,8 @@
44568
44569 /* { dg-do assemble } */
44570 /* { dg-require-effective-target arm_neon_ok } */
44571 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44572 +/* { dg-options "-save-temps -O0" } */
44573 +/* { dg-add-options arm_neon } */
44574
44575 #include "arm_neon.h"
44576
44577 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrQu16.c b/gcc/testsuite/gcc.target/arm/neon/vorrQu16.c
44578 --- a/gcc/testsuite/gcc.target/arm/neon/vorrQu16.c 2007-07-25 14:28:31.000000000 +0200
44579 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrQu16.c 2010-01-25 09:50:29.435686987 +0100
44580 @@ -3,7 +3,8 @@
44581
44582 /* { dg-do assemble } */
44583 /* { dg-require-effective-target arm_neon_ok } */
44584 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44585 +/* { dg-options "-save-temps -O0" } */
44586 +/* { dg-add-options arm_neon } */
44587
44588 #include "arm_neon.h"
44589
44590 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrQu32.c b/gcc/testsuite/gcc.target/arm/neon/vorrQu32.c
44591 --- a/gcc/testsuite/gcc.target/arm/neon/vorrQu32.c 2007-07-25 14:28:31.000000000 +0200
44592 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrQu32.c 2010-01-25 09:50:29.435686987 +0100
44593 @@ -3,7 +3,8 @@
44594
44595 /* { dg-do assemble } */
44596 /* { dg-require-effective-target arm_neon_ok } */
44597 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44598 +/* { dg-options "-save-temps -O0" } */
44599 +/* { dg-add-options arm_neon } */
44600
44601 #include "arm_neon.h"
44602
44603 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrQu64.c b/gcc/testsuite/gcc.target/arm/neon/vorrQu64.c
44604 --- a/gcc/testsuite/gcc.target/arm/neon/vorrQu64.c 2007-07-25 14:28:31.000000000 +0200
44605 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrQu64.c 2010-01-25 09:50:29.435686987 +0100
44606 @@ -3,7 +3,8 @@
44607
44608 /* { dg-do assemble } */
44609 /* { dg-require-effective-target arm_neon_ok } */
44610 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44611 +/* { dg-options "-save-temps -O0" } */
44612 +/* { dg-add-options arm_neon } */
44613
44614 #include "arm_neon.h"
44615
44616 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrQu8.c b/gcc/testsuite/gcc.target/arm/neon/vorrQu8.c
44617 --- a/gcc/testsuite/gcc.target/arm/neon/vorrQu8.c 2007-07-25 14:28:31.000000000 +0200
44618 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrQu8.c 2010-01-25 09:50:29.435686987 +0100
44619 @@ -3,7 +3,8 @@
44620
44621 /* { dg-do assemble } */
44622 /* { dg-require-effective-target arm_neon_ok } */
44623 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44624 +/* { dg-options "-save-temps -O0" } */
44625 +/* { dg-add-options arm_neon } */
44626
44627 #include "arm_neon.h"
44628
44629 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrs16.c b/gcc/testsuite/gcc.target/arm/neon/vorrs16.c
44630 --- a/gcc/testsuite/gcc.target/arm/neon/vorrs16.c 2007-07-25 14:28:31.000000000 +0200
44631 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrs16.c 2010-01-25 09:50:29.435686987 +0100
44632 @@ -3,7 +3,8 @@
44633
44634 /* { dg-do assemble } */
44635 /* { dg-require-effective-target arm_neon_ok } */
44636 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44637 +/* { dg-options "-save-temps -O0" } */
44638 +/* { dg-add-options arm_neon } */
44639
44640 #include "arm_neon.h"
44641
44642 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrs32.c b/gcc/testsuite/gcc.target/arm/neon/vorrs32.c
44643 --- a/gcc/testsuite/gcc.target/arm/neon/vorrs32.c 2007-07-25 14:28:31.000000000 +0200
44644 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrs32.c 2010-01-25 09:50:29.435686987 +0100
44645 @@ -3,7 +3,8 @@
44646
44647 /* { dg-do assemble } */
44648 /* { dg-require-effective-target arm_neon_ok } */
44649 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44650 +/* { dg-options "-save-temps -O0" } */
44651 +/* { dg-add-options arm_neon } */
44652
44653 #include "arm_neon.h"
44654
44655 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrs64.c b/gcc/testsuite/gcc.target/arm/neon/vorrs64.c
44656 --- a/gcc/testsuite/gcc.target/arm/neon/vorrs64.c 2007-07-25 14:28:31.000000000 +0200
44657 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrs64.c 2010-01-25 09:50:29.435686987 +0100
44658 @@ -3,7 +3,8 @@
44659
44660 /* { dg-do assemble } */
44661 /* { dg-require-effective-target arm_neon_ok } */
44662 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44663 +/* { dg-options "-save-temps -O0" } */
44664 +/* { dg-add-options arm_neon } */
44665
44666 #include "arm_neon.h"
44667
44668 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorrs8.c b/gcc/testsuite/gcc.target/arm/neon/vorrs8.c
44669 --- a/gcc/testsuite/gcc.target/arm/neon/vorrs8.c 2007-07-25 14:28:31.000000000 +0200
44670 +++ b/gcc/testsuite/gcc.target/arm/neon/vorrs8.c 2010-01-25 09:50:29.435686987 +0100
44671 @@ -3,7 +3,8 @@
44672
44673 /* { dg-do assemble } */
44674 /* { dg-require-effective-target arm_neon_ok } */
44675 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44676 +/* { dg-options "-save-temps -O0" } */
44677 +/* { dg-add-options arm_neon } */
44678
44679 #include "arm_neon.h"
44680
44681 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorru16.c b/gcc/testsuite/gcc.target/arm/neon/vorru16.c
44682 --- a/gcc/testsuite/gcc.target/arm/neon/vorru16.c 2007-07-25 14:28:31.000000000 +0200
44683 +++ b/gcc/testsuite/gcc.target/arm/neon/vorru16.c 2010-01-25 09:50:29.435686987 +0100
44684 @@ -3,7 +3,8 @@
44685
44686 /* { dg-do assemble } */
44687 /* { dg-require-effective-target arm_neon_ok } */
44688 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44689 +/* { dg-options "-save-temps -O0" } */
44690 +/* { dg-add-options arm_neon } */
44691
44692 #include "arm_neon.h"
44693
44694 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorru32.c b/gcc/testsuite/gcc.target/arm/neon/vorru32.c
44695 --- a/gcc/testsuite/gcc.target/arm/neon/vorru32.c 2007-07-25 14:28:31.000000000 +0200
44696 +++ b/gcc/testsuite/gcc.target/arm/neon/vorru32.c 2010-01-25 09:50:29.435686987 +0100
44697 @@ -3,7 +3,8 @@
44698
44699 /* { dg-do assemble } */
44700 /* { dg-require-effective-target arm_neon_ok } */
44701 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44702 +/* { dg-options "-save-temps -O0" } */
44703 +/* { dg-add-options arm_neon } */
44704
44705 #include "arm_neon.h"
44706
44707 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorru64.c b/gcc/testsuite/gcc.target/arm/neon/vorru64.c
44708 --- a/gcc/testsuite/gcc.target/arm/neon/vorru64.c 2007-07-25 14:28:31.000000000 +0200
44709 +++ b/gcc/testsuite/gcc.target/arm/neon/vorru64.c 2010-01-25 09:50:29.435686987 +0100
44710 @@ -3,7 +3,8 @@
44711
44712 /* { dg-do assemble } */
44713 /* { dg-require-effective-target arm_neon_ok } */
44714 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44715 +/* { dg-options "-save-temps -O0" } */
44716 +/* { dg-add-options arm_neon } */
44717
44718 #include "arm_neon.h"
44719
44720 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vorru8.c b/gcc/testsuite/gcc.target/arm/neon/vorru8.c
44721 --- a/gcc/testsuite/gcc.target/arm/neon/vorru8.c 2007-07-25 14:28:31.000000000 +0200
44722 +++ b/gcc/testsuite/gcc.target/arm/neon/vorru8.c 2010-01-25 09:50:29.435686987 +0100
44723 @@ -3,7 +3,8 @@
44724
44725 /* { dg-do assemble } */
44726 /* { dg-require-effective-target arm_neon_ok } */
44727 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44728 +/* { dg-options "-save-temps -O0" } */
44729 +/* { dg-add-options arm_neon } */
44730
44731 #include "arm_neon.h"
44732
44733 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalQs16.c b/gcc/testsuite/gcc.target/arm/neon/vpadalQs16.c
44734 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalQs16.c 2007-07-25 14:28:31.000000000 +0200
44735 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalQs16.c 2010-01-25 09:50:29.435686987 +0100
44736 @@ -3,7 +3,8 @@
44737
44738 /* { dg-do assemble } */
44739 /* { dg-require-effective-target arm_neon_ok } */
44740 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44741 +/* { dg-options "-save-temps -O0" } */
44742 +/* { dg-add-options arm_neon } */
44743
44744 #include "arm_neon.h"
44745
44746 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalQs32.c b/gcc/testsuite/gcc.target/arm/neon/vpadalQs32.c
44747 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalQs32.c 2007-07-25 14:28:31.000000000 +0200
44748 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalQs32.c 2010-01-25 09:50:29.435686987 +0100
44749 @@ -3,7 +3,8 @@
44750
44751 /* { dg-do assemble } */
44752 /* { dg-require-effective-target arm_neon_ok } */
44753 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44754 +/* { dg-options "-save-temps -O0" } */
44755 +/* { dg-add-options arm_neon } */
44756
44757 #include "arm_neon.h"
44758
44759 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalQs8.c b/gcc/testsuite/gcc.target/arm/neon/vpadalQs8.c
44760 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalQs8.c 2007-07-25 14:28:31.000000000 +0200
44761 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalQs8.c 2010-01-25 09:50:29.435686987 +0100
44762 @@ -3,7 +3,8 @@
44763
44764 /* { dg-do assemble } */
44765 /* { dg-require-effective-target arm_neon_ok } */
44766 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44767 +/* { dg-options "-save-temps -O0" } */
44768 +/* { dg-add-options arm_neon } */
44769
44770 #include "arm_neon.h"
44771
44772 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalQu16.c b/gcc/testsuite/gcc.target/arm/neon/vpadalQu16.c
44773 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalQu16.c 2007-07-25 14:28:31.000000000 +0200
44774 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalQu16.c 2010-01-25 09:50:29.435686987 +0100
44775 @@ -3,7 +3,8 @@
44776
44777 /* { dg-do assemble } */
44778 /* { dg-require-effective-target arm_neon_ok } */
44779 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44780 +/* { dg-options "-save-temps -O0" } */
44781 +/* { dg-add-options arm_neon } */
44782
44783 #include "arm_neon.h"
44784
44785 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalQu32.c b/gcc/testsuite/gcc.target/arm/neon/vpadalQu32.c
44786 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalQu32.c 2007-07-25 14:28:31.000000000 +0200
44787 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalQu32.c 2010-01-25 09:50:29.435686987 +0100
44788 @@ -3,7 +3,8 @@
44789
44790 /* { dg-do assemble } */
44791 /* { dg-require-effective-target arm_neon_ok } */
44792 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44793 +/* { dg-options "-save-temps -O0" } */
44794 +/* { dg-add-options arm_neon } */
44795
44796 #include "arm_neon.h"
44797
44798 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalQu8.c b/gcc/testsuite/gcc.target/arm/neon/vpadalQu8.c
44799 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalQu8.c 2007-07-25 14:28:31.000000000 +0200
44800 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalQu8.c 2010-01-25 09:50:29.435686987 +0100
44801 @@ -3,7 +3,8 @@
44802
44803 /* { dg-do assemble } */
44804 /* { dg-require-effective-target arm_neon_ok } */
44805 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44806 +/* { dg-options "-save-temps -O0" } */
44807 +/* { dg-add-options arm_neon } */
44808
44809 #include "arm_neon.h"
44810
44811 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadals16.c b/gcc/testsuite/gcc.target/arm/neon/vpadals16.c
44812 --- a/gcc/testsuite/gcc.target/arm/neon/vpadals16.c 2007-07-25 14:28:31.000000000 +0200
44813 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadals16.c 2010-01-25 09:50:29.435686987 +0100
44814 @@ -3,7 +3,8 @@
44815
44816 /* { dg-do assemble } */
44817 /* { dg-require-effective-target arm_neon_ok } */
44818 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44819 +/* { dg-options "-save-temps -O0" } */
44820 +/* { dg-add-options arm_neon } */
44821
44822 #include "arm_neon.h"
44823
44824 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadals32.c b/gcc/testsuite/gcc.target/arm/neon/vpadals32.c
44825 --- a/gcc/testsuite/gcc.target/arm/neon/vpadals32.c 2007-07-25 14:28:31.000000000 +0200
44826 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadals32.c 2010-01-25 09:50:29.435686987 +0100
44827 @@ -3,7 +3,8 @@
44828
44829 /* { dg-do assemble } */
44830 /* { dg-require-effective-target arm_neon_ok } */
44831 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44832 +/* { dg-options "-save-temps -O0" } */
44833 +/* { dg-add-options arm_neon } */
44834
44835 #include "arm_neon.h"
44836
44837 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadals8.c b/gcc/testsuite/gcc.target/arm/neon/vpadals8.c
44838 --- a/gcc/testsuite/gcc.target/arm/neon/vpadals8.c 2007-07-25 14:28:31.000000000 +0200
44839 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadals8.c 2010-01-25 09:50:29.435686987 +0100
44840 @@ -3,7 +3,8 @@
44841
44842 /* { dg-do assemble } */
44843 /* { dg-require-effective-target arm_neon_ok } */
44844 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44845 +/* { dg-options "-save-temps -O0" } */
44846 +/* { dg-add-options arm_neon } */
44847
44848 #include "arm_neon.h"
44849
44850 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalu16.c b/gcc/testsuite/gcc.target/arm/neon/vpadalu16.c
44851 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalu16.c 2007-07-25 14:28:31.000000000 +0200
44852 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalu16.c 2010-01-25 09:50:29.435686987 +0100
44853 @@ -3,7 +3,8 @@
44854
44855 /* { dg-do assemble } */
44856 /* { dg-require-effective-target arm_neon_ok } */
44857 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44858 +/* { dg-options "-save-temps -O0" } */
44859 +/* { dg-add-options arm_neon } */
44860
44861 #include "arm_neon.h"
44862
44863 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalu32.c b/gcc/testsuite/gcc.target/arm/neon/vpadalu32.c
44864 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalu32.c 2007-07-25 14:28:31.000000000 +0200
44865 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalu32.c 2010-01-25 09:50:29.435686987 +0100
44866 @@ -3,7 +3,8 @@
44867
44868 /* { dg-do assemble } */
44869 /* { dg-require-effective-target arm_neon_ok } */
44870 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44871 +/* { dg-options "-save-temps -O0" } */
44872 +/* { dg-add-options arm_neon } */
44873
44874 #include "arm_neon.h"
44875
44876 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadalu8.c b/gcc/testsuite/gcc.target/arm/neon/vpadalu8.c
44877 --- a/gcc/testsuite/gcc.target/arm/neon/vpadalu8.c 2007-07-25 14:28:31.000000000 +0200
44878 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadalu8.c 2010-01-25 09:50:29.435686987 +0100
44879 @@ -3,7 +3,8 @@
44880
44881 /* { dg-do assemble } */
44882 /* { dg-require-effective-target arm_neon_ok } */
44883 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44884 +/* { dg-options "-save-temps -O0" } */
44885 +/* { dg-add-options arm_neon } */
44886
44887 #include "arm_neon.h"
44888
44889 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddf32.c b/gcc/testsuite/gcc.target/arm/neon/vpaddf32.c
44890 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddf32.c 2007-07-25 14:28:31.000000000 +0200
44891 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddf32.c 2010-01-25 09:50:29.435686987 +0100
44892 @@ -3,7 +3,8 @@
44893
44894 /* { dg-do assemble } */
44895 /* { dg-require-effective-target arm_neon_ok } */
44896 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44897 +/* { dg-options "-save-temps -O0" } */
44898 +/* { dg-add-options arm_neon } */
44899
44900 #include "arm_neon.h"
44901
44902 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlQs16.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlQs16.c
44903 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlQs16.c 2007-07-25 14:28:31.000000000 +0200
44904 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlQs16.c 2010-01-25 09:50:29.435686987 +0100
44905 @@ -3,7 +3,8 @@
44906
44907 /* { dg-do assemble } */
44908 /* { dg-require-effective-target arm_neon_ok } */
44909 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44910 +/* { dg-options "-save-temps -O0" } */
44911 +/* { dg-add-options arm_neon } */
44912
44913 #include "arm_neon.h"
44914
44915 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlQs32.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlQs32.c
44916 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlQs32.c 2007-07-25 14:28:31.000000000 +0200
44917 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlQs32.c 2010-01-25 09:50:29.435686987 +0100
44918 @@ -3,7 +3,8 @@
44919
44920 /* { dg-do assemble } */
44921 /* { dg-require-effective-target arm_neon_ok } */
44922 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44923 +/* { dg-options "-save-temps -O0" } */
44924 +/* { dg-add-options arm_neon } */
44925
44926 #include "arm_neon.h"
44927
44928 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlQs8.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlQs8.c
44929 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlQs8.c 2007-07-25 14:28:31.000000000 +0200
44930 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlQs8.c 2010-01-25 09:50:29.435686987 +0100
44931 @@ -3,7 +3,8 @@
44932
44933 /* { dg-do assemble } */
44934 /* { dg-require-effective-target arm_neon_ok } */
44935 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44936 +/* { dg-options "-save-temps -O0" } */
44937 +/* { dg-add-options arm_neon } */
44938
44939 #include "arm_neon.h"
44940
44941 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlQu16.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlQu16.c
44942 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlQu16.c 2007-07-25 14:28:31.000000000 +0200
44943 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlQu16.c 2010-01-25 09:50:29.435686987 +0100
44944 @@ -3,7 +3,8 @@
44945
44946 /* { dg-do assemble } */
44947 /* { dg-require-effective-target arm_neon_ok } */
44948 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44949 +/* { dg-options "-save-temps -O0" } */
44950 +/* { dg-add-options arm_neon } */
44951
44952 #include "arm_neon.h"
44953
44954 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlQu32.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlQu32.c
44955 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlQu32.c 2007-07-25 14:28:31.000000000 +0200
44956 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlQu32.c 2010-01-25 09:50:29.435686987 +0100
44957 @@ -3,7 +3,8 @@
44958
44959 /* { dg-do assemble } */
44960 /* { dg-require-effective-target arm_neon_ok } */
44961 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44962 +/* { dg-options "-save-temps -O0" } */
44963 +/* { dg-add-options arm_neon } */
44964
44965 #include "arm_neon.h"
44966
44967 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlQu8.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlQu8.c
44968 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlQu8.c 2007-07-25 14:28:31.000000000 +0200
44969 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlQu8.c 2010-01-25 09:50:29.435686987 +0100
44970 @@ -3,7 +3,8 @@
44971
44972 /* { dg-do assemble } */
44973 /* { dg-require-effective-target arm_neon_ok } */
44974 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44975 +/* { dg-options "-save-temps -O0" } */
44976 +/* { dg-add-options arm_neon } */
44977
44978 #include "arm_neon.h"
44979
44980 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddls16.c b/gcc/testsuite/gcc.target/arm/neon/vpaddls16.c
44981 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddls16.c 2007-07-25 14:28:31.000000000 +0200
44982 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddls16.c 2010-01-25 09:50:29.435686987 +0100
44983 @@ -3,7 +3,8 @@
44984
44985 /* { dg-do assemble } */
44986 /* { dg-require-effective-target arm_neon_ok } */
44987 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
44988 +/* { dg-options "-save-temps -O0" } */
44989 +/* { dg-add-options arm_neon } */
44990
44991 #include "arm_neon.h"
44992
44993 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddls32.c b/gcc/testsuite/gcc.target/arm/neon/vpaddls32.c
44994 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddls32.c 2007-07-25 14:28:31.000000000 +0200
44995 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddls32.c 2010-01-25 09:50:29.435686987 +0100
44996 @@ -3,7 +3,8 @@
44997
44998 /* { dg-do assemble } */
44999 /* { dg-require-effective-target arm_neon_ok } */
45000 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45001 +/* { dg-options "-save-temps -O0" } */
45002 +/* { dg-add-options arm_neon } */
45003
45004 #include "arm_neon.h"
45005
45006 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddls8.c b/gcc/testsuite/gcc.target/arm/neon/vpaddls8.c
45007 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddls8.c 2007-07-25 14:28:31.000000000 +0200
45008 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddls8.c 2010-01-25 09:50:29.435686987 +0100
45009 @@ -3,7 +3,8 @@
45010
45011 /* { dg-do assemble } */
45012 /* { dg-require-effective-target arm_neon_ok } */
45013 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45014 +/* { dg-options "-save-temps -O0" } */
45015 +/* { dg-add-options arm_neon } */
45016
45017 #include "arm_neon.h"
45018
45019 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlu16.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlu16.c
45020 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlu16.c 2007-07-25 14:28:31.000000000 +0200
45021 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlu16.c 2010-01-25 09:50:29.435686987 +0100
45022 @@ -3,7 +3,8 @@
45023
45024 /* { dg-do assemble } */
45025 /* { dg-require-effective-target arm_neon_ok } */
45026 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45027 +/* { dg-options "-save-temps -O0" } */
45028 +/* { dg-add-options arm_neon } */
45029
45030 #include "arm_neon.h"
45031
45032 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlu32.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlu32.c
45033 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlu32.c 2007-07-25 14:28:31.000000000 +0200
45034 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlu32.c 2010-01-25 09:50:29.435686987 +0100
45035 @@ -3,7 +3,8 @@
45036
45037 /* { dg-do assemble } */
45038 /* { dg-require-effective-target arm_neon_ok } */
45039 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45040 +/* { dg-options "-save-temps -O0" } */
45041 +/* { dg-add-options arm_neon } */
45042
45043 #include "arm_neon.h"
45044
45045 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddlu8.c b/gcc/testsuite/gcc.target/arm/neon/vpaddlu8.c
45046 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddlu8.c 2007-07-25 14:28:31.000000000 +0200
45047 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddlu8.c 2010-01-25 09:50:29.435686987 +0100
45048 @@ -3,7 +3,8 @@
45049
45050 /* { dg-do assemble } */
45051 /* { dg-require-effective-target arm_neon_ok } */
45052 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45053 +/* { dg-options "-save-temps -O0" } */
45054 +/* { dg-add-options arm_neon } */
45055
45056 #include "arm_neon.h"
45057
45058 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadds16.c b/gcc/testsuite/gcc.target/arm/neon/vpadds16.c
45059 --- a/gcc/testsuite/gcc.target/arm/neon/vpadds16.c 2007-07-25 14:28:31.000000000 +0200
45060 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadds16.c 2010-01-25 09:50:29.435686987 +0100
45061 @@ -3,7 +3,8 @@
45062
45063 /* { dg-do assemble } */
45064 /* { dg-require-effective-target arm_neon_ok } */
45065 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45066 +/* { dg-options "-save-temps -O0" } */
45067 +/* { dg-add-options arm_neon } */
45068
45069 #include "arm_neon.h"
45070
45071 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadds32.c b/gcc/testsuite/gcc.target/arm/neon/vpadds32.c
45072 --- a/gcc/testsuite/gcc.target/arm/neon/vpadds32.c 2007-07-25 14:28:31.000000000 +0200
45073 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadds32.c 2010-01-25 09:50:29.435686987 +0100
45074 @@ -3,7 +3,8 @@
45075
45076 /* { dg-do assemble } */
45077 /* { dg-require-effective-target arm_neon_ok } */
45078 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45079 +/* { dg-options "-save-temps -O0" } */
45080 +/* { dg-add-options arm_neon } */
45081
45082 #include "arm_neon.h"
45083
45084 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpadds8.c b/gcc/testsuite/gcc.target/arm/neon/vpadds8.c
45085 --- a/gcc/testsuite/gcc.target/arm/neon/vpadds8.c 2007-07-25 14:28:31.000000000 +0200
45086 +++ b/gcc/testsuite/gcc.target/arm/neon/vpadds8.c 2010-01-25 09:50:29.435686987 +0100
45087 @@ -3,7 +3,8 @@
45088
45089 /* { dg-do assemble } */
45090 /* { dg-require-effective-target arm_neon_ok } */
45091 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45092 +/* { dg-options "-save-temps -O0" } */
45093 +/* { dg-add-options arm_neon } */
45094
45095 #include "arm_neon.h"
45096
45097 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddu16.c b/gcc/testsuite/gcc.target/arm/neon/vpaddu16.c
45098 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddu16.c 2007-07-25 14:28:31.000000000 +0200
45099 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddu16.c 2010-01-25 09:50:29.435686987 +0100
45100 @@ -3,7 +3,8 @@
45101
45102 /* { dg-do assemble } */
45103 /* { dg-require-effective-target arm_neon_ok } */
45104 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45105 +/* { dg-options "-save-temps -O0" } */
45106 +/* { dg-add-options arm_neon } */
45107
45108 #include "arm_neon.h"
45109
45110 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddu32.c b/gcc/testsuite/gcc.target/arm/neon/vpaddu32.c
45111 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddu32.c 2007-07-25 14:28:31.000000000 +0200
45112 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddu32.c 2010-01-25 09:50:29.435686987 +0100
45113 @@ -3,7 +3,8 @@
45114
45115 /* { dg-do assemble } */
45116 /* { dg-require-effective-target arm_neon_ok } */
45117 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45118 +/* { dg-options "-save-temps -O0" } */
45119 +/* { dg-add-options arm_neon } */
45120
45121 #include "arm_neon.h"
45122
45123 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpaddu8.c b/gcc/testsuite/gcc.target/arm/neon/vpaddu8.c
45124 --- a/gcc/testsuite/gcc.target/arm/neon/vpaddu8.c 2007-07-25 14:28:31.000000000 +0200
45125 +++ b/gcc/testsuite/gcc.target/arm/neon/vpaddu8.c 2010-01-25 09:50:29.435686987 +0100
45126 @@ -3,7 +3,8 @@
45127
45128 /* { dg-do assemble } */
45129 /* { dg-require-effective-target arm_neon_ok } */
45130 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45131 +/* { dg-options "-save-temps -O0" } */
45132 +/* { dg-add-options arm_neon } */
45133
45134 #include "arm_neon.h"
45135
45136 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmaxf32.c b/gcc/testsuite/gcc.target/arm/neon/vpmaxf32.c
45137 --- a/gcc/testsuite/gcc.target/arm/neon/vpmaxf32.c 2007-07-25 14:28:31.000000000 +0200
45138 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmaxf32.c 2010-01-25 09:50:29.435686987 +0100
45139 @@ -3,7 +3,8 @@
45140
45141 /* { dg-do assemble } */
45142 /* { dg-require-effective-target arm_neon_ok } */
45143 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45144 +/* { dg-options "-save-temps -O0" } */
45145 +/* { dg-add-options arm_neon } */
45146
45147 #include "arm_neon.h"
45148
45149 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmaxs16.c b/gcc/testsuite/gcc.target/arm/neon/vpmaxs16.c
45150 --- a/gcc/testsuite/gcc.target/arm/neon/vpmaxs16.c 2007-07-25 14:28:31.000000000 +0200
45151 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmaxs16.c 2010-01-25 09:50:29.435686987 +0100
45152 @@ -3,7 +3,8 @@
45153
45154 /* { dg-do assemble } */
45155 /* { dg-require-effective-target arm_neon_ok } */
45156 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45157 +/* { dg-options "-save-temps -O0" } */
45158 +/* { dg-add-options arm_neon } */
45159
45160 #include "arm_neon.h"
45161
45162 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmaxs32.c b/gcc/testsuite/gcc.target/arm/neon/vpmaxs32.c
45163 --- a/gcc/testsuite/gcc.target/arm/neon/vpmaxs32.c 2007-07-25 14:28:31.000000000 +0200
45164 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmaxs32.c 2010-01-25 09:50:29.435686987 +0100
45165 @@ -3,7 +3,8 @@
45166
45167 /* { dg-do assemble } */
45168 /* { dg-require-effective-target arm_neon_ok } */
45169 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45170 +/* { dg-options "-save-temps -O0" } */
45171 +/* { dg-add-options arm_neon } */
45172
45173 #include "arm_neon.h"
45174
45175 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmaxs8.c b/gcc/testsuite/gcc.target/arm/neon/vpmaxs8.c
45176 --- a/gcc/testsuite/gcc.target/arm/neon/vpmaxs8.c 2007-07-25 14:28:31.000000000 +0200
45177 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmaxs8.c 2010-01-25 09:50:29.435686987 +0100
45178 @@ -3,7 +3,8 @@
45179
45180 /* { dg-do assemble } */
45181 /* { dg-require-effective-target arm_neon_ok } */
45182 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45183 +/* { dg-options "-save-temps -O0" } */
45184 +/* { dg-add-options arm_neon } */
45185
45186 #include "arm_neon.h"
45187
45188 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmaxu16.c b/gcc/testsuite/gcc.target/arm/neon/vpmaxu16.c
45189 --- a/gcc/testsuite/gcc.target/arm/neon/vpmaxu16.c 2007-07-25 14:28:31.000000000 +0200
45190 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmaxu16.c 2010-01-25 09:50:29.435686987 +0100
45191 @@ -3,7 +3,8 @@
45192
45193 /* { dg-do assemble } */
45194 /* { dg-require-effective-target arm_neon_ok } */
45195 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45196 +/* { dg-options "-save-temps -O0" } */
45197 +/* { dg-add-options arm_neon } */
45198
45199 #include "arm_neon.h"
45200
45201 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmaxu32.c b/gcc/testsuite/gcc.target/arm/neon/vpmaxu32.c
45202 --- a/gcc/testsuite/gcc.target/arm/neon/vpmaxu32.c 2007-07-25 14:28:31.000000000 +0200
45203 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmaxu32.c 2010-01-25 09:50:29.435686987 +0100
45204 @@ -3,7 +3,8 @@
45205
45206 /* { dg-do assemble } */
45207 /* { dg-require-effective-target arm_neon_ok } */
45208 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45209 +/* { dg-options "-save-temps -O0" } */
45210 +/* { dg-add-options arm_neon } */
45211
45212 #include "arm_neon.h"
45213
45214 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmaxu8.c b/gcc/testsuite/gcc.target/arm/neon/vpmaxu8.c
45215 --- a/gcc/testsuite/gcc.target/arm/neon/vpmaxu8.c 2007-07-25 14:28:31.000000000 +0200
45216 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmaxu8.c 2010-01-25 09:50:29.435686987 +0100
45217 @@ -3,7 +3,8 @@
45218
45219 /* { dg-do assemble } */
45220 /* { dg-require-effective-target arm_neon_ok } */
45221 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45222 +/* { dg-options "-save-temps -O0" } */
45223 +/* { dg-add-options arm_neon } */
45224
45225 #include "arm_neon.h"
45226
45227 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpminf32.c b/gcc/testsuite/gcc.target/arm/neon/vpminf32.c
45228 --- a/gcc/testsuite/gcc.target/arm/neon/vpminf32.c 2007-07-25 14:28:31.000000000 +0200
45229 +++ b/gcc/testsuite/gcc.target/arm/neon/vpminf32.c 2010-01-25 09:50:29.435686987 +0100
45230 @@ -3,7 +3,8 @@
45231
45232 /* { dg-do assemble } */
45233 /* { dg-require-effective-target arm_neon_ok } */
45234 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45235 +/* { dg-options "-save-temps -O0" } */
45236 +/* { dg-add-options arm_neon } */
45237
45238 #include "arm_neon.h"
45239
45240 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmins16.c b/gcc/testsuite/gcc.target/arm/neon/vpmins16.c
45241 --- a/gcc/testsuite/gcc.target/arm/neon/vpmins16.c 2007-07-25 14:28:31.000000000 +0200
45242 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmins16.c 2010-01-25 09:50:29.435686987 +0100
45243 @@ -3,7 +3,8 @@
45244
45245 /* { dg-do assemble } */
45246 /* { dg-require-effective-target arm_neon_ok } */
45247 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45248 +/* { dg-options "-save-temps -O0" } */
45249 +/* { dg-add-options arm_neon } */
45250
45251 #include "arm_neon.h"
45252
45253 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmins32.c b/gcc/testsuite/gcc.target/arm/neon/vpmins32.c
45254 --- a/gcc/testsuite/gcc.target/arm/neon/vpmins32.c 2007-07-25 14:28:31.000000000 +0200
45255 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmins32.c 2010-01-25 09:50:29.435686987 +0100
45256 @@ -3,7 +3,8 @@
45257
45258 /* { dg-do assemble } */
45259 /* { dg-require-effective-target arm_neon_ok } */
45260 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45261 +/* { dg-options "-save-temps -O0" } */
45262 +/* { dg-add-options arm_neon } */
45263
45264 #include "arm_neon.h"
45265
45266 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpmins8.c b/gcc/testsuite/gcc.target/arm/neon/vpmins8.c
45267 --- a/gcc/testsuite/gcc.target/arm/neon/vpmins8.c 2007-07-25 14:28:31.000000000 +0200
45268 +++ b/gcc/testsuite/gcc.target/arm/neon/vpmins8.c 2010-01-25 09:50:29.435686987 +0100
45269 @@ -3,7 +3,8 @@
45270
45271 /* { dg-do assemble } */
45272 /* { dg-require-effective-target arm_neon_ok } */
45273 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45274 +/* { dg-options "-save-temps -O0" } */
45275 +/* { dg-add-options arm_neon } */
45276
45277 #include "arm_neon.h"
45278
45279 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpminu16.c b/gcc/testsuite/gcc.target/arm/neon/vpminu16.c
45280 --- a/gcc/testsuite/gcc.target/arm/neon/vpminu16.c 2007-07-25 14:28:31.000000000 +0200
45281 +++ b/gcc/testsuite/gcc.target/arm/neon/vpminu16.c 2010-01-25 09:50:29.435686987 +0100
45282 @@ -3,7 +3,8 @@
45283
45284 /* { dg-do assemble } */
45285 /* { dg-require-effective-target arm_neon_ok } */
45286 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45287 +/* { dg-options "-save-temps -O0" } */
45288 +/* { dg-add-options arm_neon } */
45289
45290 #include "arm_neon.h"
45291
45292 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpminu32.c b/gcc/testsuite/gcc.target/arm/neon/vpminu32.c
45293 --- a/gcc/testsuite/gcc.target/arm/neon/vpminu32.c 2007-07-25 14:28:31.000000000 +0200
45294 +++ b/gcc/testsuite/gcc.target/arm/neon/vpminu32.c 2010-01-25 09:50:29.435686987 +0100
45295 @@ -3,7 +3,8 @@
45296
45297 /* { dg-do assemble } */
45298 /* { dg-require-effective-target arm_neon_ok } */
45299 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45300 +/* { dg-options "-save-temps -O0" } */
45301 +/* { dg-add-options arm_neon } */
45302
45303 #include "arm_neon.h"
45304
45305 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vpminu8.c b/gcc/testsuite/gcc.target/arm/neon/vpminu8.c
45306 --- a/gcc/testsuite/gcc.target/arm/neon/vpminu8.c 2007-07-25 14:28:31.000000000 +0200
45307 +++ b/gcc/testsuite/gcc.target/arm/neon/vpminu8.c 2010-01-25 09:50:29.435686987 +0100
45308 @@ -3,7 +3,8 @@
45309
45310 /* { dg-do assemble } */
45311 /* { dg-require-effective-target arm_neon_ok } */
45312 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45313 +/* { dg-options "-save-temps -O0" } */
45314 +/* { dg-add-options arm_neon } */
45315
45316 #include "arm_neon.h"
45317
45318 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqabsQs16.c b/gcc/testsuite/gcc.target/arm/neon/vqabsQs16.c
45319 --- a/gcc/testsuite/gcc.target/arm/neon/vqabsQs16.c 2007-07-25 14:28:31.000000000 +0200
45320 +++ b/gcc/testsuite/gcc.target/arm/neon/vqabsQs16.c 2010-01-25 09:50:29.435686987 +0100
45321 @@ -3,7 +3,8 @@
45322
45323 /* { dg-do assemble } */
45324 /* { dg-require-effective-target arm_neon_ok } */
45325 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45326 +/* { dg-options "-save-temps -O0" } */
45327 +/* { dg-add-options arm_neon } */
45328
45329 #include "arm_neon.h"
45330
45331 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqabsQs32.c b/gcc/testsuite/gcc.target/arm/neon/vqabsQs32.c
45332 --- a/gcc/testsuite/gcc.target/arm/neon/vqabsQs32.c 2007-07-25 14:28:31.000000000 +0200
45333 +++ b/gcc/testsuite/gcc.target/arm/neon/vqabsQs32.c 2010-01-25 09:50:29.435686987 +0100
45334 @@ -3,7 +3,8 @@
45335
45336 /* { dg-do assemble } */
45337 /* { dg-require-effective-target arm_neon_ok } */
45338 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45339 +/* { dg-options "-save-temps -O0" } */
45340 +/* { dg-add-options arm_neon } */
45341
45342 #include "arm_neon.h"
45343
45344 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqabsQs8.c b/gcc/testsuite/gcc.target/arm/neon/vqabsQs8.c
45345 --- a/gcc/testsuite/gcc.target/arm/neon/vqabsQs8.c 2007-07-25 14:28:31.000000000 +0200
45346 +++ b/gcc/testsuite/gcc.target/arm/neon/vqabsQs8.c 2010-01-25 09:50:29.435686987 +0100
45347 @@ -3,7 +3,8 @@
45348
45349 /* { dg-do assemble } */
45350 /* { dg-require-effective-target arm_neon_ok } */
45351 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45352 +/* { dg-options "-save-temps -O0" } */
45353 +/* { dg-add-options arm_neon } */
45354
45355 #include "arm_neon.h"
45356
45357 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqabss16.c b/gcc/testsuite/gcc.target/arm/neon/vqabss16.c
45358 --- a/gcc/testsuite/gcc.target/arm/neon/vqabss16.c 2007-07-25 14:28:31.000000000 +0200
45359 +++ b/gcc/testsuite/gcc.target/arm/neon/vqabss16.c 2010-01-25 09:50:29.435686987 +0100
45360 @@ -3,7 +3,8 @@
45361
45362 /* { dg-do assemble } */
45363 /* { dg-require-effective-target arm_neon_ok } */
45364 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45365 +/* { dg-options "-save-temps -O0" } */
45366 +/* { dg-add-options arm_neon } */
45367
45368 #include "arm_neon.h"
45369
45370 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqabss32.c b/gcc/testsuite/gcc.target/arm/neon/vqabss32.c
45371 --- a/gcc/testsuite/gcc.target/arm/neon/vqabss32.c 2007-07-25 14:28:31.000000000 +0200
45372 +++ b/gcc/testsuite/gcc.target/arm/neon/vqabss32.c 2010-01-25 09:50:29.445687421 +0100
45373 @@ -3,7 +3,8 @@
45374
45375 /* { dg-do assemble } */
45376 /* { dg-require-effective-target arm_neon_ok } */
45377 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45378 +/* { dg-options "-save-temps -O0" } */
45379 +/* { dg-add-options arm_neon } */
45380
45381 #include "arm_neon.h"
45382
45383 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqabss8.c b/gcc/testsuite/gcc.target/arm/neon/vqabss8.c
45384 --- a/gcc/testsuite/gcc.target/arm/neon/vqabss8.c 2007-07-25 14:28:31.000000000 +0200
45385 +++ b/gcc/testsuite/gcc.target/arm/neon/vqabss8.c 2010-01-25 09:50:29.445687421 +0100
45386 @@ -3,7 +3,8 @@
45387
45388 /* { dg-do assemble } */
45389 /* { dg-require-effective-target arm_neon_ok } */
45390 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45391 +/* { dg-options "-save-temps -O0" } */
45392 +/* { dg-add-options arm_neon } */
45393
45394 #include "arm_neon.h"
45395
45396 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddQs16.c b/gcc/testsuite/gcc.target/arm/neon/vqaddQs16.c
45397 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddQs16.c 2007-07-25 14:28:31.000000000 +0200
45398 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddQs16.c 2010-01-25 09:50:29.445687421 +0100
45399 @@ -3,7 +3,8 @@
45400
45401 /* { dg-do assemble } */
45402 /* { dg-require-effective-target arm_neon_ok } */
45403 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45404 +/* { dg-options "-save-temps -O0" } */
45405 +/* { dg-add-options arm_neon } */
45406
45407 #include "arm_neon.h"
45408
45409 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddQs32.c b/gcc/testsuite/gcc.target/arm/neon/vqaddQs32.c
45410 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddQs32.c 2007-07-25 14:28:31.000000000 +0200
45411 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddQs32.c 2010-01-25 09:50:29.445687421 +0100
45412 @@ -3,7 +3,8 @@
45413
45414 /* { dg-do assemble } */
45415 /* { dg-require-effective-target arm_neon_ok } */
45416 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45417 +/* { dg-options "-save-temps -O0" } */
45418 +/* { dg-add-options arm_neon } */
45419
45420 #include "arm_neon.h"
45421
45422 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddQs64.c b/gcc/testsuite/gcc.target/arm/neon/vqaddQs64.c
45423 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddQs64.c 2007-07-25 14:28:31.000000000 +0200
45424 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddQs64.c 2010-01-25 09:50:29.445687421 +0100
45425 @@ -3,7 +3,8 @@
45426
45427 /* { dg-do assemble } */
45428 /* { dg-require-effective-target arm_neon_ok } */
45429 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45430 +/* { dg-options "-save-temps -O0" } */
45431 +/* { dg-add-options arm_neon } */
45432
45433 #include "arm_neon.h"
45434
45435 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddQs8.c b/gcc/testsuite/gcc.target/arm/neon/vqaddQs8.c
45436 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddQs8.c 2007-07-25 14:28:31.000000000 +0200
45437 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddQs8.c 2010-01-25 09:50:29.445687421 +0100
45438 @@ -3,7 +3,8 @@
45439
45440 /* { dg-do assemble } */
45441 /* { dg-require-effective-target arm_neon_ok } */
45442 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45443 +/* { dg-options "-save-temps -O0" } */
45444 +/* { dg-add-options arm_neon } */
45445
45446 #include "arm_neon.h"
45447
45448 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddQu16.c b/gcc/testsuite/gcc.target/arm/neon/vqaddQu16.c
45449 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddQu16.c 2007-07-25 14:28:31.000000000 +0200
45450 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddQu16.c 2010-01-25 09:50:29.445687421 +0100
45451 @@ -3,7 +3,8 @@
45452
45453 /* { dg-do assemble } */
45454 /* { dg-require-effective-target arm_neon_ok } */
45455 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45456 +/* { dg-options "-save-temps -O0" } */
45457 +/* { dg-add-options arm_neon } */
45458
45459 #include "arm_neon.h"
45460
45461 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddQu32.c b/gcc/testsuite/gcc.target/arm/neon/vqaddQu32.c
45462 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddQu32.c 2007-07-25 14:28:31.000000000 +0200
45463 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddQu32.c 2010-01-25 09:50:29.445687421 +0100
45464 @@ -3,7 +3,8 @@
45465
45466 /* { dg-do assemble } */
45467 /* { dg-require-effective-target arm_neon_ok } */
45468 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45469 +/* { dg-options "-save-temps -O0" } */
45470 +/* { dg-add-options arm_neon } */
45471
45472 #include "arm_neon.h"
45473
45474 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddQu64.c b/gcc/testsuite/gcc.target/arm/neon/vqaddQu64.c
45475 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddQu64.c 2007-07-25 14:28:31.000000000 +0200
45476 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddQu64.c 2010-01-25 09:50:29.445687421 +0100
45477 @@ -3,7 +3,8 @@
45478
45479 /* { dg-do assemble } */
45480 /* { dg-require-effective-target arm_neon_ok } */
45481 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45482 +/* { dg-options "-save-temps -O0" } */
45483 +/* { dg-add-options arm_neon } */
45484
45485 #include "arm_neon.h"
45486
45487 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddQu8.c b/gcc/testsuite/gcc.target/arm/neon/vqaddQu8.c
45488 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddQu8.c 2007-07-25 14:28:31.000000000 +0200
45489 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddQu8.c 2010-01-25 09:50:29.445687421 +0100
45490 @@ -3,7 +3,8 @@
45491
45492 /* { dg-do assemble } */
45493 /* { dg-require-effective-target arm_neon_ok } */
45494 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45495 +/* { dg-options "-save-temps -O0" } */
45496 +/* { dg-add-options arm_neon } */
45497
45498 #include "arm_neon.h"
45499
45500 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqadds16.c b/gcc/testsuite/gcc.target/arm/neon/vqadds16.c
45501 --- a/gcc/testsuite/gcc.target/arm/neon/vqadds16.c 2007-07-25 14:28:31.000000000 +0200
45502 +++ b/gcc/testsuite/gcc.target/arm/neon/vqadds16.c 2010-01-25 09:50:29.445687421 +0100
45503 @@ -3,7 +3,8 @@
45504
45505 /* { dg-do assemble } */
45506 /* { dg-require-effective-target arm_neon_ok } */
45507 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45508 +/* { dg-options "-save-temps -O0" } */
45509 +/* { dg-add-options arm_neon } */
45510
45511 #include "arm_neon.h"
45512
45513 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqadds32.c b/gcc/testsuite/gcc.target/arm/neon/vqadds32.c
45514 --- a/gcc/testsuite/gcc.target/arm/neon/vqadds32.c 2007-07-25 14:28:31.000000000 +0200
45515 +++ b/gcc/testsuite/gcc.target/arm/neon/vqadds32.c 2010-01-25 09:50:29.445687421 +0100
45516 @@ -3,7 +3,8 @@
45517
45518 /* { dg-do assemble } */
45519 /* { dg-require-effective-target arm_neon_ok } */
45520 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45521 +/* { dg-options "-save-temps -O0" } */
45522 +/* { dg-add-options arm_neon } */
45523
45524 #include "arm_neon.h"
45525
45526 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqadds64.c b/gcc/testsuite/gcc.target/arm/neon/vqadds64.c
45527 --- a/gcc/testsuite/gcc.target/arm/neon/vqadds64.c 2007-07-25 14:28:31.000000000 +0200
45528 +++ b/gcc/testsuite/gcc.target/arm/neon/vqadds64.c 2010-01-25 09:50:29.445687421 +0100
45529 @@ -3,7 +3,8 @@
45530
45531 /* { dg-do assemble } */
45532 /* { dg-require-effective-target arm_neon_ok } */
45533 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45534 +/* { dg-options "-save-temps -O0" } */
45535 +/* { dg-add-options arm_neon } */
45536
45537 #include "arm_neon.h"
45538
45539 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqadds8.c b/gcc/testsuite/gcc.target/arm/neon/vqadds8.c
45540 --- a/gcc/testsuite/gcc.target/arm/neon/vqadds8.c 2007-07-25 14:28:31.000000000 +0200
45541 +++ b/gcc/testsuite/gcc.target/arm/neon/vqadds8.c 2010-01-25 09:50:29.445687421 +0100
45542 @@ -3,7 +3,8 @@
45543
45544 /* { dg-do assemble } */
45545 /* { dg-require-effective-target arm_neon_ok } */
45546 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45547 +/* { dg-options "-save-temps -O0" } */
45548 +/* { dg-add-options arm_neon } */
45549
45550 #include "arm_neon.h"
45551
45552 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddu16.c b/gcc/testsuite/gcc.target/arm/neon/vqaddu16.c
45553 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddu16.c 2007-07-25 14:28:31.000000000 +0200
45554 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddu16.c 2010-01-25 09:50:29.445687421 +0100
45555 @@ -3,7 +3,8 @@
45556
45557 /* { dg-do assemble } */
45558 /* { dg-require-effective-target arm_neon_ok } */
45559 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45560 +/* { dg-options "-save-temps -O0" } */
45561 +/* { dg-add-options arm_neon } */
45562
45563 #include "arm_neon.h"
45564
45565 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddu32.c b/gcc/testsuite/gcc.target/arm/neon/vqaddu32.c
45566 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddu32.c 2007-07-25 14:28:31.000000000 +0200
45567 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddu32.c 2010-01-25 09:50:29.445687421 +0100
45568 @@ -3,7 +3,8 @@
45569
45570 /* { dg-do assemble } */
45571 /* { dg-require-effective-target arm_neon_ok } */
45572 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45573 +/* { dg-options "-save-temps -O0" } */
45574 +/* { dg-add-options arm_neon } */
45575
45576 #include "arm_neon.h"
45577
45578 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddu64.c b/gcc/testsuite/gcc.target/arm/neon/vqaddu64.c
45579 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddu64.c 2007-07-25 14:28:31.000000000 +0200
45580 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddu64.c 2010-01-25 09:50:29.445687421 +0100
45581 @@ -3,7 +3,8 @@
45582
45583 /* { dg-do assemble } */
45584 /* { dg-require-effective-target arm_neon_ok } */
45585 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45586 +/* { dg-options "-save-temps -O0" } */
45587 +/* { dg-add-options arm_neon } */
45588
45589 #include "arm_neon.h"
45590
45591 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqaddu8.c b/gcc/testsuite/gcc.target/arm/neon/vqaddu8.c
45592 --- a/gcc/testsuite/gcc.target/arm/neon/vqaddu8.c 2007-07-25 14:28:31.000000000 +0200
45593 +++ b/gcc/testsuite/gcc.target/arm/neon/vqaddu8.c 2010-01-25 09:50:29.445687421 +0100
45594 @@ -3,7 +3,8 @@
45595
45596 /* { dg-do assemble } */
45597 /* { dg-require-effective-target arm_neon_ok } */
45598 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45599 +/* { dg-options "-save-temps -O0" } */
45600 +/* { dg-add-options arm_neon } */
45601
45602 #include "arm_neon.h"
45603
45604 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlal_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlal_lanes16.c
45605 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlal_lanes16.c 2007-07-25 14:28:31.000000000 +0200
45606 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlal_lanes16.c 2010-01-25 09:50:29.445687421 +0100
45607 @@ -3,7 +3,8 @@
45608
45609 /* { dg-do assemble } */
45610 /* { dg-require-effective-target arm_neon_ok } */
45611 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45612 +/* { dg-options "-save-temps -O0" } */
45613 +/* { dg-add-options arm_neon } */
45614
45615 #include "arm_neon.h"
45616
45617 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlal_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlal_lanes32.c
45618 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlal_lanes32.c 2007-07-25 14:28:31.000000000 +0200
45619 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlal_lanes32.c 2010-01-25 09:50:29.445687421 +0100
45620 @@ -3,7 +3,8 @@
45621
45622 /* { dg-do assemble } */
45623 /* { dg-require-effective-target arm_neon_ok } */
45624 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45625 +/* { dg-options "-save-temps -O0" } */
45626 +/* { dg-add-options arm_neon } */
45627
45628 #include "arm_neon.h"
45629
45630 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlal_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlal_ns16.c
45631 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlal_ns16.c 2007-07-25 14:28:31.000000000 +0200
45632 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlal_ns16.c 2010-01-25 09:50:29.445687421 +0100
45633 @@ -3,7 +3,8 @@
45634
45635 /* { dg-do assemble } */
45636 /* { dg-require-effective-target arm_neon_ok } */
45637 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45638 +/* { dg-options "-save-temps -O0" } */
45639 +/* { dg-add-options arm_neon } */
45640
45641 #include "arm_neon.h"
45642
45643 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlal_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlal_ns32.c
45644 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlal_ns32.c 2007-07-25 14:28:31.000000000 +0200
45645 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlal_ns32.c 2010-01-25 09:50:29.445687421 +0100
45646 @@ -3,7 +3,8 @@
45647
45648 /* { dg-do assemble } */
45649 /* { dg-require-effective-target arm_neon_ok } */
45650 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45651 +/* { dg-options "-save-temps -O0" } */
45652 +/* { dg-add-options arm_neon } */
45653
45654 #include "arm_neon.h"
45655
45656 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlals16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlals16.c
45657 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlals16.c 2007-07-25 14:28:31.000000000 +0200
45658 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlals16.c 2010-01-25 09:50:29.445687421 +0100
45659 @@ -3,7 +3,8 @@
45660
45661 /* { dg-do assemble } */
45662 /* { dg-require-effective-target arm_neon_ok } */
45663 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45664 +/* { dg-options "-save-temps -O0" } */
45665 +/* { dg-add-options arm_neon } */
45666
45667 #include "arm_neon.h"
45668
45669 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlals32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlals32.c
45670 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlals32.c 2007-07-25 14:28:31.000000000 +0200
45671 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlals32.c 2010-01-25 09:50:29.445687421 +0100
45672 @@ -3,7 +3,8 @@
45673
45674 /* { dg-do assemble } */
45675 /* { dg-require-effective-target arm_neon_ok } */
45676 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45677 +/* { dg-options "-save-temps -O0" } */
45678 +/* { dg-add-options arm_neon } */
45679
45680 #include "arm_neon.h"
45681
45682 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_lanes16.c
45683 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_lanes16.c 2007-07-25 14:28:31.000000000 +0200
45684 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_lanes16.c 2010-01-25 09:50:29.445687421 +0100
45685 @@ -3,7 +3,8 @@
45686
45687 /* { dg-do assemble } */
45688 /* { dg-require-effective-target arm_neon_ok } */
45689 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45690 +/* { dg-options "-save-temps -O0" } */
45691 +/* { dg-add-options arm_neon } */
45692
45693 #include "arm_neon.h"
45694
45695 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_lanes32.c
45696 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_lanes32.c 2007-07-25 14:28:31.000000000 +0200
45697 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_lanes32.c 2010-01-25 09:50:29.445687421 +0100
45698 @@ -3,7 +3,8 @@
45699
45700 /* { dg-do assemble } */
45701 /* { dg-require-effective-target arm_neon_ok } */
45702 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45703 +/* { dg-options "-save-temps -O0" } */
45704 +/* { dg-add-options arm_neon } */
45705
45706 #include "arm_neon.h"
45707
45708 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_ns16.c
45709 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_ns16.c 2007-07-25 14:28:31.000000000 +0200
45710 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_ns16.c 2010-01-25 09:50:29.445687421 +0100
45711 @@ -3,7 +3,8 @@
45712
45713 /* { dg-do assemble } */
45714 /* { dg-require-effective-target arm_neon_ok } */
45715 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45716 +/* { dg-options "-save-temps -O0" } */
45717 +/* { dg-add-options arm_neon } */
45718
45719 #include "arm_neon.h"
45720
45721 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_ns32.c
45722 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_ns32.c 2007-07-25 14:28:31.000000000 +0200
45723 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlsl_ns32.c 2010-01-25 09:50:29.445687421 +0100
45724 @@ -3,7 +3,8 @@
45725
45726 /* { dg-do assemble } */
45727 /* { dg-require-effective-target arm_neon_ok } */
45728 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45729 +/* { dg-options "-save-temps -O0" } */
45730 +/* { dg-add-options arm_neon } */
45731
45732 #include "arm_neon.h"
45733
45734 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlsls16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlsls16.c
45735 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlsls16.c 2007-07-25 14:28:31.000000000 +0200
45736 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlsls16.c 2010-01-25 09:50:29.445687421 +0100
45737 @@ -3,7 +3,8 @@
45738
45739 /* { dg-do assemble } */
45740 /* { dg-require-effective-target arm_neon_ok } */
45741 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45742 +/* { dg-options "-save-temps -O0" } */
45743 +/* { dg-add-options arm_neon } */
45744
45745 #include "arm_neon.h"
45746
45747 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmlsls32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmlsls32.c
45748 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmlsls32.c 2007-07-25 14:28:31.000000000 +0200
45749 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmlsls32.c 2010-01-25 09:50:29.445687421 +0100
45750 @@ -3,7 +3,8 @@
45751
45752 /* { dg-do assemble } */
45753 /* { dg-require-effective-target arm_neon_ok } */
45754 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45755 +/* { dg-options "-save-temps -O0" } */
45756 +/* { dg-add-options arm_neon } */
45757
45758 #include "arm_neon.h"
45759
45760 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulh_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulh_lanes16.c
45761 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulh_lanes16.c 2007-07-25 14:28:31.000000000 +0200
45762 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulh_lanes16.c 2010-01-25 09:50:29.445687421 +0100
45763 @@ -3,7 +3,8 @@
45764
45765 /* { dg-do assemble } */
45766 /* { dg-require-effective-target arm_neon_ok } */
45767 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45768 +/* { dg-options "-save-temps -O0" } */
45769 +/* { dg-add-options arm_neon } */
45770
45771 #include "arm_neon.h"
45772
45773 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulh_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulh_lanes32.c
45774 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulh_lanes32.c 2007-07-25 14:28:31.000000000 +0200
45775 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulh_lanes32.c 2010-01-25 09:50:29.445687421 +0100
45776 @@ -3,7 +3,8 @@
45777
45778 /* { dg-do assemble } */
45779 /* { dg-require-effective-target arm_neon_ok } */
45780 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45781 +/* { dg-options "-save-temps -O0" } */
45782 +/* { dg-add-options arm_neon } */
45783
45784 #include "arm_neon.h"
45785
45786 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulh_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulh_ns16.c
45787 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulh_ns16.c 2007-07-25 14:28:31.000000000 +0200
45788 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulh_ns16.c 2010-01-25 09:50:29.445687421 +0100
45789 @@ -3,7 +3,8 @@
45790
45791 /* { dg-do assemble } */
45792 /* { dg-require-effective-target arm_neon_ok } */
45793 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45794 +/* { dg-options "-save-temps -O0" } */
45795 +/* { dg-add-options arm_neon } */
45796
45797 #include "arm_neon.h"
45798
45799 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulh_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulh_ns32.c
45800 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulh_ns32.c 2007-07-25 14:28:31.000000000 +0200
45801 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulh_ns32.c 2010-01-25 09:50:29.445687421 +0100
45802 @@ -3,7 +3,8 @@
45803
45804 /* { dg-do assemble } */
45805 /* { dg-require-effective-target arm_neon_ok } */
45806 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45807 +/* { dg-options "-save-temps -O0" } */
45808 +/* { dg-add-options arm_neon } */
45809
45810 #include "arm_neon.h"
45811
45812 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_lanes16.c
45813 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_lanes16.c 2007-07-25 14:28:31.000000000 +0200
45814 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_lanes16.c 2010-01-25 09:50:29.445687421 +0100
45815 @@ -3,7 +3,8 @@
45816
45817 /* { dg-do assemble } */
45818 /* { dg-require-effective-target arm_neon_ok } */
45819 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45820 +/* { dg-options "-save-temps -O0" } */
45821 +/* { dg-add-options arm_neon } */
45822
45823 #include "arm_neon.h"
45824
45825 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_lanes32.c
45826 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_lanes32.c 2007-07-25 14:28:31.000000000 +0200
45827 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_lanes32.c 2010-01-25 09:50:29.445687421 +0100
45828 @@ -3,7 +3,8 @@
45829
45830 /* { dg-do assemble } */
45831 /* { dg-require-effective-target arm_neon_ok } */
45832 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45833 +/* { dg-options "-save-temps -O0" } */
45834 +/* { dg-add-options arm_neon } */
45835
45836 #include "arm_neon.h"
45837
45838 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_ns16.c
45839 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
45840 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_ns16.c 2010-01-25 09:50:29.445687421 +0100
45841 @@ -3,7 +3,8 @@
45842
45843 /* { dg-do assemble } */
45844 /* { dg-require-effective-target arm_neon_ok } */
45845 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45846 +/* { dg-options "-save-temps -O0" } */
45847 +/* { dg-add-options arm_neon } */
45848
45849 #include "arm_neon.h"
45850
45851 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_ns32.c
45852 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
45853 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQ_ns32.c 2010-01-25 09:50:29.445687421 +0100
45854 @@ -3,7 +3,8 @@
45855
45856 /* { dg-do assemble } */
45857 /* { dg-require-effective-target arm_neon_ok } */
45858 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45859 +/* { dg-options "-save-temps -O0" } */
45860 +/* { dg-add-options arm_neon } */
45861
45862 #include "arm_neon.h"
45863
45864 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQs16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQs16.c
45865 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQs16.c 2007-07-25 14:28:31.000000000 +0200
45866 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQs16.c 2010-01-25 09:50:29.445687421 +0100
45867 @@ -3,7 +3,8 @@
45868
45869 /* { dg-do assemble } */
45870 /* { dg-require-effective-target arm_neon_ok } */
45871 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45872 +/* { dg-options "-save-temps -O0" } */
45873 +/* { dg-add-options arm_neon } */
45874
45875 #include "arm_neon.h"
45876
45877 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQs32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQs32.c
45878 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulhQs32.c 2007-07-25 14:28:31.000000000 +0200
45879 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulhQs32.c 2010-01-25 09:50:29.445687421 +0100
45880 @@ -3,7 +3,8 @@
45881
45882 /* { dg-do assemble } */
45883 /* { dg-require-effective-target arm_neon_ok } */
45884 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45885 +/* { dg-options "-save-temps -O0" } */
45886 +/* { dg-add-options arm_neon } */
45887
45888 #include "arm_neon.h"
45889
45890 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulhs16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulhs16.c
45891 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulhs16.c 2007-07-25 14:28:31.000000000 +0200
45892 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulhs16.c 2010-01-25 09:50:29.445687421 +0100
45893 @@ -3,7 +3,8 @@
45894
45895 /* { dg-do assemble } */
45896 /* { dg-require-effective-target arm_neon_ok } */
45897 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45898 +/* { dg-options "-save-temps -O0" } */
45899 +/* { dg-add-options arm_neon } */
45900
45901 #include "arm_neon.h"
45902
45903 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulhs32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulhs32.c
45904 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulhs32.c 2007-07-25 14:28:31.000000000 +0200
45905 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulhs32.c 2010-01-25 09:50:29.445687421 +0100
45906 @@ -3,7 +3,8 @@
45907
45908 /* { dg-do assemble } */
45909 /* { dg-require-effective-target arm_neon_ok } */
45910 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45911 +/* { dg-options "-save-temps -O0" } */
45912 +/* { dg-add-options arm_neon } */
45913
45914 #include "arm_neon.h"
45915
45916 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmull_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmull_lanes16.c
45917 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmull_lanes16.c 2007-07-25 14:28:31.000000000 +0200
45918 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmull_lanes16.c 2010-01-25 09:50:29.445687421 +0100
45919 @@ -3,7 +3,8 @@
45920
45921 /* { dg-do assemble } */
45922 /* { dg-require-effective-target arm_neon_ok } */
45923 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45924 +/* { dg-options "-save-temps -O0" } */
45925 +/* { dg-add-options arm_neon } */
45926
45927 #include "arm_neon.h"
45928
45929 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmull_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmull_lanes32.c
45930 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmull_lanes32.c 2007-07-25 14:28:31.000000000 +0200
45931 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmull_lanes32.c 2010-01-25 09:50:29.445687421 +0100
45932 @@ -3,7 +3,8 @@
45933
45934 /* { dg-do assemble } */
45935 /* { dg-require-effective-target arm_neon_ok } */
45936 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45937 +/* { dg-options "-save-temps -O0" } */
45938 +/* { dg-add-options arm_neon } */
45939
45940 #include "arm_neon.h"
45941
45942 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmull_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmull_ns16.c
45943 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmull_ns16.c 2007-07-25 14:28:31.000000000 +0200
45944 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmull_ns16.c 2010-01-25 09:50:29.445687421 +0100
45945 @@ -3,7 +3,8 @@
45946
45947 /* { dg-do assemble } */
45948 /* { dg-require-effective-target arm_neon_ok } */
45949 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45950 +/* { dg-options "-save-temps -O0" } */
45951 +/* { dg-add-options arm_neon } */
45952
45953 #include "arm_neon.h"
45954
45955 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmull_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmull_ns32.c
45956 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmull_ns32.c 2007-07-25 14:28:31.000000000 +0200
45957 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmull_ns32.c 2010-01-25 09:50:29.445687421 +0100
45958 @@ -3,7 +3,8 @@
45959
45960 /* { dg-do assemble } */
45961 /* { dg-require-effective-target arm_neon_ok } */
45962 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45963 +/* { dg-options "-save-temps -O0" } */
45964 +/* { dg-add-options arm_neon } */
45965
45966 #include "arm_neon.h"
45967
45968 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulls16.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulls16.c
45969 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulls16.c 2007-07-25 14:28:31.000000000 +0200
45970 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulls16.c 2010-01-25 09:50:29.445687421 +0100
45971 @@ -3,7 +3,8 @@
45972
45973 /* { dg-do assemble } */
45974 /* { dg-require-effective-target arm_neon_ok } */
45975 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45976 +/* { dg-options "-save-temps -O0" } */
45977 +/* { dg-add-options arm_neon } */
45978
45979 #include "arm_neon.h"
45980
45981 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqdmulls32.c b/gcc/testsuite/gcc.target/arm/neon/vqdmulls32.c
45982 --- a/gcc/testsuite/gcc.target/arm/neon/vqdmulls32.c 2007-07-25 14:28:31.000000000 +0200
45983 +++ b/gcc/testsuite/gcc.target/arm/neon/vqdmulls32.c 2010-01-25 09:50:29.445687421 +0100
45984 @@ -3,7 +3,8 @@
45985
45986 /* { dg-do assemble } */
45987 /* { dg-require-effective-target arm_neon_ok } */
45988 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
45989 +/* { dg-options "-save-temps -O0" } */
45990 +/* { dg-add-options arm_neon } */
45991
45992 #include "arm_neon.h"
45993
45994 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovns16.c b/gcc/testsuite/gcc.target/arm/neon/vqmovns16.c
45995 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovns16.c 2007-07-25 14:28:31.000000000 +0200
45996 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovns16.c 2010-01-25 09:50:29.445687421 +0100
45997 @@ -3,7 +3,8 @@
45998
45999 /* { dg-do assemble } */
46000 /* { dg-require-effective-target arm_neon_ok } */
46001 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46002 +/* { dg-options "-save-temps -O0" } */
46003 +/* { dg-add-options arm_neon } */
46004
46005 #include "arm_neon.h"
46006
46007 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovns32.c b/gcc/testsuite/gcc.target/arm/neon/vqmovns32.c
46008 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovns32.c 2007-07-25 14:28:31.000000000 +0200
46009 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovns32.c 2010-01-25 09:50:29.445687421 +0100
46010 @@ -3,7 +3,8 @@
46011
46012 /* { dg-do assemble } */
46013 /* { dg-require-effective-target arm_neon_ok } */
46014 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46015 +/* { dg-options "-save-temps -O0" } */
46016 +/* { dg-add-options arm_neon } */
46017
46018 #include "arm_neon.h"
46019
46020 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovns64.c b/gcc/testsuite/gcc.target/arm/neon/vqmovns64.c
46021 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovns64.c 2007-07-25 14:28:31.000000000 +0200
46022 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovns64.c 2010-01-25 09:50:29.445687421 +0100
46023 @@ -3,7 +3,8 @@
46024
46025 /* { dg-do assemble } */
46026 /* { dg-require-effective-target arm_neon_ok } */
46027 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46028 +/* { dg-options "-save-temps -O0" } */
46029 +/* { dg-add-options arm_neon } */
46030
46031 #include "arm_neon.h"
46032
46033 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovnu16.c b/gcc/testsuite/gcc.target/arm/neon/vqmovnu16.c
46034 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovnu16.c 2007-07-25 14:28:31.000000000 +0200
46035 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovnu16.c 2010-01-25 09:50:29.445687421 +0100
46036 @@ -3,7 +3,8 @@
46037
46038 /* { dg-do assemble } */
46039 /* { dg-require-effective-target arm_neon_ok } */
46040 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46041 +/* { dg-options "-save-temps -O0" } */
46042 +/* { dg-add-options arm_neon } */
46043
46044 #include "arm_neon.h"
46045
46046 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovnu32.c b/gcc/testsuite/gcc.target/arm/neon/vqmovnu32.c
46047 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovnu32.c 2007-07-25 14:28:31.000000000 +0200
46048 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovnu32.c 2010-01-25 09:50:29.445687421 +0100
46049 @@ -3,7 +3,8 @@
46050
46051 /* { dg-do assemble } */
46052 /* { dg-require-effective-target arm_neon_ok } */
46053 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46054 +/* { dg-options "-save-temps -O0" } */
46055 +/* { dg-add-options arm_neon } */
46056
46057 #include "arm_neon.h"
46058
46059 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovnu64.c b/gcc/testsuite/gcc.target/arm/neon/vqmovnu64.c
46060 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovnu64.c 2007-07-25 14:28:31.000000000 +0200
46061 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovnu64.c 2010-01-25 09:50:29.445687421 +0100
46062 @@ -3,7 +3,8 @@
46063
46064 /* { dg-do assemble } */
46065 /* { dg-require-effective-target arm_neon_ok } */
46066 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46067 +/* { dg-options "-save-temps -O0" } */
46068 +/* { dg-add-options arm_neon } */
46069
46070 #include "arm_neon.h"
46071
46072 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovuns16.c b/gcc/testsuite/gcc.target/arm/neon/vqmovuns16.c
46073 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovuns16.c 2007-07-25 14:28:31.000000000 +0200
46074 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovuns16.c 2010-01-25 09:50:29.445687421 +0100
46075 @@ -3,7 +3,8 @@
46076
46077 /* { dg-do assemble } */
46078 /* { dg-require-effective-target arm_neon_ok } */
46079 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46080 +/* { dg-options "-save-temps -O0" } */
46081 +/* { dg-add-options arm_neon } */
46082
46083 #include "arm_neon.h"
46084
46085 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovuns32.c b/gcc/testsuite/gcc.target/arm/neon/vqmovuns32.c
46086 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovuns32.c 2007-07-25 14:28:31.000000000 +0200
46087 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovuns32.c 2010-01-25 09:50:29.445687421 +0100
46088 @@ -3,7 +3,8 @@
46089
46090 /* { dg-do assemble } */
46091 /* { dg-require-effective-target arm_neon_ok } */
46092 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46093 +/* { dg-options "-save-temps -O0" } */
46094 +/* { dg-add-options arm_neon } */
46095
46096 #include "arm_neon.h"
46097
46098 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqmovuns64.c b/gcc/testsuite/gcc.target/arm/neon/vqmovuns64.c
46099 --- a/gcc/testsuite/gcc.target/arm/neon/vqmovuns64.c 2007-07-25 14:28:31.000000000 +0200
46100 +++ b/gcc/testsuite/gcc.target/arm/neon/vqmovuns64.c 2010-01-25 09:50:29.445687421 +0100
46101 @@ -3,7 +3,8 @@
46102
46103 /* { dg-do assemble } */
46104 /* { dg-require-effective-target arm_neon_ok } */
46105 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46106 +/* { dg-options "-save-temps -O0" } */
46107 +/* { dg-add-options arm_neon } */
46108
46109 #include "arm_neon.h"
46110
46111 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqnegQs16.c b/gcc/testsuite/gcc.target/arm/neon/vqnegQs16.c
46112 --- a/gcc/testsuite/gcc.target/arm/neon/vqnegQs16.c 2007-07-25 14:28:31.000000000 +0200
46113 +++ b/gcc/testsuite/gcc.target/arm/neon/vqnegQs16.c 2010-01-25 09:50:29.445687421 +0100
46114 @@ -3,7 +3,8 @@
46115
46116 /* { dg-do assemble } */
46117 /* { dg-require-effective-target arm_neon_ok } */
46118 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46119 +/* { dg-options "-save-temps -O0" } */
46120 +/* { dg-add-options arm_neon } */
46121
46122 #include "arm_neon.h"
46123
46124 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqnegQs32.c b/gcc/testsuite/gcc.target/arm/neon/vqnegQs32.c
46125 --- a/gcc/testsuite/gcc.target/arm/neon/vqnegQs32.c 2007-07-25 14:28:31.000000000 +0200
46126 +++ b/gcc/testsuite/gcc.target/arm/neon/vqnegQs32.c 2010-01-25 09:50:29.445687421 +0100
46127 @@ -3,7 +3,8 @@
46128
46129 /* { dg-do assemble } */
46130 /* { dg-require-effective-target arm_neon_ok } */
46131 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46132 +/* { dg-options "-save-temps -O0" } */
46133 +/* { dg-add-options arm_neon } */
46134
46135 #include "arm_neon.h"
46136
46137 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqnegQs8.c b/gcc/testsuite/gcc.target/arm/neon/vqnegQs8.c
46138 --- a/gcc/testsuite/gcc.target/arm/neon/vqnegQs8.c 2007-07-25 14:28:31.000000000 +0200
46139 +++ b/gcc/testsuite/gcc.target/arm/neon/vqnegQs8.c 2010-01-25 09:50:29.445687421 +0100
46140 @@ -3,7 +3,8 @@
46141
46142 /* { dg-do assemble } */
46143 /* { dg-require-effective-target arm_neon_ok } */
46144 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46145 +/* { dg-options "-save-temps -O0" } */
46146 +/* { dg-add-options arm_neon } */
46147
46148 #include "arm_neon.h"
46149
46150 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqnegs16.c b/gcc/testsuite/gcc.target/arm/neon/vqnegs16.c
46151 --- a/gcc/testsuite/gcc.target/arm/neon/vqnegs16.c 2007-07-25 14:28:31.000000000 +0200
46152 +++ b/gcc/testsuite/gcc.target/arm/neon/vqnegs16.c 2010-01-25 09:50:29.445687421 +0100
46153 @@ -3,7 +3,8 @@
46154
46155 /* { dg-do assemble } */
46156 /* { dg-require-effective-target arm_neon_ok } */
46157 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46158 +/* { dg-options "-save-temps -O0" } */
46159 +/* { dg-add-options arm_neon } */
46160
46161 #include "arm_neon.h"
46162
46163 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqnegs32.c b/gcc/testsuite/gcc.target/arm/neon/vqnegs32.c
46164 --- a/gcc/testsuite/gcc.target/arm/neon/vqnegs32.c 2007-07-25 14:28:31.000000000 +0200
46165 +++ b/gcc/testsuite/gcc.target/arm/neon/vqnegs32.c 2010-01-25 09:50:29.445687421 +0100
46166 @@ -3,7 +3,8 @@
46167
46168 /* { dg-do assemble } */
46169 /* { dg-require-effective-target arm_neon_ok } */
46170 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46171 +/* { dg-options "-save-temps -O0" } */
46172 +/* { dg-add-options arm_neon } */
46173
46174 #include "arm_neon.h"
46175
46176 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqnegs8.c b/gcc/testsuite/gcc.target/arm/neon/vqnegs8.c
46177 --- a/gcc/testsuite/gcc.target/arm/neon/vqnegs8.c 2007-07-25 14:28:31.000000000 +0200
46178 +++ b/gcc/testsuite/gcc.target/arm/neon/vqnegs8.c 2010-01-25 09:50:29.445687421 +0100
46179 @@ -3,7 +3,8 @@
46180
46181 /* { dg-do assemble } */
46182 /* { dg-require-effective-target arm_neon_ok } */
46183 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46184 +/* { dg-options "-save-temps -O0" } */
46185 +/* { dg-add-options arm_neon } */
46186
46187 #include "arm_neon.h"
46188
46189 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_lanes16.c
46190 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_lanes16.c 2007-07-25 14:28:31.000000000 +0200
46191 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_lanes16.c 2010-01-25 09:50:29.445687421 +0100
46192 @@ -3,7 +3,8 @@
46193
46194 /* { dg-do assemble } */
46195 /* { dg-require-effective-target arm_neon_ok } */
46196 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46197 +/* { dg-options "-save-temps -O0" } */
46198 +/* { dg-add-options arm_neon } */
46199
46200 #include "arm_neon.h"
46201
46202 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_lanes32.c
46203 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_lanes32.c 2007-07-25 14:28:31.000000000 +0200
46204 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_lanes32.c 2010-01-25 09:50:29.445687421 +0100
46205 @@ -3,7 +3,8 @@
46206
46207 /* { dg-do assemble } */
46208 /* { dg-require-effective-target arm_neon_ok } */
46209 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46210 +/* { dg-options "-save-temps -O0" } */
46211 +/* { dg-add-options arm_neon } */
46212
46213 #include "arm_neon.h"
46214
46215 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_ns16.c
46216 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_ns16.c 2007-07-25 14:28:31.000000000 +0200
46217 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_ns16.c 2010-01-25 09:50:29.445687421 +0100
46218 @@ -3,7 +3,8 @@
46219
46220 /* { dg-do assemble } */
46221 /* { dg-require-effective-target arm_neon_ok } */
46222 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46223 +/* { dg-options "-save-temps -O0" } */
46224 +/* { dg-add-options arm_neon } */
46225
46226 #include "arm_neon.h"
46227
46228 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_ns32.c
46229 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_ns32.c 2007-07-25 14:28:31.000000000 +0200
46230 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulh_ns32.c 2010-01-25 09:50:29.445687421 +0100
46231 @@ -3,7 +3,8 @@
46232
46233 /* { dg-do assemble } */
46234 /* { dg-require-effective-target arm_neon_ok } */
46235 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46236 +/* { dg-options "-save-temps -O0" } */
46237 +/* { dg-add-options arm_neon } */
46238
46239 #include "arm_neon.h"
46240
46241 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_lanes16.c
46242 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_lanes16.c 2007-07-25 14:28:31.000000000 +0200
46243 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_lanes16.c 2010-01-25 09:50:29.445687421 +0100
46244 @@ -3,7 +3,8 @@
46245
46246 /* { dg-do assemble } */
46247 /* { dg-require-effective-target arm_neon_ok } */
46248 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46249 +/* { dg-options "-save-temps -O0" } */
46250 +/* { dg-add-options arm_neon } */
46251
46252 #include "arm_neon.h"
46253
46254 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_lanes32.c
46255 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_lanes32.c 2007-07-25 14:28:31.000000000 +0200
46256 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_lanes32.c 2010-01-25 09:50:29.445687421 +0100
46257 @@ -3,7 +3,8 @@
46258
46259 /* { dg-do assemble } */
46260 /* { dg-require-effective-target arm_neon_ok } */
46261 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46262 +/* { dg-options "-save-temps -O0" } */
46263 +/* { dg-add-options arm_neon } */
46264
46265 #include "arm_neon.h"
46266
46267 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_ns16.c
46268 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
46269 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_ns16.c 2010-01-25 09:50:29.445687421 +0100
46270 @@ -3,7 +3,8 @@
46271
46272 /* { dg-do assemble } */
46273 /* { dg-require-effective-target arm_neon_ok } */
46274 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46275 +/* { dg-options "-save-temps -O0" } */
46276 +/* { dg-add-options arm_neon } */
46277
46278 #include "arm_neon.h"
46279
46280 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_ns32.c
46281 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
46282 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQ_ns32.c 2010-01-25 09:50:29.445687421 +0100
46283 @@ -3,7 +3,8 @@
46284
46285 /* { dg-do assemble } */
46286 /* { dg-require-effective-target arm_neon_ok } */
46287 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46288 +/* { dg-options "-save-temps -O0" } */
46289 +/* { dg-add-options arm_neon } */
46290
46291 #include "arm_neon.h"
46292
46293 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQs16.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQs16.c
46294 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQs16.c 2007-07-25 14:28:31.000000000 +0200
46295 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQs16.c 2010-01-25 09:50:29.445687421 +0100
46296 @@ -3,7 +3,8 @@
46297
46298 /* { dg-do assemble } */
46299 /* { dg-require-effective-target arm_neon_ok } */
46300 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46301 +/* { dg-options "-save-temps -O0" } */
46302 +/* { dg-add-options arm_neon } */
46303
46304 #include "arm_neon.h"
46305
46306 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQs32.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQs32.c
46307 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQs32.c 2007-07-25 14:28:31.000000000 +0200
46308 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhQs32.c 2010-01-25 09:50:29.455686248 +0100
46309 @@ -3,7 +3,8 @@
46310
46311 /* { dg-do assemble } */
46312 /* { dg-require-effective-target arm_neon_ok } */
46313 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46314 +/* { dg-options "-save-temps -O0" } */
46315 +/* { dg-add-options arm_neon } */
46316
46317 #include "arm_neon.h"
46318
46319 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhs16.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhs16.c
46320 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhs16.c 2007-07-25 14:28:31.000000000 +0200
46321 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhs16.c 2010-01-25 09:50:29.455686248 +0100
46322 @@ -3,7 +3,8 @@
46323
46324 /* { dg-do assemble } */
46325 /* { dg-require-effective-target arm_neon_ok } */
46326 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46327 +/* { dg-options "-save-temps -O0" } */
46328 +/* { dg-add-options arm_neon } */
46329
46330 #include "arm_neon.h"
46331
46332 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhs32.c b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhs32.c
46333 --- a/gcc/testsuite/gcc.target/arm/neon/vqRdmulhs32.c 2007-07-25 14:28:31.000000000 +0200
46334 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRdmulhs32.c 2010-01-25 09:50:29.455686248 +0100
46335 @@ -3,7 +3,8 @@
46336
46337 /* { dg-do assemble } */
46338 /* { dg-require-effective-target arm_neon_ok } */
46339 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46340 +/* { dg-options "-save-temps -O0" } */
46341 +/* { dg-add-options arm_neon } */
46342
46343 #include "arm_neon.h"
46344
46345 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlQs16.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlQs16.c
46346 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlQs16.c 2007-07-25 14:28:31.000000000 +0200
46347 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlQs16.c 2010-01-25 09:50:29.455686248 +0100
46348 @@ -3,7 +3,8 @@
46349
46350 /* { dg-do assemble } */
46351 /* { dg-require-effective-target arm_neon_ok } */
46352 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46353 +/* { dg-options "-save-temps -O0" } */
46354 +/* { dg-add-options arm_neon } */
46355
46356 #include "arm_neon.h"
46357
46358 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlQs32.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlQs32.c
46359 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlQs32.c 2007-07-25 14:28:31.000000000 +0200
46360 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlQs32.c 2010-01-25 09:50:29.455686248 +0100
46361 @@ -3,7 +3,8 @@
46362
46363 /* { dg-do assemble } */
46364 /* { dg-require-effective-target arm_neon_ok } */
46365 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46366 +/* { dg-options "-save-temps -O0" } */
46367 +/* { dg-add-options arm_neon } */
46368
46369 #include "arm_neon.h"
46370
46371 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlQs64.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlQs64.c
46372 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlQs64.c 2007-07-25 14:28:31.000000000 +0200
46373 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlQs64.c 2010-01-25 09:50:29.455686248 +0100
46374 @@ -3,7 +3,8 @@
46375
46376 /* { dg-do assemble } */
46377 /* { dg-require-effective-target arm_neon_ok } */
46378 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46379 +/* { dg-options "-save-temps -O0" } */
46380 +/* { dg-add-options arm_neon } */
46381
46382 #include "arm_neon.h"
46383
46384 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlQs8.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlQs8.c
46385 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlQs8.c 2007-07-25 14:28:31.000000000 +0200
46386 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlQs8.c 2010-01-25 09:50:29.455686248 +0100
46387 @@ -3,7 +3,8 @@
46388
46389 /* { dg-do assemble } */
46390 /* { dg-require-effective-target arm_neon_ok } */
46391 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46392 +/* { dg-options "-save-temps -O0" } */
46393 +/* { dg-add-options arm_neon } */
46394
46395 #include "arm_neon.h"
46396
46397 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlQu16.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlQu16.c
46398 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlQu16.c 2007-07-25 14:28:31.000000000 +0200
46399 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlQu16.c 2010-01-25 09:50:29.455686248 +0100
46400 @@ -3,7 +3,8 @@
46401
46402 /* { dg-do assemble } */
46403 /* { dg-require-effective-target arm_neon_ok } */
46404 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46405 +/* { dg-options "-save-temps -O0" } */
46406 +/* { dg-add-options arm_neon } */
46407
46408 #include "arm_neon.h"
46409
46410 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlQu32.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlQu32.c
46411 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlQu32.c 2007-07-25 14:28:31.000000000 +0200
46412 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlQu32.c 2010-01-25 09:50:29.455686248 +0100
46413 @@ -3,7 +3,8 @@
46414
46415 /* { dg-do assemble } */
46416 /* { dg-require-effective-target arm_neon_ok } */
46417 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46418 +/* { dg-options "-save-temps -O0" } */
46419 +/* { dg-add-options arm_neon } */
46420
46421 #include "arm_neon.h"
46422
46423 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlQu64.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlQu64.c
46424 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlQu64.c 2007-07-25 14:28:31.000000000 +0200
46425 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlQu64.c 2010-01-25 09:50:29.455686248 +0100
46426 @@ -3,7 +3,8 @@
46427
46428 /* { dg-do assemble } */
46429 /* { dg-require-effective-target arm_neon_ok } */
46430 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46431 +/* { dg-options "-save-temps -O0" } */
46432 +/* { dg-add-options arm_neon } */
46433
46434 #include "arm_neon.h"
46435
46436 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlQu8.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlQu8.c
46437 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlQu8.c 2007-07-25 14:28:31.000000000 +0200
46438 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlQu8.c 2010-01-25 09:50:29.455686248 +0100
46439 @@ -3,7 +3,8 @@
46440
46441 /* { dg-do assemble } */
46442 /* { dg-require-effective-target arm_neon_ok } */
46443 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46444 +/* { dg-options "-save-temps -O0" } */
46445 +/* { dg-add-options arm_neon } */
46446
46447 #include "arm_neon.h"
46448
46449 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshls16.c b/gcc/testsuite/gcc.target/arm/neon/vqRshls16.c
46450 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshls16.c 2007-07-25 14:28:31.000000000 +0200
46451 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshls16.c 2010-01-25 09:50:29.455686248 +0100
46452 @@ -3,7 +3,8 @@
46453
46454 /* { dg-do assemble } */
46455 /* { dg-require-effective-target arm_neon_ok } */
46456 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46457 +/* { dg-options "-save-temps -O0" } */
46458 +/* { dg-add-options arm_neon } */
46459
46460 #include "arm_neon.h"
46461
46462 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshls32.c b/gcc/testsuite/gcc.target/arm/neon/vqRshls32.c
46463 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshls32.c 2007-07-25 14:28:31.000000000 +0200
46464 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshls32.c 2010-01-25 09:50:29.455686248 +0100
46465 @@ -3,7 +3,8 @@
46466
46467 /* { dg-do assemble } */
46468 /* { dg-require-effective-target arm_neon_ok } */
46469 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46470 +/* { dg-options "-save-temps -O0" } */
46471 +/* { dg-add-options arm_neon } */
46472
46473 #include "arm_neon.h"
46474
46475 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshls64.c b/gcc/testsuite/gcc.target/arm/neon/vqRshls64.c
46476 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshls64.c 2007-07-25 14:28:31.000000000 +0200
46477 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshls64.c 2010-01-25 09:50:29.455686248 +0100
46478 @@ -3,7 +3,8 @@
46479
46480 /* { dg-do assemble } */
46481 /* { dg-require-effective-target arm_neon_ok } */
46482 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46483 +/* { dg-options "-save-temps -O0" } */
46484 +/* { dg-add-options arm_neon } */
46485
46486 #include "arm_neon.h"
46487
46488 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshls8.c b/gcc/testsuite/gcc.target/arm/neon/vqRshls8.c
46489 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshls8.c 2007-07-25 14:28:31.000000000 +0200
46490 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshls8.c 2010-01-25 09:50:29.455686248 +0100
46491 @@ -3,7 +3,8 @@
46492
46493 /* { dg-do assemble } */
46494 /* { dg-require-effective-target arm_neon_ok } */
46495 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46496 +/* { dg-options "-save-temps -O0" } */
46497 +/* { dg-add-options arm_neon } */
46498
46499 #include "arm_neon.h"
46500
46501 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlu16.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlu16.c
46502 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlu16.c 2007-07-25 14:28:31.000000000 +0200
46503 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlu16.c 2010-01-25 09:50:29.455686248 +0100
46504 @@ -3,7 +3,8 @@
46505
46506 /* { dg-do assemble } */
46507 /* { dg-require-effective-target arm_neon_ok } */
46508 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46509 +/* { dg-options "-save-temps -O0" } */
46510 +/* { dg-add-options arm_neon } */
46511
46512 #include "arm_neon.h"
46513
46514 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlu32.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlu32.c
46515 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlu32.c 2007-07-25 14:28:31.000000000 +0200
46516 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlu32.c 2010-01-25 09:50:29.455686248 +0100
46517 @@ -3,7 +3,8 @@
46518
46519 /* { dg-do assemble } */
46520 /* { dg-require-effective-target arm_neon_ok } */
46521 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46522 +/* { dg-options "-save-temps -O0" } */
46523 +/* { dg-add-options arm_neon } */
46524
46525 #include "arm_neon.h"
46526
46527 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlu64.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlu64.c
46528 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlu64.c 2007-07-25 14:28:31.000000000 +0200
46529 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlu64.c 2010-01-25 09:50:29.455686248 +0100
46530 @@ -3,7 +3,8 @@
46531
46532 /* { dg-do assemble } */
46533 /* { dg-require-effective-target arm_neon_ok } */
46534 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46535 +/* { dg-options "-save-temps -O0" } */
46536 +/* { dg-add-options arm_neon } */
46537
46538 #include "arm_neon.h"
46539
46540 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshlu8.c b/gcc/testsuite/gcc.target/arm/neon/vqRshlu8.c
46541 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshlu8.c 2007-07-25 14:28:31.000000000 +0200
46542 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshlu8.c 2010-01-25 09:50:29.455686248 +0100
46543 @@ -3,7 +3,8 @@
46544
46545 /* { dg-do assemble } */
46546 /* { dg-require-effective-target arm_neon_ok } */
46547 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46548 +/* { dg-options "-save-temps -O0" } */
46549 +/* { dg-add-options arm_neon } */
46550
46551 #include "arm_neon.h"
46552
46553 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns16.c
46554 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns16.c 2007-07-25 14:28:31.000000000 +0200
46555 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns16.c 2010-01-25 09:50:29.455686248 +0100
46556 @@ -3,7 +3,8 @@
46557
46558 /* { dg-do assemble } */
46559 /* { dg-require-effective-target arm_neon_ok } */
46560 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46561 +/* { dg-options "-save-temps -O0" } */
46562 +/* { dg-add-options arm_neon } */
46563
46564 #include "arm_neon.h"
46565
46566 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns32.c
46567 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns32.c 2007-07-25 14:28:31.000000000 +0200
46568 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns32.c 2010-01-25 09:50:29.455686248 +0100
46569 @@ -3,7 +3,8 @@
46570
46571 /* { dg-do assemble } */
46572 /* { dg-require-effective-target arm_neon_ok } */
46573 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46574 +/* { dg-options "-save-temps -O0" } */
46575 +/* { dg-add-options arm_neon } */
46576
46577 #include "arm_neon.h"
46578
46579 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns64.c
46580 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns64.c 2007-07-25 14:28:31.000000000 +0200
46581 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_ns64.c 2010-01-25 09:50:29.455686248 +0100
46582 @@ -3,7 +3,8 @@
46583
46584 /* { dg-do assemble } */
46585 /* { dg-require-effective-target arm_neon_ok } */
46586 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46587 +/* { dg-options "-save-temps -O0" } */
46588 +/* { dg-add-options arm_neon } */
46589
46590 #include "arm_neon.h"
46591
46592 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu16.c
46593 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu16.c 2007-07-25 14:28:31.000000000 +0200
46594 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu16.c 2010-01-25 09:50:29.455686248 +0100
46595 @@ -3,7 +3,8 @@
46596
46597 /* { dg-do assemble } */
46598 /* { dg-require-effective-target arm_neon_ok } */
46599 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46600 +/* { dg-options "-save-temps -O0" } */
46601 +/* { dg-add-options arm_neon } */
46602
46603 #include "arm_neon.h"
46604
46605 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu32.c
46606 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu32.c 2007-07-25 14:28:31.000000000 +0200
46607 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu32.c 2010-01-25 09:50:29.455686248 +0100
46608 @@ -3,7 +3,8 @@
46609
46610 /* { dg-do assemble } */
46611 /* { dg-require-effective-target arm_neon_ok } */
46612 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46613 +/* { dg-options "-save-temps -O0" } */
46614 +/* { dg-add-options arm_neon } */
46615
46616 #include "arm_neon.h"
46617
46618 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu64.c
46619 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu64.c 2007-07-25 14:28:31.000000000 +0200
46620 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrn_nu64.c 2010-01-25 09:50:29.455686248 +0100
46621 @@ -3,7 +3,8 @@
46622
46623 /* { dg-do assemble } */
46624 /* { dg-require-effective-target arm_neon_ok } */
46625 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46626 +/* { dg-options "-save-temps -O0" } */
46627 +/* { dg-add-options arm_neon } */
46628
46629 #include "arm_neon.h"
46630
46631 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns16.c
46632 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns16.c 2007-07-25 14:28:31.000000000 +0200
46633 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns16.c 2010-01-25 09:50:29.455686248 +0100
46634 @@ -3,7 +3,8 @@
46635
46636 /* { dg-do assemble } */
46637 /* { dg-require-effective-target arm_neon_ok } */
46638 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46639 +/* { dg-options "-save-temps -O0" } */
46640 +/* { dg-add-options arm_neon } */
46641
46642 #include "arm_neon.h"
46643
46644 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns32.c
46645 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns32.c 2007-07-25 14:28:31.000000000 +0200
46646 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns32.c 2010-01-25 09:50:29.455686248 +0100
46647 @@ -3,7 +3,8 @@
46648
46649 /* { dg-do assemble } */
46650 /* { dg-require-effective-target arm_neon_ok } */
46651 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46652 +/* { dg-options "-save-temps -O0" } */
46653 +/* { dg-add-options arm_neon } */
46654
46655 #include "arm_neon.h"
46656
46657 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns64.c
46658 --- a/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns64.c 2007-07-25 14:28:31.000000000 +0200
46659 +++ b/gcc/testsuite/gcc.target/arm/neon/vqRshrun_ns64.c 2010-01-25 09:50:29.455686248 +0100
46660 @@ -3,7 +3,8 @@
46661
46662 /* { dg-do assemble } */
46663 /* { dg-require-effective-target arm_neon_ok } */
46664 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46665 +/* { dg-options "-save-temps -O0" } */
46666 +/* { dg-add-options arm_neon } */
46667
46668 #include "arm_neon.h"
46669
46670 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshl_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqshl_ns16.c
46671 --- a/gcc/testsuite/gcc.target/arm/neon/vqshl_ns16.c 2007-07-25 14:28:31.000000000 +0200
46672 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshl_ns16.c 2010-01-25 09:50:29.455686248 +0100
46673 @@ -3,7 +3,8 @@
46674
46675 /* { dg-do assemble } */
46676 /* { dg-require-effective-target arm_neon_ok } */
46677 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46678 +/* { dg-options "-save-temps -O0" } */
46679 +/* { dg-add-options arm_neon } */
46680
46681 #include "arm_neon.h"
46682
46683 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshl_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqshl_ns32.c
46684 --- a/gcc/testsuite/gcc.target/arm/neon/vqshl_ns32.c 2007-07-25 14:28:31.000000000 +0200
46685 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshl_ns32.c 2010-01-25 09:50:29.455686248 +0100
46686 @@ -3,7 +3,8 @@
46687
46688 /* { dg-do assemble } */
46689 /* { dg-require-effective-target arm_neon_ok } */
46690 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46691 +/* { dg-options "-save-temps -O0" } */
46692 +/* { dg-add-options arm_neon } */
46693
46694 #include "arm_neon.h"
46695
46696 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshl_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vqshl_ns64.c
46697 --- a/gcc/testsuite/gcc.target/arm/neon/vqshl_ns64.c 2007-07-25 14:28:31.000000000 +0200
46698 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshl_ns64.c 2010-01-25 09:50:29.455686248 +0100
46699 @@ -3,7 +3,8 @@
46700
46701 /* { dg-do assemble } */
46702 /* { dg-require-effective-target arm_neon_ok } */
46703 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46704 +/* { dg-options "-save-temps -O0" } */
46705 +/* { dg-add-options arm_neon } */
46706
46707 #include "arm_neon.h"
46708
46709 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshl_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vqshl_ns8.c
46710 --- a/gcc/testsuite/gcc.target/arm/neon/vqshl_ns8.c 2007-07-25 14:28:31.000000000 +0200
46711 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshl_ns8.c 2010-01-25 09:50:29.455686248 +0100
46712 @@ -3,7 +3,8 @@
46713
46714 /* { dg-do assemble } */
46715 /* { dg-require-effective-target arm_neon_ok } */
46716 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46717 +/* { dg-options "-save-temps -O0" } */
46718 +/* { dg-add-options arm_neon } */
46719
46720 #include "arm_neon.h"
46721
46722 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshl_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vqshl_nu16.c
46723 --- a/gcc/testsuite/gcc.target/arm/neon/vqshl_nu16.c 2007-07-25 14:28:31.000000000 +0200
46724 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshl_nu16.c 2010-01-25 09:50:29.455686248 +0100
46725 @@ -3,7 +3,8 @@
46726
46727 /* { dg-do assemble } */
46728 /* { dg-require-effective-target arm_neon_ok } */
46729 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46730 +/* { dg-options "-save-temps -O0" } */
46731 +/* { dg-add-options arm_neon } */
46732
46733 #include "arm_neon.h"
46734
46735 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshl_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vqshl_nu32.c
46736 --- a/gcc/testsuite/gcc.target/arm/neon/vqshl_nu32.c 2007-07-25 14:28:31.000000000 +0200
46737 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshl_nu32.c 2010-01-25 09:50:29.455686248 +0100
46738 @@ -3,7 +3,8 @@
46739
46740 /* { dg-do assemble } */
46741 /* { dg-require-effective-target arm_neon_ok } */
46742 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46743 +/* { dg-options "-save-temps -O0" } */
46744 +/* { dg-add-options arm_neon } */
46745
46746 #include "arm_neon.h"
46747
46748 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshl_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vqshl_nu64.c
46749 --- a/gcc/testsuite/gcc.target/arm/neon/vqshl_nu64.c 2007-07-25 14:28:31.000000000 +0200
46750 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshl_nu64.c 2010-01-25 09:50:29.455686248 +0100
46751 @@ -3,7 +3,8 @@
46752
46753 /* { dg-do assemble } */
46754 /* { dg-require-effective-target arm_neon_ok } */
46755 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46756 +/* { dg-options "-save-temps -O0" } */
46757 +/* { dg-add-options arm_neon } */
46758
46759 #include "arm_neon.h"
46760
46761 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshl_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vqshl_nu8.c
46762 --- a/gcc/testsuite/gcc.target/arm/neon/vqshl_nu8.c 2007-07-25 14:28:31.000000000 +0200
46763 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshl_nu8.c 2010-01-25 09:50:29.455686248 +0100
46764 @@ -3,7 +3,8 @@
46765
46766 /* { dg-do assemble } */
46767 /* { dg-require-effective-target arm_neon_ok } */
46768 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46769 +/* { dg-options "-save-temps -O0" } */
46770 +/* { dg-add-options arm_neon } */
46771
46772 #include "arm_neon.h"
46773
46774 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns16.c
46775 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
46776 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns16.c 2010-01-25 09:50:29.455686248 +0100
46777 @@ -3,7 +3,8 @@
46778
46779 /* { dg-do assemble } */
46780 /* { dg-require-effective-target arm_neon_ok } */
46781 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46782 +/* { dg-options "-save-temps -O0" } */
46783 +/* { dg-add-options arm_neon } */
46784
46785 #include "arm_neon.h"
46786
46787 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns32.c
46788 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
46789 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns32.c 2010-01-25 09:50:29.455686248 +0100
46790 @@ -3,7 +3,8 @@
46791
46792 /* { dg-do assemble } */
46793 /* { dg-require-effective-target arm_neon_ok } */
46794 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46795 +/* { dg-options "-save-temps -O0" } */
46796 +/* { dg-add-options arm_neon } */
46797
46798 #include "arm_neon.h"
46799
46800 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns64.c
46801 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
46802 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns64.c 2010-01-25 09:50:29.455686248 +0100
46803 @@ -3,7 +3,8 @@
46804
46805 /* { dg-do assemble } */
46806 /* { dg-require-effective-target arm_neon_ok } */
46807 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46808 +/* { dg-options "-save-temps -O0" } */
46809 +/* { dg-add-options arm_neon } */
46810
46811 #include "arm_neon.h"
46812
46813 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns8.c
46814 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
46815 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_ns8.c 2010-01-25 09:50:29.455686248 +0100
46816 @@ -3,7 +3,8 @@
46817
46818 /* { dg-do assemble } */
46819 /* { dg-require-effective-target arm_neon_ok } */
46820 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46821 +/* { dg-options "-save-temps -O0" } */
46822 +/* { dg-add-options arm_neon } */
46823
46824 #include "arm_neon.h"
46825
46826 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu16.c
46827 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
46828 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu16.c 2010-01-25 09:50:29.455686248 +0100
46829 @@ -3,7 +3,8 @@
46830
46831 /* { dg-do assemble } */
46832 /* { dg-require-effective-target arm_neon_ok } */
46833 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46834 +/* { dg-options "-save-temps -O0" } */
46835 +/* { dg-add-options arm_neon } */
46836
46837 #include "arm_neon.h"
46838
46839 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu32.c
46840 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
46841 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu32.c 2010-01-25 09:50:29.455686248 +0100
46842 @@ -3,7 +3,8 @@
46843
46844 /* { dg-do assemble } */
46845 /* { dg-require-effective-target arm_neon_ok } */
46846 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46847 +/* { dg-options "-save-temps -O0" } */
46848 +/* { dg-add-options arm_neon } */
46849
46850 #include "arm_neon.h"
46851
46852 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu64.c
46853 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
46854 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu64.c 2010-01-25 09:50:29.455686248 +0100
46855 @@ -3,7 +3,8 @@
46856
46857 /* { dg-do assemble } */
46858 /* { dg-require-effective-target arm_neon_ok } */
46859 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46860 +/* { dg-options "-save-temps -O0" } */
46861 +/* { dg-add-options arm_neon } */
46862
46863 #include "arm_neon.h"
46864
46865 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu8.c
46866 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
46867 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQ_nu8.c 2010-01-25 09:50:29.455686248 +0100
46868 @@ -3,7 +3,8 @@
46869
46870 /* { dg-do assemble } */
46871 /* { dg-require-effective-target arm_neon_ok } */
46872 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46873 +/* { dg-options "-save-temps -O0" } */
46874 +/* { dg-add-options arm_neon } */
46875
46876 #include "arm_neon.h"
46877
46878 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQs16.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQs16.c
46879 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQs16.c 2007-07-25 14:28:31.000000000 +0200
46880 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQs16.c 2010-01-25 09:50:29.455686248 +0100
46881 @@ -3,7 +3,8 @@
46882
46883 /* { dg-do assemble } */
46884 /* { dg-require-effective-target arm_neon_ok } */
46885 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46886 +/* { dg-options "-save-temps -O0" } */
46887 +/* { dg-add-options arm_neon } */
46888
46889 #include "arm_neon.h"
46890
46891 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQs32.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQs32.c
46892 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQs32.c 2007-07-25 14:28:31.000000000 +0200
46893 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQs32.c 2010-01-25 09:50:29.455686248 +0100
46894 @@ -3,7 +3,8 @@
46895
46896 /* { dg-do assemble } */
46897 /* { dg-require-effective-target arm_neon_ok } */
46898 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46899 +/* { dg-options "-save-temps -O0" } */
46900 +/* { dg-add-options arm_neon } */
46901
46902 #include "arm_neon.h"
46903
46904 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQs64.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQs64.c
46905 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQs64.c 2007-07-25 14:28:31.000000000 +0200
46906 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQs64.c 2010-01-25 09:50:29.455686248 +0100
46907 @@ -3,7 +3,8 @@
46908
46909 /* { dg-do assemble } */
46910 /* { dg-require-effective-target arm_neon_ok } */
46911 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46912 +/* { dg-options "-save-temps -O0" } */
46913 +/* { dg-add-options arm_neon } */
46914
46915 #include "arm_neon.h"
46916
46917 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQs8.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQs8.c
46918 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQs8.c 2007-07-25 14:28:31.000000000 +0200
46919 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQs8.c 2010-01-25 09:50:29.455686248 +0100
46920 @@ -3,7 +3,8 @@
46921
46922 /* { dg-do assemble } */
46923 /* { dg-require-effective-target arm_neon_ok } */
46924 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46925 +/* { dg-options "-save-temps -O0" } */
46926 +/* { dg-add-options arm_neon } */
46927
46928 #include "arm_neon.h"
46929
46930 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQu16.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQu16.c
46931 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQu16.c 2007-07-25 14:28:31.000000000 +0200
46932 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQu16.c 2010-01-25 09:50:29.455686248 +0100
46933 @@ -3,7 +3,8 @@
46934
46935 /* { dg-do assemble } */
46936 /* { dg-require-effective-target arm_neon_ok } */
46937 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46938 +/* { dg-options "-save-temps -O0" } */
46939 +/* { dg-add-options arm_neon } */
46940
46941 #include "arm_neon.h"
46942
46943 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQu32.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQu32.c
46944 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQu32.c 2007-07-25 14:28:31.000000000 +0200
46945 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQu32.c 2010-01-25 09:50:29.455686248 +0100
46946 @@ -3,7 +3,8 @@
46947
46948 /* { dg-do assemble } */
46949 /* { dg-require-effective-target arm_neon_ok } */
46950 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46951 +/* { dg-options "-save-temps -O0" } */
46952 +/* { dg-add-options arm_neon } */
46953
46954 #include "arm_neon.h"
46955
46956 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQu64.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQu64.c
46957 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQu64.c 2007-07-25 14:28:31.000000000 +0200
46958 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQu64.c 2010-01-25 09:50:29.455686248 +0100
46959 @@ -3,7 +3,8 @@
46960
46961 /* { dg-do assemble } */
46962 /* { dg-require-effective-target arm_neon_ok } */
46963 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46964 +/* { dg-options "-save-temps -O0" } */
46965 +/* { dg-add-options arm_neon } */
46966
46967 #include "arm_neon.h"
46968
46969 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlQu8.c b/gcc/testsuite/gcc.target/arm/neon/vqshlQu8.c
46970 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlQu8.c 2007-07-25 14:28:31.000000000 +0200
46971 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlQu8.c 2010-01-25 09:50:29.455686248 +0100
46972 @@ -3,7 +3,8 @@
46973
46974 /* { dg-do assemble } */
46975 /* { dg-require-effective-target arm_neon_ok } */
46976 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46977 +/* { dg-options "-save-temps -O0" } */
46978 +/* { dg-add-options arm_neon } */
46979
46980 #include "arm_neon.h"
46981
46982 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshls16.c b/gcc/testsuite/gcc.target/arm/neon/vqshls16.c
46983 --- a/gcc/testsuite/gcc.target/arm/neon/vqshls16.c 2007-07-25 14:28:31.000000000 +0200
46984 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshls16.c 2010-01-25 09:50:29.455686248 +0100
46985 @@ -3,7 +3,8 @@
46986
46987 /* { dg-do assemble } */
46988 /* { dg-require-effective-target arm_neon_ok } */
46989 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
46990 +/* { dg-options "-save-temps -O0" } */
46991 +/* { dg-add-options arm_neon } */
46992
46993 #include "arm_neon.h"
46994
46995 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshls32.c b/gcc/testsuite/gcc.target/arm/neon/vqshls32.c
46996 --- a/gcc/testsuite/gcc.target/arm/neon/vqshls32.c 2007-07-25 14:28:31.000000000 +0200
46997 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshls32.c 2010-01-25 09:50:29.455686248 +0100
46998 @@ -3,7 +3,8 @@
46999
47000 /* { dg-do assemble } */
47001 /* { dg-require-effective-target arm_neon_ok } */
47002 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47003 +/* { dg-options "-save-temps -O0" } */
47004 +/* { dg-add-options arm_neon } */
47005
47006 #include "arm_neon.h"
47007
47008 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshls64.c b/gcc/testsuite/gcc.target/arm/neon/vqshls64.c
47009 --- a/gcc/testsuite/gcc.target/arm/neon/vqshls64.c 2007-07-25 14:28:31.000000000 +0200
47010 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshls64.c 2010-01-25 09:50:29.455686248 +0100
47011 @@ -3,7 +3,8 @@
47012
47013 /* { dg-do assemble } */
47014 /* { dg-require-effective-target arm_neon_ok } */
47015 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47016 +/* { dg-options "-save-temps -O0" } */
47017 +/* { dg-add-options arm_neon } */
47018
47019 #include "arm_neon.h"
47020
47021 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshls8.c b/gcc/testsuite/gcc.target/arm/neon/vqshls8.c
47022 --- a/gcc/testsuite/gcc.target/arm/neon/vqshls8.c 2007-07-25 14:28:31.000000000 +0200
47023 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshls8.c 2010-01-25 09:50:29.455686248 +0100
47024 @@ -3,7 +3,8 @@
47025
47026 /* { dg-do assemble } */
47027 /* { dg-require-effective-target arm_neon_ok } */
47028 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47029 +/* { dg-options "-save-temps -O0" } */
47030 +/* { dg-add-options arm_neon } */
47031
47032 #include "arm_neon.h"
47033
47034 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlu16.c b/gcc/testsuite/gcc.target/arm/neon/vqshlu16.c
47035 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlu16.c 2007-07-25 14:28:31.000000000 +0200
47036 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlu16.c 2010-01-25 09:50:29.455686248 +0100
47037 @@ -3,7 +3,8 @@
47038
47039 /* { dg-do assemble } */
47040 /* { dg-require-effective-target arm_neon_ok } */
47041 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47042 +/* { dg-options "-save-temps -O0" } */
47043 +/* { dg-add-options arm_neon } */
47044
47045 #include "arm_neon.h"
47046
47047 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlu32.c b/gcc/testsuite/gcc.target/arm/neon/vqshlu32.c
47048 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlu32.c 2007-07-25 14:28:31.000000000 +0200
47049 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlu32.c 2010-01-25 09:50:29.455686248 +0100
47050 @@ -3,7 +3,8 @@
47051
47052 /* { dg-do assemble } */
47053 /* { dg-require-effective-target arm_neon_ok } */
47054 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47055 +/* { dg-options "-save-temps -O0" } */
47056 +/* { dg-add-options arm_neon } */
47057
47058 #include "arm_neon.h"
47059
47060 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlu64.c b/gcc/testsuite/gcc.target/arm/neon/vqshlu64.c
47061 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlu64.c 2007-07-25 14:28:31.000000000 +0200
47062 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlu64.c 2010-01-25 09:50:29.455686248 +0100
47063 @@ -3,7 +3,8 @@
47064
47065 /* { dg-do assemble } */
47066 /* { dg-require-effective-target arm_neon_ok } */
47067 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47068 +/* { dg-options "-save-temps -O0" } */
47069 +/* { dg-add-options arm_neon } */
47070
47071 #include "arm_neon.h"
47072
47073 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlu8.c b/gcc/testsuite/gcc.target/arm/neon/vqshlu8.c
47074 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlu8.c 2007-07-25 14:28:31.000000000 +0200
47075 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlu8.c 2010-01-25 09:50:29.455686248 +0100
47076 @@ -3,7 +3,8 @@
47077
47078 /* { dg-do assemble } */
47079 /* { dg-require-effective-target arm_neon_ok } */
47080 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47081 +/* { dg-options "-save-temps -O0" } */
47082 +/* { dg-add-options arm_neon } */
47083
47084 #include "arm_neon.h"
47085
47086 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns16.c
47087 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns16.c 2007-07-25 14:28:31.000000000 +0200
47088 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns16.c 2010-01-25 09:50:29.455686248 +0100
47089 @@ -3,7 +3,8 @@
47090
47091 /* { dg-do assemble } */
47092 /* { dg-require-effective-target arm_neon_ok } */
47093 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47094 +/* { dg-options "-save-temps -O0" } */
47095 +/* { dg-add-options arm_neon } */
47096
47097 #include "arm_neon.h"
47098
47099 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns32.c
47100 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns32.c 2007-07-25 14:28:31.000000000 +0200
47101 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns32.c 2010-01-25 09:50:29.455686248 +0100
47102 @@ -3,7 +3,8 @@
47103
47104 /* { dg-do assemble } */
47105 /* { dg-require-effective-target arm_neon_ok } */
47106 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47107 +/* { dg-options "-save-temps -O0" } */
47108 +/* { dg-add-options arm_neon } */
47109
47110 #include "arm_neon.h"
47111
47112 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns64.c
47113 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns64.c 2007-07-25 14:28:31.000000000 +0200
47114 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns64.c 2010-01-25 09:50:29.455686248 +0100
47115 @@ -3,7 +3,8 @@
47116
47117 /* { dg-do assemble } */
47118 /* { dg-require-effective-target arm_neon_ok } */
47119 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47120 +/* { dg-options "-save-temps -O0" } */
47121 +/* { dg-add-options arm_neon } */
47122
47123 #include "arm_neon.h"
47124
47125 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns8.c
47126 --- a/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns8.c 2007-07-25 14:28:31.000000000 +0200
47127 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshlu_ns8.c 2010-01-25 09:50:29.455686248 +0100
47128 @@ -3,7 +3,8 @@
47129
47130 /* { dg-do assemble } */
47131 /* { dg-require-effective-target arm_neon_ok } */
47132 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47133 +/* { dg-options "-save-temps -O0" } */
47134 +/* { dg-add-options arm_neon } */
47135
47136 #include "arm_neon.h"
47137
47138 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns16.c
47139 --- a/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
47140 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns16.c 2010-01-25 09:50:29.455686248 +0100
47141 @@ -3,7 +3,8 @@
47142
47143 /* { dg-do assemble } */
47144 /* { dg-require-effective-target arm_neon_ok } */
47145 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47146 +/* { dg-options "-save-temps -O0" } */
47147 +/* { dg-add-options arm_neon } */
47148
47149 #include "arm_neon.h"
47150
47151 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns32.c
47152 --- a/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
47153 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns32.c 2010-01-25 09:50:29.455686248 +0100
47154 @@ -3,7 +3,8 @@
47155
47156 /* { dg-do assemble } */
47157 /* { dg-require-effective-target arm_neon_ok } */
47158 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47159 +/* { dg-options "-save-temps -O0" } */
47160 +/* { dg-add-options arm_neon } */
47161
47162 #include "arm_neon.h"
47163
47164 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns64.c
47165 --- a/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
47166 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns64.c 2010-01-25 09:50:29.455686248 +0100
47167 @@ -3,7 +3,8 @@
47168
47169 /* { dg-do assemble } */
47170 /* { dg-require-effective-target arm_neon_ok } */
47171 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47172 +/* { dg-options "-save-temps -O0" } */
47173 +/* { dg-add-options arm_neon } */
47174
47175 #include "arm_neon.h"
47176
47177 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns8.c
47178 --- a/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
47179 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshluQ_ns8.c 2010-01-25 09:50:29.455686248 +0100
47180 @@ -3,7 +3,8 @@
47181
47182 /* { dg-do assemble } */
47183 /* { dg-require-effective-target arm_neon_ok } */
47184 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47185 +/* { dg-options "-save-temps -O0" } */
47186 +/* { dg-add-options arm_neon } */
47187
47188 #include "arm_neon.h"
47189
47190 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns16.c
47191 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns16.c 2007-07-25 14:28:31.000000000 +0200
47192 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns16.c 2010-01-25 09:50:29.455686248 +0100
47193 @@ -3,7 +3,8 @@
47194
47195 /* { dg-do assemble } */
47196 /* { dg-require-effective-target arm_neon_ok } */
47197 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47198 +/* { dg-options "-save-temps -O0" } */
47199 +/* { dg-add-options arm_neon } */
47200
47201 #include "arm_neon.h"
47202
47203 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns32.c
47204 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns32.c 2007-07-25 14:28:31.000000000 +0200
47205 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns32.c 2010-01-25 09:50:29.455686248 +0100
47206 @@ -3,7 +3,8 @@
47207
47208 /* { dg-do assemble } */
47209 /* { dg-require-effective-target arm_neon_ok } */
47210 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47211 +/* { dg-options "-save-temps -O0" } */
47212 +/* { dg-add-options arm_neon } */
47213
47214 #include "arm_neon.h"
47215
47216 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns64.c
47217 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns64.c 2007-07-25 14:28:31.000000000 +0200
47218 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrn_ns64.c 2010-01-25 09:50:29.455686248 +0100
47219 @@ -3,7 +3,8 @@
47220
47221 /* { dg-do assemble } */
47222 /* { dg-require-effective-target arm_neon_ok } */
47223 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47224 +/* { dg-options "-save-temps -O0" } */
47225 +/* { dg-add-options arm_neon } */
47226
47227 #include "arm_neon.h"
47228
47229 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu16.c
47230 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu16.c 2007-07-25 14:28:31.000000000 +0200
47231 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu16.c 2010-01-25 09:50:29.455686248 +0100
47232 @@ -3,7 +3,8 @@
47233
47234 /* { dg-do assemble } */
47235 /* { dg-require-effective-target arm_neon_ok } */
47236 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47237 +/* { dg-options "-save-temps -O0" } */
47238 +/* { dg-add-options arm_neon } */
47239
47240 #include "arm_neon.h"
47241
47242 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu32.c
47243 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu32.c 2007-07-25 14:28:31.000000000 +0200
47244 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu32.c 2010-01-25 09:50:29.455686248 +0100
47245 @@ -3,7 +3,8 @@
47246
47247 /* { dg-do assemble } */
47248 /* { dg-require-effective-target arm_neon_ok } */
47249 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47250 +/* { dg-options "-save-temps -O0" } */
47251 +/* { dg-add-options arm_neon } */
47252
47253 #include "arm_neon.h"
47254
47255 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu64.c
47256 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu64.c 2007-07-25 14:28:31.000000000 +0200
47257 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrn_nu64.c 2010-01-25 09:50:29.465686681 +0100
47258 @@ -3,7 +3,8 @@
47259
47260 /* { dg-do assemble } */
47261 /* { dg-require-effective-target arm_neon_ok } */
47262 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47263 +/* { dg-options "-save-temps -O0" } */
47264 +/* { dg-add-options arm_neon } */
47265
47266 #include "arm_neon.h"
47267
47268 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns16.c
47269 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns16.c 2007-07-25 14:28:31.000000000 +0200
47270 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns16.c 2010-01-25 09:50:29.465686681 +0100
47271 @@ -3,7 +3,8 @@
47272
47273 /* { dg-do assemble } */
47274 /* { dg-require-effective-target arm_neon_ok } */
47275 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47276 +/* { dg-options "-save-temps -O0" } */
47277 +/* { dg-add-options arm_neon } */
47278
47279 #include "arm_neon.h"
47280
47281 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns32.c
47282 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns32.c 2007-07-25 14:28:31.000000000 +0200
47283 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns32.c 2010-01-25 09:50:29.465686681 +0100
47284 @@ -3,7 +3,8 @@
47285
47286 /* { dg-do assemble } */
47287 /* { dg-require-effective-target arm_neon_ok } */
47288 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47289 +/* { dg-options "-save-temps -O0" } */
47290 +/* { dg-add-options arm_neon } */
47291
47292 #include "arm_neon.h"
47293
47294 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns64.c
47295 --- a/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns64.c 2007-07-25 14:28:31.000000000 +0200
47296 +++ b/gcc/testsuite/gcc.target/arm/neon/vqshrun_ns64.c 2010-01-25 09:50:29.465686681 +0100
47297 @@ -3,7 +3,8 @@
47298
47299 /* { dg-do assemble } */
47300 /* { dg-require-effective-target arm_neon_ok } */
47301 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47302 +/* { dg-options "-save-temps -O0" } */
47303 +/* { dg-add-options arm_neon } */
47304
47305 #include "arm_neon.h"
47306
47307 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubQs16.c b/gcc/testsuite/gcc.target/arm/neon/vqsubQs16.c
47308 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubQs16.c 2007-07-25 14:28:31.000000000 +0200
47309 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubQs16.c 2010-01-25 09:50:29.465686681 +0100
47310 @@ -3,7 +3,8 @@
47311
47312 /* { dg-do assemble } */
47313 /* { dg-require-effective-target arm_neon_ok } */
47314 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47315 +/* { dg-options "-save-temps -O0" } */
47316 +/* { dg-add-options arm_neon } */
47317
47318 #include "arm_neon.h"
47319
47320 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubQs32.c b/gcc/testsuite/gcc.target/arm/neon/vqsubQs32.c
47321 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubQs32.c 2007-07-25 14:28:31.000000000 +0200
47322 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubQs32.c 2010-01-25 09:50:29.465686681 +0100
47323 @@ -3,7 +3,8 @@
47324
47325 /* { dg-do assemble } */
47326 /* { dg-require-effective-target arm_neon_ok } */
47327 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47328 +/* { dg-options "-save-temps -O0" } */
47329 +/* { dg-add-options arm_neon } */
47330
47331 #include "arm_neon.h"
47332
47333 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubQs64.c b/gcc/testsuite/gcc.target/arm/neon/vqsubQs64.c
47334 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubQs64.c 2007-07-25 14:28:31.000000000 +0200
47335 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubQs64.c 2010-01-25 09:50:29.465686681 +0100
47336 @@ -3,7 +3,8 @@
47337
47338 /* { dg-do assemble } */
47339 /* { dg-require-effective-target arm_neon_ok } */
47340 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47341 +/* { dg-options "-save-temps -O0" } */
47342 +/* { dg-add-options arm_neon } */
47343
47344 #include "arm_neon.h"
47345
47346 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubQs8.c b/gcc/testsuite/gcc.target/arm/neon/vqsubQs8.c
47347 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubQs8.c 2007-07-25 14:28:31.000000000 +0200
47348 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubQs8.c 2010-01-25 09:50:29.465686681 +0100
47349 @@ -3,7 +3,8 @@
47350
47351 /* { dg-do assemble } */
47352 /* { dg-require-effective-target arm_neon_ok } */
47353 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47354 +/* { dg-options "-save-temps -O0" } */
47355 +/* { dg-add-options arm_neon } */
47356
47357 #include "arm_neon.h"
47358
47359 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubQu16.c b/gcc/testsuite/gcc.target/arm/neon/vqsubQu16.c
47360 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubQu16.c 2007-07-25 14:28:31.000000000 +0200
47361 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubQu16.c 2010-01-25 09:50:29.465686681 +0100
47362 @@ -3,7 +3,8 @@
47363
47364 /* { dg-do assemble } */
47365 /* { dg-require-effective-target arm_neon_ok } */
47366 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47367 +/* { dg-options "-save-temps -O0" } */
47368 +/* { dg-add-options arm_neon } */
47369
47370 #include "arm_neon.h"
47371
47372 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubQu32.c b/gcc/testsuite/gcc.target/arm/neon/vqsubQu32.c
47373 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubQu32.c 2007-07-25 14:28:31.000000000 +0200
47374 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubQu32.c 2010-01-25 09:50:29.465686681 +0100
47375 @@ -3,7 +3,8 @@
47376
47377 /* { dg-do assemble } */
47378 /* { dg-require-effective-target arm_neon_ok } */
47379 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47380 +/* { dg-options "-save-temps -O0" } */
47381 +/* { dg-add-options arm_neon } */
47382
47383 #include "arm_neon.h"
47384
47385 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubQu64.c b/gcc/testsuite/gcc.target/arm/neon/vqsubQu64.c
47386 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubQu64.c 2007-07-25 14:28:31.000000000 +0200
47387 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubQu64.c 2010-01-25 09:50:29.465686681 +0100
47388 @@ -3,7 +3,8 @@
47389
47390 /* { dg-do assemble } */
47391 /* { dg-require-effective-target arm_neon_ok } */
47392 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47393 +/* { dg-options "-save-temps -O0" } */
47394 +/* { dg-add-options arm_neon } */
47395
47396 #include "arm_neon.h"
47397
47398 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubQu8.c b/gcc/testsuite/gcc.target/arm/neon/vqsubQu8.c
47399 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubQu8.c 2007-07-25 14:28:31.000000000 +0200
47400 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubQu8.c 2010-01-25 09:50:29.465686681 +0100
47401 @@ -3,7 +3,8 @@
47402
47403 /* { dg-do assemble } */
47404 /* { dg-require-effective-target arm_neon_ok } */
47405 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47406 +/* { dg-options "-save-temps -O0" } */
47407 +/* { dg-add-options arm_neon } */
47408
47409 #include "arm_neon.h"
47410
47411 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubs16.c b/gcc/testsuite/gcc.target/arm/neon/vqsubs16.c
47412 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubs16.c 2007-07-25 14:28:31.000000000 +0200
47413 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubs16.c 2010-01-25 09:50:29.465686681 +0100
47414 @@ -3,7 +3,8 @@
47415
47416 /* { dg-do assemble } */
47417 /* { dg-require-effective-target arm_neon_ok } */
47418 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47419 +/* { dg-options "-save-temps -O0" } */
47420 +/* { dg-add-options arm_neon } */
47421
47422 #include "arm_neon.h"
47423
47424 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubs32.c b/gcc/testsuite/gcc.target/arm/neon/vqsubs32.c
47425 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubs32.c 2007-07-25 14:28:31.000000000 +0200
47426 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubs32.c 2010-01-25 09:50:29.465686681 +0100
47427 @@ -3,7 +3,8 @@
47428
47429 /* { dg-do assemble } */
47430 /* { dg-require-effective-target arm_neon_ok } */
47431 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47432 +/* { dg-options "-save-temps -O0" } */
47433 +/* { dg-add-options arm_neon } */
47434
47435 #include "arm_neon.h"
47436
47437 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubs64.c b/gcc/testsuite/gcc.target/arm/neon/vqsubs64.c
47438 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubs64.c 2007-07-25 14:28:31.000000000 +0200
47439 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubs64.c 2010-01-25 09:50:29.465686681 +0100
47440 @@ -3,7 +3,8 @@
47441
47442 /* { dg-do assemble } */
47443 /* { dg-require-effective-target arm_neon_ok } */
47444 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47445 +/* { dg-options "-save-temps -O0" } */
47446 +/* { dg-add-options arm_neon } */
47447
47448 #include "arm_neon.h"
47449
47450 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubs8.c b/gcc/testsuite/gcc.target/arm/neon/vqsubs8.c
47451 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubs8.c 2007-07-25 14:28:31.000000000 +0200
47452 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubs8.c 2010-01-25 09:50:29.465686681 +0100
47453 @@ -3,7 +3,8 @@
47454
47455 /* { dg-do assemble } */
47456 /* { dg-require-effective-target arm_neon_ok } */
47457 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47458 +/* { dg-options "-save-temps -O0" } */
47459 +/* { dg-add-options arm_neon } */
47460
47461 #include "arm_neon.h"
47462
47463 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubu16.c b/gcc/testsuite/gcc.target/arm/neon/vqsubu16.c
47464 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubu16.c 2007-07-25 14:28:31.000000000 +0200
47465 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubu16.c 2010-01-25 09:50:29.465686681 +0100
47466 @@ -3,7 +3,8 @@
47467
47468 /* { dg-do assemble } */
47469 /* { dg-require-effective-target arm_neon_ok } */
47470 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47471 +/* { dg-options "-save-temps -O0" } */
47472 +/* { dg-add-options arm_neon } */
47473
47474 #include "arm_neon.h"
47475
47476 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubu32.c b/gcc/testsuite/gcc.target/arm/neon/vqsubu32.c
47477 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubu32.c 2007-07-25 14:28:31.000000000 +0200
47478 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubu32.c 2010-01-25 09:50:29.465686681 +0100
47479 @@ -3,7 +3,8 @@
47480
47481 /* { dg-do assemble } */
47482 /* { dg-require-effective-target arm_neon_ok } */
47483 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47484 +/* { dg-options "-save-temps -O0" } */
47485 +/* { dg-add-options arm_neon } */
47486
47487 #include "arm_neon.h"
47488
47489 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubu64.c b/gcc/testsuite/gcc.target/arm/neon/vqsubu64.c
47490 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubu64.c 2007-07-25 14:28:31.000000000 +0200
47491 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubu64.c 2010-01-25 09:50:29.465686681 +0100
47492 @@ -3,7 +3,8 @@
47493
47494 /* { dg-do assemble } */
47495 /* { dg-require-effective-target arm_neon_ok } */
47496 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47497 +/* { dg-options "-save-temps -O0" } */
47498 +/* { dg-add-options arm_neon } */
47499
47500 #include "arm_neon.h"
47501
47502 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vqsubu8.c b/gcc/testsuite/gcc.target/arm/neon/vqsubu8.c
47503 --- a/gcc/testsuite/gcc.target/arm/neon/vqsubu8.c 2007-07-25 14:28:31.000000000 +0200
47504 +++ b/gcc/testsuite/gcc.target/arm/neon/vqsubu8.c 2010-01-25 09:50:29.465686681 +0100
47505 @@ -3,7 +3,8 @@
47506
47507 /* { dg-do assemble } */
47508 /* { dg-require-effective-target arm_neon_ok } */
47509 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47510 +/* { dg-options "-save-temps -O0" } */
47511 +/* { dg-add-options arm_neon } */
47512
47513 #include "arm_neon.h"
47514
47515 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRaddhns16.c b/gcc/testsuite/gcc.target/arm/neon/vRaddhns16.c
47516 --- a/gcc/testsuite/gcc.target/arm/neon/vRaddhns16.c 2007-07-25 14:28:31.000000000 +0200
47517 +++ b/gcc/testsuite/gcc.target/arm/neon/vRaddhns16.c 2010-01-25 09:50:29.465686681 +0100
47518 @@ -3,7 +3,8 @@
47519
47520 /* { dg-do assemble } */
47521 /* { dg-require-effective-target arm_neon_ok } */
47522 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47523 +/* { dg-options "-save-temps -O0" } */
47524 +/* { dg-add-options arm_neon } */
47525
47526 #include "arm_neon.h"
47527
47528 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRaddhns32.c b/gcc/testsuite/gcc.target/arm/neon/vRaddhns32.c
47529 --- a/gcc/testsuite/gcc.target/arm/neon/vRaddhns32.c 2007-07-25 14:28:31.000000000 +0200
47530 +++ b/gcc/testsuite/gcc.target/arm/neon/vRaddhns32.c 2010-01-25 09:50:29.465686681 +0100
47531 @@ -3,7 +3,8 @@
47532
47533 /* { dg-do assemble } */
47534 /* { dg-require-effective-target arm_neon_ok } */
47535 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47536 +/* { dg-options "-save-temps -O0" } */
47537 +/* { dg-add-options arm_neon } */
47538
47539 #include "arm_neon.h"
47540
47541 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRaddhns64.c b/gcc/testsuite/gcc.target/arm/neon/vRaddhns64.c
47542 --- a/gcc/testsuite/gcc.target/arm/neon/vRaddhns64.c 2007-07-25 14:28:31.000000000 +0200
47543 +++ b/gcc/testsuite/gcc.target/arm/neon/vRaddhns64.c 2010-01-25 09:50:29.465686681 +0100
47544 @@ -3,7 +3,8 @@
47545
47546 /* { dg-do assemble } */
47547 /* { dg-require-effective-target arm_neon_ok } */
47548 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47549 +/* { dg-options "-save-temps -O0" } */
47550 +/* { dg-add-options arm_neon } */
47551
47552 #include "arm_neon.h"
47553
47554 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRaddhnu16.c b/gcc/testsuite/gcc.target/arm/neon/vRaddhnu16.c
47555 --- a/gcc/testsuite/gcc.target/arm/neon/vRaddhnu16.c 2007-07-25 14:28:31.000000000 +0200
47556 +++ b/gcc/testsuite/gcc.target/arm/neon/vRaddhnu16.c 2010-01-25 09:50:29.465686681 +0100
47557 @@ -3,7 +3,8 @@
47558
47559 /* { dg-do assemble } */
47560 /* { dg-require-effective-target arm_neon_ok } */
47561 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47562 +/* { dg-options "-save-temps -O0" } */
47563 +/* { dg-add-options arm_neon } */
47564
47565 #include "arm_neon.h"
47566
47567 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRaddhnu32.c b/gcc/testsuite/gcc.target/arm/neon/vRaddhnu32.c
47568 --- a/gcc/testsuite/gcc.target/arm/neon/vRaddhnu32.c 2007-07-25 14:28:31.000000000 +0200
47569 +++ b/gcc/testsuite/gcc.target/arm/neon/vRaddhnu32.c 2010-01-25 09:50:29.465686681 +0100
47570 @@ -3,7 +3,8 @@
47571
47572 /* { dg-do assemble } */
47573 /* { dg-require-effective-target arm_neon_ok } */
47574 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47575 +/* { dg-options "-save-temps -O0" } */
47576 +/* { dg-add-options arm_neon } */
47577
47578 #include "arm_neon.h"
47579
47580 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRaddhnu64.c b/gcc/testsuite/gcc.target/arm/neon/vRaddhnu64.c
47581 --- a/gcc/testsuite/gcc.target/arm/neon/vRaddhnu64.c 2007-07-25 14:28:31.000000000 +0200
47582 +++ b/gcc/testsuite/gcc.target/arm/neon/vRaddhnu64.c 2010-01-25 09:50:29.465686681 +0100
47583 @@ -3,7 +3,8 @@
47584
47585 /* { dg-do assemble } */
47586 /* { dg-require-effective-target arm_neon_ok } */
47587 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47588 +/* { dg-options "-save-temps -O0" } */
47589 +/* { dg-add-options arm_neon } */
47590
47591 #include "arm_neon.h"
47592
47593 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrecpef32.c b/gcc/testsuite/gcc.target/arm/neon/vrecpef32.c
47594 --- a/gcc/testsuite/gcc.target/arm/neon/vrecpef32.c 2007-07-25 14:28:31.000000000 +0200
47595 +++ b/gcc/testsuite/gcc.target/arm/neon/vrecpef32.c 2010-01-25 09:50:29.465686681 +0100
47596 @@ -3,7 +3,8 @@
47597
47598 /* { dg-do assemble } */
47599 /* { dg-require-effective-target arm_neon_ok } */
47600 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47601 +/* { dg-options "-save-temps -O0" } */
47602 +/* { dg-add-options arm_neon } */
47603
47604 #include "arm_neon.h"
47605
47606 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrecpeQf32.c b/gcc/testsuite/gcc.target/arm/neon/vrecpeQf32.c
47607 --- a/gcc/testsuite/gcc.target/arm/neon/vrecpeQf32.c 2007-07-25 14:28:31.000000000 +0200
47608 +++ b/gcc/testsuite/gcc.target/arm/neon/vrecpeQf32.c 2010-01-25 09:50:29.465686681 +0100
47609 @@ -3,7 +3,8 @@
47610
47611 /* { dg-do assemble } */
47612 /* { dg-require-effective-target arm_neon_ok } */
47613 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47614 +/* { dg-options "-save-temps -O0" } */
47615 +/* { dg-add-options arm_neon } */
47616
47617 #include "arm_neon.h"
47618
47619 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrecpeQu32.c b/gcc/testsuite/gcc.target/arm/neon/vrecpeQu32.c
47620 --- a/gcc/testsuite/gcc.target/arm/neon/vrecpeQu32.c 2007-07-25 14:28:31.000000000 +0200
47621 +++ b/gcc/testsuite/gcc.target/arm/neon/vrecpeQu32.c 2010-01-25 09:50:29.465686681 +0100
47622 @@ -3,7 +3,8 @@
47623
47624 /* { dg-do assemble } */
47625 /* { dg-require-effective-target arm_neon_ok } */
47626 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47627 +/* { dg-options "-save-temps -O0" } */
47628 +/* { dg-add-options arm_neon } */
47629
47630 #include "arm_neon.h"
47631
47632 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrecpeu32.c b/gcc/testsuite/gcc.target/arm/neon/vrecpeu32.c
47633 --- a/gcc/testsuite/gcc.target/arm/neon/vrecpeu32.c 2007-07-25 14:28:31.000000000 +0200
47634 +++ b/gcc/testsuite/gcc.target/arm/neon/vrecpeu32.c 2010-01-25 09:50:29.465686681 +0100
47635 @@ -3,7 +3,8 @@
47636
47637 /* { dg-do assemble } */
47638 /* { dg-require-effective-target arm_neon_ok } */
47639 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47640 +/* { dg-options "-save-temps -O0" } */
47641 +/* { dg-add-options arm_neon } */
47642
47643 #include "arm_neon.h"
47644
47645 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrecpsf32.c b/gcc/testsuite/gcc.target/arm/neon/vrecpsf32.c
47646 --- a/gcc/testsuite/gcc.target/arm/neon/vrecpsf32.c 2007-07-25 14:28:31.000000000 +0200
47647 +++ b/gcc/testsuite/gcc.target/arm/neon/vrecpsf32.c 2010-01-25 09:50:29.465686681 +0100
47648 @@ -3,7 +3,8 @@
47649
47650 /* { dg-do assemble } */
47651 /* { dg-require-effective-target arm_neon_ok } */
47652 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47653 +/* { dg-options "-save-temps -O0" } */
47654 +/* { dg-add-options arm_neon } */
47655
47656 #include "arm_neon.h"
47657
47658 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrecpsQf32.c b/gcc/testsuite/gcc.target/arm/neon/vrecpsQf32.c
47659 --- a/gcc/testsuite/gcc.target/arm/neon/vrecpsQf32.c 2007-07-25 14:28:31.000000000 +0200
47660 +++ b/gcc/testsuite/gcc.target/arm/neon/vrecpsQf32.c 2010-01-25 09:50:29.465686681 +0100
47661 @@ -3,7 +3,8 @@
47662
47663 /* { dg-do assemble } */
47664 /* { dg-require-effective-target arm_neon_ok } */
47665 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47666 +/* { dg-options "-save-temps -O0" } */
47667 +/* { dg-add-options arm_neon } */
47668
47669 #include "arm_neon.h"
47670
47671 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_p16.c
47672 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_p16.c 2007-07-25 14:28:31.000000000 +0200
47673 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_p16.c 2010-01-25 09:50:29.465686681 +0100
47674 @@ -3,7 +3,8 @@
47675
47676 /* { dg-do assemble } */
47677 /* { dg-require-effective-target arm_neon_ok } */
47678 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47679 +/* { dg-options "-save-temps -O0" } */
47680 +/* { dg-add-options arm_neon } */
47681
47682 #include "arm_neon.h"
47683
47684 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_p8.c
47685 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_p8.c 2007-07-25 14:28:31.000000000 +0200
47686 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_p8.c 2010-01-25 09:50:29.465686681 +0100
47687 @@ -3,7 +3,8 @@
47688
47689 /* { dg-do assemble } */
47690 /* { dg-require-effective-target arm_neon_ok } */
47691 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47692 +/* { dg-options "-save-temps -O0" } */
47693 +/* { dg-add-options arm_neon } */
47694
47695 #include "arm_neon.h"
47696
47697 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s16.c
47698 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s16.c 2007-07-25 14:28:31.000000000 +0200
47699 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s16.c 2010-01-25 09:50:29.465686681 +0100
47700 @@ -3,7 +3,8 @@
47701
47702 /* { dg-do assemble } */
47703 /* { dg-require-effective-target arm_neon_ok } */
47704 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47705 +/* { dg-options "-save-temps -O0" } */
47706 +/* { dg-add-options arm_neon } */
47707
47708 #include "arm_neon.h"
47709
47710 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s32.c
47711 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s32.c 2007-07-25 14:28:31.000000000 +0200
47712 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s32.c 2010-01-25 09:50:29.465686681 +0100
47713 @@ -3,7 +3,8 @@
47714
47715 /* { dg-do assemble } */
47716 /* { dg-require-effective-target arm_neon_ok } */
47717 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47718 +/* { dg-options "-save-temps -O0" } */
47719 +/* { dg-add-options arm_neon } */
47720
47721 #include "arm_neon.h"
47722
47723 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s64.c
47724 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s64.c 2007-07-25 14:28:31.000000000 +0200
47725 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s64.c 2010-01-25 09:50:29.465686681 +0100
47726 @@ -3,7 +3,8 @@
47727
47728 /* { dg-do assemble } */
47729 /* { dg-require-effective-target arm_neon_ok } */
47730 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47731 +/* { dg-options "-save-temps -O0" } */
47732 +/* { dg-add-options arm_neon } */
47733
47734 #include "arm_neon.h"
47735
47736 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s8.c
47737 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s8.c 2007-07-25 14:28:31.000000000 +0200
47738 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_s8.c 2010-01-25 09:50:29.465686681 +0100
47739 @@ -3,7 +3,8 @@
47740
47741 /* { dg-do assemble } */
47742 /* { dg-require-effective-target arm_neon_ok } */
47743 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47744 +/* { dg-options "-save-temps -O0" } */
47745 +/* { dg-add-options arm_neon } */
47746
47747 #include "arm_neon.h"
47748
47749 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u16.c
47750 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u16.c 2007-07-25 14:28:31.000000000 +0200
47751 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u16.c 2010-01-25 09:50:29.465686681 +0100
47752 @@ -3,7 +3,8 @@
47753
47754 /* { dg-do assemble } */
47755 /* { dg-require-effective-target arm_neon_ok } */
47756 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47757 +/* { dg-options "-save-temps -O0" } */
47758 +/* { dg-add-options arm_neon } */
47759
47760 #include "arm_neon.h"
47761
47762 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u32.c
47763 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u32.c 2007-07-25 14:28:31.000000000 +0200
47764 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u32.c 2010-01-25 09:50:29.465686681 +0100
47765 @@ -3,7 +3,8 @@
47766
47767 /* { dg-do assemble } */
47768 /* { dg-require-effective-target arm_neon_ok } */
47769 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47770 +/* { dg-options "-save-temps -O0" } */
47771 +/* { dg-add-options arm_neon } */
47772
47773 #include "arm_neon.h"
47774
47775 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u64.c
47776 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u64.c 2007-07-25 14:28:31.000000000 +0200
47777 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u64.c 2010-01-25 09:50:29.465686681 +0100
47778 @@ -3,7 +3,8 @@
47779
47780 /* { dg-do assemble } */
47781 /* { dg-require-effective-target arm_neon_ok } */
47782 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47783 +/* { dg-options "-save-temps -O0" } */
47784 +/* { dg-add-options arm_neon } */
47785
47786 #include "arm_neon.h"
47787
47788 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u8.c
47789 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u8.c 2007-07-25 14:28:31.000000000 +0200
47790 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretf32_u8.c 2010-01-25 09:50:29.465686681 +0100
47791 @@ -3,7 +3,8 @@
47792
47793 /* { dg-do assemble } */
47794 /* { dg-require-effective-target arm_neon_ok } */
47795 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47796 +/* { dg-options "-save-temps -O0" } */
47797 +/* { dg-add-options arm_neon } */
47798
47799 #include "arm_neon.h"
47800
47801 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_f32.c
47802 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_f32.c 2007-07-25 14:28:31.000000000 +0200
47803 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_f32.c 2010-01-25 09:50:29.465686681 +0100
47804 @@ -3,7 +3,8 @@
47805
47806 /* { dg-do assemble } */
47807 /* { dg-require-effective-target arm_neon_ok } */
47808 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47809 +/* { dg-options "-save-temps -O0" } */
47810 +/* { dg-add-options arm_neon } */
47811
47812 #include "arm_neon.h"
47813
47814 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_p8.c
47815 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_p8.c 2007-07-25 14:28:31.000000000 +0200
47816 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_p8.c 2010-01-25 09:50:29.465686681 +0100
47817 @@ -3,7 +3,8 @@
47818
47819 /* { dg-do assemble } */
47820 /* { dg-require-effective-target arm_neon_ok } */
47821 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47822 +/* { dg-options "-save-temps -O0" } */
47823 +/* { dg-add-options arm_neon } */
47824
47825 #include "arm_neon.h"
47826
47827 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s16.c
47828 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s16.c 2007-07-25 14:28:31.000000000 +0200
47829 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s16.c 2010-01-25 09:50:29.465686681 +0100
47830 @@ -3,7 +3,8 @@
47831
47832 /* { dg-do assemble } */
47833 /* { dg-require-effective-target arm_neon_ok } */
47834 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47835 +/* { dg-options "-save-temps -O0" } */
47836 +/* { dg-add-options arm_neon } */
47837
47838 #include "arm_neon.h"
47839
47840 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s32.c
47841 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s32.c 2007-07-25 14:28:31.000000000 +0200
47842 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s32.c 2010-01-25 09:50:29.465686681 +0100
47843 @@ -3,7 +3,8 @@
47844
47845 /* { dg-do assemble } */
47846 /* { dg-require-effective-target arm_neon_ok } */
47847 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47848 +/* { dg-options "-save-temps -O0" } */
47849 +/* { dg-add-options arm_neon } */
47850
47851 #include "arm_neon.h"
47852
47853 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s64.c
47854 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s64.c 2007-07-25 14:28:31.000000000 +0200
47855 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s64.c 2010-01-25 09:50:29.465686681 +0100
47856 @@ -3,7 +3,8 @@
47857
47858 /* { dg-do assemble } */
47859 /* { dg-require-effective-target arm_neon_ok } */
47860 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47861 +/* { dg-options "-save-temps -O0" } */
47862 +/* { dg-add-options arm_neon } */
47863
47864 #include "arm_neon.h"
47865
47866 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s8.c
47867 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s8.c 2007-07-25 14:28:31.000000000 +0200
47868 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_s8.c 2010-01-25 09:50:29.465686681 +0100
47869 @@ -3,7 +3,8 @@
47870
47871 /* { dg-do assemble } */
47872 /* { dg-require-effective-target arm_neon_ok } */
47873 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47874 +/* { dg-options "-save-temps -O0" } */
47875 +/* { dg-add-options arm_neon } */
47876
47877 #include "arm_neon.h"
47878
47879 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u16.c
47880 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u16.c 2007-07-25 14:28:31.000000000 +0200
47881 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u16.c 2010-01-25 09:50:29.465686681 +0100
47882 @@ -3,7 +3,8 @@
47883
47884 /* { dg-do assemble } */
47885 /* { dg-require-effective-target arm_neon_ok } */
47886 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47887 +/* { dg-options "-save-temps -O0" } */
47888 +/* { dg-add-options arm_neon } */
47889
47890 #include "arm_neon.h"
47891
47892 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u32.c
47893 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u32.c 2007-07-25 14:28:31.000000000 +0200
47894 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u32.c 2010-01-25 09:50:29.465686681 +0100
47895 @@ -3,7 +3,8 @@
47896
47897 /* { dg-do assemble } */
47898 /* { dg-require-effective-target arm_neon_ok } */
47899 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47900 +/* { dg-options "-save-temps -O0" } */
47901 +/* { dg-add-options arm_neon } */
47902
47903 #include "arm_neon.h"
47904
47905 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u64.c
47906 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u64.c 2007-07-25 14:28:31.000000000 +0200
47907 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u64.c 2010-01-25 09:50:29.465686681 +0100
47908 @@ -3,7 +3,8 @@
47909
47910 /* { dg-do assemble } */
47911 /* { dg-require-effective-target arm_neon_ok } */
47912 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47913 +/* { dg-options "-save-temps -O0" } */
47914 +/* { dg-add-options arm_neon } */
47915
47916 #include "arm_neon.h"
47917
47918 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u8.c
47919 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u8.c 2007-07-25 14:28:31.000000000 +0200
47920 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp16_u8.c 2010-01-25 09:50:29.465686681 +0100
47921 @@ -3,7 +3,8 @@
47922
47923 /* { dg-do assemble } */
47924 /* { dg-require-effective-target arm_neon_ok } */
47925 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47926 +/* { dg-options "-save-temps -O0" } */
47927 +/* { dg-add-options arm_neon } */
47928
47929 #include "arm_neon.h"
47930
47931 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_f32.c
47932 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_f32.c 2007-07-25 14:28:31.000000000 +0200
47933 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_f32.c 2010-01-25 09:50:29.465686681 +0100
47934 @@ -3,7 +3,8 @@
47935
47936 /* { dg-do assemble } */
47937 /* { dg-require-effective-target arm_neon_ok } */
47938 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47939 +/* { dg-options "-save-temps -O0" } */
47940 +/* { dg-add-options arm_neon } */
47941
47942 #include "arm_neon.h"
47943
47944 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_p16.c
47945 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_p16.c 2007-07-25 14:28:31.000000000 +0200
47946 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_p16.c 2010-01-25 09:50:29.465686681 +0100
47947 @@ -3,7 +3,8 @@
47948
47949 /* { dg-do assemble } */
47950 /* { dg-require-effective-target arm_neon_ok } */
47951 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47952 +/* { dg-options "-save-temps -O0" } */
47953 +/* { dg-add-options arm_neon } */
47954
47955 #include "arm_neon.h"
47956
47957 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s16.c
47958 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s16.c 2007-07-25 14:28:31.000000000 +0200
47959 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s16.c 2010-01-25 09:50:29.465686681 +0100
47960 @@ -3,7 +3,8 @@
47961
47962 /* { dg-do assemble } */
47963 /* { dg-require-effective-target arm_neon_ok } */
47964 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47965 +/* { dg-options "-save-temps -O0" } */
47966 +/* { dg-add-options arm_neon } */
47967
47968 #include "arm_neon.h"
47969
47970 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s32.c
47971 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s32.c 2007-07-25 14:28:31.000000000 +0200
47972 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s32.c 2010-01-25 09:50:29.465686681 +0100
47973 @@ -3,7 +3,8 @@
47974
47975 /* { dg-do assemble } */
47976 /* { dg-require-effective-target arm_neon_ok } */
47977 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47978 +/* { dg-options "-save-temps -O0" } */
47979 +/* { dg-add-options arm_neon } */
47980
47981 #include "arm_neon.h"
47982
47983 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s64.c
47984 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s64.c 2007-07-25 14:28:31.000000000 +0200
47985 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s64.c 2010-01-25 09:50:29.465686681 +0100
47986 @@ -3,7 +3,8 @@
47987
47988 /* { dg-do assemble } */
47989 /* { dg-require-effective-target arm_neon_ok } */
47990 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
47991 +/* { dg-options "-save-temps -O0" } */
47992 +/* { dg-add-options arm_neon } */
47993
47994 #include "arm_neon.h"
47995
47996 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s8.c
47997 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s8.c 2007-07-25 14:28:31.000000000 +0200
47998 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_s8.c 2010-01-25 09:50:29.465686681 +0100
47999 @@ -3,7 +3,8 @@
48000
48001 /* { dg-do assemble } */
48002 /* { dg-require-effective-target arm_neon_ok } */
48003 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48004 +/* { dg-options "-save-temps -O0" } */
48005 +/* { dg-add-options arm_neon } */
48006
48007 #include "arm_neon.h"
48008
48009 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u16.c
48010 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u16.c 2007-07-25 14:28:31.000000000 +0200
48011 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u16.c 2010-01-25 09:50:29.465686681 +0100
48012 @@ -3,7 +3,8 @@
48013
48014 /* { dg-do assemble } */
48015 /* { dg-require-effective-target arm_neon_ok } */
48016 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48017 +/* { dg-options "-save-temps -O0" } */
48018 +/* { dg-add-options arm_neon } */
48019
48020 #include "arm_neon.h"
48021
48022 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u32.c
48023 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u32.c 2007-07-25 14:28:31.000000000 +0200
48024 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u32.c 2010-01-25 09:50:29.465686681 +0100
48025 @@ -3,7 +3,8 @@
48026
48027 /* { dg-do assemble } */
48028 /* { dg-require-effective-target arm_neon_ok } */
48029 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48030 +/* { dg-options "-save-temps -O0" } */
48031 +/* { dg-add-options arm_neon } */
48032
48033 #include "arm_neon.h"
48034
48035 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u64.c
48036 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u64.c 2007-07-25 14:28:31.000000000 +0200
48037 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u64.c 2010-01-25 09:50:29.465686681 +0100
48038 @@ -3,7 +3,8 @@
48039
48040 /* { dg-do assemble } */
48041 /* { dg-require-effective-target arm_neon_ok } */
48042 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48043 +/* { dg-options "-save-temps -O0" } */
48044 +/* { dg-add-options arm_neon } */
48045
48046 #include "arm_neon.h"
48047
48048 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u8.c
48049 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u8.c 2007-07-25 14:28:31.000000000 +0200
48050 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretp8_u8.c 2010-01-25 09:50:29.465686681 +0100
48051 @@ -3,7 +3,8 @@
48052
48053 /* { dg-do assemble } */
48054 /* { dg-require-effective-target arm_neon_ok } */
48055 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48056 +/* { dg-options "-save-temps -O0" } */
48057 +/* { dg-add-options arm_neon } */
48058
48059 #include "arm_neon.h"
48060
48061 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_p16.c
48062 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_p16.c 2007-07-25 14:28:31.000000000 +0200
48063 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_p16.c 2010-01-25 09:50:29.465686681 +0100
48064 @@ -3,7 +3,8 @@
48065
48066 /* { dg-do assemble } */
48067 /* { dg-require-effective-target arm_neon_ok } */
48068 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48069 +/* { dg-options "-save-temps -O0" } */
48070 +/* { dg-add-options arm_neon } */
48071
48072 #include "arm_neon.h"
48073
48074 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_p8.c
48075 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_p8.c 2007-07-25 14:28:31.000000000 +0200
48076 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_p8.c 2010-01-25 09:50:29.465686681 +0100
48077 @@ -3,7 +3,8 @@
48078
48079 /* { dg-do assemble } */
48080 /* { dg-require-effective-target arm_neon_ok } */
48081 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48082 +/* { dg-options "-save-temps -O0" } */
48083 +/* { dg-add-options arm_neon } */
48084
48085 #include "arm_neon.h"
48086
48087 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s16.c
48088 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s16.c 2007-07-25 14:28:31.000000000 +0200
48089 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s16.c 2010-01-25 09:50:29.465686681 +0100
48090 @@ -3,7 +3,8 @@
48091
48092 /* { dg-do assemble } */
48093 /* { dg-require-effective-target arm_neon_ok } */
48094 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48095 +/* { dg-options "-save-temps -O0" } */
48096 +/* { dg-add-options arm_neon } */
48097
48098 #include "arm_neon.h"
48099
48100 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s32.c
48101 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s32.c 2007-07-25 14:28:31.000000000 +0200
48102 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s32.c 2010-01-25 09:50:29.465686681 +0100
48103 @@ -3,7 +3,8 @@
48104
48105 /* { dg-do assemble } */
48106 /* { dg-require-effective-target arm_neon_ok } */
48107 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48108 +/* { dg-options "-save-temps -O0" } */
48109 +/* { dg-add-options arm_neon } */
48110
48111 #include "arm_neon.h"
48112
48113 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s64.c
48114 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s64.c 2007-07-25 14:28:31.000000000 +0200
48115 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s64.c 2010-01-25 09:50:29.465686681 +0100
48116 @@ -3,7 +3,8 @@
48117
48118 /* { dg-do assemble } */
48119 /* { dg-require-effective-target arm_neon_ok } */
48120 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48121 +/* { dg-options "-save-temps -O0" } */
48122 +/* { dg-add-options arm_neon } */
48123
48124 #include "arm_neon.h"
48125
48126 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s8.c
48127 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s8.c 2007-07-25 14:28:31.000000000 +0200
48128 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_s8.c 2010-01-25 09:50:29.465686681 +0100
48129 @@ -3,7 +3,8 @@
48130
48131 /* { dg-do assemble } */
48132 /* { dg-require-effective-target arm_neon_ok } */
48133 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48134 +/* { dg-options "-save-temps -O0" } */
48135 +/* { dg-add-options arm_neon } */
48136
48137 #include "arm_neon.h"
48138
48139 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u16.c
48140 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u16.c 2007-07-25 14:28:31.000000000 +0200
48141 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u16.c 2010-01-25 09:50:29.465686681 +0100
48142 @@ -3,7 +3,8 @@
48143
48144 /* { dg-do assemble } */
48145 /* { dg-require-effective-target arm_neon_ok } */
48146 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48147 +/* { dg-options "-save-temps -O0" } */
48148 +/* { dg-add-options arm_neon } */
48149
48150 #include "arm_neon.h"
48151
48152 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u32.c
48153 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u32.c 2007-07-25 14:28:31.000000000 +0200
48154 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u32.c 2010-01-25 09:50:29.465686681 +0100
48155 @@ -3,7 +3,8 @@
48156
48157 /* { dg-do assemble } */
48158 /* { dg-require-effective-target arm_neon_ok } */
48159 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48160 +/* { dg-options "-save-temps -O0" } */
48161 +/* { dg-add-options arm_neon } */
48162
48163 #include "arm_neon.h"
48164
48165 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u64.c
48166 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u64.c 2007-07-25 14:28:31.000000000 +0200
48167 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u64.c 2010-01-25 09:50:29.465686681 +0100
48168 @@ -3,7 +3,8 @@
48169
48170 /* { dg-do assemble } */
48171 /* { dg-require-effective-target arm_neon_ok } */
48172 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48173 +/* { dg-options "-save-temps -O0" } */
48174 +/* { dg-add-options arm_neon } */
48175
48176 #include "arm_neon.h"
48177
48178 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u8.c
48179 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u8.c 2007-07-25 14:28:31.000000000 +0200
48180 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQf32_u8.c 2010-01-25 09:50:29.465686681 +0100
48181 @@ -3,7 +3,8 @@
48182
48183 /* { dg-do assemble } */
48184 /* { dg-require-effective-target arm_neon_ok } */
48185 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48186 +/* { dg-options "-save-temps -O0" } */
48187 +/* { dg-add-options arm_neon } */
48188
48189 #include "arm_neon.h"
48190
48191 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_f32.c
48192 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_f32.c 2007-07-25 14:28:31.000000000 +0200
48193 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_f32.c 2010-01-25 09:50:29.465686681 +0100
48194 @@ -3,7 +3,8 @@
48195
48196 /* { dg-do assemble } */
48197 /* { dg-require-effective-target arm_neon_ok } */
48198 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48199 +/* { dg-options "-save-temps -O0" } */
48200 +/* { dg-add-options arm_neon } */
48201
48202 #include "arm_neon.h"
48203
48204 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_p8.c
48205 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_p8.c 2007-07-25 14:28:31.000000000 +0200
48206 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_p8.c 2010-01-25 09:50:29.475686346 +0100
48207 @@ -3,7 +3,8 @@
48208
48209 /* { dg-do assemble } */
48210 /* { dg-require-effective-target arm_neon_ok } */
48211 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48212 +/* { dg-options "-save-temps -O0" } */
48213 +/* { dg-add-options arm_neon } */
48214
48215 #include "arm_neon.h"
48216
48217 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s16.c
48218 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s16.c 2007-07-25 14:28:31.000000000 +0200
48219 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s16.c 2010-01-25 09:50:29.475686346 +0100
48220 @@ -3,7 +3,8 @@
48221
48222 /* { dg-do assemble } */
48223 /* { dg-require-effective-target arm_neon_ok } */
48224 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48225 +/* { dg-options "-save-temps -O0" } */
48226 +/* { dg-add-options arm_neon } */
48227
48228 #include "arm_neon.h"
48229
48230 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s32.c
48231 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s32.c 2007-07-25 14:28:31.000000000 +0200
48232 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s32.c 2010-01-25 09:50:29.475686346 +0100
48233 @@ -3,7 +3,8 @@
48234
48235 /* { dg-do assemble } */
48236 /* { dg-require-effective-target arm_neon_ok } */
48237 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48238 +/* { dg-options "-save-temps -O0" } */
48239 +/* { dg-add-options arm_neon } */
48240
48241 #include "arm_neon.h"
48242
48243 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s64.c
48244 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s64.c 2007-07-25 14:28:31.000000000 +0200
48245 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s64.c 2010-01-25 09:50:29.475686346 +0100
48246 @@ -3,7 +3,8 @@
48247
48248 /* { dg-do assemble } */
48249 /* { dg-require-effective-target arm_neon_ok } */
48250 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48251 +/* { dg-options "-save-temps -O0" } */
48252 +/* { dg-add-options arm_neon } */
48253
48254 #include "arm_neon.h"
48255
48256 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s8.c
48257 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s8.c 2007-07-25 14:28:31.000000000 +0200
48258 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_s8.c 2010-01-25 09:50:29.475686346 +0100
48259 @@ -3,7 +3,8 @@
48260
48261 /* { dg-do assemble } */
48262 /* { dg-require-effective-target arm_neon_ok } */
48263 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48264 +/* { dg-options "-save-temps -O0" } */
48265 +/* { dg-add-options arm_neon } */
48266
48267 #include "arm_neon.h"
48268
48269 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u16.c
48270 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u16.c 2007-07-25 14:28:31.000000000 +0200
48271 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u16.c 2010-01-25 09:50:29.475686346 +0100
48272 @@ -3,7 +3,8 @@
48273
48274 /* { dg-do assemble } */
48275 /* { dg-require-effective-target arm_neon_ok } */
48276 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48277 +/* { dg-options "-save-temps -O0" } */
48278 +/* { dg-add-options arm_neon } */
48279
48280 #include "arm_neon.h"
48281
48282 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u32.c
48283 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u32.c 2007-07-25 14:28:31.000000000 +0200
48284 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u32.c 2010-01-25 09:50:29.475686346 +0100
48285 @@ -3,7 +3,8 @@
48286
48287 /* { dg-do assemble } */
48288 /* { dg-require-effective-target arm_neon_ok } */
48289 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48290 +/* { dg-options "-save-temps -O0" } */
48291 +/* { dg-add-options arm_neon } */
48292
48293 #include "arm_neon.h"
48294
48295 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u64.c
48296 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u64.c 2007-07-25 14:28:31.000000000 +0200
48297 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u64.c 2010-01-25 09:50:29.475686346 +0100
48298 @@ -3,7 +3,8 @@
48299
48300 /* { dg-do assemble } */
48301 /* { dg-require-effective-target arm_neon_ok } */
48302 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48303 +/* { dg-options "-save-temps -O0" } */
48304 +/* { dg-add-options arm_neon } */
48305
48306 #include "arm_neon.h"
48307
48308 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u8.c
48309 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u8.c 2007-07-25 14:28:31.000000000 +0200
48310 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp16_u8.c 2010-01-25 09:50:29.475686346 +0100
48311 @@ -3,7 +3,8 @@
48312
48313 /* { dg-do assemble } */
48314 /* { dg-require-effective-target arm_neon_ok } */
48315 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48316 +/* { dg-options "-save-temps -O0" } */
48317 +/* { dg-add-options arm_neon } */
48318
48319 #include "arm_neon.h"
48320
48321 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_f32.c
48322 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_f32.c 2007-07-25 14:28:31.000000000 +0200
48323 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_f32.c 2010-01-25 09:50:29.475686346 +0100
48324 @@ -3,7 +3,8 @@
48325
48326 /* { dg-do assemble } */
48327 /* { dg-require-effective-target arm_neon_ok } */
48328 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48329 +/* { dg-options "-save-temps -O0" } */
48330 +/* { dg-add-options arm_neon } */
48331
48332 #include "arm_neon.h"
48333
48334 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_p16.c
48335 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_p16.c 2007-07-25 14:28:31.000000000 +0200
48336 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_p16.c 2010-01-25 09:50:29.475686346 +0100
48337 @@ -3,7 +3,8 @@
48338
48339 /* { dg-do assemble } */
48340 /* { dg-require-effective-target arm_neon_ok } */
48341 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48342 +/* { dg-options "-save-temps -O0" } */
48343 +/* { dg-add-options arm_neon } */
48344
48345 #include "arm_neon.h"
48346
48347 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s16.c
48348 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s16.c 2007-07-25 14:28:31.000000000 +0200
48349 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s16.c 2010-01-25 09:50:29.475686346 +0100
48350 @@ -3,7 +3,8 @@
48351
48352 /* { dg-do assemble } */
48353 /* { dg-require-effective-target arm_neon_ok } */
48354 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48355 +/* { dg-options "-save-temps -O0" } */
48356 +/* { dg-add-options arm_neon } */
48357
48358 #include "arm_neon.h"
48359
48360 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s32.c
48361 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s32.c 2007-07-25 14:28:31.000000000 +0200
48362 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s32.c 2010-01-25 09:50:29.475686346 +0100
48363 @@ -3,7 +3,8 @@
48364
48365 /* { dg-do assemble } */
48366 /* { dg-require-effective-target arm_neon_ok } */
48367 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48368 +/* { dg-options "-save-temps -O0" } */
48369 +/* { dg-add-options arm_neon } */
48370
48371 #include "arm_neon.h"
48372
48373 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s64.c
48374 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s64.c 2007-07-25 14:28:31.000000000 +0200
48375 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s64.c 2010-01-25 09:50:29.475686346 +0100
48376 @@ -3,7 +3,8 @@
48377
48378 /* { dg-do assemble } */
48379 /* { dg-require-effective-target arm_neon_ok } */
48380 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48381 +/* { dg-options "-save-temps -O0" } */
48382 +/* { dg-add-options arm_neon } */
48383
48384 #include "arm_neon.h"
48385
48386 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s8.c
48387 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s8.c 2007-07-25 14:28:31.000000000 +0200
48388 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_s8.c 2010-01-25 09:50:29.475686346 +0100
48389 @@ -3,7 +3,8 @@
48390
48391 /* { dg-do assemble } */
48392 /* { dg-require-effective-target arm_neon_ok } */
48393 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48394 +/* { dg-options "-save-temps -O0" } */
48395 +/* { dg-add-options arm_neon } */
48396
48397 #include "arm_neon.h"
48398
48399 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u16.c
48400 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u16.c 2007-07-25 14:28:31.000000000 +0200
48401 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u16.c 2010-01-25 09:50:29.475686346 +0100
48402 @@ -3,7 +3,8 @@
48403
48404 /* { dg-do assemble } */
48405 /* { dg-require-effective-target arm_neon_ok } */
48406 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48407 +/* { dg-options "-save-temps -O0" } */
48408 +/* { dg-add-options arm_neon } */
48409
48410 #include "arm_neon.h"
48411
48412 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u32.c
48413 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u32.c 2007-07-25 14:28:31.000000000 +0200
48414 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u32.c 2010-01-25 09:50:29.475686346 +0100
48415 @@ -3,7 +3,8 @@
48416
48417 /* { dg-do assemble } */
48418 /* { dg-require-effective-target arm_neon_ok } */
48419 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48420 +/* { dg-options "-save-temps -O0" } */
48421 +/* { dg-add-options arm_neon } */
48422
48423 #include "arm_neon.h"
48424
48425 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u64.c
48426 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u64.c 2007-07-25 14:28:31.000000000 +0200
48427 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u64.c 2010-01-25 09:50:29.475686346 +0100
48428 @@ -3,7 +3,8 @@
48429
48430 /* { dg-do assemble } */
48431 /* { dg-require-effective-target arm_neon_ok } */
48432 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48433 +/* { dg-options "-save-temps -O0" } */
48434 +/* { dg-add-options arm_neon } */
48435
48436 #include "arm_neon.h"
48437
48438 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u8.c
48439 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u8.c 2007-07-25 14:28:31.000000000 +0200
48440 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQp8_u8.c 2010-01-25 09:50:29.475686346 +0100
48441 @@ -3,7 +3,8 @@
48442
48443 /* { dg-do assemble } */
48444 /* { dg-require-effective-target arm_neon_ok } */
48445 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48446 +/* { dg-options "-save-temps -O0" } */
48447 +/* { dg-add-options arm_neon } */
48448
48449 #include "arm_neon.h"
48450
48451 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_f32.c
48452 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_f32.c 2007-07-25 14:28:31.000000000 +0200
48453 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_f32.c 2010-01-25 09:50:29.475686346 +0100
48454 @@ -3,7 +3,8 @@
48455
48456 /* { dg-do assemble } */
48457 /* { dg-require-effective-target arm_neon_ok } */
48458 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48459 +/* { dg-options "-save-temps -O0" } */
48460 +/* { dg-add-options arm_neon } */
48461
48462 #include "arm_neon.h"
48463
48464 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_p16.c
48465 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_p16.c 2007-07-25 14:28:31.000000000 +0200
48466 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_p16.c 2010-01-25 09:50:29.475686346 +0100
48467 @@ -3,7 +3,8 @@
48468
48469 /* { dg-do assemble } */
48470 /* { dg-require-effective-target arm_neon_ok } */
48471 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48472 +/* { dg-options "-save-temps -O0" } */
48473 +/* { dg-add-options arm_neon } */
48474
48475 #include "arm_neon.h"
48476
48477 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_p8.c
48478 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_p8.c 2007-07-25 14:28:31.000000000 +0200
48479 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_p8.c 2010-01-25 09:50:29.475686346 +0100
48480 @@ -3,7 +3,8 @@
48481
48482 /* { dg-do assemble } */
48483 /* { dg-require-effective-target arm_neon_ok } */
48484 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48485 +/* { dg-options "-save-temps -O0" } */
48486 +/* { dg-add-options arm_neon } */
48487
48488 #include "arm_neon.h"
48489
48490 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s32.c
48491 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s32.c 2007-07-25 14:28:31.000000000 +0200
48492 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s32.c 2010-01-25 09:50:29.475686346 +0100
48493 @@ -3,7 +3,8 @@
48494
48495 /* { dg-do assemble } */
48496 /* { dg-require-effective-target arm_neon_ok } */
48497 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48498 +/* { dg-options "-save-temps -O0" } */
48499 +/* { dg-add-options arm_neon } */
48500
48501 #include "arm_neon.h"
48502
48503 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s64.c
48504 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s64.c 2007-07-25 14:28:31.000000000 +0200
48505 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s64.c 2010-01-25 09:50:29.475686346 +0100
48506 @@ -3,7 +3,8 @@
48507
48508 /* { dg-do assemble } */
48509 /* { dg-require-effective-target arm_neon_ok } */
48510 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48511 +/* { dg-options "-save-temps -O0" } */
48512 +/* { dg-add-options arm_neon } */
48513
48514 #include "arm_neon.h"
48515
48516 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s8.c
48517 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s8.c 2007-07-25 14:28:31.000000000 +0200
48518 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_s8.c 2010-01-25 09:50:29.475686346 +0100
48519 @@ -3,7 +3,8 @@
48520
48521 /* { dg-do assemble } */
48522 /* { dg-require-effective-target arm_neon_ok } */
48523 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48524 +/* { dg-options "-save-temps -O0" } */
48525 +/* { dg-add-options arm_neon } */
48526
48527 #include "arm_neon.h"
48528
48529 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u16.c
48530 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u16.c 2007-07-25 14:28:31.000000000 +0200
48531 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u16.c 2010-01-25 09:50:29.475686346 +0100
48532 @@ -3,7 +3,8 @@
48533
48534 /* { dg-do assemble } */
48535 /* { dg-require-effective-target arm_neon_ok } */
48536 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48537 +/* { dg-options "-save-temps -O0" } */
48538 +/* { dg-add-options arm_neon } */
48539
48540 #include "arm_neon.h"
48541
48542 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u32.c
48543 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u32.c 2007-07-25 14:28:31.000000000 +0200
48544 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u32.c 2010-01-25 09:50:29.475686346 +0100
48545 @@ -3,7 +3,8 @@
48546
48547 /* { dg-do assemble } */
48548 /* { dg-require-effective-target arm_neon_ok } */
48549 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48550 +/* { dg-options "-save-temps -O0" } */
48551 +/* { dg-add-options arm_neon } */
48552
48553 #include "arm_neon.h"
48554
48555 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u64.c
48556 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u64.c 2007-07-25 14:28:31.000000000 +0200
48557 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u64.c 2010-01-25 09:50:29.475686346 +0100
48558 @@ -3,7 +3,8 @@
48559
48560 /* { dg-do assemble } */
48561 /* { dg-require-effective-target arm_neon_ok } */
48562 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48563 +/* { dg-options "-save-temps -O0" } */
48564 +/* { dg-add-options arm_neon } */
48565
48566 #include "arm_neon.h"
48567
48568 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u8.c
48569 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u8.c 2007-07-25 14:28:31.000000000 +0200
48570 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs16_u8.c 2010-01-25 09:50:29.475686346 +0100
48571 @@ -3,7 +3,8 @@
48572
48573 /* { dg-do assemble } */
48574 /* { dg-require-effective-target arm_neon_ok } */
48575 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48576 +/* { dg-options "-save-temps -O0" } */
48577 +/* { dg-add-options arm_neon } */
48578
48579 #include "arm_neon.h"
48580
48581 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_f32.c
48582 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_f32.c 2007-07-25 14:28:31.000000000 +0200
48583 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_f32.c 2010-01-25 09:50:29.475686346 +0100
48584 @@ -3,7 +3,8 @@
48585
48586 /* { dg-do assemble } */
48587 /* { dg-require-effective-target arm_neon_ok } */
48588 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48589 +/* { dg-options "-save-temps -O0" } */
48590 +/* { dg-add-options arm_neon } */
48591
48592 #include "arm_neon.h"
48593
48594 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_p16.c
48595 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_p16.c 2007-07-25 14:28:31.000000000 +0200
48596 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_p16.c 2010-01-25 09:50:29.475686346 +0100
48597 @@ -3,7 +3,8 @@
48598
48599 /* { dg-do assemble } */
48600 /* { dg-require-effective-target arm_neon_ok } */
48601 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48602 +/* { dg-options "-save-temps -O0" } */
48603 +/* { dg-add-options arm_neon } */
48604
48605 #include "arm_neon.h"
48606
48607 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_p8.c
48608 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_p8.c 2007-07-25 14:28:31.000000000 +0200
48609 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_p8.c 2010-01-25 09:50:29.475686346 +0100
48610 @@ -3,7 +3,8 @@
48611
48612 /* { dg-do assemble } */
48613 /* { dg-require-effective-target arm_neon_ok } */
48614 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48615 +/* { dg-options "-save-temps -O0" } */
48616 +/* { dg-add-options arm_neon } */
48617
48618 #include "arm_neon.h"
48619
48620 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s16.c
48621 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s16.c 2007-07-25 14:28:31.000000000 +0200
48622 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s16.c 2010-01-25 09:50:29.475686346 +0100
48623 @@ -3,7 +3,8 @@
48624
48625 /* { dg-do assemble } */
48626 /* { dg-require-effective-target arm_neon_ok } */
48627 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48628 +/* { dg-options "-save-temps -O0" } */
48629 +/* { dg-add-options arm_neon } */
48630
48631 #include "arm_neon.h"
48632
48633 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s64.c
48634 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s64.c 2007-07-25 14:28:31.000000000 +0200
48635 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s64.c 2010-01-25 09:50:29.475686346 +0100
48636 @@ -3,7 +3,8 @@
48637
48638 /* { dg-do assemble } */
48639 /* { dg-require-effective-target arm_neon_ok } */
48640 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48641 +/* { dg-options "-save-temps -O0" } */
48642 +/* { dg-add-options arm_neon } */
48643
48644 #include "arm_neon.h"
48645
48646 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s8.c
48647 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s8.c 2007-07-25 14:28:31.000000000 +0200
48648 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_s8.c 2010-01-25 09:50:29.475686346 +0100
48649 @@ -3,7 +3,8 @@
48650
48651 /* { dg-do assemble } */
48652 /* { dg-require-effective-target arm_neon_ok } */
48653 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48654 +/* { dg-options "-save-temps -O0" } */
48655 +/* { dg-add-options arm_neon } */
48656
48657 #include "arm_neon.h"
48658
48659 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u16.c
48660 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u16.c 2007-07-25 14:28:31.000000000 +0200
48661 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u16.c 2010-01-25 09:50:29.475686346 +0100
48662 @@ -3,7 +3,8 @@
48663
48664 /* { dg-do assemble } */
48665 /* { dg-require-effective-target arm_neon_ok } */
48666 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48667 +/* { dg-options "-save-temps -O0" } */
48668 +/* { dg-add-options arm_neon } */
48669
48670 #include "arm_neon.h"
48671
48672 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u32.c
48673 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u32.c 2007-07-25 14:28:31.000000000 +0200
48674 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u32.c 2010-01-25 09:50:29.475686346 +0100
48675 @@ -3,7 +3,8 @@
48676
48677 /* { dg-do assemble } */
48678 /* { dg-require-effective-target arm_neon_ok } */
48679 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48680 +/* { dg-options "-save-temps -O0" } */
48681 +/* { dg-add-options arm_neon } */
48682
48683 #include "arm_neon.h"
48684
48685 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u64.c
48686 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u64.c 2007-07-25 14:28:31.000000000 +0200
48687 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u64.c 2010-01-25 09:50:29.475686346 +0100
48688 @@ -3,7 +3,8 @@
48689
48690 /* { dg-do assemble } */
48691 /* { dg-require-effective-target arm_neon_ok } */
48692 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48693 +/* { dg-options "-save-temps -O0" } */
48694 +/* { dg-add-options arm_neon } */
48695
48696 #include "arm_neon.h"
48697
48698 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u8.c
48699 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u8.c 2007-07-25 14:28:31.000000000 +0200
48700 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs32_u8.c 2010-01-25 09:50:29.475686346 +0100
48701 @@ -3,7 +3,8 @@
48702
48703 /* { dg-do assemble } */
48704 /* { dg-require-effective-target arm_neon_ok } */
48705 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48706 +/* { dg-options "-save-temps -O0" } */
48707 +/* { dg-add-options arm_neon } */
48708
48709 #include "arm_neon.h"
48710
48711 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_f32.c
48712 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_f32.c 2007-07-25 14:28:31.000000000 +0200
48713 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_f32.c 2010-01-25 09:50:29.475686346 +0100
48714 @@ -3,7 +3,8 @@
48715
48716 /* { dg-do assemble } */
48717 /* { dg-require-effective-target arm_neon_ok } */
48718 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48719 +/* { dg-options "-save-temps -O0" } */
48720 +/* { dg-add-options arm_neon } */
48721
48722 #include "arm_neon.h"
48723
48724 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_p16.c
48725 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_p16.c 2007-07-25 14:28:31.000000000 +0200
48726 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_p16.c 2010-01-25 09:50:29.475686346 +0100
48727 @@ -3,7 +3,8 @@
48728
48729 /* { dg-do assemble } */
48730 /* { dg-require-effective-target arm_neon_ok } */
48731 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48732 +/* { dg-options "-save-temps -O0" } */
48733 +/* { dg-add-options arm_neon } */
48734
48735 #include "arm_neon.h"
48736
48737 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_p8.c
48738 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_p8.c 2007-07-25 14:28:31.000000000 +0200
48739 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_p8.c 2010-01-25 09:50:29.475686346 +0100
48740 @@ -3,7 +3,8 @@
48741
48742 /* { dg-do assemble } */
48743 /* { dg-require-effective-target arm_neon_ok } */
48744 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48745 +/* { dg-options "-save-temps -O0" } */
48746 +/* { dg-add-options arm_neon } */
48747
48748 #include "arm_neon.h"
48749
48750 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s16.c
48751 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s16.c 2007-07-25 14:28:31.000000000 +0200
48752 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s16.c 2010-01-25 09:50:29.475686346 +0100
48753 @@ -3,7 +3,8 @@
48754
48755 /* { dg-do assemble } */
48756 /* { dg-require-effective-target arm_neon_ok } */
48757 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48758 +/* { dg-options "-save-temps -O0" } */
48759 +/* { dg-add-options arm_neon } */
48760
48761 #include "arm_neon.h"
48762
48763 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s32.c
48764 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s32.c 2007-07-25 14:28:31.000000000 +0200
48765 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s32.c 2010-01-25 09:50:29.475686346 +0100
48766 @@ -3,7 +3,8 @@
48767
48768 /* { dg-do assemble } */
48769 /* { dg-require-effective-target arm_neon_ok } */
48770 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48771 +/* { dg-options "-save-temps -O0" } */
48772 +/* { dg-add-options arm_neon } */
48773
48774 #include "arm_neon.h"
48775
48776 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s8.c
48777 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s8.c 2007-07-25 14:28:31.000000000 +0200
48778 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_s8.c 2010-01-25 09:50:29.475686346 +0100
48779 @@ -3,7 +3,8 @@
48780
48781 /* { dg-do assemble } */
48782 /* { dg-require-effective-target arm_neon_ok } */
48783 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48784 +/* { dg-options "-save-temps -O0" } */
48785 +/* { dg-add-options arm_neon } */
48786
48787 #include "arm_neon.h"
48788
48789 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u16.c
48790 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u16.c 2007-07-25 14:28:31.000000000 +0200
48791 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u16.c 2010-01-25 09:50:29.475686346 +0100
48792 @@ -3,7 +3,8 @@
48793
48794 /* { dg-do assemble } */
48795 /* { dg-require-effective-target arm_neon_ok } */
48796 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48797 +/* { dg-options "-save-temps -O0" } */
48798 +/* { dg-add-options arm_neon } */
48799
48800 #include "arm_neon.h"
48801
48802 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u32.c
48803 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u32.c 2007-07-25 14:28:31.000000000 +0200
48804 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u32.c 2010-01-25 09:50:29.475686346 +0100
48805 @@ -3,7 +3,8 @@
48806
48807 /* { dg-do assemble } */
48808 /* { dg-require-effective-target arm_neon_ok } */
48809 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48810 +/* { dg-options "-save-temps -O0" } */
48811 +/* { dg-add-options arm_neon } */
48812
48813 #include "arm_neon.h"
48814
48815 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u64.c
48816 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u64.c 2007-07-25 14:28:31.000000000 +0200
48817 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u64.c 2010-01-25 09:50:29.475686346 +0100
48818 @@ -3,7 +3,8 @@
48819
48820 /* { dg-do assemble } */
48821 /* { dg-require-effective-target arm_neon_ok } */
48822 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48823 +/* { dg-options "-save-temps -O0" } */
48824 +/* { dg-add-options arm_neon } */
48825
48826 #include "arm_neon.h"
48827
48828 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u8.c
48829 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u8.c 2007-07-25 14:28:31.000000000 +0200
48830 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs64_u8.c 2010-01-25 09:50:29.475686346 +0100
48831 @@ -3,7 +3,8 @@
48832
48833 /* { dg-do assemble } */
48834 /* { dg-require-effective-target arm_neon_ok } */
48835 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48836 +/* { dg-options "-save-temps -O0" } */
48837 +/* { dg-add-options arm_neon } */
48838
48839 #include "arm_neon.h"
48840
48841 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_f32.c
48842 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_f32.c 2007-07-25 14:28:31.000000000 +0200
48843 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_f32.c 2010-01-25 09:50:29.475686346 +0100
48844 @@ -3,7 +3,8 @@
48845
48846 /* { dg-do assemble } */
48847 /* { dg-require-effective-target arm_neon_ok } */
48848 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48849 +/* { dg-options "-save-temps -O0" } */
48850 +/* { dg-add-options arm_neon } */
48851
48852 #include "arm_neon.h"
48853
48854 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_p16.c
48855 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_p16.c 2007-07-25 14:28:31.000000000 +0200
48856 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_p16.c 2010-01-25 09:50:29.475686346 +0100
48857 @@ -3,7 +3,8 @@
48858
48859 /* { dg-do assemble } */
48860 /* { dg-require-effective-target arm_neon_ok } */
48861 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48862 +/* { dg-options "-save-temps -O0" } */
48863 +/* { dg-add-options arm_neon } */
48864
48865 #include "arm_neon.h"
48866
48867 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_p8.c
48868 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_p8.c 2007-07-25 14:28:31.000000000 +0200
48869 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_p8.c 2010-01-25 09:50:29.475686346 +0100
48870 @@ -3,7 +3,8 @@
48871
48872 /* { dg-do assemble } */
48873 /* { dg-require-effective-target arm_neon_ok } */
48874 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48875 +/* { dg-options "-save-temps -O0" } */
48876 +/* { dg-add-options arm_neon } */
48877
48878 #include "arm_neon.h"
48879
48880 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s16.c
48881 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s16.c 2007-07-25 14:28:31.000000000 +0200
48882 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s16.c 2010-01-25 09:50:29.475686346 +0100
48883 @@ -3,7 +3,8 @@
48884
48885 /* { dg-do assemble } */
48886 /* { dg-require-effective-target arm_neon_ok } */
48887 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48888 +/* { dg-options "-save-temps -O0" } */
48889 +/* { dg-add-options arm_neon } */
48890
48891 #include "arm_neon.h"
48892
48893 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s32.c
48894 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s32.c 2007-07-25 14:28:31.000000000 +0200
48895 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s32.c 2010-01-25 09:50:29.475686346 +0100
48896 @@ -3,7 +3,8 @@
48897
48898 /* { dg-do assemble } */
48899 /* { dg-require-effective-target arm_neon_ok } */
48900 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48901 +/* { dg-options "-save-temps -O0" } */
48902 +/* { dg-add-options arm_neon } */
48903
48904 #include "arm_neon.h"
48905
48906 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s64.c
48907 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s64.c 2007-07-25 14:28:31.000000000 +0200
48908 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_s64.c 2010-01-25 09:50:29.475686346 +0100
48909 @@ -3,7 +3,8 @@
48910
48911 /* { dg-do assemble } */
48912 /* { dg-require-effective-target arm_neon_ok } */
48913 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48914 +/* { dg-options "-save-temps -O0" } */
48915 +/* { dg-add-options arm_neon } */
48916
48917 #include "arm_neon.h"
48918
48919 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u16.c
48920 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u16.c 2007-07-25 14:28:31.000000000 +0200
48921 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u16.c 2010-01-25 09:50:29.475686346 +0100
48922 @@ -3,7 +3,8 @@
48923
48924 /* { dg-do assemble } */
48925 /* { dg-require-effective-target arm_neon_ok } */
48926 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48927 +/* { dg-options "-save-temps -O0" } */
48928 +/* { dg-add-options arm_neon } */
48929
48930 #include "arm_neon.h"
48931
48932 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u32.c
48933 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u32.c 2007-07-25 14:28:31.000000000 +0200
48934 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u32.c 2010-01-25 09:50:29.475686346 +0100
48935 @@ -3,7 +3,8 @@
48936
48937 /* { dg-do assemble } */
48938 /* { dg-require-effective-target arm_neon_ok } */
48939 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48940 +/* { dg-options "-save-temps -O0" } */
48941 +/* { dg-add-options arm_neon } */
48942
48943 #include "arm_neon.h"
48944
48945 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u64.c
48946 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u64.c 2007-07-25 14:28:31.000000000 +0200
48947 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u64.c 2010-01-25 09:50:29.475686346 +0100
48948 @@ -3,7 +3,8 @@
48949
48950 /* { dg-do assemble } */
48951 /* { dg-require-effective-target arm_neon_ok } */
48952 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48953 +/* { dg-options "-save-temps -O0" } */
48954 +/* { dg-add-options arm_neon } */
48955
48956 #include "arm_neon.h"
48957
48958 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u8.c
48959 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u8.c 2007-07-25 14:28:31.000000000 +0200
48960 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQs8_u8.c 2010-01-25 09:50:29.475686346 +0100
48961 @@ -3,7 +3,8 @@
48962
48963 /* { dg-do assemble } */
48964 /* { dg-require-effective-target arm_neon_ok } */
48965 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48966 +/* { dg-options "-save-temps -O0" } */
48967 +/* { dg-add-options arm_neon } */
48968
48969 #include "arm_neon.h"
48970
48971 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_f32.c
48972 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_f32.c 2007-07-25 14:28:31.000000000 +0200
48973 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_f32.c 2010-01-25 09:50:29.475686346 +0100
48974 @@ -3,7 +3,8 @@
48975
48976 /* { dg-do assemble } */
48977 /* { dg-require-effective-target arm_neon_ok } */
48978 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48979 +/* { dg-options "-save-temps -O0" } */
48980 +/* { dg-add-options arm_neon } */
48981
48982 #include "arm_neon.h"
48983
48984 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_p16.c
48985 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_p16.c 2007-07-25 14:28:31.000000000 +0200
48986 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_p16.c 2010-01-25 09:50:29.475686346 +0100
48987 @@ -3,7 +3,8 @@
48988
48989 /* { dg-do assemble } */
48990 /* { dg-require-effective-target arm_neon_ok } */
48991 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
48992 +/* { dg-options "-save-temps -O0" } */
48993 +/* { dg-add-options arm_neon } */
48994
48995 #include "arm_neon.h"
48996
48997 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_p8.c
48998 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_p8.c 2007-07-25 14:28:31.000000000 +0200
48999 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_p8.c 2010-01-25 09:50:29.475686346 +0100
49000 @@ -3,7 +3,8 @@
49001
49002 /* { dg-do assemble } */
49003 /* { dg-require-effective-target arm_neon_ok } */
49004 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49005 +/* { dg-options "-save-temps -O0" } */
49006 +/* { dg-add-options arm_neon } */
49007
49008 #include "arm_neon.h"
49009
49010 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s16.c
49011 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s16.c 2007-07-25 14:28:31.000000000 +0200
49012 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s16.c 2010-01-25 09:50:29.475686346 +0100
49013 @@ -3,7 +3,8 @@
49014
49015 /* { dg-do assemble } */
49016 /* { dg-require-effective-target arm_neon_ok } */
49017 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49018 +/* { dg-options "-save-temps -O0" } */
49019 +/* { dg-add-options arm_neon } */
49020
49021 #include "arm_neon.h"
49022
49023 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s32.c
49024 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s32.c 2007-07-25 14:28:31.000000000 +0200
49025 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s32.c 2010-01-25 09:50:29.475686346 +0100
49026 @@ -3,7 +3,8 @@
49027
49028 /* { dg-do assemble } */
49029 /* { dg-require-effective-target arm_neon_ok } */
49030 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49031 +/* { dg-options "-save-temps -O0" } */
49032 +/* { dg-add-options arm_neon } */
49033
49034 #include "arm_neon.h"
49035
49036 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s64.c
49037 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s64.c 2007-07-25 14:28:31.000000000 +0200
49038 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s64.c 2010-01-25 09:50:29.475686346 +0100
49039 @@ -3,7 +3,8 @@
49040
49041 /* { dg-do assemble } */
49042 /* { dg-require-effective-target arm_neon_ok } */
49043 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49044 +/* { dg-options "-save-temps -O0" } */
49045 +/* { dg-add-options arm_neon } */
49046
49047 #include "arm_neon.h"
49048
49049 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s8.c
49050 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s8.c 2007-07-25 14:28:31.000000000 +0200
49051 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_s8.c 2010-01-25 09:50:29.475686346 +0100
49052 @@ -3,7 +3,8 @@
49053
49054 /* { dg-do assemble } */
49055 /* { dg-require-effective-target arm_neon_ok } */
49056 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49057 +/* { dg-options "-save-temps -O0" } */
49058 +/* { dg-add-options arm_neon } */
49059
49060 #include "arm_neon.h"
49061
49062 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u32.c
49063 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u32.c 2007-07-25 14:28:31.000000000 +0200
49064 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u32.c 2010-01-25 09:50:29.475686346 +0100
49065 @@ -3,7 +3,8 @@
49066
49067 /* { dg-do assemble } */
49068 /* { dg-require-effective-target arm_neon_ok } */
49069 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49070 +/* { dg-options "-save-temps -O0" } */
49071 +/* { dg-add-options arm_neon } */
49072
49073 #include "arm_neon.h"
49074
49075 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u64.c
49076 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u64.c 2007-07-25 14:28:31.000000000 +0200
49077 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u64.c 2010-01-25 09:50:29.475686346 +0100
49078 @@ -3,7 +3,8 @@
49079
49080 /* { dg-do assemble } */
49081 /* { dg-require-effective-target arm_neon_ok } */
49082 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49083 +/* { dg-options "-save-temps -O0" } */
49084 +/* { dg-add-options arm_neon } */
49085
49086 #include "arm_neon.h"
49087
49088 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u8.c
49089 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u8.c 2007-07-25 14:28:31.000000000 +0200
49090 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu16_u8.c 2010-01-25 09:50:29.475686346 +0100
49091 @@ -3,7 +3,8 @@
49092
49093 /* { dg-do assemble } */
49094 /* { dg-require-effective-target arm_neon_ok } */
49095 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49096 +/* { dg-options "-save-temps -O0" } */
49097 +/* { dg-add-options arm_neon } */
49098
49099 #include "arm_neon.h"
49100
49101 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_f32.c
49102 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_f32.c 2007-07-25 14:28:31.000000000 +0200
49103 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_f32.c 2010-01-25 09:50:29.475686346 +0100
49104 @@ -3,7 +3,8 @@
49105
49106 /* { dg-do assemble } */
49107 /* { dg-require-effective-target arm_neon_ok } */
49108 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49109 +/* { dg-options "-save-temps -O0" } */
49110 +/* { dg-add-options arm_neon } */
49111
49112 #include "arm_neon.h"
49113
49114 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_p16.c
49115 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_p16.c 2007-07-25 14:28:31.000000000 +0200
49116 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_p16.c 2010-01-25 09:50:29.475686346 +0100
49117 @@ -3,7 +3,8 @@
49118
49119 /* { dg-do assemble } */
49120 /* { dg-require-effective-target arm_neon_ok } */
49121 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49122 +/* { dg-options "-save-temps -O0" } */
49123 +/* { dg-add-options arm_neon } */
49124
49125 #include "arm_neon.h"
49126
49127 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_p8.c
49128 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_p8.c 2007-07-25 14:28:31.000000000 +0200
49129 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_p8.c 2010-01-25 09:50:29.475686346 +0100
49130 @@ -3,7 +3,8 @@
49131
49132 /* { dg-do assemble } */
49133 /* { dg-require-effective-target arm_neon_ok } */
49134 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49135 +/* { dg-options "-save-temps -O0" } */
49136 +/* { dg-add-options arm_neon } */
49137
49138 #include "arm_neon.h"
49139
49140 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s16.c
49141 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s16.c 2007-07-25 14:28:31.000000000 +0200
49142 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s16.c 2010-01-25 09:50:29.475686346 +0100
49143 @@ -3,7 +3,8 @@
49144
49145 /* { dg-do assemble } */
49146 /* { dg-require-effective-target arm_neon_ok } */
49147 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49148 +/* { dg-options "-save-temps -O0" } */
49149 +/* { dg-add-options arm_neon } */
49150
49151 #include "arm_neon.h"
49152
49153 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s32.c
49154 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s32.c 2007-07-25 14:28:31.000000000 +0200
49155 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s32.c 2010-01-25 09:50:29.485687478 +0100
49156 @@ -3,7 +3,8 @@
49157
49158 /* { dg-do assemble } */
49159 /* { dg-require-effective-target arm_neon_ok } */
49160 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49161 +/* { dg-options "-save-temps -O0" } */
49162 +/* { dg-add-options arm_neon } */
49163
49164 #include "arm_neon.h"
49165
49166 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s64.c
49167 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s64.c 2007-07-25 14:28:31.000000000 +0200
49168 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s64.c 2010-01-25 09:50:29.485687478 +0100
49169 @@ -3,7 +3,8 @@
49170
49171 /* { dg-do assemble } */
49172 /* { dg-require-effective-target arm_neon_ok } */
49173 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49174 +/* { dg-options "-save-temps -O0" } */
49175 +/* { dg-add-options arm_neon } */
49176
49177 #include "arm_neon.h"
49178
49179 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s8.c
49180 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s8.c 2007-07-25 14:28:31.000000000 +0200
49181 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_s8.c 2010-01-25 09:50:29.485687478 +0100
49182 @@ -3,7 +3,8 @@
49183
49184 /* { dg-do assemble } */
49185 /* { dg-require-effective-target arm_neon_ok } */
49186 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49187 +/* { dg-options "-save-temps -O0" } */
49188 +/* { dg-add-options arm_neon } */
49189
49190 #include "arm_neon.h"
49191
49192 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u16.c
49193 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u16.c 2007-07-25 14:28:31.000000000 +0200
49194 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u16.c 2010-01-25 09:50:29.485687478 +0100
49195 @@ -3,7 +3,8 @@
49196
49197 /* { dg-do assemble } */
49198 /* { dg-require-effective-target arm_neon_ok } */
49199 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49200 +/* { dg-options "-save-temps -O0" } */
49201 +/* { dg-add-options arm_neon } */
49202
49203 #include "arm_neon.h"
49204
49205 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u64.c
49206 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u64.c 2007-07-25 14:28:31.000000000 +0200
49207 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u64.c 2010-01-25 09:50:29.485687478 +0100
49208 @@ -3,7 +3,8 @@
49209
49210 /* { dg-do assemble } */
49211 /* { dg-require-effective-target arm_neon_ok } */
49212 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49213 +/* { dg-options "-save-temps -O0" } */
49214 +/* { dg-add-options arm_neon } */
49215
49216 #include "arm_neon.h"
49217
49218 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u8.c
49219 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u8.c 2007-07-25 14:28:31.000000000 +0200
49220 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu32_u8.c 2010-01-25 09:50:29.485687478 +0100
49221 @@ -3,7 +3,8 @@
49222
49223 /* { dg-do assemble } */
49224 /* { dg-require-effective-target arm_neon_ok } */
49225 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49226 +/* { dg-options "-save-temps -O0" } */
49227 +/* { dg-add-options arm_neon } */
49228
49229 #include "arm_neon.h"
49230
49231 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_f32.c
49232 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_f32.c 2007-07-25 14:28:31.000000000 +0200
49233 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_f32.c 2010-01-25 09:50:29.485687478 +0100
49234 @@ -3,7 +3,8 @@
49235
49236 /* { dg-do assemble } */
49237 /* { dg-require-effective-target arm_neon_ok } */
49238 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49239 +/* { dg-options "-save-temps -O0" } */
49240 +/* { dg-add-options arm_neon } */
49241
49242 #include "arm_neon.h"
49243
49244 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_p16.c
49245 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_p16.c 2007-07-25 14:28:31.000000000 +0200
49246 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_p16.c 2010-01-25 09:50:29.485687478 +0100
49247 @@ -3,7 +3,8 @@
49248
49249 /* { dg-do assemble } */
49250 /* { dg-require-effective-target arm_neon_ok } */
49251 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49252 +/* { dg-options "-save-temps -O0" } */
49253 +/* { dg-add-options arm_neon } */
49254
49255 #include "arm_neon.h"
49256
49257 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_p8.c
49258 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_p8.c 2007-07-25 14:28:31.000000000 +0200
49259 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_p8.c 2010-01-25 09:50:29.485687478 +0100
49260 @@ -3,7 +3,8 @@
49261
49262 /* { dg-do assemble } */
49263 /* { dg-require-effective-target arm_neon_ok } */
49264 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49265 +/* { dg-options "-save-temps -O0" } */
49266 +/* { dg-add-options arm_neon } */
49267
49268 #include "arm_neon.h"
49269
49270 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s16.c
49271 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s16.c 2007-07-25 14:28:31.000000000 +0200
49272 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s16.c 2010-01-25 09:50:29.485687478 +0100
49273 @@ -3,7 +3,8 @@
49274
49275 /* { dg-do assemble } */
49276 /* { dg-require-effective-target arm_neon_ok } */
49277 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49278 +/* { dg-options "-save-temps -O0" } */
49279 +/* { dg-add-options arm_neon } */
49280
49281 #include "arm_neon.h"
49282
49283 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s32.c
49284 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s32.c 2007-07-25 14:28:31.000000000 +0200
49285 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s32.c 2010-01-25 09:50:29.485687478 +0100
49286 @@ -3,7 +3,8 @@
49287
49288 /* { dg-do assemble } */
49289 /* { dg-require-effective-target arm_neon_ok } */
49290 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49291 +/* { dg-options "-save-temps -O0" } */
49292 +/* { dg-add-options arm_neon } */
49293
49294 #include "arm_neon.h"
49295
49296 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s64.c
49297 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s64.c 2007-07-25 14:28:31.000000000 +0200
49298 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s64.c 2010-01-25 09:50:29.485687478 +0100
49299 @@ -3,7 +3,8 @@
49300
49301 /* { dg-do assemble } */
49302 /* { dg-require-effective-target arm_neon_ok } */
49303 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49304 +/* { dg-options "-save-temps -O0" } */
49305 +/* { dg-add-options arm_neon } */
49306
49307 #include "arm_neon.h"
49308
49309 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s8.c
49310 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s8.c 2007-07-25 14:28:31.000000000 +0200
49311 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_s8.c 2010-01-25 09:50:29.485687478 +0100
49312 @@ -3,7 +3,8 @@
49313
49314 /* { dg-do assemble } */
49315 /* { dg-require-effective-target arm_neon_ok } */
49316 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49317 +/* { dg-options "-save-temps -O0" } */
49318 +/* { dg-add-options arm_neon } */
49319
49320 #include "arm_neon.h"
49321
49322 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u16.c
49323 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u16.c 2007-07-25 14:28:31.000000000 +0200
49324 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u16.c 2010-01-25 09:50:29.485687478 +0100
49325 @@ -3,7 +3,8 @@
49326
49327 /* { dg-do assemble } */
49328 /* { dg-require-effective-target arm_neon_ok } */
49329 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49330 +/* { dg-options "-save-temps -O0" } */
49331 +/* { dg-add-options arm_neon } */
49332
49333 #include "arm_neon.h"
49334
49335 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u32.c
49336 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u32.c 2007-07-25 14:28:31.000000000 +0200
49337 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u32.c 2010-01-25 09:50:29.485687478 +0100
49338 @@ -3,7 +3,8 @@
49339
49340 /* { dg-do assemble } */
49341 /* { dg-require-effective-target arm_neon_ok } */
49342 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49343 +/* { dg-options "-save-temps -O0" } */
49344 +/* { dg-add-options arm_neon } */
49345
49346 #include "arm_neon.h"
49347
49348 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u8.c
49349 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u8.c 2007-07-25 14:28:31.000000000 +0200
49350 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu64_u8.c 2010-01-25 09:50:29.485687478 +0100
49351 @@ -3,7 +3,8 @@
49352
49353 /* { dg-do assemble } */
49354 /* { dg-require-effective-target arm_neon_ok } */
49355 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49356 +/* { dg-options "-save-temps -O0" } */
49357 +/* { dg-add-options arm_neon } */
49358
49359 #include "arm_neon.h"
49360
49361 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_f32.c
49362 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_f32.c 2007-07-25 14:28:31.000000000 +0200
49363 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_f32.c 2010-01-25 09:50:29.485687478 +0100
49364 @@ -3,7 +3,8 @@
49365
49366 /* { dg-do assemble } */
49367 /* { dg-require-effective-target arm_neon_ok } */
49368 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49369 +/* { dg-options "-save-temps -O0" } */
49370 +/* { dg-add-options arm_neon } */
49371
49372 #include "arm_neon.h"
49373
49374 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_p16.c
49375 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_p16.c 2007-07-25 14:28:31.000000000 +0200
49376 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_p16.c 2010-01-25 09:50:29.485687478 +0100
49377 @@ -3,7 +3,8 @@
49378
49379 /* { dg-do assemble } */
49380 /* { dg-require-effective-target arm_neon_ok } */
49381 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49382 +/* { dg-options "-save-temps -O0" } */
49383 +/* { dg-add-options arm_neon } */
49384
49385 #include "arm_neon.h"
49386
49387 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_p8.c
49388 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_p8.c 2007-07-25 14:28:31.000000000 +0200
49389 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_p8.c 2010-01-25 09:50:29.485687478 +0100
49390 @@ -3,7 +3,8 @@
49391
49392 /* { dg-do assemble } */
49393 /* { dg-require-effective-target arm_neon_ok } */
49394 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49395 +/* { dg-options "-save-temps -O0" } */
49396 +/* { dg-add-options arm_neon } */
49397
49398 #include "arm_neon.h"
49399
49400 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s16.c
49401 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s16.c 2007-07-25 14:28:31.000000000 +0200
49402 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s16.c 2010-01-25 09:50:29.485687478 +0100
49403 @@ -3,7 +3,8 @@
49404
49405 /* { dg-do assemble } */
49406 /* { dg-require-effective-target arm_neon_ok } */
49407 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49408 +/* { dg-options "-save-temps -O0" } */
49409 +/* { dg-add-options arm_neon } */
49410
49411 #include "arm_neon.h"
49412
49413 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s32.c
49414 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s32.c 2007-07-25 14:28:31.000000000 +0200
49415 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s32.c 2010-01-25 09:50:29.485687478 +0100
49416 @@ -3,7 +3,8 @@
49417
49418 /* { dg-do assemble } */
49419 /* { dg-require-effective-target arm_neon_ok } */
49420 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49421 +/* { dg-options "-save-temps -O0" } */
49422 +/* { dg-add-options arm_neon } */
49423
49424 #include "arm_neon.h"
49425
49426 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s64.c
49427 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s64.c 2007-07-25 14:28:31.000000000 +0200
49428 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s64.c 2010-01-25 09:50:29.485687478 +0100
49429 @@ -3,7 +3,8 @@
49430
49431 /* { dg-do assemble } */
49432 /* { dg-require-effective-target arm_neon_ok } */
49433 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49434 +/* { dg-options "-save-temps -O0" } */
49435 +/* { dg-add-options arm_neon } */
49436
49437 #include "arm_neon.h"
49438
49439 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s8.c
49440 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s8.c 2007-07-25 14:28:31.000000000 +0200
49441 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_s8.c 2010-01-25 09:50:29.485687478 +0100
49442 @@ -3,7 +3,8 @@
49443
49444 /* { dg-do assemble } */
49445 /* { dg-require-effective-target arm_neon_ok } */
49446 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49447 +/* { dg-options "-save-temps -O0" } */
49448 +/* { dg-add-options arm_neon } */
49449
49450 #include "arm_neon.h"
49451
49452 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u16.c
49453 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u16.c 2007-07-25 14:28:31.000000000 +0200
49454 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u16.c 2010-01-25 09:50:29.485687478 +0100
49455 @@ -3,7 +3,8 @@
49456
49457 /* { dg-do assemble } */
49458 /* { dg-require-effective-target arm_neon_ok } */
49459 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49460 +/* { dg-options "-save-temps -O0" } */
49461 +/* { dg-add-options arm_neon } */
49462
49463 #include "arm_neon.h"
49464
49465 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u32.c
49466 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u32.c 2007-07-25 14:28:31.000000000 +0200
49467 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u32.c 2010-01-25 09:50:29.485687478 +0100
49468 @@ -3,7 +3,8 @@
49469
49470 /* { dg-do assemble } */
49471 /* { dg-require-effective-target arm_neon_ok } */
49472 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49473 +/* { dg-options "-save-temps -O0" } */
49474 +/* { dg-add-options arm_neon } */
49475
49476 #include "arm_neon.h"
49477
49478 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u64.c
49479 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u64.c 2007-07-25 14:28:31.000000000 +0200
49480 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretQu8_u64.c 2010-01-25 09:50:29.485687478 +0100
49481 @@ -3,7 +3,8 @@
49482
49483 /* { dg-do assemble } */
49484 /* { dg-require-effective-target arm_neon_ok } */
49485 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49486 +/* { dg-options "-save-temps -O0" } */
49487 +/* { dg-add-options arm_neon } */
49488
49489 #include "arm_neon.h"
49490
49491 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_f32.c
49492 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_f32.c 2007-07-25 14:28:31.000000000 +0200
49493 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_f32.c 2010-01-25 09:50:29.485687478 +0100
49494 @@ -3,7 +3,8 @@
49495
49496 /* { dg-do assemble } */
49497 /* { dg-require-effective-target arm_neon_ok } */
49498 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49499 +/* { dg-options "-save-temps -O0" } */
49500 +/* { dg-add-options arm_neon } */
49501
49502 #include "arm_neon.h"
49503
49504 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_p16.c
49505 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_p16.c 2007-07-25 14:28:31.000000000 +0200
49506 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_p16.c 2010-01-25 09:50:29.485687478 +0100
49507 @@ -3,7 +3,8 @@
49508
49509 /* { dg-do assemble } */
49510 /* { dg-require-effective-target arm_neon_ok } */
49511 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49512 +/* { dg-options "-save-temps -O0" } */
49513 +/* { dg-add-options arm_neon } */
49514
49515 #include "arm_neon.h"
49516
49517 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_p8.c
49518 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_p8.c 2007-07-25 14:28:31.000000000 +0200
49519 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_p8.c 2010-01-25 09:50:29.485687478 +0100
49520 @@ -3,7 +3,8 @@
49521
49522 /* { dg-do assemble } */
49523 /* { dg-require-effective-target arm_neon_ok } */
49524 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49525 +/* { dg-options "-save-temps -O0" } */
49526 +/* { dg-add-options arm_neon } */
49527
49528 #include "arm_neon.h"
49529
49530 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s32.c
49531 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s32.c 2007-07-25 14:28:31.000000000 +0200
49532 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s32.c 2010-01-25 09:50:29.485687478 +0100
49533 @@ -3,7 +3,8 @@
49534
49535 /* { dg-do assemble } */
49536 /* { dg-require-effective-target arm_neon_ok } */
49537 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49538 +/* { dg-options "-save-temps -O0" } */
49539 +/* { dg-add-options arm_neon } */
49540
49541 #include "arm_neon.h"
49542
49543 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s64.c
49544 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s64.c 2007-07-25 14:28:31.000000000 +0200
49545 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s64.c 2010-01-25 09:50:29.485687478 +0100
49546 @@ -3,7 +3,8 @@
49547
49548 /* { dg-do assemble } */
49549 /* { dg-require-effective-target arm_neon_ok } */
49550 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49551 +/* { dg-options "-save-temps -O0" } */
49552 +/* { dg-add-options arm_neon } */
49553
49554 #include "arm_neon.h"
49555
49556 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s8.c
49557 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s8.c 2007-07-25 14:28:31.000000000 +0200
49558 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_s8.c 2010-01-25 09:50:29.485687478 +0100
49559 @@ -3,7 +3,8 @@
49560
49561 /* { dg-do assemble } */
49562 /* { dg-require-effective-target arm_neon_ok } */
49563 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49564 +/* { dg-options "-save-temps -O0" } */
49565 +/* { dg-add-options arm_neon } */
49566
49567 #include "arm_neon.h"
49568
49569 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u16.c
49570 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u16.c 2007-07-25 14:28:31.000000000 +0200
49571 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u16.c 2010-01-25 09:50:29.485687478 +0100
49572 @@ -3,7 +3,8 @@
49573
49574 /* { dg-do assemble } */
49575 /* { dg-require-effective-target arm_neon_ok } */
49576 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49577 +/* { dg-options "-save-temps -O0" } */
49578 +/* { dg-add-options arm_neon } */
49579
49580 #include "arm_neon.h"
49581
49582 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u32.c
49583 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u32.c 2007-07-25 14:28:31.000000000 +0200
49584 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u32.c 2010-01-25 09:50:29.485687478 +0100
49585 @@ -3,7 +3,8 @@
49586
49587 /* { dg-do assemble } */
49588 /* { dg-require-effective-target arm_neon_ok } */
49589 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49590 +/* { dg-options "-save-temps -O0" } */
49591 +/* { dg-add-options arm_neon } */
49592
49593 #include "arm_neon.h"
49594
49595 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u64.c
49596 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u64.c 2007-07-25 14:28:31.000000000 +0200
49597 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u64.c 2010-01-25 09:50:29.485687478 +0100
49598 @@ -3,7 +3,8 @@
49599
49600 /* { dg-do assemble } */
49601 /* { dg-require-effective-target arm_neon_ok } */
49602 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49603 +/* { dg-options "-save-temps -O0" } */
49604 +/* { dg-add-options arm_neon } */
49605
49606 #include "arm_neon.h"
49607
49608 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u8.c
49609 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u8.c 2007-07-25 14:28:31.000000000 +0200
49610 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets16_u8.c 2010-01-25 09:50:29.485687478 +0100
49611 @@ -3,7 +3,8 @@
49612
49613 /* { dg-do assemble } */
49614 /* { dg-require-effective-target arm_neon_ok } */
49615 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49616 +/* { dg-options "-save-temps -O0" } */
49617 +/* { dg-add-options arm_neon } */
49618
49619 #include "arm_neon.h"
49620
49621 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_f32.c
49622 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_f32.c 2007-07-25 14:28:31.000000000 +0200
49623 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_f32.c 2010-01-25 09:50:29.485687478 +0100
49624 @@ -3,7 +3,8 @@
49625
49626 /* { dg-do assemble } */
49627 /* { dg-require-effective-target arm_neon_ok } */
49628 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49629 +/* { dg-options "-save-temps -O0" } */
49630 +/* { dg-add-options arm_neon } */
49631
49632 #include "arm_neon.h"
49633
49634 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_p16.c
49635 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_p16.c 2007-07-25 14:28:31.000000000 +0200
49636 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_p16.c 2010-01-25 09:50:29.485687478 +0100
49637 @@ -3,7 +3,8 @@
49638
49639 /* { dg-do assemble } */
49640 /* { dg-require-effective-target arm_neon_ok } */
49641 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49642 +/* { dg-options "-save-temps -O0" } */
49643 +/* { dg-add-options arm_neon } */
49644
49645 #include "arm_neon.h"
49646
49647 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_p8.c
49648 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_p8.c 2007-07-25 14:28:31.000000000 +0200
49649 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_p8.c 2010-01-25 09:50:29.485687478 +0100
49650 @@ -3,7 +3,8 @@
49651
49652 /* { dg-do assemble } */
49653 /* { dg-require-effective-target arm_neon_ok } */
49654 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49655 +/* { dg-options "-save-temps -O0" } */
49656 +/* { dg-add-options arm_neon } */
49657
49658 #include "arm_neon.h"
49659
49660 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s16.c
49661 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s16.c 2007-07-25 14:28:31.000000000 +0200
49662 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s16.c 2010-01-25 09:50:29.485687478 +0100
49663 @@ -3,7 +3,8 @@
49664
49665 /* { dg-do assemble } */
49666 /* { dg-require-effective-target arm_neon_ok } */
49667 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49668 +/* { dg-options "-save-temps -O0" } */
49669 +/* { dg-add-options arm_neon } */
49670
49671 #include "arm_neon.h"
49672
49673 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s64.c
49674 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s64.c 2007-07-25 14:28:31.000000000 +0200
49675 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s64.c 2010-01-25 09:50:29.485687478 +0100
49676 @@ -3,7 +3,8 @@
49677
49678 /* { dg-do assemble } */
49679 /* { dg-require-effective-target arm_neon_ok } */
49680 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49681 +/* { dg-options "-save-temps -O0" } */
49682 +/* { dg-add-options arm_neon } */
49683
49684 #include "arm_neon.h"
49685
49686 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s8.c
49687 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s8.c 2007-07-25 14:28:31.000000000 +0200
49688 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_s8.c 2010-01-25 09:50:29.485687478 +0100
49689 @@ -3,7 +3,8 @@
49690
49691 /* { dg-do assemble } */
49692 /* { dg-require-effective-target arm_neon_ok } */
49693 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49694 +/* { dg-options "-save-temps -O0" } */
49695 +/* { dg-add-options arm_neon } */
49696
49697 #include "arm_neon.h"
49698
49699 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u16.c
49700 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u16.c 2007-07-25 14:28:31.000000000 +0200
49701 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u16.c 2010-01-25 09:50:29.485687478 +0100
49702 @@ -3,7 +3,8 @@
49703
49704 /* { dg-do assemble } */
49705 /* { dg-require-effective-target arm_neon_ok } */
49706 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49707 +/* { dg-options "-save-temps -O0" } */
49708 +/* { dg-add-options arm_neon } */
49709
49710 #include "arm_neon.h"
49711
49712 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u32.c
49713 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u32.c 2007-07-25 14:28:31.000000000 +0200
49714 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u32.c 2010-01-25 09:50:29.485687478 +0100
49715 @@ -3,7 +3,8 @@
49716
49717 /* { dg-do assemble } */
49718 /* { dg-require-effective-target arm_neon_ok } */
49719 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49720 +/* { dg-options "-save-temps -O0" } */
49721 +/* { dg-add-options arm_neon } */
49722
49723 #include "arm_neon.h"
49724
49725 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u64.c
49726 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u64.c 2007-07-25 14:28:31.000000000 +0200
49727 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u64.c 2010-01-25 09:50:29.485687478 +0100
49728 @@ -3,7 +3,8 @@
49729
49730 /* { dg-do assemble } */
49731 /* { dg-require-effective-target arm_neon_ok } */
49732 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49733 +/* { dg-options "-save-temps -O0" } */
49734 +/* { dg-add-options arm_neon } */
49735
49736 #include "arm_neon.h"
49737
49738 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u8.c
49739 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u8.c 2007-07-25 14:28:31.000000000 +0200
49740 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets32_u8.c 2010-01-25 09:50:29.485687478 +0100
49741 @@ -3,7 +3,8 @@
49742
49743 /* { dg-do assemble } */
49744 /* { dg-require-effective-target arm_neon_ok } */
49745 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49746 +/* { dg-options "-save-temps -O0" } */
49747 +/* { dg-add-options arm_neon } */
49748
49749 #include "arm_neon.h"
49750
49751 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_f32.c
49752 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_f32.c 2007-07-25 14:28:31.000000000 +0200
49753 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_f32.c 2010-01-25 09:50:29.485687478 +0100
49754 @@ -3,7 +3,8 @@
49755
49756 /* { dg-do assemble } */
49757 /* { dg-require-effective-target arm_neon_ok } */
49758 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49759 +/* { dg-options "-save-temps -O0" } */
49760 +/* { dg-add-options arm_neon } */
49761
49762 #include "arm_neon.h"
49763
49764 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_p16.c
49765 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_p16.c 2007-07-25 14:28:31.000000000 +0200
49766 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_p16.c 2010-01-25 09:50:29.485687478 +0100
49767 @@ -3,7 +3,8 @@
49768
49769 /* { dg-do assemble } */
49770 /* { dg-require-effective-target arm_neon_ok } */
49771 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49772 +/* { dg-options "-save-temps -O0" } */
49773 +/* { dg-add-options arm_neon } */
49774
49775 #include "arm_neon.h"
49776
49777 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_p8.c
49778 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_p8.c 2007-07-25 14:28:31.000000000 +0200
49779 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_p8.c 2010-01-25 09:50:29.485687478 +0100
49780 @@ -3,7 +3,8 @@
49781
49782 /* { dg-do assemble } */
49783 /* { dg-require-effective-target arm_neon_ok } */
49784 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49785 +/* { dg-options "-save-temps -O0" } */
49786 +/* { dg-add-options arm_neon } */
49787
49788 #include "arm_neon.h"
49789
49790 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s16.c
49791 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s16.c 2007-07-25 14:28:31.000000000 +0200
49792 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s16.c 2010-01-25 09:50:29.485687478 +0100
49793 @@ -3,7 +3,8 @@
49794
49795 /* { dg-do assemble } */
49796 /* { dg-require-effective-target arm_neon_ok } */
49797 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49798 +/* { dg-options "-save-temps -O0" } */
49799 +/* { dg-add-options arm_neon } */
49800
49801 #include "arm_neon.h"
49802
49803 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s32.c
49804 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s32.c 2007-07-25 14:28:31.000000000 +0200
49805 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s32.c 2010-01-25 09:50:29.485687478 +0100
49806 @@ -3,7 +3,8 @@
49807
49808 /* { dg-do assemble } */
49809 /* { dg-require-effective-target arm_neon_ok } */
49810 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49811 +/* { dg-options "-save-temps -O0" } */
49812 +/* { dg-add-options arm_neon } */
49813
49814 #include "arm_neon.h"
49815
49816 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s8.c
49817 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s8.c 2007-07-25 14:28:31.000000000 +0200
49818 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_s8.c 2010-01-25 09:50:29.485687478 +0100
49819 @@ -3,7 +3,8 @@
49820
49821 /* { dg-do assemble } */
49822 /* { dg-require-effective-target arm_neon_ok } */
49823 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49824 +/* { dg-options "-save-temps -O0" } */
49825 +/* { dg-add-options arm_neon } */
49826
49827 #include "arm_neon.h"
49828
49829 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u16.c
49830 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u16.c 2007-07-25 14:28:31.000000000 +0200
49831 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u16.c 2010-01-25 09:50:29.485687478 +0100
49832 @@ -3,7 +3,8 @@
49833
49834 /* { dg-do assemble } */
49835 /* { dg-require-effective-target arm_neon_ok } */
49836 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49837 +/* { dg-options "-save-temps -O0" } */
49838 +/* { dg-add-options arm_neon } */
49839
49840 #include "arm_neon.h"
49841
49842 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u32.c
49843 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u32.c 2007-07-25 14:28:31.000000000 +0200
49844 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u32.c 2010-01-25 09:50:29.485687478 +0100
49845 @@ -3,7 +3,8 @@
49846
49847 /* { dg-do assemble } */
49848 /* { dg-require-effective-target arm_neon_ok } */
49849 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49850 +/* { dg-options "-save-temps -O0" } */
49851 +/* { dg-add-options arm_neon } */
49852
49853 #include "arm_neon.h"
49854
49855 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u64.c
49856 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u64.c 2007-07-25 14:28:31.000000000 +0200
49857 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u64.c 2010-01-25 09:50:29.485687478 +0100
49858 @@ -3,7 +3,8 @@
49859
49860 /* { dg-do assemble } */
49861 /* { dg-require-effective-target arm_neon_ok } */
49862 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49863 +/* { dg-options "-save-temps -O0" } */
49864 +/* { dg-add-options arm_neon } */
49865
49866 #include "arm_neon.h"
49867
49868 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u8.c
49869 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u8.c 2007-07-25 14:28:31.000000000 +0200
49870 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets64_u8.c 2010-01-25 09:50:29.485687478 +0100
49871 @@ -3,7 +3,8 @@
49872
49873 /* { dg-do assemble } */
49874 /* { dg-require-effective-target arm_neon_ok } */
49875 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49876 +/* { dg-options "-save-temps -O0" } */
49877 +/* { dg-add-options arm_neon } */
49878
49879 #include "arm_neon.h"
49880
49881 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_f32.c
49882 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_f32.c 2007-07-25 14:28:31.000000000 +0200
49883 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_f32.c 2010-01-25 09:50:29.485687478 +0100
49884 @@ -3,7 +3,8 @@
49885
49886 /* { dg-do assemble } */
49887 /* { dg-require-effective-target arm_neon_ok } */
49888 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49889 +/* { dg-options "-save-temps -O0" } */
49890 +/* { dg-add-options arm_neon } */
49891
49892 #include "arm_neon.h"
49893
49894 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_p16.c
49895 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_p16.c 2007-07-25 14:28:31.000000000 +0200
49896 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_p16.c 2010-01-25 09:50:29.485687478 +0100
49897 @@ -3,7 +3,8 @@
49898
49899 /* { dg-do assemble } */
49900 /* { dg-require-effective-target arm_neon_ok } */
49901 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49902 +/* { dg-options "-save-temps -O0" } */
49903 +/* { dg-add-options arm_neon } */
49904
49905 #include "arm_neon.h"
49906
49907 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_p8.c
49908 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_p8.c 2007-07-25 14:28:31.000000000 +0200
49909 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_p8.c 2010-01-25 09:50:29.485687478 +0100
49910 @@ -3,7 +3,8 @@
49911
49912 /* { dg-do assemble } */
49913 /* { dg-require-effective-target arm_neon_ok } */
49914 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49915 +/* { dg-options "-save-temps -O0" } */
49916 +/* { dg-add-options arm_neon } */
49917
49918 #include "arm_neon.h"
49919
49920 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s16.c
49921 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s16.c 2007-07-25 14:28:31.000000000 +0200
49922 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s16.c 2010-01-25 09:50:29.485687478 +0100
49923 @@ -3,7 +3,8 @@
49924
49925 /* { dg-do assemble } */
49926 /* { dg-require-effective-target arm_neon_ok } */
49927 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49928 +/* { dg-options "-save-temps -O0" } */
49929 +/* { dg-add-options arm_neon } */
49930
49931 #include "arm_neon.h"
49932
49933 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s32.c
49934 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s32.c 2007-07-25 14:28:31.000000000 +0200
49935 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s32.c 2010-01-25 09:50:29.485687478 +0100
49936 @@ -3,7 +3,8 @@
49937
49938 /* { dg-do assemble } */
49939 /* { dg-require-effective-target arm_neon_ok } */
49940 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49941 +/* { dg-options "-save-temps -O0" } */
49942 +/* { dg-add-options arm_neon } */
49943
49944 #include "arm_neon.h"
49945
49946 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s64.c
49947 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s64.c 2007-07-25 14:28:31.000000000 +0200
49948 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_s64.c 2010-01-25 09:50:29.485687478 +0100
49949 @@ -3,7 +3,8 @@
49950
49951 /* { dg-do assemble } */
49952 /* { dg-require-effective-target arm_neon_ok } */
49953 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49954 +/* { dg-options "-save-temps -O0" } */
49955 +/* { dg-add-options arm_neon } */
49956
49957 #include "arm_neon.h"
49958
49959 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u16.c
49960 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u16.c 2007-07-25 14:28:31.000000000 +0200
49961 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u16.c 2010-01-25 09:50:29.485687478 +0100
49962 @@ -3,7 +3,8 @@
49963
49964 /* { dg-do assemble } */
49965 /* { dg-require-effective-target arm_neon_ok } */
49966 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49967 +/* { dg-options "-save-temps -O0" } */
49968 +/* { dg-add-options arm_neon } */
49969
49970 #include "arm_neon.h"
49971
49972 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u32.c
49973 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u32.c 2007-07-25 14:28:31.000000000 +0200
49974 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u32.c 2010-01-25 09:50:29.485687478 +0100
49975 @@ -3,7 +3,8 @@
49976
49977 /* { dg-do assemble } */
49978 /* { dg-require-effective-target arm_neon_ok } */
49979 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49980 +/* { dg-options "-save-temps -O0" } */
49981 +/* { dg-add-options arm_neon } */
49982
49983 #include "arm_neon.h"
49984
49985 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u64.c
49986 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u64.c 2007-07-25 14:28:31.000000000 +0200
49987 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u64.c 2010-01-25 09:50:29.485687478 +0100
49988 @@ -3,7 +3,8 @@
49989
49990 /* { dg-do assemble } */
49991 /* { dg-require-effective-target arm_neon_ok } */
49992 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
49993 +/* { dg-options "-save-temps -O0" } */
49994 +/* { dg-add-options arm_neon } */
49995
49996 #include "arm_neon.h"
49997
49998 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u8.c
49999 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u8.c 2007-07-25 14:28:31.000000000 +0200
50000 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterprets8_u8.c 2010-01-25 09:50:29.485687478 +0100
50001 @@ -3,7 +3,8 @@
50002
50003 /* { dg-do assemble } */
50004 /* { dg-require-effective-target arm_neon_ok } */
50005 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50006 +/* { dg-options "-save-temps -O0" } */
50007 +/* { dg-add-options arm_neon } */
50008
50009 #include "arm_neon.h"
50010
50011 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_f32.c
50012 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_f32.c 2007-07-25 14:28:31.000000000 +0200
50013 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_f32.c 2010-01-25 09:50:29.485687478 +0100
50014 @@ -3,7 +3,8 @@
50015
50016 /* { dg-do assemble } */
50017 /* { dg-require-effective-target arm_neon_ok } */
50018 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50019 +/* { dg-options "-save-temps -O0" } */
50020 +/* { dg-add-options arm_neon } */
50021
50022 #include "arm_neon.h"
50023
50024 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_p16.c
50025 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_p16.c 2007-07-25 14:28:31.000000000 +0200
50026 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_p16.c 2010-01-25 09:50:29.485687478 +0100
50027 @@ -3,7 +3,8 @@
50028
50029 /* { dg-do assemble } */
50030 /* { dg-require-effective-target arm_neon_ok } */
50031 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50032 +/* { dg-options "-save-temps -O0" } */
50033 +/* { dg-add-options arm_neon } */
50034
50035 #include "arm_neon.h"
50036
50037 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_p8.c
50038 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_p8.c 2007-07-25 14:28:31.000000000 +0200
50039 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_p8.c 2010-01-25 09:50:29.485687478 +0100
50040 @@ -3,7 +3,8 @@
50041
50042 /* { dg-do assemble } */
50043 /* { dg-require-effective-target arm_neon_ok } */
50044 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50045 +/* { dg-options "-save-temps -O0" } */
50046 +/* { dg-add-options arm_neon } */
50047
50048 #include "arm_neon.h"
50049
50050 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s16.c
50051 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s16.c 2007-07-25 14:28:31.000000000 +0200
50052 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s16.c 2010-01-25 09:50:29.485687478 +0100
50053 @@ -3,7 +3,8 @@
50054
50055 /* { dg-do assemble } */
50056 /* { dg-require-effective-target arm_neon_ok } */
50057 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50058 +/* { dg-options "-save-temps -O0" } */
50059 +/* { dg-add-options arm_neon } */
50060
50061 #include "arm_neon.h"
50062
50063 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s32.c
50064 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s32.c 2007-07-25 14:28:31.000000000 +0200
50065 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s32.c 2010-01-25 09:50:29.485687478 +0100
50066 @@ -3,7 +3,8 @@
50067
50068 /* { dg-do assemble } */
50069 /* { dg-require-effective-target arm_neon_ok } */
50070 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50071 +/* { dg-options "-save-temps -O0" } */
50072 +/* { dg-add-options arm_neon } */
50073
50074 #include "arm_neon.h"
50075
50076 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s64.c
50077 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s64.c 2007-07-25 14:28:31.000000000 +0200
50078 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s64.c 2010-01-25 09:50:29.495687004 +0100
50079 @@ -3,7 +3,8 @@
50080
50081 /* { dg-do assemble } */
50082 /* { dg-require-effective-target arm_neon_ok } */
50083 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50084 +/* { dg-options "-save-temps -O0" } */
50085 +/* { dg-add-options arm_neon } */
50086
50087 #include "arm_neon.h"
50088
50089 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s8.c
50090 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s8.c 2007-07-25 14:28:31.000000000 +0200
50091 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_s8.c 2010-01-25 09:50:29.495687004 +0100
50092 @@ -3,7 +3,8 @@
50093
50094 /* { dg-do assemble } */
50095 /* { dg-require-effective-target arm_neon_ok } */
50096 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50097 +/* { dg-options "-save-temps -O0" } */
50098 +/* { dg-add-options arm_neon } */
50099
50100 #include "arm_neon.h"
50101
50102 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u32.c
50103 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u32.c 2007-07-25 14:28:31.000000000 +0200
50104 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u32.c 2010-01-25 09:50:29.495687004 +0100
50105 @@ -3,7 +3,8 @@
50106
50107 /* { dg-do assemble } */
50108 /* { dg-require-effective-target arm_neon_ok } */
50109 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50110 +/* { dg-options "-save-temps -O0" } */
50111 +/* { dg-add-options arm_neon } */
50112
50113 #include "arm_neon.h"
50114
50115 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u64.c
50116 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u64.c 2007-07-25 14:28:31.000000000 +0200
50117 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u64.c 2010-01-25 09:50:29.495687004 +0100
50118 @@ -3,7 +3,8 @@
50119
50120 /* { dg-do assemble } */
50121 /* { dg-require-effective-target arm_neon_ok } */
50122 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50123 +/* { dg-options "-save-temps -O0" } */
50124 +/* { dg-add-options arm_neon } */
50125
50126 #include "arm_neon.h"
50127
50128 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u8.c
50129 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u8.c 2007-07-25 14:28:31.000000000 +0200
50130 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu16_u8.c 2010-01-25 09:50:29.495687004 +0100
50131 @@ -3,7 +3,8 @@
50132
50133 /* { dg-do assemble } */
50134 /* { dg-require-effective-target arm_neon_ok } */
50135 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50136 +/* { dg-options "-save-temps -O0" } */
50137 +/* { dg-add-options arm_neon } */
50138
50139 #include "arm_neon.h"
50140
50141 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_f32.c
50142 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_f32.c 2007-07-25 14:28:31.000000000 +0200
50143 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_f32.c 2010-01-25 09:50:29.495687004 +0100
50144 @@ -3,7 +3,8 @@
50145
50146 /* { dg-do assemble } */
50147 /* { dg-require-effective-target arm_neon_ok } */
50148 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50149 +/* { dg-options "-save-temps -O0" } */
50150 +/* { dg-add-options arm_neon } */
50151
50152 #include "arm_neon.h"
50153
50154 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_p16.c
50155 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_p16.c 2007-07-25 14:28:31.000000000 +0200
50156 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_p16.c 2010-01-25 09:50:29.495687004 +0100
50157 @@ -3,7 +3,8 @@
50158
50159 /* { dg-do assemble } */
50160 /* { dg-require-effective-target arm_neon_ok } */
50161 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50162 +/* { dg-options "-save-temps -O0" } */
50163 +/* { dg-add-options arm_neon } */
50164
50165 #include "arm_neon.h"
50166
50167 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_p8.c
50168 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_p8.c 2007-07-25 14:28:31.000000000 +0200
50169 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_p8.c 2010-01-25 09:50:29.495687004 +0100
50170 @@ -3,7 +3,8 @@
50171
50172 /* { dg-do assemble } */
50173 /* { dg-require-effective-target arm_neon_ok } */
50174 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50175 +/* { dg-options "-save-temps -O0" } */
50176 +/* { dg-add-options arm_neon } */
50177
50178 #include "arm_neon.h"
50179
50180 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s16.c
50181 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s16.c 2007-07-25 14:28:31.000000000 +0200
50182 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s16.c 2010-01-25 09:50:29.495687004 +0100
50183 @@ -3,7 +3,8 @@
50184
50185 /* { dg-do assemble } */
50186 /* { dg-require-effective-target arm_neon_ok } */
50187 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50188 +/* { dg-options "-save-temps -O0" } */
50189 +/* { dg-add-options arm_neon } */
50190
50191 #include "arm_neon.h"
50192
50193 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s32.c
50194 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s32.c 2007-07-25 14:28:31.000000000 +0200
50195 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s32.c 2010-01-25 09:50:29.495687004 +0100
50196 @@ -3,7 +3,8 @@
50197
50198 /* { dg-do assemble } */
50199 /* { dg-require-effective-target arm_neon_ok } */
50200 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50201 +/* { dg-options "-save-temps -O0" } */
50202 +/* { dg-add-options arm_neon } */
50203
50204 #include "arm_neon.h"
50205
50206 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s64.c
50207 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s64.c 2007-07-25 14:28:31.000000000 +0200
50208 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s64.c 2010-01-25 09:50:29.495687004 +0100
50209 @@ -3,7 +3,8 @@
50210
50211 /* { dg-do assemble } */
50212 /* { dg-require-effective-target arm_neon_ok } */
50213 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50214 +/* { dg-options "-save-temps -O0" } */
50215 +/* { dg-add-options arm_neon } */
50216
50217 #include "arm_neon.h"
50218
50219 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s8.c
50220 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s8.c 2007-07-25 14:28:31.000000000 +0200
50221 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_s8.c 2010-01-25 09:50:29.495687004 +0100
50222 @@ -3,7 +3,8 @@
50223
50224 /* { dg-do assemble } */
50225 /* { dg-require-effective-target arm_neon_ok } */
50226 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50227 +/* { dg-options "-save-temps -O0" } */
50228 +/* { dg-add-options arm_neon } */
50229
50230 #include "arm_neon.h"
50231
50232 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u16.c
50233 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u16.c 2007-07-25 14:28:31.000000000 +0200
50234 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u16.c 2010-01-25 09:50:29.495687004 +0100
50235 @@ -3,7 +3,8 @@
50236
50237 /* { dg-do assemble } */
50238 /* { dg-require-effective-target arm_neon_ok } */
50239 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50240 +/* { dg-options "-save-temps -O0" } */
50241 +/* { dg-add-options arm_neon } */
50242
50243 #include "arm_neon.h"
50244
50245 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u64.c
50246 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u64.c 2007-07-25 14:28:31.000000000 +0200
50247 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u64.c 2010-01-25 09:50:29.495687004 +0100
50248 @@ -3,7 +3,8 @@
50249
50250 /* { dg-do assemble } */
50251 /* { dg-require-effective-target arm_neon_ok } */
50252 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50253 +/* { dg-options "-save-temps -O0" } */
50254 +/* { dg-add-options arm_neon } */
50255
50256 #include "arm_neon.h"
50257
50258 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u8.c
50259 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u8.c 2007-07-25 14:28:31.000000000 +0200
50260 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu32_u8.c 2010-01-25 09:50:29.495687004 +0100
50261 @@ -3,7 +3,8 @@
50262
50263 /* { dg-do assemble } */
50264 /* { dg-require-effective-target arm_neon_ok } */
50265 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50266 +/* { dg-options "-save-temps -O0" } */
50267 +/* { dg-add-options arm_neon } */
50268
50269 #include "arm_neon.h"
50270
50271 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_f32.c
50272 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_f32.c 2007-07-25 14:28:31.000000000 +0200
50273 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_f32.c 2010-01-25 09:50:29.495687004 +0100
50274 @@ -3,7 +3,8 @@
50275
50276 /* { dg-do assemble } */
50277 /* { dg-require-effective-target arm_neon_ok } */
50278 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50279 +/* { dg-options "-save-temps -O0" } */
50280 +/* { dg-add-options arm_neon } */
50281
50282 #include "arm_neon.h"
50283
50284 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_p16.c
50285 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_p16.c 2007-07-25 14:28:31.000000000 +0200
50286 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_p16.c 2010-01-25 09:50:29.495687004 +0100
50287 @@ -3,7 +3,8 @@
50288
50289 /* { dg-do assemble } */
50290 /* { dg-require-effective-target arm_neon_ok } */
50291 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50292 +/* { dg-options "-save-temps -O0" } */
50293 +/* { dg-add-options arm_neon } */
50294
50295 #include "arm_neon.h"
50296
50297 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_p8.c
50298 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_p8.c 2007-07-25 14:28:31.000000000 +0200
50299 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_p8.c 2010-01-25 09:50:29.495687004 +0100
50300 @@ -3,7 +3,8 @@
50301
50302 /* { dg-do assemble } */
50303 /* { dg-require-effective-target arm_neon_ok } */
50304 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50305 +/* { dg-options "-save-temps -O0" } */
50306 +/* { dg-add-options arm_neon } */
50307
50308 #include "arm_neon.h"
50309
50310 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s16.c
50311 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s16.c 2007-07-25 14:28:31.000000000 +0200
50312 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s16.c 2010-01-25 09:50:29.495687004 +0100
50313 @@ -3,7 +3,8 @@
50314
50315 /* { dg-do assemble } */
50316 /* { dg-require-effective-target arm_neon_ok } */
50317 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50318 +/* { dg-options "-save-temps -O0" } */
50319 +/* { dg-add-options arm_neon } */
50320
50321 #include "arm_neon.h"
50322
50323 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s32.c
50324 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s32.c 2007-07-25 14:28:31.000000000 +0200
50325 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s32.c 2010-01-25 09:50:29.495687004 +0100
50326 @@ -3,7 +3,8 @@
50327
50328 /* { dg-do assemble } */
50329 /* { dg-require-effective-target arm_neon_ok } */
50330 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50331 +/* { dg-options "-save-temps -O0" } */
50332 +/* { dg-add-options arm_neon } */
50333
50334 #include "arm_neon.h"
50335
50336 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s64.c
50337 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s64.c 2007-07-25 14:28:31.000000000 +0200
50338 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s64.c 2010-01-25 09:50:29.495687004 +0100
50339 @@ -3,7 +3,8 @@
50340
50341 /* { dg-do assemble } */
50342 /* { dg-require-effective-target arm_neon_ok } */
50343 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50344 +/* { dg-options "-save-temps -O0" } */
50345 +/* { dg-add-options arm_neon } */
50346
50347 #include "arm_neon.h"
50348
50349 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s8.c
50350 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s8.c 2007-07-25 14:28:31.000000000 +0200
50351 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_s8.c 2010-01-25 09:50:29.495687004 +0100
50352 @@ -3,7 +3,8 @@
50353
50354 /* { dg-do assemble } */
50355 /* { dg-require-effective-target arm_neon_ok } */
50356 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50357 +/* { dg-options "-save-temps -O0" } */
50358 +/* { dg-add-options arm_neon } */
50359
50360 #include "arm_neon.h"
50361
50362 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u16.c
50363 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u16.c 2007-07-25 14:28:31.000000000 +0200
50364 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u16.c 2010-01-25 09:50:29.495687004 +0100
50365 @@ -3,7 +3,8 @@
50366
50367 /* { dg-do assemble } */
50368 /* { dg-require-effective-target arm_neon_ok } */
50369 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50370 +/* { dg-options "-save-temps -O0" } */
50371 +/* { dg-add-options arm_neon } */
50372
50373 #include "arm_neon.h"
50374
50375 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u32.c
50376 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u32.c 2007-07-25 14:28:31.000000000 +0200
50377 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u32.c 2010-01-25 09:50:29.495687004 +0100
50378 @@ -3,7 +3,8 @@
50379
50380 /* { dg-do assemble } */
50381 /* { dg-require-effective-target arm_neon_ok } */
50382 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50383 +/* { dg-options "-save-temps -O0" } */
50384 +/* { dg-add-options arm_neon } */
50385
50386 #include "arm_neon.h"
50387
50388 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u8.c
50389 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u8.c 2007-07-25 14:28:31.000000000 +0200
50390 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu64_u8.c 2010-01-25 09:50:29.495687004 +0100
50391 @@ -3,7 +3,8 @@
50392
50393 /* { dg-do assemble } */
50394 /* { dg-require-effective-target arm_neon_ok } */
50395 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50396 +/* { dg-options "-save-temps -O0" } */
50397 +/* { dg-add-options arm_neon } */
50398
50399 #include "arm_neon.h"
50400
50401 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_f32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_f32.c
50402 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_f32.c 2007-07-25 14:28:31.000000000 +0200
50403 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_f32.c 2010-01-25 09:50:29.495687004 +0100
50404 @@ -3,7 +3,8 @@
50405
50406 /* { dg-do assemble } */
50407 /* { dg-require-effective-target arm_neon_ok } */
50408 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50409 +/* { dg-options "-save-temps -O0" } */
50410 +/* { dg-add-options arm_neon } */
50411
50412 #include "arm_neon.h"
50413
50414 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_p16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_p16.c
50415 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_p16.c 2007-07-25 14:28:31.000000000 +0200
50416 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_p16.c 2010-01-25 09:50:29.495687004 +0100
50417 @@ -3,7 +3,8 @@
50418
50419 /* { dg-do assemble } */
50420 /* { dg-require-effective-target arm_neon_ok } */
50421 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50422 +/* { dg-options "-save-temps -O0" } */
50423 +/* { dg-add-options arm_neon } */
50424
50425 #include "arm_neon.h"
50426
50427 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_p8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_p8.c
50428 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_p8.c 2007-07-25 14:28:31.000000000 +0200
50429 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_p8.c 2010-01-25 09:50:29.495687004 +0100
50430 @@ -3,7 +3,8 @@
50431
50432 /* { dg-do assemble } */
50433 /* { dg-require-effective-target arm_neon_ok } */
50434 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50435 +/* { dg-options "-save-temps -O0" } */
50436 +/* { dg-add-options arm_neon } */
50437
50438 #include "arm_neon.h"
50439
50440 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s16.c
50441 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s16.c 2007-07-25 14:28:31.000000000 +0200
50442 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s16.c 2010-01-25 09:50:29.495687004 +0100
50443 @@ -3,7 +3,8 @@
50444
50445 /* { dg-do assemble } */
50446 /* { dg-require-effective-target arm_neon_ok } */
50447 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50448 +/* { dg-options "-save-temps -O0" } */
50449 +/* { dg-add-options arm_neon } */
50450
50451 #include "arm_neon.h"
50452
50453 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s32.c
50454 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s32.c 2007-07-25 14:28:31.000000000 +0200
50455 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s32.c 2010-01-25 09:50:29.495687004 +0100
50456 @@ -3,7 +3,8 @@
50457
50458 /* { dg-do assemble } */
50459 /* { dg-require-effective-target arm_neon_ok } */
50460 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50461 +/* { dg-options "-save-temps -O0" } */
50462 +/* { dg-add-options arm_neon } */
50463
50464 #include "arm_neon.h"
50465
50466 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s64.c
50467 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s64.c 2007-07-25 14:28:31.000000000 +0200
50468 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s64.c 2010-01-25 09:50:29.495687004 +0100
50469 @@ -3,7 +3,8 @@
50470
50471 /* { dg-do assemble } */
50472 /* { dg-require-effective-target arm_neon_ok } */
50473 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50474 +/* { dg-options "-save-temps -O0" } */
50475 +/* { dg-add-options arm_neon } */
50476
50477 #include "arm_neon.h"
50478
50479 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s8.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s8.c
50480 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s8.c 2007-07-25 14:28:31.000000000 +0200
50481 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_s8.c 2010-01-25 09:50:29.495687004 +0100
50482 @@ -3,7 +3,8 @@
50483
50484 /* { dg-do assemble } */
50485 /* { dg-require-effective-target arm_neon_ok } */
50486 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50487 +/* { dg-options "-save-temps -O0" } */
50488 +/* { dg-add-options arm_neon } */
50489
50490 #include "arm_neon.h"
50491
50492 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u16.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u16.c
50493 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u16.c 2007-07-25 14:28:31.000000000 +0200
50494 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u16.c 2010-01-25 09:50:29.495687004 +0100
50495 @@ -3,7 +3,8 @@
50496
50497 /* { dg-do assemble } */
50498 /* { dg-require-effective-target arm_neon_ok } */
50499 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50500 +/* { dg-options "-save-temps -O0" } */
50501 +/* { dg-add-options arm_neon } */
50502
50503 #include "arm_neon.h"
50504
50505 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u32.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u32.c
50506 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u32.c 2007-07-25 14:28:31.000000000 +0200
50507 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u32.c 2010-01-25 09:50:29.495687004 +0100
50508 @@ -3,7 +3,8 @@
50509
50510 /* { dg-do assemble } */
50511 /* { dg-require-effective-target arm_neon_ok } */
50512 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50513 +/* { dg-options "-save-temps -O0" } */
50514 +/* { dg-add-options arm_neon } */
50515
50516 #include "arm_neon.h"
50517
50518 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u64.c b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u64.c
50519 --- a/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u64.c 2007-07-25 14:28:31.000000000 +0200
50520 +++ b/gcc/testsuite/gcc.target/arm/neon/vreinterpretu8_u64.c 2010-01-25 09:50:29.495687004 +0100
50521 @@ -3,7 +3,8 @@
50522
50523 /* { dg-do assemble } */
50524 /* { dg-require-effective-target arm_neon_ok } */
50525 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50526 +/* { dg-options "-save-temps -O0" } */
50527 +/* { dg-add-options arm_neon } */
50528
50529 #include "arm_neon.h"
50530
50531 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev16p8.c b/gcc/testsuite/gcc.target/arm/neon/vrev16p8.c
50532 --- a/gcc/testsuite/gcc.target/arm/neon/vrev16p8.c 2007-07-25 14:28:31.000000000 +0200
50533 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev16p8.c 2010-01-25 09:50:29.495687004 +0100
50534 @@ -3,7 +3,8 @@
50535
50536 /* { dg-do assemble } */
50537 /* { dg-require-effective-target arm_neon_ok } */
50538 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50539 +/* { dg-options "-save-temps -O0" } */
50540 +/* { dg-add-options arm_neon } */
50541
50542 #include "arm_neon.h"
50543
50544 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev16Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vrev16Qp8.c
50545 --- a/gcc/testsuite/gcc.target/arm/neon/vrev16Qp8.c 2007-07-25 14:28:31.000000000 +0200
50546 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev16Qp8.c 2010-01-25 09:50:29.495687004 +0100
50547 @@ -3,7 +3,8 @@
50548
50549 /* { dg-do assemble } */
50550 /* { dg-require-effective-target arm_neon_ok } */
50551 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50552 +/* { dg-options "-save-temps -O0" } */
50553 +/* { dg-add-options arm_neon } */
50554
50555 #include "arm_neon.h"
50556
50557 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev16Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vrev16Qs8.c
50558 --- a/gcc/testsuite/gcc.target/arm/neon/vrev16Qs8.c 2007-07-25 14:28:31.000000000 +0200
50559 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev16Qs8.c 2010-01-25 09:50:29.495687004 +0100
50560 @@ -3,7 +3,8 @@
50561
50562 /* { dg-do assemble } */
50563 /* { dg-require-effective-target arm_neon_ok } */
50564 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50565 +/* { dg-options "-save-temps -O0" } */
50566 +/* { dg-add-options arm_neon } */
50567
50568 #include "arm_neon.h"
50569
50570 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev16Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vrev16Qu8.c
50571 --- a/gcc/testsuite/gcc.target/arm/neon/vrev16Qu8.c 2007-07-25 14:28:31.000000000 +0200
50572 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev16Qu8.c 2010-01-25 09:50:29.495687004 +0100
50573 @@ -3,7 +3,8 @@
50574
50575 /* { dg-do assemble } */
50576 /* { dg-require-effective-target arm_neon_ok } */
50577 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50578 +/* { dg-options "-save-temps -O0" } */
50579 +/* { dg-add-options arm_neon } */
50580
50581 #include "arm_neon.h"
50582
50583 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev16s8.c b/gcc/testsuite/gcc.target/arm/neon/vrev16s8.c
50584 --- a/gcc/testsuite/gcc.target/arm/neon/vrev16s8.c 2007-07-25 14:28:31.000000000 +0200
50585 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev16s8.c 2010-01-25 09:50:29.495687004 +0100
50586 @@ -3,7 +3,8 @@
50587
50588 /* { dg-do assemble } */
50589 /* { dg-require-effective-target arm_neon_ok } */
50590 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50591 +/* { dg-options "-save-temps -O0" } */
50592 +/* { dg-add-options arm_neon } */
50593
50594 #include "arm_neon.h"
50595
50596 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev16u8.c b/gcc/testsuite/gcc.target/arm/neon/vrev16u8.c
50597 --- a/gcc/testsuite/gcc.target/arm/neon/vrev16u8.c 2007-07-25 14:28:31.000000000 +0200
50598 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev16u8.c 2010-01-25 09:50:29.495687004 +0100
50599 @@ -3,7 +3,8 @@
50600
50601 /* { dg-do assemble } */
50602 /* { dg-require-effective-target arm_neon_ok } */
50603 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50604 +/* { dg-options "-save-temps -O0" } */
50605 +/* { dg-add-options arm_neon } */
50606
50607 #include "arm_neon.h"
50608
50609 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32p16.c b/gcc/testsuite/gcc.target/arm/neon/vrev32p16.c
50610 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32p16.c 2007-07-25 14:28:31.000000000 +0200
50611 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32p16.c 2010-01-25 09:50:29.495687004 +0100
50612 @@ -3,7 +3,8 @@
50613
50614 /* { dg-do assemble } */
50615 /* { dg-require-effective-target arm_neon_ok } */
50616 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50617 +/* { dg-options "-save-temps -O0" } */
50618 +/* { dg-add-options arm_neon } */
50619
50620 #include "arm_neon.h"
50621
50622 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32p8.c b/gcc/testsuite/gcc.target/arm/neon/vrev32p8.c
50623 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32p8.c 2007-07-25 14:28:31.000000000 +0200
50624 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32p8.c 2010-01-25 09:50:29.495687004 +0100
50625 @@ -3,7 +3,8 @@
50626
50627 /* { dg-do assemble } */
50628 /* { dg-require-effective-target arm_neon_ok } */
50629 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50630 +/* { dg-options "-save-temps -O0" } */
50631 +/* { dg-add-options arm_neon } */
50632
50633 #include "arm_neon.h"
50634
50635 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vrev32Qp16.c
50636 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32Qp16.c 2007-07-25 14:28:31.000000000 +0200
50637 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32Qp16.c 2010-01-25 09:50:29.495687004 +0100
50638 @@ -3,7 +3,8 @@
50639
50640 /* { dg-do assemble } */
50641 /* { dg-require-effective-target arm_neon_ok } */
50642 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50643 +/* { dg-options "-save-temps -O0" } */
50644 +/* { dg-add-options arm_neon } */
50645
50646 #include "arm_neon.h"
50647
50648 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vrev32Qp8.c
50649 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32Qp8.c 2007-07-25 14:28:31.000000000 +0200
50650 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32Qp8.c 2010-01-25 09:50:29.495687004 +0100
50651 @@ -3,7 +3,8 @@
50652
50653 /* { dg-do assemble } */
50654 /* { dg-require-effective-target arm_neon_ok } */
50655 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50656 +/* { dg-options "-save-temps -O0" } */
50657 +/* { dg-add-options arm_neon } */
50658
50659 #include "arm_neon.h"
50660
50661 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vrev32Qs16.c
50662 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32Qs16.c 2007-07-25 14:28:31.000000000 +0200
50663 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32Qs16.c 2010-01-25 09:50:29.495687004 +0100
50664 @@ -3,7 +3,8 @@
50665
50666 /* { dg-do assemble } */
50667 /* { dg-require-effective-target arm_neon_ok } */
50668 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50669 +/* { dg-options "-save-temps -O0" } */
50670 +/* { dg-add-options arm_neon } */
50671
50672 #include "arm_neon.h"
50673
50674 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vrev32Qs8.c
50675 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32Qs8.c 2007-07-25 14:28:31.000000000 +0200
50676 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32Qs8.c 2010-01-25 09:50:29.495687004 +0100
50677 @@ -3,7 +3,8 @@
50678
50679 /* { dg-do assemble } */
50680 /* { dg-require-effective-target arm_neon_ok } */
50681 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50682 +/* { dg-options "-save-temps -O0" } */
50683 +/* { dg-add-options arm_neon } */
50684
50685 #include "arm_neon.h"
50686
50687 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vrev32Qu16.c
50688 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32Qu16.c 2007-07-25 14:28:31.000000000 +0200
50689 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32Qu16.c 2010-01-25 09:50:29.495687004 +0100
50690 @@ -3,7 +3,8 @@
50691
50692 /* { dg-do assemble } */
50693 /* { dg-require-effective-target arm_neon_ok } */
50694 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50695 +/* { dg-options "-save-temps -O0" } */
50696 +/* { dg-add-options arm_neon } */
50697
50698 #include "arm_neon.h"
50699
50700 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vrev32Qu8.c
50701 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32Qu8.c 2007-07-25 14:28:31.000000000 +0200
50702 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32Qu8.c 2010-01-25 09:50:29.495687004 +0100
50703 @@ -3,7 +3,8 @@
50704
50705 /* { dg-do assemble } */
50706 /* { dg-require-effective-target arm_neon_ok } */
50707 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50708 +/* { dg-options "-save-temps -O0" } */
50709 +/* { dg-add-options arm_neon } */
50710
50711 #include "arm_neon.h"
50712
50713 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32s16.c b/gcc/testsuite/gcc.target/arm/neon/vrev32s16.c
50714 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32s16.c 2007-07-25 14:28:31.000000000 +0200
50715 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32s16.c 2010-01-25 09:50:29.495687004 +0100
50716 @@ -3,7 +3,8 @@
50717
50718 /* { dg-do assemble } */
50719 /* { dg-require-effective-target arm_neon_ok } */
50720 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50721 +/* { dg-options "-save-temps -O0" } */
50722 +/* { dg-add-options arm_neon } */
50723
50724 #include "arm_neon.h"
50725
50726 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32s8.c b/gcc/testsuite/gcc.target/arm/neon/vrev32s8.c
50727 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32s8.c 2007-07-25 14:28:31.000000000 +0200
50728 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32s8.c 2010-01-25 09:50:29.495687004 +0100
50729 @@ -3,7 +3,8 @@
50730
50731 /* { dg-do assemble } */
50732 /* { dg-require-effective-target arm_neon_ok } */
50733 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50734 +/* { dg-options "-save-temps -O0" } */
50735 +/* { dg-add-options arm_neon } */
50736
50737 #include "arm_neon.h"
50738
50739 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32u16.c b/gcc/testsuite/gcc.target/arm/neon/vrev32u16.c
50740 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32u16.c 2007-07-25 14:28:31.000000000 +0200
50741 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32u16.c 2010-01-25 09:50:29.495687004 +0100
50742 @@ -3,7 +3,8 @@
50743
50744 /* { dg-do assemble } */
50745 /* { dg-require-effective-target arm_neon_ok } */
50746 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50747 +/* { dg-options "-save-temps -O0" } */
50748 +/* { dg-add-options arm_neon } */
50749
50750 #include "arm_neon.h"
50751
50752 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev32u8.c b/gcc/testsuite/gcc.target/arm/neon/vrev32u8.c
50753 --- a/gcc/testsuite/gcc.target/arm/neon/vrev32u8.c 2007-07-25 14:28:31.000000000 +0200
50754 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev32u8.c 2010-01-25 09:50:29.495687004 +0100
50755 @@ -3,7 +3,8 @@
50756
50757 /* { dg-do assemble } */
50758 /* { dg-require-effective-target arm_neon_ok } */
50759 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50760 +/* { dg-options "-save-temps -O0" } */
50761 +/* { dg-add-options arm_neon } */
50762
50763 #include "arm_neon.h"
50764
50765 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64f32.c b/gcc/testsuite/gcc.target/arm/neon/vrev64f32.c
50766 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64f32.c 2007-07-25 14:28:31.000000000 +0200
50767 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64f32.c 2010-01-25 09:50:29.495687004 +0100
50768 @@ -3,7 +3,8 @@
50769
50770 /* { dg-do assemble } */
50771 /* { dg-require-effective-target arm_neon_ok } */
50772 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50773 +/* { dg-options "-save-temps -O0" } */
50774 +/* { dg-add-options arm_neon } */
50775
50776 #include "arm_neon.h"
50777
50778 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64p16.c b/gcc/testsuite/gcc.target/arm/neon/vrev64p16.c
50779 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64p16.c 2007-07-25 14:28:31.000000000 +0200
50780 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64p16.c 2010-01-25 09:50:29.495687004 +0100
50781 @@ -3,7 +3,8 @@
50782
50783 /* { dg-do assemble } */
50784 /* { dg-require-effective-target arm_neon_ok } */
50785 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50786 +/* { dg-options "-save-temps -O0" } */
50787 +/* { dg-add-options arm_neon } */
50788
50789 #include "arm_neon.h"
50790
50791 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64p8.c b/gcc/testsuite/gcc.target/arm/neon/vrev64p8.c
50792 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64p8.c 2007-07-25 14:28:31.000000000 +0200
50793 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64p8.c 2010-01-25 09:50:29.495687004 +0100
50794 @@ -3,7 +3,8 @@
50795
50796 /* { dg-do assemble } */
50797 /* { dg-require-effective-target arm_neon_ok } */
50798 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50799 +/* { dg-options "-save-temps -O0" } */
50800 +/* { dg-add-options arm_neon } */
50801
50802 #include "arm_neon.h"
50803
50804 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qf32.c
50805 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qf32.c 2007-07-25 14:28:31.000000000 +0200
50806 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qf32.c 2010-01-25 09:50:29.495687004 +0100
50807 @@ -3,7 +3,8 @@
50808
50809 /* { dg-do assemble } */
50810 /* { dg-require-effective-target arm_neon_ok } */
50811 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50812 +/* { dg-options "-save-temps -O0" } */
50813 +/* { dg-add-options arm_neon } */
50814
50815 #include "arm_neon.h"
50816
50817 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qp16.c
50818 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qp16.c 2007-07-25 14:28:31.000000000 +0200
50819 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qp16.c 2010-01-25 09:50:29.495687004 +0100
50820 @@ -3,7 +3,8 @@
50821
50822 /* { dg-do assemble } */
50823 /* { dg-require-effective-target arm_neon_ok } */
50824 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50825 +/* { dg-options "-save-temps -O0" } */
50826 +/* { dg-add-options arm_neon } */
50827
50828 #include "arm_neon.h"
50829
50830 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qp8.c
50831 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qp8.c 2007-07-25 14:28:31.000000000 +0200
50832 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qp8.c 2010-01-25 09:50:29.495687004 +0100
50833 @@ -3,7 +3,8 @@
50834
50835 /* { dg-do assemble } */
50836 /* { dg-require-effective-target arm_neon_ok } */
50837 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50838 +/* { dg-options "-save-temps -O0" } */
50839 +/* { dg-add-options arm_neon } */
50840
50841 #include "arm_neon.h"
50842
50843 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qs16.c
50844 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qs16.c 2007-07-25 14:28:31.000000000 +0200
50845 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qs16.c 2010-01-25 09:50:29.495687004 +0100
50846 @@ -3,7 +3,8 @@
50847
50848 /* { dg-do assemble } */
50849 /* { dg-require-effective-target arm_neon_ok } */
50850 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50851 +/* { dg-options "-save-temps -O0" } */
50852 +/* { dg-add-options arm_neon } */
50853
50854 #include "arm_neon.h"
50855
50856 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qs32.c
50857 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qs32.c 2007-07-25 14:28:31.000000000 +0200
50858 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qs32.c 2010-01-25 09:50:29.495687004 +0100
50859 @@ -3,7 +3,8 @@
50860
50861 /* { dg-do assemble } */
50862 /* { dg-require-effective-target arm_neon_ok } */
50863 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50864 +/* { dg-options "-save-temps -O0" } */
50865 +/* { dg-add-options arm_neon } */
50866
50867 #include "arm_neon.h"
50868
50869 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qs8.c
50870 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qs8.c 2007-07-25 14:28:31.000000000 +0200
50871 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qs8.c 2010-01-25 09:50:29.495687004 +0100
50872 @@ -3,7 +3,8 @@
50873
50874 /* { dg-do assemble } */
50875 /* { dg-require-effective-target arm_neon_ok } */
50876 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50877 +/* { dg-options "-save-temps -O0" } */
50878 +/* { dg-add-options arm_neon } */
50879
50880 #include "arm_neon.h"
50881
50882 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qu16.c
50883 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qu16.c 2007-07-25 14:28:31.000000000 +0200
50884 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qu16.c 2010-01-25 09:50:29.495687004 +0100
50885 @@ -3,7 +3,8 @@
50886
50887 /* { dg-do assemble } */
50888 /* { dg-require-effective-target arm_neon_ok } */
50889 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50890 +/* { dg-options "-save-temps -O0" } */
50891 +/* { dg-add-options arm_neon } */
50892
50893 #include "arm_neon.h"
50894
50895 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qu32.c
50896 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qu32.c 2007-07-25 14:28:31.000000000 +0200
50897 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qu32.c 2010-01-25 09:50:29.495687004 +0100
50898 @@ -3,7 +3,8 @@
50899
50900 /* { dg-do assemble } */
50901 /* { dg-require-effective-target arm_neon_ok } */
50902 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50903 +/* { dg-options "-save-temps -O0" } */
50904 +/* { dg-add-options arm_neon } */
50905
50906 #include "arm_neon.h"
50907
50908 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vrev64Qu8.c
50909 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64Qu8.c 2007-07-25 14:28:31.000000000 +0200
50910 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64Qu8.c 2010-01-25 09:50:29.495687004 +0100
50911 @@ -3,7 +3,8 @@
50912
50913 /* { dg-do assemble } */
50914 /* { dg-require-effective-target arm_neon_ok } */
50915 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50916 +/* { dg-options "-save-temps -O0" } */
50917 +/* { dg-add-options arm_neon } */
50918
50919 #include "arm_neon.h"
50920
50921 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64s16.c b/gcc/testsuite/gcc.target/arm/neon/vrev64s16.c
50922 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64s16.c 2007-07-25 14:28:31.000000000 +0200
50923 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64s16.c 2010-01-25 09:50:29.495687004 +0100
50924 @@ -3,7 +3,8 @@
50925
50926 /* { dg-do assemble } */
50927 /* { dg-require-effective-target arm_neon_ok } */
50928 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50929 +/* { dg-options "-save-temps -O0" } */
50930 +/* { dg-add-options arm_neon } */
50931
50932 #include "arm_neon.h"
50933
50934 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64s32.c b/gcc/testsuite/gcc.target/arm/neon/vrev64s32.c
50935 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64s32.c 2007-07-25 14:28:31.000000000 +0200
50936 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64s32.c 2010-01-25 09:50:29.495687004 +0100
50937 @@ -3,7 +3,8 @@
50938
50939 /* { dg-do assemble } */
50940 /* { dg-require-effective-target arm_neon_ok } */
50941 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50942 +/* { dg-options "-save-temps -O0" } */
50943 +/* { dg-add-options arm_neon } */
50944
50945 #include "arm_neon.h"
50946
50947 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64s8.c b/gcc/testsuite/gcc.target/arm/neon/vrev64s8.c
50948 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64s8.c 2007-07-25 14:28:31.000000000 +0200
50949 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64s8.c 2010-01-25 09:50:29.495687004 +0100
50950 @@ -3,7 +3,8 @@
50951
50952 /* { dg-do assemble } */
50953 /* { dg-require-effective-target arm_neon_ok } */
50954 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50955 +/* { dg-options "-save-temps -O0" } */
50956 +/* { dg-add-options arm_neon } */
50957
50958 #include "arm_neon.h"
50959
50960 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64u16.c b/gcc/testsuite/gcc.target/arm/neon/vrev64u16.c
50961 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64u16.c 2007-07-25 14:28:31.000000000 +0200
50962 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64u16.c 2010-01-25 09:50:29.495687004 +0100
50963 @@ -3,7 +3,8 @@
50964
50965 /* { dg-do assemble } */
50966 /* { dg-require-effective-target arm_neon_ok } */
50967 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50968 +/* { dg-options "-save-temps -O0" } */
50969 +/* { dg-add-options arm_neon } */
50970
50971 #include "arm_neon.h"
50972
50973 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64u32.c b/gcc/testsuite/gcc.target/arm/neon/vrev64u32.c
50974 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64u32.c 2007-07-25 14:28:31.000000000 +0200
50975 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64u32.c 2010-01-25 09:50:29.495687004 +0100
50976 @@ -3,7 +3,8 @@
50977
50978 /* { dg-do assemble } */
50979 /* { dg-require-effective-target arm_neon_ok } */
50980 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50981 +/* { dg-options "-save-temps -O0" } */
50982 +/* { dg-add-options arm_neon } */
50983
50984 #include "arm_neon.h"
50985
50986 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrev64u8.c b/gcc/testsuite/gcc.target/arm/neon/vrev64u8.c
50987 --- a/gcc/testsuite/gcc.target/arm/neon/vrev64u8.c 2007-07-25 14:28:31.000000000 +0200
50988 +++ b/gcc/testsuite/gcc.target/arm/neon/vrev64u8.c 2010-01-25 09:50:29.495687004 +0100
50989 @@ -3,7 +3,8 @@
50990
50991 /* { dg-do assemble } */
50992 /* { dg-require-effective-target arm_neon_ok } */
50993 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
50994 +/* { dg-options "-save-temps -O0" } */
50995 +/* { dg-add-options arm_neon } */
50996
50997 #include "arm_neon.h"
50998
50999 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddQs16.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddQs16.c
51000 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddQs16.c 2007-07-25 14:28:31.000000000 +0200
51001 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddQs16.c 2010-01-25 09:50:29.495687004 +0100
51002 @@ -3,7 +3,8 @@
51003
51004 /* { dg-do assemble } */
51005 /* { dg-require-effective-target arm_neon_ok } */
51006 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51007 +/* { dg-options "-save-temps -O0" } */
51008 +/* { dg-add-options arm_neon } */
51009
51010 #include "arm_neon.h"
51011
51012 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddQs32.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddQs32.c
51013 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddQs32.c 2007-07-25 14:28:31.000000000 +0200
51014 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddQs32.c 2010-01-25 09:50:29.495687004 +0100
51015 @@ -3,7 +3,8 @@
51016
51017 /* { dg-do assemble } */
51018 /* { dg-require-effective-target arm_neon_ok } */
51019 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51020 +/* { dg-options "-save-temps -O0" } */
51021 +/* { dg-add-options arm_neon } */
51022
51023 #include "arm_neon.h"
51024
51025 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddQs8.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddQs8.c
51026 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddQs8.c 2007-07-25 14:28:31.000000000 +0200
51027 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddQs8.c 2010-01-25 09:50:29.495687004 +0100
51028 @@ -3,7 +3,8 @@
51029
51030 /* { dg-do assemble } */
51031 /* { dg-require-effective-target arm_neon_ok } */
51032 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51033 +/* { dg-options "-save-temps -O0" } */
51034 +/* { dg-add-options arm_neon } */
51035
51036 #include "arm_neon.h"
51037
51038 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddQu16.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddQu16.c
51039 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddQu16.c 2007-07-25 14:28:31.000000000 +0200
51040 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddQu16.c 2010-01-25 09:50:29.505686669 +0100
51041 @@ -3,7 +3,8 @@
51042
51043 /* { dg-do assemble } */
51044 /* { dg-require-effective-target arm_neon_ok } */
51045 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51046 +/* { dg-options "-save-temps -O0" } */
51047 +/* { dg-add-options arm_neon } */
51048
51049 #include "arm_neon.h"
51050
51051 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddQu32.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddQu32.c
51052 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddQu32.c 2007-07-25 14:28:31.000000000 +0200
51053 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddQu32.c 2010-01-25 09:50:29.505686669 +0100
51054 @@ -3,7 +3,8 @@
51055
51056 /* { dg-do assemble } */
51057 /* { dg-require-effective-target arm_neon_ok } */
51058 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51059 +/* { dg-options "-save-temps -O0" } */
51060 +/* { dg-add-options arm_neon } */
51061
51062 #include "arm_neon.h"
51063
51064 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddQu8.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddQu8.c
51065 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddQu8.c 2007-07-25 14:28:31.000000000 +0200
51066 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddQu8.c 2010-01-25 09:50:29.505686669 +0100
51067 @@ -3,7 +3,8 @@
51068
51069 /* { dg-do assemble } */
51070 /* { dg-require-effective-target arm_neon_ok } */
51071 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51072 +/* { dg-options "-save-temps -O0" } */
51073 +/* { dg-add-options arm_neon } */
51074
51075 #include "arm_neon.h"
51076
51077 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhadds16.c b/gcc/testsuite/gcc.target/arm/neon/vRhadds16.c
51078 --- a/gcc/testsuite/gcc.target/arm/neon/vRhadds16.c 2007-07-25 14:28:31.000000000 +0200
51079 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhadds16.c 2010-01-25 09:50:29.505686669 +0100
51080 @@ -3,7 +3,8 @@
51081
51082 /* { dg-do assemble } */
51083 /* { dg-require-effective-target arm_neon_ok } */
51084 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51085 +/* { dg-options "-save-temps -O0" } */
51086 +/* { dg-add-options arm_neon } */
51087
51088 #include "arm_neon.h"
51089
51090 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhadds32.c b/gcc/testsuite/gcc.target/arm/neon/vRhadds32.c
51091 --- a/gcc/testsuite/gcc.target/arm/neon/vRhadds32.c 2007-07-25 14:28:31.000000000 +0200
51092 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhadds32.c 2010-01-25 09:50:29.505686669 +0100
51093 @@ -3,7 +3,8 @@
51094
51095 /* { dg-do assemble } */
51096 /* { dg-require-effective-target arm_neon_ok } */
51097 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51098 +/* { dg-options "-save-temps -O0" } */
51099 +/* { dg-add-options arm_neon } */
51100
51101 #include "arm_neon.h"
51102
51103 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhadds8.c b/gcc/testsuite/gcc.target/arm/neon/vRhadds8.c
51104 --- a/gcc/testsuite/gcc.target/arm/neon/vRhadds8.c 2007-07-25 14:28:31.000000000 +0200
51105 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhadds8.c 2010-01-25 09:50:29.505686669 +0100
51106 @@ -3,7 +3,8 @@
51107
51108 /* { dg-do assemble } */
51109 /* { dg-require-effective-target arm_neon_ok } */
51110 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51111 +/* { dg-options "-save-temps -O0" } */
51112 +/* { dg-add-options arm_neon } */
51113
51114 #include "arm_neon.h"
51115
51116 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddu16.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddu16.c
51117 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddu16.c 2007-07-25 14:28:31.000000000 +0200
51118 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddu16.c 2010-01-25 09:50:29.505686669 +0100
51119 @@ -3,7 +3,8 @@
51120
51121 /* { dg-do assemble } */
51122 /* { dg-require-effective-target arm_neon_ok } */
51123 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51124 +/* { dg-options "-save-temps -O0" } */
51125 +/* { dg-add-options arm_neon } */
51126
51127 #include "arm_neon.h"
51128
51129 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddu32.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddu32.c
51130 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddu32.c 2007-07-25 14:28:31.000000000 +0200
51131 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddu32.c 2010-01-25 09:50:29.505686669 +0100
51132 @@ -3,7 +3,8 @@
51133
51134 /* { dg-do assemble } */
51135 /* { dg-require-effective-target arm_neon_ok } */
51136 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51137 +/* { dg-options "-save-temps -O0" } */
51138 +/* { dg-add-options arm_neon } */
51139
51140 #include "arm_neon.h"
51141
51142 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRhaddu8.c b/gcc/testsuite/gcc.target/arm/neon/vRhaddu8.c
51143 --- a/gcc/testsuite/gcc.target/arm/neon/vRhaddu8.c 2007-07-25 14:28:31.000000000 +0200
51144 +++ b/gcc/testsuite/gcc.target/arm/neon/vRhaddu8.c 2010-01-25 09:50:29.505686669 +0100
51145 @@ -3,7 +3,8 @@
51146
51147 /* { dg-do assemble } */
51148 /* { dg-require-effective-target arm_neon_ok } */
51149 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51150 +/* { dg-options "-save-temps -O0" } */
51151 +/* { dg-add-options arm_neon } */
51152
51153 #include "arm_neon.h"
51154
51155 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlQs16.c b/gcc/testsuite/gcc.target/arm/neon/vRshlQs16.c
51156 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlQs16.c 2007-07-25 14:28:31.000000000 +0200
51157 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlQs16.c 2010-01-25 09:50:29.505686669 +0100
51158 @@ -3,7 +3,8 @@
51159
51160 /* { dg-do assemble } */
51161 /* { dg-require-effective-target arm_neon_ok } */
51162 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51163 +/* { dg-options "-save-temps -O0" } */
51164 +/* { dg-add-options arm_neon } */
51165
51166 #include "arm_neon.h"
51167
51168 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlQs32.c b/gcc/testsuite/gcc.target/arm/neon/vRshlQs32.c
51169 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlQs32.c 2007-07-25 14:28:31.000000000 +0200
51170 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlQs32.c 2010-01-25 09:50:29.505686669 +0100
51171 @@ -3,7 +3,8 @@
51172
51173 /* { dg-do assemble } */
51174 /* { dg-require-effective-target arm_neon_ok } */
51175 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51176 +/* { dg-options "-save-temps -O0" } */
51177 +/* { dg-add-options arm_neon } */
51178
51179 #include "arm_neon.h"
51180
51181 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlQs64.c b/gcc/testsuite/gcc.target/arm/neon/vRshlQs64.c
51182 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlQs64.c 2007-07-25 14:28:31.000000000 +0200
51183 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlQs64.c 2010-01-25 09:50:29.505686669 +0100
51184 @@ -3,7 +3,8 @@
51185
51186 /* { dg-do assemble } */
51187 /* { dg-require-effective-target arm_neon_ok } */
51188 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51189 +/* { dg-options "-save-temps -O0" } */
51190 +/* { dg-add-options arm_neon } */
51191
51192 #include "arm_neon.h"
51193
51194 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlQs8.c b/gcc/testsuite/gcc.target/arm/neon/vRshlQs8.c
51195 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlQs8.c 2007-07-25 14:28:31.000000000 +0200
51196 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlQs8.c 2010-01-25 09:50:29.505686669 +0100
51197 @@ -3,7 +3,8 @@
51198
51199 /* { dg-do assemble } */
51200 /* { dg-require-effective-target arm_neon_ok } */
51201 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51202 +/* { dg-options "-save-temps -O0" } */
51203 +/* { dg-add-options arm_neon } */
51204
51205 #include "arm_neon.h"
51206
51207 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlQu16.c b/gcc/testsuite/gcc.target/arm/neon/vRshlQu16.c
51208 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlQu16.c 2007-07-25 14:28:31.000000000 +0200
51209 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlQu16.c 2010-01-25 09:50:29.505686669 +0100
51210 @@ -3,7 +3,8 @@
51211
51212 /* { dg-do assemble } */
51213 /* { dg-require-effective-target arm_neon_ok } */
51214 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51215 +/* { dg-options "-save-temps -O0" } */
51216 +/* { dg-add-options arm_neon } */
51217
51218 #include "arm_neon.h"
51219
51220 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlQu32.c b/gcc/testsuite/gcc.target/arm/neon/vRshlQu32.c
51221 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlQu32.c 2007-07-25 14:28:31.000000000 +0200
51222 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlQu32.c 2010-01-25 09:50:29.505686669 +0100
51223 @@ -3,7 +3,8 @@
51224
51225 /* { dg-do assemble } */
51226 /* { dg-require-effective-target arm_neon_ok } */
51227 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51228 +/* { dg-options "-save-temps -O0" } */
51229 +/* { dg-add-options arm_neon } */
51230
51231 #include "arm_neon.h"
51232
51233 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlQu64.c b/gcc/testsuite/gcc.target/arm/neon/vRshlQu64.c
51234 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlQu64.c 2007-07-25 14:28:31.000000000 +0200
51235 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlQu64.c 2010-01-25 09:50:29.505686669 +0100
51236 @@ -3,7 +3,8 @@
51237
51238 /* { dg-do assemble } */
51239 /* { dg-require-effective-target arm_neon_ok } */
51240 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51241 +/* { dg-options "-save-temps -O0" } */
51242 +/* { dg-add-options arm_neon } */
51243
51244 #include "arm_neon.h"
51245
51246 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlQu8.c b/gcc/testsuite/gcc.target/arm/neon/vRshlQu8.c
51247 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlQu8.c 2007-07-25 14:28:31.000000000 +0200
51248 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlQu8.c 2010-01-25 09:50:29.505686669 +0100
51249 @@ -3,7 +3,8 @@
51250
51251 /* { dg-do assemble } */
51252 /* { dg-require-effective-target arm_neon_ok } */
51253 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51254 +/* { dg-options "-save-temps -O0" } */
51255 +/* { dg-add-options arm_neon } */
51256
51257 #include "arm_neon.h"
51258
51259 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshls16.c b/gcc/testsuite/gcc.target/arm/neon/vRshls16.c
51260 --- a/gcc/testsuite/gcc.target/arm/neon/vRshls16.c 2007-07-25 14:28:31.000000000 +0200
51261 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshls16.c 2010-01-25 09:50:29.505686669 +0100
51262 @@ -3,7 +3,8 @@
51263
51264 /* { dg-do assemble } */
51265 /* { dg-require-effective-target arm_neon_ok } */
51266 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51267 +/* { dg-options "-save-temps -O0" } */
51268 +/* { dg-add-options arm_neon } */
51269
51270 #include "arm_neon.h"
51271
51272 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshls32.c b/gcc/testsuite/gcc.target/arm/neon/vRshls32.c
51273 --- a/gcc/testsuite/gcc.target/arm/neon/vRshls32.c 2007-07-25 14:28:31.000000000 +0200
51274 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshls32.c 2010-01-25 09:50:29.505686669 +0100
51275 @@ -3,7 +3,8 @@
51276
51277 /* { dg-do assemble } */
51278 /* { dg-require-effective-target arm_neon_ok } */
51279 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51280 +/* { dg-options "-save-temps -O0" } */
51281 +/* { dg-add-options arm_neon } */
51282
51283 #include "arm_neon.h"
51284
51285 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshls64.c b/gcc/testsuite/gcc.target/arm/neon/vRshls64.c
51286 --- a/gcc/testsuite/gcc.target/arm/neon/vRshls64.c 2007-07-25 14:28:31.000000000 +0200
51287 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshls64.c 2010-01-25 09:50:29.505686669 +0100
51288 @@ -3,7 +3,8 @@
51289
51290 /* { dg-do assemble } */
51291 /* { dg-require-effective-target arm_neon_ok } */
51292 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51293 +/* { dg-options "-save-temps -O0" } */
51294 +/* { dg-add-options arm_neon } */
51295
51296 #include "arm_neon.h"
51297
51298 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshls8.c b/gcc/testsuite/gcc.target/arm/neon/vRshls8.c
51299 --- a/gcc/testsuite/gcc.target/arm/neon/vRshls8.c 2007-07-25 14:28:31.000000000 +0200
51300 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshls8.c 2010-01-25 09:50:29.505686669 +0100
51301 @@ -3,7 +3,8 @@
51302
51303 /* { dg-do assemble } */
51304 /* { dg-require-effective-target arm_neon_ok } */
51305 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51306 +/* { dg-options "-save-temps -O0" } */
51307 +/* { dg-add-options arm_neon } */
51308
51309 #include "arm_neon.h"
51310
51311 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlu16.c b/gcc/testsuite/gcc.target/arm/neon/vRshlu16.c
51312 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlu16.c 2007-07-25 14:28:31.000000000 +0200
51313 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlu16.c 2010-01-25 09:50:29.505686669 +0100
51314 @@ -3,7 +3,8 @@
51315
51316 /* { dg-do assemble } */
51317 /* { dg-require-effective-target arm_neon_ok } */
51318 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51319 +/* { dg-options "-save-temps -O0" } */
51320 +/* { dg-add-options arm_neon } */
51321
51322 #include "arm_neon.h"
51323
51324 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlu32.c b/gcc/testsuite/gcc.target/arm/neon/vRshlu32.c
51325 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlu32.c 2007-07-25 14:28:31.000000000 +0200
51326 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlu32.c 2010-01-25 09:50:29.505686669 +0100
51327 @@ -3,7 +3,8 @@
51328
51329 /* { dg-do assemble } */
51330 /* { dg-require-effective-target arm_neon_ok } */
51331 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51332 +/* { dg-options "-save-temps -O0" } */
51333 +/* { dg-add-options arm_neon } */
51334
51335 #include "arm_neon.h"
51336
51337 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlu64.c b/gcc/testsuite/gcc.target/arm/neon/vRshlu64.c
51338 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlu64.c 2007-07-25 14:28:31.000000000 +0200
51339 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlu64.c 2010-01-25 09:50:29.505686669 +0100
51340 @@ -3,7 +3,8 @@
51341
51342 /* { dg-do assemble } */
51343 /* { dg-require-effective-target arm_neon_ok } */
51344 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51345 +/* { dg-options "-save-temps -O0" } */
51346 +/* { dg-add-options arm_neon } */
51347
51348 #include "arm_neon.h"
51349
51350 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshlu8.c b/gcc/testsuite/gcc.target/arm/neon/vRshlu8.c
51351 --- a/gcc/testsuite/gcc.target/arm/neon/vRshlu8.c 2007-07-25 14:28:31.000000000 +0200
51352 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshlu8.c 2010-01-25 09:50:29.505686669 +0100
51353 @@ -3,7 +3,8 @@
51354
51355 /* { dg-do assemble } */
51356 /* { dg-require-effective-target arm_neon_ok } */
51357 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51358 +/* { dg-options "-save-temps -O0" } */
51359 +/* { dg-add-options arm_neon } */
51360
51361 #include "arm_neon.h"
51362
51363 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns16.c
51364 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns16.c 2007-07-25 14:28:31.000000000 +0200
51365 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns16.c 2010-01-25 09:50:29.505686669 +0100
51366 @@ -3,7 +3,8 @@
51367
51368 /* { dg-do assemble } */
51369 /* { dg-require-effective-target arm_neon_ok } */
51370 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51371 +/* { dg-options "-save-temps -O0" } */
51372 +/* { dg-add-options arm_neon } */
51373
51374 #include "arm_neon.h"
51375
51376 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns32.c
51377 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns32.c 2007-07-25 14:28:31.000000000 +0200
51378 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns32.c 2010-01-25 09:50:29.505686669 +0100
51379 @@ -3,7 +3,8 @@
51380
51381 /* { dg-do assemble } */
51382 /* { dg-require-effective-target arm_neon_ok } */
51383 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51384 +/* { dg-options "-save-temps -O0" } */
51385 +/* { dg-add-options arm_neon } */
51386
51387 #include "arm_neon.h"
51388
51389 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns64.c
51390 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns64.c 2007-07-25 14:28:31.000000000 +0200
51391 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrn_ns64.c 2010-01-25 09:50:29.505686669 +0100
51392 @@ -3,7 +3,8 @@
51393
51394 /* { dg-do assemble } */
51395 /* { dg-require-effective-target arm_neon_ok } */
51396 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51397 +/* { dg-options "-save-temps -O0" } */
51398 +/* { dg-add-options arm_neon } */
51399
51400 #include "arm_neon.h"
51401
51402 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu16.c
51403 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu16.c 2007-07-25 14:28:31.000000000 +0200
51404 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu16.c 2010-01-25 09:50:29.505686669 +0100
51405 @@ -3,7 +3,8 @@
51406
51407 /* { dg-do assemble } */
51408 /* { dg-require-effective-target arm_neon_ok } */
51409 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51410 +/* { dg-options "-save-temps -O0" } */
51411 +/* { dg-add-options arm_neon } */
51412
51413 #include "arm_neon.h"
51414
51415 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu32.c
51416 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu32.c 2007-07-25 14:28:31.000000000 +0200
51417 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu32.c 2010-01-25 09:50:29.505686669 +0100
51418 @@ -3,7 +3,8 @@
51419
51420 /* { dg-do assemble } */
51421 /* { dg-require-effective-target arm_neon_ok } */
51422 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51423 +/* { dg-options "-save-temps -O0" } */
51424 +/* { dg-add-options arm_neon } */
51425
51426 #include "arm_neon.h"
51427
51428 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu64.c
51429 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu64.c 2007-07-25 14:28:31.000000000 +0200
51430 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrn_nu64.c 2010-01-25 09:50:29.505686669 +0100
51431 @@ -3,7 +3,8 @@
51432
51433 /* { dg-do assemble } */
51434 /* { dg-require-effective-target arm_neon_ok } */
51435 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51436 +/* { dg-options "-save-temps -O0" } */
51437 +/* { dg-add-options arm_neon } */
51438
51439 #include "arm_neon.h"
51440
51441 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshr_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vRshr_ns16.c
51442 --- a/gcc/testsuite/gcc.target/arm/neon/vRshr_ns16.c 2007-07-25 14:28:31.000000000 +0200
51443 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshr_ns16.c 2010-01-25 09:50:29.505686669 +0100
51444 @@ -3,7 +3,8 @@
51445
51446 /* { dg-do assemble } */
51447 /* { dg-require-effective-target arm_neon_ok } */
51448 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51449 +/* { dg-options "-save-temps -O0" } */
51450 +/* { dg-add-options arm_neon } */
51451
51452 #include "arm_neon.h"
51453
51454 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshr_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vRshr_ns32.c
51455 --- a/gcc/testsuite/gcc.target/arm/neon/vRshr_ns32.c 2007-07-25 14:28:31.000000000 +0200
51456 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshr_ns32.c 2010-01-25 09:50:29.505686669 +0100
51457 @@ -3,7 +3,8 @@
51458
51459 /* { dg-do assemble } */
51460 /* { dg-require-effective-target arm_neon_ok } */
51461 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51462 +/* { dg-options "-save-temps -O0" } */
51463 +/* { dg-add-options arm_neon } */
51464
51465 #include "arm_neon.h"
51466
51467 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshr_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vRshr_ns64.c
51468 --- a/gcc/testsuite/gcc.target/arm/neon/vRshr_ns64.c 2007-07-25 14:28:31.000000000 +0200
51469 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshr_ns64.c 2010-01-25 09:50:29.505686669 +0100
51470 @@ -3,7 +3,8 @@
51471
51472 /* { dg-do assemble } */
51473 /* { dg-require-effective-target arm_neon_ok } */
51474 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51475 +/* { dg-options "-save-temps -O0" } */
51476 +/* { dg-add-options arm_neon } */
51477
51478 #include "arm_neon.h"
51479
51480 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshr_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vRshr_ns8.c
51481 --- a/gcc/testsuite/gcc.target/arm/neon/vRshr_ns8.c 2007-07-25 14:28:31.000000000 +0200
51482 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshr_ns8.c 2010-01-25 09:50:29.505686669 +0100
51483 @@ -3,7 +3,8 @@
51484
51485 /* { dg-do assemble } */
51486 /* { dg-require-effective-target arm_neon_ok } */
51487 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51488 +/* { dg-options "-save-temps -O0" } */
51489 +/* { dg-add-options arm_neon } */
51490
51491 #include "arm_neon.h"
51492
51493 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshr_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vRshr_nu16.c
51494 --- a/gcc/testsuite/gcc.target/arm/neon/vRshr_nu16.c 2007-07-25 14:28:31.000000000 +0200
51495 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshr_nu16.c 2010-01-25 09:50:29.505686669 +0100
51496 @@ -3,7 +3,8 @@
51497
51498 /* { dg-do assemble } */
51499 /* { dg-require-effective-target arm_neon_ok } */
51500 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51501 +/* { dg-options "-save-temps -O0" } */
51502 +/* { dg-add-options arm_neon } */
51503
51504 #include "arm_neon.h"
51505
51506 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshr_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vRshr_nu32.c
51507 --- a/gcc/testsuite/gcc.target/arm/neon/vRshr_nu32.c 2007-07-25 14:28:31.000000000 +0200
51508 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshr_nu32.c 2010-01-25 09:50:29.505686669 +0100
51509 @@ -3,7 +3,8 @@
51510
51511 /* { dg-do assemble } */
51512 /* { dg-require-effective-target arm_neon_ok } */
51513 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51514 +/* { dg-options "-save-temps -O0" } */
51515 +/* { dg-add-options arm_neon } */
51516
51517 #include "arm_neon.h"
51518
51519 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshr_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vRshr_nu64.c
51520 --- a/gcc/testsuite/gcc.target/arm/neon/vRshr_nu64.c 2007-07-25 14:28:31.000000000 +0200
51521 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshr_nu64.c 2010-01-25 09:50:29.505686669 +0100
51522 @@ -3,7 +3,8 @@
51523
51524 /* { dg-do assemble } */
51525 /* { dg-require-effective-target arm_neon_ok } */
51526 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51527 +/* { dg-options "-save-temps -O0" } */
51528 +/* { dg-add-options arm_neon } */
51529
51530 #include "arm_neon.h"
51531
51532 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshr_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vRshr_nu8.c
51533 --- a/gcc/testsuite/gcc.target/arm/neon/vRshr_nu8.c 2007-07-25 14:28:31.000000000 +0200
51534 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshr_nu8.c 2010-01-25 09:50:29.505686669 +0100
51535 @@ -3,7 +3,8 @@
51536
51537 /* { dg-do assemble } */
51538 /* { dg-require-effective-target arm_neon_ok } */
51539 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51540 +/* { dg-options "-save-temps -O0" } */
51541 +/* { dg-add-options arm_neon } */
51542
51543 #include "arm_neon.h"
51544
51545 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns16.c
51546 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
51547 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns16.c 2010-01-25 09:50:29.505686669 +0100
51548 @@ -3,7 +3,8 @@
51549
51550 /* { dg-do assemble } */
51551 /* { dg-require-effective-target arm_neon_ok } */
51552 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51553 +/* { dg-options "-save-temps -O0" } */
51554 +/* { dg-add-options arm_neon } */
51555
51556 #include "arm_neon.h"
51557
51558 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns32.c
51559 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
51560 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns32.c 2010-01-25 09:50:29.505686669 +0100
51561 @@ -3,7 +3,8 @@
51562
51563 /* { dg-do assemble } */
51564 /* { dg-require-effective-target arm_neon_ok } */
51565 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51566 +/* { dg-options "-save-temps -O0" } */
51567 +/* { dg-add-options arm_neon } */
51568
51569 #include "arm_neon.h"
51570
51571 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns64.c
51572 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
51573 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns64.c 2010-01-25 09:50:29.505686669 +0100
51574 @@ -3,7 +3,8 @@
51575
51576 /* { dg-do assemble } */
51577 /* { dg-require-effective-target arm_neon_ok } */
51578 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51579 +/* { dg-options "-save-temps -O0" } */
51580 +/* { dg-add-options arm_neon } */
51581
51582 #include "arm_neon.h"
51583
51584 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns8.c
51585 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
51586 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_ns8.c 2010-01-25 09:50:29.505686669 +0100
51587 @@ -3,7 +3,8 @@
51588
51589 /* { dg-do assemble } */
51590 /* { dg-require-effective-target arm_neon_ok } */
51591 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51592 +/* { dg-options "-save-temps -O0" } */
51593 +/* { dg-add-options arm_neon } */
51594
51595 #include "arm_neon.h"
51596
51597 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu16.c
51598 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
51599 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu16.c 2010-01-25 09:50:29.505686669 +0100
51600 @@ -3,7 +3,8 @@
51601
51602 /* { dg-do assemble } */
51603 /* { dg-require-effective-target arm_neon_ok } */
51604 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51605 +/* { dg-options "-save-temps -O0" } */
51606 +/* { dg-add-options arm_neon } */
51607
51608 #include "arm_neon.h"
51609
51610 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu32.c
51611 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
51612 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu32.c 2010-01-25 09:50:29.505686669 +0100
51613 @@ -3,7 +3,8 @@
51614
51615 /* { dg-do assemble } */
51616 /* { dg-require-effective-target arm_neon_ok } */
51617 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51618 +/* { dg-options "-save-temps -O0" } */
51619 +/* { dg-add-options arm_neon } */
51620
51621 #include "arm_neon.h"
51622
51623 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu64.c
51624 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
51625 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu64.c 2010-01-25 09:50:29.505686669 +0100
51626 @@ -3,7 +3,8 @@
51627
51628 /* { dg-do assemble } */
51629 /* { dg-require-effective-target arm_neon_ok } */
51630 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51631 +/* { dg-options "-save-temps -O0" } */
51632 +/* { dg-add-options arm_neon } */
51633
51634 #include "arm_neon.h"
51635
51636 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu8.c
51637 --- a/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
51638 +++ b/gcc/testsuite/gcc.target/arm/neon/vRshrQ_nu8.c 2010-01-25 09:50:29.505686669 +0100
51639 @@ -3,7 +3,8 @@
51640
51641 /* { dg-do assemble } */
51642 /* { dg-require-effective-target arm_neon_ok } */
51643 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51644 +/* { dg-options "-save-temps -O0" } */
51645 +/* { dg-add-options arm_neon } */
51646
51647 #include "arm_neon.h"
51648
51649 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrsqrtef32.c b/gcc/testsuite/gcc.target/arm/neon/vrsqrtef32.c
51650 --- a/gcc/testsuite/gcc.target/arm/neon/vrsqrtef32.c 2007-07-25 14:28:31.000000000 +0200
51651 +++ b/gcc/testsuite/gcc.target/arm/neon/vrsqrtef32.c 2010-01-25 09:50:29.505686669 +0100
51652 @@ -3,7 +3,8 @@
51653
51654 /* { dg-do assemble } */
51655 /* { dg-require-effective-target arm_neon_ok } */
51656 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51657 +/* { dg-options "-save-temps -O0" } */
51658 +/* { dg-add-options arm_neon } */
51659
51660 #include "arm_neon.h"
51661
51662 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrsqrteQf32.c b/gcc/testsuite/gcc.target/arm/neon/vrsqrteQf32.c
51663 --- a/gcc/testsuite/gcc.target/arm/neon/vrsqrteQf32.c 2007-07-25 14:28:31.000000000 +0200
51664 +++ b/gcc/testsuite/gcc.target/arm/neon/vrsqrteQf32.c 2010-01-25 09:50:29.505686669 +0100
51665 @@ -3,7 +3,8 @@
51666
51667 /* { dg-do assemble } */
51668 /* { dg-require-effective-target arm_neon_ok } */
51669 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51670 +/* { dg-options "-save-temps -O0" } */
51671 +/* { dg-add-options arm_neon } */
51672
51673 #include "arm_neon.h"
51674
51675 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrsqrteQu32.c b/gcc/testsuite/gcc.target/arm/neon/vrsqrteQu32.c
51676 --- a/gcc/testsuite/gcc.target/arm/neon/vrsqrteQu32.c 2007-07-25 14:28:31.000000000 +0200
51677 +++ b/gcc/testsuite/gcc.target/arm/neon/vrsqrteQu32.c 2010-01-25 09:50:29.505686669 +0100
51678 @@ -3,7 +3,8 @@
51679
51680 /* { dg-do assemble } */
51681 /* { dg-require-effective-target arm_neon_ok } */
51682 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51683 +/* { dg-options "-save-temps -O0" } */
51684 +/* { dg-add-options arm_neon } */
51685
51686 #include "arm_neon.h"
51687
51688 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrsqrteu32.c b/gcc/testsuite/gcc.target/arm/neon/vrsqrteu32.c
51689 --- a/gcc/testsuite/gcc.target/arm/neon/vrsqrteu32.c 2007-07-25 14:28:31.000000000 +0200
51690 +++ b/gcc/testsuite/gcc.target/arm/neon/vrsqrteu32.c 2010-01-25 09:50:29.505686669 +0100
51691 @@ -3,7 +3,8 @@
51692
51693 /* { dg-do assemble } */
51694 /* { dg-require-effective-target arm_neon_ok } */
51695 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51696 +/* { dg-options "-save-temps -O0" } */
51697 +/* { dg-add-options arm_neon } */
51698
51699 #include "arm_neon.h"
51700
51701 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrsqrtsf32.c b/gcc/testsuite/gcc.target/arm/neon/vrsqrtsf32.c
51702 --- a/gcc/testsuite/gcc.target/arm/neon/vrsqrtsf32.c 2007-07-25 14:28:31.000000000 +0200
51703 +++ b/gcc/testsuite/gcc.target/arm/neon/vrsqrtsf32.c 2010-01-25 09:50:29.505686669 +0100
51704 @@ -3,7 +3,8 @@
51705
51706 /* { dg-do assemble } */
51707 /* { dg-require-effective-target arm_neon_ok } */
51708 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51709 +/* { dg-options "-save-temps -O0" } */
51710 +/* { dg-add-options arm_neon } */
51711
51712 #include "arm_neon.h"
51713
51714 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vrsqrtsQf32.c b/gcc/testsuite/gcc.target/arm/neon/vrsqrtsQf32.c
51715 --- a/gcc/testsuite/gcc.target/arm/neon/vrsqrtsQf32.c 2007-07-25 14:28:31.000000000 +0200
51716 +++ b/gcc/testsuite/gcc.target/arm/neon/vrsqrtsQf32.c 2010-01-25 09:50:29.505686669 +0100
51717 @@ -3,7 +3,8 @@
51718
51719 /* { dg-do assemble } */
51720 /* { dg-require-effective-target arm_neon_ok } */
51721 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51722 +/* { dg-options "-save-temps -O0" } */
51723 +/* { dg-add-options arm_neon } */
51724
51725 #include "arm_neon.h"
51726
51727 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsra_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vRsra_ns16.c
51728 --- a/gcc/testsuite/gcc.target/arm/neon/vRsra_ns16.c 2007-07-25 14:28:31.000000000 +0200
51729 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsra_ns16.c 2010-01-25 09:50:29.505686669 +0100
51730 @@ -3,7 +3,8 @@
51731
51732 /* { dg-do assemble } */
51733 /* { dg-require-effective-target arm_neon_ok } */
51734 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51735 +/* { dg-options "-save-temps -O0" } */
51736 +/* { dg-add-options arm_neon } */
51737
51738 #include "arm_neon.h"
51739
51740 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsra_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vRsra_ns32.c
51741 --- a/gcc/testsuite/gcc.target/arm/neon/vRsra_ns32.c 2007-07-25 14:28:31.000000000 +0200
51742 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsra_ns32.c 2010-01-25 09:50:29.505686669 +0100
51743 @@ -3,7 +3,8 @@
51744
51745 /* { dg-do assemble } */
51746 /* { dg-require-effective-target arm_neon_ok } */
51747 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51748 +/* { dg-options "-save-temps -O0" } */
51749 +/* { dg-add-options arm_neon } */
51750
51751 #include "arm_neon.h"
51752
51753 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsra_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vRsra_ns64.c
51754 --- a/gcc/testsuite/gcc.target/arm/neon/vRsra_ns64.c 2007-07-25 14:28:31.000000000 +0200
51755 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsra_ns64.c 2010-01-25 09:50:29.505686669 +0100
51756 @@ -3,7 +3,8 @@
51757
51758 /* { dg-do assemble } */
51759 /* { dg-require-effective-target arm_neon_ok } */
51760 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51761 +/* { dg-options "-save-temps -O0" } */
51762 +/* { dg-add-options arm_neon } */
51763
51764 #include "arm_neon.h"
51765
51766 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsra_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vRsra_ns8.c
51767 --- a/gcc/testsuite/gcc.target/arm/neon/vRsra_ns8.c 2007-07-25 14:28:31.000000000 +0200
51768 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsra_ns8.c 2010-01-25 09:50:29.505686669 +0100
51769 @@ -3,7 +3,8 @@
51770
51771 /* { dg-do assemble } */
51772 /* { dg-require-effective-target arm_neon_ok } */
51773 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51774 +/* { dg-options "-save-temps -O0" } */
51775 +/* { dg-add-options arm_neon } */
51776
51777 #include "arm_neon.h"
51778
51779 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsra_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vRsra_nu16.c
51780 --- a/gcc/testsuite/gcc.target/arm/neon/vRsra_nu16.c 2007-07-25 14:28:31.000000000 +0200
51781 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsra_nu16.c 2010-01-25 09:50:29.505686669 +0100
51782 @@ -3,7 +3,8 @@
51783
51784 /* { dg-do assemble } */
51785 /* { dg-require-effective-target arm_neon_ok } */
51786 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51787 +/* { dg-options "-save-temps -O0" } */
51788 +/* { dg-add-options arm_neon } */
51789
51790 #include "arm_neon.h"
51791
51792 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsra_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vRsra_nu32.c
51793 --- a/gcc/testsuite/gcc.target/arm/neon/vRsra_nu32.c 2007-07-25 14:28:31.000000000 +0200
51794 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsra_nu32.c 2010-01-25 09:50:29.505686669 +0100
51795 @@ -3,7 +3,8 @@
51796
51797 /* { dg-do assemble } */
51798 /* { dg-require-effective-target arm_neon_ok } */
51799 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51800 +/* { dg-options "-save-temps -O0" } */
51801 +/* { dg-add-options arm_neon } */
51802
51803 #include "arm_neon.h"
51804
51805 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsra_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vRsra_nu64.c
51806 --- a/gcc/testsuite/gcc.target/arm/neon/vRsra_nu64.c 2007-07-25 14:28:31.000000000 +0200
51807 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsra_nu64.c 2010-01-25 09:50:29.505686669 +0100
51808 @@ -3,7 +3,8 @@
51809
51810 /* { dg-do assemble } */
51811 /* { dg-require-effective-target arm_neon_ok } */
51812 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51813 +/* { dg-options "-save-temps -O0" } */
51814 +/* { dg-add-options arm_neon } */
51815
51816 #include "arm_neon.h"
51817
51818 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsra_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vRsra_nu8.c
51819 --- a/gcc/testsuite/gcc.target/arm/neon/vRsra_nu8.c 2007-07-25 14:28:31.000000000 +0200
51820 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsra_nu8.c 2010-01-25 09:50:29.505686669 +0100
51821 @@ -3,7 +3,8 @@
51822
51823 /* { dg-do assemble } */
51824 /* { dg-require-effective-target arm_neon_ok } */
51825 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51826 +/* { dg-options "-save-temps -O0" } */
51827 +/* { dg-add-options arm_neon } */
51828
51829 #include "arm_neon.h"
51830
51831 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns16.c
51832 --- a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
51833 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns16.c 2010-01-25 09:50:29.505686669 +0100
51834 @@ -3,7 +3,8 @@
51835
51836 /* { dg-do assemble } */
51837 /* { dg-require-effective-target arm_neon_ok } */
51838 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51839 +/* { dg-options "-save-temps -O0" } */
51840 +/* { dg-add-options arm_neon } */
51841
51842 #include "arm_neon.h"
51843
51844 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns32.c
51845 --- a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
51846 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns32.c 2010-01-25 09:50:29.505686669 +0100
51847 @@ -3,7 +3,8 @@
51848
51849 /* { dg-do assemble } */
51850 /* { dg-require-effective-target arm_neon_ok } */
51851 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51852 +/* { dg-options "-save-temps -O0" } */
51853 +/* { dg-add-options arm_neon } */
51854
51855 #include "arm_neon.h"
51856
51857 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns64.c
51858 --- a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
51859 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns64.c 2010-01-25 09:50:29.505686669 +0100
51860 @@ -3,7 +3,8 @@
51861
51862 /* { dg-do assemble } */
51863 /* { dg-require-effective-target arm_neon_ok } */
51864 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51865 +/* { dg-options "-save-temps -O0" } */
51866 +/* { dg-add-options arm_neon } */
51867
51868 #include "arm_neon.h"
51869
51870 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns8.c
51871 --- a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
51872 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_ns8.c 2010-01-25 09:50:29.505686669 +0100
51873 @@ -3,7 +3,8 @@
51874
51875 /* { dg-do assemble } */
51876 /* { dg-require-effective-target arm_neon_ok } */
51877 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51878 +/* { dg-options "-save-temps -O0" } */
51879 +/* { dg-add-options arm_neon } */
51880
51881 #include "arm_neon.h"
51882
51883 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu16.c
51884 --- a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
51885 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu16.c 2010-01-25 09:50:29.505686669 +0100
51886 @@ -3,7 +3,8 @@
51887
51888 /* { dg-do assemble } */
51889 /* { dg-require-effective-target arm_neon_ok } */
51890 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51891 +/* { dg-options "-save-temps -O0" } */
51892 +/* { dg-add-options arm_neon } */
51893
51894 #include "arm_neon.h"
51895
51896 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu32.c
51897 --- a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
51898 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu32.c 2010-01-25 09:50:29.505686669 +0100
51899 @@ -3,7 +3,8 @@
51900
51901 /* { dg-do assemble } */
51902 /* { dg-require-effective-target arm_neon_ok } */
51903 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51904 +/* { dg-options "-save-temps -O0" } */
51905 +/* { dg-add-options arm_neon } */
51906
51907 #include "arm_neon.h"
51908
51909 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu64.c
51910 --- a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
51911 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu64.c 2010-01-25 09:50:29.505686669 +0100
51912 @@ -3,7 +3,8 @@
51913
51914 /* { dg-do assemble } */
51915 /* { dg-require-effective-target arm_neon_ok } */
51916 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51917 +/* { dg-options "-save-temps -O0" } */
51918 +/* { dg-add-options arm_neon } */
51919
51920 #include "arm_neon.h"
51921
51922 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu8.c
51923 --- a/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
51924 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsraQ_nu8.c 2010-01-25 09:50:29.505686669 +0100
51925 @@ -3,7 +3,8 @@
51926
51927 /* { dg-do assemble } */
51928 /* { dg-require-effective-target arm_neon_ok } */
51929 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51930 +/* { dg-options "-save-temps -O0" } */
51931 +/* { dg-add-options arm_neon } */
51932
51933 #include "arm_neon.h"
51934
51935 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsubhns16.c b/gcc/testsuite/gcc.target/arm/neon/vRsubhns16.c
51936 --- a/gcc/testsuite/gcc.target/arm/neon/vRsubhns16.c 2007-07-25 14:28:31.000000000 +0200
51937 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsubhns16.c 2010-01-25 09:50:29.505686669 +0100
51938 @@ -3,7 +3,8 @@
51939
51940 /* { dg-do assemble } */
51941 /* { dg-require-effective-target arm_neon_ok } */
51942 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51943 +/* { dg-options "-save-temps -O0" } */
51944 +/* { dg-add-options arm_neon } */
51945
51946 #include "arm_neon.h"
51947
51948 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsubhns32.c b/gcc/testsuite/gcc.target/arm/neon/vRsubhns32.c
51949 --- a/gcc/testsuite/gcc.target/arm/neon/vRsubhns32.c 2007-07-25 14:28:31.000000000 +0200
51950 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsubhns32.c 2010-01-25 09:50:29.505686669 +0100
51951 @@ -3,7 +3,8 @@
51952
51953 /* { dg-do assemble } */
51954 /* { dg-require-effective-target arm_neon_ok } */
51955 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51956 +/* { dg-options "-save-temps -O0" } */
51957 +/* { dg-add-options arm_neon } */
51958
51959 #include "arm_neon.h"
51960
51961 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsubhns64.c b/gcc/testsuite/gcc.target/arm/neon/vRsubhns64.c
51962 --- a/gcc/testsuite/gcc.target/arm/neon/vRsubhns64.c 2007-07-25 14:28:31.000000000 +0200
51963 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsubhns64.c 2010-01-25 09:50:29.505686669 +0100
51964 @@ -3,7 +3,8 @@
51965
51966 /* { dg-do assemble } */
51967 /* { dg-require-effective-target arm_neon_ok } */
51968 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51969 +/* { dg-options "-save-temps -O0" } */
51970 +/* { dg-add-options arm_neon } */
51971
51972 #include "arm_neon.h"
51973
51974 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsubhnu16.c b/gcc/testsuite/gcc.target/arm/neon/vRsubhnu16.c
51975 --- a/gcc/testsuite/gcc.target/arm/neon/vRsubhnu16.c 2007-07-25 14:28:31.000000000 +0200
51976 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsubhnu16.c 2010-01-25 09:50:29.515686194 +0100
51977 @@ -3,7 +3,8 @@
51978
51979 /* { dg-do assemble } */
51980 /* { dg-require-effective-target arm_neon_ok } */
51981 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51982 +/* { dg-options "-save-temps -O0" } */
51983 +/* { dg-add-options arm_neon } */
51984
51985 #include "arm_neon.h"
51986
51987 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsubhnu32.c b/gcc/testsuite/gcc.target/arm/neon/vRsubhnu32.c
51988 --- a/gcc/testsuite/gcc.target/arm/neon/vRsubhnu32.c 2007-07-25 14:28:31.000000000 +0200
51989 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsubhnu32.c 2010-01-25 09:50:29.515686194 +0100
51990 @@ -3,7 +3,8 @@
51991
51992 /* { dg-do assemble } */
51993 /* { dg-require-effective-target arm_neon_ok } */
51994 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
51995 +/* { dg-options "-save-temps -O0" } */
51996 +/* { dg-add-options arm_neon } */
51997
51998 #include "arm_neon.h"
51999
52000 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vRsubhnu64.c b/gcc/testsuite/gcc.target/arm/neon/vRsubhnu64.c
52001 --- a/gcc/testsuite/gcc.target/arm/neon/vRsubhnu64.c 2007-07-25 14:28:31.000000000 +0200
52002 +++ b/gcc/testsuite/gcc.target/arm/neon/vRsubhnu64.c 2010-01-25 09:50:29.515686194 +0100
52003 @@ -3,7 +3,8 @@
52004
52005 /* { dg-do assemble } */
52006 /* { dg-require-effective-target arm_neon_ok } */
52007 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52008 +/* { dg-options "-save-temps -O0" } */
52009 +/* { dg-add-options arm_neon } */
52010
52011 #include "arm_neon.h"
52012
52013 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vset_lanef32.c
52014 --- a/gcc/testsuite/gcc.target/arm/neon/vset_lanef32.c 2007-07-25 14:28:31.000000000 +0200
52015 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_lanef32.c 2010-01-25 09:50:29.515686194 +0100
52016 @@ -3,7 +3,8 @@
52017
52018 /* { dg-do assemble } */
52019 /* { dg-require-effective-target arm_neon_ok } */
52020 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52021 +/* { dg-options "-save-temps -O0" } */
52022 +/* { dg-add-options arm_neon } */
52023
52024 #include "arm_neon.h"
52025
52026 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vset_lanep16.c
52027 --- a/gcc/testsuite/gcc.target/arm/neon/vset_lanep16.c 2007-07-25 14:28:31.000000000 +0200
52028 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_lanep16.c 2010-01-25 09:50:29.515686194 +0100
52029 @@ -3,7 +3,8 @@
52030
52031 /* { dg-do assemble } */
52032 /* { dg-require-effective-target arm_neon_ok } */
52033 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52034 +/* { dg-options "-save-temps -O0" } */
52035 +/* { dg-add-options arm_neon } */
52036
52037 #include "arm_neon.h"
52038
52039 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vset_lanep8.c
52040 --- a/gcc/testsuite/gcc.target/arm/neon/vset_lanep8.c 2007-07-25 14:28:31.000000000 +0200
52041 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_lanep8.c 2010-01-25 09:50:29.515686194 +0100
52042 @@ -3,7 +3,8 @@
52043
52044 /* { dg-do assemble } */
52045 /* { dg-require-effective-target arm_neon_ok } */
52046 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52047 +/* { dg-options "-save-temps -O0" } */
52048 +/* { dg-add-options arm_neon } */
52049
52050 #include "arm_neon.h"
52051
52052 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vset_lanes16.c
52053 --- a/gcc/testsuite/gcc.target/arm/neon/vset_lanes16.c 2007-07-25 14:28:31.000000000 +0200
52054 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_lanes16.c 2010-01-25 09:50:29.515686194 +0100
52055 @@ -3,7 +3,8 @@
52056
52057 /* { dg-do assemble } */
52058 /* { dg-require-effective-target arm_neon_ok } */
52059 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52060 +/* { dg-options "-save-temps -O0" } */
52061 +/* { dg-add-options arm_neon } */
52062
52063 #include "arm_neon.h"
52064
52065 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vset_lanes32.c
52066 --- a/gcc/testsuite/gcc.target/arm/neon/vset_lanes32.c 2007-07-25 14:28:31.000000000 +0200
52067 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_lanes32.c 2010-01-25 09:50:29.515686194 +0100
52068 @@ -3,7 +3,8 @@
52069
52070 /* { dg-do assemble } */
52071 /* { dg-require-effective-target arm_neon_ok } */
52072 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52073 +/* { dg-options "-save-temps -O0" } */
52074 +/* { dg-add-options arm_neon } */
52075
52076 #include "arm_neon.h"
52077
52078 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vset_lanes64.c
52079 --- a/gcc/testsuite/gcc.target/arm/neon/vset_lanes64.c 2007-07-25 14:28:31.000000000 +0200
52080 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_lanes64.c 2010-01-25 09:50:29.515686194 +0100
52081 @@ -3,7 +3,8 @@
52082
52083 /* { dg-do assemble } */
52084 /* { dg-require-effective-target arm_neon_ok } */
52085 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52086 +/* { dg-options "-save-temps -O0" } */
52087 +/* { dg-add-options arm_neon } */
52088
52089 #include "arm_neon.h"
52090
52091 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vset_lanes8.c
52092 --- a/gcc/testsuite/gcc.target/arm/neon/vset_lanes8.c 2007-07-25 14:28:31.000000000 +0200
52093 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_lanes8.c 2010-01-25 09:50:29.515686194 +0100
52094 @@ -3,7 +3,8 @@
52095
52096 /* { dg-do assemble } */
52097 /* { dg-require-effective-target arm_neon_ok } */
52098 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52099 +/* { dg-options "-save-temps -O0" } */
52100 +/* { dg-add-options arm_neon } */
52101
52102 #include "arm_neon.h"
52103
52104 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vset_laneu16.c
52105 --- a/gcc/testsuite/gcc.target/arm/neon/vset_laneu16.c 2007-07-25 14:28:31.000000000 +0200
52106 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_laneu16.c 2010-01-25 09:50:29.515686194 +0100
52107 @@ -3,7 +3,8 @@
52108
52109 /* { dg-do assemble } */
52110 /* { dg-require-effective-target arm_neon_ok } */
52111 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52112 +/* { dg-options "-save-temps -O0" } */
52113 +/* { dg-add-options arm_neon } */
52114
52115 #include "arm_neon.h"
52116
52117 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vset_laneu32.c
52118 --- a/gcc/testsuite/gcc.target/arm/neon/vset_laneu32.c 2007-07-25 14:28:31.000000000 +0200
52119 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_laneu32.c 2010-01-25 09:50:29.515686194 +0100
52120 @@ -3,7 +3,8 @@
52121
52122 /* { dg-do assemble } */
52123 /* { dg-require-effective-target arm_neon_ok } */
52124 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52125 +/* { dg-options "-save-temps -O0" } */
52126 +/* { dg-add-options arm_neon } */
52127
52128 #include "arm_neon.h"
52129
52130 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vset_laneu64.c
52131 --- a/gcc/testsuite/gcc.target/arm/neon/vset_laneu64.c 2007-07-25 14:28:31.000000000 +0200
52132 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_laneu64.c 2010-01-25 09:50:29.515686194 +0100
52133 @@ -3,7 +3,8 @@
52134
52135 /* { dg-do assemble } */
52136 /* { dg-require-effective-target arm_neon_ok } */
52137 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52138 +/* { dg-options "-save-temps -O0" } */
52139 +/* { dg-add-options arm_neon } */
52140
52141 #include "arm_neon.h"
52142
52143 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vset_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vset_laneu8.c
52144 --- a/gcc/testsuite/gcc.target/arm/neon/vset_laneu8.c 2007-07-25 14:28:31.000000000 +0200
52145 +++ b/gcc/testsuite/gcc.target/arm/neon/vset_laneu8.c 2010-01-25 09:50:29.515686194 +0100
52146 @@ -3,7 +3,8 @@
52147
52148 /* { dg-do assemble } */
52149 /* { dg-require-effective-target arm_neon_ok } */
52150 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52151 +/* { dg-options "-save-temps -O0" } */
52152 +/* { dg-add-options arm_neon } */
52153
52154 #include "arm_neon.h"
52155
52156 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanef32.c
52157 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanef32.c 2007-07-25 14:28:31.000000000 +0200
52158 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanef32.c 2010-01-25 09:50:29.515686194 +0100
52159 @@ -3,7 +3,8 @@
52160
52161 /* { dg-do assemble } */
52162 /* { dg-require-effective-target arm_neon_ok } */
52163 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52164 +/* { dg-options "-save-temps -O0" } */
52165 +/* { dg-add-options arm_neon } */
52166
52167 #include "arm_neon.h"
52168
52169 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanep16.c
52170 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanep16.c 2007-07-25 14:28:31.000000000 +0200
52171 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanep16.c 2010-01-25 09:50:29.515686194 +0100
52172 @@ -3,7 +3,8 @@
52173
52174 /* { dg-do assemble } */
52175 /* { dg-require-effective-target arm_neon_ok } */
52176 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52177 +/* { dg-options "-save-temps -O0" } */
52178 +/* { dg-add-options arm_neon } */
52179
52180 #include "arm_neon.h"
52181
52182 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanep8.c
52183 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanep8.c 2007-07-25 14:28:31.000000000 +0200
52184 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanep8.c 2010-01-25 09:50:29.515686194 +0100
52185 @@ -3,7 +3,8 @@
52186
52187 /* { dg-do assemble } */
52188 /* { dg-require-effective-target arm_neon_ok } */
52189 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52190 +/* { dg-options "-save-temps -O0" } */
52191 +/* { dg-add-options arm_neon } */
52192
52193 #include "arm_neon.h"
52194
52195 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes16.c
52196 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes16.c 2007-07-25 14:28:31.000000000 +0200
52197 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes16.c 2010-01-25 09:50:29.515686194 +0100
52198 @@ -3,7 +3,8 @@
52199
52200 /* { dg-do assemble } */
52201 /* { dg-require-effective-target arm_neon_ok } */
52202 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52203 +/* { dg-options "-save-temps -O0" } */
52204 +/* { dg-add-options arm_neon } */
52205
52206 #include "arm_neon.h"
52207
52208 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes32.c
52209 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes32.c 2007-07-25 14:28:31.000000000 +0200
52210 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes32.c 2010-01-25 09:50:29.515686194 +0100
52211 @@ -3,7 +3,8 @@
52212
52213 /* { dg-do assemble } */
52214 /* { dg-require-effective-target arm_neon_ok } */
52215 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52216 +/* { dg-options "-save-temps -O0" } */
52217 +/* { dg-add-options arm_neon } */
52218
52219 #include "arm_neon.h"
52220
52221 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes64.c
52222 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes64.c 2007-07-25 14:28:31.000000000 +0200
52223 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes64.c 2010-01-25 09:50:29.515686194 +0100
52224 @@ -3,7 +3,8 @@
52225
52226 /* { dg-do assemble } */
52227 /* { dg-require-effective-target arm_neon_ok } */
52228 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52229 +/* { dg-options "-save-temps -O0" } */
52230 +/* { dg-add-options arm_neon } */
52231
52232 #include "arm_neon.h"
52233
52234 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes8.c
52235 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes8.c 2007-07-25 14:28:31.000000000 +0200
52236 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_lanes8.c 2010-01-25 09:50:29.515686194 +0100
52237 @@ -3,7 +3,8 @@
52238
52239 /* { dg-do assemble } */
52240 /* { dg-require-effective-target arm_neon_ok } */
52241 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52242 +/* { dg-options "-save-temps -O0" } */
52243 +/* { dg-add-options arm_neon } */
52244
52245 #include "arm_neon.h"
52246
52247 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu16.c
52248 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu16.c 2007-07-25 14:28:31.000000000 +0200
52249 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu16.c 2010-01-25 09:50:29.515686194 +0100
52250 @@ -3,7 +3,8 @@
52251
52252 /* { dg-do assemble } */
52253 /* { dg-require-effective-target arm_neon_ok } */
52254 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52255 +/* { dg-options "-save-temps -O0" } */
52256 +/* { dg-add-options arm_neon } */
52257
52258 #include "arm_neon.h"
52259
52260 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu32.c
52261 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu32.c 2007-07-25 14:28:31.000000000 +0200
52262 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu32.c 2010-01-25 09:50:29.515686194 +0100
52263 @@ -3,7 +3,8 @@
52264
52265 /* { dg-do assemble } */
52266 /* { dg-require-effective-target arm_neon_ok } */
52267 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52268 +/* { dg-options "-save-temps -O0" } */
52269 +/* { dg-add-options arm_neon } */
52270
52271 #include "arm_neon.h"
52272
52273 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu64.c
52274 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu64.c 2007-07-25 14:28:31.000000000 +0200
52275 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu64.c 2010-01-25 09:50:29.515686194 +0100
52276 @@ -3,7 +3,8 @@
52277
52278 /* { dg-do assemble } */
52279 /* { dg-require-effective-target arm_neon_ok } */
52280 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52281 +/* { dg-options "-save-temps -O0" } */
52282 +/* { dg-add-options arm_neon } */
52283
52284 #include "arm_neon.h"
52285
52286 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu8.c
52287 --- a/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu8.c 2007-07-25 14:28:31.000000000 +0200
52288 +++ b/gcc/testsuite/gcc.target/arm/neon/vsetQ_laneu8.c 2010-01-25 09:50:29.515686194 +0100
52289 @@ -3,7 +3,8 @@
52290
52291 /* { dg-do assemble } */
52292 /* { dg-require-effective-target arm_neon_ok } */
52293 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52294 +/* { dg-options "-save-temps -O0" } */
52295 +/* { dg-add-options arm_neon } */
52296
52297 #include "arm_neon.h"
52298
52299 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshll_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vshll_ns16.c
52300 --- a/gcc/testsuite/gcc.target/arm/neon/vshll_ns16.c 2007-07-25 14:28:31.000000000 +0200
52301 +++ b/gcc/testsuite/gcc.target/arm/neon/vshll_ns16.c 2010-01-25 09:50:29.515686194 +0100
52302 @@ -3,7 +3,8 @@
52303
52304 /* { dg-do assemble } */
52305 /* { dg-require-effective-target arm_neon_ok } */
52306 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52307 +/* { dg-options "-save-temps -O0" } */
52308 +/* { dg-add-options arm_neon } */
52309
52310 #include "arm_neon.h"
52311
52312 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshll_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vshll_ns32.c
52313 --- a/gcc/testsuite/gcc.target/arm/neon/vshll_ns32.c 2007-07-25 14:28:31.000000000 +0200
52314 +++ b/gcc/testsuite/gcc.target/arm/neon/vshll_ns32.c 2010-01-25 09:50:29.515686194 +0100
52315 @@ -3,7 +3,8 @@
52316
52317 /* { dg-do assemble } */
52318 /* { dg-require-effective-target arm_neon_ok } */
52319 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52320 +/* { dg-options "-save-temps -O0" } */
52321 +/* { dg-add-options arm_neon } */
52322
52323 #include "arm_neon.h"
52324
52325 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshll_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vshll_ns8.c
52326 --- a/gcc/testsuite/gcc.target/arm/neon/vshll_ns8.c 2007-07-25 14:28:31.000000000 +0200
52327 +++ b/gcc/testsuite/gcc.target/arm/neon/vshll_ns8.c 2010-01-25 09:50:29.515686194 +0100
52328 @@ -3,7 +3,8 @@
52329
52330 /* { dg-do assemble } */
52331 /* { dg-require-effective-target arm_neon_ok } */
52332 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52333 +/* { dg-options "-save-temps -O0" } */
52334 +/* { dg-add-options arm_neon } */
52335
52336 #include "arm_neon.h"
52337
52338 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshll_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vshll_nu16.c
52339 --- a/gcc/testsuite/gcc.target/arm/neon/vshll_nu16.c 2007-07-25 14:28:31.000000000 +0200
52340 +++ b/gcc/testsuite/gcc.target/arm/neon/vshll_nu16.c 2010-01-25 09:50:29.515686194 +0100
52341 @@ -3,7 +3,8 @@
52342
52343 /* { dg-do assemble } */
52344 /* { dg-require-effective-target arm_neon_ok } */
52345 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52346 +/* { dg-options "-save-temps -O0" } */
52347 +/* { dg-add-options arm_neon } */
52348
52349 #include "arm_neon.h"
52350
52351 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshll_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vshll_nu32.c
52352 --- a/gcc/testsuite/gcc.target/arm/neon/vshll_nu32.c 2007-07-25 14:28:31.000000000 +0200
52353 +++ b/gcc/testsuite/gcc.target/arm/neon/vshll_nu32.c 2010-01-25 09:50:29.515686194 +0100
52354 @@ -3,7 +3,8 @@
52355
52356 /* { dg-do assemble } */
52357 /* { dg-require-effective-target arm_neon_ok } */
52358 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52359 +/* { dg-options "-save-temps -O0" } */
52360 +/* { dg-add-options arm_neon } */
52361
52362 #include "arm_neon.h"
52363
52364 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshll_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vshll_nu8.c
52365 --- a/gcc/testsuite/gcc.target/arm/neon/vshll_nu8.c 2007-07-25 14:28:31.000000000 +0200
52366 +++ b/gcc/testsuite/gcc.target/arm/neon/vshll_nu8.c 2010-01-25 09:50:29.515686194 +0100
52367 @@ -3,7 +3,8 @@
52368
52369 /* { dg-do assemble } */
52370 /* { dg-require-effective-target arm_neon_ok } */
52371 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52372 +/* { dg-options "-save-temps -O0" } */
52373 +/* { dg-add-options arm_neon } */
52374
52375 #include "arm_neon.h"
52376
52377 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshl_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vshl_ns16.c
52378 --- a/gcc/testsuite/gcc.target/arm/neon/vshl_ns16.c 2007-07-25 14:28:31.000000000 +0200
52379 +++ b/gcc/testsuite/gcc.target/arm/neon/vshl_ns16.c 2010-01-25 09:50:29.515686194 +0100
52380 @@ -3,7 +3,8 @@
52381
52382 /* { dg-do assemble } */
52383 /* { dg-require-effective-target arm_neon_ok } */
52384 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52385 +/* { dg-options "-save-temps -O0" } */
52386 +/* { dg-add-options arm_neon } */
52387
52388 #include "arm_neon.h"
52389
52390 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshl_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vshl_ns32.c
52391 --- a/gcc/testsuite/gcc.target/arm/neon/vshl_ns32.c 2007-07-25 14:28:31.000000000 +0200
52392 +++ b/gcc/testsuite/gcc.target/arm/neon/vshl_ns32.c 2010-01-25 09:50:29.515686194 +0100
52393 @@ -3,7 +3,8 @@
52394
52395 /* { dg-do assemble } */
52396 /* { dg-require-effective-target arm_neon_ok } */
52397 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52398 +/* { dg-options "-save-temps -O0" } */
52399 +/* { dg-add-options arm_neon } */
52400
52401 #include "arm_neon.h"
52402
52403 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshl_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vshl_ns64.c
52404 --- a/gcc/testsuite/gcc.target/arm/neon/vshl_ns64.c 2007-07-25 14:28:31.000000000 +0200
52405 +++ b/gcc/testsuite/gcc.target/arm/neon/vshl_ns64.c 2010-01-25 09:50:29.515686194 +0100
52406 @@ -3,7 +3,8 @@
52407
52408 /* { dg-do assemble } */
52409 /* { dg-require-effective-target arm_neon_ok } */
52410 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52411 +/* { dg-options "-save-temps -O0" } */
52412 +/* { dg-add-options arm_neon } */
52413
52414 #include "arm_neon.h"
52415
52416 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshl_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vshl_ns8.c
52417 --- a/gcc/testsuite/gcc.target/arm/neon/vshl_ns8.c 2007-07-25 14:28:31.000000000 +0200
52418 +++ b/gcc/testsuite/gcc.target/arm/neon/vshl_ns8.c 2010-01-25 09:50:29.515686194 +0100
52419 @@ -3,7 +3,8 @@
52420
52421 /* { dg-do assemble } */
52422 /* { dg-require-effective-target arm_neon_ok } */
52423 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52424 +/* { dg-options "-save-temps -O0" } */
52425 +/* { dg-add-options arm_neon } */
52426
52427 #include "arm_neon.h"
52428
52429 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshl_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vshl_nu16.c
52430 --- a/gcc/testsuite/gcc.target/arm/neon/vshl_nu16.c 2007-07-25 14:28:31.000000000 +0200
52431 +++ b/gcc/testsuite/gcc.target/arm/neon/vshl_nu16.c 2010-01-25 09:50:29.515686194 +0100
52432 @@ -3,7 +3,8 @@
52433
52434 /* { dg-do assemble } */
52435 /* { dg-require-effective-target arm_neon_ok } */
52436 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52437 +/* { dg-options "-save-temps -O0" } */
52438 +/* { dg-add-options arm_neon } */
52439
52440 #include "arm_neon.h"
52441
52442 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshl_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vshl_nu32.c
52443 --- a/gcc/testsuite/gcc.target/arm/neon/vshl_nu32.c 2007-07-25 14:28:31.000000000 +0200
52444 +++ b/gcc/testsuite/gcc.target/arm/neon/vshl_nu32.c 2010-01-25 09:50:29.515686194 +0100
52445 @@ -3,7 +3,8 @@
52446
52447 /* { dg-do assemble } */
52448 /* { dg-require-effective-target arm_neon_ok } */
52449 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52450 +/* { dg-options "-save-temps -O0" } */
52451 +/* { dg-add-options arm_neon } */
52452
52453 #include "arm_neon.h"
52454
52455 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshl_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vshl_nu64.c
52456 --- a/gcc/testsuite/gcc.target/arm/neon/vshl_nu64.c 2007-07-25 14:28:31.000000000 +0200
52457 +++ b/gcc/testsuite/gcc.target/arm/neon/vshl_nu64.c 2010-01-25 09:50:29.515686194 +0100
52458 @@ -3,7 +3,8 @@
52459
52460 /* { dg-do assemble } */
52461 /* { dg-require-effective-target arm_neon_ok } */
52462 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52463 +/* { dg-options "-save-temps -O0" } */
52464 +/* { dg-add-options arm_neon } */
52465
52466 #include "arm_neon.h"
52467
52468 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshl_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vshl_nu8.c
52469 --- a/gcc/testsuite/gcc.target/arm/neon/vshl_nu8.c 2007-07-25 14:28:31.000000000 +0200
52470 +++ b/gcc/testsuite/gcc.target/arm/neon/vshl_nu8.c 2010-01-25 09:50:29.515686194 +0100
52471 @@ -3,7 +3,8 @@
52472
52473 /* { dg-do assemble } */
52474 /* { dg-require-effective-target arm_neon_ok } */
52475 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52476 +/* { dg-options "-save-temps -O0" } */
52477 +/* { dg-add-options arm_neon } */
52478
52479 #include "arm_neon.h"
52480
52481 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns16.c
52482 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
52483 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns16.c 2010-01-25 09:50:29.515686194 +0100
52484 @@ -3,7 +3,8 @@
52485
52486 /* { dg-do assemble } */
52487 /* { dg-require-effective-target arm_neon_ok } */
52488 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52489 +/* { dg-options "-save-temps -O0" } */
52490 +/* { dg-add-options arm_neon } */
52491
52492 #include "arm_neon.h"
52493
52494 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns32.c
52495 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
52496 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns32.c 2010-01-25 09:50:29.515686194 +0100
52497 @@ -3,7 +3,8 @@
52498
52499 /* { dg-do assemble } */
52500 /* { dg-require-effective-target arm_neon_ok } */
52501 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52502 +/* { dg-options "-save-temps -O0" } */
52503 +/* { dg-add-options arm_neon } */
52504
52505 #include "arm_neon.h"
52506
52507 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns64.c
52508 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
52509 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns64.c 2010-01-25 09:50:29.515686194 +0100
52510 @@ -3,7 +3,8 @@
52511
52512 /* { dg-do assemble } */
52513 /* { dg-require-effective-target arm_neon_ok } */
52514 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52515 +/* { dg-options "-save-temps -O0" } */
52516 +/* { dg-add-options arm_neon } */
52517
52518 #include "arm_neon.h"
52519
52520 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns8.c
52521 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
52522 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQ_ns8.c 2010-01-25 09:50:29.515686194 +0100
52523 @@ -3,7 +3,8 @@
52524
52525 /* { dg-do assemble } */
52526 /* { dg-require-effective-target arm_neon_ok } */
52527 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52528 +/* { dg-options "-save-temps -O0" } */
52529 +/* { dg-add-options arm_neon } */
52530
52531 #include "arm_neon.h"
52532
52533 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu16.c
52534 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
52535 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu16.c 2010-01-25 09:50:29.515686194 +0100
52536 @@ -3,7 +3,8 @@
52537
52538 /* { dg-do assemble } */
52539 /* { dg-require-effective-target arm_neon_ok } */
52540 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52541 +/* { dg-options "-save-temps -O0" } */
52542 +/* { dg-add-options arm_neon } */
52543
52544 #include "arm_neon.h"
52545
52546 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu32.c
52547 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
52548 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu32.c 2010-01-25 09:50:29.515686194 +0100
52549 @@ -3,7 +3,8 @@
52550
52551 /* { dg-do assemble } */
52552 /* { dg-require-effective-target arm_neon_ok } */
52553 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52554 +/* { dg-options "-save-temps -O0" } */
52555 +/* { dg-add-options arm_neon } */
52556
52557 #include "arm_neon.h"
52558
52559 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu64.c
52560 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
52561 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu64.c 2010-01-25 09:50:29.515686194 +0100
52562 @@ -3,7 +3,8 @@
52563
52564 /* { dg-do assemble } */
52565 /* { dg-require-effective-target arm_neon_ok } */
52566 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52567 +/* { dg-options "-save-temps -O0" } */
52568 +/* { dg-add-options arm_neon } */
52569
52570 #include "arm_neon.h"
52571
52572 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu8.c
52573 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
52574 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQ_nu8.c 2010-01-25 09:50:29.515686194 +0100
52575 @@ -3,7 +3,8 @@
52576
52577 /* { dg-do assemble } */
52578 /* { dg-require-effective-target arm_neon_ok } */
52579 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52580 +/* { dg-options "-save-temps -O0" } */
52581 +/* { dg-add-options arm_neon } */
52582
52583 #include "arm_neon.h"
52584
52585 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQs16.c b/gcc/testsuite/gcc.target/arm/neon/vshlQs16.c
52586 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQs16.c 2007-07-25 14:28:31.000000000 +0200
52587 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQs16.c 2010-01-25 09:50:29.515686194 +0100
52588 @@ -3,7 +3,8 @@
52589
52590 /* { dg-do assemble } */
52591 /* { dg-require-effective-target arm_neon_ok } */
52592 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52593 +/* { dg-options "-save-temps -O0" } */
52594 +/* { dg-add-options arm_neon } */
52595
52596 #include "arm_neon.h"
52597
52598 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQs32.c b/gcc/testsuite/gcc.target/arm/neon/vshlQs32.c
52599 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQs32.c 2007-07-25 14:28:31.000000000 +0200
52600 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQs32.c 2010-01-25 09:50:29.515686194 +0100
52601 @@ -3,7 +3,8 @@
52602
52603 /* { dg-do assemble } */
52604 /* { dg-require-effective-target arm_neon_ok } */
52605 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52606 +/* { dg-options "-save-temps -O0" } */
52607 +/* { dg-add-options arm_neon } */
52608
52609 #include "arm_neon.h"
52610
52611 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQs64.c b/gcc/testsuite/gcc.target/arm/neon/vshlQs64.c
52612 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQs64.c 2007-07-25 14:28:31.000000000 +0200
52613 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQs64.c 2010-01-25 09:50:29.515686194 +0100
52614 @@ -3,7 +3,8 @@
52615
52616 /* { dg-do assemble } */
52617 /* { dg-require-effective-target arm_neon_ok } */
52618 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52619 +/* { dg-options "-save-temps -O0" } */
52620 +/* { dg-add-options arm_neon } */
52621
52622 #include "arm_neon.h"
52623
52624 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQs8.c b/gcc/testsuite/gcc.target/arm/neon/vshlQs8.c
52625 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQs8.c 2007-07-25 14:28:31.000000000 +0200
52626 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQs8.c 2010-01-25 09:50:29.515686194 +0100
52627 @@ -3,7 +3,8 @@
52628
52629 /* { dg-do assemble } */
52630 /* { dg-require-effective-target arm_neon_ok } */
52631 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52632 +/* { dg-options "-save-temps -O0" } */
52633 +/* { dg-add-options arm_neon } */
52634
52635 #include "arm_neon.h"
52636
52637 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQu16.c b/gcc/testsuite/gcc.target/arm/neon/vshlQu16.c
52638 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQu16.c 2007-07-25 14:28:31.000000000 +0200
52639 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQu16.c 2010-01-25 09:50:29.515686194 +0100
52640 @@ -3,7 +3,8 @@
52641
52642 /* { dg-do assemble } */
52643 /* { dg-require-effective-target arm_neon_ok } */
52644 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52645 +/* { dg-options "-save-temps -O0" } */
52646 +/* { dg-add-options arm_neon } */
52647
52648 #include "arm_neon.h"
52649
52650 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQu32.c b/gcc/testsuite/gcc.target/arm/neon/vshlQu32.c
52651 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQu32.c 2007-07-25 14:28:31.000000000 +0200
52652 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQu32.c 2010-01-25 09:50:29.515686194 +0100
52653 @@ -3,7 +3,8 @@
52654
52655 /* { dg-do assemble } */
52656 /* { dg-require-effective-target arm_neon_ok } */
52657 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52658 +/* { dg-options "-save-temps -O0" } */
52659 +/* { dg-add-options arm_neon } */
52660
52661 #include "arm_neon.h"
52662
52663 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQu64.c b/gcc/testsuite/gcc.target/arm/neon/vshlQu64.c
52664 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQu64.c 2007-07-25 14:28:31.000000000 +0200
52665 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQu64.c 2010-01-25 09:50:29.515686194 +0100
52666 @@ -3,7 +3,8 @@
52667
52668 /* { dg-do assemble } */
52669 /* { dg-require-effective-target arm_neon_ok } */
52670 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52671 +/* { dg-options "-save-temps -O0" } */
52672 +/* { dg-add-options arm_neon } */
52673
52674 #include "arm_neon.h"
52675
52676 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlQu8.c b/gcc/testsuite/gcc.target/arm/neon/vshlQu8.c
52677 --- a/gcc/testsuite/gcc.target/arm/neon/vshlQu8.c 2007-07-25 14:28:31.000000000 +0200
52678 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlQu8.c 2010-01-25 09:50:29.515686194 +0100
52679 @@ -3,7 +3,8 @@
52680
52681 /* { dg-do assemble } */
52682 /* { dg-require-effective-target arm_neon_ok } */
52683 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52684 +/* { dg-options "-save-temps -O0" } */
52685 +/* { dg-add-options arm_neon } */
52686
52687 #include "arm_neon.h"
52688
52689 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshls16.c b/gcc/testsuite/gcc.target/arm/neon/vshls16.c
52690 --- a/gcc/testsuite/gcc.target/arm/neon/vshls16.c 2007-07-25 14:28:31.000000000 +0200
52691 +++ b/gcc/testsuite/gcc.target/arm/neon/vshls16.c 2010-01-25 09:50:29.515686194 +0100
52692 @@ -3,7 +3,8 @@
52693
52694 /* { dg-do assemble } */
52695 /* { dg-require-effective-target arm_neon_ok } */
52696 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52697 +/* { dg-options "-save-temps -O0" } */
52698 +/* { dg-add-options arm_neon } */
52699
52700 #include "arm_neon.h"
52701
52702 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshls32.c b/gcc/testsuite/gcc.target/arm/neon/vshls32.c
52703 --- a/gcc/testsuite/gcc.target/arm/neon/vshls32.c 2007-07-25 14:28:31.000000000 +0200
52704 +++ b/gcc/testsuite/gcc.target/arm/neon/vshls32.c 2010-01-25 09:50:29.515686194 +0100
52705 @@ -3,7 +3,8 @@
52706
52707 /* { dg-do assemble } */
52708 /* { dg-require-effective-target arm_neon_ok } */
52709 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52710 +/* { dg-options "-save-temps -O0" } */
52711 +/* { dg-add-options arm_neon } */
52712
52713 #include "arm_neon.h"
52714
52715 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshls64.c b/gcc/testsuite/gcc.target/arm/neon/vshls64.c
52716 --- a/gcc/testsuite/gcc.target/arm/neon/vshls64.c 2007-07-25 14:28:31.000000000 +0200
52717 +++ b/gcc/testsuite/gcc.target/arm/neon/vshls64.c 2010-01-25 09:50:29.515686194 +0100
52718 @@ -3,7 +3,8 @@
52719
52720 /* { dg-do assemble } */
52721 /* { dg-require-effective-target arm_neon_ok } */
52722 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52723 +/* { dg-options "-save-temps -O0" } */
52724 +/* { dg-add-options arm_neon } */
52725
52726 #include "arm_neon.h"
52727
52728 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshls8.c b/gcc/testsuite/gcc.target/arm/neon/vshls8.c
52729 --- a/gcc/testsuite/gcc.target/arm/neon/vshls8.c 2007-07-25 14:28:31.000000000 +0200
52730 +++ b/gcc/testsuite/gcc.target/arm/neon/vshls8.c 2010-01-25 09:50:29.515686194 +0100
52731 @@ -3,7 +3,8 @@
52732
52733 /* { dg-do assemble } */
52734 /* { dg-require-effective-target arm_neon_ok } */
52735 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52736 +/* { dg-options "-save-temps -O0" } */
52737 +/* { dg-add-options arm_neon } */
52738
52739 #include "arm_neon.h"
52740
52741 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlu16.c b/gcc/testsuite/gcc.target/arm/neon/vshlu16.c
52742 --- a/gcc/testsuite/gcc.target/arm/neon/vshlu16.c 2007-07-25 14:28:31.000000000 +0200
52743 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlu16.c 2010-01-25 09:50:29.515686194 +0100
52744 @@ -3,7 +3,8 @@
52745
52746 /* { dg-do assemble } */
52747 /* { dg-require-effective-target arm_neon_ok } */
52748 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52749 +/* { dg-options "-save-temps -O0" } */
52750 +/* { dg-add-options arm_neon } */
52751
52752 #include "arm_neon.h"
52753
52754 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlu32.c b/gcc/testsuite/gcc.target/arm/neon/vshlu32.c
52755 --- a/gcc/testsuite/gcc.target/arm/neon/vshlu32.c 2007-07-25 14:28:31.000000000 +0200
52756 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlu32.c 2010-01-25 09:50:29.515686194 +0100
52757 @@ -3,7 +3,8 @@
52758
52759 /* { dg-do assemble } */
52760 /* { dg-require-effective-target arm_neon_ok } */
52761 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52762 +/* { dg-options "-save-temps -O0" } */
52763 +/* { dg-add-options arm_neon } */
52764
52765 #include "arm_neon.h"
52766
52767 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlu64.c b/gcc/testsuite/gcc.target/arm/neon/vshlu64.c
52768 --- a/gcc/testsuite/gcc.target/arm/neon/vshlu64.c 2007-07-25 14:28:31.000000000 +0200
52769 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlu64.c 2010-01-25 09:50:29.515686194 +0100
52770 @@ -3,7 +3,8 @@
52771
52772 /* { dg-do assemble } */
52773 /* { dg-require-effective-target arm_neon_ok } */
52774 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52775 +/* { dg-options "-save-temps -O0" } */
52776 +/* { dg-add-options arm_neon } */
52777
52778 #include "arm_neon.h"
52779
52780 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshlu8.c b/gcc/testsuite/gcc.target/arm/neon/vshlu8.c
52781 --- a/gcc/testsuite/gcc.target/arm/neon/vshlu8.c 2007-07-25 14:28:31.000000000 +0200
52782 +++ b/gcc/testsuite/gcc.target/arm/neon/vshlu8.c 2010-01-25 09:50:29.515686194 +0100
52783 @@ -3,7 +3,8 @@
52784
52785 /* { dg-do assemble } */
52786 /* { dg-require-effective-target arm_neon_ok } */
52787 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52788 +/* { dg-options "-save-temps -O0" } */
52789 +/* { dg-add-options arm_neon } */
52790
52791 #include "arm_neon.h"
52792
52793 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrn_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vshrn_ns16.c
52794 --- a/gcc/testsuite/gcc.target/arm/neon/vshrn_ns16.c 2007-07-25 14:28:31.000000000 +0200
52795 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrn_ns16.c 2010-01-25 09:50:29.515686194 +0100
52796 @@ -3,7 +3,8 @@
52797
52798 /* { dg-do assemble } */
52799 /* { dg-require-effective-target arm_neon_ok } */
52800 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52801 +/* { dg-options "-save-temps -O0" } */
52802 +/* { dg-add-options arm_neon } */
52803
52804 #include "arm_neon.h"
52805
52806 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrn_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vshrn_ns32.c
52807 --- a/gcc/testsuite/gcc.target/arm/neon/vshrn_ns32.c 2007-07-25 14:28:31.000000000 +0200
52808 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrn_ns32.c 2010-01-25 09:50:29.515686194 +0100
52809 @@ -3,7 +3,8 @@
52810
52811 /* { dg-do assemble } */
52812 /* { dg-require-effective-target arm_neon_ok } */
52813 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52814 +/* { dg-options "-save-temps -O0" } */
52815 +/* { dg-add-options arm_neon } */
52816
52817 #include "arm_neon.h"
52818
52819 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrn_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vshrn_ns64.c
52820 --- a/gcc/testsuite/gcc.target/arm/neon/vshrn_ns64.c 2007-07-25 14:28:31.000000000 +0200
52821 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrn_ns64.c 2010-01-25 09:50:29.515686194 +0100
52822 @@ -3,7 +3,8 @@
52823
52824 /* { dg-do assemble } */
52825 /* { dg-require-effective-target arm_neon_ok } */
52826 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52827 +/* { dg-options "-save-temps -O0" } */
52828 +/* { dg-add-options arm_neon } */
52829
52830 #include "arm_neon.h"
52831
52832 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrn_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vshrn_nu16.c
52833 --- a/gcc/testsuite/gcc.target/arm/neon/vshrn_nu16.c 2007-07-25 14:28:31.000000000 +0200
52834 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrn_nu16.c 2010-01-25 09:50:29.515686194 +0100
52835 @@ -3,7 +3,8 @@
52836
52837 /* { dg-do assemble } */
52838 /* { dg-require-effective-target arm_neon_ok } */
52839 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52840 +/* { dg-options "-save-temps -O0" } */
52841 +/* { dg-add-options arm_neon } */
52842
52843 #include "arm_neon.h"
52844
52845 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrn_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vshrn_nu32.c
52846 --- a/gcc/testsuite/gcc.target/arm/neon/vshrn_nu32.c 2007-07-25 14:28:31.000000000 +0200
52847 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrn_nu32.c 2010-01-25 09:50:29.515686194 +0100
52848 @@ -3,7 +3,8 @@
52849
52850 /* { dg-do assemble } */
52851 /* { dg-require-effective-target arm_neon_ok } */
52852 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52853 +/* { dg-options "-save-temps -O0" } */
52854 +/* { dg-add-options arm_neon } */
52855
52856 #include "arm_neon.h"
52857
52858 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrn_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vshrn_nu64.c
52859 --- a/gcc/testsuite/gcc.target/arm/neon/vshrn_nu64.c 2007-07-25 14:28:31.000000000 +0200
52860 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrn_nu64.c 2010-01-25 09:50:29.515686194 +0100
52861 @@ -3,7 +3,8 @@
52862
52863 /* { dg-do assemble } */
52864 /* { dg-require-effective-target arm_neon_ok } */
52865 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52866 +/* { dg-options "-save-temps -O0" } */
52867 +/* { dg-add-options arm_neon } */
52868
52869 #include "arm_neon.h"
52870
52871 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshr_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vshr_ns16.c
52872 --- a/gcc/testsuite/gcc.target/arm/neon/vshr_ns16.c 2007-07-25 14:28:31.000000000 +0200
52873 +++ b/gcc/testsuite/gcc.target/arm/neon/vshr_ns16.c 2010-01-25 09:50:29.515686194 +0100
52874 @@ -3,7 +3,8 @@
52875
52876 /* { dg-do assemble } */
52877 /* { dg-require-effective-target arm_neon_ok } */
52878 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52879 +/* { dg-options "-save-temps -O0" } */
52880 +/* { dg-add-options arm_neon } */
52881
52882 #include "arm_neon.h"
52883
52884 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshr_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vshr_ns32.c
52885 --- a/gcc/testsuite/gcc.target/arm/neon/vshr_ns32.c 2007-07-25 14:28:31.000000000 +0200
52886 +++ b/gcc/testsuite/gcc.target/arm/neon/vshr_ns32.c 2010-01-25 09:50:29.515686194 +0100
52887 @@ -3,7 +3,8 @@
52888
52889 /* { dg-do assemble } */
52890 /* { dg-require-effective-target arm_neon_ok } */
52891 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52892 +/* { dg-options "-save-temps -O0" } */
52893 +/* { dg-add-options arm_neon } */
52894
52895 #include "arm_neon.h"
52896
52897 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshr_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vshr_ns64.c
52898 --- a/gcc/testsuite/gcc.target/arm/neon/vshr_ns64.c 2007-07-25 14:28:31.000000000 +0200
52899 +++ b/gcc/testsuite/gcc.target/arm/neon/vshr_ns64.c 2010-01-25 09:50:29.515686194 +0100
52900 @@ -3,7 +3,8 @@
52901
52902 /* { dg-do assemble } */
52903 /* { dg-require-effective-target arm_neon_ok } */
52904 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52905 +/* { dg-options "-save-temps -O0" } */
52906 +/* { dg-add-options arm_neon } */
52907
52908 #include "arm_neon.h"
52909
52910 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshr_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vshr_ns8.c
52911 --- a/gcc/testsuite/gcc.target/arm/neon/vshr_ns8.c 2007-07-25 14:28:31.000000000 +0200
52912 +++ b/gcc/testsuite/gcc.target/arm/neon/vshr_ns8.c 2010-01-25 09:50:29.515686194 +0100
52913 @@ -3,7 +3,8 @@
52914
52915 /* { dg-do assemble } */
52916 /* { dg-require-effective-target arm_neon_ok } */
52917 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52918 +/* { dg-options "-save-temps -O0" } */
52919 +/* { dg-add-options arm_neon } */
52920
52921 #include "arm_neon.h"
52922
52923 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshr_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vshr_nu16.c
52924 --- a/gcc/testsuite/gcc.target/arm/neon/vshr_nu16.c 2007-07-25 14:28:31.000000000 +0200
52925 +++ b/gcc/testsuite/gcc.target/arm/neon/vshr_nu16.c 2010-01-25 09:50:29.525687396 +0100
52926 @@ -3,7 +3,8 @@
52927
52928 /* { dg-do assemble } */
52929 /* { dg-require-effective-target arm_neon_ok } */
52930 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52931 +/* { dg-options "-save-temps -O0" } */
52932 +/* { dg-add-options arm_neon } */
52933
52934 #include "arm_neon.h"
52935
52936 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshr_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vshr_nu32.c
52937 --- a/gcc/testsuite/gcc.target/arm/neon/vshr_nu32.c 2007-07-25 14:28:31.000000000 +0200
52938 +++ b/gcc/testsuite/gcc.target/arm/neon/vshr_nu32.c 2010-01-25 09:50:29.525687396 +0100
52939 @@ -3,7 +3,8 @@
52940
52941 /* { dg-do assemble } */
52942 /* { dg-require-effective-target arm_neon_ok } */
52943 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52944 +/* { dg-options "-save-temps -O0" } */
52945 +/* { dg-add-options arm_neon } */
52946
52947 #include "arm_neon.h"
52948
52949 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshr_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vshr_nu64.c
52950 --- a/gcc/testsuite/gcc.target/arm/neon/vshr_nu64.c 2007-07-25 14:28:31.000000000 +0200
52951 +++ b/gcc/testsuite/gcc.target/arm/neon/vshr_nu64.c 2010-01-25 09:50:29.525687396 +0100
52952 @@ -3,7 +3,8 @@
52953
52954 /* { dg-do assemble } */
52955 /* { dg-require-effective-target arm_neon_ok } */
52956 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52957 +/* { dg-options "-save-temps -O0" } */
52958 +/* { dg-add-options arm_neon } */
52959
52960 #include "arm_neon.h"
52961
52962 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshr_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vshr_nu8.c
52963 --- a/gcc/testsuite/gcc.target/arm/neon/vshr_nu8.c 2007-07-25 14:28:31.000000000 +0200
52964 +++ b/gcc/testsuite/gcc.target/arm/neon/vshr_nu8.c 2010-01-25 09:50:29.525687396 +0100
52965 @@ -3,7 +3,8 @@
52966
52967 /* { dg-do assemble } */
52968 /* { dg-require-effective-target arm_neon_ok } */
52969 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52970 +/* { dg-options "-save-temps -O0" } */
52971 +/* { dg-add-options arm_neon } */
52972
52973 #include "arm_neon.h"
52974
52975 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns16.c
52976 --- a/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
52977 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns16.c 2010-01-25 09:50:29.525687396 +0100
52978 @@ -3,7 +3,8 @@
52979
52980 /* { dg-do assemble } */
52981 /* { dg-require-effective-target arm_neon_ok } */
52982 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52983 +/* { dg-options "-save-temps -O0" } */
52984 +/* { dg-add-options arm_neon } */
52985
52986 #include "arm_neon.h"
52987
52988 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns32.c
52989 --- a/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
52990 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns32.c 2010-01-25 09:50:29.525687396 +0100
52991 @@ -3,7 +3,8 @@
52992
52993 /* { dg-do assemble } */
52994 /* { dg-require-effective-target arm_neon_ok } */
52995 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
52996 +/* { dg-options "-save-temps -O0" } */
52997 +/* { dg-add-options arm_neon } */
52998
52999 #include "arm_neon.h"
53000
53001 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns64.c
53002 --- a/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
53003 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns64.c 2010-01-25 09:50:29.525687396 +0100
53004 @@ -3,7 +3,8 @@
53005
53006 /* { dg-do assemble } */
53007 /* { dg-require-effective-target arm_neon_ok } */
53008 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53009 +/* { dg-options "-save-temps -O0" } */
53010 +/* { dg-add-options arm_neon } */
53011
53012 #include "arm_neon.h"
53013
53014 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns8.c
53015 --- a/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
53016 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrQ_ns8.c 2010-01-25 09:50:29.525687396 +0100
53017 @@ -3,7 +3,8 @@
53018
53019 /* { dg-do assemble } */
53020 /* { dg-require-effective-target arm_neon_ok } */
53021 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53022 +/* { dg-options "-save-temps -O0" } */
53023 +/* { dg-add-options arm_neon } */
53024
53025 #include "arm_neon.h"
53026
53027 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu16.c
53028 --- a/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
53029 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu16.c 2010-01-25 09:50:29.525687396 +0100
53030 @@ -3,7 +3,8 @@
53031
53032 /* { dg-do assemble } */
53033 /* { dg-require-effective-target arm_neon_ok } */
53034 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53035 +/* { dg-options "-save-temps -O0" } */
53036 +/* { dg-add-options arm_neon } */
53037
53038 #include "arm_neon.h"
53039
53040 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu32.c
53041 --- a/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
53042 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu32.c 2010-01-25 09:50:29.525687396 +0100
53043 @@ -3,7 +3,8 @@
53044
53045 /* { dg-do assemble } */
53046 /* { dg-require-effective-target arm_neon_ok } */
53047 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53048 +/* { dg-options "-save-temps -O0" } */
53049 +/* { dg-add-options arm_neon } */
53050
53051 #include "arm_neon.h"
53052
53053 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu64.c
53054 --- a/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
53055 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu64.c 2010-01-25 09:50:29.525687396 +0100
53056 @@ -3,7 +3,8 @@
53057
53058 /* { dg-do assemble } */
53059 /* { dg-require-effective-target arm_neon_ok } */
53060 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53061 +/* { dg-options "-save-temps -O0" } */
53062 +/* { dg-add-options arm_neon } */
53063
53064 #include "arm_neon.h"
53065
53066 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu8.c
53067 --- a/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
53068 +++ b/gcc/testsuite/gcc.target/arm/neon/vshrQ_nu8.c 2010-01-25 09:50:29.525687396 +0100
53069 @@ -3,7 +3,8 @@
53070
53071 /* { dg-do assemble } */
53072 /* { dg-require-effective-target arm_neon_ok } */
53073 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53074 +/* { dg-options "-save-temps -O0" } */
53075 +/* { dg-add-options arm_neon } */
53076
53077 #include "arm_neon.h"
53078
53079 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_np16.c b/gcc/testsuite/gcc.target/arm/neon/vsli_np16.c
53080 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_np16.c 2007-07-25 14:28:31.000000000 +0200
53081 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_np16.c 2010-01-25 09:50:29.525687396 +0100
53082 @@ -3,7 +3,8 @@
53083
53084 /* { dg-do assemble } */
53085 /* { dg-require-effective-target arm_neon_ok } */
53086 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53087 +/* { dg-options "-save-temps -O0" } */
53088 +/* { dg-add-options arm_neon } */
53089
53090 #include "arm_neon.h"
53091
53092 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_np8.c b/gcc/testsuite/gcc.target/arm/neon/vsli_np8.c
53093 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_np8.c 2007-07-25 14:28:31.000000000 +0200
53094 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_np8.c 2010-01-25 09:50:29.525687396 +0100
53095 @@ -3,7 +3,8 @@
53096
53097 /* { dg-do assemble } */
53098 /* { dg-require-effective-target arm_neon_ok } */
53099 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53100 +/* { dg-options "-save-temps -O0" } */
53101 +/* { dg-add-options arm_neon } */
53102
53103 #include "arm_neon.h"
53104
53105 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vsli_ns16.c
53106 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_ns16.c 2007-07-25 14:28:31.000000000 +0200
53107 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_ns16.c 2010-01-25 09:50:29.525687396 +0100
53108 @@ -3,7 +3,8 @@
53109
53110 /* { dg-do assemble } */
53111 /* { dg-require-effective-target arm_neon_ok } */
53112 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53113 +/* { dg-options "-save-temps -O0" } */
53114 +/* { dg-add-options arm_neon } */
53115
53116 #include "arm_neon.h"
53117
53118 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vsli_ns32.c
53119 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_ns32.c 2007-07-25 14:28:31.000000000 +0200
53120 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_ns32.c 2010-01-25 09:50:29.525687396 +0100
53121 @@ -3,7 +3,8 @@
53122
53123 /* { dg-do assemble } */
53124 /* { dg-require-effective-target arm_neon_ok } */
53125 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53126 +/* { dg-options "-save-temps -O0" } */
53127 +/* { dg-add-options arm_neon } */
53128
53129 #include "arm_neon.h"
53130
53131 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vsli_ns64.c
53132 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_ns64.c 2007-07-25 14:28:31.000000000 +0200
53133 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_ns64.c 2010-01-25 09:50:29.525687396 +0100
53134 @@ -3,7 +3,8 @@
53135
53136 /* { dg-do assemble } */
53137 /* { dg-require-effective-target arm_neon_ok } */
53138 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53139 +/* { dg-options "-save-temps -O0" } */
53140 +/* { dg-add-options arm_neon } */
53141
53142 #include "arm_neon.h"
53143
53144 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vsli_ns8.c
53145 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_ns8.c 2007-07-25 14:28:31.000000000 +0200
53146 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_ns8.c 2010-01-25 09:50:29.525687396 +0100
53147 @@ -3,7 +3,8 @@
53148
53149 /* { dg-do assemble } */
53150 /* { dg-require-effective-target arm_neon_ok } */
53151 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53152 +/* { dg-options "-save-temps -O0" } */
53153 +/* { dg-add-options arm_neon } */
53154
53155 #include "arm_neon.h"
53156
53157 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vsli_nu16.c
53158 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_nu16.c 2007-07-25 14:28:31.000000000 +0200
53159 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_nu16.c 2010-01-25 09:50:29.525687396 +0100
53160 @@ -3,7 +3,8 @@
53161
53162 /* { dg-do assemble } */
53163 /* { dg-require-effective-target arm_neon_ok } */
53164 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53165 +/* { dg-options "-save-temps -O0" } */
53166 +/* { dg-add-options arm_neon } */
53167
53168 #include "arm_neon.h"
53169
53170 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vsli_nu32.c
53171 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_nu32.c 2007-07-25 14:28:31.000000000 +0200
53172 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_nu32.c 2010-01-25 09:50:29.525687396 +0100
53173 @@ -3,7 +3,8 @@
53174
53175 /* { dg-do assemble } */
53176 /* { dg-require-effective-target arm_neon_ok } */
53177 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53178 +/* { dg-options "-save-temps -O0" } */
53179 +/* { dg-add-options arm_neon } */
53180
53181 #include "arm_neon.h"
53182
53183 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vsli_nu64.c
53184 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_nu64.c 2007-07-25 14:28:31.000000000 +0200
53185 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_nu64.c 2010-01-25 09:50:29.525687396 +0100
53186 @@ -3,7 +3,8 @@
53187
53188 /* { dg-do assemble } */
53189 /* { dg-require-effective-target arm_neon_ok } */
53190 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53191 +/* { dg-options "-save-temps -O0" } */
53192 +/* { dg-add-options arm_neon } */
53193
53194 #include "arm_neon.h"
53195
53196 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsli_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vsli_nu8.c
53197 --- a/gcc/testsuite/gcc.target/arm/neon/vsli_nu8.c 2007-07-25 14:28:31.000000000 +0200
53198 +++ b/gcc/testsuite/gcc.target/arm/neon/vsli_nu8.c 2010-01-25 09:50:29.525687396 +0100
53199 @@ -3,7 +3,8 @@
53200
53201 /* { dg-do assemble } */
53202 /* { dg-require-effective-target arm_neon_ok } */
53203 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53204 +/* { dg-options "-save-temps -O0" } */
53205 +/* { dg-add-options arm_neon } */
53206
53207 #include "arm_neon.h"
53208
53209 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_np16.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_np16.c
53210 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_np16.c 2007-07-25 14:28:31.000000000 +0200
53211 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_np16.c 2010-01-25 09:50:29.525687396 +0100
53212 @@ -3,7 +3,8 @@
53213
53214 /* { dg-do assemble } */
53215 /* { dg-require-effective-target arm_neon_ok } */
53216 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53217 +/* { dg-options "-save-temps -O0" } */
53218 +/* { dg-add-options arm_neon } */
53219
53220 #include "arm_neon.h"
53221
53222 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_np8.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_np8.c
53223 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_np8.c 2007-07-25 14:28:31.000000000 +0200
53224 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_np8.c 2010-01-25 09:50:29.525687396 +0100
53225 @@ -3,7 +3,8 @@
53226
53227 /* { dg-do assemble } */
53228 /* { dg-require-effective-target arm_neon_ok } */
53229 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53230 +/* { dg-options "-save-temps -O0" } */
53231 +/* { dg-add-options arm_neon } */
53232
53233 #include "arm_neon.h"
53234
53235 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns16.c
53236 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
53237 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns16.c 2010-01-25 09:50:29.525687396 +0100
53238 @@ -3,7 +3,8 @@
53239
53240 /* { dg-do assemble } */
53241 /* { dg-require-effective-target arm_neon_ok } */
53242 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53243 +/* { dg-options "-save-temps -O0" } */
53244 +/* { dg-add-options arm_neon } */
53245
53246 #include "arm_neon.h"
53247
53248 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns32.c
53249 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
53250 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns32.c 2010-01-25 09:50:29.525687396 +0100
53251 @@ -3,7 +3,8 @@
53252
53253 /* { dg-do assemble } */
53254 /* { dg-require-effective-target arm_neon_ok } */
53255 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53256 +/* { dg-options "-save-temps -O0" } */
53257 +/* { dg-add-options arm_neon } */
53258
53259 #include "arm_neon.h"
53260
53261 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns64.c
53262 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
53263 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns64.c 2010-01-25 09:50:29.525687396 +0100
53264 @@ -3,7 +3,8 @@
53265
53266 /* { dg-do assemble } */
53267 /* { dg-require-effective-target arm_neon_ok } */
53268 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53269 +/* { dg-options "-save-temps -O0" } */
53270 +/* { dg-add-options arm_neon } */
53271
53272 #include "arm_neon.h"
53273
53274 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns8.c
53275 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
53276 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_ns8.c 2010-01-25 09:50:29.525687396 +0100
53277 @@ -3,7 +3,8 @@
53278
53279 /* { dg-do assemble } */
53280 /* { dg-require-effective-target arm_neon_ok } */
53281 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53282 +/* { dg-options "-save-temps -O0" } */
53283 +/* { dg-add-options arm_neon } */
53284
53285 #include "arm_neon.h"
53286
53287 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu16.c
53288 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
53289 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu16.c 2010-01-25 09:50:29.525687396 +0100
53290 @@ -3,7 +3,8 @@
53291
53292 /* { dg-do assemble } */
53293 /* { dg-require-effective-target arm_neon_ok } */
53294 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53295 +/* { dg-options "-save-temps -O0" } */
53296 +/* { dg-add-options arm_neon } */
53297
53298 #include "arm_neon.h"
53299
53300 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu32.c
53301 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
53302 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu32.c 2010-01-25 09:50:29.525687396 +0100
53303 @@ -3,7 +3,8 @@
53304
53305 /* { dg-do assemble } */
53306 /* { dg-require-effective-target arm_neon_ok } */
53307 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53308 +/* { dg-options "-save-temps -O0" } */
53309 +/* { dg-add-options arm_neon } */
53310
53311 #include "arm_neon.h"
53312
53313 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu64.c
53314 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
53315 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu64.c 2010-01-25 09:50:29.525687396 +0100
53316 @@ -3,7 +3,8 @@
53317
53318 /* { dg-do assemble } */
53319 /* { dg-require-effective-target arm_neon_ok } */
53320 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53321 +/* { dg-options "-save-temps -O0" } */
53322 +/* { dg-add-options arm_neon } */
53323
53324 #include "arm_neon.h"
53325
53326 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu8.c
53327 --- a/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
53328 +++ b/gcc/testsuite/gcc.target/arm/neon/vsliQ_nu8.c 2010-01-25 09:50:29.525687396 +0100
53329 @@ -3,7 +3,8 @@
53330
53331 /* { dg-do assemble } */
53332 /* { dg-require-effective-target arm_neon_ok } */
53333 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53334 +/* { dg-options "-save-temps -O0" } */
53335 +/* { dg-add-options arm_neon } */
53336
53337 #include "arm_neon.h"
53338
53339 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsra_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vsra_ns16.c
53340 --- a/gcc/testsuite/gcc.target/arm/neon/vsra_ns16.c 2007-07-25 14:28:31.000000000 +0200
53341 +++ b/gcc/testsuite/gcc.target/arm/neon/vsra_ns16.c 2010-01-25 09:50:29.525687396 +0100
53342 @@ -3,7 +3,8 @@
53343
53344 /* { dg-do assemble } */
53345 /* { dg-require-effective-target arm_neon_ok } */
53346 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53347 +/* { dg-options "-save-temps -O0" } */
53348 +/* { dg-add-options arm_neon } */
53349
53350 #include "arm_neon.h"
53351
53352 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsra_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vsra_ns32.c
53353 --- a/gcc/testsuite/gcc.target/arm/neon/vsra_ns32.c 2007-07-25 14:28:31.000000000 +0200
53354 +++ b/gcc/testsuite/gcc.target/arm/neon/vsra_ns32.c 2010-01-25 09:50:29.525687396 +0100
53355 @@ -3,7 +3,8 @@
53356
53357 /* { dg-do assemble } */
53358 /* { dg-require-effective-target arm_neon_ok } */
53359 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53360 +/* { dg-options "-save-temps -O0" } */
53361 +/* { dg-add-options arm_neon } */
53362
53363 #include "arm_neon.h"
53364
53365 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsra_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vsra_ns64.c
53366 --- a/gcc/testsuite/gcc.target/arm/neon/vsra_ns64.c 2007-07-25 14:28:31.000000000 +0200
53367 +++ b/gcc/testsuite/gcc.target/arm/neon/vsra_ns64.c 2010-01-25 09:50:29.525687396 +0100
53368 @@ -3,7 +3,8 @@
53369
53370 /* { dg-do assemble } */
53371 /* { dg-require-effective-target arm_neon_ok } */
53372 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53373 +/* { dg-options "-save-temps -O0" } */
53374 +/* { dg-add-options arm_neon } */
53375
53376 #include "arm_neon.h"
53377
53378 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsra_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vsra_ns8.c
53379 --- a/gcc/testsuite/gcc.target/arm/neon/vsra_ns8.c 2007-07-25 14:28:31.000000000 +0200
53380 +++ b/gcc/testsuite/gcc.target/arm/neon/vsra_ns8.c 2010-01-25 09:50:29.525687396 +0100
53381 @@ -3,7 +3,8 @@
53382
53383 /* { dg-do assemble } */
53384 /* { dg-require-effective-target arm_neon_ok } */
53385 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53386 +/* { dg-options "-save-temps -O0" } */
53387 +/* { dg-add-options arm_neon } */
53388
53389 #include "arm_neon.h"
53390
53391 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsra_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vsra_nu16.c
53392 --- a/gcc/testsuite/gcc.target/arm/neon/vsra_nu16.c 2007-07-25 14:28:31.000000000 +0200
53393 +++ b/gcc/testsuite/gcc.target/arm/neon/vsra_nu16.c 2010-01-25 09:50:29.525687396 +0100
53394 @@ -3,7 +3,8 @@
53395
53396 /* { dg-do assemble } */
53397 /* { dg-require-effective-target arm_neon_ok } */
53398 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53399 +/* { dg-options "-save-temps -O0" } */
53400 +/* { dg-add-options arm_neon } */
53401
53402 #include "arm_neon.h"
53403
53404 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsra_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vsra_nu32.c
53405 --- a/gcc/testsuite/gcc.target/arm/neon/vsra_nu32.c 2007-07-25 14:28:31.000000000 +0200
53406 +++ b/gcc/testsuite/gcc.target/arm/neon/vsra_nu32.c 2010-01-25 09:50:29.525687396 +0100
53407 @@ -3,7 +3,8 @@
53408
53409 /* { dg-do assemble } */
53410 /* { dg-require-effective-target arm_neon_ok } */
53411 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53412 +/* { dg-options "-save-temps -O0" } */
53413 +/* { dg-add-options arm_neon } */
53414
53415 #include "arm_neon.h"
53416
53417 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsra_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vsra_nu64.c
53418 --- a/gcc/testsuite/gcc.target/arm/neon/vsra_nu64.c 2007-07-25 14:28:31.000000000 +0200
53419 +++ b/gcc/testsuite/gcc.target/arm/neon/vsra_nu64.c 2010-01-25 09:50:29.525687396 +0100
53420 @@ -3,7 +3,8 @@
53421
53422 /* { dg-do assemble } */
53423 /* { dg-require-effective-target arm_neon_ok } */
53424 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53425 +/* { dg-options "-save-temps -O0" } */
53426 +/* { dg-add-options arm_neon } */
53427
53428 #include "arm_neon.h"
53429
53430 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsra_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vsra_nu8.c
53431 --- a/gcc/testsuite/gcc.target/arm/neon/vsra_nu8.c 2007-07-25 14:28:31.000000000 +0200
53432 +++ b/gcc/testsuite/gcc.target/arm/neon/vsra_nu8.c 2010-01-25 09:50:29.525687396 +0100
53433 @@ -3,7 +3,8 @@
53434
53435 /* { dg-do assemble } */
53436 /* { dg-require-effective-target arm_neon_ok } */
53437 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53438 +/* { dg-options "-save-temps -O0" } */
53439 +/* { dg-add-options arm_neon } */
53440
53441 #include "arm_neon.h"
53442
53443 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns16.c
53444 --- a/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
53445 +++ b/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns16.c 2010-01-25 09:50:29.525687396 +0100
53446 @@ -3,7 +3,8 @@
53447
53448 /* { dg-do assemble } */
53449 /* { dg-require-effective-target arm_neon_ok } */
53450 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53451 +/* { dg-options "-save-temps -O0" } */
53452 +/* { dg-add-options arm_neon } */
53453
53454 #include "arm_neon.h"
53455
53456 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns32.c
53457 --- a/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
53458 +++ b/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns32.c 2010-01-25 09:50:29.525687396 +0100
53459 @@ -3,7 +3,8 @@
53460
53461 /* { dg-do assemble } */
53462 /* { dg-require-effective-target arm_neon_ok } */
53463 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53464 +/* { dg-options "-save-temps -O0" } */
53465 +/* { dg-add-options arm_neon } */
53466
53467 #include "arm_neon.h"
53468
53469 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns64.c
53470 --- a/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
53471 +++ b/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns64.c 2010-01-25 09:50:29.525687396 +0100
53472 @@ -3,7 +3,8 @@
53473
53474 /* { dg-do assemble } */
53475 /* { dg-require-effective-target arm_neon_ok } */
53476 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53477 +/* { dg-options "-save-temps -O0" } */
53478 +/* { dg-add-options arm_neon } */
53479
53480 #include "arm_neon.h"
53481
53482 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns8.c
53483 --- a/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
53484 +++ b/gcc/testsuite/gcc.target/arm/neon/vsraQ_ns8.c 2010-01-25 09:50:29.525687396 +0100
53485 @@ -3,7 +3,8 @@
53486
53487 /* { dg-do assemble } */
53488 /* { dg-require-effective-target arm_neon_ok } */
53489 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53490 +/* { dg-options "-save-temps -O0" } */
53491 +/* { dg-add-options arm_neon } */
53492
53493 #include "arm_neon.h"
53494
53495 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu16.c
53496 --- a/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
53497 +++ b/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu16.c 2010-01-25 09:50:29.525687396 +0100
53498 @@ -3,7 +3,8 @@
53499
53500 /* { dg-do assemble } */
53501 /* { dg-require-effective-target arm_neon_ok } */
53502 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53503 +/* { dg-options "-save-temps -O0" } */
53504 +/* { dg-add-options arm_neon } */
53505
53506 #include "arm_neon.h"
53507
53508 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu32.c
53509 --- a/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
53510 +++ b/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu32.c 2010-01-25 09:50:29.525687396 +0100
53511 @@ -3,7 +3,8 @@
53512
53513 /* { dg-do assemble } */
53514 /* { dg-require-effective-target arm_neon_ok } */
53515 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53516 +/* { dg-options "-save-temps -O0" } */
53517 +/* { dg-add-options arm_neon } */
53518
53519 #include "arm_neon.h"
53520
53521 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu64.c
53522 --- a/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
53523 +++ b/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu64.c 2010-01-25 09:50:29.525687396 +0100
53524 @@ -3,7 +3,8 @@
53525
53526 /* { dg-do assemble } */
53527 /* { dg-require-effective-target arm_neon_ok } */
53528 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53529 +/* { dg-options "-save-temps -O0" } */
53530 +/* { dg-add-options arm_neon } */
53531
53532 #include "arm_neon.h"
53533
53534 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu8.c
53535 --- a/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
53536 +++ b/gcc/testsuite/gcc.target/arm/neon/vsraQ_nu8.c 2010-01-25 09:50:29.525687396 +0100
53537 @@ -3,7 +3,8 @@
53538
53539 /* { dg-do assemble } */
53540 /* { dg-require-effective-target arm_neon_ok } */
53541 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53542 +/* { dg-options "-save-temps -O0" } */
53543 +/* { dg-add-options arm_neon } */
53544
53545 #include "arm_neon.h"
53546
53547 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_np16.c b/gcc/testsuite/gcc.target/arm/neon/vsri_np16.c
53548 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_np16.c 2007-07-25 14:28:31.000000000 +0200
53549 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_np16.c 2010-01-25 09:50:29.525687396 +0100
53550 @@ -3,7 +3,8 @@
53551
53552 /* { dg-do assemble } */
53553 /* { dg-require-effective-target arm_neon_ok } */
53554 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53555 +/* { dg-options "-save-temps -O0" } */
53556 +/* { dg-add-options arm_neon } */
53557
53558 #include "arm_neon.h"
53559
53560 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_np8.c b/gcc/testsuite/gcc.target/arm/neon/vsri_np8.c
53561 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_np8.c 2007-07-25 14:28:31.000000000 +0200
53562 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_np8.c 2010-01-25 09:50:29.525687396 +0100
53563 @@ -3,7 +3,8 @@
53564
53565 /* { dg-do assemble } */
53566 /* { dg-require-effective-target arm_neon_ok } */
53567 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53568 +/* { dg-options "-save-temps -O0" } */
53569 +/* { dg-add-options arm_neon } */
53570
53571 #include "arm_neon.h"
53572
53573 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vsri_ns16.c
53574 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_ns16.c 2007-07-25 14:28:31.000000000 +0200
53575 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_ns16.c 2010-01-25 09:50:29.525687396 +0100
53576 @@ -3,7 +3,8 @@
53577
53578 /* { dg-do assemble } */
53579 /* { dg-require-effective-target arm_neon_ok } */
53580 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53581 +/* { dg-options "-save-temps -O0" } */
53582 +/* { dg-add-options arm_neon } */
53583
53584 #include "arm_neon.h"
53585
53586 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vsri_ns32.c
53587 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_ns32.c 2007-07-25 14:28:31.000000000 +0200
53588 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_ns32.c 2010-01-25 09:50:29.525687396 +0100
53589 @@ -3,7 +3,8 @@
53590
53591 /* { dg-do assemble } */
53592 /* { dg-require-effective-target arm_neon_ok } */
53593 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53594 +/* { dg-options "-save-temps -O0" } */
53595 +/* { dg-add-options arm_neon } */
53596
53597 #include "arm_neon.h"
53598
53599 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vsri_ns64.c
53600 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_ns64.c 2007-07-25 14:28:31.000000000 +0200
53601 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_ns64.c 2010-01-25 09:50:29.525687396 +0100
53602 @@ -3,7 +3,8 @@
53603
53604 /* { dg-do assemble } */
53605 /* { dg-require-effective-target arm_neon_ok } */
53606 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53607 +/* { dg-options "-save-temps -O0" } */
53608 +/* { dg-add-options arm_neon } */
53609
53610 #include "arm_neon.h"
53611
53612 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vsri_ns8.c
53613 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_ns8.c 2007-07-25 14:28:31.000000000 +0200
53614 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_ns8.c 2010-01-25 09:50:29.525687396 +0100
53615 @@ -3,7 +3,8 @@
53616
53617 /* { dg-do assemble } */
53618 /* { dg-require-effective-target arm_neon_ok } */
53619 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53620 +/* { dg-options "-save-temps -O0" } */
53621 +/* { dg-add-options arm_neon } */
53622
53623 #include "arm_neon.h"
53624
53625 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vsri_nu16.c
53626 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_nu16.c 2007-07-25 14:28:31.000000000 +0200
53627 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_nu16.c 2010-01-25 09:50:29.525687396 +0100
53628 @@ -3,7 +3,8 @@
53629
53630 /* { dg-do assemble } */
53631 /* { dg-require-effective-target arm_neon_ok } */
53632 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53633 +/* { dg-options "-save-temps -O0" } */
53634 +/* { dg-add-options arm_neon } */
53635
53636 #include "arm_neon.h"
53637
53638 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vsri_nu32.c
53639 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_nu32.c 2007-07-25 14:28:31.000000000 +0200
53640 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_nu32.c 2010-01-25 09:50:29.525687396 +0100
53641 @@ -3,7 +3,8 @@
53642
53643 /* { dg-do assemble } */
53644 /* { dg-require-effective-target arm_neon_ok } */
53645 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53646 +/* { dg-options "-save-temps -O0" } */
53647 +/* { dg-add-options arm_neon } */
53648
53649 #include "arm_neon.h"
53650
53651 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vsri_nu64.c
53652 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_nu64.c 2007-07-25 14:28:31.000000000 +0200
53653 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_nu64.c 2010-01-25 09:50:29.525687396 +0100
53654 @@ -3,7 +3,8 @@
53655
53656 /* { dg-do assemble } */
53657 /* { dg-require-effective-target arm_neon_ok } */
53658 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53659 +/* { dg-options "-save-temps -O0" } */
53660 +/* { dg-add-options arm_neon } */
53661
53662 #include "arm_neon.h"
53663
53664 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsri_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vsri_nu8.c
53665 --- a/gcc/testsuite/gcc.target/arm/neon/vsri_nu8.c 2007-07-25 14:28:31.000000000 +0200
53666 +++ b/gcc/testsuite/gcc.target/arm/neon/vsri_nu8.c 2010-01-25 09:50:29.525687396 +0100
53667 @@ -3,7 +3,8 @@
53668
53669 /* { dg-do assemble } */
53670 /* { dg-require-effective-target arm_neon_ok } */
53671 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53672 +/* { dg-options "-save-temps -O0" } */
53673 +/* { dg-add-options arm_neon } */
53674
53675 #include "arm_neon.h"
53676
53677 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_np16.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_np16.c
53678 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_np16.c 2007-07-25 14:28:31.000000000 +0200
53679 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_np16.c 2010-01-25 09:50:29.525687396 +0100
53680 @@ -3,7 +3,8 @@
53681
53682 /* { dg-do assemble } */
53683 /* { dg-require-effective-target arm_neon_ok } */
53684 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53685 +/* { dg-options "-save-temps -O0" } */
53686 +/* { dg-add-options arm_neon } */
53687
53688 #include "arm_neon.h"
53689
53690 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_np8.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_np8.c
53691 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_np8.c 2007-07-25 14:28:31.000000000 +0200
53692 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_np8.c 2010-01-25 09:50:29.525687396 +0100
53693 @@ -3,7 +3,8 @@
53694
53695 /* { dg-do assemble } */
53696 /* { dg-require-effective-target arm_neon_ok } */
53697 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53698 +/* { dg-options "-save-temps -O0" } */
53699 +/* { dg-add-options arm_neon } */
53700
53701 #include "arm_neon.h"
53702
53703 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns16.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns16.c
53704 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns16.c 2007-07-25 14:28:31.000000000 +0200
53705 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns16.c 2010-01-25 09:50:29.525687396 +0100
53706 @@ -3,7 +3,8 @@
53707
53708 /* { dg-do assemble } */
53709 /* { dg-require-effective-target arm_neon_ok } */
53710 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53711 +/* { dg-options "-save-temps -O0" } */
53712 +/* { dg-add-options arm_neon } */
53713
53714 #include "arm_neon.h"
53715
53716 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns32.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns32.c
53717 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns32.c 2007-07-25 14:28:31.000000000 +0200
53718 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns32.c 2010-01-25 09:50:29.525687396 +0100
53719 @@ -3,7 +3,8 @@
53720
53721 /* { dg-do assemble } */
53722 /* { dg-require-effective-target arm_neon_ok } */
53723 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53724 +/* { dg-options "-save-temps -O0" } */
53725 +/* { dg-add-options arm_neon } */
53726
53727 #include "arm_neon.h"
53728
53729 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns64.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns64.c
53730 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns64.c 2007-07-25 14:28:31.000000000 +0200
53731 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns64.c 2010-01-25 09:50:29.525687396 +0100
53732 @@ -3,7 +3,8 @@
53733
53734 /* { dg-do assemble } */
53735 /* { dg-require-effective-target arm_neon_ok } */
53736 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53737 +/* { dg-options "-save-temps -O0" } */
53738 +/* { dg-add-options arm_neon } */
53739
53740 #include "arm_neon.h"
53741
53742 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns8.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns8.c
53743 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns8.c 2007-07-25 14:28:31.000000000 +0200
53744 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_ns8.c 2010-01-25 09:50:29.525687396 +0100
53745 @@ -3,7 +3,8 @@
53746
53747 /* { dg-do assemble } */
53748 /* { dg-require-effective-target arm_neon_ok } */
53749 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53750 +/* { dg-options "-save-temps -O0" } */
53751 +/* { dg-add-options arm_neon } */
53752
53753 #include "arm_neon.h"
53754
53755 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu16.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu16.c
53756 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu16.c 2007-07-25 14:28:31.000000000 +0200
53757 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu16.c 2010-01-25 09:50:29.525687396 +0100
53758 @@ -3,7 +3,8 @@
53759
53760 /* { dg-do assemble } */
53761 /* { dg-require-effective-target arm_neon_ok } */
53762 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53763 +/* { dg-options "-save-temps -O0" } */
53764 +/* { dg-add-options arm_neon } */
53765
53766 #include "arm_neon.h"
53767
53768 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu32.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu32.c
53769 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu32.c 2007-07-25 14:28:31.000000000 +0200
53770 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu32.c 2010-01-25 09:50:29.525687396 +0100
53771 @@ -3,7 +3,8 @@
53772
53773 /* { dg-do assemble } */
53774 /* { dg-require-effective-target arm_neon_ok } */
53775 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53776 +/* { dg-options "-save-temps -O0" } */
53777 +/* { dg-add-options arm_neon } */
53778
53779 #include "arm_neon.h"
53780
53781 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu64.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu64.c
53782 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu64.c 2007-07-25 14:28:31.000000000 +0200
53783 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu64.c 2010-01-25 09:50:29.525687396 +0100
53784 @@ -3,7 +3,8 @@
53785
53786 /* { dg-do assemble } */
53787 /* { dg-require-effective-target arm_neon_ok } */
53788 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53789 +/* { dg-options "-save-temps -O0" } */
53790 +/* { dg-add-options arm_neon } */
53791
53792 #include "arm_neon.h"
53793
53794 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu8.c b/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu8.c
53795 --- a/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu8.c 2007-07-25 14:28:31.000000000 +0200
53796 +++ b/gcc/testsuite/gcc.target/arm/neon/vsriQ_nu8.c 2010-01-25 09:50:29.525687396 +0100
53797 @@ -3,7 +3,8 @@
53798
53799 /* { dg-do assemble } */
53800 /* { dg-require-effective-target arm_neon_ok } */
53801 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53802 +/* { dg-options "-save-temps -O0" } */
53803 +/* { dg-add-options arm_neon } */
53804
53805 #include "arm_neon.h"
53806
53807 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1f32.c b/gcc/testsuite/gcc.target/arm/neon/vst1f32.c
53808 --- a/gcc/testsuite/gcc.target/arm/neon/vst1f32.c 2007-07-25 14:28:31.000000000 +0200
53809 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1f32.c 2010-01-25 09:50:29.525687396 +0100
53810 @@ -3,7 +3,8 @@
53811
53812 /* { dg-do assemble } */
53813 /* { dg-require-effective-target arm_neon_ok } */
53814 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53815 +/* { dg-options "-save-temps -O0" } */
53816 +/* { dg-add-options arm_neon } */
53817
53818 #include "arm_neon.h"
53819
53820 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vst1_lanef32.c
53821 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_lanef32.c 2007-07-25 14:28:31.000000000 +0200
53822 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_lanef32.c 2010-01-25 09:50:29.525687396 +0100
53823 @@ -3,7 +3,8 @@
53824
53825 /* { dg-do assemble } */
53826 /* { dg-require-effective-target arm_neon_ok } */
53827 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53828 +/* { dg-options "-save-temps -O0" } */
53829 +/* { dg-add-options arm_neon } */
53830
53831 #include "arm_neon.h"
53832
53833 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vst1_lanep16.c
53834 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_lanep16.c 2007-07-25 14:28:31.000000000 +0200
53835 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_lanep16.c 2010-01-25 09:50:29.525687396 +0100
53836 @@ -3,7 +3,8 @@
53837
53838 /* { dg-do assemble } */
53839 /* { dg-require-effective-target arm_neon_ok } */
53840 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53841 +/* { dg-options "-save-temps -O0" } */
53842 +/* { dg-add-options arm_neon } */
53843
53844 #include "arm_neon.h"
53845
53846 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vst1_lanep8.c
53847 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_lanep8.c 2007-07-25 14:28:31.000000000 +0200
53848 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_lanep8.c 2010-01-25 09:50:29.525687396 +0100
53849 @@ -3,7 +3,8 @@
53850
53851 /* { dg-do assemble } */
53852 /* { dg-require-effective-target arm_neon_ok } */
53853 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53854 +/* { dg-options "-save-temps -O0" } */
53855 +/* { dg-add-options arm_neon } */
53856
53857 #include "arm_neon.h"
53858
53859 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vst1_lanes16.c
53860 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_lanes16.c 2007-07-25 14:28:31.000000000 +0200
53861 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_lanes16.c 2010-01-25 09:50:29.525687396 +0100
53862 @@ -3,7 +3,8 @@
53863
53864 /* { dg-do assemble } */
53865 /* { dg-require-effective-target arm_neon_ok } */
53866 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53867 +/* { dg-options "-save-temps -O0" } */
53868 +/* { dg-add-options arm_neon } */
53869
53870 #include "arm_neon.h"
53871
53872 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vst1_lanes32.c
53873 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_lanes32.c 2007-07-25 14:28:31.000000000 +0200
53874 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_lanes32.c 2010-01-25 09:50:29.525687396 +0100
53875 @@ -3,7 +3,8 @@
53876
53877 /* { dg-do assemble } */
53878 /* { dg-require-effective-target arm_neon_ok } */
53879 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53880 +/* { dg-options "-save-temps -O0" } */
53881 +/* { dg-add-options arm_neon } */
53882
53883 #include "arm_neon.h"
53884
53885 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vst1_lanes64.c
53886 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_lanes64.c 2007-07-25 14:28:31.000000000 +0200
53887 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_lanes64.c 2010-01-25 09:50:29.535686781 +0100
53888 @@ -3,7 +3,8 @@
53889
53890 /* { dg-do assemble } */
53891 /* { dg-require-effective-target arm_neon_ok } */
53892 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53893 +/* { dg-options "-save-temps -O0" } */
53894 +/* { dg-add-options arm_neon } */
53895
53896 #include "arm_neon.h"
53897
53898 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vst1_lanes8.c
53899 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_lanes8.c 2007-07-25 14:28:31.000000000 +0200
53900 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_lanes8.c 2010-01-25 09:50:29.535686781 +0100
53901 @@ -3,7 +3,8 @@
53902
53903 /* { dg-do assemble } */
53904 /* { dg-require-effective-target arm_neon_ok } */
53905 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53906 +/* { dg-options "-save-temps -O0" } */
53907 +/* { dg-add-options arm_neon } */
53908
53909 #include "arm_neon.h"
53910
53911 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vst1_laneu16.c
53912 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_laneu16.c 2007-07-25 14:28:31.000000000 +0200
53913 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_laneu16.c 2010-01-25 09:50:29.535686781 +0100
53914 @@ -3,7 +3,8 @@
53915
53916 /* { dg-do assemble } */
53917 /* { dg-require-effective-target arm_neon_ok } */
53918 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53919 +/* { dg-options "-save-temps -O0" } */
53920 +/* { dg-add-options arm_neon } */
53921
53922 #include "arm_neon.h"
53923
53924 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vst1_laneu32.c
53925 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_laneu32.c 2007-07-25 14:28:31.000000000 +0200
53926 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_laneu32.c 2010-01-25 09:50:29.535686781 +0100
53927 @@ -3,7 +3,8 @@
53928
53929 /* { dg-do assemble } */
53930 /* { dg-require-effective-target arm_neon_ok } */
53931 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53932 +/* { dg-options "-save-temps -O0" } */
53933 +/* { dg-add-options arm_neon } */
53934
53935 #include "arm_neon.h"
53936
53937 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vst1_laneu64.c
53938 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_laneu64.c 2007-07-25 14:28:31.000000000 +0200
53939 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_laneu64.c 2010-01-25 09:50:29.535686781 +0100
53940 @@ -3,7 +3,8 @@
53941
53942 /* { dg-do assemble } */
53943 /* { dg-require-effective-target arm_neon_ok } */
53944 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53945 +/* { dg-options "-save-temps -O0" } */
53946 +/* { dg-add-options arm_neon } */
53947
53948 #include "arm_neon.h"
53949
53950 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vst1_laneu8.c
53951 --- a/gcc/testsuite/gcc.target/arm/neon/vst1_laneu8.c 2007-07-25 14:28:31.000000000 +0200
53952 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1_laneu8.c 2010-01-25 09:50:29.535686781 +0100
53953 @@ -3,7 +3,8 @@
53954
53955 /* { dg-do assemble } */
53956 /* { dg-require-effective-target arm_neon_ok } */
53957 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53958 +/* { dg-options "-save-temps -O0" } */
53959 +/* { dg-add-options arm_neon } */
53960
53961 #include "arm_neon.h"
53962
53963 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1p16.c b/gcc/testsuite/gcc.target/arm/neon/vst1p16.c
53964 --- a/gcc/testsuite/gcc.target/arm/neon/vst1p16.c 2007-07-25 14:28:31.000000000 +0200
53965 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1p16.c 2010-01-25 09:50:29.535686781 +0100
53966 @@ -3,7 +3,8 @@
53967
53968 /* { dg-do assemble } */
53969 /* { dg-require-effective-target arm_neon_ok } */
53970 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53971 +/* { dg-options "-save-temps -O0" } */
53972 +/* { dg-add-options arm_neon } */
53973
53974 #include "arm_neon.h"
53975
53976 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1p8.c b/gcc/testsuite/gcc.target/arm/neon/vst1p8.c
53977 --- a/gcc/testsuite/gcc.target/arm/neon/vst1p8.c 2007-07-25 14:28:31.000000000 +0200
53978 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1p8.c 2010-01-25 09:50:29.535686781 +0100
53979 @@ -3,7 +3,8 @@
53980
53981 /* { dg-do assemble } */
53982 /* { dg-require-effective-target arm_neon_ok } */
53983 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53984 +/* { dg-options "-save-temps -O0" } */
53985 +/* { dg-add-options arm_neon } */
53986
53987 #include "arm_neon.h"
53988
53989 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qf32.c
53990 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qf32.c 2007-07-25 14:28:31.000000000 +0200
53991 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qf32.c 2010-01-25 09:50:29.535686781 +0100
53992 @@ -3,7 +3,8 @@
53993
53994 /* { dg-do assemble } */
53995 /* { dg-require-effective-target arm_neon_ok } */
53996 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
53997 +/* { dg-options "-save-temps -O0" } */
53998 +/* { dg-add-options arm_neon } */
53999
54000 #include "arm_neon.h"
54001
54002 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanef32.c
54003 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanef32.c 2007-07-25 14:28:31.000000000 +0200
54004 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanef32.c 2010-01-25 09:50:29.535686781 +0100
54005 @@ -3,7 +3,8 @@
54006
54007 /* { dg-do assemble } */
54008 /* { dg-require-effective-target arm_neon_ok } */
54009 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54010 +/* { dg-options "-save-temps -O0" } */
54011 +/* { dg-add-options arm_neon } */
54012
54013 #include "arm_neon.h"
54014
54015 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanep16.c
54016 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanep16.c 2007-07-25 14:28:31.000000000 +0200
54017 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanep16.c 2010-01-25 09:50:29.535686781 +0100
54018 @@ -3,7 +3,8 @@
54019
54020 /* { dg-do assemble } */
54021 /* { dg-require-effective-target arm_neon_ok } */
54022 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54023 +/* { dg-options "-save-temps -O0" } */
54024 +/* { dg-add-options arm_neon } */
54025
54026 #include "arm_neon.h"
54027
54028 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanep8.c
54029 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanep8.c 2007-07-25 14:28:31.000000000 +0200
54030 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanep8.c 2010-01-25 09:50:29.535686781 +0100
54031 @@ -3,7 +3,8 @@
54032
54033 /* { dg-do assemble } */
54034 /* { dg-require-effective-target arm_neon_ok } */
54035 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54036 +/* { dg-options "-save-temps -O0" } */
54037 +/* { dg-add-options arm_neon } */
54038
54039 #include "arm_neon.h"
54040
54041 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes16.c
54042 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes16.c 2007-07-25 14:28:31.000000000 +0200
54043 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes16.c 2010-01-25 09:50:29.535686781 +0100
54044 @@ -3,7 +3,8 @@
54045
54046 /* { dg-do assemble } */
54047 /* { dg-require-effective-target arm_neon_ok } */
54048 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54049 +/* { dg-options "-save-temps -O0" } */
54050 +/* { dg-add-options arm_neon } */
54051
54052 #include "arm_neon.h"
54053
54054 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes32.c
54055 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes32.c 2007-07-25 14:28:31.000000000 +0200
54056 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes32.c 2010-01-25 09:50:29.535686781 +0100
54057 @@ -3,7 +3,8 @@
54058
54059 /* { dg-do assemble } */
54060 /* { dg-require-effective-target arm_neon_ok } */
54061 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54062 +/* { dg-options "-save-temps -O0" } */
54063 +/* { dg-add-options arm_neon } */
54064
54065 #include "arm_neon.h"
54066
54067 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes64.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes64.c
54068 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes64.c 2007-07-25 14:28:31.000000000 +0200
54069 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes64.c 2010-01-25 09:50:29.535686781 +0100
54070 @@ -3,7 +3,8 @@
54071
54072 /* { dg-do assemble } */
54073 /* { dg-require-effective-target arm_neon_ok } */
54074 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54075 +/* { dg-options "-save-temps -O0" } */
54076 +/* { dg-add-options arm_neon } */
54077
54078 #include "arm_neon.h"
54079
54080 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes8.c
54081 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes8.c 2007-07-25 14:28:31.000000000 +0200
54082 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_lanes8.c 2010-01-25 09:50:29.535686781 +0100
54083 @@ -3,7 +3,8 @@
54084
54085 /* { dg-do assemble } */
54086 /* { dg-require-effective-target arm_neon_ok } */
54087 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54088 +/* { dg-options "-save-temps -O0" } */
54089 +/* { dg-add-options arm_neon } */
54090
54091 #include "arm_neon.h"
54092
54093 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu16.c
54094 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu16.c 2007-07-25 14:28:31.000000000 +0200
54095 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu16.c 2010-01-25 09:50:29.535686781 +0100
54096 @@ -3,7 +3,8 @@
54097
54098 /* { dg-do assemble } */
54099 /* { dg-require-effective-target arm_neon_ok } */
54100 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54101 +/* { dg-options "-save-temps -O0" } */
54102 +/* { dg-add-options arm_neon } */
54103
54104 #include "arm_neon.h"
54105
54106 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu32.c
54107 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu32.c 2007-07-25 14:28:31.000000000 +0200
54108 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu32.c 2010-01-25 09:50:29.535686781 +0100
54109 @@ -3,7 +3,8 @@
54110
54111 /* { dg-do assemble } */
54112 /* { dg-require-effective-target arm_neon_ok } */
54113 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54114 +/* { dg-options "-save-temps -O0" } */
54115 +/* { dg-add-options arm_neon } */
54116
54117 #include "arm_neon.h"
54118
54119 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu64.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu64.c
54120 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu64.c 2007-07-25 14:28:31.000000000 +0200
54121 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu64.c 2010-01-25 09:50:29.535686781 +0100
54122 @@ -3,7 +3,8 @@
54123
54124 /* { dg-do assemble } */
54125 /* { dg-require-effective-target arm_neon_ok } */
54126 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54127 +/* { dg-options "-save-temps -O0" } */
54128 +/* { dg-add-options arm_neon } */
54129
54130 #include "arm_neon.h"
54131
54132 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu8.c
54133 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu8.c 2007-07-25 14:28:31.000000000 +0200
54134 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Q_laneu8.c 2010-01-25 09:50:29.535686781 +0100
54135 @@ -3,7 +3,8 @@
54136
54137 /* { dg-do assemble } */
54138 /* { dg-require-effective-target arm_neon_ok } */
54139 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54140 +/* { dg-options "-save-temps -O0" } */
54141 +/* { dg-add-options arm_neon } */
54142
54143 #include "arm_neon.h"
54144
54145 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qp16.c
54146 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qp16.c 2007-07-25 14:28:31.000000000 +0200
54147 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qp16.c 2010-01-25 09:50:29.535686781 +0100
54148 @@ -3,7 +3,8 @@
54149
54150 /* { dg-do assemble } */
54151 /* { dg-require-effective-target arm_neon_ok } */
54152 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54153 +/* { dg-options "-save-temps -O0" } */
54154 +/* { dg-add-options arm_neon } */
54155
54156 #include "arm_neon.h"
54157
54158 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qp8.c
54159 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qp8.c 2007-07-25 14:28:31.000000000 +0200
54160 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qp8.c 2010-01-25 09:50:29.535686781 +0100
54161 @@ -3,7 +3,8 @@
54162
54163 /* { dg-do assemble } */
54164 /* { dg-require-effective-target arm_neon_ok } */
54165 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54166 +/* { dg-options "-save-temps -O0" } */
54167 +/* { dg-add-options arm_neon } */
54168
54169 #include "arm_neon.h"
54170
54171 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qs16.c
54172 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qs16.c 2007-07-25 14:28:31.000000000 +0200
54173 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qs16.c 2010-01-25 09:50:29.535686781 +0100
54174 @@ -3,7 +3,8 @@
54175
54176 /* { dg-do assemble } */
54177 /* { dg-require-effective-target arm_neon_ok } */
54178 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54179 +/* { dg-options "-save-temps -O0" } */
54180 +/* { dg-add-options arm_neon } */
54181
54182 #include "arm_neon.h"
54183
54184 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qs32.c
54185 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qs32.c 2007-07-25 14:28:31.000000000 +0200
54186 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qs32.c 2010-01-25 09:50:29.535686781 +0100
54187 @@ -3,7 +3,8 @@
54188
54189 /* { dg-do assemble } */
54190 /* { dg-require-effective-target arm_neon_ok } */
54191 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54192 +/* { dg-options "-save-temps -O0" } */
54193 +/* { dg-add-options arm_neon } */
54194
54195 #include "arm_neon.h"
54196
54197 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qs64.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qs64.c
54198 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qs64.c 2007-07-25 14:28:31.000000000 +0200
54199 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qs64.c 2010-01-25 09:50:29.535686781 +0100
54200 @@ -3,7 +3,8 @@
54201
54202 /* { dg-do assemble } */
54203 /* { dg-require-effective-target arm_neon_ok } */
54204 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54205 +/* { dg-options "-save-temps -O0" } */
54206 +/* { dg-add-options arm_neon } */
54207
54208 #include "arm_neon.h"
54209
54210 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qs8.c
54211 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qs8.c 2007-07-25 14:28:31.000000000 +0200
54212 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qs8.c 2010-01-25 09:50:29.535686781 +0100
54213 @@ -3,7 +3,8 @@
54214
54215 /* { dg-do assemble } */
54216 /* { dg-require-effective-target arm_neon_ok } */
54217 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54218 +/* { dg-options "-save-temps -O0" } */
54219 +/* { dg-add-options arm_neon } */
54220
54221 #include "arm_neon.h"
54222
54223 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qu16.c
54224 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qu16.c 2007-07-25 14:28:31.000000000 +0200
54225 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qu16.c 2010-01-25 09:50:29.535686781 +0100
54226 @@ -3,7 +3,8 @@
54227
54228 /* { dg-do assemble } */
54229 /* { dg-require-effective-target arm_neon_ok } */
54230 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54231 +/* { dg-options "-save-temps -O0" } */
54232 +/* { dg-add-options arm_neon } */
54233
54234 #include "arm_neon.h"
54235
54236 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qu32.c
54237 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qu32.c 2007-07-25 14:28:31.000000000 +0200
54238 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qu32.c 2010-01-25 09:50:29.535686781 +0100
54239 @@ -3,7 +3,8 @@
54240
54241 /* { dg-do assemble } */
54242 /* { dg-require-effective-target arm_neon_ok } */
54243 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54244 +/* { dg-options "-save-temps -O0" } */
54245 +/* { dg-add-options arm_neon } */
54246
54247 #include "arm_neon.h"
54248
54249 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qu64.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qu64.c
54250 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qu64.c 2007-07-25 14:28:31.000000000 +0200
54251 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qu64.c 2010-01-25 09:50:29.535686781 +0100
54252 @@ -3,7 +3,8 @@
54253
54254 /* { dg-do assemble } */
54255 /* { dg-require-effective-target arm_neon_ok } */
54256 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54257 +/* { dg-options "-save-temps -O0" } */
54258 +/* { dg-add-options arm_neon } */
54259
54260 #include "arm_neon.h"
54261
54262 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vst1Qu8.c
54263 --- a/gcc/testsuite/gcc.target/arm/neon/vst1Qu8.c 2007-07-25 14:28:31.000000000 +0200
54264 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1Qu8.c 2010-01-25 09:50:29.535686781 +0100
54265 @@ -3,7 +3,8 @@
54266
54267 /* { dg-do assemble } */
54268 /* { dg-require-effective-target arm_neon_ok } */
54269 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54270 +/* { dg-options "-save-temps -O0" } */
54271 +/* { dg-add-options arm_neon } */
54272
54273 #include "arm_neon.h"
54274
54275 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1s16.c b/gcc/testsuite/gcc.target/arm/neon/vst1s16.c
54276 --- a/gcc/testsuite/gcc.target/arm/neon/vst1s16.c 2007-07-25 14:28:31.000000000 +0200
54277 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1s16.c 2010-01-25 09:50:29.535686781 +0100
54278 @@ -3,7 +3,8 @@
54279
54280 /* { dg-do assemble } */
54281 /* { dg-require-effective-target arm_neon_ok } */
54282 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54283 +/* { dg-options "-save-temps -O0" } */
54284 +/* { dg-add-options arm_neon } */
54285
54286 #include "arm_neon.h"
54287
54288 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1s32.c b/gcc/testsuite/gcc.target/arm/neon/vst1s32.c
54289 --- a/gcc/testsuite/gcc.target/arm/neon/vst1s32.c 2007-07-25 14:28:31.000000000 +0200
54290 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1s32.c 2010-01-25 09:50:29.535686781 +0100
54291 @@ -3,7 +3,8 @@
54292
54293 /* { dg-do assemble } */
54294 /* { dg-require-effective-target arm_neon_ok } */
54295 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54296 +/* { dg-options "-save-temps -O0" } */
54297 +/* { dg-add-options arm_neon } */
54298
54299 #include "arm_neon.h"
54300
54301 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1s64.c b/gcc/testsuite/gcc.target/arm/neon/vst1s64.c
54302 --- a/gcc/testsuite/gcc.target/arm/neon/vst1s64.c 2007-07-25 14:28:31.000000000 +0200
54303 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1s64.c 2010-01-25 09:50:29.535686781 +0100
54304 @@ -3,7 +3,8 @@
54305
54306 /* { dg-do assemble } */
54307 /* { dg-require-effective-target arm_neon_ok } */
54308 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54309 +/* { dg-options "-save-temps -O0" } */
54310 +/* { dg-add-options arm_neon } */
54311
54312 #include "arm_neon.h"
54313
54314 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1s8.c b/gcc/testsuite/gcc.target/arm/neon/vst1s8.c
54315 --- a/gcc/testsuite/gcc.target/arm/neon/vst1s8.c 2007-07-25 14:28:31.000000000 +0200
54316 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1s8.c 2010-01-25 09:50:29.535686781 +0100
54317 @@ -3,7 +3,8 @@
54318
54319 /* { dg-do assemble } */
54320 /* { dg-require-effective-target arm_neon_ok } */
54321 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54322 +/* { dg-options "-save-temps -O0" } */
54323 +/* { dg-add-options arm_neon } */
54324
54325 #include "arm_neon.h"
54326
54327 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1u16.c b/gcc/testsuite/gcc.target/arm/neon/vst1u16.c
54328 --- a/gcc/testsuite/gcc.target/arm/neon/vst1u16.c 2007-07-25 14:28:31.000000000 +0200
54329 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1u16.c 2010-01-25 09:50:29.535686781 +0100
54330 @@ -3,7 +3,8 @@
54331
54332 /* { dg-do assemble } */
54333 /* { dg-require-effective-target arm_neon_ok } */
54334 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54335 +/* { dg-options "-save-temps -O0" } */
54336 +/* { dg-add-options arm_neon } */
54337
54338 #include "arm_neon.h"
54339
54340 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1u32.c b/gcc/testsuite/gcc.target/arm/neon/vst1u32.c
54341 --- a/gcc/testsuite/gcc.target/arm/neon/vst1u32.c 2007-07-25 14:28:31.000000000 +0200
54342 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1u32.c 2010-01-25 09:50:29.535686781 +0100
54343 @@ -3,7 +3,8 @@
54344
54345 /* { dg-do assemble } */
54346 /* { dg-require-effective-target arm_neon_ok } */
54347 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54348 +/* { dg-options "-save-temps -O0" } */
54349 +/* { dg-add-options arm_neon } */
54350
54351 #include "arm_neon.h"
54352
54353 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1u64.c b/gcc/testsuite/gcc.target/arm/neon/vst1u64.c
54354 --- a/gcc/testsuite/gcc.target/arm/neon/vst1u64.c 2007-07-25 14:28:31.000000000 +0200
54355 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1u64.c 2010-01-25 09:50:29.535686781 +0100
54356 @@ -3,7 +3,8 @@
54357
54358 /* { dg-do assemble } */
54359 /* { dg-require-effective-target arm_neon_ok } */
54360 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54361 +/* { dg-options "-save-temps -O0" } */
54362 +/* { dg-add-options arm_neon } */
54363
54364 #include "arm_neon.h"
54365
54366 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst1u8.c b/gcc/testsuite/gcc.target/arm/neon/vst1u8.c
54367 --- a/gcc/testsuite/gcc.target/arm/neon/vst1u8.c 2007-07-25 14:28:31.000000000 +0200
54368 +++ b/gcc/testsuite/gcc.target/arm/neon/vst1u8.c 2010-01-25 09:50:29.535686781 +0100
54369 @@ -3,7 +3,8 @@
54370
54371 /* { dg-do assemble } */
54372 /* { dg-require-effective-target arm_neon_ok } */
54373 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54374 +/* { dg-options "-save-temps -O0" } */
54375 +/* { dg-add-options arm_neon } */
54376
54377 #include "arm_neon.h"
54378
54379 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2f32.c b/gcc/testsuite/gcc.target/arm/neon/vst2f32.c
54380 --- a/gcc/testsuite/gcc.target/arm/neon/vst2f32.c 2007-07-25 14:28:31.000000000 +0200
54381 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2f32.c 2010-01-25 09:50:29.535686781 +0100
54382 @@ -3,7 +3,8 @@
54383
54384 /* { dg-do assemble } */
54385 /* { dg-require-effective-target arm_neon_ok } */
54386 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54387 +/* { dg-options "-save-temps -O0" } */
54388 +/* { dg-add-options arm_neon } */
54389
54390 #include "arm_neon.h"
54391
54392 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vst2_lanef32.c
54393 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_lanef32.c 2007-07-25 14:28:31.000000000 +0200
54394 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_lanef32.c 2010-01-25 09:50:29.535686781 +0100
54395 @@ -3,7 +3,8 @@
54396
54397 /* { dg-do assemble } */
54398 /* { dg-require-effective-target arm_neon_ok } */
54399 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54400 +/* { dg-options "-save-temps -O0" } */
54401 +/* { dg-add-options arm_neon } */
54402
54403 #include "arm_neon.h"
54404
54405 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vst2_lanep16.c
54406 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_lanep16.c 2007-07-25 14:28:31.000000000 +0200
54407 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_lanep16.c 2010-01-25 09:50:29.535686781 +0100
54408 @@ -3,7 +3,8 @@
54409
54410 /* { dg-do assemble } */
54411 /* { dg-require-effective-target arm_neon_ok } */
54412 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54413 +/* { dg-options "-save-temps -O0" } */
54414 +/* { dg-add-options arm_neon } */
54415
54416 #include "arm_neon.h"
54417
54418 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vst2_lanep8.c
54419 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_lanep8.c 2007-07-25 14:28:31.000000000 +0200
54420 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_lanep8.c 2010-01-25 09:50:29.535686781 +0100
54421 @@ -3,7 +3,8 @@
54422
54423 /* { dg-do assemble } */
54424 /* { dg-require-effective-target arm_neon_ok } */
54425 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54426 +/* { dg-options "-save-temps -O0" } */
54427 +/* { dg-add-options arm_neon } */
54428
54429 #include "arm_neon.h"
54430
54431 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vst2_lanes16.c
54432 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_lanes16.c 2007-07-25 14:28:31.000000000 +0200
54433 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_lanes16.c 2010-01-25 09:50:29.535686781 +0100
54434 @@ -3,7 +3,8 @@
54435
54436 /* { dg-do assemble } */
54437 /* { dg-require-effective-target arm_neon_ok } */
54438 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54439 +/* { dg-options "-save-temps -O0" } */
54440 +/* { dg-add-options arm_neon } */
54441
54442 #include "arm_neon.h"
54443
54444 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vst2_lanes32.c
54445 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_lanes32.c 2007-07-25 14:28:31.000000000 +0200
54446 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_lanes32.c 2010-01-25 09:50:29.535686781 +0100
54447 @@ -3,7 +3,8 @@
54448
54449 /* { dg-do assemble } */
54450 /* { dg-require-effective-target arm_neon_ok } */
54451 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54452 +/* { dg-options "-save-temps -O0" } */
54453 +/* { dg-add-options arm_neon } */
54454
54455 #include "arm_neon.h"
54456
54457 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vst2_lanes8.c
54458 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_lanes8.c 2007-07-25 14:28:31.000000000 +0200
54459 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_lanes8.c 2010-01-25 09:50:29.535686781 +0100
54460 @@ -3,7 +3,8 @@
54461
54462 /* { dg-do assemble } */
54463 /* { dg-require-effective-target arm_neon_ok } */
54464 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54465 +/* { dg-options "-save-temps -O0" } */
54466 +/* { dg-add-options arm_neon } */
54467
54468 #include "arm_neon.h"
54469
54470 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vst2_laneu16.c
54471 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_laneu16.c 2007-07-25 14:28:31.000000000 +0200
54472 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_laneu16.c 2010-01-25 09:50:29.535686781 +0100
54473 @@ -3,7 +3,8 @@
54474
54475 /* { dg-do assemble } */
54476 /* { dg-require-effective-target arm_neon_ok } */
54477 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54478 +/* { dg-options "-save-temps -O0" } */
54479 +/* { dg-add-options arm_neon } */
54480
54481 #include "arm_neon.h"
54482
54483 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vst2_laneu32.c
54484 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_laneu32.c 2007-07-25 14:28:31.000000000 +0200
54485 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_laneu32.c 2010-01-25 09:50:29.535686781 +0100
54486 @@ -3,7 +3,8 @@
54487
54488 /* { dg-do assemble } */
54489 /* { dg-require-effective-target arm_neon_ok } */
54490 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54491 +/* { dg-options "-save-temps -O0" } */
54492 +/* { dg-add-options arm_neon } */
54493
54494 #include "arm_neon.h"
54495
54496 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vst2_laneu8.c
54497 --- a/gcc/testsuite/gcc.target/arm/neon/vst2_laneu8.c 2007-07-25 14:28:31.000000000 +0200
54498 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2_laneu8.c 2010-01-25 09:50:29.535686781 +0100
54499 @@ -3,7 +3,8 @@
54500
54501 /* { dg-do assemble } */
54502 /* { dg-require-effective-target arm_neon_ok } */
54503 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54504 +/* { dg-options "-save-temps -O0" } */
54505 +/* { dg-add-options arm_neon } */
54506
54507 #include "arm_neon.h"
54508
54509 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2p16.c b/gcc/testsuite/gcc.target/arm/neon/vst2p16.c
54510 --- a/gcc/testsuite/gcc.target/arm/neon/vst2p16.c 2007-07-25 14:28:31.000000000 +0200
54511 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2p16.c 2010-01-25 09:50:29.535686781 +0100
54512 @@ -3,7 +3,8 @@
54513
54514 /* { dg-do assemble } */
54515 /* { dg-require-effective-target arm_neon_ok } */
54516 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54517 +/* { dg-options "-save-temps -O0" } */
54518 +/* { dg-add-options arm_neon } */
54519
54520 #include "arm_neon.h"
54521
54522 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2p8.c b/gcc/testsuite/gcc.target/arm/neon/vst2p8.c
54523 --- a/gcc/testsuite/gcc.target/arm/neon/vst2p8.c 2007-07-25 14:28:31.000000000 +0200
54524 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2p8.c 2010-01-25 09:50:29.535686781 +0100
54525 @@ -3,7 +3,8 @@
54526
54527 /* { dg-do assemble } */
54528 /* { dg-require-effective-target arm_neon_ok } */
54529 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54530 +/* { dg-options "-save-temps -O0" } */
54531 +/* { dg-add-options arm_neon } */
54532
54533 #include "arm_neon.h"
54534
54535 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qf32.c
54536 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qf32.c 2007-07-25 14:28:31.000000000 +0200
54537 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qf32.c 2010-01-25 09:50:29.535686781 +0100
54538 @@ -3,7 +3,8 @@
54539
54540 /* { dg-do assemble } */
54541 /* { dg-require-effective-target arm_neon_ok } */
54542 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54543 +/* { dg-options "-save-temps -O0" } */
54544 +/* { dg-add-options arm_neon } */
54545
54546 #include "arm_neon.h"
54547
54548 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanef32.c
54549 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanef32.c 2007-07-25 14:28:31.000000000 +0200
54550 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanef32.c 2010-01-25 09:50:29.535686781 +0100
54551 @@ -3,7 +3,8 @@
54552
54553 /* { dg-do assemble } */
54554 /* { dg-require-effective-target arm_neon_ok } */
54555 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54556 +/* { dg-options "-save-temps -O0" } */
54557 +/* { dg-add-options arm_neon } */
54558
54559 #include "arm_neon.h"
54560
54561 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanep16.c
54562 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanep16.c 2007-07-25 14:28:31.000000000 +0200
54563 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanep16.c 2010-01-25 09:50:29.535686781 +0100
54564 @@ -3,7 +3,8 @@
54565
54566 /* { dg-do assemble } */
54567 /* { dg-require-effective-target arm_neon_ok } */
54568 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54569 +/* { dg-options "-save-temps -O0" } */
54570 +/* { dg-add-options arm_neon } */
54571
54572 #include "arm_neon.h"
54573
54574 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanes16.c
54575 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanes16.c 2007-07-25 14:28:31.000000000 +0200
54576 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanes16.c 2010-01-25 09:50:29.535686781 +0100
54577 @@ -3,7 +3,8 @@
54578
54579 /* { dg-do assemble } */
54580 /* { dg-require-effective-target arm_neon_ok } */
54581 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54582 +/* { dg-options "-save-temps -O0" } */
54583 +/* { dg-add-options arm_neon } */
54584
54585 #include "arm_neon.h"
54586
54587 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanes32.c
54588 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanes32.c 2007-07-25 14:28:31.000000000 +0200
54589 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Q_lanes32.c 2010-01-25 09:50:29.535686781 +0100
54590 @@ -3,7 +3,8 @@
54591
54592 /* { dg-do assemble } */
54593 /* { dg-require-effective-target arm_neon_ok } */
54594 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54595 +/* { dg-options "-save-temps -O0" } */
54596 +/* { dg-add-options arm_neon } */
54597
54598 #include "arm_neon.h"
54599
54600 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Q_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vst2Q_laneu16.c
54601 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Q_laneu16.c 2007-07-25 14:28:31.000000000 +0200
54602 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Q_laneu16.c 2010-01-25 09:50:29.535686781 +0100
54603 @@ -3,7 +3,8 @@
54604
54605 /* { dg-do assemble } */
54606 /* { dg-require-effective-target arm_neon_ok } */
54607 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54608 +/* { dg-options "-save-temps -O0" } */
54609 +/* { dg-add-options arm_neon } */
54610
54611 #include "arm_neon.h"
54612
54613 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Q_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vst2Q_laneu32.c
54614 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Q_laneu32.c 2007-07-25 14:28:31.000000000 +0200
54615 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Q_laneu32.c 2010-01-25 09:50:29.535686781 +0100
54616 @@ -3,7 +3,8 @@
54617
54618 /* { dg-do assemble } */
54619 /* { dg-require-effective-target arm_neon_ok } */
54620 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54621 +/* { dg-options "-save-temps -O0" } */
54622 +/* { dg-add-options arm_neon } */
54623
54624 #include "arm_neon.h"
54625
54626 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qp16.c
54627 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qp16.c 2007-07-25 14:28:31.000000000 +0200
54628 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qp16.c 2010-01-25 09:50:29.535686781 +0100
54629 @@ -3,7 +3,8 @@
54630
54631 /* { dg-do assemble } */
54632 /* { dg-require-effective-target arm_neon_ok } */
54633 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54634 +/* { dg-options "-save-temps -O0" } */
54635 +/* { dg-add-options arm_neon } */
54636
54637 #include "arm_neon.h"
54638
54639 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qp8.c
54640 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qp8.c 2007-07-25 14:28:31.000000000 +0200
54641 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qp8.c 2010-01-25 09:50:29.535686781 +0100
54642 @@ -3,7 +3,8 @@
54643
54644 /* { dg-do assemble } */
54645 /* { dg-require-effective-target arm_neon_ok } */
54646 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54647 +/* { dg-options "-save-temps -O0" } */
54648 +/* { dg-add-options arm_neon } */
54649
54650 #include "arm_neon.h"
54651
54652 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qs16.c
54653 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qs16.c 2007-07-25 14:28:31.000000000 +0200
54654 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qs16.c 2010-01-25 09:50:29.535686781 +0100
54655 @@ -3,7 +3,8 @@
54656
54657 /* { dg-do assemble } */
54658 /* { dg-require-effective-target arm_neon_ok } */
54659 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54660 +/* { dg-options "-save-temps -O0" } */
54661 +/* { dg-add-options arm_neon } */
54662
54663 #include "arm_neon.h"
54664
54665 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qs32.c
54666 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qs32.c 2007-07-25 14:28:31.000000000 +0200
54667 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qs32.c 2010-01-25 09:50:29.535686781 +0100
54668 @@ -3,7 +3,8 @@
54669
54670 /* { dg-do assemble } */
54671 /* { dg-require-effective-target arm_neon_ok } */
54672 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54673 +/* { dg-options "-save-temps -O0" } */
54674 +/* { dg-add-options arm_neon } */
54675
54676 #include "arm_neon.h"
54677
54678 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qs8.c
54679 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qs8.c 2007-07-25 14:28:31.000000000 +0200
54680 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qs8.c 2010-01-25 09:50:29.535686781 +0100
54681 @@ -3,7 +3,8 @@
54682
54683 /* { dg-do assemble } */
54684 /* { dg-require-effective-target arm_neon_ok } */
54685 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54686 +/* { dg-options "-save-temps -O0" } */
54687 +/* { dg-add-options arm_neon } */
54688
54689 #include "arm_neon.h"
54690
54691 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qu16.c
54692 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qu16.c 2007-07-25 14:28:31.000000000 +0200
54693 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qu16.c 2010-01-25 09:50:29.535686781 +0100
54694 @@ -3,7 +3,8 @@
54695
54696 /* { dg-do assemble } */
54697 /* { dg-require-effective-target arm_neon_ok } */
54698 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54699 +/* { dg-options "-save-temps -O0" } */
54700 +/* { dg-add-options arm_neon } */
54701
54702 #include "arm_neon.h"
54703
54704 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qu32.c
54705 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qu32.c 2007-07-25 14:28:31.000000000 +0200
54706 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qu32.c 2010-01-25 09:50:29.535686781 +0100
54707 @@ -3,7 +3,8 @@
54708
54709 /* { dg-do assemble } */
54710 /* { dg-require-effective-target arm_neon_ok } */
54711 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54712 +/* { dg-options "-save-temps -O0" } */
54713 +/* { dg-add-options arm_neon } */
54714
54715 #include "arm_neon.h"
54716
54717 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vst2Qu8.c
54718 --- a/gcc/testsuite/gcc.target/arm/neon/vst2Qu8.c 2007-07-25 14:28:31.000000000 +0200
54719 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2Qu8.c 2010-01-25 09:50:29.535686781 +0100
54720 @@ -3,7 +3,8 @@
54721
54722 /* { dg-do assemble } */
54723 /* { dg-require-effective-target arm_neon_ok } */
54724 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54725 +/* { dg-options "-save-temps -O0" } */
54726 +/* { dg-add-options arm_neon } */
54727
54728 #include "arm_neon.h"
54729
54730 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2s16.c b/gcc/testsuite/gcc.target/arm/neon/vst2s16.c
54731 --- a/gcc/testsuite/gcc.target/arm/neon/vst2s16.c 2007-07-25 14:28:31.000000000 +0200
54732 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2s16.c 2010-01-25 09:50:29.535686781 +0100
54733 @@ -3,7 +3,8 @@
54734
54735 /* { dg-do assemble } */
54736 /* { dg-require-effective-target arm_neon_ok } */
54737 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54738 +/* { dg-options "-save-temps -O0" } */
54739 +/* { dg-add-options arm_neon } */
54740
54741 #include "arm_neon.h"
54742
54743 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2s32.c b/gcc/testsuite/gcc.target/arm/neon/vst2s32.c
54744 --- a/gcc/testsuite/gcc.target/arm/neon/vst2s32.c 2007-07-25 14:28:31.000000000 +0200
54745 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2s32.c 2010-01-25 09:50:29.535686781 +0100
54746 @@ -3,7 +3,8 @@
54747
54748 /* { dg-do assemble } */
54749 /* { dg-require-effective-target arm_neon_ok } */
54750 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54751 +/* { dg-options "-save-temps -O0" } */
54752 +/* { dg-add-options arm_neon } */
54753
54754 #include "arm_neon.h"
54755
54756 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2s64.c b/gcc/testsuite/gcc.target/arm/neon/vst2s64.c
54757 --- a/gcc/testsuite/gcc.target/arm/neon/vst2s64.c 2007-07-25 14:28:31.000000000 +0200
54758 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2s64.c 2010-01-25 09:50:29.535686781 +0100
54759 @@ -3,7 +3,8 @@
54760
54761 /* { dg-do assemble } */
54762 /* { dg-require-effective-target arm_neon_ok } */
54763 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54764 +/* { dg-options "-save-temps -O0" } */
54765 +/* { dg-add-options arm_neon } */
54766
54767 #include "arm_neon.h"
54768
54769 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2s8.c b/gcc/testsuite/gcc.target/arm/neon/vst2s8.c
54770 --- a/gcc/testsuite/gcc.target/arm/neon/vst2s8.c 2007-07-25 14:28:31.000000000 +0200
54771 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2s8.c 2010-01-25 09:50:29.535686781 +0100
54772 @@ -3,7 +3,8 @@
54773
54774 /* { dg-do assemble } */
54775 /* { dg-require-effective-target arm_neon_ok } */
54776 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54777 +/* { dg-options "-save-temps -O0" } */
54778 +/* { dg-add-options arm_neon } */
54779
54780 #include "arm_neon.h"
54781
54782 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2u16.c b/gcc/testsuite/gcc.target/arm/neon/vst2u16.c
54783 --- a/gcc/testsuite/gcc.target/arm/neon/vst2u16.c 2007-07-25 14:28:31.000000000 +0200
54784 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2u16.c 2010-01-25 09:50:29.535686781 +0100
54785 @@ -3,7 +3,8 @@
54786
54787 /* { dg-do assemble } */
54788 /* { dg-require-effective-target arm_neon_ok } */
54789 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54790 +/* { dg-options "-save-temps -O0" } */
54791 +/* { dg-add-options arm_neon } */
54792
54793 #include "arm_neon.h"
54794
54795 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2u32.c b/gcc/testsuite/gcc.target/arm/neon/vst2u32.c
54796 --- a/gcc/testsuite/gcc.target/arm/neon/vst2u32.c 2007-07-25 14:28:31.000000000 +0200
54797 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2u32.c 2010-01-25 09:50:29.535686781 +0100
54798 @@ -3,7 +3,8 @@
54799
54800 /* { dg-do assemble } */
54801 /* { dg-require-effective-target arm_neon_ok } */
54802 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54803 +/* { dg-options "-save-temps -O0" } */
54804 +/* { dg-add-options arm_neon } */
54805
54806 #include "arm_neon.h"
54807
54808 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2u64.c b/gcc/testsuite/gcc.target/arm/neon/vst2u64.c
54809 --- a/gcc/testsuite/gcc.target/arm/neon/vst2u64.c 2007-07-25 14:28:31.000000000 +0200
54810 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2u64.c 2010-01-25 09:50:29.545686586 +0100
54811 @@ -3,7 +3,8 @@
54812
54813 /* { dg-do assemble } */
54814 /* { dg-require-effective-target arm_neon_ok } */
54815 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54816 +/* { dg-options "-save-temps -O0" } */
54817 +/* { dg-add-options arm_neon } */
54818
54819 #include "arm_neon.h"
54820
54821 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst2u8.c b/gcc/testsuite/gcc.target/arm/neon/vst2u8.c
54822 --- a/gcc/testsuite/gcc.target/arm/neon/vst2u8.c 2007-07-25 14:28:31.000000000 +0200
54823 +++ b/gcc/testsuite/gcc.target/arm/neon/vst2u8.c 2010-01-25 09:50:29.545686586 +0100
54824 @@ -3,7 +3,8 @@
54825
54826 /* { dg-do assemble } */
54827 /* { dg-require-effective-target arm_neon_ok } */
54828 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54829 +/* { dg-options "-save-temps -O0" } */
54830 +/* { dg-add-options arm_neon } */
54831
54832 #include "arm_neon.h"
54833
54834 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3f32.c b/gcc/testsuite/gcc.target/arm/neon/vst3f32.c
54835 --- a/gcc/testsuite/gcc.target/arm/neon/vst3f32.c 2007-07-25 14:28:31.000000000 +0200
54836 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3f32.c 2010-01-25 09:50:29.545686586 +0100
54837 @@ -3,7 +3,8 @@
54838
54839 /* { dg-do assemble } */
54840 /* { dg-require-effective-target arm_neon_ok } */
54841 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54842 +/* { dg-options "-save-temps -O0" } */
54843 +/* { dg-add-options arm_neon } */
54844
54845 #include "arm_neon.h"
54846
54847 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vst3_lanef32.c
54848 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_lanef32.c 2007-07-25 14:28:31.000000000 +0200
54849 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_lanef32.c 2010-01-25 09:50:29.545686586 +0100
54850 @@ -3,7 +3,8 @@
54851
54852 /* { dg-do assemble } */
54853 /* { dg-require-effective-target arm_neon_ok } */
54854 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54855 +/* { dg-options "-save-temps -O0" } */
54856 +/* { dg-add-options arm_neon } */
54857
54858 #include "arm_neon.h"
54859
54860 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vst3_lanep16.c
54861 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_lanep16.c 2007-07-25 14:28:31.000000000 +0200
54862 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_lanep16.c 2010-01-25 09:50:29.545686586 +0100
54863 @@ -3,7 +3,8 @@
54864
54865 /* { dg-do assemble } */
54866 /* { dg-require-effective-target arm_neon_ok } */
54867 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54868 +/* { dg-options "-save-temps -O0" } */
54869 +/* { dg-add-options arm_neon } */
54870
54871 #include "arm_neon.h"
54872
54873 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vst3_lanep8.c
54874 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_lanep8.c 2007-07-25 14:28:31.000000000 +0200
54875 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_lanep8.c 2010-01-25 09:50:29.545686586 +0100
54876 @@ -3,7 +3,8 @@
54877
54878 /* { dg-do assemble } */
54879 /* { dg-require-effective-target arm_neon_ok } */
54880 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54881 +/* { dg-options "-save-temps -O0" } */
54882 +/* { dg-add-options arm_neon } */
54883
54884 #include "arm_neon.h"
54885
54886 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vst3_lanes16.c
54887 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_lanes16.c 2007-07-25 14:28:31.000000000 +0200
54888 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_lanes16.c 2010-01-25 09:50:29.545686586 +0100
54889 @@ -3,7 +3,8 @@
54890
54891 /* { dg-do assemble } */
54892 /* { dg-require-effective-target arm_neon_ok } */
54893 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54894 +/* { dg-options "-save-temps -O0" } */
54895 +/* { dg-add-options arm_neon } */
54896
54897 #include "arm_neon.h"
54898
54899 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vst3_lanes32.c
54900 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_lanes32.c 2007-07-25 14:28:31.000000000 +0200
54901 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_lanes32.c 2010-01-25 09:50:29.545686586 +0100
54902 @@ -3,7 +3,8 @@
54903
54904 /* { dg-do assemble } */
54905 /* { dg-require-effective-target arm_neon_ok } */
54906 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54907 +/* { dg-options "-save-temps -O0" } */
54908 +/* { dg-add-options arm_neon } */
54909
54910 #include "arm_neon.h"
54911
54912 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vst3_lanes8.c
54913 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_lanes8.c 2007-07-25 14:28:31.000000000 +0200
54914 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_lanes8.c 2010-01-25 09:50:29.545686586 +0100
54915 @@ -3,7 +3,8 @@
54916
54917 /* { dg-do assemble } */
54918 /* { dg-require-effective-target arm_neon_ok } */
54919 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54920 +/* { dg-options "-save-temps -O0" } */
54921 +/* { dg-add-options arm_neon } */
54922
54923 #include "arm_neon.h"
54924
54925 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vst3_laneu16.c
54926 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_laneu16.c 2007-07-25 14:28:31.000000000 +0200
54927 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_laneu16.c 2010-01-25 09:50:29.545686586 +0100
54928 @@ -3,7 +3,8 @@
54929
54930 /* { dg-do assemble } */
54931 /* { dg-require-effective-target arm_neon_ok } */
54932 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54933 +/* { dg-options "-save-temps -O0" } */
54934 +/* { dg-add-options arm_neon } */
54935
54936 #include "arm_neon.h"
54937
54938 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vst3_laneu32.c
54939 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_laneu32.c 2007-07-25 14:28:31.000000000 +0200
54940 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_laneu32.c 2010-01-25 09:50:29.545686586 +0100
54941 @@ -3,7 +3,8 @@
54942
54943 /* { dg-do assemble } */
54944 /* { dg-require-effective-target arm_neon_ok } */
54945 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54946 +/* { dg-options "-save-temps -O0" } */
54947 +/* { dg-add-options arm_neon } */
54948
54949 #include "arm_neon.h"
54950
54951 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vst3_laneu8.c
54952 --- a/gcc/testsuite/gcc.target/arm/neon/vst3_laneu8.c 2007-07-25 14:28:31.000000000 +0200
54953 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3_laneu8.c 2010-01-25 09:50:29.545686586 +0100
54954 @@ -3,7 +3,8 @@
54955
54956 /* { dg-do assemble } */
54957 /* { dg-require-effective-target arm_neon_ok } */
54958 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54959 +/* { dg-options "-save-temps -O0" } */
54960 +/* { dg-add-options arm_neon } */
54961
54962 #include "arm_neon.h"
54963
54964 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3p16.c b/gcc/testsuite/gcc.target/arm/neon/vst3p16.c
54965 --- a/gcc/testsuite/gcc.target/arm/neon/vst3p16.c 2007-07-25 14:28:31.000000000 +0200
54966 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3p16.c 2010-01-25 09:50:29.545686586 +0100
54967 @@ -3,7 +3,8 @@
54968
54969 /* { dg-do assemble } */
54970 /* { dg-require-effective-target arm_neon_ok } */
54971 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54972 +/* { dg-options "-save-temps -O0" } */
54973 +/* { dg-add-options arm_neon } */
54974
54975 #include "arm_neon.h"
54976
54977 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3p8.c b/gcc/testsuite/gcc.target/arm/neon/vst3p8.c
54978 --- a/gcc/testsuite/gcc.target/arm/neon/vst3p8.c 2007-07-25 14:28:31.000000000 +0200
54979 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3p8.c 2010-01-25 09:50:29.545686586 +0100
54980 @@ -3,7 +3,8 @@
54981
54982 /* { dg-do assemble } */
54983 /* { dg-require-effective-target arm_neon_ok } */
54984 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54985 +/* { dg-options "-save-temps -O0" } */
54986 +/* { dg-add-options arm_neon } */
54987
54988 #include "arm_neon.h"
54989
54990 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qf32.c
54991 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qf32.c 2007-07-25 14:28:31.000000000 +0200
54992 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qf32.c 2010-01-25 09:50:29.545686586 +0100
54993 @@ -3,7 +3,8 @@
54994
54995 /* { dg-do assemble } */
54996 /* { dg-require-effective-target arm_neon_ok } */
54997 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
54998 +/* { dg-options "-save-temps -O0" } */
54999 +/* { dg-add-options arm_neon } */
55000
55001 #include "arm_neon.h"
55002
55003 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanef32.c
55004 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanef32.c 2007-07-25 14:28:31.000000000 +0200
55005 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanef32.c 2010-01-25 09:50:29.545686586 +0100
55006 @@ -3,7 +3,8 @@
55007
55008 /* { dg-do assemble } */
55009 /* { dg-require-effective-target arm_neon_ok } */
55010 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55011 +/* { dg-options "-save-temps -O0" } */
55012 +/* { dg-add-options arm_neon } */
55013
55014 #include "arm_neon.h"
55015
55016 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanep16.c
55017 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanep16.c 2007-07-25 14:28:31.000000000 +0200
55018 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanep16.c 2010-01-25 09:50:29.545686586 +0100
55019 @@ -3,7 +3,8 @@
55020
55021 /* { dg-do assemble } */
55022 /* { dg-require-effective-target arm_neon_ok } */
55023 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55024 +/* { dg-options "-save-temps -O0" } */
55025 +/* { dg-add-options arm_neon } */
55026
55027 #include "arm_neon.h"
55028
55029 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanes16.c
55030 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanes16.c 2007-07-25 14:28:31.000000000 +0200
55031 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanes16.c 2010-01-25 09:50:29.545686586 +0100
55032 @@ -3,7 +3,8 @@
55033
55034 /* { dg-do assemble } */
55035 /* { dg-require-effective-target arm_neon_ok } */
55036 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55037 +/* { dg-options "-save-temps -O0" } */
55038 +/* { dg-add-options arm_neon } */
55039
55040 #include "arm_neon.h"
55041
55042 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanes32.c
55043 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanes32.c 2007-07-25 14:28:31.000000000 +0200
55044 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Q_lanes32.c 2010-01-25 09:50:29.545686586 +0100
55045 @@ -3,7 +3,8 @@
55046
55047 /* { dg-do assemble } */
55048 /* { dg-require-effective-target arm_neon_ok } */
55049 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55050 +/* { dg-options "-save-temps -O0" } */
55051 +/* { dg-add-options arm_neon } */
55052
55053 #include "arm_neon.h"
55054
55055 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Q_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vst3Q_laneu16.c
55056 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Q_laneu16.c 2007-07-25 14:28:31.000000000 +0200
55057 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Q_laneu16.c 2010-01-25 09:50:29.545686586 +0100
55058 @@ -3,7 +3,8 @@
55059
55060 /* { dg-do assemble } */
55061 /* { dg-require-effective-target arm_neon_ok } */
55062 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55063 +/* { dg-options "-save-temps -O0" } */
55064 +/* { dg-add-options arm_neon } */
55065
55066 #include "arm_neon.h"
55067
55068 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Q_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vst3Q_laneu32.c
55069 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Q_laneu32.c 2007-07-25 14:28:31.000000000 +0200
55070 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Q_laneu32.c 2010-01-25 09:50:29.545686586 +0100
55071 @@ -3,7 +3,8 @@
55072
55073 /* { dg-do assemble } */
55074 /* { dg-require-effective-target arm_neon_ok } */
55075 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55076 +/* { dg-options "-save-temps -O0" } */
55077 +/* { dg-add-options arm_neon } */
55078
55079 #include "arm_neon.h"
55080
55081 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qp16.c
55082 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qp16.c 2007-07-25 14:28:31.000000000 +0200
55083 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qp16.c 2010-01-25 09:50:29.545686586 +0100
55084 @@ -3,7 +3,8 @@
55085
55086 /* { dg-do assemble } */
55087 /* { dg-require-effective-target arm_neon_ok } */
55088 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55089 +/* { dg-options "-save-temps -O0" } */
55090 +/* { dg-add-options arm_neon } */
55091
55092 #include "arm_neon.h"
55093
55094 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qp8.c
55095 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qp8.c 2007-07-25 14:28:31.000000000 +0200
55096 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qp8.c 2010-01-25 09:50:29.545686586 +0100
55097 @@ -3,7 +3,8 @@
55098
55099 /* { dg-do assemble } */
55100 /* { dg-require-effective-target arm_neon_ok } */
55101 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55102 +/* { dg-options "-save-temps -O0" } */
55103 +/* { dg-add-options arm_neon } */
55104
55105 #include "arm_neon.h"
55106
55107 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qs16.c
55108 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qs16.c 2007-07-25 14:28:31.000000000 +0200
55109 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qs16.c 2010-01-25 09:50:29.545686586 +0100
55110 @@ -3,7 +3,8 @@
55111
55112 /* { dg-do assemble } */
55113 /* { dg-require-effective-target arm_neon_ok } */
55114 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55115 +/* { dg-options "-save-temps -O0" } */
55116 +/* { dg-add-options arm_neon } */
55117
55118 #include "arm_neon.h"
55119
55120 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qs32.c
55121 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qs32.c 2007-07-25 14:28:31.000000000 +0200
55122 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qs32.c 2010-01-25 09:50:29.545686586 +0100
55123 @@ -3,7 +3,8 @@
55124
55125 /* { dg-do assemble } */
55126 /* { dg-require-effective-target arm_neon_ok } */
55127 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55128 +/* { dg-options "-save-temps -O0" } */
55129 +/* { dg-add-options arm_neon } */
55130
55131 #include "arm_neon.h"
55132
55133 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qs8.c
55134 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qs8.c 2007-07-25 14:28:31.000000000 +0200
55135 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qs8.c 2010-01-25 09:50:29.545686586 +0100
55136 @@ -3,7 +3,8 @@
55137
55138 /* { dg-do assemble } */
55139 /* { dg-require-effective-target arm_neon_ok } */
55140 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55141 +/* { dg-options "-save-temps -O0" } */
55142 +/* { dg-add-options arm_neon } */
55143
55144 #include "arm_neon.h"
55145
55146 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qu16.c
55147 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qu16.c 2007-07-25 14:28:31.000000000 +0200
55148 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qu16.c 2010-01-25 09:50:29.545686586 +0100
55149 @@ -3,7 +3,8 @@
55150
55151 /* { dg-do assemble } */
55152 /* { dg-require-effective-target arm_neon_ok } */
55153 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55154 +/* { dg-options "-save-temps -O0" } */
55155 +/* { dg-add-options arm_neon } */
55156
55157 #include "arm_neon.h"
55158
55159 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qu32.c
55160 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qu32.c 2007-07-25 14:28:31.000000000 +0200
55161 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qu32.c 2010-01-25 09:50:29.545686586 +0100
55162 @@ -3,7 +3,8 @@
55163
55164 /* { dg-do assemble } */
55165 /* { dg-require-effective-target arm_neon_ok } */
55166 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55167 +/* { dg-options "-save-temps -O0" } */
55168 +/* { dg-add-options arm_neon } */
55169
55170 #include "arm_neon.h"
55171
55172 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vst3Qu8.c
55173 --- a/gcc/testsuite/gcc.target/arm/neon/vst3Qu8.c 2007-07-25 14:28:31.000000000 +0200
55174 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3Qu8.c 2010-01-25 09:50:29.545686586 +0100
55175 @@ -3,7 +3,8 @@
55176
55177 /* { dg-do assemble } */
55178 /* { dg-require-effective-target arm_neon_ok } */
55179 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55180 +/* { dg-options "-save-temps -O0" } */
55181 +/* { dg-add-options arm_neon } */
55182
55183 #include "arm_neon.h"
55184
55185 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3s16.c b/gcc/testsuite/gcc.target/arm/neon/vst3s16.c
55186 --- a/gcc/testsuite/gcc.target/arm/neon/vst3s16.c 2007-07-25 14:28:31.000000000 +0200
55187 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3s16.c 2010-01-25 09:50:29.545686586 +0100
55188 @@ -3,7 +3,8 @@
55189
55190 /* { dg-do assemble } */
55191 /* { dg-require-effective-target arm_neon_ok } */
55192 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55193 +/* { dg-options "-save-temps -O0" } */
55194 +/* { dg-add-options arm_neon } */
55195
55196 #include "arm_neon.h"
55197
55198 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3s32.c b/gcc/testsuite/gcc.target/arm/neon/vst3s32.c
55199 --- a/gcc/testsuite/gcc.target/arm/neon/vst3s32.c 2007-07-25 14:28:31.000000000 +0200
55200 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3s32.c 2010-01-25 09:50:29.545686586 +0100
55201 @@ -3,7 +3,8 @@
55202
55203 /* { dg-do assemble } */
55204 /* { dg-require-effective-target arm_neon_ok } */
55205 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55206 +/* { dg-options "-save-temps -O0" } */
55207 +/* { dg-add-options arm_neon } */
55208
55209 #include "arm_neon.h"
55210
55211 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3s64.c b/gcc/testsuite/gcc.target/arm/neon/vst3s64.c
55212 --- a/gcc/testsuite/gcc.target/arm/neon/vst3s64.c 2007-07-25 14:28:31.000000000 +0200
55213 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3s64.c 2010-01-25 09:50:29.545686586 +0100
55214 @@ -3,7 +3,8 @@
55215
55216 /* { dg-do assemble } */
55217 /* { dg-require-effective-target arm_neon_ok } */
55218 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55219 +/* { dg-options "-save-temps -O0" } */
55220 +/* { dg-add-options arm_neon } */
55221
55222 #include "arm_neon.h"
55223
55224 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3s8.c b/gcc/testsuite/gcc.target/arm/neon/vst3s8.c
55225 --- a/gcc/testsuite/gcc.target/arm/neon/vst3s8.c 2007-07-25 14:28:31.000000000 +0200
55226 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3s8.c 2010-01-25 09:50:29.545686586 +0100
55227 @@ -3,7 +3,8 @@
55228
55229 /* { dg-do assemble } */
55230 /* { dg-require-effective-target arm_neon_ok } */
55231 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55232 +/* { dg-options "-save-temps -O0" } */
55233 +/* { dg-add-options arm_neon } */
55234
55235 #include "arm_neon.h"
55236
55237 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3u16.c b/gcc/testsuite/gcc.target/arm/neon/vst3u16.c
55238 --- a/gcc/testsuite/gcc.target/arm/neon/vst3u16.c 2007-07-25 14:28:31.000000000 +0200
55239 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3u16.c 2010-01-25 09:50:29.545686586 +0100
55240 @@ -3,7 +3,8 @@
55241
55242 /* { dg-do assemble } */
55243 /* { dg-require-effective-target arm_neon_ok } */
55244 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55245 +/* { dg-options "-save-temps -O0" } */
55246 +/* { dg-add-options arm_neon } */
55247
55248 #include "arm_neon.h"
55249
55250 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3u32.c b/gcc/testsuite/gcc.target/arm/neon/vst3u32.c
55251 --- a/gcc/testsuite/gcc.target/arm/neon/vst3u32.c 2007-07-25 14:28:31.000000000 +0200
55252 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3u32.c 2010-01-25 09:50:29.545686586 +0100
55253 @@ -3,7 +3,8 @@
55254
55255 /* { dg-do assemble } */
55256 /* { dg-require-effective-target arm_neon_ok } */
55257 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55258 +/* { dg-options "-save-temps -O0" } */
55259 +/* { dg-add-options arm_neon } */
55260
55261 #include "arm_neon.h"
55262
55263 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3u64.c b/gcc/testsuite/gcc.target/arm/neon/vst3u64.c
55264 --- a/gcc/testsuite/gcc.target/arm/neon/vst3u64.c 2007-07-25 14:28:31.000000000 +0200
55265 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3u64.c 2010-01-25 09:50:29.545686586 +0100
55266 @@ -3,7 +3,8 @@
55267
55268 /* { dg-do assemble } */
55269 /* { dg-require-effective-target arm_neon_ok } */
55270 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55271 +/* { dg-options "-save-temps -O0" } */
55272 +/* { dg-add-options arm_neon } */
55273
55274 #include "arm_neon.h"
55275
55276 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst3u8.c b/gcc/testsuite/gcc.target/arm/neon/vst3u8.c
55277 --- a/gcc/testsuite/gcc.target/arm/neon/vst3u8.c 2007-07-25 14:28:31.000000000 +0200
55278 +++ b/gcc/testsuite/gcc.target/arm/neon/vst3u8.c 2010-01-25 09:50:29.545686586 +0100
55279 @@ -3,7 +3,8 @@
55280
55281 /* { dg-do assemble } */
55282 /* { dg-require-effective-target arm_neon_ok } */
55283 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55284 +/* { dg-options "-save-temps -O0" } */
55285 +/* { dg-add-options arm_neon } */
55286
55287 #include "arm_neon.h"
55288
55289 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4f32.c b/gcc/testsuite/gcc.target/arm/neon/vst4f32.c
55290 --- a/gcc/testsuite/gcc.target/arm/neon/vst4f32.c 2007-07-25 14:28:31.000000000 +0200
55291 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4f32.c 2010-01-25 09:50:29.545686586 +0100
55292 @@ -3,7 +3,8 @@
55293
55294 /* { dg-do assemble } */
55295 /* { dg-require-effective-target arm_neon_ok } */
55296 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55297 +/* { dg-options "-save-temps -O0" } */
55298 +/* { dg-add-options arm_neon } */
55299
55300 #include "arm_neon.h"
55301
55302 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vst4_lanef32.c
55303 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_lanef32.c 2007-07-25 14:28:31.000000000 +0200
55304 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_lanef32.c 2010-01-25 09:50:29.545686586 +0100
55305 @@ -3,7 +3,8 @@
55306
55307 /* { dg-do assemble } */
55308 /* { dg-require-effective-target arm_neon_ok } */
55309 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55310 +/* { dg-options "-save-temps -O0" } */
55311 +/* { dg-add-options arm_neon } */
55312
55313 #include "arm_neon.h"
55314
55315 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vst4_lanep16.c
55316 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_lanep16.c 2007-07-25 14:28:31.000000000 +0200
55317 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_lanep16.c 2010-01-25 09:50:29.545686586 +0100
55318 @@ -3,7 +3,8 @@
55319
55320 /* { dg-do assemble } */
55321 /* { dg-require-effective-target arm_neon_ok } */
55322 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55323 +/* { dg-options "-save-temps -O0" } */
55324 +/* { dg-add-options arm_neon } */
55325
55326 #include "arm_neon.h"
55327
55328 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_lanep8.c b/gcc/testsuite/gcc.target/arm/neon/vst4_lanep8.c
55329 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_lanep8.c 2007-07-25 14:28:31.000000000 +0200
55330 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_lanep8.c 2010-01-25 09:50:29.545686586 +0100
55331 @@ -3,7 +3,8 @@
55332
55333 /* { dg-do assemble } */
55334 /* { dg-require-effective-target arm_neon_ok } */
55335 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55336 +/* { dg-options "-save-temps -O0" } */
55337 +/* { dg-add-options arm_neon } */
55338
55339 #include "arm_neon.h"
55340
55341 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vst4_lanes16.c
55342 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_lanes16.c 2007-07-25 14:28:31.000000000 +0200
55343 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_lanes16.c 2010-01-25 09:50:29.545686586 +0100
55344 @@ -3,7 +3,8 @@
55345
55346 /* { dg-do assemble } */
55347 /* { dg-require-effective-target arm_neon_ok } */
55348 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55349 +/* { dg-options "-save-temps -O0" } */
55350 +/* { dg-add-options arm_neon } */
55351
55352 #include "arm_neon.h"
55353
55354 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vst4_lanes32.c
55355 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_lanes32.c 2007-07-25 14:28:31.000000000 +0200
55356 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_lanes32.c 2010-01-25 09:50:29.545686586 +0100
55357 @@ -3,7 +3,8 @@
55358
55359 /* { dg-do assemble } */
55360 /* { dg-require-effective-target arm_neon_ok } */
55361 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55362 +/* { dg-options "-save-temps -O0" } */
55363 +/* { dg-add-options arm_neon } */
55364
55365 #include "arm_neon.h"
55366
55367 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_lanes8.c b/gcc/testsuite/gcc.target/arm/neon/vst4_lanes8.c
55368 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_lanes8.c 2007-07-25 14:28:31.000000000 +0200
55369 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_lanes8.c 2010-01-25 09:50:29.545686586 +0100
55370 @@ -3,7 +3,8 @@
55371
55372 /* { dg-do assemble } */
55373 /* { dg-require-effective-target arm_neon_ok } */
55374 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55375 +/* { dg-options "-save-temps -O0" } */
55376 +/* { dg-add-options arm_neon } */
55377
55378 #include "arm_neon.h"
55379
55380 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vst4_laneu16.c
55381 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_laneu16.c 2007-07-25 14:28:31.000000000 +0200
55382 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_laneu16.c 2010-01-25 09:50:29.545686586 +0100
55383 @@ -3,7 +3,8 @@
55384
55385 /* { dg-do assemble } */
55386 /* { dg-require-effective-target arm_neon_ok } */
55387 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55388 +/* { dg-options "-save-temps -O0" } */
55389 +/* { dg-add-options arm_neon } */
55390
55391 #include "arm_neon.h"
55392
55393 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vst4_laneu32.c
55394 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_laneu32.c 2007-07-25 14:28:31.000000000 +0200
55395 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_laneu32.c 2010-01-25 09:50:29.545686586 +0100
55396 @@ -3,7 +3,8 @@
55397
55398 /* { dg-do assemble } */
55399 /* { dg-require-effective-target arm_neon_ok } */
55400 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55401 +/* { dg-options "-save-temps -O0" } */
55402 +/* { dg-add-options arm_neon } */
55403
55404 #include "arm_neon.h"
55405
55406 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4_laneu8.c b/gcc/testsuite/gcc.target/arm/neon/vst4_laneu8.c
55407 --- a/gcc/testsuite/gcc.target/arm/neon/vst4_laneu8.c 2007-07-25 14:28:31.000000000 +0200
55408 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4_laneu8.c 2010-01-25 09:50:29.545686586 +0100
55409 @@ -3,7 +3,8 @@
55410
55411 /* { dg-do assemble } */
55412 /* { dg-require-effective-target arm_neon_ok } */
55413 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55414 +/* { dg-options "-save-temps -O0" } */
55415 +/* { dg-add-options arm_neon } */
55416
55417 #include "arm_neon.h"
55418
55419 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4p16.c b/gcc/testsuite/gcc.target/arm/neon/vst4p16.c
55420 --- a/gcc/testsuite/gcc.target/arm/neon/vst4p16.c 2007-07-25 14:28:31.000000000 +0200
55421 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4p16.c 2010-01-25 09:50:29.545686586 +0100
55422 @@ -3,7 +3,8 @@
55423
55424 /* { dg-do assemble } */
55425 /* { dg-require-effective-target arm_neon_ok } */
55426 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55427 +/* { dg-options "-save-temps -O0" } */
55428 +/* { dg-add-options arm_neon } */
55429
55430 #include "arm_neon.h"
55431
55432 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4p8.c b/gcc/testsuite/gcc.target/arm/neon/vst4p8.c
55433 --- a/gcc/testsuite/gcc.target/arm/neon/vst4p8.c 2007-07-25 14:28:31.000000000 +0200
55434 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4p8.c 2010-01-25 09:50:29.545686586 +0100
55435 @@ -3,7 +3,8 @@
55436
55437 /* { dg-do assemble } */
55438 /* { dg-require-effective-target arm_neon_ok } */
55439 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55440 +/* { dg-options "-save-temps -O0" } */
55441 +/* { dg-add-options arm_neon } */
55442
55443 #include "arm_neon.h"
55444
55445 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qf32.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qf32.c
55446 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qf32.c 2007-07-25 14:28:31.000000000 +0200
55447 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qf32.c 2010-01-25 09:50:29.545686586 +0100
55448 @@ -3,7 +3,8 @@
55449
55450 /* { dg-do assemble } */
55451 /* { dg-require-effective-target arm_neon_ok } */
55452 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55453 +/* { dg-options "-save-temps -O0" } */
55454 +/* { dg-add-options arm_neon } */
55455
55456 #include "arm_neon.h"
55457
55458 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanef32.c b/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanef32.c
55459 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanef32.c 2007-07-25 14:28:31.000000000 +0200
55460 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanef32.c 2010-01-25 09:50:29.545686586 +0100
55461 @@ -3,7 +3,8 @@
55462
55463 /* { dg-do assemble } */
55464 /* { dg-require-effective-target arm_neon_ok } */
55465 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55466 +/* { dg-options "-save-temps -O0" } */
55467 +/* { dg-add-options arm_neon } */
55468
55469 #include "arm_neon.h"
55470
55471 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanep16.c b/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanep16.c
55472 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanep16.c 2007-07-25 14:28:31.000000000 +0200
55473 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanep16.c 2010-01-25 09:50:29.545686586 +0100
55474 @@ -3,7 +3,8 @@
55475
55476 /* { dg-do assemble } */
55477 /* { dg-require-effective-target arm_neon_ok } */
55478 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55479 +/* { dg-options "-save-temps -O0" } */
55480 +/* { dg-add-options arm_neon } */
55481
55482 #include "arm_neon.h"
55483
55484 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanes16.c b/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanes16.c
55485 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanes16.c 2007-07-25 14:28:31.000000000 +0200
55486 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanes16.c 2010-01-25 09:50:29.545686586 +0100
55487 @@ -3,7 +3,8 @@
55488
55489 /* { dg-do assemble } */
55490 /* { dg-require-effective-target arm_neon_ok } */
55491 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55492 +/* { dg-options "-save-temps -O0" } */
55493 +/* { dg-add-options arm_neon } */
55494
55495 #include "arm_neon.h"
55496
55497 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanes32.c b/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanes32.c
55498 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanes32.c 2007-07-25 14:28:31.000000000 +0200
55499 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Q_lanes32.c 2010-01-25 09:50:29.545686586 +0100
55500 @@ -3,7 +3,8 @@
55501
55502 /* { dg-do assemble } */
55503 /* { dg-require-effective-target arm_neon_ok } */
55504 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55505 +/* { dg-options "-save-temps -O0" } */
55506 +/* { dg-add-options arm_neon } */
55507
55508 #include "arm_neon.h"
55509
55510 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Q_laneu16.c b/gcc/testsuite/gcc.target/arm/neon/vst4Q_laneu16.c
55511 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Q_laneu16.c 2007-07-25 14:28:31.000000000 +0200
55512 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Q_laneu16.c 2010-01-25 09:50:29.545686586 +0100
55513 @@ -3,7 +3,8 @@
55514
55515 /* { dg-do assemble } */
55516 /* { dg-require-effective-target arm_neon_ok } */
55517 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55518 +/* { dg-options "-save-temps -O0" } */
55519 +/* { dg-add-options arm_neon } */
55520
55521 #include "arm_neon.h"
55522
55523 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Q_laneu32.c b/gcc/testsuite/gcc.target/arm/neon/vst4Q_laneu32.c
55524 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Q_laneu32.c 2007-07-25 14:28:31.000000000 +0200
55525 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Q_laneu32.c 2010-01-25 09:50:29.545686586 +0100
55526 @@ -3,7 +3,8 @@
55527
55528 /* { dg-do assemble } */
55529 /* { dg-require-effective-target arm_neon_ok } */
55530 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55531 +/* { dg-options "-save-temps -O0" } */
55532 +/* { dg-add-options arm_neon } */
55533
55534 #include "arm_neon.h"
55535
55536 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qp16.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qp16.c
55537 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qp16.c 2007-07-25 14:28:31.000000000 +0200
55538 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qp16.c 2010-01-25 09:50:29.545686586 +0100
55539 @@ -3,7 +3,8 @@
55540
55541 /* { dg-do assemble } */
55542 /* { dg-require-effective-target arm_neon_ok } */
55543 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55544 +/* { dg-options "-save-temps -O0" } */
55545 +/* { dg-add-options arm_neon } */
55546
55547 #include "arm_neon.h"
55548
55549 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qp8.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qp8.c
55550 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qp8.c 2007-07-25 14:28:31.000000000 +0200
55551 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qp8.c 2010-01-25 09:50:29.545686586 +0100
55552 @@ -3,7 +3,8 @@
55553
55554 /* { dg-do assemble } */
55555 /* { dg-require-effective-target arm_neon_ok } */
55556 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55557 +/* { dg-options "-save-temps -O0" } */
55558 +/* { dg-add-options arm_neon } */
55559
55560 #include "arm_neon.h"
55561
55562 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qs16.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qs16.c
55563 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qs16.c 2007-07-25 14:28:31.000000000 +0200
55564 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qs16.c 2010-01-25 09:50:29.545686586 +0100
55565 @@ -3,7 +3,8 @@
55566
55567 /* { dg-do assemble } */
55568 /* { dg-require-effective-target arm_neon_ok } */
55569 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55570 +/* { dg-options "-save-temps -O0" } */
55571 +/* { dg-add-options arm_neon } */
55572
55573 #include "arm_neon.h"
55574
55575 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qs32.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qs32.c
55576 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qs32.c 2007-07-25 14:28:31.000000000 +0200
55577 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qs32.c 2010-01-25 09:50:29.545686586 +0100
55578 @@ -3,7 +3,8 @@
55579
55580 /* { dg-do assemble } */
55581 /* { dg-require-effective-target arm_neon_ok } */
55582 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55583 +/* { dg-options "-save-temps -O0" } */
55584 +/* { dg-add-options arm_neon } */
55585
55586 #include "arm_neon.h"
55587
55588 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qs8.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qs8.c
55589 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qs8.c 2007-07-25 14:28:31.000000000 +0200
55590 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qs8.c 2010-01-25 09:50:29.545686586 +0100
55591 @@ -3,7 +3,8 @@
55592
55593 /* { dg-do assemble } */
55594 /* { dg-require-effective-target arm_neon_ok } */
55595 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55596 +/* { dg-options "-save-temps -O0" } */
55597 +/* { dg-add-options arm_neon } */
55598
55599 #include "arm_neon.h"
55600
55601 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qu16.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qu16.c
55602 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qu16.c 2007-07-25 14:28:31.000000000 +0200
55603 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qu16.c 2010-01-25 09:50:29.545686586 +0100
55604 @@ -3,7 +3,8 @@
55605
55606 /* { dg-do assemble } */
55607 /* { dg-require-effective-target arm_neon_ok } */
55608 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55609 +/* { dg-options "-save-temps -O0" } */
55610 +/* { dg-add-options arm_neon } */
55611
55612 #include "arm_neon.h"
55613
55614 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qu32.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qu32.c
55615 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qu32.c 2007-07-25 14:28:31.000000000 +0200
55616 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qu32.c 2010-01-25 09:50:29.545686586 +0100
55617 @@ -3,7 +3,8 @@
55618
55619 /* { dg-do assemble } */
55620 /* { dg-require-effective-target arm_neon_ok } */
55621 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55622 +/* { dg-options "-save-temps -O0" } */
55623 +/* { dg-add-options arm_neon } */
55624
55625 #include "arm_neon.h"
55626
55627 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4Qu8.c b/gcc/testsuite/gcc.target/arm/neon/vst4Qu8.c
55628 --- a/gcc/testsuite/gcc.target/arm/neon/vst4Qu8.c 2007-07-25 14:28:31.000000000 +0200
55629 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4Qu8.c 2010-01-25 09:50:29.545686586 +0100
55630 @@ -3,7 +3,8 @@
55631
55632 /* { dg-do assemble } */
55633 /* { dg-require-effective-target arm_neon_ok } */
55634 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55635 +/* { dg-options "-save-temps -O0" } */
55636 +/* { dg-add-options arm_neon } */
55637
55638 #include "arm_neon.h"
55639
55640 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4s16.c b/gcc/testsuite/gcc.target/arm/neon/vst4s16.c
55641 --- a/gcc/testsuite/gcc.target/arm/neon/vst4s16.c 2007-07-25 14:28:31.000000000 +0200
55642 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4s16.c 2010-01-25 09:50:29.545686586 +0100
55643 @@ -3,7 +3,8 @@
55644
55645 /* { dg-do assemble } */
55646 /* { dg-require-effective-target arm_neon_ok } */
55647 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55648 +/* { dg-options "-save-temps -O0" } */
55649 +/* { dg-add-options arm_neon } */
55650
55651 #include "arm_neon.h"
55652
55653 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4s32.c b/gcc/testsuite/gcc.target/arm/neon/vst4s32.c
55654 --- a/gcc/testsuite/gcc.target/arm/neon/vst4s32.c 2007-07-25 14:28:31.000000000 +0200
55655 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4s32.c 2010-01-25 09:50:29.545686586 +0100
55656 @@ -3,7 +3,8 @@
55657
55658 /* { dg-do assemble } */
55659 /* { dg-require-effective-target arm_neon_ok } */
55660 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55661 +/* { dg-options "-save-temps -O0" } */
55662 +/* { dg-add-options arm_neon } */
55663
55664 #include "arm_neon.h"
55665
55666 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4s64.c b/gcc/testsuite/gcc.target/arm/neon/vst4s64.c
55667 --- a/gcc/testsuite/gcc.target/arm/neon/vst4s64.c 2007-07-25 14:28:31.000000000 +0200
55668 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4s64.c 2010-01-25 09:50:29.545686586 +0100
55669 @@ -3,7 +3,8 @@
55670
55671 /* { dg-do assemble } */
55672 /* { dg-require-effective-target arm_neon_ok } */
55673 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55674 +/* { dg-options "-save-temps -O0" } */
55675 +/* { dg-add-options arm_neon } */
55676
55677 #include "arm_neon.h"
55678
55679 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4s8.c b/gcc/testsuite/gcc.target/arm/neon/vst4s8.c
55680 --- a/gcc/testsuite/gcc.target/arm/neon/vst4s8.c 2007-07-25 14:28:31.000000000 +0200
55681 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4s8.c 2010-01-25 09:50:29.545686586 +0100
55682 @@ -3,7 +3,8 @@
55683
55684 /* { dg-do assemble } */
55685 /* { dg-require-effective-target arm_neon_ok } */
55686 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55687 +/* { dg-options "-save-temps -O0" } */
55688 +/* { dg-add-options arm_neon } */
55689
55690 #include "arm_neon.h"
55691
55692 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4u16.c b/gcc/testsuite/gcc.target/arm/neon/vst4u16.c
55693 --- a/gcc/testsuite/gcc.target/arm/neon/vst4u16.c 2007-07-25 14:28:31.000000000 +0200
55694 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4u16.c 2010-01-25 09:50:29.545686586 +0100
55695 @@ -3,7 +3,8 @@
55696
55697 /* { dg-do assemble } */
55698 /* { dg-require-effective-target arm_neon_ok } */
55699 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55700 +/* { dg-options "-save-temps -O0" } */
55701 +/* { dg-add-options arm_neon } */
55702
55703 #include "arm_neon.h"
55704
55705 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4u32.c b/gcc/testsuite/gcc.target/arm/neon/vst4u32.c
55706 --- a/gcc/testsuite/gcc.target/arm/neon/vst4u32.c 2007-07-25 14:28:31.000000000 +0200
55707 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4u32.c 2010-01-25 09:50:29.545686586 +0100
55708 @@ -3,7 +3,8 @@
55709
55710 /* { dg-do assemble } */
55711 /* { dg-require-effective-target arm_neon_ok } */
55712 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55713 +/* { dg-options "-save-temps -O0" } */
55714 +/* { dg-add-options arm_neon } */
55715
55716 #include "arm_neon.h"
55717
55718 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4u64.c b/gcc/testsuite/gcc.target/arm/neon/vst4u64.c
55719 --- a/gcc/testsuite/gcc.target/arm/neon/vst4u64.c 2007-07-25 14:28:31.000000000 +0200
55720 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4u64.c 2010-01-25 09:50:29.545686586 +0100
55721 @@ -3,7 +3,8 @@
55722
55723 /* { dg-do assemble } */
55724 /* { dg-require-effective-target arm_neon_ok } */
55725 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55726 +/* { dg-options "-save-temps -O0" } */
55727 +/* { dg-add-options arm_neon } */
55728
55729 #include "arm_neon.h"
55730
55731 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vst4u8.c b/gcc/testsuite/gcc.target/arm/neon/vst4u8.c
55732 --- a/gcc/testsuite/gcc.target/arm/neon/vst4u8.c 2007-07-25 14:28:31.000000000 +0200
55733 +++ b/gcc/testsuite/gcc.target/arm/neon/vst4u8.c 2010-01-25 09:50:29.545686586 +0100
55734 @@ -3,7 +3,8 @@
55735
55736 /* { dg-do assemble } */
55737 /* { dg-require-effective-target arm_neon_ok } */
55738 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55739 +/* { dg-options "-save-temps -O0" } */
55740 +/* { dg-add-options arm_neon } */
55741
55742 #include "arm_neon.h"
55743
55744 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubf32.c b/gcc/testsuite/gcc.target/arm/neon/vsubf32.c
55745 --- a/gcc/testsuite/gcc.target/arm/neon/vsubf32.c 2007-07-25 14:28:31.000000000 +0200
55746 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubf32.c 2010-01-25 09:50:29.545686586 +0100
55747 @@ -3,7 +3,8 @@
55748
55749 /* { dg-do assemble } */
55750 /* { dg-require-effective-target arm_neon_ok } */
55751 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55752 +/* { dg-options "-save-temps -O0" } */
55753 +/* { dg-add-options arm_neon } */
55754
55755 #include "arm_neon.h"
55756
55757 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubhns16.c b/gcc/testsuite/gcc.target/arm/neon/vsubhns16.c
55758 --- a/gcc/testsuite/gcc.target/arm/neon/vsubhns16.c 2007-07-25 14:28:31.000000000 +0200
55759 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubhns16.c 2010-01-25 09:50:29.555686949 +0100
55760 @@ -3,7 +3,8 @@
55761
55762 /* { dg-do assemble } */
55763 /* { dg-require-effective-target arm_neon_ok } */
55764 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55765 +/* { dg-options "-save-temps -O0" } */
55766 +/* { dg-add-options arm_neon } */
55767
55768 #include "arm_neon.h"
55769
55770 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubhns32.c b/gcc/testsuite/gcc.target/arm/neon/vsubhns32.c
55771 --- a/gcc/testsuite/gcc.target/arm/neon/vsubhns32.c 2007-07-25 14:28:31.000000000 +0200
55772 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubhns32.c 2010-01-25 09:50:29.555686949 +0100
55773 @@ -3,7 +3,8 @@
55774
55775 /* { dg-do assemble } */
55776 /* { dg-require-effective-target arm_neon_ok } */
55777 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55778 +/* { dg-options "-save-temps -O0" } */
55779 +/* { dg-add-options arm_neon } */
55780
55781 #include "arm_neon.h"
55782
55783 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubhns64.c b/gcc/testsuite/gcc.target/arm/neon/vsubhns64.c
55784 --- a/gcc/testsuite/gcc.target/arm/neon/vsubhns64.c 2007-07-25 14:28:31.000000000 +0200
55785 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubhns64.c 2010-01-25 09:50:29.555686949 +0100
55786 @@ -3,7 +3,8 @@
55787
55788 /* { dg-do assemble } */
55789 /* { dg-require-effective-target arm_neon_ok } */
55790 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55791 +/* { dg-options "-save-temps -O0" } */
55792 +/* { dg-add-options arm_neon } */
55793
55794 #include "arm_neon.h"
55795
55796 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubhnu16.c b/gcc/testsuite/gcc.target/arm/neon/vsubhnu16.c
55797 --- a/gcc/testsuite/gcc.target/arm/neon/vsubhnu16.c 2007-07-25 14:28:31.000000000 +0200
55798 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubhnu16.c 2010-01-25 09:50:29.555686949 +0100
55799 @@ -3,7 +3,8 @@
55800
55801 /* { dg-do assemble } */
55802 /* { dg-require-effective-target arm_neon_ok } */
55803 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55804 +/* { dg-options "-save-temps -O0" } */
55805 +/* { dg-add-options arm_neon } */
55806
55807 #include "arm_neon.h"
55808
55809 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubhnu32.c b/gcc/testsuite/gcc.target/arm/neon/vsubhnu32.c
55810 --- a/gcc/testsuite/gcc.target/arm/neon/vsubhnu32.c 2007-07-25 14:28:31.000000000 +0200
55811 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubhnu32.c 2010-01-25 09:50:29.555686949 +0100
55812 @@ -3,7 +3,8 @@
55813
55814 /* { dg-do assemble } */
55815 /* { dg-require-effective-target arm_neon_ok } */
55816 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55817 +/* { dg-options "-save-temps -O0" } */
55818 +/* { dg-add-options arm_neon } */
55819
55820 #include "arm_neon.h"
55821
55822 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubhnu64.c b/gcc/testsuite/gcc.target/arm/neon/vsubhnu64.c
55823 --- a/gcc/testsuite/gcc.target/arm/neon/vsubhnu64.c 2007-07-25 14:28:31.000000000 +0200
55824 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubhnu64.c 2010-01-25 09:50:29.555686949 +0100
55825 @@ -3,7 +3,8 @@
55826
55827 /* { dg-do assemble } */
55828 /* { dg-require-effective-target arm_neon_ok } */
55829 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55830 +/* { dg-options "-save-temps -O0" } */
55831 +/* { dg-add-options arm_neon } */
55832
55833 #include "arm_neon.h"
55834
55835 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubls16.c b/gcc/testsuite/gcc.target/arm/neon/vsubls16.c
55836 --- a/gcc/testsuite/gcc.target/arm/neon/vsubls16.c 2007-07-25 14:28:31.000000000 +0200
55837 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubls16.c 2010-01-25 09:50:29.555686949 +0100
55838 @@ -3,7 +3,8 @@
55839
55840 /* { dg-do assemble } */
55841 /* { dg-require-effective-target arm_neon_ok } */
55842 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55843 +/* { dg-options "-save-temps -O0" } */
55844 +/* { dg-add-options arm_neon } */
55845
55846 #include "arm_neon.h"
55847
55848 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubls32.c b/gcc/testsuite/gcc.target/arm/neon/vsubls32.c
55849 --- a/gcc/testsuite/gcc.target/arm/neon/vsubls32.c 2007-07-25 14:28:31.000000000 +0200
55850 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubls32.c 2010-01-25 09:50:29.555686949 +0100
55851 @@ -3,7 +3,8 @@
55852
55853 /* { dg-do assemble } */
55854 /* { dg-require-effective-target arm_neon_ok } */
55855 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55856 +/* { dg-options "-save-temps -O0" } */
55857 +/* { dg-add-options arm_neon } */
55858
55859 #include "arm_neon.h"
55860
55861 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubls8.c b/gcc/testsuite/gcc.target/arm/neon/vsubls8.c
55862 --- a/gcc/testsuite/gcc.target/arm/neon/vsubls8.c 2007-07-25 14:28:31.000000000 +0200
55863 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubls8.c 2010-01-25 09:50:29.555686949 +0100
55864 @@ -3,7 +3,8 @@
55865
55866 /* { dg-do assemble } */
55867 /* { dg-require-effective-target arm_neon_ok } */
55868 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55869 +/* { dg-options "-save-temps -O0" } */
55870 +/* { dg-add-options arm_neon } */
55871
55872 #include "arm_neon.h"
55873
55874 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsublu16.c b/gcc/testsuite/gcc.target/arm/neon/vsublu16.c
55875 --- a/gcc/testsuite/gcc.target/arm/neon/vsublu16.c 2007-07-25 14:28:31.000000000 +0200
55876 +++ b/gcc/testsuite/gcc.target/arm/neon/vsublu16.c 2010-01-25 09:50:29.555686949 +0100
55877 @@ -3,7 +3,8 @@
55878
55879 /* { dg-do assemble } */
55880 /* { dg-require-effective-target arm_neon_ok } */
55881 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55882 +/* { dg-options "-save-temps -O0" } */
55883 +/* { dg-add-options arm_neon } */
55884
55885 #include "arm_neon.h"
55886
55887 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsublu32.c b/gcc/testsuite/gcc.target/arm/neon/vsublu32.c
55888 --- a/gcc/testsuite/gcc.target/arm/neon/vsublu32.c 2007-07-25 14:28:31.000000000 +0200
55889 +++ b/gcc/testsuite/gcc.target/arm/neon/vsublu32.c 2010-01-25 09:50:29.555686949 +0100
55890 @@ -3,7 +3,8 @@
55891
55892 /* { dg-do assemble } */
55893 /* { dg-require-effective-target arm_neon_ok } */
55894 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55895 +/* { dg-options "-save-temps -O0" } */
55896 +/* { dg-add-options arm_neon } */
55897
55898 #include "arm_neon.h"
55899
55900 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsublu8.c b/gcc/testsuite/gcc.target/arm/neon/vsublu8.c
55901 --- a/gcc/testsuite/gcc.target/arm/neon/vsublu8.c 2007-07-25 14:28:31.000000000 +0200
55902 +++ b/gcc/testsuite/gcc.target/arm/neon/vsublu8.c 2010-01-25 09:50:29.555686949 +0100
55903 @@ -3,7 +3,8 @@
55904
55905 /* { dg-do assemble } */
55906 /* { dg-require-effective-target arm_neon_ok } */
55907 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55908 +/* { dg-options "-save-temps -O0" } */
55909 +/* { dg-add-options arm_neon } */
55910
55911 #include "arm_neon.h"
55912
55913 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQf32.c b/gcc/testsuite/gcc.target/arm/neon/vsubQf32.c
55914 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQf32.c 2007-07-25 14:28:31.000000000 +0200
55915 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQf32.c 2010-01-25 09:50:29.555686949 +0100
55916 @@ -3,7 +3,8 @@
55917
55918 /* { dg-do assemble } */
55919 /* { dg-require-effective-target arm_neon_ok } */
55920 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55921 +/* { dg-options "-save-temps -O0" } */
55922 +/* { dg-add-options arm_neon } */
55923
55924 #include "arm_neon.h"
55925
55926 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQs16.c b/gcc/testsuite/gcc.target/arm/neon/vsubQs16.c
55927 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQs16.c 2007-07-25 14:28:31.000000000 +0200
55928 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQs16.c 2010-01-25 09:50:29.555686949 +0100
55929 @@ -3,7 +3,8 @@
55930
55931 /* { dg-do assemble } */
55932 /* { dg-require-effective-target arm_neon_ok } */
55933 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55934 +/* { dg-options "-save-temps -O0" } */
55935 +/* { dg-add-options arm_neon } */
55936
55937 #include "arm_neon.h"
55938
55939 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQs32.c b/gcc/testsuite/gcc.target/arm/neon/vsubQs32.c
55940 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQs32.c 2007-07-25 14:28:31.000000000 +0200
55941 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQs32.c 2010-01-25 09:50:29.555686949 +0100
55942 @@ -3,7 +3,8 @@
55943
55944 /* { dg-do assemble } */
55945 /* { dg-require-effective-target arm_neon_ok } */
55946 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55947 +/* { dg-options "-save-temps -O0" } */
55948 +/* { dg-add-options arm_neon } */
55949
55950 #include "arm_neon.h"
55951
55952 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQs64.c b/gcc/testsuite/gcc.target/arm/neon/vsubQs64.c
55953 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQs64.c 2007-07-25 14:28:31.000000000 +0200
55954 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQs64.c 2010-01-25 09:50:29.555686949 +0100
55955 @@ -3,7 +3,8 @@
55956
55957 /* { dg-do assemble } */
55958 /* { dg-require-effective-target arm_neon_ok } */
55959 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55960 +/* { dg-options "-save-temps -O0" } */
55961 +/* { dg-add-options arm_neon } */
55962
55963 #include "arm_neon.h"
55964
55965 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQs8.c b/gcc/testsuite/gcc.target/arm/neon/vsubQs8.c
55966 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQs8.c 2007-07-25 14:28:31.000000000 +0200
55967 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQs8.c 2010-01-25 09:50:29.555686949 +0100
55968 @@ -3,7 +3,8 @@
55969
55970 /* { dg-do assemble } */
55971 /* { dg-require-effective-target arm_neon_ok } */
55972 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55973 +/* { dg-options "-save-temps -O0" } */
55974 +/* { dg-add-options arm_neon } */
55975
55976 #include "arm_neon.h"
55977
55978 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQu16.c b/gcc/testsuite/gcc.target/arm/neon/vsubQu16.c
55979 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQu16.c 2007-07-25 14:28:31.000000000 +0200
55980 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQu16.c 2010-01-25 09:50:29.555686949 +0100
55981 @@ -3,7 +3,8 @@
55982
55983 /* { dg-do assemble } */
55984 /* { dg-require-effective-target arm_neon_ok } */
55985 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55986 +/* { dg-options "-save-temps -O0" } */
55987 +/* { dg-add-options arm_neon } */
55988
55989 #include "arm_neon.h"
55990
55991 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQu32.c b/gcc/testsuite/gcc.target/arm/neon/vsubQu32.c
55992 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQu32.c 2007-07-25 14:28:31.000000000 +0200
55993 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQu32.c 2010-01-25 09:50:29.555686949 +0100
55994 @@ -3,7 +3,8 @@
55995
55996 /* { dg-do assemble } */
55997 /* { dg-require-effective-target arm_neon_ok } */
55998 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
55999 +/* { dg-options "-save-temps -O0" } */
56000 +/* { dg-add-options arm_neon } */
56001
56002 #include "arm_neon.h"
56003
56004 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQu64.c b/gcc/testsuite/gcc.target/arm/neon/vsubQu64.c
56005 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQu64.c 2007-07-25 14:28:31.000000000 +0200
56006 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQu64.c 2010-01-25 09:50:29.555686949 +0100
56007 @@ -3,7 +3,8 @@
56008
56009 /* { dg-do assemble } */
56010 /* { dg-require-effective-target arm_neon_ok } */
56011 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56012 +/* { dg-options "-save-temps -O0" } */
56013 +/* { dg-add-options arm_neon } */
56014
56015 #include "arm_neon.h"
56016
56017 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubQu8.c b/gcc/testsuite/gcc.target/arm/neon/vsubQu8.c
56018 --- a/gcc/testsuite/gcc.target/arm/neon/vsubQu8.c 2007-07-25 14:28:31.000000000 +0200
56019 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubQu8.c 2010-01-25 09:50:29.555686949 +0100
56020 @@ -3,7 +3,8 @@
56021
56022 /* { dg-do assemble } */
56023 /* { dg-require-effective-target arm_neon_ok } */
56024 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56025 +/* { dg-options "-save-temps -O0" } */
56026 +/* { dg-add-options arm_neon } */
56027
56028 #include "arm_neon.h"
56029
56030 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubs16.c b/gcc/testsuite/gcc.target/arm/neon/vsubs16.c
56031 --- a/gcc/testsuite/gcc.target/arm/neon/vsubs16.c 2007-07-25 14:28:31.000000000 +0200
56032 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubs16.c 2010-01-25 09:50:29.555686949 +0100
56033 @@ -3,7 +3,8 @@
56034
56035 /* { dg-do assemble } */
56036 /* { dg-require-effective-target arm_neon_ok } */
56037 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56038 +/* { dg-options "-save-temps -O0" } */
56039 +/* { dg-add-options arm_neon } */
56040
56041 #include "arm_neon.h"
56042
56043 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubs32.c b/gcc/testsuite/gcc.target/arm/neon/vsubs32.c
56044 --- a/gcc/testsuite/gcc.target/arm/neon/vsubs32.c 2007-07-25 14:28:31.000000000 +0200
56045 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubs32.c 2010-01-25 09:50:29.555686949 +0100
56046 @@ -3,7 +3,8 @@
56047
56048 /* { dg-do assemble } */
56049 /* { dg-require-effective-target arm_neon_ok } */
56050 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56051 +/* { dg-options "-save-temps -O0" } */
56052 +/* { dg-add-options arm_neon } */
56053
56054 #include "arm_neon.h"
56055
56056 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubs64.c b/gcc/testsuite/gcc.target/arm/neon/vsubs64.c
56057 --- a/gcc/testsuite/gcc.target/arm/neon/vsubs64.c 2007-07-25 14:28:31.000000000 +0200
56058 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubs64.c 2010-01-25 09:50:29.555686949 +0100
56059 @@ -3,7 +3,8 @@
56060
56061 /* { dg-do assemble } */
56062 /* { dg-require-effective-target arm_neon_ok } */
56063 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56064 +/* { dg-options "-save-temps -O0" } */
56065 +/* { dg-add-options arm_neon } */
56066
56067 #include "arm_neon.h"
56068
56069 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubs8.c b/gcc/testsuite/gcc.target/arm/neon/vsubs8.c
56070 --- a/gcc/testsuite/gcc.target/arm/neon/vsubs8.c 2007-07-25 14:28:31.000000000 +0200
56071 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubs8.c 2010-01-25 09:50:29.555686949 +0100
56072 @@ -3,7 +3,8 @@
56073
56074 /* { dg-do assemble } */
56075 /* { dg-require-effective-target arm_neon_ok } */
56076 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56077 +/* { dg-options "-save-temps -O0" } */
56078 +/* { dg-add-options arm_neon } */
56079
56080 #include "arm_neon.h"
56081
56082 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubu16.c b/gcc/testsuite/gcc.target/arm/neon/vsubu16.c
56083 --- a/gcc/testsuite/gcc.target/arm/neon/vsubu16.c 2007-07-25 14:28:31.000000000 +0200
56084 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubu16.c 2010-01-25 09:50:29.555686949 +0100
56085 @@ -3,7 +3,8 @@
56086
56087 /* { dg-do assemble } */
56088 /* { dg-require-effective-target arm_neon_ok } */
56089 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56090 +/* { dg-options "-save-temps -O0" } */
56091 +/* { dg-add-options arm_neon } */
56092
56093 #include "arm_neon.h"
56094
56095 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubu32.c b/gcc/testsuite/gcc.target/arm/neon/vsubu32.c
56096 --- a/gcc/testsuite/gcc.target/arm/neon/vsubu32.c 2007-07-25 14:28:31.000000000 +0200
56097 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubu32.c 2010-01-25 09:50:29.555686949 +0100
56098 @@ -3,7 +3,8 @@
56099
56100 /* { dg-do assemble } */
56101 /* { dg-require-effective-target arm_neon_ok } */
56102 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56103 +/* { dg-options "-save-temps -O0" } */
56104 +/* { dg-add-options arm_neon } */
56105
56106 #include "arm_neon.h"
56107
56108 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubu64.c b/gcc/testsuite/gcc.target/arm/neon/vsubu64.c
56109 --- a/gcc/testsuite/gcc.target/arm/neon/vsubu64.c 2007-07-25 14:28:31.000000000 +0200
56110 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubu64.c 2010-01-25 09:50:29.555686949 +0100
56111 @@ -3,7 +3,8 @@
56112
56113 /* { dg-do assemble } */
56114 /* { dg-require-effective-target arm_neon_ok } */
56115 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56116 +/* { dg-options "-save-temps -O0" } */
56117 +/* { dg-add-options arm_neon } */
56118
56119 #include "arm_neon.h"
56120
56121 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubu8.c b/gcc/testsuite/gcc.target/arm/neon/vsubu8.c
56122 --- a/gcc/testsuite/gcc.target/arm/neon/vsubu8.c 2007-07-25 14:28:31.000000000 +0200
56123 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubu8.c 2010-01-25 09:50:29.555686949 +0100
56124 @@ -3,7 +3,8 @@
56125
56126 /* { dg-do assemble } */
56127 /* { dg-require-effective-target arm_neon_ok } */
56128 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56129 +/* { dg-options "-save-temps -O0" } */
56130 +/* { dg-add-options arm_neon } */
56131
56132 #include "arm_neon.h"
56133
56134 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubws16.c b/gcc/testsuite/gcc.target/arm/neon/vsubws16.c
56135 --- a/gcc/testsuite/gcc.target/arm/neon/vsubws16.c 2007-07-25 14:28:31.000000000 +0200
56136 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubws16.c 2010-01-25 09:50:29.555686949 +0100
56137 @@ -3,7 +3,8 @@
56138
56139 /* { dg-do assemble } */
56140 /* { dg-require-effective-target arm_neon_ok } */
56141 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56142 +/* { dg-options "-save-temps -O0" } */
56143 +/* { dg-add-options arm_neon } */
56144
56145 #include "arm_neon.h"
56146
56147 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubws32.c b/gcc/testsuite/gcc.target/arm/neon/vsubws32.c
56148 --- a/gcc/testsuite/gcc.target/arm/neon/vsubws32.c 2007-07-25 14:28:31.000000000 +0200
56149 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubws32.c 2010-01-25 09:50:29.555686949 +0100
56150 @@ -3,7 +3,8 @@
56151
56152 /* { dg-do assemble } */
56153 /* { dg-require-effective-target arm_neon_ok } */
56154 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56155 +/* { dg-options "-save-temps -O0" } */
56156 +/* { dg-add-options arm_neon } */
56157
56158 #include "arm_neon.h"
56159
56160 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubws8.c b/gcc/testsuite/gcc.target/arm/neon/vsubws8.c
56161 --- a/gcc/testsuite/gcc.target/arm/neon/vsubws8.c 2007-07-25 14:28:31.000000000 +0200
56162 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubws8.c 2010-01-25 09:50:29.555686949 +0100
56163 @@ -3,7 +3,8 @@
56164
56165 /* { dg-do assemble } */
56166 /* { dg-require-effective-target arm_neon_ok } */
56167 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56168 +/* { dg-options "-save-temps -O0" } */
56169 +/* { dg-add-options arm_neon } */
56170
56171 #include "arm_neon.h"
56172
56173 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubwu16.c b/gcc/testsuite/gcc.target/arm/neon/vsubwu16.c
56174 --- a/gcc/testsuite/gcc.target/arm/neon/vsubwu16.c 2007-07-25 14:28:31.000000000 +0200
56175 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubwu16.c 2010-01-25 09:50:29.555686949 +0100
56176 @@ -3,7 +3,8 @@
56177
56178 /* { dg-do assemble } */
56179 /* { dg-require-effective-target arm_neon_ok } */
56180 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56181 +/* { dg-options "-save-temps -O0" } */
56182 +/* { dg-add-options arm_neon } */
56183
56184 #include "arm_neon.h"
56185
56186 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubwu32.c b/gcc/testsuite/gcc.target/arm/neon/vsubwu32.c
56187 --- a/gcc/testsuite/gcc.target/arm/neon/vsubwu32.c 2007-07-25 14:28:31.000000000 +0200
56188 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubwu32.c 2010-01-25 09:50:29.555686949 +0100
56189 @@ -3,7 +3,8 @@
56190
56191 /* { dg-do assemble } */
56192 /* { dg-require-effective-target arm_neon_ok } */
56193 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56194 +/* { dg-options "-save-temps -O0" } */
56195 +/* { dg-add-options arm_neon } */
56196
56197 #include "arm_neon.h"
56198
56199 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vsubwu8.c b/gcc/testsuite/gcc.target/arm/neon/vsubwu8.c
56200 --- a/gcc/testsuite/gcc.target/arm/neon/vsubwu8.c 2007-07-25 14:28:31.000000000 +0200
56201 +++ b/gcc/testsuite/gcc.target/arm/neon/vsubwu8.c 2010-01-25 09:50:29.555686949 +0100
56202 @@ -3,7 +3,8 @@
56203
56204 /* { dg-do assemble } */
56205 /* { dg-require-effective-target arm_neon_ok } */
56206 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56207 +/* { dg-options "-save-temps -O0" } */
56208 +/* { dg-add-options arm_neon } */
56209
56210 #include "arm_neon.h"
56211
56212 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c
56213 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c 2007-07-25 14:28:31.000000000 +0200
56214 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl1p8.c 2010-01-25 09:50:29.555686949 +0100
56215 @@ -3,7 +3,8 @@
56216
56217 /* { dg-do assemble } */
56218 /* { dg-require-effective-target arm_neon_ok } */
56219 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56220 +/* { dg-options "-save-temps -O0" } */
56221 +/* { dg-add-options arm_neon } */
56222
56223 #include "arm_neon.h"
56224
56225 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl1s8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl1s8.c
56226 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl1s8.c 2007-07-25 14:28:31.000000000 +0200
56227 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl1s8.c 2010-01-25 09:50:29.555686949 +0100
56228 @@ -3,7 +3,8 @@
56229
56230 /* { dg-do assemble } */
56231 /* { dg-require-effective-target arm_neon_ok } */
56232 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56233 +/* { dg-options "-save-temps -O0" } */
56234 +/* { dg-add-options arm_neon } */
56235
56236 #include "arm_neon.h"
56237
56238 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl1u8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl1u8.c
56239 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl1u8.c 2007-07-25 14:28:31.000000000 +0200
56240 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl1u8.c 2010-01-25 09:50:29.555686949 +0100
56241 @@ -3,7 +3,8 @@
56242
56243 /* { dg-do assemble } */
56244 /* { dg-require-effective-target arm_neon_ok } */
56245 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56246 +/* { dg-options "-save-temps -O0" } */
56247 +/* { dg-add-options arm_neon } */
56248
56249 #include "arm_neon.h"
56250
56251 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c
56252 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c 2007-07-25 14:28:31.000000000 +0200
56253 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl2p8.c 2010-01-25 09:50:29.555686949 +0100
56254 @@ -3,7 +3,8 @@
56255
56256 /* { dg-do assemble } */
56257 /* { dg-require-effective-target arm_neon_ok } */
56258 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56259 +/* { dg-options "-save-temps -O0" } */
56260 +/* { dg-add-options arm_neon } */
56261
56262 #include "arm_neon.h"
56263
56264 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl2s8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl2s8.c
56265 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl2s8.c 2007-07-25 14:28:31.000000000 +0200
56266 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl2s8.c 2010-01-25 09:50:29.555686949 +0100
56267 @@ -3,7 +3,8 @@
56268
56269 /* { dg-do assemble } */
56270 /* { dg-require-effective-target arm_neon_ok } */
56271 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56272 +/* { dg-options "-save-temps -O0" } */
56273 +/* { dg-add-options arm_neon } */
56274
56275 #include "arm_neon.h"
56276
56277 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl2u8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl2u8.c
56278 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl2u8.c 2007-07-25 14:28:31.000000000 +0200
56279 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl2u8.c 2010-01-25 09:50:29.555686949 +0100
56280 @@ -3,7 +3,8 @@
56281
56282 /* { dg-do assemble } */
56283 /* { dg-require-effective-target arm_neon_ok } */
56284 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56285 +/* { dg-options "-save-temps -O0" } */
56286 +/* { dg-add-options arm_neon } */
56287
56288 #include "arm_neon.h"
56289
56290 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c
56291 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c 2007-07-25 14:28:31.000000000 +0200
56292 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl3p8.c 2010-01-25 09:50:29.555686949 +0100
56293 @@ -3,7 +3,8 @@
56294
56295 /* { dg-do assemble } */
56296 /* { dg-require-effective-target arm_neon_ok } */
56297 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56298 +/* { dg-options "-save-temps -O0" } */
56299 +/* { dg-add-options arm_neon } */
56300
56301 #include "arm_neon.h"
56302
56303 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl3s8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl3s8.c
56304 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl3s8.c 2007-07-25 14:28:31.000000000 +0200
56305 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl3s8.c 2010-01-25 09:50:29.555686949 +0100
56306 @@ -3,7 +3,8 @@
56307
56308 /* { dg-do assemble } */
56309 /* { dg-require-effective-target arm_neon_ok } */
56310 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56311 +/* { dg-options "-save-temps -O0" } */
56312 +/* { dg-add-options arm_neon } */
56313
56314 #include "arm_neon.h"
56315
56316 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl3u8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl3u8.c
56317 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl3u8.c 2007-07-25 14:28:31.000000000 +0200
56318 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl3u8.c 2010-01-25 09:50:29.555686949 +0100
56319 @@ -3,7 +3,8 @@
56320
56321 /* { dg-do assemble } */
56322 /* { dg-require-effective-target arm_neon_ok } */
56323 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56324 +/* { dg-options "-save-temps -O0" } */
56325 +/* { dg-add-options arm_neon } */
56326
56327 #include "arm_neon.h"
56328
56329 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c
56330 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c 2007-07-25 14:28:31.000000000 +0200
56331 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl4p8.c 2010-01-25 09:50:29.555686949 +0100
56332 @@ -3,7 +3,8 @@
56333
56334 /* { dg-do assemble } */
56335 /* { dg-require-effective-target arm_neon_ok } */
56336 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56337 +/* { dg-options "-save-temps -O0" } */
56338 +/* { dg-add-options arm_neon } */
56339
56340 #include "arm_neon.h"
56341
56342 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl4s8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl4s8.c
56343 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl4s8.c 2007-07-25 14:28:31.000000000 +0200
56344 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl4s8.c 2010-01-25 09:50:29.555686949 +0100
56345 @@ -3,7 +3,8 @@
56346
56347 /* { dg-do assemble } */
56348 /* { dg-require-effective-target arm_neon_ok } */
56349 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56350 +/* { dg-options "-save-temps -O0" } */
56351 +/* { dg-add-options arm_neon } */
56352
56353 #include "arm_neon.h"
56354
56355 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbl4u8.c b/gcc/testsuite/gcc.target/arm/neon/vtbl4u8.c
56356 --- a/gcc/testsuite/gcc.target/arm/neon/vtbl4u8.c 2007-07-25 14:28:31.000000000 +0200
56357 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbl4u8.c 2010-01-25 09:50:29.555686949 +0100
56358 @@ -3,7 +3,8 @@
56359
56360 /* { dg-do assemble } */
56361 /* { dg-require-effective-target arm_neon_ok } */
56362 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56363 +/* { dg-options "-save-temps -O0" } */
56364 +/* { dg-add-options arm_neon } */
56365
56366 #include "arm_neon.h"
56367
56368 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c
56369 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c 2007-07-25 14:28:31.000000000 +0200
56370 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx1p8.c 2010-01-25 09:50:29.555686949 +0100
56371 @@ -3,7 +3,8 @@
56372
56373 /* { dg-do assemble } */
56374 /* { dg-require-effective-target arm_neon_ok } */
56375 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56376 +/* { dg-options "-save-temps -O0" } */
56377 +/* { dg-add-options arm_neon } */
56378
56379 #include "arm_neon.h"
56380
56381 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx1s8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx1s8.c
56382 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx1s8.c 2007-07-25 14:28:31.000000000 +0200
56383 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx1s8.c 2010-01-25 09:50:29.555686949 +0100
56384 @@ -3,7 +3,8 @@
56385
56386 /* { dg-do assemble } */
56387 /* { dg-require-effective-target arm_neon_ok } */
56388 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56389 +/* { dg-options "-save-temps -O0" } */
56390 +/* { dg-add-options arm_neon } */
56391
56392 #include "arm_neon.h"
56393
56394 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx1u8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx1u8.c
56395 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx1u8.c 2007-07-25 14:28:31.000000000 +0200
56396 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx1u8.c 2010-01-25 09:50:29.555686949 +0100
56397 @@ -3,7 +3,8 @@
56398
56399 /* { dg-do assemble } */
56400 /* { dg-require-effective-target arm_neon_ok } */
56401 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56402 +/* { dg-options "-save-temps -O0" } */
56403 +/* { dg-add-options arm_neon } */
56404
56405 #include "arm_neon.h"
56406
56407 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c
56408 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c 2007-07-25 14:28:31.000000000 +0200
56409 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx2p8.c 2010-01-25 09:50:29.555686949 +0100
56410 @@ -3,7 +3,8 @@
56411
56412 /* { dg-do assemble } */
56413 /* { dg-require-effective-target arm_neon_ok } */
56414 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56415 +/* { dg-options "-save-temps -O0" } */
56416 +/* { dg-add-options arm_neon } */
56417
56418 #include "arm_neon.h"
56419
56420 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx2s8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx2s8.c
56421 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx2s8.c 2007-07-25 14:28:31.000000000 +0200
56422 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx2s8.c 2010-01-25 09:50:29.555686949 +0100
56423 @@ -3,7 +3,8 @@
56424
56425 /* { dg-do assemble } */
56426 /* { dg-require-effective-target arm_neon_ok } */
56427 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56428 +/* { dg-options "-save-temps -O0" } */
56429 +/* { dg-add-options arm_neon } */
56430
56431 #include "arm_neon.h"
56432
56433 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx2u8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx2u8.c
56434 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx2u8.c 2007-07-25 14:28:31.000000000 +0200
56435 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx2u8.c 2010-01-25 09:50:29.555686949 +0100
56436 @@ -3,7 +3,8 @@
56437
56438 /* { dg-do assemble } */
56439 /* { dg-require-effective-target arm_neon_ok } */
56440 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56441 +/* { dg-options "-save-temps -O0" } */
56442 +/* { dg-add-options arm_neon } */
56443
56444 #include "arm_neon.h"
56445
56446 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c
56447 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c 2007-07-25 14:28:31.000000000 +0200
56448 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx3p8.c 2010-01-25 09:50:29.555686949 +0100
56449 @@ -3,7 +3,8 @@
56450
56451 /* { dg-do assemble } */
56452 /* { dg-require-effective-target arm_neon_ok } */
56453 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56454 +/* { dg-options "-save-temps -O0" } */
56455 +/* { dg-add-options arm_neon } */
56456
56457 #include "arm_neon.h"
56458
56459 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx3s8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx3s8.c
56460 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx3s8.c 2007-07-25 14:28:31.000000000 +0200
56461 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx3s8.c 2010-01-25 09:50:29.555686949 +0100
56462 @@ -3,7 +3,8 @@
56463
56464 /* { dg-do assemble } */
56465 /* { dg-require-effective-target arm_neon_ok } */
56466 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56467 +/* { dg-options "-save-temps -O0" } */
56468 +/* { dg-add-options arm_neon } */
56469
56470 #include "arm_neon.h"
56471
56472 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx3u8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx3u8.c
56473 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx3u8.c 2007-07-25 14:28:31.000000000 +0200
56474 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx3u8.c 2010-01-25 09:50:29.555686949 +0100
56475 @@ -3,7 +3,8 @@
56476
56477 /* { dg-do assemble } */
56478 /* { dg-require-effective-target arm_neon_ok } */
56479 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56480 +/* { dg-options "-save-temps -O0" } */
56481 +/* { dg-add-options arm_neon } */
56482
56483 #include "arm_neon.h"
56484
56485 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c
56486 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c 2007-07-25 14:28:31.000000000 +0200
56487 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx4p8.c 2010-01-25 09:50:29.555686949 +0100
56488 @@ -3,7 +3,8 @@
56489
56490 /* { dg-do assemble } */
56491 /* { dg-require-effective-target arm_neon_ok } */
56492 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56493 +/* { dg-options "-save-temps -O0" } */
56494 +/* { dg-add-options arm_neon } */
56495
56496 #include "arm_neon.h"
56497
56498 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx4s8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx4s8.c
56499 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx4s8.c 2007-07-25 14:28:31.000000000 +0200
56500 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx4s8.c 2010-01-25 09:50:29.555686949 +0100
56501 @@ -3,7 +3,8 @@
56502
56503 /* { dg-do assemble } */
56504 /* { dg-require-effective-target arm_neon_ok } */
56505 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56506 +/* { dg-options "-save-temps -O0" } */
56507 +/* { dg-add-options arm_neon } */
56508
56509 #include "arm_neon.h"
56510
56511 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtbx4u8.c b/gcc/testsuite/gcc.target/arm/neon/vtbx4u8.c
56512 --- a/gcc/testsuite/gcc.target/arm/neon/vtbx4u8.c 2007-07-25 14:28:31.000000000 +0200
56513 +++ b/gcc/testsuite/gcc.target/arm/neon/vtbx4u8.c 2010-01-25 09:50:29.555686949 +0100
56514 @@ -3,7 +3,8 @@
56515
56516 /* { dg-do assemble } */
56517 /* { dg-require-effective-target arm_neon_ok } */
56518 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56519 +/* { dg-options "-save-temps -O0" } */
56520 +/* { dg-add-options arm_neon } */
56521
56522 #include "arm_neon.h"
56523
56524 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnf32.c b/gcc/testsuite/gcc.target/arm/neon/vtrnf32.c
56525 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnf32.c 2007-07-25 14:28:31.000000000 +0200
56526 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnf32.c 2010-01-25 09:50:29.555686949 +0100
56527 @@ -3,7 +3,8 @@
56528
56529 /* { dg-do assemble } */
56530 /* { dg-require-effective-target arm_neon_ok } */
56531 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56532 +/* { dg-options "-save-temps -O0" } */
56533 +/* { dg-add-options arm_neon } */
56534
56535 #include "arm_neon.h"
56536
56537 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnp16.c b/gcc/testsuite/gcc.target/arm/neon/vtrnp16.c
56538 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnp16.c 2007-07-25 14:28:31.000000000 +0200
56539 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnp16.c 2010-01-25 09:50:29.555686949 +0100
56540 @@ -3,7 +3,8 @@
56541
56542 /* { dg-do assemble } */
56543 /* { dg-require-effective-target arm_neon_ok } */
56544 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56545 +/* { dg-options "-save-temps -O0" } */
56546 +/* { dg-add-options arm_neon } */
56547
56548 #include "arm_neon.h"
56549
56550 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnp8.c b/gcc/testsuite/gcc.target/arm/neon/vtrnp8.c
56551 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnp8.c 2007-07-25 14:28:31.000000000 +0200
56552 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnp8.c 2010-01-25 09:50:29.555686949 +0100
56553 @@ -3,7 +3,8 @@
56554
56555 /* { dg-do assemble } */
56556 /* { dg-require-effective-target arm_neon_ok } */
56557 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56558 +/* { dg-options "-save-temps -O0" } */
56559 +/* { dg-add-options arm_neon } */
56560
56561 #include "arm_neon.h"
56562
56563 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQf32.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQf32.c
56564 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQf32.c 2007-07-25 14:28:31.000000000 +0200
56565 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQf32.c 2010-01-25 09:50:29.555686949 +0100
56566 @@ -3,7 +3,8 @@
56567
56568 /* { dg-do assemble } */
56569 /* { dg-require-effective-target arm_neon_ok } */
56570 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56571 +/* { dg-options "-save-temps -O0" } */
56572 +/* { dg-add-options arm_neon } */
56573
56574 #include "arm_neon.h"
56575
56576 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQp16.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQp16.c
56577 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQp16.c 2007-07-25 14:28:31.000000000 +0200
56578 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQp16.c 2010-01-25 09:50:29.555686949 +0100
56579 @@ -3,7 +3,8 @@
56580
56581 /* { dg-do assemble } */
56582 /* { dg-require-effective-target arm_neon_ok } */
56583 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56584 +/* { dg-options "-save-temps -O0" } */
56585 +/* { dg-add-options arm_neon } */
56586
56587 #include "arm_neon.h"
56588
56589 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQp8.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQp8.c
56590 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQp8.c 2007-07-25 14:28:31.000000000 +0200
56591 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQp8.c 2010-01-25 09:50:29.555686949 +0100
56592 @@ -3,7 +3,8 @@
56593
56594 /* { dg-do assemble } */
56595 /* { dg-require-effective-target arm_neon_ok } */
56596 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56597 +/* { dg-options "-save-temps -O0" } */
56598 +/* { dg-add-options arm_neon } */
56599
56600 #include "arm_neon.h"
56601
56602 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQs16.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQs16.c
56603 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQs16.c 2007-07-25 14:28:31.000000000 +0200
56604 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQs16.c 2010-01-25 09:50:29.555686949 +0100
56605 @@ -3,7 +3,8 @@
56606
56607 /* { dg-do assemble } */
56608 /* { dg-require-effective-target arm_neon_ok } */
56609 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56610 +/* { dg-options "-save-temps -O0" } */
56611 +/* { dg-add-options arm_neon } */
56612
56613 #include "arm_neon.h"
56614
56615 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQs32.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQs32.c
56616 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQs32.c 2007-07-25 14:28:31.000000000 +0200
56617 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQs32.c 2010-01-25 09:50:29.555686949 +0100
56618 @@ -3,7 +3,8 @@
56619
56620 /* { dg-do assemble } */
56621 /* { dg-require-effective-target arm_neon_ok } */
56622 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56623 +/* { dg-options "-save-temps -O0" } */
56624 +/* { dg-add-options arm_neon } */
56625
56626 #include "arm_neon.h"
56627
56628 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQs8.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQs8.c
56629 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQs8.c 2007-07-25 14:28:31.000000000 +0200
56630 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQs8.c 2010-01-25 09:50:29.555686949 +0100
56631 @@ -3,7 +3,8 @@
56632
56633 /* { dg-do assemble } */
56634 /* { dg-require-effective-target arm_neon_ok } */
56635 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56636 +/* { dg-options "-save-temps -O0" } */
56637 +/* { dg-add-options arm_neon } */
56638
56639 #include "arm_neon.h"
56640
56641 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQu16.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQu16.c
56642 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQu16.c 2007-07-25 14:28:31.000000000 +0200
56643 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQu16.c 2010-01-25 09:50:29.555686949 +0100
56644 @@ -3,7 +3,8 @@
56645
56646 /* { dg-do assemble } */
56647 /* { dg-require-effective-target arm_neon_ok } */
56648 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56649 +/* { dg-options "-save-temps -O0" } */
56650 +/* { dg-add-options arm_neon } */
56651
56652 #include "arm_neon.h"
56653
56654 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQu32.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQu32.c
56655 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQu32.c 2007-07-25 14:28:31.000000000 +0200
56656 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQu32.c 2010-01-25 09:50:29.555686949 +0100
56657 @@ -3,7 +3,8 @@
56658
56659 /* { dg-do assemble } */
56660 /* { dg-require-effective-target arm_neon_ok } */
56661 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56662 +/* { dg-options "-save-temps -O0" } */
56663 +/* { dg-add-options arm_neon } */
56664
56665 #include "arm_neon.h"
56666
56667 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnQu8.c b/gcc/testsuite/gcc.target/arm/neon/vtrnQu8.c
56668 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnQu8.c 2007-07-25 14:28:31.000000000 +0200
56669 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnQu8.c 2010-01-25 09:50:29.555686949 +0100
56670 @@ -3,7 +3,8 @@
56671
56672 /* { dg-do assemble } */
56673 /* { dg-require-effective-target arm_neon_ok } */
56674 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56675 +/* { dg-options "-save-temps -O0" } */
56676 +/* { dg-add-options arm_neon } */
56677
56678 #include "arm_neon.h"
56679
56680 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrns16.c b/gcc/testsuite/gcc.target/arm/neon/vtrns16.c
56681 --- a/gcc/testsuite/gcc.target/arm/neon/vtrns16.c 2007-07-25 14:28:31.000000000 +0200
56682 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrns16.c 2010-01-25 09:50:29.565686614 +0100
56683 @@ -3,7 +3,8 @@
56684
56685 /* { dg-do assemble } */
56686 /* { dg-require-effective-target arm_neon_ok } */
56687 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56688 +/* { dg-options "-save-temps -O0" } */
56689 +/* { dg-add-options arm_neon } */
56690
56691 #include "arm_neon.h"
56692
56693 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrns32.c b/gcc/testsuite/gcc.target/arm/neon/vtrns32.c
56694 --- a/gcc/testsuite/gcc.target/arm/neon/vtrns32.c 2007-07-25 14:28:31.000000000 +0200
56695 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrns32.c 2010-01-25 09:50:29.565686614 +0100
56696 @@ -3,7 +3,8 @@
56697
56698 /* { dg-do assemble } */
56699 /* { dg-require-effective-target arm_neon_ok } */
56700 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56701 +/* { dg-options "-save-temps -O0" } */
56702 +/* { dg-add-options arm_neon } */
56703
56704 #include "arm_neon.h"
56705
56706 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrns8.c b/gcc/testsuite/gcc.target/arm/neon/vtrns8.c
56707 --- a/gcc/testsuite/gcc.target/arm/neon/vtrns8.c 2007-07-25 14:28:31.000000000 +0200
56708 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrns8.c 2010-01-25 09:50:29.565686614 +0100
56709 @@ -3,7 +3,8 @@
56710
56711 /* { dg-do assemble } */
56712 /* { dg-require-effective-target arm_neon_ok } */
56713 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56714 +/* { dg-options "-save-temps -O0" } */
56715 +/* { dg-add-options arm_neon } */
56716
56717 #include "arm_neon.h"
56718
56719 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnu16.c b/gcc/testsuite/gcc.target/arm/neon/vtrnu16.c
56720 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnu16.c 2007-07-25 14:28:31.000000000 +0200
56721 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnu16.c 2010-01-25 09:50:29.565686614 +0100
56722 @@ -3,7 +3,8 @@
56723
56724 /* { dg-do assemble } */
56725 /* { dg-require-effective-target arm_neon_ok } */
56726 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56727 +/* { dg-options "-save-temps -O0" } */
56728 +/* { dg-add-options arm_neon } */
56729
56730 #include "arm_neon.h"
56731
56732 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnu32.c b/gcc/testsuite/gcc.target/arm/neon/vtrnu32.c
56733 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnu32.c 2007-07-25 14:28:31.000000000 +0200
56734 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnu32.c 2010-01-25 09:50:29.565686614 +0100
56735 @@ -3,7 +3,8 @@
56736
56737 /* { dg-do assemble } */
56738 /* { dg-require-effective-target arm_neon_ok } */
56739 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56740 +/* { dg-options "-save-temps -O0" } */
56741 +/* { dg-add-options arm_neon } */
56742
56743 #include "arm_neon.h"
56744
56745 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtrnu8.c b/gcc/testsuite/gcc.target/arm/neon/vtrnu8.c
56746 --- a/gcc/testsuite/gcc.target/arm/neon/vtrnu8.c 2007-07-25 14:28:31.000000000 +0200
56747 +++ b/gcc/testsuite/gcc.target/arm/neon/vtrnu8.c 2010-01-25 09:50:29.565686614 +0100
56748 @@ -3,7 +3,8 @@
56749
56750 /* { dg-do assemble } */
56751 /* { dg-require-effective-target arm_neon_ok } */
56752 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56753 +/* { dg-options "-save-temps -O0" } */
56754 +/* { dg-add-options arm_neon } */
56755
56756 #include "arm_neon.h"
56757
56758 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstp8.c b/gcc/testsuite/gcc.target/arm/neon/vtstp8.c
56759 --- a/gcc/testsuite/gcc.target/arm/neon/vtstp8.c 2007-07-25 14:28:31.000000000 +0200
56760 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstp8.c 2010-01-25 09:50:29.565686614 +0100
56761 @@ -3,7 +3,8 @@
56762
56763 /* { dg-do assemble } */
56764 /* { dg-require-effective-target arm_neon_ok } */
56765 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56766 +/* { dg-options "-save-temps -O0" } */
56767 +/* { dg-add-options arm_neon } */
56768
56769 #include "arm_neon.h"
56770
56771 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstQp8.c b/gcc/testsuite/gcc.target/arm/neon/vtstQp8.c
56772 --- a/gcc/testsuite/gcc.target/arm/neon/vtstQp8.c 2007-07-25 14:28:31.000000000 +0200
56773 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstQp8.c 2010-01-25 09:50:29.565686614 +0100
56774 @@ -3,7 +3,8 @@
56775
56776 /* { dg-do assemble } */
56777 /* { dg-require-effective-target arm_neon_ok } */
56778 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56779 +/* { dg-options "-save-temps -O0" } */
56780 +/* { dg-add-options arm_neon } */
56781
56782 #include "arm_neon.h"
56783
56784 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstQs16.c b/gcc/testsuite/gcc.target/arm/neon/vtstQs16.c
56785 --- a/gcc/testsuite/gcc.target/arm/neon/vtstQs16.c 2007-07-25 14:28:31.000000000 +0200
56786 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstQs16.c 2010-01-25 09:50:29.565686614 +0100
56787 @@ -3,7 +3,8 @@
56788
56789 /* { dg-do assemble } */
56790 /* { dg-require-effective-target arm_neon_ok } */
56791 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56792 +/* { dg-options "-save-temps -O0" } */
56793 +/* { dg-add-options arm_neon } */
56794
56795 #include "arm_neon.h"
56796
56797 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstQs32.c b/gcc/testsuite/gcc.target/arm/neon/vtstQs32.c
56798 --- a/gcc/testsuite/gcc.target/arm/neon/vtstQs32.c 2007-07-25 14:28:31.000000000 +0200
56799 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstQs32.c 2010-01-25 09:50:29.565686614 +0100
56800 @@ -3,7 +3,8 @@
56801
56802 /* { dg-do assemble } */
56803 /* { dg-require-effective-target arm_neon_ok } */
56804 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56805 +/* { dg-options "-save-temps -O0" } */
56806 +/* { dg-add-options arm_neon } */
56807
56808 #include "arm_neon.h"
56809
56810 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstQs8.c b/gcc/testsuite/gcc.target/arm/neon/vtstQs8.c
56811 --- a/gcc/testsuite/gcc.target/arm/neon/vtstQs8.c 2007-07-25 14:28:31.000000000 +0200
56812 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstQs8.c 2010-01-25 09:50:29.565686614 +0100
56813 @@ -3,7 +3,8 @@
56814
56815 /* { dg-do assemble } */
56816 /* { dg-require-effective-target arm_neon_ok } */
56817 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56818 +/* { dg-options "-save-temps -O0" } */
56819 +/* { dg-add-options arm_neon } */
56820
56821 #include "arm_neon.h"
56822
56823 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstQu16.c b/gcc/testsuite/gcc.target/arm/neon/vtstQu16.c
56824 --- a/gcc/testsuite/gcc.target/arm/neon/vtstQu16.c 2007-07-25 14:28:31.000000000 +0200
56825 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstQu16.c 2010-01-25 09:50:29.565686614 +0100
56826 @@ -3,7 +3,8 @@
56827
56828 /* { dg-do assemble } */
56829 /* { dg-require-effective-target arm_neon_ok } */
56830 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56831 +/* { dg-options "-save-temps -O0" } */
56832 +/* { dg-add-options arm_neon } */
56833
56834 #include "arm_neon.h"
56835
56836 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstQu32.c b/gcc/testsuite/gcc.target/arm/neon/vtstQu32.c
56837 --- a/gcc/testsuite/gcc.target/arm/neon/vtstQu32.c 2007-07-25 14:28:31.000000000 +0200
56838 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstQu32.c 2010-01-25 09:50:29.565686614 +0100
56839 @@ -3,7 +3,8 @@
56840
56841 /* { dg-do assemble } */
56842 /* { dg-require-effective-target arm_neon_ok } */
56843 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56844 +/* { dg-options "-save-temps -O0" } */
56845 +/* { dg-add-options arm_neon } */
56846
56847 #include "arm_neon.h"
56848
56849 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstQu8.c b/gcc/testsuite/gcc.target/arm/neon/vtstQu8.c
56850 --- a/gcc/testsuite/gcc.target/arm/neon/vtstQu8.c 2007-07-25 14:28:31.000000000 +0200
56851 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstQu8.c 2010-01-25 09:50:29.565686614 +0100
56852 @@ -3,7 +3,8 @@
56853
56854 /* { dg-do assemble } */
56855 /* { dg-require-effective-target arm_neon_ok } */
56856 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56857 +/* { dg-options "-save-temps -O0" } */
56858 +/* { dg-add-options arm_neon } */
56859
56860 #include "arm_neon.h"
56861
56862 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtsts16.c b/gcc/testsuite/gcc.target/arm/neon/vtsts16.c
56863 --- a/gcc/testsuite/gcc.target/arm/neon/vtsts16.c 2007-07-25 14:28:31.000000000 +0200
56864 +++ b/gcc/testsuite/gcc.target/arm/neon/vtsts16.c 2010-01-25 09:50:29.565686614 +0100
56865 @@ -3,7 +3,8 @@
56866
56867 /* { dg-do assemble } */
56868 /* { dg-require-effective-target arm_neon_ok } */
56869 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56870 +/* { dg-options "-save-temps -O0" } */
56871 +/* { dg-add-options arm_neon } */
56872
56873 #include "arm_neon.h"
56874
56875 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtsts32.c b/gcc/testsuite/gcc.target/arm/neon/vtsts32.c
56876 --- a/gcc/testsuite/gcc.target/arm/neon/vtsts32.c 2007-07-25 14:28:31.000000000 +0200
56877 +++ b/gcc/testsuite/gcc.target/arm/neon/vtsts32.c 2010-01-25 09:50:29.565686614 +0100
56878 @@ -3,7 +3,8 @@
56879
56880 /* { dg-do assemble } */
56881 /* { dg-require-effective-target arm_neon_ok } */
56882 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56883 +/* { dg-options "-save-temps -O0" } */
56884 +/* { dg-add-options arm_neon } */
56885
56886 #include "arm_neon.h"
56887
56888 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtsts8.c b/gcc/testsuite/gcc.target/arm/neon/vtsts8.c
56889 --- a/gcc/testsuite/gcc.target/arm/neon/vtsts8.c 2007-07-25 14:28:31.000000000 +0200
56890 +++ b/gcc/testsuite/gcc.target/arm/neon/vtsts8.c 2010-01-25 09:50:29.565686614 +0100
56891 @@ -3,7 +3,8 @@
56892
56893 /* { dg-do assemble } */
56894 /* { dg-require-effective-target arm_neon_ok } */
56895 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56896 +/* { dg-options "-save-temps -O0" } */
56897 +/* { dg-add-options arm_neon } */
56898
56899 #include "arm_neon.h"
56900
56901 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstu16.c b/gcc/testsuite/gcc.target/arm/neon/vtstu16.c
56902 --- a/gcc/testsuite/gcc.target/arm/neon/vtstu16.c 2007-07-25 14:28:31.000000000 +0200
56903 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstu16.c 2010-01-25 09:50:29.565686614 +0100
56904 @@ -3,7 +3,8 @@
56905
56906 /* { dg-do assemble } */
56907 /* { dg-require-effective-target arm_neon_ok } */
56908 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56909 +/* { dg-options "-save-temps -O0" } */
56910 +/* { dg-add-options arm_neon } */
56911
56912 #include "arm_neon.h"
56913
56914 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstu32.c b/gcc/testsuite/gcc.target/arm/neon/vtstu32.c
56915 --- a/gcc/testsuite/gcc.target/arm/neon/vtstu32.c 2007-07-25 14:28:31.000000000 +0200
56916 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstu32.c 2010-01-25 09:50:29.565686614 +0100
56917 @@ -3,7 +3,8 @@
56918
56919 /* { dg-do assemble } */
56920 /* { dg-require-effective-target arm_neon_ok } */
56921 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56922 +/* { dg-options "-save-temps -O0" } */
56923 +/* { dg-add-options arm_neon } */
56924
56925 #include "arm_neon.h"
56926
56927 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vtstu8.c b/gcc/testsuite/gcc.target/arm/neon/vtstu8.c
56928 --- a/gcc/testsuite/gcc.target/arm/neon/vtstu8.c 2007-07-25 14:28:31.000000000 +0200
56929 +++ b/gcc/testsuite/gcc.target/arm/neon/vtstu8.c 2010-01-25 09:50:29.565686614 +0100
56930 @@ -3,7 +3,8 @@
56931
56932 /* { dg-do assemble } */
56933 /* { dg-require-effective-target arm_neon_ok } */
56934 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56935 +/* { dg-options "-save-temps -O0" } */
56936 +/* { dg-add-options arm_neon } */
56937
56938 #include "arm_neon.h"
56939
56940 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpf32.c b/gcc/testsuite/gcc.target/arm/neon/vuzpf32.c
56941 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpf32.c 2007-07-25 14:28:31.000000000 +0200
56942 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpf32.c 2010-01-25 09:50:29.565686614 +0100
56943 @@ -3,7 +3,8 @@
56944
56945 /* { dg-do assemble } */
56946 /* { dg-require-effective-target arm_neon_ok } */
56947 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56948 +/* { dg-options "-save-temps -O0" } */
56949 +/* { dg-add-options arm_neon } */
56950
56951 #include "arm_neon.h"
56952
56953 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpp16.c b/gcc/testsuite/gcc.target/arm/neon/vuzpp16.c
56954 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpp16.c 2007-07-25 14:28:31.000000000 +0200
56955 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpp16.c 2010-01-25 09:50:29.565686614 +0100
56956 @@ -3,7 +3,8 @@
56957
56958 /* { dg-do assemble } */
56959 /* { dg-require-effective-target arm_neon_ok } */
56960 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56961 +/* { dg-options "-save-temps -O0" } */
56962 +/* { dg-add-options arm_neon } */
56963
56964 #include "arm_neon.h"
56965
56966 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpp8.c b/gcc/testsuite/gcc.target/arm/neon/vuzpp8.c
56967 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpp8.c 2007-07-25 14:28:31.000000000 +0200
56968 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpp8.c 2010-01-25 09:50:29.565686614 +0100
56969 @@ -3,7 +3,8 @@
56970
56971 /* { dg-do assemble } */
56972 /* { dg-require-effective-target arm_neon_ok } */
56973 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56974 +/* { dg-options "-save-temps -O0" } */
56975 +/* { dg-add-options arm_neon } */
56976
56977 #include "arm_neon.h"
56978
56979 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQf32.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQf32.c
56980 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQf32.c 2007-07-25 14:28:31.000000000 +0200
56981 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQf32.c 2010-01-25 09:50:29.565686614 +0100
56982 @@ -3,7 +3,8 @@
56983
56984 /* { dg-do assemble } */
56985 /* { dg-require-effective-target arm_neon_ok } */
56986 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
56987 +/* { dg-options "-save-temps -O0" } */
56988 +/* { dg-add-options arm_neon } */
56989
56990 #include "arm_neon.h"
56991
56992 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQp16.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQp16.c
56993 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQp16.c 2007-07-25 14:28:31.000000000 +0200
56994 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQp16.c 2010-01-25 09:50:29.565686614 +0100
56995 @@ -3,7 +3,8 @@
56996
56997 /* { dg-do assemble } */
56998 /* { dg-require-effective-target arm_neon_ok } */
56999 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57000 +/* { dg-options "-save-temps -O0" } */
57001 +/* { dg-add-options arm_neon } */
57002
57003 #include "arm_neon.h"
57004
57005 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQp8.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQp8.c
57006 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQp8.c 2007-07-25 14:28:31.000000000 +0200
57007 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQp8.c 2010-01-25 09:50:29.565686614 +0100
57008 @@ -3,7 +3,8 @@
57009
57010 /* { dg-do assemble } */
57011 /* { dg-require-effective-target arm_neon_ok } */
57012 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57013 +/* { dg-options "-save-temps -O0" } */
57014 +/* { dg-add-options arm_neon } */
57015
57016 #include "arm_neon.h"
57017
57018 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQs16.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQs16.c
57019 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQs16.c 2007-07-25 14:28:31.000000000 +0200
57020 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQs16.c 2010-01-25 09:50:29.565686614 +0100
57021 @@ -3,7 +3,8 @@
57022
57023 /* { dg-do assemble } */
57024 /* { dg-require-effective-target arm_neon_ok } */
57025 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57026 +/* { dg-options "-save-temps -O0" } */
57027 +/* { dg-add-options arm_neon } */
57028
57029 #include "arm_neon.h"
57030
57031 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQs32.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQs32.c
57032 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQs32.c 2007-07-25 14:28:31.000000000 +0200
57033 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQs32.c 2010-01-25 09:50:29.565686614 +0100
57034 @@ -3,7 +3,8 @@
57035
57036 /* { dg-do assemble } */
57037 /* { dg-require-effective-target arm_neon_ok } */
57038 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57039 +/* { dg-options "-save-temps -O0" } */
57040 +/* { dg-add-options arm_neon } */
57041
57042 #include "arm_neon.h"
57043
57044 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQs8.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQs8.c
57045 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQs8.c 2007-07-25 14:28:31.000000000 +0200
57046 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQs8.c 2010-01-25 09:50:29.565686614 +0100
57047 @@ -3,7 +3,8 @@
57048
57049 /* { dg-do assemble } */
57050 /* { dg-require-effective-target arm_neon_ok } */
57051 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57052 +/* { dg-options "-save-temps -O0" } */
57053 +/* { dg-add-options arm_neon } */
57054
57055 #include "arm_neon.h"
57056
57057 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQu16.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQu16.c
57058 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQu16.c 2007-07-25 14:28:31.000000000 +0200
57059 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQu16.c 2010-01-25 09:50:29.565686614 +0100
57060 @@ -3,7 +3,8 @@
57061
57062 /* { dg-do assemble } */
57063 /* { dg-require-effective-target arm_neon_ok } */
57064 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57065 +/* { dg-options "-save-temps -O0" } */
57066 +/* { dg-add-options arm_neon } */
57067
57068 #include "arm_neon.h"
57069
57070 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQu32.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQu32.c
57071 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQu32.c 2007-07-25 14:28:31.000000000 +0200
57072 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQu32.c 2010-01-25 09:50:29.565686614 +0100
57073 @@ -3,7 +3,8 @@
57074
57075 /* { dg-do assemble } */
57076 /* { dg-require-effective-target arm_neon_ok } */
57077 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57078 +/* { dg-options "-save-temps -O0" } */
57079 +/* { dg-add-options arm_neon } */
57080
57081 #include "arm_neon.h"
57082
57083 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpQu8.c b/gcc/testsuite/gcc.target/arm/neon/vuzpQu8.c
57084 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpQu8.c 2007-07-25 14:28:31.000000000 +0200
57085 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpQu8.c 2010-01-25 09:50:29.565686614 +0100
57086 @@ -3,7 +3,8 @@
57087
57088 /* { dg-do assemble } */
57089 /* { dg-require-effective-target arm_neon_ok } */
57090 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57091 +/* { dg-options "-save-temps -O0" } */
57092 +/* { dg-add-options arm_neon } */
57093
57094 #include "arm_neon.h"
57095
57096 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzps16.c b/gcc/testsuite/gcc.target/arm/neon/vuzps16.c
57097 --- a/gcc/testsuite/gcc.target/arm/neon/vuzps16.c 2007-07-25 14:28:31.000000000 +0200
57098 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzps16.c 2010-01-25 09:50:29.565686614 +0100
57099 @@ -3,7 +3,8 @@
57100
57101 /* { dg-do assemble } */
57102 /* { dg-require-effective-target arm_neon_ok } */
57103 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57104 +/* { dg-options "-save-temps -O0" } */
57105 +/* { dg-add-options arm_neon } */
57106
57107 #include "arm_neon.h"
57108
57109 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzps32.c b/gcc/testsuite/gcc.target/arm/neon/vuzps32.c
57110 --- a/gcc/testsuite/gcc.target/arm/neon/vuzps32.c 2007-07-25 14:28:31.000000000 +0200
57111 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzps32.c 2010-01-25 09:50:29.565686614 +0100
57112 @@ -3,7 +3,8 @@
57113
57114 /* { dg-do assemble } */
57115 /* { dg-require-effective-target arm_neon_ok } */
57116 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57117 +/* { dg-options "-save-temps -O0" } */
57118 +/* { dg-add-options arm_neon } */
57119
57120 #include "arm_neon.h"
57121
57122 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzps8.c b/gcc/testsuite/gcc.target/arm/neon/vuzps8.c
57123 --- a/gcc/testsuite/gcc.target/arm/neon/vuzps8.c 2007-07-25 14:28:31.000000000 +0200
57124 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzps8.c 2010-01-25 09:50:29.565686614 +0100
57125 @@ -3,7 +3,8 @@
57126
57127 /* { dg-do assemble } */
57128 /* { dg-require-effective-target arm_neon_ok } */
57129 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57130 +/* { dg-options "-save-temps -O0" } */
57131 +/* { dg-add-options arm_neon } */
57132
57133 #include "arm_neon.h"
57134
57135 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpu16.c b/gcc/testsuite/gcc.target/arm/neon/vuzpu16.c
57136 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpu16.c 2007-07-25 14:28:31.000000000 +0200
57137 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpu16.c 2010-01-25 09:50:29.565686614 +0100
57138 @@ -3,7 +3,8 @@
57139
57140 /* { dg-do assemble } */
57141 /* { dg-require-effective-target arm_neon_ok } */
57142 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57143 +/* { dg-options "-save-temps -O0" } */
57144 +/* { dg-add-options arm_neon } */
57145
57146 #include "arm_neon.h"
57147
57148 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpu32.c b/gcc/testsuite/gcc.target/arm/neon/vuzpu32.c
57149 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpu32.c 2007-07-25 14:28:31.000000000 +0200
57150 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpu32.c 2010-01-25 09:50:29.565686614 +0100
57151 @@ -3,7 +3,8 @@
57152
57153 /* { dg-do assemble } */
57154 /* { dg-require-effective-target arm_neon_ok } */
57155 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57156 +/* { dg-options "-save-temps -O0" } */
57157 +/* { dg-add-options arm_neon } */
57158
57159 #include "arm_neon.h"
57160
57161 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vuzpu8.c b/gcc/testsuite/gcc.target/arm/neon/vuzpu8.c
57162 --- a/gcc/testsuite/gcc.target/arm/neon/vuzpu8.c 2007-07-25 14:28:31.000000000 +0200
57163 +++ b/gcc/testsuite/gcc.target/arm/neon/vuzpu8.c 2010-01-25 09:50:29.565686614 +0100
57164 @@ -3,7 +3,8 @@
57165
57166 /* { dg-do assemble } */
57167 /* { dg-require-effective-target arm_neon_ok } */
57168 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57169 +/* { dg-options "-save-temps -O0" } */
57170 +/* { dg-add-options arm_neon } */
57171
57172 #include "arm_neon.h"
57173
57174 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipf32.c b/gcc/testsuite/gcc.target/arm/neon/vzipf32.c
57175 --- a/gcc/testsuite/gcc.target/arm/neon/vzipf32.c 2007-07-25 14:28:31.000000000 +0200
57176 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipf32.c 2010-01-25 09:50:29.565686614 +0100
57177 @@ -3,7 +3,8 @@
57178
57179 /* { dg-do assemble } */
57180 /* { dg-require-effective-target arm_neon_ok } */
57181 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57182 +/* { dg-options "-save-temps -O0" } */
57183 +/* { dg-add-options arm_neon } */
57184
57185 #include "arm_neon.h"
57186
57187 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipp16.c b/gcc/testsuite/gcc.target/arm/neon/vzipp16.c
57188 --- a/gcc/testsuite/gcc.target/arm/neon/vzipp16.c 2007-07-25 14:28:31.000000000 +0200
57189 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipp16.c 2010-01-25 09:50:29.565686614 +0100
57190 @@ -3,7 +3,8 @@
57191
57192 /* { dg-do assemble } */
57193 /* { dg-require-effective-target arm_neon_ok } */
57194 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57195 +/* { dg-options "-save-temps -O0" } */
57196 +/* { dg-add-options arm_neon } */
57197
57198 #include "arm_neon.h"
57199
57200 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipp8.c b/gcc/testsuite/gcc.target/arm/neon/vzipp8.c
57201 --- a/gcc/testsuite/gcc.target/arm/neon/vzipp8.c 2007-07-25 14:28:31.000000000 +0200
57202 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipp8.c 2010-01-25 09:50:29.565686614 +0100
57203 @@ -3,7 +3,8 @@
57204
57205 /* { dg-do assemble } */
57206 /* { dg-require-effective-target arm_neon_ok } */
57207 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57208 +/* { dg-options "-save-temps -O0" } */
57209 +/* { dg-add-options arm_neon } */
57210
57211 #include "arm_neon.h"
57212
57213 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQf32.c b/gcc/testsuite/gcc.target/arm/neon/vzipQf32.c
57214 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQf32.c 2007-07-25 14:28:31.000000000 +0200
57215 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQf32.c 2010-01-25 09:50:29.565686614 +0100
57216 @@ -3,7 +3,8 @@
57217
57218 /* { dg-do assemble } */
57219 /* { dg-require-effective-target arm_neon_ok } */
57220 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57221 +/* { dg-options "-save-temps -O0" } */
57222 +/* { dg-add-options arm_neon } */
57223
57224 #include "arm_neon.h"
57225
57226 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQp16.c b/gcc/testsuite/gcc.target/arm/neon/vzipQp16.c
57227 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQp16.c 2007-07-25 14:28:31.000000000 +0200
57228 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQp16.c 2010-01-25 09:50:29.565686614 +0100
57229 @@ -3,7 +3,8 @@
57230
57231 /* { dg-do assemble } */
57232 /* { dg-require-effective-target arm_neon_ok } */
57233 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57234 +/* { dg-options "-save-temps -O0" } */
57235 +/* { dg-add-options arm_neon } */
57236
57237 #include "arm_neon.h"
57238
57239 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQp8.c b/gcc/testsuite/gcc.target/arm/neon/vzipQp8.c
57240 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQp8.c 2007-07-25 14:28:31.000000000 +0200
57241 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQp8.c 2010-01-25 09:50:29.565686614 +0100
57242 @@ -3,7 +3,8 @@
57243
57244 /* { dg-do assemble } */
57245 /* { dg-require-effective-target arm_neon_ok } */
57246 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57247 +/* { dg-options "-save-temps -O0" } */
57248 +/* { dg-add-options arm_neon } */
57249
57250 #include "arm_neon.h"
57251
57252 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQs16.c b/gcc/testsuite/gcc.target/arm/neon/vzipQs16.c
57253 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQs16.c 2007-07-25 14:28:31.000000000 +0200
57254 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQs16.c 2010-01-25 09:50:29.565686614 +0100
57255 @@ -3,7 +3,8 @@
57256
57257 /* { dg-do assemble } */
57258 /* { dg-require-effective-target arm_neon_ok } */
57259 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57260 +/* { dg-options "-save-temps -O0" } */
57261 +/* { dg-add-options arm_neon } */
57262
57263 #include "arm_neon.h"
57264
57265 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQs32.c b/gcc/testsuite/gcc.target/arm/neon/vzipQs32.c
57266 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQs32.c 2007-07-25 14:28:31.000000000 +0200
57267 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQs32.c 2010-01-25 09:50:29.565686614 +0100
57268 @@ -3,7 +3,8 @@
57269
57270 /* { dg-do assemble } */
57271 /* { dg-require-effective-target arm_neon_ok } */
57272 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57273 +/* { dg-options "-save-temps -O0" } */
57274 +/* { dg-add-options arm_neon } */
57275
57276 #include "arm_neon.h"
57277
57278 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQs8.c b/gcc/testsuite/gcc.target/arm/neon/vzipQs8.c
57279 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQs8.c 2007-07-25 14:28:31.000000000 +0200
57280 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQs8.c 2010-01-25 09:50:29.565686614 +0100
57281 @@ -3,7 +3,8 @@
57282
57283 /* { dg-do assemble } */
57284 /* { dg-require-effective-target arm_neon_ok } */
57285 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57286 +/* { dg-options "-save-temps -O0" } */
57287 +/* { dg-add-options arm_neon } */
57288
57289 #include "arm_neon.h"
57290
57291 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQu16.c b/gcc/testsuite/gcc.target/arm/neon/vzipQu16.c
57292 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQu16.c 2007-07-25 14:28:31.000000000 +0200
57293 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQu16.c 2010-01-25 09:50:29.565686614 +0100
57294 @@ -3,7 +3,8 @@
57295
57296 /* { dg-do assemble } */
57297 /* { dg-require-effective-target arm_neon_ok } */
57298 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57299 +/* { dg-options "-save-temps -O0" } */
57300 +/* { dg-add-options arm_neon } */
57301
57302 #include "arm_neon.h"
57303
57304 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQu32.c b/gcc/testsuite/gcc.target/arm/neon/vzipQu32.c
57305 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQu32.c 2007-07-25 14:28:31.000000000 +0200
57306 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQu32.c 2010-01-25 09:50:29.565686614 +0100
57307 @@ -3,7 +3,8 @@
57308
57309 /* { dg-do assemble } */
57310 /* { dg-require-effective-target arm_neon_ok } */
57311 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57312 +/* { dg-options "-save-temps -O0" } */
57313 +/* { dg-add-options arm_neon } */
57314
57315 #include "arm_neon.h"
57316
57317 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipQu8.c b/gcc/testsuite/gcc.target/arm/neon/vzipQu8.c
57318 --- a/gcc/testsuite/gcc.target/arm/neon/vzipQu8.c 2007-07-25 14:28:31.000000000 +0200
57319 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipQu8.c 2010-01-25 09:50:29.565686614 +0100
57320 @@ -3,7 +3,8 @@
57321
57322 /* { dg-do assemble } */
57323 /* { dg-require-effective-target arm_neon_ok } */
57324 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57325 +/* { dg-options "-save-temps -O0" } */
57326 +/* { dg-add-options arm_neon } */
57327
57328 #include "arm_neon.h"
57329
57330 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzips16.c b/gcc/testsuite/gcc.target/arm/neon/vzips16.c
57331 --- a/gcc/testsuite/gcc.target/arm/neon/vzips16.c 2007-07-25 14:28:31.000000000 +0200
57332 +++ b/gcc/testsuite/gcc.target/arm/neon/vzips16.c 2010-01-25 09:50:29.565686614 +0100
57333 @@ -3,7 +3,8 @@
57334
57335 /* { dg-do assemble } */
57336 /* { dg-require-effective-target arm_neon_ok } */
57337 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57338 +/* { dg-options "-save-temps -O0" } */
57339 +/* { dg-add-options arm_neon } */
57340
57341 #include "arm_neon.h"
57342
57343 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzips32.c b/gcc/testsuite/gcc.target/arm/neon/vzips32.c
57344 --- a/gcc/testsuite/gcc.target/arm/neon/vzips32.c 2007-07-25 14:28:31.000000000 +0200
57345 +++ b/gcc/testsuite/gcc.target/arm/neon/vzips32.c 2010-01-25 09:50:29.565686614 +0100
57346 @@ -3,7 +3,8 @@
57347
57348 /* { dg-do assemble } */
57349 /* { dg-require-effective-target arm_neon_ok } */
57350 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57351 +/* { dg-options "-save-temps -O0" } */
57352 +/* { dg-add-options arm_neon } */
57353
57354 #include "arm_neon.h"
57355
57356 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzips8.c b/gcc/testsuite/gcc.target/arm/neon/vzips8.c
57357 --- a/gcc/testsuite/gcc.target/arm/neon/vzips8.c 2007-07-25 14:28:31.000000000 +0200
57358 +++ b/gcc/testsuite/gcc.target/arm/neon/vzips8.c 2010-01-25 09:50:29.565686614 +0100
57359 @@ -3,7 +3,8 @@
57360
57361 /* { dg-do assemble } */
57362 /* { dg-require-effective-target arm_neon_ok } */
57363 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57364 +/* { dg-options "-save-temps -O0" } */
57365 +/* { dg-add-options arm_neon } */
57366
57367 #include "arm_neon.h"
57368
57369 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipu16.c b/gcc/testsuite/gcc.target/arm/neon/vzipu16.c
57370 --- a/gcc/testsuite/gcc.target/arm/neon/vzipu16.c 2007-07-25 14:28:31.000000000 +0200
57371 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipu16.c 2010-01-25 09:50:29.565686614 +0100
57372 @@ -3,7 +3,8 @@
57373
57374 /* { dg-do assemble } */
57375 /* { dg-require-effective-target arm_neon_ok } */
57376 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57377 +/* { dg-options "-save-temps -O0" } */
57378 +/* { dg-add-options arm_neon } */
57379
57380 #include "arm_neon.h"
57381
57382 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipu32.c b/gcc/testsuite/gcc.target/arm/neon/vzipu32.c
57383 --- a/gcc/testsuite/gcc.target/arm/neon/vzipu32.c 2007-07-25 14:28:31.000000000 +0200
57384 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipu32.c 2010-01-25 09:50:29.565686614 +0100
57385 @@ -3,7 +3,8 @@
57386
57387 /* { dg-do assemble } */
57388 /* { dg-require-effective-target arm_neon_ok } */
57389 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57390 +/* { dg-options "-save-temps -O0" } */
57391 +/* { dg-add-options arm_neon } */
57392
57393 #include "arm_neon.h"
57394
57395 diff -Nur a/gcc/testsuite/gcc.target/arm/neon/vzipu8.c b/gcc/testsuite/gcc.target/arm/neon/vzipu8.c
57396 --- a/gcc/testsuite/gcc.target/arm/neon/vzipu8.c 2007-07-25 14:28:31.000000000 +0200
57397 +++ b/gcc/testsuite/gcc.target/arm/neon/vzipu8.c 2010-01-25 09:50:29.565686614 +0100
57398 @@ -3,7 +3,8 @@
57399
57400 /* { dg-do assemble } */
57401 /* { dg-require-effective-target arm_neon_ok } */
57402 -/* { dg-options "-save-temps -O0 -mfpu=neon -mfloat-abi=softfp" } */
57403 +/* { dg-options "-save-temps -O0" } */
57404 +/* { dg-add-options arm_neon } */
57405
57406 #include "arm_neon.h"
57407
57408 diff -Nur a/gcc/testsuite/gcc.target/arm/neon-cond-1.c b/gcc/testsuite/gcc.target/arm/neon-cond-1.c
57409 --- a/gcc/testsuite/gcc.target/arm/neon-cond-1.c 2009-01-27 17:14:13.000000000 +0100
57410 +++ b/gcc/testsuite/gcc.target/arm/neon-cond-1.c 2010-01-25 09:50:29.565686614 +0100
57411 @@ -1,6 +1,7 @@
57412 /* { dg-do run } */
57413 /* { dg-require-effective-target arm_neon_hw } */
57414 -/* { dg-options "-O2 -mfpu=neon -mfloat-abi=softfp" } */
57415 +/* { dg-options "-O2" } */
57416 +/* { dg-add-options arm_neon } */
57417 /* Check that the arm_final_prescan_insn ccfsm code does not try to
57418 * conditionally execute NEON instructions. */
57419 #include <arm_neon.h>
57420 diff -Nur a/gcc/testsuite/gcc.target/arm/neon-modes-1.c b/gcc/testsuite/gcc.target/arm/neon-modes-1.c
57421 --- a/gcc/testsuite/gcc.target/arm/neon-modes-1.c 1970-01-01 01:00:00.000000000 +0100
57422 +++ b/gcc/testsuite/gcc.target/arm/neon-modes-1.c 2010-01-25 09:50:29.565686614 +0100
57423 @@ -0,0 +1,14 @@
57424 +/* { dg-do compile } */
57425 +/* { dg-require-effective-target arm_neon_ok } */
57426 +/* { dg-options "-O1" } */
57427 +/* { dg-add-options arm_neon } */
57428 +
57429 +#include <arm_neon.h>
57430 +
57431 +void neon_internal_error(int *dst, int *src)
57432 +{
57433 + uint16x8x4_t sval;
57434 +
57435 + sval = vld4q_u16((void *)src);
57436 + vst4q_u16((void *)dst,sval);
57437 +}
57438 diff -Nur a/gcc/testsuite/gcc.target/arm/neon-vmla-1.c b/gcc/testsuite/gcc.target/arm/neon-vmla-1.c
57439 --- a/gcc/testsuite/gcc.target/arm/neon-vmla-1.c 1970-01-01 01:00:00.000000000 +0100
57440 +++ b/gcc/testsuite/gcc.target/arm/neon-vmla-1.c 2010-01-25 09:50:29.565686614 +0100
57441 @@ -0,0 +1,11 @@
57442 +/* { dg-require-effective-target arm_neon_hw } */
57443 +/* { dg-options "-O2 -ftree-vectorize" } */
57444 +/* { dg-add-options arm_neon } */
57445 +/* { dg-final { scan-assembler "vmla\\.f32" } } */
57446 +
57447 +/* Verify that VMLA is used. */
57448 +void f1(int n, float a, float x[], float y[]) {
57449 + int i;
57450 + for (i = 0; i < n; ++i)
57451 + y[i] = a * x[i] + y[i];
57452 +}
57453 diff -Nur a/gcc/testsuite/gcc.target/arm/neon-vmls-1.c b/gcc/testsuite/gcc.target/arm/neon-vmls-1.c
57454 --- a/gcc/testsuite/gcc.target/arm/neon-vmls-1.c 1970-01-01 01:00:00.000000000 +0100
57455 +++ b/gcc/testsuite/gcc.target/arm/neon-vmls-1.c 2010-01-25 09:50:29.565686614 +0100
57456 @@ -0,0 +1,11 @@
57457 +/* { dg-require-effective-target arm_neon_hw } */
57458 +/* { dg-options "-O2 -ftree-vectorize" } */
57459 +/* { dg-add-options arm_neon } */
57460 +/* { dg-final { scan-assembler "vmls\\.f32" } } */
57461 +
57462 +/* Verify that VMLS is used. */
57463 +void f1(int n, float a, float x[], float y[]) {
57464 + int i;
57465 + for (i = 0; i < n; ++i)
57466 + y[i] = y[i] - a * x[i];
57467 +}
57468 diff -Nur a/gcc/testsuite/gcc.target/arm/pr40482.c b/gcc/testsuite/gcc.target/arm/pr40482.c
57469 --- a/gcc/testsuite/gcc.target/arm/pr40482.c 1970-01-01 01:00:00.000000000 +0100
57470 +++ b/gcc/testsuite/gcc.target/arm/pr40482.c 2010-01-25 09:50:29.565686614 +0100
57471 @@ -0,0 +1,7 @@
57472 +/* { dg-options "-mthumb -Os" } */
57473 +/* { dg-final { scan-assembler-not "ldr" } } */
57474 +
57475 +unsigned int foo (unsigned int i )
57476 +{
57477 + return i | 0xff000000;
57478 +}
57479 diff -Nur a/gcc/testsuite/gcc.target/arm/thumb2-mul-space-2.c b/gcc/testsuite/gcc.target/arm/thumb2-mul-space-2.c
57480 --- a/gcc/testsuite/gcc.target/arm/thumb2-mul-space-2.c 1970-01-01 01:00:00.000000000 +0100
57481 +++ b/gcc/testsuite/gcc.target/arm/thumb2-mul-space-2.c 2010-01-25 09:50:29.565686614 +0100
57482 @@ -0,0 +1,15 @@
57483 +/* In Thumb-2 mode, when optimizing for size, generate a "muls"
57484 + instruction and use the resulting condition flags rather than a
57485 + separate compare instruction. */
57486 +/* { dg-options "-mthumb -Os" } */
57487 +/* { dg-require-effective-target arm_thumb2_ok } */
57488 +/* { dg-final { scan-assembler "muls" } } */
57489 +/* { dg-final { scan-assembler-not "cmp" } } */
57490 +
57491 +int x;
57492 +
57493 +void f(int i, int j)
57494 +{
57495 + if (i * j < 0)
57496 + x = 1;
57497 +}
57498 diff -Nur a/gcc/testsuite/gcc.target/arm/thumb2-mul-space-3.c b/gcc/testsuite/gcc.target/arm/thumb2-mul-space-3.c
57499 --- a/gcc/testsuite/gcc.target/arm/thumb2-mul-space-3.c 1970-01-01 01:00:00.000000000 +0100
57500 +++ b/gcc/testsuite/gcc.target/arm/thumb2-mul-space-3.c 2010-01-25 09:50:29.565686614 +0100
57501 @@ -0,0 +1,17 @@
57502 +/* In Thumb-2 mode, when optimizing for size, generate a "muls"
57503 + instruction and use the resulting condition flags rather than a
57504 + separate compare instruction. */
57505 +/* { dg-options "-mthumb -Os" } */
57506 +/* { dg-require-effective-target arm_thumb2_ok } */
57507 +/* { dg-final { scan-assembler "muls" } } */
57508 +/* { dg-final { scan-assembler-not "cmp" } } */
57509 +
57510 +int x;
57511 +
57512 +int f(int i, int j)
57513 +{
57514 + i = i * j;
57515 + if (i < 0)
57516 + x = 1;
57517 + return i;
57518 +}
57519 diff -Nur a/gcc/testsuite/gcc.target/arm/thumb2-mul-space.c b/gcc/testsuite/gcc.target/arm/thumb2-mul-space.c
57520 --- a/gcc/testsuite/gcc.target/arm/thumb2-mul-space.c 1970-01-01 01:00:00.000000000 +0100
57521 +++ b/gcc/testsuite/gcc.target/arm/thumb2-mul-space.c 2010-01-25 09:50:29.565686614 +0100
57522 @@ -0,0 +1,10 @@
57523 +/* Use 16-bit multiply instruction in Thumb-2 mode when optimizing for
57524 + size. */
57525 +/* { dg-options "-mthumb -Os" } */
57526 +/* { dg-require-effective-target arm_thumb2_ok } */
57527 +/* { dg-final { scan-assembler "muls" } } */
57528 +
57529 +int f(int i, int j)
57530 +{
57531 + return i * j;
57532 +}
57533 diff -Nur a/gcc/testsuite/gcc.target/arm/thumb2-mul-speed.c b/gcc/testsuite/gcc.target/arm/thumb2-mul-speed.c
57534 --- a/gcc/testsuite/gcc.target/arm/thumb2-mul-speed.c 1970-01-01 01:00:00.000000000 +0100
57535 +++ b/gcc/testsuite/gcc.target/arm/thumb2-mul-speed.c 2010-01-25 09:50:29.565686614 +0100
57536 @@ -0,0 +1,27 @@
57537 +/* Do not use 16-bit multiply instructions in Thumb-2 mode when
57538 + optimizing for speed. */
57539 +/* { dg-options "-mthumb -O2" } */
57540 +/* { dg-require-effective-target arm_thumb2_ok } */
57541 +/* { dg-final { scan-assembler-not "muls" } } */
57542 +
57543 +int f(int i, int j)
57544 +{
57545 + return i * j;
57546 +}
57547 +
57548 +int x;
57549 +
57550 +void g(int i, int j)
57551 +{
57552 + if (i * j < 0)
57553 + x = 1;
57554 +}
57555 +
57556 +int h(int i, int j)
57557 +{
57558 + i = i * j;
57559 + if (i < 0)
57560 + x = 1;
57561 + return i;
57562 +}
57563 +
57564 diff -Nur a/gcc/testsuite/gcc.target/arm/vfp-ldmdbd.c b/gcc/testsuite/gcc.target/arm/vfp-ldmdbd.c
57565 --- a/gcc/testsuite/gcc.target/arm/vfp-ldmdbd.c 1970-01-01 01:00:00.000000000 +0100
57566 +++ b/gcc/testsuite/gcc.target/arm/vfp-ldmdbd.c 2010-01-25 09:50:29.565686614 +0100
57567 @@ -0,0 +1,15 @@
57568 +/* { dg-do compile } */
57569 +/* { dg-require-effective-target arm_vfp_ok } */
57570 +/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
57571 +
57572 +extern void bar (double);
57573 +
57574 +void
57575 +foo (double *p, double a, int n)
57576 +{
57577 + do
57578 + bar (*--p + a);
57579 + while (n--);
57580 +}
57581 +
57582 +/* { dg-final { scan-assembler "fldmdbd" } } */
57583 diff -Nur a/gcc/testsuite/gcc.target/arm/vfp-ldmdbs.c b/gcc/testsuite/gcc.target/arm/vfp-ldmdbs.c
57584 --- a/gcc/testsuite/gcc.target/arm/vfp-ldmdbs.c 1970-01-01 01:00:00.000000000 +0100
57585 +++ b/gcc/testsuite/gcc.target/arm/vfp-ldmdbs.c 2010-01-25 09:50:29.565686614 +0100
57586 @@ -0,0 +1,15 @@
57587 +/* { dg-do compile } */
57588 +/* { dg-require-effective-target arm_vfp_ok } */
57589 +/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
57590 +
57591 +extern void baz (float);
57592 +
57593 +void
57594 +foo (float *p, float a, int n)
57595 +{
57596 + do
57597 + bar (*--p + a);
57598 + while (n--);
57599 +}
57600 +
57601 +/* { dg-final { scan-assembler "fldmdbs" } } */
57602 diff -Nur a/gcc/testsuite/gcc.target/arm/vfp-ldmiad.c b/gcc/testsuite/gcc.target/arm/vfp-ldmiad.c
57603 --- a/gcc/testsuite/gcc.target/arm/vfp-ldmiad.c 1970-01-01 01:00:00.000000000 +0100
57604 +++ b/gcc/testsuite/gcc.target/arm/vfp-ldmiad.c 2010-01-25 09:50:29.565686614 +0100
57605 @@ -0,0 +1,15 @@
57606 +/* { dg-do compile } */
57607 +/* { dg-require-effective-target arm_vfp_ok } */
57608 +/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
57609 +
57610 +extern void bar (double);
57611 +
57612 +void
57613 +foo (double *p, double a, int n)
57614 +{
57615 + do
57616 + bar (*p++ + a);
57617 + while (n--);
57618 +}
57619 +
57620 +/* { dg-final { scan-assembler "fldmiad" } } */
57621 diff -Nur a/gcc/testsuite/gcc.target/arm/vfp-ldmias.c b/gcc/testsuite/gcc.target/arm/vfp-ldmias.c
57622 --- a/gcc/testsuite/gcc.target/arm/vfp-ldmias.c 1970-01-01 01:00:00.000000000 +0100
57623 +++ b/gcc/testsuite/gcc.target/arm/vfp-ldmias.c 2010-01-25 09:50:29.565686614 +0100
57624 @@ -0,0 +1,15 @@
57625 +/* { dg-do compile } */
57626 +/* { dg-require-effective-target arm_vfp_ok } */
57627 +/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
57628 +
57629 +extern void baz (float);
57630 +
57631 +void
57632 +foo (float *p, float a, int n)
57633 +{
57634 + do
57635 + bar (*p++ + a);
57636 + while (n--);
57637 +}
57638 +
57639 +/* { dg-final { scan-assembler "fldmias" } } */
57640 diff -Nur a/gcc/testsuite/gcc.target/arm/vfp-stmdbd.c b/gcc/testsuite/gcc.target/arm/vfp-stmdbd.c
57641 --- a/gcc/testsuite/gcc.target/arm/vfp-stmdbd.c 1970-01-01 01:00:00.000000000 +0100
57642 +++ b/gcc/testsuite/gcc.target/arm/vfp-stmdbd.c 2010-01-25 09:50:29.565686614 +0100
57643 @@ -0,0 +1,14 @@
57644 +/* { dg-do compile } */
57645 +/* { dg-require-effective-target arm_vfp_ok } */
57646 +/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
57647 +
57648 +void
57649 +foo (double *p, double a, double b, int n)
57650 +{
57651 + double c = a + b;
57652 + do
57653 + *--p = c;
57654 + while (n--);
57655 +}
57656 +
57657 +/* { dg-final { scan-assembler "fstmdbd" } } */
57658 diff -Nur a/gcc/testsuite/gcc.target/arm/vfp-stmdbs.c b/gcc/testsuite/gcc.target/arm/vfp-stmdbs.c
57659 --- a/gcc/testsuite/gcc.target/arm/vfp-stmdbs.c 1970-01-01 01:00:00.000000000 +0100
57660 +++ b/gcc/testsuite/gcc.target/arm/vfp-stmdbs.c 2010-01-25 09:50:29.565686614 +0100
57661 @@ -0,0 +1,14 @@
57662 +/* { dg-do compile } */
57663 +/* { dg-require-effective-target arm_vfp_ok } */
57664 +/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
57665 +
57666 +void
57667 +foo (float *p, float a, float b, int n)
57668 +{
57669 + float c = a + b;
57670 + do
57671 + *--p = c;
57672 + while (n--);
57673 +}
57674 +
57675 +/* { dg-final { scan-assembler "fstmdbs" } } */
57676 diff -Nur a/gcc/testsuite/gcc.target/arm/vfp-stmiad.c b/gcc/testsuite/gcc.target/arm/vfp-stmiad.c
57677 --- a/gcc/testsuite/gcc.target/arm/vfp-stmiad.c 1970-01-01 01:00:00.000000000 +0100
57678 +++ b/gcc/testsuite/gcc.target/arm/vfp-stmiad.c 2010-01-25 09:50:29.565686614 +0100
57679 @@ -0,0 +1,14 @@
57680 +/* { dg-do compile } */
57681 +/* { dg-require-effective-target arm_vfp_ok } */
57682 +/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
57683 +
57684 +void
57685 +foo (double *p, double a, double b, int n)
57686 +{
57687 + double c = a + b;
57688 + do
57689 + *p++ = c;
57690 + while (n--);
57691 +}
57692 +
57693 +/* { dg-final { scan-assembler "fstmiad" } } */
57694 diff -Nur a/gcc/testsuite/gcc.target/arm/vfp-stmias.c b/gcc/testsuite/gcc.target/arm/vfp-stmias.c
57695 --- a/gcc/testsuite/gcc.target/arm/vfp-stmias.c 1970-01-01 01:00:00.000000000 +0100
57696 +++ b/gcc/testsuite/gcc.target/arm/vfp-stmias.c 2010-01-25 09:50:29.565686614 +0100
57697 @@ -0,0 +1,14 @@
57698 +/* { dg-do compile } */
57699 +/* { dg-require-effective-target arm_vfp_ok } */
57700 +/* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
57701 +
57702 +void
57703 +foo (float *p, float a, float b, int n)
57704 +{
57705 + float c = a + b;
57706 + do
57707 + *p++ = c;
57708 + while (n--);
57709 +}
57710 +
57711 +/* { dg-final { scan-assembler "fstmias" } } */
57712 diff -Nur a/gcc/testsuite/gcc.target/i386/387-1.c b/gcc/testsuite/gcc.target/i386/387-1.c
57713 --- a/gcc/testsuite/gcc.target/i386/387-1.c 2007-08-22 11:59:14.000000000 +0200
57714 +++ b/gcc/testsuite/gcc.target/i386/387-1.c 2010-01-25 09:50:29.565686614 +0100
57715 @@ -1,6 +1,7 @@
57716 /* Verify that -mno-fancy-math-387 works. */
57717 /* { dg-do compile } */
57718 /* { dg-require-effective-target ilp32 } */
57719 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i386" } } */
57720 /* { dg-options "-O -ffast-math -mfpmath=387 -mno-fancy-math-387 -march=i386" } */
57721 /* { dg-final { scan-assembler "call\t(.*)sin" } } */
57722 /* { dg-final { scan-assembler "call\t(.*)cos" } } */
57723 diff -Nur a/gcc/testsuite/gcc.target/i386/387-5.c b/gcc/testsuite/gcc.target/i386/387-5.c
57724 --- a/gcc/testsuite/gcc.target/i386/387-5.c 2007-08-22 11:59:14.000000000 +0200
57725 +++ b/gcc/testsuite/gcc.target/i386/387-5.c 2010-01-25 09:50:29.565686614 +0100
57726 @@ -1,6 +1,7 @@
57727 /* Verify that -mno-fancy-math-387 works. */
57728 /* { dg-do compile } */
57729 /* { dg-require-effective-target ilp32 } */
57730 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i386" } } */
57731 /* { dg-options "-O -ffast-math -mfpmath=387 -mno-fancy-math-387 -march=i386" } */
57732 /* { dg-final { scan-assembler "call\t(.*)atan" } } */
57733 /* { dg-final { scan-assembler "call\t(.*)log1p" } } */
57734 diff -Nur a/gcc/testsuite/gcc.target/i386/cmov7.c b/gcc/testsuite/gcc.target/i386/cmov7.c
57735 --- a/gcc/testsuite/gcc.target/i386/cmov7.c 2008-01-10 19:31:43.000000000 +0100
57736 +++ b/gcc/testsuite/gcc.target/i386/cmov7.c 2010-01-25 09:50:29.565686614 +0100
57737 @@ -1,6 +1,7 @@
57738 /* PR middle-end/33187 */
57739
57740 /* { dg-do compile } */
57741 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=k8" } } */
57742 /* { dg-options "-O2 -ffast-math -march=k8 -mbranch-cost=5 -mfpmath=387" } */
57743 /* { dg-final { scan-assembler "fcmov" } } */
57744
57745 diff -Nur a/gcc/testsuite/gcc.target/i386/funcspec-1.c b/gcc/testsuite/gcc.target/i386/funcspec-1.c
57746 --- a/gcc/testsuite/gcc.target/i386/funcspec-1.c 2008-08-31 01:50:40.000000000 +0200
57747 +++ b/gcc/testsuite/gcc.target/i386/funcspec-1.c 2010-01-25 09:50:29.575686558 +0100
57748 @@ -3,6 +3,7 @@
57749 for a function that doesn't use attribute((option)). */
57750 /* { dg-do compile } */
57751 /* { dg-require-effective-target ilp32 } */
57752 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i386" } } */
57753 /* { dg-options "-O3 -ftree-vectorize -march=i386" } */
57754 /* { dg-final { scan-assembler "addps\[ \t\]" } } */
57755 /* { dg-final { scan-assembler "fsubs\[ \t\]" } } */
57756 diff -Nur a/gcc/testsuite/gcc.target/i386/funcspec-8.c b/gcc/testsuite/gcc.target/i386/funcspec-8.c
57757 --- a/gcc/testsuite/gcc.target/i386/funcspec-8.c 2008-08-31 01:50:40.000000000 +0200
57758 +++ b/gcc/testsuite/gcc.target/i386/funcspec-8.c 2010-01-25 09:50:29.575686558 +0100
57759 @@ -1,6 +1,7 @@
57760 /* Test whether using target specific options, we can use the x86 builtin
57761 functions in functions with the appropriate function specific options. */
57762 /* { dg-do compile } */
57763 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=k8" } } */
57764 /* { dg-options "-O2 -march=k8 -mfpmath=sse" } */
57765
57766 typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
57767 diff -Nur a/gcc/testsuite/gcc.target/i386/gcc-have-sync-compare-and-swap-1.c b/gcc/testsuite/gcc.target/i386/gcc-have-sync-compare-and-swap-1.c
57768 --- a/gcc/testsuite/gcc.target/i386/gcc-have-sync-compare-and-swap-1.c 2007-08-22 11:59:14.000000000 +0200
57769 +++ b/gcc/testsuite/gcc.target/i386/gcc-have-sync-compare-and-swap-1.c 2010-01-25 09:50:29.575686558 +0100
57770 @@ -1,5 +1,6 @@
57771 /* { dg-do preprocess } */
57772 /* { dg-require-effective-target ilp32 } */
57773 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i386" } } */
57774 /* { dg-options "-march=i386" } */
57775
57776 #ifdef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
57777 diff -Nur a/gcc/testsuite/gcc.target/i386/gcc-have-sync-compare-and-swap-2.c b/gcc/testsuite/gcc.target/i386/gcc-have-sync-compare-and-swap-2.c
57778 --- a/gcc/testsuite/gcc.target/i386/gcc-have-sync-compare-and-swap-2.c 2007-08-22 11:59:14.000000000 +0200
57779 +++ b/gcc/testsuite/gcc.target/i386/gcc-have-sync-compare-and-swap-2.c 2010-01-25 09:50:29.575686558 +0100
57780 @@ -1,5 +1,6 @@
57781 /* { dg-do preprocess } */
57782 /* { dg-require-effective-target ilp32 } */
57783 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i486" } } */
57784 /* { dg-options "-march=i486" } */
57785
57786 #ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
57787 diff -Nur a/gcc/testsuite/gcc.target/i386/isa-10.c b/gcc/testsuite/gcc.target/i386/isa-10.c
57788 --- a/gcc/testsuite/gcc.target/i386/isa-10.c 2008-03-08 23:33:54.000000000 +0100
57789 +++ b/gcc/testsuite/gcc.target/i386/isa-10.c 2010-01-25 09:50:29.575686558 +0100
57790 @@ -1,4 +1,5 @@
57791 /* { dg-do run } */
57792 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=x86-64" } } */
57793 /* { dg-options "-march=x86-64 -msse5 -mno-sse4" } */
57794
57795 extern void abort (void);
57796 diff -Nur a/gcc/testsuite/gcc.target/i386/isa-6.c b/gcc/testsuite/gcc.target/i386/isa-6.c
57797 --- a/gcc/testsuite/gcc.target/i386/isa-6.c 2008-02-19 02:21:03.000000000 +0100
57798 +++ b/gcc/testsuite/gcc.target/i386/isa-6.c 2010-01-25 09:50:29.575686558 +0100
57799 @@ -1,4 +1,5 @@
57800 /* { dg-do run } */
57801 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=amdfam10" } } */
57802 /* { dg-options "-march=amdfam10 -mno-sse4" } */
57803
57804 extern void abort (void);
57805 diff -Nur a/gcc/testsuite/gcc.target/i386/isa-7.c b/gcc/testsuite/gcc.target/i386/isa-7.c
57806 --- a/gcc/testsuite/gcc.target/i386/isa-7.c 2008-02-19 02:21:03.000000000 +0100
57807 +++ b/gcc/testsuite/gcc.target/i386/isa-7.c 2010-01-25 09:50:29.575686558 +0100
57808 @@ -1,4 +1,5 @@
57809 /* { dg-do run } */
57810 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=amdfam10" } } */
57811 /* { dg-options "-march=amdfam10 -msse5 -mno-sse4" } */
57812
57813 extern void abort (void);
57814 diff -Nur a/gcc/testsuite/gcc.target/i386/isa-8.c b/gcc/testsuite/gcc.target/i386/isa-8.c
57815 --- a/gcc/testsuite/gcc.target/i386/isa-8.c 2008-02-19 02:21:03.000000000 +0100
57816 +++ b/gcc/testsuite/gcc.target/i386/isa-8.c 2010-01-25 09:50:29.575686558 +0100
57817 @@ -1,4 +1,5 @@
57818 /* { dg-do run } */
57819 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=amdfam10" } } */
57820 /* { dg-options "-march=amdfam10 -msse5 -mno-sse4a" } */
57821
57822 extern void abort (void);
57823 diff -Nur a/gcc/testsuite/gcc.target/i386/isa-9.c b/gcc/testsuite/gcc.target/i386/isa-9.c
57824 --- a/gcc/testsuite/gcc.target/i386/isa-9.c 2008-02-19 02:21:03.000000000 +0100
57825 +++ b/gcc/testsuite/gcc.target/i386/isa-9.c 2010-01-25 09:50:29.575686558 +0100
57826 @@ -1,4 +1,5 @@
57827 /* { dg-do run } */
57828 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=amdfam10" } } */
57829 /* { dg-options "-march=amdfam10 -mno-sse5" } */
57830
57831 extern void abort (void);
57832 diff -Nur a/gcc/testsuite/gcc.target/i386/lea.c b/gcc/testsuite/gcc.target/i386/lea.c
57833 --- a/gcc/testsuite/gcc.target/i386/lea.c 2007-08-22 11:59:14.000000000 +0200
57834 +++ b/gcc/testsuite/gcc.target/i386/lea.c 2010-01-25 09:50:29.575686558 +0100
57835 @@ -1,5 +1,6 @@
57836 /* { dg-do compile } */
57837 /* { dg-require-effective-target ilp32 } */
57838 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=pentiumpro" } } */
57839 /* { dg-options "-O2 -march=pentiumpro" } */
57840 /* { dg-final { scan-assembler "leal" } } */
57841 typedef struct {
57842 diff -Nur a/gcc/testsuite/gcc.target/i386/movbe-1.c b/gcc/testsuite/gcc.target/i386/movbe-1.c
57843 --- a/gcc/testsuite/gcc.target/i386/movbe-1.c 1970-01-01 01:00:00.000000000 +0100
57844 +++ b/gcc/testsuite/gcc.target/i386/movbe-1.c 2010-01-25 09:50:29.575686558 +0100
57845 @@ -0,0 +1,18 @@
57846 +/* { dg-do compile } */
57847 +/* { dg-options "-O2 -mmovbe" } */
57848 +
57849 +extern int x;
57850 +
57851 +void
57852 +foo (int i)
57853 +{
57854 + x = __builtin_bswap32 (i);
57855 +}
57856 +
57857 +int
57858 +bar ()
57859 +{
57860 + return __builtin_bswap32 (x);
57861 +}
57862 +
57863 +/* { dg-final { scan-assembler-times "movbe\[ \t\]" 2 } } */
57864 diff -Nur a/gcc/testsuite/gcc.target/i386/movbe-2.c b/gcc/testsuite/gcc.target/i386/movbe-2.c
57865 --- a/gcc/testsuite/gcc.target/i386/movbe-2.c 1970-01-01 01:00:00.000000000 +0100
57866 +++ b/gcc/testsuite/gcc.target/i386/movbe-2.c 2010-01-25 09:50:29.575686558 +0100
57867 @@ -0,0 +1,19 @@
57868 +/* { dg-do compile } */
57869 +/* { dg-options "-O2 -mmovbe" } */
57870 +
57871 +extern long long x;
57872 +
57873 +void
57874 +foo (long long i)
57875 +{
57876 + x = __builtin_bswap64 (i);
57877 +}
57878 +
57879 +long long
57880 +bar ()
57881 +{
57882 + return __builtin_bswap64 (x);
57883 +}
57884 +
57885 +/* { dg-final { scan-assembler-times "movbe\[ \t\]" 4 { target ilp32 } } } */
57886 +/* { dg-final { scan-assembler-times "movbe\[ \t\]" 2 { target lp64 } } } */
57887 diff -Nur a/gcc/testsuite/gcc.target/i386/pentium4-not-mull.c b/gcc/testsuite/gcc.target/i386/pentium4-not-mull.c
57888 --- a/gcc/testsuite/gcc.target/i386/pentium4-not-mull.c 2007-08-22 11:59:14.000000000 +0200
57889 +++ b/gcc/testsuite/gcc.target/i386/pentium4-not-mull.c 2010-01-25 09:50:29.575686558 +0100
57890 @@ -1,5 +1,6 @@
57891 /* { dg-do compile } */
57892 /* { dg-require-effective-target ilp32 } */
57893 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=pentium4" } } */
57894 /* { dg-options "-O2 -march=pentium4" } */
57895 /* { dg-final { scan-assembler-not "imull" } } */
57896
57897 diff -Nur a/gcc/testsuite/gcc.target/i386/pr37216.c b/gcc/testsuite/gcc.target/i386/pr37216.c
57898 --- a/gcc/testsuite/gcc.target/i386/pr37216.c 1970-01-01 01:00:00.000000000 +0100
57899 +++ b/gcc/testsuite/gcc.target/i386/pr37216.c 2010-01-25 09:50:29.575686558 +0100
57900 @@ -0,0 +1,17 @@
57901 +/* { dg-do run } */
57902 +/* { dg-options "-O3 -msse2" } */
57903 +/* { dg-options "-O3 -msse2 -mpe-aligned-commons" { target pe_aligned_commons } } */
57904 +
57905 +#include "sse2-check.h"
57906 +
57907 +int iarr[64];
57908 +int iint = 0;
57909 +
57910 +void
57911 +sse2_test (void)
57912 +{
57913 + int i;
57914 +
57915 + for (i = 0; i < 64; i++)
57916 + iarr[i] = -2;
57917 +}
57918 diff -Nur a/gcc/testsuite/gcc.target/i386/pr37843-1.c b/gcc/testsuite/gcc.target/i386/pr37843-1.c
57919 --- a/gcc/testsuite/gcc.target/i386/pr37843-1.c 2008-11-28 17:30:56.000000000 +0100
57920 +++ b/gcc/testsuite/gcc.target/i386/pr37843-1.c 2010-01-25 09:50:29.575686558 +0100
57921 @@ -2,8 +2,8 @@
57922 /* { dg-do compile { target nonpic } } */
57923 /* { dg-options "-O2 -mpreferred-stack-boundary=6 -mincoming-stack-boundary=5" } */
57924 /* { dg-final { scan-assembler "and\[lq\]?\[\\t \]*\\$-64,\[\\t \]*%\[re\]?sp" } } */
57925 -/* { dg-final { scan-assembler "call\[\\t \]*foo" } } */
57926 -/* { dg-final { scan-assembler-not "jmp\[\\t \]*foo" } } */
57927 +/* { dg-final { scan-assembler "call\[\\t \]*_?foo" } } */
57928 +/* { dg-final { scan-assembler-not "jmp\[\\t \]*_?foo" } } */
57929
57930 extern int foo (void);
57931
57932 diff -Nur a/gcc/testsuite/gcc.target/i386/pr37843-2.c b/gcc/testsuite/gcc.target/i386/pr37843-2.c
57933 --- a/gcc/testsuite/gcc.target/i386/pr37843-2.c 2008-11-28 17:30:56.000000000 +0100
57934 +++ b/gcc/testsuite/gcc.target/i386/pr37843-2.c 2010-01-25 09:50:29.575686558 +0100
57935 @@ -2,8 +2,8 @@
57936 /* { dg-do compile { target nonpic } } */
57937 /* { dg-options "-O2 -mpreferred-stack-boundary=6 -mincoming-stack-boundary=6" } */
57938 /* { dg-final { scan-assembler-not "and\[lq\]?\[\\t \]*\\$-64,\[\\t \]*%\[re\]?sp" } } */
57939 -/* { dg-final { scan-assembler-not "call\[\\t \]*foo" } } */
57940 -/* { dg-final { scan-assembler "jmp\[\\t \]*foo" } } */
57941 +/* { dg-final { scan-assembler-not "call\[\\t \]*_?foo" } } */
57942 +/* { dg-final { scan-assembler "jmp\[\\t \]*_?foo" } } */
57943
57944 extern int foo (void);
57945
57946 diff -Nur a/gcc/testsuite/gcc.target/i386/pr37843-3.c b/gcc/testsuite/gcc.target/i386/pr37843-3.c
57947 --- a/gcc/testsuite/gcc.target/i386/pr37843-3.c 2009-01-15 16:44:41.000000000 +0100
57948 +++ b/gcc/testsuite/gcc.target/i386/pr37843-3.c 2010-01-25 09:50:29.575686558 +0100
57949 @@ -2,8 +2,8 @@
57950 /* { dg-do compile { target { ilp32 && nonpic } } } */
57951 /* { dg-options "-O2 -msse2 -mpreferred-stack-boundary=4 -mstackrealign" } */
57952 /* { dg-final { scan-assembler-not "andl\[\\t \]*\\$-16,\[\\t \]*%\[re\]?sp" } } */
57953 -/* { dg-final { scan-assembler-not "call\[\\t \]*foo" } } */
57954 -/* { dg-final { scan-assembler "jmp\[\\t \]*foo" } } */
57955 +/* { dg-final { scan-assembler-not "call\[\\t \]*_?foo" } } */
57956 +/* { dg-final { scan-assembler "jmp\[\\t \]*_?foo" } } */
57957
57958 #include <emmintrin.h>
57959
57960 diff -Nur a/gcc/testsuite/gcc.target/i386/sse-5.c b/gcc/testsuite/gcc.target/i386/sse-5.c
57961 --- a/gcc/testsuite/gcc.target/i386/sse-5.c 2008-09-09 16:48:15.000000000 +0200
57962 +++ b/gcc/testsuite/gcc.target/i386/sse-5.c 2010-01-25 09:50:29.575686558 +0100
57963 @@ -1,5 +1,6 @@
57964 /* { dg-do compile } */
57965 /* { dg-require-effective-target ilp32 } */
57966 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i386" } } */
57967 /* { dg-options "-Winline -O2 -march=i386" } */
57968
57969 typedef double v2df __attribute__ ((vector_size (16)));
57970 diff -Nur a/gcc/testsuite/gcc.target/i386/ssefn-1.c b/gcc/testsuite/gcc.target/i386/ssefn-1.c
57971 --- a/gcc/testsuite/gcc.target/i386/ssefn-1.c 2007-08-22 11:59:14.000000000 +0200
57972 +++ b/gcc/testsuite/gcc.target/i386/ssefn-1.c 2010-01-25 09:50:29.575686558 +0100
57973 @@ -7,6 +7,7 @@
57974 /* { dg-final { scan-assembler "mulss" } } */
57975 /* { dg-final { scan-assembler-not "movsd" } } */
57976 /* { dg-final { scan-assembler-not "mulsd" } } */
57977 +/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i386" } } */
57978 /* { dg-options "-O2 -march=i386 -msse -mfpmath=sse -fno-inline" } */
57979
57980 static float xs (void)
57981 diff -Nur a/gcc/testsuite/gcc.target/m68k/20090709-1.c b/gcc/testsuite/gcc.target/m68k/20090709-1.c
57982 --- a/gcc/testsuite/gcc.target/m68k/20090709-1.c 1970-01-01 01:00:00.000000000 +0100
57983 +++ b/gcc/testsuite/gcc.target/m68k/20090709-1.c 2010-01-25 09:50:29.575686558 +0100
57984 @@ -0,0 +1,20 @@
57985 +/* { dg-do compile } */
57986 +/* There should be 3 occurrences of .LC0 in the code:
57987 + one for the definition of "0",
57988 + one for use in test1() and
57989 + one for use in test2().
57990 + FIXME: At the moment m68k GCC does not optimize test1() to nop
57991 + for some reason. */
57992 +/* { dg-final { scan-assembler-times ".LC0" 3 } } */
57993 +
57994 +void dummy(char *arg);
57995 +
57996 +void test1(void)
57997 +{
57998 + char tmp[2] = "0";
57999 +}
58000 +
58001 +void test2(void)
58002 +{
58003 + dummy("0");
58004 +}
58005 diff -Nur a/gcc/testsuite/gcc.target/m68k/pr36134.c b/gcc/testsuite/gcc.target/m68k/pr36134.c
58006 --- a/gcc/testsuite/gcc.target/m68k/pr36134.c 2008-11-14 11:49:06.000000000 +0100
58007 +++ b/gcc/testsuite/gcc.target/m68k/pr36134.c 2010-01-25 09:50:29.575686558 +0100
58008 @@ -1,10 +1,15 @@
58009 /* pr36134.c
58010
58011 This test ensures that the shorter LEA instruction is used in preference
58012 - to the longer ADD instruction. */
58013 + to the longer ADD instruction.
58014 +
58015 + This preference is applicable to ColdFire only. On CPU32, we can
58016 + use a sequence of two ADDQ instructions, which is faster than the
58017 + LEA instruction. */
58018
58019 /* { dg-do compile } */
58020 -/* { dg-options "-O2" } */
58021 +/* { dg-skip-if "" { *-*-* } { "-mcpu=*" } { "-mcpu=5208" } } */
58022 +/* { dg-options "-O2 -mcpu=5208" } */
58023 /* { dg-final { scan-assembler "lea" } } */
58024 /* { dg-final { scan-assembler-not "add" } } */
58025
58026 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-gd.c b/gcc/testsuite/gcc.target/m68k/tls-gd.c
58027 --- a/gcc/testsuite/gcc.target/m68k/tls-gd.c 1970-01-01 01:00:00.000000000 +0100
58028 +++ b/gcc/testsuite/gcc.target/m68k/tls-gd.c 2010-01-25 09:50:29.575686558 +0100
58029 @@ -0,0 +1,13 @@
58030 +/* { dg-do compile } */
58031 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58032 +/* { dg-options "-O2 -fpic" } */
58033 +/* { dg-final { scan-assembler "foo@TLSGD\\(\%a5\\)" } } */
58034 +/* { dg-final { scan-assembler "bsr.l __tls_get_addr@PLTPC" } } */
58035 +
58036 +extern int __thread foo;
58037 +
58038 +int *
58039 +bar (void)
58040 +{
58041 + return &foo;
58042 +}
58043 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-gd-xgot.c b/gcc/testsuite/gcc.target/m68k/tls-gd-xgot.c
58044 --- a/gcc/testsuite/gcc.target/m68k/tls-gd-xgot.c 1970-01-01 01:00:00.000000000 +0100
58045 +++ b/gcc/testsuite/gcc.target/m68k/tls-gd-xgot.c 2010-01-25 09:50:29.575686558 +0100
58046 @@ -0,0 +1,13 @@
58047 +/* { dg-do compile } */
58048 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58049 +/* { dg-options "-O2 -fpic -mxgot" } */
58050 +/* { dg-final { scan-assembler "#foo@TLSGD,\%\[ad\]\[0-7\]" } } */
58051 +/* { dg-final { scan-assembler "bsr.l __tls_get_addr@PLTPC" } } */
58052 +
58053 +extern int __thread foo;
58054 +
58055 +int *
58056 +bar (void)
58057 +{
58058 + return &foo;
58059 +}
58060 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-ie.c b/gcc/testsuite/gcc.target/m68k/tls-ie.c
58061 --- a/gcc/testsuite/gcc.target/m68k/tls-ie.c 1970-01-01 01:00:00.000000000 +0100
58062 +++ b/gcc/testsuite/gcc.target/m68k/tls-ie.c 2010-01-25 09:50:29.575686558 +0100
58063 @@ -0,0 +1,13 @@
58064 +/* { dg-do compile } */
58065 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58066 +/* { dg-options "-O2" } */
58067 +/* { dg-final { scan-assembler "jsr __m68k_read_tp" } } */
58068 +/* { dg-final { scan-assembler "foo@TLSIE\\(\%a5\\)" } } */
58069 +
58070 +extern int __thread foo;
58071 +
58072 +int *
58073 +bar (void)
58074 +{
58075 + return &foo;
58076 +}
58077 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-ie-xgot.c b/gcc/testsuite/gcc.target/m68k/tls-ie-xgot.c
58078 --- a/gcc/testsuite/gcc.target/m68k/tls-ie-xgot.c 1970-01-01 01:00:00.000000000 +0100
58079 +++ b/gcc/testsuite/gcc.target/m68k/tls-ie-xgot.c 2010-01-25 09:50:29.575686558 +0100
58080 @@ -0,0 +1,13 @@
58081 +/* { dg-do compile } */
58082 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58083 +/* { dg-options "-O2 -mxgot" } */
58084 +/* { dg-final { scan-assembler "jsr __m68k_read_tp" } } */
58085 +/* { dg-final { scan-assembler "#foo@TLSIE,\%\[ad\]\[0-7\]" } } */
58086 +
58087 +extern int __thread foo;
58088 +
58089 +int *
58090 +bar (void)
58091 +{
58092 + return &foo;
58093 +}
58094 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-ld.c b/gcc/testsuite/gcc.target/m68k/tls-ld.c
58095 --- a/gcc/testsuite/gcc.target/m68k/tls-ld.c 1970-01-01 01:00:00.000000000 +0100
58096 +++ b/gcc/testsuite/gcc.target/m68k/tls-ld.c 2010-01-25 09:50:29.575686558 +0100
58097 @@ -0,0 +1,14 @@
58098 +/* { dg-do compile } */
58099 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58100 +/* { dg-options "-O2 -fpic" } */
58101 +/* { dg-final { scan-assembler "foo@TLSLDM\\(\%a5\\)" } } */
58102 +/* { dg-final { scan-assembler "bsr.l __tls_get_addr@PLTPC" } } */
58103 +/* { dg-final { scan-assembler "lea \\(foo@TLSLDO,\%a0\\)" } } */
58104 +
58105 +static int __thread foo;
58106 +
58107 +int *
58108 +bar (void)
58109 +{
58110 + return &foo;
58111 +}
58112 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-ld-xgot.c b/gcc/testsuite/gcc.target/m68k/tls-ld-xgot.c
58113 --- a/gcc/testsuite/gcc.target/m68k/tls-ld-xgot.c 1970-01-01 01:00:00.000000000 +0100
58114 +++ b/gcc/testsuite/gcc.target/m68k/tls-ld-xgot.c 2010-01-25 09:50:29.575686558 +0100
58115 @@ -0,0 +1,14 @@
58116 +/* { dg-do compile } */
58117 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58118 +/* { dg-options "-O2 -fpic -mxgot" } */
58119 +/* { dg-final { scan-assembler "#foo@TLSLDM,\%\[ad\]\[0-7\]" } } */
58120 +/* { dg-final { scan-assembler "bsr.l __tls_get_addr@PLTPC" } } */
58121 +/* { dg-final { scan-assembler "lea \\(foo@TLSLDO,\%a0\\)" } } */
58122 +
58123 +static int __thread foo;
58124 +
58125 +int *
58126 +bar (void)
58127 +{
58128 + return &foo;
58129 +}
58130 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-ld-xgot-xtls.c b/gcc/testsuite/gcc.target/m68k/tls-ld-xgot-xtls.c
58131 --- a/gcc/testsuite/gcc.target/m68k/tls-ld-xgot-xtls.c 1970-01-01 01:00:00.000000000 +0100
58132 +++ b/gcc/testsuite/gcc.target/m68k/tls-ld-xgot-xtls.c 2010-01-25 09:50:29.575686558 +0100
58133 @@ -0,0 +1,14 @@
58134 +/* { dg-do compile } */
58135 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58136 +/* { dg-options "-O2 -fpic -mxgot -mxtls" } */
58137 +/* { dg-final { scan-assembler "#foo@TLSLDM,\%\[ad\]\[0-7\]" } } */
58138 +/* { dg-final { scan-assembler "bsr.l __tls_get_addr@PLTPC" } } */
58139 +/* { dg-final { scan-assembler "#foo@TLSLDO,\%\[ad\]\[0-7\]" } } */
58140 +
58141 +static int __thread foo;
58142 +
58143 +int *
58144 +bar (void)
58145 +{
58146 + return &foo;
58147 +}
58148 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-ld-xtls.c b/gcc/testsuite/gcc.target/m68k/tls-ld-xtls.c
58149 --- a/gcc/testsuite/gcc.target/m68k/tls-ld-xtls.c 1970-01-01 01:00:00.000000000 +0100
58150 +++ b/gcc/testsuite/gcc.target/m68k/tls-ld-xtls.c 2010-01-25 09:50:29.575686558 +0100
58151 @@ -0,0 +1,14 @@
58152 +/* { dg-do compile } */
58153 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58154 +/* { dg-options "-O2 -fpic -mxtls" } */
58155 +/* { dg-final { scan-assembler "foo@TLSLDM\\(\%a5\\)" } } */
58156 +/* { dg-final { scan-assembler "bsr.l __tls_get_addr@PLTPC" } } */
58157 +/* { dg-final { scan-assembler "#foo@TLSLDO,\%\[ad\]\[0-7\]" } } */
58158 +
58159 +static int __thread foo;
58160 +
58161 +int *
58162 +bar (void)
58163 +{
58164 + return &foo;
58165 +}
58166 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-le.c b/gcc/testsuite/gcc.target/m68k/tls-le.c
58167 --- a/gcc/testsuite/gcc.target/m68k/tls-le.c 1970-01-01 01:00:00.000000000 +0100
58168 +++ b/gcc/testsuite/gcc.target/m68k/tls-le.c 2010-01-25 09:50:29.575686558 +0100
58169 @@ -0,0 +1,13 @@
58170 +/* { dg-do compile } */
58171 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58172 +/* { dg-options "-O2" } */
58173 +/* { dg-final { scan-assembler "jsr __m68k_read_tp" } } */
58174 +/* { dg-final { scan-assembler "lea \\(foo@TLSLE,\%a0\\)" } } */
58175 +
58176 +static int __thread foo;
58177 +
58178 +int *
58179 +bar (void)
58180 +{
58181 + return &foo;
58182 +}
58183 diff -Nur a/gcc/testsuite/gcc.target/m68k/tls-le-xtls.c b/gcc/testsuite/gcc.target/m68k/tls-le-xtls.c
58184 --- a/gcc/testsuite/gcc.target/m68k/tls-le-xtls.c 1970-01-01 01:00:00.000000000 +0100
58185 +++ b/gcc/testsuite/gcc.target/m68k/tls-le-xtls.c 2010-01-25 09:50:29.575686558 +0100
58186 @@ -0,0 +1,13 @@
58187 +/* { dg-do compile } */
58188 +/* { dg-skip-if "" { ! *-linux-* } { "*" } { "" } } */
58189 +/* { dg-options "-O2 -mxtls" } */
58190 +/* { dg-final { scan-assembler "jsr __m68k_read_tp" } } */
58191 +/* { dg-final { scan-assembler "#foo@TLSLE,\%\[ad\]\[0-7\]" } } */
58192 +
58193 +static int __thread foo;
58194 +
58195 +int *
58196 +bar (void)
58197 +{
58198 + return &foo;
58199 +}
58200 diff -Nur a/gcc/testsuite/gcc.target/mips/branch-2.c b/gcc/testsuite/gcc.target/mips/branch-2.c
58201 --- a/gcc/testsuite/gcc.target/mips/branch-2.c 1970-01-01 01:00:00.000000000 +0100
58202 +++ b/gcc/testsuite/gcc.target/mips/branch-2.c 2010-01-25 09:50:29.575686558 +0100
58203 @@ -0,0 +1,44 @@
58204 +/* Check that we correctly expand out-of-range branches */
58205 +/* { dg-do run } */
58206 +/* { dg-options "-O2 -mabi=32 -fPIC" } */
58207 +
58208 +#include <stdlib.h>
58209 +
58210 +/* This is weak so the compiler cannot assume that calls from this TU
58211 + necessarily arrive here. And hence that $gp may be clobbered in
58212 + o32 and o64 ABIs. */
58213 +
58214 +void __attribute__ ((weak)) Foo (int i)
58215 +{
58216 + static int once = 0;
58217 +
58218 + if (!i && once++)
58219 + exit (0);
58220 +
58221 +#if (_ABIO32 || _ABIO64)
58222 + /* Clobber $gp */
58223 + __asm volatile ("li $gp,0");
58224 +#endif
58225 +}
58226 +
58227 +#define N1(X) (Foo (X))
58228 +#define N2(X) (N1 (X), N1 (X+(1<<0)))
58229 +#define N3(X) (N2 (X), N2 (X+(1<<1)))
58230 +#define N4(X) (N3 (X), N3 (X+(1<<2)))
58231 +#define N5(X) (N4 (X), N4 (X+(1<<3)))
58232 +#define N6(X) (N5 (X), N5 (X+(1<<4)))
58233 +#define N7(X) (N6 (X), N6 (X+(1<<5)))
58234 +#define N8(X) (N7 (X), N7 (X+(1<<6)))
58235 +#define N9(X) (N8 (X), N8 (X+(1<<7)))
58236 +#define N10(X) (N9 (X), N9 (X+(1<<8)))
58237 +#define N11(X) (N10 (X), N10 (X+(1<<9)))
58238 +#define N12(X) (N11 (X), N11 (X+(1<<10)))
58239 +#define N13(X) (N12 (X), N12 (X+(1<<11)))
58240 +#define N14(X) (N13 (X), N13 (X+(1<<12)))
58241 +
58242 +int main (void)
58243 +{
58244 + while (1)
58245 + N14 (0);
58246 + return 0;
58247 +}
58248 diff -Nur a/gcc/testsuite/gcc.target/mips/clear-cache-2.c b/gcc/testsuite/gcc.target/mips/clear-cache-2.c
58249 --- a/gcc/testsuite/gcc.target/mips/clear-cache-2.c 2008-12-21 22:47:38.000000000 +0100
58250 +++ b/gcc/testsuite/gcc.target/mips/clear-cache-2.c 2010-01-25 09:50:29.575686558 +0100
58251 @@ -2,7 +2,8 @@
58252 /* { dg-options "-O2 -mips32" } */
58253 /* { dg-final { scan-assembler-not "synci" } } */
58254 /* { dg-final { scan-assembler-not "jr.hb" } } */
58255 -/* { dg-final { scan-assembler "_flush_cache" } } */
58256 +/* { dg-final { scan-assembler "mips_sync_icache" { target { *-sde-* } } } } */
58257 +/* { dg-final { scan-assembler "_flush_cache" { target { ! *-sde-* } } } } */
58258
58259 void f()
58260 {
58261 diff -Nur a/gcc/testsuite/gcc.target/mips/fpr-moves-5.c b/gcc/testsuite/gcc.target/mips/fpr-moves-5.c
58262 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-5.c 2008-12-21 22:47:38.000000000 +0100
58263 +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-5.c 2010-01-25 09:50:29.575686558 +0100
58264 @@ -1,4 +1,5 @@
58265 /* { dg-options "-mabi=64 -mhard-float -O2 -EL" } */
58266 +/* { dg-require-effective-target mips_newabi_large_long_double } */
58267
58268 NOMIPS16 void
58269 foo (long double d, long double *x)
58270 diff -Nur a/gcc/testsuite/gcc.target/mips/fpr-moves-6.c b/gcc/testsuite/gcc.target/mips/fpr-moves-6.c
58271 --- a/gcc/testsuite/gcc.target/mips/fpr-moves-6.c 2008-12-21 22:47:38.000000000 +0100
58272 +++ b/gcc/testsuite/gcc.target/mips/fpr-moves-6.c 2010-01-25 09:50:29.575686558 +0100
58273 @@ -1,4 +1,5 @@
58274 /* { dg-options "-mabi=64 -mhard-float -O2 -EB" } */
58275 +/* { dg-require-effective-target mips_newabi_large_long_double } */
58276
58277 NOMIPS16 void
58278 foo (long double d, long double *x)
58279 diff -Nur a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp
58280 --- a/gcc/testsuite/gcc.target/mips/mips.exp 2009-02-20 16:20:38.000000000 +0100
58281 +++ b/gcc/testsuite/gcc.target/mips/mips.exp 2010-01-25 09:50:29.575686558 +0100
58282 @@ -229,6 +229,7 @@
58283 gpopt
58284 local-sdata
58285 long-calls
58286 + octeon-useun
58287 paired-single
58288 plt
58289 shared
58290 diff -Nur a/gcc/testsuite/gcc.target/mips/octeon-useun.c b/gcc/testsuite/gcc.target/mips/octeon-useun.c
58291 --- a/gcc/testsuite/gcc.target/mips/octeon-useun.c 1970-01-01 01:00:00.000000000 +0100
58292 +++ b/gcc/testsuite/gcc.target/mips/octeon-useun.c 2010-01-25 09:50:29.575686558 +0100
58293 @@ -0,0 +1,16 @@
58294 +/* Check the mov_u[ls][dw] patterns. */
58295 +/* { dg-options "-march=octeon -O2 -mabi=64 -mocteon-useun -meb" } */
58296 +struct __attribute__((packed)) sl { unsigned long x; };
58297 +struct __attribute__((packed)) si { unsigned int x; };
58298 +unsigned long f1 (struct sl *s) { return s[0].x; };
58299 +unsigned int f2 (struct si *s) { return s[1].x; };
58300 +void f3 (struct sl *s, unsigned long x) { s[10].x = x; }
58301 +void f4 (struct si *s, unsigned int x) { s[11].x = x; }
58302 +void f5 (struct sl *s) { s[100].x = 0; }
58303 +void f6 (struct si *s) { s[101].x = 0; }
58304 +/* { dg-final { scan-assembler "\tjr?\t\\\$31\n\tuld\t\\\$2,0\\(\\\$4\\)\n" } } */
58305 +/* { dg-final { scan-assembler "\tulw\t\\\$2,4\\(\\\$4\\)\n" } } */
58306 +/* { dg-final { scan-assembler "\tjr?\t\\\$31\n\tusd\t\\\$5,80\\(\\\$4\\)\n" } } */
58307 +/* { dg-final { scan-assembler "\tjr?\t\\\$31\n\tusw\t\\\$5,44\\(\\\$4\\)\n" } } */
58308 +/* { dg-final { scan-assembler "\tjr?\t\\\$31\n\tusd\t\\\$0,800\\(\\\$4\\)\n" } } */
58309 +/* { dg-final { scan-assembler "\tjr?\t\\\$31\n\tusw\t\\\$0,404\\(\\\$4\\)\n" } } */
58310 diff -Nur a/gcc/testsuite/gcc.target/powerpc/altivec-consts.c b/gcc/testsuite/gcc.target/powerpc/altivec-consts.c
58311 --- a/gcc/testsuite/gcc.target/powerpc/altivec-consts.c 2009-01-13 18:52:32.000000000 +0100
58312 +++ b/gcc/testsuite/gcc.target/powerpc/altivec-consts.c 2010-01-25 09:50:29.575686558 +0100
58313 @@ -1,7 +1,7 @@
58314 /* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
58315 /* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
58316 /* { dg-require-effective-target powerpc_altivec_ok } */
58317 -/* { dg-options "-maltivec -mabi=altivec -O2" } */
58318 +/* { dg-options "-maltivec -O2" } */
58319
58320 /* Check that "easy" AltiVec constants are correctly synthesized. */
58321
58322 diff -Nur a/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c b/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c
58323 --- a/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c 2009-01-13 18:52:32.000000000 +0100
58324 +++ b/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c 2010-01-25 09:50:29.575686558 +0100
58325 @@ -1,7 +1,7 @@
58326 /* { dg-do run { target { powerpc*-*-* && vmx_hw } } } */
58327 /* { dg-do compile { target { powerpc*-*-* && { ! vmx_hw } } } } */
58328 /* { dg-require-effective-target powerpc_altivec_ok } */
58329 -/* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
58330 +/* { dg-options "-maltivec -fno-inline" } */
58331
58332 #include <stdarg.h>
58333
58334 diff -Nur a/gcc/testsuite/gcc.target/sh/20080410-1.c b/gcc/testsuite/gcc.target/sh/20080410-1.c
58335 --- a/gcc/testsuite/gcc.target/sh/20080410-1.c 2008-09-13 15:26:46.000000000 +0200
58336 +++ b/gcc/testsuite/gcc.target/sh/20080410-1.c 2010-01-25 09:50:29.575686558 +0100
58337 @@ -1,5 +1,5 @@
58338 /* { dg-do compile { target "sh-*-*" } } */
58339 -/* { dg-options "-O0 -m4 -ml -fira" } */
58340 +/* { dg-options "-O0 -m4 -ml" } */
58341 /* { dg-final { scan-assembler-not "add\tr0,r0" } } */
58342
58343 /* This test checks that chain reloads conflict. I they don't
58344 diff -Nur a/gcc/testsuite/gcc.target/sh/sh4a-bitmovua.c b/gcc/testsuite/gcc.target/sh/sh4a-bitmovua.c
58345 --- a/gcc/testsuite/gcc.target/sh/sh4a-bitmovua.c 2007-08-27 10:47:33.000000000 +0200
58346 +++ b/gcc/testsuite/gcc.target/sh/sh4a-bitmovua.c 2010-01-25 09:50:29.575686558 +0100
58347 @@ -35,15 +35,15 @@
58348 }
58349
58350 /* Aligned. */
58351 -struct u0 { unsigned long long d : 32; } y0;
58352 +struct u0 { unsigned long long d : 32; } y_0;
58353 unsigned long long g0() {
58354 - return y0.d;
58355 + return y_0.d;
58356 }
58357
58358 /* Unaligned load. */
58359 -struct u1 { long long c : 8; unsigned long long d : 32; } y1;
58360 +struct u1 { long long c : 8; unsigned long long d : 32; } y_1;
58361 unsigned long long g1() {
58362 - return y1.d;
58363 + return y_1.d;
58364 }
58365
58366 /* Unaligned load. */
58367 diff -Nur a/gcc/testsuite/gcc.target/sh/sh4a-memmovua.c b/gcc/testsuite/gcc.target/sh/sh4a-memmovua.c
58368 --- a/gcc/testsuite/gcc.target/sh/sh4a-memmovua.c 2007-08-27 10:47:33.000000000 +0200
58369 +++ b/gcc/testsuite/gcc.target/sh/sh4a-memmovua.c 2010-01-25 09:50:29.575686558 +0100
58370 @@ -5,7 +5,7 @@
58371 /* { dg-final { scan-assembler-times "\tmovua\\.l\t(.*)+" 2 } } */
58372
58373 #ifdef __SH4A__
58374 -#include <stdlib.h>
58375 +#include <string.h>
58376
58377 struct s { int i; char a[10], b[10]; } x;
58378 int f() {
58379 diff -Nur a/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c
58380 --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c 1970-01-01 01:00:00.000000000 +0100
58381 +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c 2010-01-25 09:50:29.575686558 +0100
58382 @@ -0,0 +1,27 @@
58383 +/* Test for cross x86_64<->w64 abi standard calls. */
58384 +/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
58385 +/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
58386 +/* { dg-additional-sources "func-2b.c" } */
58387 +
58388 +extern void __attribute__ ((sysv_abi)) abort (void);
58389 +long double func_cross (long double, double, float, long, int, char);
58390 +
58391 +long double __attribute__ ((sysv_abi))
58392 +func_native (long double a, double b, float c, long d, int e, char f)
58393 +{
58394 + long double ret;
58395 + ret = a + (long double) b + (long double) c;
58396 + ret *= (long double) (d + (long) e);
58397 + if (f>0)
58398 + ret += func_native (a,b,c,d,e,-f);
58399 + return ret;
58400 +}
58401 +
58402 +int __attribute__ ((sysv_abi))
58403 +main ()
58404 +{
58405 + if (func_cross (1.0,2.0,3.0,1,2,3)
58406 + != func_native (1.0,2.0,3.0,1,2,3))
58407 + abort ();
58408 + return 0;
58409 +}
58410 diff -Nur a/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c
58411 --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c 1970-01-01 01:00:00.000000000 +0100
58412 +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c 2010-01-25 09:50:29.575686558 +0100
58413 @@ -0,0 +1,13 @@
58414 +/* Test for cross x86_64<->w64 abi standard calls. */
58415 +/* { dg-options "-mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
58416 +
58417 +long double func_cross (long double a, double b, float c, long d, int e,
58418 + char f)
58419 +{
58420 + long double ret;
58421 + ret = a + (long double) b + (long double) c;
58422 + ret *= (long double) (d + (long) e);
58423 + if (f>0)
58424 + ret += func_cross (a,b,c,d,e,-f);
58425 + return ret;
58426 +}
58427 diff -Nur a/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c
58428 --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c 1970-01-01 01:00:00.000000000 +0100
58429 +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c 2010-01-25 09:50:29.575686558 +0100
58430 @@ -0,0 +1,17 @@
58431 +/* Test for cross x86_64<->w64 abi standard calls via variable. */
58432 +/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
58433 +/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
58434 +/* { dg-additional-sources "func-indirect-2b.c" } */
58435 +
58436 +extern void __attribute__ ((sysv_abi)) abort (void);
58437 +typedef int (*func)(void *, char *, char *, short, long long);
58438 +extern func get_callback (void);
58439 +
58440 +int __attribute__ ((sysv_abi))
58441 +main ()
58442 +{
58443 + func callme = get_callback ();
58444 + if (callme (0, 0, 0, 0x1234, 0x1234567890abcdefLL))
58445 + abort ();
58446 + return 0;
58447 +}
58448 diff -Nur a/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c
58449 --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c 1970-01-01 01:00:00.000000000 +0100
58450 +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c 2010-01-25 09:50:29.575686558 +0100
58451 @@ -0,0 +1,24 @@
58452 +/* Test for cross x86_64<->w64 abi standard calls via variable. */
58453 +/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
58454 +
58455 +typedef int (*func)(void *, char *, char *, short, long long);
58456 +
58457 +static int
58458 +callback (void *ptr, char *string1, char *string2, short number,
58459 + long long rand)
58460 +{
58461 + if (ptr != 0
58462 + || string1 != 0
58463 + || string2 != 0
58464 + || number != 0x1234
58465 + || rand != 0x1234567890abcdefLL)
58466 + return 1;
58467 + else
58468 + return 0;
58469 +}
58470 +
58471 +func
58472 +get_callback (void)
58473 +{
58474 + return callback;
58475 +}
58476 diff -Nur a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c
58477 --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c 1970-01-01 01:00:00.000000000 +0100
58478 +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c 2010-01-25 09:50:29.575686558 +0100
58479 @@ -0,0 +1,24 @@
58480 +/* Test for cross x86_64<->w64 abi va_list calls. */
58481 +/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
58482 +/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
58483 +/* { dg-additional-sources "vaarg-4b.c" } */
58484 +
58485 +extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *);
58486 +extern int __attribute__ ((sysv_abi)) sprintf (char *,const char *, ...);
58487 +extern void __attribute__ ((sysv_abi)) abort (void);
58488 +
58489 +extern void do_cpy (char *, ...);
58490 +
58491 +int __attribute__ ((sysv_abi))
58492 +main ()
58493 +{
58494 + char s[256];
58495 +
58496 + do_cpy (s, "1","2","3","4", "5", "6", "7", "");
58497 +
58498 + if (s[0] != '1' || s[1] !='2' || s[2] != '3' || s[3] != '4'
58499 + || s[4] != '5' || s[5] != '6' || s[6] != '7' || s[7] != 0)
58500 + abort ();
58501 +
58502 + return 0;
58503 +}
58504 diff -Nur a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c
58505 --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c 1970-01-01 01:00:00.000000000 +0100
58506 +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c 2010-01-25 09:50:29.575686558 +0100
58507 @@ -0,0 +1,31 @@
58508 +/* Test for cross x86_64<->w64 abi va_list calls. */
58509 +/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
58510 +
58511 +#include <stdarg.h>
58512 +
58513 +extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *);
58514 +extern int __attribute__ ((sysv_abi)) sprintf (char *, const char *, ...);
58515 +
58516 +static void
58517 +vdo_cpy (char *s, va_list argp)
58518 +{
58519 + __SIZE_TYPE__ len;
58520 + char *r = s;
58521 + char *e;
58522 + *r = 0;
58523 + for (;;) {
58524 + e = va_arg (argp, char *);
58525 + if (*e == 0) break;
58526 + sprintf (r,"%s", e);
58527 + r += strlen (r);
58528 + }
58529 +}
58530 +
58531 +void
58532 +do_cpy (char *s, ...)
58533 +{
58534 + va_list argp;
58535 + va_start (argp, s);
58536 + vdo_cpy (s, argp);
58537 + va_end (argp);
58538 +}
58539 diff -Nur a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c
58540 --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c 1970-01-01 01:00:00.000000000 +0100
58541 +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c 2010-01-25 09:50:29.575686558 +0100
58542 @@ -0,0 +1,17 @@
58543 +/* Test for cross x86_64<->w64 abi va_list calls. */
58544 +/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
58545 +/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
58546 +/* { dg-additional-sources "vaarg-5b.c" } */
58547 +
58548 +extern void __attribute__ ((sysv_abi)) abort (void);
58549 +extern int fct2 (int, ...);
58550 +
58551 +#define SZ_ARGS 1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll
58552 +
58553 +int __attribute__ ((sysv_abi))
58554 +main()
58555 +{
58556 + if (fct2 (-1, SZ_ARGS) != 0)
58557 + abort ();
58558 + return 0;
58559 +}
58560 diff -Nur a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c
58561 --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c 1970-01-01 01:00:00.000000000 +0100
58562 +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c 2010-01-25 09:50:29.575686558 +0100
58563 @@ -0,0 +1,37 @@
58564 +/* Test for cross x86_64<->w64 abi va_list calls. */
58565 +/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
58566 +
58567 +#include <stdarg.h>
58568 +
58569 +#define SZ_ARGS 1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll
58570 +
58571 +static int __attribute__ ((sysv_abi))
58572 +fct1 (va_list argp, ...)
58573 +{
58574 + long long p1,p2;
58575 + int ret = 1;
58576 + __builtin_sysv_va_list argp_2;
58577 +
58578 + __builtin_sysv_va_start (argp_2, argp);
58579 + do {
58580 + p1 = va_arg (argp_2, long long);
58581 + p2 = va_arg (argp, long long);
58582 + if (p1 != p2)
58583 + ret = 0;
58584 + } while (ret && p1 != 0);
58585 + __builtin_sysv_va_end (argp_2);
58586 +
58587 + return ret;
58588 +}
58589 +
58590 +int
58591 +fct2 (int dummy, ...)
58592 +{
58593 + va_list argp;
58594 + int ret = dummy;
58595 +
58596 + va_start (argp, dummy);
58597 + ret += fct1 (argp, SZ_ARGS);
58598 + va_end (argp);
58599 + return ret;
58600 +}
58601 diff -Nur a/gcc/testsuite/g++.dg/abi/mangle-neon.C b/gcc/testsuite/g++.dg/abi/mangle-neon.C
58602 --- a/gcc/testsuite/g++.dg/abi/mangle-neon.C 2008-08-30 00:19:24.000000000 +0200
58603 +++ b/gcc/testsuite/g++.dg/abi/mangle-neon.C 2010-01-25 09:50:29.575686558 +0100
58604 @@ -2,7 +2,7 @@
58605
58606 // { dg-do compile }
58607 // { dg-require-effective-target arm_neon_ok }
58608 -// { dg-options "-mfpu=neon -mfloat-abi=softfp" }
58609 +// { dg-add-options arm_neon }
58610
58611 #include <arm_neon.h>
58612
58613 diff -Nur a/gcc/testsuite/g++.dg/eh/ref1.C b/gcc/testsuite/g++.dg/eh/ref1.C
58614 --- a/gcc/testsuite/g++.dg/eh/ref1.C 1970-01-01 01:00:00.000000000 +0100
58615 +++ b/gcc/testsuite/g++.dg/eh/ref1.C 2010-01-25 09:50:29.575686558 +0100
58616 @@ -0,0 +1,61 @@
58617 +// { dg-do run { xfail { ! arm-*-*eabi } } }
58618 +
58619 +// catching a pointer to class by reference prohibits derived->base
58620 +// transformation. The generic C++ ABI gets this wrong. ARM EABI
58621 +// gets this right, except for exception specifications where a bug is
58622 +// acknowledged.
58623 +
58624 +#include <stdio.h>
58625 +
58626 +struct A {};
58627 +
58628 +struct B : A {};
58629 +
58630 +int Foo ()
58631 +{
58632 + B b;
58633 +
58634 + try
58635 + {
58636 + throw &b;
58637 + }
58638 + catch (A *&a) // { dg-bogus "earlier handler" "" { xfail { ! arm-*-*eabi } } }
58639 + {
58640 + printf ("fail, caught A*&%p\n", a);
58641 + return 1;
58642 + }
58643 + catch (B *&b) // { dg-bogus "will be caught" "" { xfail { ! arm-*-*eabi } } }
58644 + {
58645 + printf ("pass, caught B*&%p\n", b);
58646 + }
58647 + catch (...)
58648 + {
58649 + printf ("fail, caught ...");
58650 + return 2;
58651 + }
58652 + try
58653 + {
58654 + throw &b;
58655 + }
58656 + catch (A *a) // { dg-warning "by earlier handler" }
58657 + {
58658 + printf ("pass, caught A*%p\n", a);
58659 + }
58660 + catch (B *b) // { dg-warning "will be caught" }
58661 + {
58662 + printf ("fail, caught B*%p\n", b);
58663 + return 3;
58664 + }
58665 + catch (...)
58666 + {
58667 + printf ("fail, caught ...");
58668 + return 4;
58669 + }
58670 + return 0;
58671 +}
58672 +
58673 +
58674 +int main ()
58675 +{
58676 + return Foo ();
58677 +}
58678 diff -Nur a/gcc/testsuite/g++.dg/eh/ref2.C b/gcc/testsuite/g++.dg/eh/ref2.C
58679 --- a/gcc/testsuite/g++.dg/eh/ref2.C 1970-01-01 01:00:00.000000000 +0100
58680 +++ b/gcc/testsuite/g++.dg/eh/ref2.C 2010-01-25 09:50:29.575686558 +0100
58681 @@ -0,0 +1,70 @@
58682 +// { dg-do run { xfail { ! arm-*-*eabi } } }
58683 +
58684 +// catching a pointer to class by reference prohibits derived->base
58685 +// transformation. The generic C++ ABI gets this wrong. ARM EABI
58686 +// gets this right, except for exception specifications where a bug is
58687 +// acknowledged.
58688 +
58689 +#include <stdio.h>
58690 +#include <exception>
58691 +#include <stdlib.h>
58692 +
58693 +struct A {};
58694 +
58695 +struct B : A {};
58696 +
58697 +B b;
58698 +
58699 +void One () throw (A *&)
58700 +{
58701 + throw &b;
58702 +}
58703 +
58704 +void Two () throw (A *&, B *&)
58705 +{
58706 + throw &b;
58707 +}
58708 +
58709 +void Three () throw (A *)
58710 +{
58711 + throw &b;
58712 +}
58713 +
58714 +int Foo (void (*fn)())
58715 +{
58716 + try
58717 + {
58718 + fn ();
58719 + }
58720 + catch (B *b)
58721 + {
58722 + printf ("pass, caught B*%p\n", b);
58723 + }
58724 + catch (...)
58725 + {
58726 + printf ("fail, caught ...");
58727 + return 1;
58728 + }
58729 + return 0;
58730 +}
58731 +
58732 +void handler ()
58733 +{
58734 + printf ("pass, got unexpected exception\n");
58735 + exit (0);
58736 +}
58737 +
58738 +int main ()
58739 +{
58740 + if (Foo (&Three))
58741 + return 1;
58742 +
58743 + if (Foo (&Two))
58744 + return 2;
58745 +
58746 + std::set_unexpected (handler);
58747 + if (Foo (&One))
58748 + return 3;
58749 + printf ("fail, did not get unexpected exception\n");
58750 + return 4;
58751 +}
58752 diff -Nur a/gcc/testsuite/g++.dg/ext/altivec-17.C b/gcc/testsuite/g++.dg/ext/altivec-17.C
58753 --- a/gcc/testsuite/g++.dg/ext/altivec-17.C 1970-01-01 01:00:00.000000000 +0100
58754 +++ b/gcc/testsuite/g++.dg/ext/altivec-17.C 2010-01-25 09:50:29.575686558 +0100
58755 @@ -0,0 +1,16 @@
58756 +// { dg-do compile { target powerpc*-*-* } }
58757 +// { dg-require-effective-target powerpc_altivec_ok }
58758 +// { dg-options "-maltivec" }
58759 +
58760 +// Make sure that bool vectors have distinct names to int vectors
58761 +
58762 +#define vector__ __attribute__((altivec (vector__)))
58763 +#define bool__ __attribute__((altivec(bool__)))
58764 +
58765 +typedef vector__ unsigned int simd_type;
58766 +typedef vector__ bool__ int bool_simd_type;
58767 +
58768 +void Foo (bool_simd_type const &a)
58769 +{
58770 + simd_type const &v = a; // { dg-error "'const unsigned int __vector__&' from expression of type 'const __bool int __vector__'" }
58771 +}
58772 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-1.C b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-1.C
58773 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-1.C 1970-01-01 01:00:00.000000000 +0100
58774 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-1.C 2010-01-25 09:50:29.575686558 +0100
58775 @@ -0,0 +1,5 @@
58776 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58777 +/* { dg-do run { target arm*-*-* } } */
58778 +/* { dg-options "-mfp16-format=ieee" } */
58779 +
58780 +#include "arm-fp16-ops.h"
58781 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-2.C b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-2.C
58782 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-2.C 1970-01-01 01:00:00.000000000 +0100
58783 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-2.C 2010-01-25 09:50:29.575686558 +0100
58784 @@ -0,0 +1,5 @@
58785 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58786 +/* { dg-do run { target arm*-*-* } } */
58787 +/* { dg-options "-mfp16-format=ieee -ffast-math" } */
58788 +
58789 +#include "arm-fp16-ops.h"
58790 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-3.C b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-3.C
58791 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-3.C 1970-01-01 01:00:00.000000000 +0100
58792 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-3.C 2010-01-25 09:50:29.575686558 +0100
58793 @@ -0,0 +1,5 @@
58794 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58795 +/* { dg-do run { target arm*-*-* } } */
58796 +/* { dg-options "-mfp16-format=alternative" } */
58797 +
58798 +#include "arm-fp16-ops.h"
58799 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-4.C b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-4.C
58800 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-4.C 1970-01-01 01:00:00.000000000 +0100
58801 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-4.C 2010-01-25 09:50:29.575686558 +0100
58802 @@ -0,0 +1,5 @@
58803 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58804 +/* { dg-do run { target arm*-*-* } } */
58805 +/* { dg-options "-mfp16-format=alternative -ffast-math" } */
58806 +
58807 +#include "arm-fp16-ops.h"
58808 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-5.C b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-5.C
58809 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-5.C 1970-01-01 01:00:00.000000000 +0100
58810 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-5.C 2010-01-25 09:50:29.575686558 +0100
58811 @@ -0,0 +1,15 @@
58812 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58813 +/* { dg-do compile { target arm*-*-* } } */
58814 +/* { dg-require-effective-target arm_neon_fp16_ok } */
58815 +/* { dg-options "-mfp16-format=ieee" } */
58816 +/* { dg-add-options arm_neon_fp16 } */
58817 +
58818 +#include "arm-fp16-ops.h"
58819 +
58820 +/* We've specified options for hardware float, including fp16 support, so
58821 + we should not see any calls to libfuncs here. */
58822 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf2" } } */
58823 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf3" } } */
58824 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h\[a-z\]*_ieee" } } */
58825 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h2f_ieee" } } */
58826 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_f2h_ieee" } } */
58827 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-6.C b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-6.C
58828 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-6.C 1970-01-01 01:00:00.000000000 +0100
58829 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-6.C 2010-01-25 09:50:29.575686558 +0100
58830 @@ -0,0 +1,15 @@
58831 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58832 +/* { dg-do compile { target arm*-*-* } } */
58833 +/* { dg-require-effective-target arm_neon_fp16_ok } */
58834 +/* { dg-options "-mfp16-format=ieee -ffast-math" } */
58835 +/* { dg-add-options arm_neon_fp16 } */
58836 +
58837 +#include "arm-fp16-ops.h"
58838 +
58839 +/* We've specified options for hardware float, including fp16 support, so
58840 + we should not see any calls to libfuncs here. */
58841 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf2" } } */
58842 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf3" } } */
58843 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h\[a-z\]*_ieee" } } */
58844 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h2f_ieee" } } */
58845 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_f2h_ieee" } } */
58846 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-7.C b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-7.C
58847 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-7.C 1970-01-01 01:00:00.000000000 +0100
58848 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-7.C 2010-01-25 09:50:29.575686558 +0100
58849 @@ -0,0 +1,13 @@
58850 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58851 +/* { dg-do compile { target arm*-*-* } } */
58852 +/* { dg-require-effective-target arm_neon_ok } */
58853 +/* { dg-options "-mfp16-format=ieee" } */
58854 +/* { dg-add-options arm_neon } */
58855 +
58856 +#include "arm-fp16-ops.h"
58857 +
58858 +/* We've specified options for hardware float, so we should not see any
58859 + calls to libfuncs here except for those to the conversion functions. */
58860 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf2" } } */
58861 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf3" } } */
58862 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h\[a-z\]*_ieee" } } */
58863 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-8.C b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-8.C
58864 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-8.C 1970-01-01 01:00:00.000000000 +0100
58865 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops-8.C 2010-01-25 09:50:29.575686558 +0100
58866 @@ -0,0 +1,13 @@
58867 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58868 +/* { dg-do compile { target arm*-*-* } } */
58869 +/* { dg-require-effective-target arm_neon_ok } */
58870 +/* { dg-options "-mfp16-format=ieee -ffast-math" } */
58871 +/* { dg-add-options arm_neon } */
58872 +
58873 +#include "arm-fp16-ops.h"
58874 +
58875 +/* We've specified options for hardware float, so we should not see any
58876 + calls to libfuncs here except for those to the conversion functions. */
58877 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf2" } } */
58878 +/* { dg-final { scan-assembler-not "\tbl\t__.*hf3" } } */
58879 +/* { dg-final { scan-assembler-not "\tbl\t__gnu_h\[a-z\]*_ieee" } } */
58880 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops.h b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops.h
58881 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops.h 1970-01-01 01:00:00.000000000 +0100
58882 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/arm-fp16-ops.h 2010-01-25 09:50:29.575686558 +0100
58883 @@ -0,0 +1,135 @@
58884 +/* Test various operators on __fp16 and mixed __fp16/float operands. */
58885 +
58886 +#include <assert.h>
58887 +
58888 +#define CHECK(e,r) assert ((e) == r)
58889 +#define CHECK2(e,r) (assert ((e) == r), temp = (e), assert (temp == r))
58890 +#define TEST(e) assert (e)
58891 +#define TESTNOT(e) assert (!(e))
58892 +
58893 +volatile __fp16 h0 = 0.0;
58894 +volatile __fp16 h1 = 1.0;
58895 +volatile __fp16 h42 = 42.0;
58896 +volatile __fp16 hm2 = -2.0;
58897 +volatile __fp16 temp;
58898 +
58899 +volatile float f0 = 0.0;
58900 +volatile float f1 = 1.0;
58901 +volatile float f42 = 42.0;
58902 +volatile float fm2 = -2.0;
58903 +
58904 +int main (void)
58905 +{
58906 + TEST (h1);
58907 + TESTNOT (h0);
58908 + TEST (!h0);
58909 + TESTNOT (!h1);
58910 +
58911 + CHECK2 (-h1, -1.0);
58912 + CHECK2 (+h1, 1.0);
58913 +
58914 + CHECK (h1++, 1.0);
58915 + CHECK (h1, 2.0);
58916 + CHECK (++h1, 3.0);
58917 + CHECK (h1, 3.0);
58918 +
58919 + CHECK (--h1, 2.0);
58920 + CHECK (h1, 2.0);
58921 + CHECK (h1--, 2.0);
58922 + CHECK (h1, 1.0);
58923 +
58924 + CHECK2 (h42 * hm2, -84.0);
58925 + CHECK2 (h42 * (__fp16) -2.0, -84.0);
58926 + CHECK2 (h42 * fm2, -84.0);
58927 + CHECK2 (f42 * hm2, -84.0);
58928 +
58929 + CHECK2 (h42 / hm2, -21.0);
58930 + CHECK2 (h42 / (__fp16) -2.0, -21.0);
58931 + CHECK2 (h42 / fm2, -21.0);
58932 + CHECK2 (f42 / hm2, -21.0);
58933 +
58934 + CHECK2 (hm2 + h42, 40.0);
58935 + CHECK2 ((__fp16)-2.0 + h42, 40.0);
58936 + CHECK2 (hm2 + f42, 40.0);
58937 + CHECK2 (fm2 + h42, 40.0);
58938 +
58939 + CHECK2 (hm2 - h42, -44.0);
58940 + CHECK2 ((__fp16)-2.0 - h42, -44.0);
58941 + CHECK2 (hm2 - f42, -44.0);
58942 + CHECK2 (fm2 - h42, -44.0);
58943 +
58944 + TEST (hm2 < h42);
58945 + TEST (hm2 < (__fp16)42.0);
58946 + TEST (hm2 < f42);
58947 + TEST (fm2 < h42);
58948 +
58949 + TEST (h42 > hm2);
58950 + TEST ((__fp16)42.0 > hm2);
58951 + TEST (h42 > fm2);
58952 + TEST (f42 > hm2);
58953 +
58954 + TEST (hm2 <= h42);
58955 + TEST (hm2 <= (__fp16)42.0);
58956 + TEST (hm2 <= f42);
58957 + TEST (fm2 <= h42);
58958 +
58959 + TEST (h42 >= hm2);
58960 + TEST (h42 >= (__fp16)-2.0);
58961 + TEST (h42 >= fm2);
58962 + TEST (f42 >= hm2);
58963 +
58964 + TESTNOT (h1 == hm2);
58965 + TEST (h1 == h1);
58966 + TEST (h1 == (__fp16)1.0);
58967 + TEST (h1 == f1);
58968 + TEST (f1 == h1);
58969 +
58970 + TEST (h1 != hm2);
58971 + TESTNOT (h1 != h1);
58972 + TESTNOT (h1 != (__fp16)1.0);
58973 + TESTNOT (h1 != f1);
58974 + TESTNOT (f1 != h1);
58975 +
58976 + CHECK2 ((h1 ? hm2 : h42), -2.0);
58977 + CHECK2 ((h0 ? hm2 : h42), 42.0);
58978 +
58979 + CHECK (h0 = h42, 42.0);
58980 + CHECK (h0, 42.0);
58981 + CHECK (h0 = (__fp16)-2.0, -2.0);
58982 + CHECK (h0, -2.0);
58983 + CHECK (h0 = f0, 0.0);
58984 + CHECK (h0, 0.0);
58985 +
58986 + CHECK (h0 += h1, 1.0);
58987 + CHECK (h0, 1.0);
58988 + CHECK (h0 += (__fp16)1.0, 2.0);
58989 + CHECK (h0, 2.0);
58990 + CHECK (h0 += fm2, 0.0);
58991 + CHECK (h0, 0.0);
58992 +
58993 + CHECK (h0 -= h1, -1.0);
58994 + CHECK (h0, -1.0);
58995 + CHECK (h0 -= (__fp16)1.0, -2.0);
58996 + CHECK (h0, -2.0);
58997 + CHECK (h0 -= fm2, 0.0);
58998 + CHECK (h0, 0.0);
58999 +
59000 + h0 = hm2;
59001 + CHECK (h0 *= hm2, 4.0);
59002 + CHECK (h0, 4.0);
59003 + CHECK (h0 *= (__fp16)-2.0, -8.0);
59004 + CHECK (h0, -8.0);
59005 + CHECK (h0 *= fm2, 16.0);
59006 + CHECK (h0, 16.0);
59007 +
59008 + CHECK (h0 /= hm2, -8.0);
59009 + CHECK (h0, -8.0);
59010 + CHECK (h0 /= (__fp16)-2.0, 4.0);
59011 + CHECK (h0, 4.0);
59012 + CHECK (h0 /= fm2, -2.0);
59013 + CHECK (h0, -2.0);
59014 +
59015 + CHECK ((h0, h1), 1.0);
59016 +
59017 + return 0;
59018 +}
59019 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-mangle-1.C b/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-mangle-1.C
59020 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-mangle-1.C 1970-01-01 01:00:00.000000000 +0100
59021 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-mangle-1.C 2010-01-25 09:50:29.575686558 +0100
59022 @@ -0,0 +1,14 @@
59023 +/* { dg-do compile { target arm*-*-* } } */
59024 +/* { dg-options "-mfp16-format=ieee" } */
59025 +
59026 +/* Test mangling */
59027 +
59028 +/* { dg-final { scan-assembler "\t.global\t_Z1fPDh" } } */
59029 +void f (__fp16 *x) { }
59030 +
59031 +/* { dg-final { scan-assembler "\t.global\t_Z1gPDhS_" } } */
59032 +void g (__fp16 *x, __fp16 *y) { }
59033 +
59034 +/* { dg-final { scan-assembler "\t.global\t_ZN1SIDhDhE1iE" } } */
59035 +template <typename T, typename U> struct S { static int i; };
59036 +template <> int S<__fp16, __fp16>::i = 3;
59037 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-overload-1.C b/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-overload-1.C
59038 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-overload-1.C 1970-01-01 01:00:00.000000000 +0100
59039 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-overload-1.C 2010-01-25 09:50:29.575686558 +0100
59040 @@ -0,0 +1,16 @@
59041 +/* { dg-do compile { target arm*-*-* } } */
59042 +/* { dg-options "-mfp16-format=ieee" } */
59043 +
59044 +/* __fp16 values are autoconverted to float and should therefore be treated
59045 + * just like float for overloading purposes. */
59046 +
59047 +extern int frobnify (float x);
59048 +extern int frobnify (double x);
59049 +
59050 +int g (void)
59051 +{
59052 + return frobnify ((__fp16)1.0);
59053 +}
59054 +
59055 +/* { dg-final { scan-assembler "_Z8frobnifyf" } } */
59056 +/* { dg-final { scan-assembler-not " _Z8frobnifyd" } } */
59057 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-param-1.C b/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-param-1.C
59058 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-param-1.C 1970-01-01 01:00:00.000000000 +0100
59059 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-param-1.C 2010-01-25 09:50:29.575686558 +0100
59060 @@ -0,0 +1,10 @@
59061 +/* { dg-do compile { target arm*-*-* } } */
59062 +/* { dg-options "-mfp16-format=ieee" } */
59063 +
59064 +/* Functions cannot have parameters of type __fp16. */
59065 +extern void f (__fp16); /* { dg-error "parameters cannot have __fp16 type" } */
59066 +extern void (*pf) (__fp16); /* { dg-error "parameters cannot have __fp16 type" } */
59067 +
59068 +/* These should be OK. */
59069 +extern void g (__fp16 *);
59070 +extern void (*pg) (__fp16 *);
59071 diff -Nur a/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-return-1.C b/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-return-1.C
59072 --- a/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-return-1.C 1970-01-01 01:00:00.000000000 +0100
59073 +++ b/gcc/testsuite/g++.dg/ext/arm-fp16/fp16-return-1.C 2010-01-25 09:50:29.575686558 +0100
59074 @@ -0,0 +1,10 @@
59075 +/* { dg-do compile { target arm*-*-* } } */
59076 +/* { dg-options "-mfp16-format=ieee" } */
59077 +
59078 +/* Functions cannot return type __fp16. */
59079 +extern __fp16 f (void); /* { dg-error "cannot return __fp16" } */
59080 +extern __fp16 (*pf) (void); /* { dg-error "cannot return __fp16" } */
59081 +
59082 +/* These should be OK. */
59083 +extern __fp16 *g (void);
59084 +extern __fp16 *(*pg) (void);
59085 diff -Nur a/gcc/testsuite/g++.dg/ext/dllexport2a.cc b/gcc/testsuite/g++.dg/ext/dllexport2a.cc
59086 --- a/gcc/testsuite/g++.dg/ext/dllexport2a.cc 1970-01-01 01:00:00.000000000 +0100
59087 +++ b/gcc/testsuite/g++.dg/ext/dllexport2a.cc 2010-01-25 09:50:29.575686558 +0100
59088 @@ -0,0 +1,21 @@
59089 +extern void i1();
59090 +extern void i3();
59091 +extern void i4();
59092 +extern void i5();
59093 +
59094 +extern void e1();
59095 +extern void e3();
59096 +extern void e4();
59097 +extern void e5();
59098 +
59099 +int main () {
59100 + i1();
59101 + i3();
59102 + i4();
59103 + i5();
59104 +
59105 + e1();
59106 + e3();
59107 + e4();
59108 + e5();
59109 +}
59110 diff -Nur a/gcc/testsuite/g++.dg/ext/dllexport2.C b/gcc/testsuite/g++.dg/ext/dllexport2.C
59111 --- a/gcc/testsuite/g++.dg/ext/dllexport2.C 1970-01-01 01:00:00.000000000 +0100
59112 +++ b/gcc/testsuite/g++.dg/ext/dllexport2.C 2010-01-25 09:50:29.575686558 +0100
59113 @@ -0,0 +1,52 @@
59114 +// { dg-do link }
59115 +// { dg-require-dll "" }
59116 +// { dg-additional-sources "dllexport2a.cc" }
59117 +// { dg-options "-O2" }
59118 +
59119 +/* Test that inline functions declared "dllexport" appear in object
59120 + files, even if they are not called.
59121 +
59122 + This behavior is required by the ARM C++ ABI:
59123 +
59124 + Exporting a function that can be inlined should force the
59125 + creation and export of an out-of-line copy of it.
59126 +
59127 + and should presumably also apply.
59128 +
59129 + Visual Studio 2005 also honors that rule. */
59130 +
59131 +__declspec(dllexport) inline void i1() {}
59132 +
59133 +__declspec(dllexport) extern inline void e1() {}
59134 +
59135 +/* It is invalid to declare the function inline after its definition. */
59136 +#if 0
59137 +__declspec(dllexport) void i2() {}
59138 +inline void i2();
59139 +
59140 +__declspec(dllexport) extern void e2() {}
59141 +inline void e2();
59142 +#endif
59143 +
59144 +__declspec(dllexport) inline void i3() {}
59145 +void i3();
59146 +
59147 +__declspec(dllexport) inline void e3() {}
59148 +extern void e3();
59149 +
59150 +__declspec(dllexport) void i4();
59151 +inline void i4() {};
59152 +
59153 +__declspec(dllexport) extern void e4();
59154 +inline void e4() {};
59155 +
59156 +__declspec(dllexport) inline void i5();
59157 +void i5() {};
59158 +
59159 +__declspec(dllexport) inline void e5();
59160 +extern void e5() {};
59161 +
59162 +/* Make sure that just declaring the function -- without defining it
59163 + -- does not cause errors. */
59164 +__declspec(dllexport) inline void i6();
59165 +__declspec(dllexport) extern inline void e6();
59166 diff -Nur a/gcc/testsuite/g++.dg/ext/ms-1.C b/gcc/testsuite/g++.dg/ext/ms-1.C
59167 --- a/gcc/testsuite/g++.dg/ext/ms-1.C 1970-01-01 01:00:00.000000000 +0100
59168 +++ b/gcc/testsuite/g++.dg/ext/ms-1.C 2010-01-25 09:50:29.575686558 +0100
59169 @@ -0,0 +1,17 @@
59170 +
59171 +// MS allows more things to be pointers to member functions
59172 +// { dg-options "-fms-extensions" }
59173 +
59174 +struct X
59175 +{
59176 + void Foo (X *);
59177 + void Bar ();
59178 +};
59179 +
59180 +void Quux (void (X::*) ());
59181 +
59182 +void X::Foo (X *ptr) // { dg-message "candidates" }
59183 +{
59184 + Quux (Foo); // { dg-error "no matches" }
59185 + Quux (Bar);
59186 +}
59187 diff -Nur a/gcc/testsuite/g++.dg/init/ref15.C b/gcc/testsuite/g++.dg/init/ref15.C
59188 --- a/gcc/testsuite/g++.dg/init/ref15.C 2007-10-04 19:58:07.000000000 +0200
59189 +++ b/gcc/testsuite/g++.dg/init/ref15.C 2010-01-25 09:50:29.575686558 +0100
59190 @@ -1,6 +1,8 @@
59191 // PR c++/20416. We correctly constructed the temporary S in foo(),
59192 // but incorrectly destroyed it every time foo() was called.
59193 -// { dg-do run }
59194 +// When using a wrapped target, there is no way to override the exit
59195 +// code after returning from main.
59196 +// { dg-do run { target unwrapped } }
59197 extern "C" void abort (void);
59198 extern "C" void _exit (int);
59199
59200 diff -Nur a/gcc/testsuite/g++.dg/opt/alias5.C b/gcc/testsuite/g++.dg/opt/alias5.C
59201 --- a/gcc/testsuite/g++.dg/opt/alias5.C 1970-01-01 01:00:00.000000000 +0100
59202 +++ b/gcc/testsuite/g++.dg/opt/alias5.C 2010-01-25 09:50:29.575686558 +0100
59203 @@ -0,0 +1,24 @@
59204 +// { dg-options "-O2" }
59205 +// ICE in struct-alias
59206 +
59207 +typedef int (*PFN)(void);
59208 +int f (void);
59209 +struct Container
59210 +{
59211 + PFN ptr;
59212 +};
59213 +
59214 +inline PFN Get (struct Container *tpl)
59215 +{
59216 + return tpl->ptr;
59217 +}
59218 +void Other (PFN);
59219 +
59220 +inline void Foo (PFN pfn)
59221 +{
59222 + Other (Get ((struct Container *)&pfn));
59223 +}
59224 +void Bar (void)
59225 +{
59226 + Foo (f);
59227 +}
59228 diff -Nur a/gcc/testsuite/g++.dg/other/arm-neon-1.C b/gcc/testsuite/g++.dg/other/arm-neon-1.C
59229 --- a/gcc/testsuite/g++.dg/other/arm-neon-1.C 1970-01-01 01:00:00.000000000 +0100
59230 +++ b/gcc/testsuite/g++.dg/other/arm-neon-1.C 2010-01-25 09:50:29.585686502 +0100
59231 @@ -0,0 +1,18 @@
59232 +/* Basic smoke test for arm_neon.h */
59233 +
59234 +/* { dg-do assemble } */
59235 +/* { dg-require-effective-target arm_neon_ok } */
59236 +/* { dg-add-options arm_neon } */
59237 +
59238 +#include "arm_neon.h"
59239 +
59240 +float a[4];
59241 +
59242 +void test(void)
59243 +{
59244 + float32x2x2_t v;
59245 + float32x2_t res;
59246 + v = vld2_f32(a);
59247 + res = vadd_f32(v.val[0], v.val[1]);
59248 + vst1_f32(a, res);
59249 +}
59250 diff -Nur a/gcc/testsuite/g++.dg/other/armv7m-1.C b/gcc/testsuite/g++.dg/other/armv7m-1.C
59251 --- a/gcc/testsuite/g++.dg/other/armv7m-1.C 1970-01-01 01:00:00.000000000 +0100
59252 +++ b/gcc/testsuite/g++.dg/other/armv7m-1.C 2010-01-25 09:50:29.585686502 +0100
59253 @@ -0,0 +1,69 @@
59254 +/* { dg-do run { target arm*-*-* } } */
59255 +/* Test Armv7m interrupt routines. */
59256 +#include <stdlib.h>
59257 +
59258 +#ifdef __ARM_ARCH_7M__
59259 +void __attribute__((interrupt))
59260 +foo(void)
59261 +{
59262 + long long n;
59263 + long p;
59264 + asm volatile ("" : "=r" (p) : "0" (&n));
59265 + if (p & 4)
59266 + abort ();
59267 + return;
59268 +}
59269 +
59270 +void __attribute__((interrupt))
59271 +bar(void)
59272 +{
59273 + throw 42;
59274 +}
59275 +
59276 +int main()
59277 +{
59278 + int a;
59279 + int before;
59280 + int after;
59281 + volatile register int sp asm("sp");
59282 +
59283 + asm volatile ("mov %0, sp\n"
59284 + "blx %2\n"
59285 + "mov %1, sp\n"
59286 + : "=&r" (before), "=r" (after) : "r" (foo)
59287 + : "memory", "cc", "r0", "r1", "r2", "r3", "ip", "lr");
59288 + if (before != after)
59289 + abort();
59290 + asm volatile ("mov %0, sp\n"
59291 + "sub sp, sp, #4\n"
59292 + "blx %2\n"
59293 + "add sp, sp, #4\n"
59294 + "mov %1, sp\n"
59295 + : "=&r" (before), "=r" (after) : "r" (foo)
59296 + : "memory", "cc", "r0", "r1", "r2", "r3", "ip", "lr");
59297 + if (before != after)
59298 + abort();
59299 + before = sp;
59300 + try
59301 + {
59302 + bar();
59303 + }
59304 + catch (int i)
59305 + {
59306 + if (i != 42)
59307 + abort();
59308 + }
59309 + catch (...)
59310 + {
59311 + abort();
59312 + }
59313 + if (before != sp)
59314 + abort();
59315 + exit(0);
59316 +}
59317 +#else
59318 +int main()
59319 +{
59320 + exit (0);
59321 +}
59322 +#endif
59323 diff -Nur a/gcc/testsuite/g++.dg/remove-local-statics-1.C b/gcc/testsuite/g++.dg/remove-local-statics-1.C
59324 --- a/gcc/testsuite/g++.dg/remove-local-statics-1.C 1970-01-01 01:00:00.000000000 +0100
59325 +++ b/gcc/testsuite/g++.dg/remove-local-statics-1.C 2010-01-25 09:50:29.585686502 +0100
59326 @@ -0,0 +1,21 @@
59327 +/* Verify that we do not eliminate a static variable in
59328 + main::Local::Foo. */
59329 +
59330 +/* { dg-do compile } */
59331 +/* { dg-options "-O2 -fremove-local-statics" } */
59332 +/* { dg-final { scan-assembler "thestatic" } } */
59333 +
59334 +int
59335 +main (void)
59336 +{
59337 + static int thestatic = 0;
59338 + struct Local {
59339 + __attribute__((__noinline__))
59340 + static void Foo () { thestatic = 1; }
59341 + };
59342 +
59343 + thestatic = 2;
59344 + Local::Foo();
59345 +
59346 + return thestatic++;
59347 +}
59348 diff -Nur a/gcc/testsuite/g++.dg/remove-local-statics-2.C b/gcc/testsuite/g++.dg/remove-local-statics-2.C
59349 --- a/gcc/testsuite/g++.dg/remove-local-statics-2.C 1970-01-01 01:00:00.000000000 +0100
59350 +++ b/gcc/testsuite/g++.dg/remove-local-statics-2.C 2010-01-25 09:50:29.585686502 +0100
59351 @@ -0,0 +1,21 @@
59352 +/* Verify that we do not eliminate a static variable in
59353 + main due to its use in Local::Foo. */
59354 +
59355 +/* { dg-do compile } */
59356 +/* { dg-options "-O2 -fremove-local-statics" } */
59357 +/* { dg-final { scan-assembler "thestatic" } } */
59358 +
59359 +int
59360 +main (void)
59361 +{
59362 + static int thestatic = 0;
59363 + struct Local {
59364 + __attribute__((__noinline__))
59365 + static int Foo () { return thestatic; }
59366 + };
59367 +
59368 + thestatic = 2;
59369 + thestatic = Local::Foo();
59370 +
59371 + return thestatic++;
59372 +}
59373 diff -Nur a/gcc/testsuite/g++.dg/template/overload9.C b/gcc/testsuite/g++.dg/template/overload9.C
59374 --- a/gcc/testsuite/g++.dg/template/overload9.C 2008-09-19 00:29:39.000000000 +0200
59375 +++ b/gcc/testsuite/g++.dg/template/overload9.C 2010-01-25 09:50:29.585686502 +0100
59376 @@ -7,12 +7,12 @@
59377 template <typename T>
59378 struct A
59379 {
59380 - A<T>& operator<<(A<T>& (*)(A<T>&)); // { dg-message "candidate" }
59381 + A<T>& operator<<(A<T>& (*)(A<T>&));
59382 };
59383
59384 template <typename T> A<T>& foo(A<T>&);
59385 extern A<char> c;
59386
59387 int main () {
59388 - c << (1, foo); // { dg-error "no match" }
59389 + c << (1, foo); // { dg-error "no context" }
59390 }
59391 diff -Nur a/gcc/testsuite/g++.dg/torture/pr36191.C b/gcc/testsuite/g++.dg/torture/pr36191.C
59392 --- a/gcc/testsuite/g++.dg/torture/pr36191.C 2008-12-29 19:25:19.000000000 +0100
59393 +++ b/gcc/testsuite/g++.dg/torture/pr36191.C 2010-01-25 09:50:29.585686502 +0100
59394 @@ -1,6 +1,7 @@
59395 // PR c++/36191
59396 // { dg-do compile }
59397 // { dg-options "-fnon-call-exceptions" }
59398 +// { dg-skip-if "Frame pointer required for unwind tables" { sh*-*-* } "-fomit-frame-pointer" "" }
59399
59400 __complex__ double
59401 foo (__complex__ double x, double y)
59402 diff -Nur a/gcc/testsuite/g++.dg/tree-ssa/sink-1.C b/gcc/testsuite/g++.dg/tree-ssa/sink-1.C
59403 --- a/gcc/testsuite/g++.dg/tree-ssa/sink-1.C 1970-01-01 01:00:00.000000000 +0100
59404 +++ b/gcc/testsuite/g++.dg/tree-ssa/sink-1.C 2010-01-25 09:50:29.585686502 +0100
59405 @@ -0,0 +1,50 @@
59406 +/* { dg-do run } */
59407 +/* { dg-options "-O1" } */
59408 +
59409 +class A {
59410 + public:
59411 + A() {}
59412 + virtual ~A() {}
59413 + void * dostuff();
59414 +
59415 + virtual int dovirtual() = 0;
59416 +};
59417 +
59418 +
59419 +class B : public A {
59420 + public:
59421 + B() {}
59422 + int dovirtual() { return 0;}
59423 + virtual ~B() {};
59424 +};
59425 +
59426 +class C : public B {
59427 + public:
59428 + C() {}
59429 + virtual ~C() {};
59430 +};
59431 +
59432 +void* A::dostuff()
59433 +{
59434 + return (void*)dovirtual();
59435 +}
59436 +
59437 +/* tree-ssa-sink was sinking the inlined destructor for STUFF out of
59438 + the first inner block and into the second one, where it was ending up
59439 + after the inlined constructor for STUFF2. This is bad because
59440 + cfgexpand aliases STUFF and STUFF2 to the same storage at -O1
59441 + (i.e., without -fstrict-aliasing), with the result that STUFF2's
59442 + vtable was getting trashed. */
59443 +
59444 +int main() {
59445 + {
59446 + B stuff;
59447 + stuff.dostuff();
59448 + }
59449 + {
59450 + C stuff2;
59451 + stuff2.dostuff();
59452 + }
59453 + return 0;
59454 +}
59455 +
59456 diff -Nur a/gcc/testsuite/g++.dg/vect/vect.exp b/gcc/testsuite/g++.dg/vect/vect.exp
59457 --- a/gcc/testsuite/g++.dg/vect/vect.exp 2009-02-20 16:20:38.000000000 +0100
59458 +++ b/gcc/testsuite/g++.dg/vect/vect.exp 2010-01-25 09:50:29.585686502 +0100
59459 @@ -105,7 +105,7 @@
59460 } elseif [istarget "ia64-*-*"] {
59461 set dg-do-what-default run
59462 } elseif [is-effective-target arm_neon_ok] {
59463 - lappend DEFAULT_VECTCFLAGS "-mfpu=neon" "-mfloat-abi=softfp"
59464 + eval lappend DEFAULT_VECTCFLAGS [add_options_for_arm_neon ""]
59465 if [is-effective-target arm_neon_hw] {
59466 set dg-do-what-default run
59467 } else {
59468 diff -Nur a/gcc/testsuite/g++.dg/warn/null4.C b/gcc/testsuite/g++.dg/warn/null4.C
59469 --- a/gcc/testsuite/g++.dg/warn/null4.C 2007-01-30 23:29:11.000000000 +0100
59470 +++ b/gcc/testsuite/g++.dg/warn/null4.C 2010-01-25 09:50:29.585686502 +0100
59471 @@ -11,9 +11,22 @@
59472 if (NULL < NULL) return -1; // { dg-warning "NULL used in arithmetic" }
59473 if (NULL >= 0) return -1; // { dg-warning "NULL used in arithmetic" }
59474 if (NULL <= 0) return -1; // { dg-warning "NULL used in arithmetic" }
59475 + // Adding to the NULL pointer, which has no specific type, should
59476 + // result in a warning; the type of the resulting expression is
59477 + // actually "int", not a pointer type.
59478 + if (NULL + 1) return -1; // { dg-warning "NULL used in arithmetic" }
59479 + if (1 + NULL) return -1; // { dg-warning "NULL used in arithmetic" }
59480 return 0;
59481 }
59482
59483 +int *ip;
59484 +
59485 +struct S {};
59486 +typedef int S::*SPD;
59487 +typedef void (S::*SPF)(void);
59488 +SPD spd;
59489 +SPF spf;
59490 +
59491 int bar (void)
59492 {
59493 if (NULL) return -1;
59494 @@ -25,5 +38,18 @@
59495 if (NULL != NULL) return -1;
59496 if (NULL == 0) return -1;
59497 if (NULL != 0) return -1;
59498 + // Subtraction of pointers is vaild, so using NULL is OK.
59499 + if (ip - NULL) return -1;
59500 + if (NULL - NULL) return -1;
59501 + // Comparing NULL with a pointer-to-member is OK.
59502 + if (NULL == spd) return -1;
59503 + if (spd == NULL) return -1;
59504 + if (NULL != spd) return -1;
59505 + if (spd != NULL) return -1;
59506 + if (NULL == spf) return -1;
59507 + if (spf == NULL) return -1;
59508 + if (NULL != spf) return -1;
59509 + if (spf != NULL) return -1;
59510 +
59511 return 0;
59512 }
59513 diff -Nur a/gcc/testsuite/gfortran.dg/vect/vect.exp b/gcc/testsuite/gfortran.dg/vect/vect.exp
59514 --- a/gcc/testsuite/gfortran.dg/vect/vect.exp 2009-02-20 16:20:38.000000000 +0100
59515 +++ b/gcc/testsuite/gfortran.dg/vect/vect.exp 2010-01-25 09:50:29.585686502 +0100
59516 @@ -98,7 +98,7 @@
59517 } elseif [istarget "ia64-*-*"] {
59518 set dg-do-what-default run
59519 } elseif [is-effective-target arm_neon_ok] {
59520 - lappend DEFAULT_VECTCFLAGS "-mfpu=neon" "-mfloat-abi=softfp"
59521 + eval lappend DEFAULT_VECTCFLAGS [add_options_for_arm_neon ""]
59522 if [is-effective-target arm_neon_hw] {
59523 set dg-do-what-default run
59524 } else {
59525 diff -Nur a/gcc/testsuite/g++.old-deja/g++.other/overload11.C b/gcc/testsuite/g++.old-deja/g++.other/overload11.C
59526 --- a/gcc/testsuite/g++.old-deja/g++.other/overload11.C 2008-09-19 00:29:39.000000000 +0200
59527 +++ b/gcc/testsuite/g++.old-deja/g++.other/overload11.C 2010-01-25 09:50:29.585686502 +0100
59528 @@ -54,11 +54,10 @@
59529
59530 ptr = (ovl); // ok
59531 ptr = (&ovl); // ok
59532 - // 13.4 indicates these are ok.
59533 - ptr = (0, ovl); // ok { dg-bogus "" "" { xfail *-*-* } }
59534 - ptr = (0, &ovl); // ok { dg-bogus "" "" { xfail *-*-* } }
59535 - ptr = (argc ? ovl : ovl); // ok { dg-bogus "" "" { xfail *-*-* } }
59536 - ptr = (argc ? &ovl : &ovl);// ok { dg-bogus "" "" { xfail *-*-* } }
59537 + ptr = (0, ovl); // ok { dg-error "no context" }
59538 + ptr = (0, &ovl); // ok { dg-error "no context" }
59539 + ptr = (argc ? ovl : ovl); // ok { dg-error "no context" }
59540 + ptr = (argc ? &ovl : &ovl);// ok { dg-error "no context" }
59541
59542 vptr = (ovl); // { dg-error "" } no matching candidates
59543 vptr = (&ovl); // { dg-error "" } no matching candidates
59544 diff -Nur a/gcc/testsuite/lib/prune.exp b/gcc/testsuite/lib/prune.exp
59545 --- a/gcc/testsuite/lib/prune.exp 2009-02-20 16:20:38.000000000 +0100
59546 +++ b/gcc/testsuite/lib/prune.exp 2010-01-25 09:50:29.585686502 +0100
59547 @@ -57,3 +57,34 @@
59548 return $text
59549 }
59550 }
59551 +
59552 +# Extend prune_warnings (provided by DejaGNU itself) to prune more
59553 +# things. The prune_gcc_output function above is called only by some
59554 +# tests; prune_warnings is used by all.
59555 +if { [info procs prune_warnings_orig] == "" } {
59556 + rename prune_warnings prune_warnings_orig
59557 +
59558 + proc prune_warnings { text } {
59559 + set text [prune_warnings_orig $text]
59560 +
59561 + if { [ishost "sparc*-*-solaris2*"] } {
59562 + # When testing a compiler built for SPARC Solaris 2.9 (or earlier)
59563 + # on a host running Solaris 2.10 (or later), we get this warning
59564 + # from the static linker when building with g++:
59565 + #
59566 + # libm.so.1, needed by .../libstdc++.so may conflict with
59567 + # libm.so
59568 + #
59569 + # The warning is issued because libstdc++ is linked against
59570 + # libm.so.1 (from the Solaris 2.9 sysroot), whereas Solaris 2.10
59571 + # provides both libm.so.2 and libm.so.1. On Solaris 2.10, libc.so
59572 + # depends on libm.so.2, so all programs pull in libm.so.2.
59573 + #
59574 + # Pulling both libraries must in fact be harmless, as, otherwise,
59575 + # programs built for Solaris 2.9 would break on Solaris 2.10.
59576 + regsub -all "(^|\n)\[^\n\]*: warning: libm.so.1, needed by \[^\n\]*, may conflict with libm.so.2" $text "" text
59577 + }
59578 +
59579 + return $text
59580 + }
59581 +}
59582 diff -Nur a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
59583 --- a/gcc/testsuite/lib/target-supports.exp 2009-07-21 09:22:51.000000000 +0200
59584 +++ b/gcc/testsuite/lib/target-supports.exp 2010-01-25 09:50:29.585686502 +0100
59585 @@ -491,6 +491,7 @@
59586 || [istarget avr-*-*]
59587 || [istarget bfin-*-*]
59588 || [istarget powerpc-*-eabi*]
59589 + || [istarget powerpc-*-elf]
59590 || [istarget cris-*-*]
59591 || [istarget crisv32-*-*]
59592 || [istarget fido-*-elf]
59593 @@ -611,6 +612,18 @@
59594 } "-pthread"]
59595 }
59596
59597 +# Return 1 if compilation with -mpe-aligned-commons is error-free
59598 +# for trivial code, 0 otherwise.
59599 +
59600 +proc check_effective_target_pe_aligned_commons {} {
59601 + if { [istarget *-*-cygwin*] || [istarget *-*-mingw*] } {
59602 + return [check_no_compiler_messages pe_aligned_commons object {
59603 + int foo;
59604 + } "-mpe-aligned-commons"]
59605 + }
59606 + return 0
59607 +}
59608 +
59609 # Return 1 if the target supports -fstack-protector
59610 proc check_effective_target_fstack_protector {} {
59611 return [check_runtime fstack_protector {
59612 @@ -720,6 +733,15 @@
59613 } [add_options_for_mips16_attribute ""]]
59614 }
59615
59616 +# Return 1 if the target supports long double larger than double when
59617 +# using the new ABI, 0 otherwise.
59618 +
59619 +proc check_effective_target_mips_newabi_large_long_double { } {
59620 + return [check_no_compiler_messages mips_newabi_large_long_double object {
59621 + int dummy[sizeof(long double) > sizeof(double) ? 1 : -1];
59622 + } "-mabi=64"]
59623 +}
59624 +
59625 # Return 1 if the current multilib does not generate PIC by default.
59626
59627 proc check_effective_target_nonpic { } {
59628 @@ -1408,6 +1430,18 @@
59629 }]
59630 }
59631
59632 +# Return 1 if this is an ARM target that only supports aligned vector accesses
59633 +proc check_effective_target_arm_vect_no_misalign { } {
59634 + return [check_no_compiler_messages arm_vect_no_misalign assembly {
59635 + #if !defined(__arm__) \
59636 + || (defined(__ARMEL__) \
59637 + && (!defined(__thumb__) || defined(__thumb2__)))
59638 + #error FOO
59639 + #endif
59640 + }]
59641 +}
59642 +
59643 +
59644 # Return 1 if this is an ARM target supporting -mfpu=vfp
59645 # -mfloat-abi=softfp. Some multilibs may be incompatible with these
59646 # options.
59647 @@ -1422,18 +1456,110 @@
59648 }
59649 }
59650
59651 -# Return 1 if this is an ARM target supporting -mfpu=neon
59652 -# -mfloat-abi=softfp. Some multilibs may be incompatible with these
59653 +# Return 1 if this is an ARM target supporting -mfpu=vfp
59654 +# -mfloat-abi=hard. Some multilibs may be incompatible with these
59655 # options.
59656
59657 -proc check_effective_target_arm_neon_ok { } {
59658 +proc check_effective_target_arm_hard_vfp_ok { } {
59659 if { [check_effective_target_arm32] } {
59660 - return [check_no_compiler_messages arm_neon_ok object {
59661 - int dummy;
59662 - } "-mfpu=neon -mfloat-abi=softfp"]
59663 + return [check_no_compiler_messages arm_hard_vfp_ok executable {
59664 + int main() { return 0;}
59665 + } "-mfpu=vfp -mfloat-abi=hard"]
59666 } else {
59667 - return 0
59668 + return 0
59669 + }
59670 +}
59671 +
59672 +# Add the options needed for NEON. We need either -mfloat-abi=softfp
59673 +# or -mfloat-abi=hard, but if one is already specified by the
59674 +# multilib, use it. Similarly, if a -mfpu option already enables
59675 +# NEON, do not add -mfpu=neon.
59676 +
59677 +proc add_options_for_arm_neon { flags } {
59678 + if { ! [check_effective_target_arm_neon_ok] } {
59679 + return "$flags"
59680 + }
59681 + global et_arm_neon_flags
59682 + return "$flags $et_arm_neon_flags"
59683 +}
59684 +
59685 +# Return 1 if this is an ARM target supporting -mfpu=neon
59686 +# -mfloat-abi=softfp or equivalent options. Some multilibs may be
59687 +# incompatible with these options. Also set et_arm_neon_flags to the
59688 +# best options to add.
59689 +
59690 +proc check_effective_target_arm_neon_ok_nocache { } {
59691 + global et_arm_neon_flags
59692 + set et_arm_neon_flags ""
59693 + if { [check_effective_target_arm32] } {
59694 + foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon -mfloat-abi=softfp"} {
59695 + if { [check_no_compiler_messages_nocache arm_neon_ok object {
59696 + #include "arm_neon.h"
59697 + int dummy;
59698 + } "$flags"] } {
59699 + set et_arm_neon_flags $flags
59700 + return 1
59701 + }
59702 + }
59703 }
59704 +
59705 + return 0
59706 +}
59707 +
59708 +proc check_effective_target_arm_neon_ok { } {
59709 + return [check_cached_effective_target arm_neon_ok \
59710 + check_effective_target_arm_neon_ok_nocache]
59711 +}
59712 +
59713 +# Add the options needed for NEON. We need either -mfloat-abi=softfp
59714 +# or -mfloat-abi=hard, but if one is already specified by the
59715 +# multilib, use it.
59716 +
59717 +proc add_options_for_arm_neon_fp16 { flags } {
59718 + if { ! [check_effective_target_arm_neon_fp16_ok] } {
59719 + return "$flags"
59720 + }
59721 + global et_arm_neon_fp16_flags
59722 + return "$flags $et_arm_neon_fp16_flags"
59723 +}
59724 +
59725 +# Return 1 if this is an ARM target supporting -mfpu=neon-fp16
59726 +# -mfloat-abi=softfp or equivalent options. Some multilibs may be
59727 +# incompatible with these options. Also set et_arm_neon_flags to the
59728 +# best options to add.
59729 +
59730 +proc check_effective_target_arm_neon_fp16_ok_nocache { } {
59731 + global et_arm_neon_fp16_flags
59732 + set et_arm_neon_fp16_flags ""
59733 + if { [check_effective_target_arm32] } {
59734 + # Always add -mfpu=neon-fp16, since there is no preprocessor
59735 + # macro for FP16 support.
59736 + foreach flags {"-mfpu=neon-fp16" "-mfpu=neon-fp16 -mfloat-abi=softfp"} {
59737 + if { [check_no_compiler_messages_nocache arm_neon_fp16_ok object {
59738 + #include "arm_neon.h"
59739 + int dummy;
59740 + } "$flags"] } {
59741 + set et_arm_neon_fp16_flags $flags
59742 + return 1
59743 + }
59744 + }
59745 + }
59746 +
59747 + return 0
59748 +}
59749 +
59750 +proc check_effective_target_arm_neon_fp16_ok { } {
59751 + return [check_cached_effective_target arm_neon_fp16_ok \
59752 + check_effective_target_arm_neon_fp16_ok_nocache]
59753 +}
59754 +
59755 +# Return 1 if this is an arm target using 32-bit instructions, but not thumb
59756 +proc check_effective_target_arm_not_thumb { } {
59757 + return [check_no_compiler_messages arm_not_thumb assembly {
59758 + #if !defined(__arm__) || defined(__thumb__)
59759 + #error FOO
59760 + #endif
59761 + }]
59762 }
59763
59764 # Return 1 is this is an ARM target where -mthumb causes Thumb-1 to be
59765 @@ -1447,6 +1573,17 @@
59766 } "-mthumb"]
59767 }
59768
59769 +# Return 1 is this is an ARM target where -mthumb causes Thumb-2 to be
59770 +# used.
59771 +
59772 +proc check_effective_target_arm_thumb2_ok { } {
59773 + return [check_no_compiler_messages arm_thumb2_ok assembly {
59774 + #if !defined(__thumb2__)
59775 + #error FOO
59776 + #endif
59777 + } "-mthumb"]
59778 +}
59779 +
59780 # Return 1 if the target supports executing NEON instructions, 0
59781 # otherwise. Cache the result.
59782
59783 @@ -1461,7 +1598,7 @@
59784 : "0" (a), "w" (b));
59785 return (a != 1);
59786 }
59787 - } "-mfpu=neon -mfloat-abi=softfp"]
59788 + } [add_options_for_arm_neon ""]]
59789 }
59790
59791 # Return 1 if this is a ARM target with NEON enabled.
59792 @@ -1504,6 +1641,19 @@
59793 }]
59794 }
59795
59796 +# Return 1 if this is an ARM target supporting -mcpu=iwmmxt.
59797 +# Some multilibs may be incompatible with this option.
59798 +
59799 +proc check_effective_target_arm_iwmmxt_ok { } {
59800 + if { [check_effective_target_arm32] } {
59801 + return [check_no_compiler_messages arm_iwmmxt_ok object {
59802 + int dummy;
59803 + } "-mcpu=iwmmxt"]
59804 + } else {
59805 + return 0
59806 + }
59807 +}
59808 +
59809 # Return 1 if this is a PowerPC target with floating-point registers.
59810
59811 proc check_effective_target_powerpc_fprs { } {
59812 @@ -1700,6 +1850,26 @@
59813 return $et_vect_shift_saved
59814 }
59815
59816 +# Return 1 if the target supports hardware vector shift operation for char.
59817 +
59818 +proc check_effective_target_vect_shift_char { } {
59819 + global et_vect_shift_char_saved
59820 +
59821 + if [info exists et_vect_shift_char_saved] {
59822 + verbose "check_effective_target_vect_shift_char: using cached result" 2
59823 + } else {
59824 + set et_vect_shift_char_saved 0
59825 + if { ([istarget powerpc*-*-*]
59826 + && ![istarget powerpc-*-linux*paired*])
59827 + || [check_effective_target_arm32] } {
59828 + set et_vect_shift_char_saved 1
59829 + }
59830 + }
59831 +
59832 + verbose "check_effective_target_vect_shift_char: returning $et_vect_shift_char_saved" 2
59833 + return $et_vect_shift_char_saved
59834 +}
59835 +
59836 # Return 1 if the target supports hardware vectors of long, 0 otherwise.
59837 #
59838 # This can change for different subtargets so do not cache the result.
59839 @@ -2159,7 +2329,7 @@
59840 if { [istarget mipsisa64*-*-*]
59841 || [istarget sparc*-*-*]
59842 || [istarget ia64-*-*]
59843 - || [check_effective_target_arm32] } {
59844 + || [check_effective_target_arm_vect_no_misalign] } {
59845 set et_vect_no_align_saved 1
59846 }
59847 }
59848 @@ -2273,6 +2443,24 @@
59849 return $et_vector_alignment_reachable_for_64bit_saved
59850 }
59851
59852 +# Return 1 if the target only requires element alignment for vector accesses
59853 +
59854 +proc check_effective_target_vect_element_align { } {
59855 + global et_vect_element_align
59856 +
59857 + if [info exists et_vect_element_align] {
59858 + verbose "check_effective_target_vect_elemetn_align: using cached result" 2
59859 + } else {
59860 + set et_vect_element_align 0
59861 + if { [istarget arm*-*-*] } {
59862 + set et_vect_element_align 1
59863 + }
59864 + }
59865 +
59866 + verbose "check_effective_target_vect_element_align: returning $et_vect_element_align" 2
59867 + return $et_vect_element_align
59868 +}
59869 +
59870 # Return 1 if the target supports vector conditional operations, 0 otherwise.
59871
59872 proc check_effective_target_vect_condition { } {
59873 @@ -2468,7 +2656,8 @@
59874 verbose "check_effective_target_section_anchors: using cached result" 2
59875 } else {
59876 set et_section_anchors_saved 0
59877 - if { [istarget powerpc*-*-*] } {
59878 + if { [istarget powerpc*-*-*]
59879 + || [istarget arm*-*-*] } {
59880 set et_section_anchors_saved 1
59881 }
59882 }
59883 diff -Nur a/gcc/timevar.def b/gcc/timevar.def
59884 --- a/gcc/timevar.def 2009-02-20 16:20:38.000000000 +0100
59885 +++ b/gcc/timevar.def 2010-01-25 09:50:29.585686502 +0100
59886 @@ -134,6 +134,7 @@
59887 DEFTIMEVAR (TV_PREDCOM , "predictive commoning")
59888 DEFTIMEVAR (TV_TREE_LOOP_INIT , "tree loop init")
59889 DEFTIMEVAR (TV_TREE_LOOP_FINI , "tree loop fini")
59890 +DEFTIMEVAR (TV_TREE_LOOP_PROMOTE , "tree loop index promotion")
59891 DEFTIMEVAR (TV_TREE_CH , "tree copy headers")
59892 DEFTIMEVAR (TV_TREE_SSA_UNCPROP , "tree SSA uncprop")
59893 DEFTIMEVAR (TV_TREE_SSA_TO_NORMAL , "tree SSA to normal")
59894 @@ -141,6 +142,7 @@
59895 DEFTIMEVAR (TV_TREE_COPY_RENAME , "tree rename SSA copies")
59896 DEFTIMEVAR (TV_TREE_SSA_VERIFY , "tree SSA verifier")
59897 DEFTIMEVAR (TV_TREE_STMT_VERIFY , "tree STMT verifier")
59898 +DEFTIMEVAR (TV_TREE_RLS , "tree local static removal")
59899 DEFTIMEVAR (TV_TREE_SWITCH_CONVERSION, "tree switch initialization conversion")
59900 DEFTIMEVAR (TV_CGRAPH_VERIFY , "callgraph verifier")
59901 DEFTIMEVAR (TV_DOM_FRONTIERS , "dominance frontiers")
59902 diff -Nur a/gcc/toplev.h b/gcc/toplev.h
59903 --- a/gcc/toplev.h 2009-02-20 16:20:38.000000000 +0100
59904 +++ b/gcc/toplev.h 2010-01-25 09:50:29.585686502 +0100
59905 @@ -139,6 +139,7 @@
59906 extern int flag_unroll_all_loops;
59907 extern int flag_unswitch_loops;
59908 extern int flag_cprop_registers;
59909 +extern int flag_remove_local_statics;
59910 extern int time_report;
59911 extern int flag_ira_coalesce;
59912 extern int flag_ira_move_spills;
59913 diff -Nur a/gcc/tree.c b/gcc/tree.c
59914 --- a/gcc/tree.c 2009-07-20 16:39:32.000000000 +0200
59915 +++ b/gcc/tree.c 2010-01-25 09:50:29.585686502 +0100
59916 @@ -4062,6 +4062,7 @@
59917 bool *no_add_attrs)
59918 {
59919 tree node = *pnode;
59920 + bool is_dllimport;
59921
59922 /* These attributes may apply to structure and union types being created,
59923 but otherwise should pass to the declaration involved. */
59924 @@ -4109,9 +4110,11 @@
59925 return NULL_TREE;
59926 }
59927
59928 + is_dllimport = is_attribute_p ("dllimport", name);
59929 +
59930 /* Report error on dllimport ambiguities seen now before they cause
59931 any damage. */
59932 - else if (is_attribute_p ("dllimport", name))
59933 + if (is_dllimport)
59934 {
59935 /* Honor any target-specific overrides. */
59936 if (!targetm.valid_dllimport_attribute_p (node))
59937 @@ -4153,6 +4156,9 @@
59938 if (*no_add_attrs == false)
59939 DECL_DLLIMPORT_P (node) = 1;
59940 }
59941 + else if (DECL_DECLARED_INLINE_P (node))
59942 + /* An exported function, even if inline, must be emitted. */
59943 + DECL_EXTERNAL (node) = 0;
59944
59945 /* Report error if symbol is not accessible at global scope. */
59946 if (!TREE_PUBLIC (node)
59947 diff -Nur a/gcc/tree-cfg.c b/gcc/tree-cfg.c
59948 --- a/gcc/tree-cfg.c 2009-07-02 14:16:39.000000000 +0200
59949 +++ b/gcc/tree-cfg.c 2010-01-25 09:50:29.585686502 +0100
59950 @@ -47,6 +47,7 @@
59951 #include "value-prof.h"
59952 #include "pointer-set.h"
59953 #include "tree-inline.h"
59954 +#include "target.h"
59955
59956 /* This file contains functions for building the Control Flow Graph (CFG)
59957 for a function tree. */
59958 @@ -7052,6 +7053,9 @@
59959 edge e;
59960 edge_iterator ei;
59961
59962 + if (!targetm.warn_func_result())
59963 + return 0;
59964 +
59965 /* If we have a path to EXIT, then we do return. */
59966 if (TREE_THIS_VOLATILE (cfun->decl)
59967 && EDGE_COUNT (EXIT_BLOCK_PTR->preds) > 0)
59968 diff -Nur a/gcc/tree.h b/gcc/tree.h
59969 --- a/gcc/tree.h 2009-06-02 09:18:16.000000000 +0200
59970 +++ b/gcc/tree.h 2010-01-25 09:50:29.585686502 +0100
59971 @@ -381,8 +381,10 @@
59972 unsigned lang_flag_5 : 1;
59973 unsigned lang_flag_6 : 1;
59974 unsigned visited : 1;
59975 + unsigned packed_flag : 1;
59976 + unsigned user_align : 1;
59977
59978 - unsigned spare : 23;
59979 + unsigned spare : 21;
59980
59981 union tree_ann_d *ann;
59982 };
59983 @@ -2140,7 +2142,7 @@
59984
59985 /* 1 if the alignment for this type was requested by "aligned" attribute,
59986 0 if it is the default for this type. */
59987 -#define TYPE_USER_ALIGN(NODE) (TYPE_CHECK (NODE)->type.user_align)
59988 +#define TYPE_USER_ALIGN(NODE) (TYPE_CHECK (NODE)->common.base.user_align)
59989
59990 /* The alignment for NODE, in bytes. */
59991 #define TYPE_ALIGN_UNIT(NODE) (TYPE_ALIGN (NODE) / BITS_PER_UNIT)
59992 @@ -2246,7 +2248,7 @@
59993
59994 /* Indicated that objects of this type should be laid out in as
59995 compact a way as possible. */
59996 -#define TYPE_PACKED(NODE) (TYPE_CHECK (NODE)->type.packed_flag)
59997 +#define TYPE_PACKED(NODE) (TYPE_CHECK (NODE)->common.base.packed_flag)
59998
59999 /* Used by type_contains_placeholder_p to avoid recomputation.
60000 Values are: 0 (unknown), 1 (false), 2 (true). Never access
60001 @@ -2265,17 +2267,16 @@
60002 tree attributes;
60003 unsigned int uid;
60004
60005 - unsigned int precision : 9;
60006 - ENUM_BITFIELD(machine_mode) mode : 7;
60007 -
60008 - unsigned string_flag : 1;
60009 + unsigned int precision : 10;
60010 unsigned no_force_blk_flag : 1;
60011 unsigned needs_constructing_flag : 1;
60012 unsigned transparent_union_flag : 1;
60013 - unsigned packed_flag : 1;
60014 unsigned restrict_flag : 1;
60015 unsigned contains_placeholder_bits : 2;
60016
60017 + ENUM_BITFIELD(machine_mode) mode : 8;
60018 +
60019 + unsigned string_flag : 1;
60020 unsigned lang_flag_0 : 1;
60021 unsigned lang_flag_1 : 1;
60022 unsigned lang_flag_2 : 1;
60023 @@ -2283,7 +2284,6 @@
60024 unsigned lang_flag_4 : 1;
60025 unsigned lang_flag_5 : 1;
60026 unsigned lang_flag_6 : 1;
60027 - unsigned user_align : 1;
60028
60029 unsigned int align;
60030 alias_set_type alias_set;
60031 @@ -2584,7 +2584,7 @@
60032 #define DECL_ALIGN_UNIT(NODE) (DECL_ALIGN (NODE) / BITS_PER_UNIT)
60033 /* Set if the alignment of this DECL has been set by the user, for
60034 example with an 'aligned' attribute. */
60035 -#define DECL_USER_ALIGN(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.user_align)
60036 +#define DECL_USER_ALIGN(NODE) (DECL_COMMON_CHECK (NODE)->common.base.user_align)
60037 /* Holds the machine mode corresponding to the declaration of a variable or
60038 field. Always equal to TYPE_MODE (TREE_TYPE (decl)) except for a
60039 FIELD_DECL. */
60040 @@ -2621,7 +2621,7 @@
60041 example, for a FUNCTION_DECL, DECL_SAVED_TREE may be non-NULL and
60042 DECL_EXTERNAL may be true simultaneously; that can be the case for
60043 a C99 "extern inline" function. */
60044 -#define DECL_EXTERNAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.decl_flag_2)
60045 +#define DECL_EXTERNAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.decl_flag_1)
60046
60047 /* Nonzero in a ..._DECL means this variable is ref'd from a nested function.
60048 For VAR_DECL nodes, PARM_DECL nodes, and FUNCTION_DECL nodes.
60049 @@ -2696,7 +2696,6 @@
60050 unsigned ignored_flag : 1;
60051 unsigned abstract_flag : 1;
60052 unsigned artificial_flag : 1;
60053 - unsigned user_align : 1;
60054 unsigned preserve_flag: 1;
60055 unsigned debug_expr_is_from : 1;
60056
60057 @@ -2712,22 +2711,20 @@
60058 /* In LABEL_DECL, this is DECL_ERROR_ISSUED.
60059 In VAR_DECL and PARM_DECL, this is DECL_REGISTER. */
60060 unsigned decl_flag_0 : 1;
60061 - /* In FIELD_DECL, this is DECL_PACKED. */
60062 - unsigned decl_flag_1 : 1;
60063 /* In FIELD_DECL, this is DECL_BIT_FIELD
60064 In VAR_DECL and FUNCTION_DECL, this is DECL_EXTERNAL.
60065 - In TYPE_DECL, this is TYPE_DECL_SUPRESS_DEBUG. */
60066 - unsigned decl_flag_2 : 1;
60067 + In TYPE_DECL, this is TYPE_DECL_SUPPRESS_DEBUG. */
60068 + unsigned decl_flag_1 : 1;
60069 /* In FIELD_DECL, this is DECL_NONADDRESSABLE_P
60070 - In VAR_DECL and PARM_DECL, this is DECL_HAS_VALUE_EXPR. */
60071 - unsigned decl_flag_3 : 1;
60072 + In VAR_DECL and PARM_DECL, this is DECL_HAS_VALUE_EXPR_P. */
60073 + unsigned decl_flag_2 : 1;
60074 /* Logically, these two would go in a theoretical base shared by var and
60075 parm decl. */
60076 unsigned gimple_reg_flag : 1;
60077 /* In a DECL with pointer type, set if no TBAA should be done. */
60078 unsigned no_tbaa_flag : 1;
60079 /* Padding so that 'align' can be on a 32-bit boundary. */
60080 - unsigned decl_common_unused : 2;
60081 + unsigned decl_common_unused : 4;
60082
60083 unsigned int align : 24;
60084 /* DECL_OFFSET_ALIGN, used only for FIELD_DECLs. */
60085 @@ -2751,7 +2748,7 @@
60086 decl itself. This should only be used for debugging; once this field has
60087 been set, the decl itself may not legitimately appear in the function. */
60088 #define DECL_HAS_VALUE_EXPR_P(NODE) \
60089 - (TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_flag_3)
60090 + (TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_flag_2)
60091 #define DECL_VALUE_EXPR(NODE) \
60092 (decl_value_expr_lookup (DECL_WRTL_CHECK (NODE)))
60093 #define SET_DECL_VALUE_EXPR(NODE, VAL) \
60094 @@ -2830,11 +2827,11 @@
60095 #define DECL_FCONTEXT(NODE) (FIELD_DECL_CHECK (NODE)->field_decl.fcontext)
60096
60097 /* In a FIELD_DECL, indicates this field should be bit-packed. */
60098 -#define DECL_PACKED(NODE) (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_1)
60099 +#define DECL_PACKED(NODE) (FIELD_DECL_CHECK (NODE)->common.base.packed_flag)
60100
60101 /* Nonzero in a FIELD_DECL means it is a bit field, and must be accessed
60102 specially. */
60103 -#define DECL_BIT_FIELD(NODE) (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_2)
60104 +#define DECL_BIT_FIELD(NODE) (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_1)
60105
60106 /* Used in a FIELD_DECL to indicate that we cannot form the address of
60107 this component. This makes it possible for Type-Based Alias Analysis
60108 @@ -2852,7 +2849,7 @@
60109 accesses to s.i must not be given the alias set of the type of 'i'
60110 (int) but instead directly that of the type of 's' (struct S). */
60111 #define DECL_NONADDRESSABLE_P(NODE) \
60112 - (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_3)
60113 + (FIELD_DECL_CHECK (NODE)->decl_common.decl_flag_2)
60114
60115 struct tree_field_decl GTY(())
60116 {
60117 @@ -3337,7 +3334,7 @@
60118 into stabs. Instead it will generate cross reference ('x') of names.
60119 This uses the same flag as DECL_EXTERNAL. */
60120 #define TYPE_DECL_SUPPRESS_DEBUG(NODE) \
60121 - (TYPE_DECL_CHECK (NODE)->decl_common.decl_flag_2)
60122 + (TYPE_DECL_CHECK (NODE)->decl_common.decl_flag_1)
60123
60124 /* Getter of the imported declaration associated to the
60125 IMPORTED_DECL node. */
60126 diff -Nur a/gcc/tree-pass.h b/gcc/tree-pass.h
60127 --- a/gcc/tree-pass.h 2009-02-20 16:20:38.000000000 +0100
60128 +++ b/gcc/tree-pass.h 2010-01-25 09:50:29.585686502 +0100
60129 @@ -323,6 +323,7 @@
60130 extern struct gimple_opt_pass pass_empty_loop;
60131 extern struct gimple_opt_pass pass_record_bounds;
60132 extern struct gimple_opt_pass pass_graphite_transforms;
60133 +extern struct gimple_opt_pass pass_promote_indices;
60134 extern struct gimple_opt_pass pass_if_conversion;
60135 extern struct gimple_opt_pass pass_loop_distribution;
60136 extern struct gimple_opt_pass pass_vectorize;
60137 @@ -388,6 +389,7 @@
60138 extern struct gimple_opt_pass pass_rebuild_cgraph_edges;
60139 extern struct gimple_opt_pass pass_build_cgraph_edges;
60140 extern struct gimple_opt_pass pass_reset_cc_flags;
60141 +extern struct gimple_opt_pass pass_remove_local_statics;
60142
60143 /* IPA Passes */
60144 extern struct ipa_opt_pass pass_ipa_inline;
60145 diff -Nur a/gcc/tree-sra.c b/gcc/tree-sra.c
60146 --- a/gcc/tree-sra.c 2009-03-04 10:02:59.000000000 +0100
60147 +++ b/gcc/tree-sra.c 2010-01-25 09:50:29.585686502 +0100
60148 @@ -274,6 +274,12 @@
60149 != TYPE_PRECISION (TREE_TYPE (t))))
60150 goto fail;
60151
60152 + /* Disable optimization of bitfields on BITS_BIG_ENDIAN
60153 + architectures. SRA doesn't properly handle padding bits
60154 + at the bottom, see issue6713. */
60155 + if (DECL_BIT_FIELD (t) && BITS_BIG_ENDIAN)
60156 + goto fail;
60157 +
60158 saw_one_field = true;
60159 }
60160
60161 diff -Nur a/gcc/tree-ssa-loop-promote.c b/gcc/tree-ssa-loop-promote.c
60162 --- a/gcc/tree-ssa-loop-promote.c 1970-01-01 01:00:00.000000000 +0100
60163 +++ b/gcc/tree-ssa-loop-promote.c 2010-01-25 09:50:29.585686502 +0100
60164 @@ -0,0 +1,1628 @@
60165 +/* Promotion of shorter-than-word-size loop indices.
60166 + Copyright (C) 2009 Free Software Foundation, Inc.
60167 +
60168 +This file is part of GCC.
60169 +
60170 +GCC is free software; you can redistribute it and/or modify it
60171 +under the terms of the GNU General Public License as published by the
60172 +Free Software Foundation; either version 3, or (at your option) any
60173 +later version.
60174 +
60175 +GCC is distributed in the hope that it will be useful, but WITHOUT
60176 +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
60177 +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
60178 +for more details.
60179 +
60180 +You should have received a copy of the GNU General Public License
60181 +along with GCC; see the file COPYING3. If not see
60182 +<http://www.gnu.org/licenses/>. */
60183 +
60184 +/* This pass finds loop indices that are declared as
60185 + shorter-than-word-size and replaces them with word-sized loop
60186 + indices. (It assumes that word-sized quantities are the most
60187 + efficient type on which to do arithmetic.) The loop optimization
60188 + machinery has a difficult time seeing through the casts required to
60189 + promote such indices to word-sized quantities for memory addressing
60190 + and/or preserving the semantics of the source language (such as C).
60191 + The transformation also helps eliminate unnecessary
60192 + {sign,zero}-extensions required for the same.
60193 +
60194 + Although this is most naturally expressed as a loop optimization
60195 + pass, we choose to place this pass some ways before the loop
60196 + optimization passes proper, so that other scalar optimizations will
60197 + run on our "cleaned-up" code. This decision has the negative of
60198 + requiring us to build and destroy all the loop optimization
60199 + infrastructure.
60200 +
60201 + The algorithm is relatively simple. For each single-exit loop, we
60202 + identify the loop index variable. If the loop index variable is
60203 + shorter than the word size, then we have a candidate for promotion.
60204 + We determine whether the scalar evolution of the loop index fits a
60205 + particular pattern (incremented by 1, compared against a
60206 + similarly-typed loop bound, and only modified by a single increment
60207 + within the loop), as well as examining the uses of the loop index to
60208 + ensure we are able to safely promote those uses (e.g. the loop index
60209 + must not be stored to memory or passed to function calls). If these
60210 + conditions are satisfied, we create an appropriate word-sized type
60211 + and replace all uses and defs of the loop index variable with the new
60212 + variable. */
60213 +
60214 +#include "config.h"
60215 +#include "system.h"
60216 +#include "coretypes.h"
60217 +#include "tm.h"
60218 +
60219 +#include "toplev.h"
60220 +#include "rtl.h"
60221 +#include "tm_p.h"
60222 +#include "hard-reg-set.h"
60223 +#include "obstack.h"
60224 +#include "basic-block.h"
60225 +#include "pointer-set.h"
60226 +#include "intl.h"
60227 +
60228 +#include "tree.h"
60229 +#include "gimple.h"
60230 +#include "hashtab.h"
60231 +#include "diagnostic.h"
60232 +#include "tree-flow.h"
60233 +#include "tree-dump.h"
60234 +#include "cfgloop.h"
60235 +#include "flags.h"
60236 +#include "timevar.h"
60237 +#include "tree-pass.h"
60238 +
60239 +struct promote_info {
60240 + /* The loop being analyzed. */
60241 + struct loop *loop;
60242 +
60243 + /* The GIMPLE_COND controlling exit from the loop. */
60244 + gimple exit_expr;
60245 +
60246 + /* The loop index variable's SSA_NAME that is defined in a phi node in
60247 + LOOP->HEADER. Note that this SSA_NAME may be different than the
60248 + one appearing in EXIT_EXPR. */
60249 + tree loop_index_name;
60250 +
60251 + /* The bound of the loop. */
60252 + tree loop_limit;
60253 +
60254 + /* Whether we've warned about things with
60255 + warn_unsafe_loop_optimizations. */
60256 + bool warned;
60257 +
60258 + /* LOOP_INDEX_NAME's underlying VAR_DECL. */
60259 + tree var_decl;
60260 +
60261 + /* The types to which defs/uses of LOOP_INDEX_NAME are cast via
60262 + NOP_EXPRs. */
60263 + VEC(tree, heap) *cast_types;
60264 +
60265 + /* The number of times we have seen a cast to the corresponding type
60266 + (as determined by types_compatible_p) in CAST_TYPES. */
60267 + VEC(int, heap) *cast_counts;
60268 +
60269 + /* Whether LOOP_INDEX_NAME is suitable for promotion. */
60270 + bool can_be_promoted_p;
60271 +
60272 + /* If CAN_BE_PROMOTED_P, the promoted type. */
60273 + tree promoted_type;
60274 +
60275 + /* If CAN_BE_PROMOTED_P, the promoted VAR_DECL. */
60276 + tree promoted_var;
60277 +};
60278 +
60279 +/* A set of `struct promote_info'. */
60280 +
60281 +static struct pointer_set_t *promotion_info;
60282 +
60283 +/* A set of all potentially promotable SSA_NAMEs, used for quick
60284 +decision-making during analysis. */
60285 +
60286 +static struct pointer_set_t *promotable_names;
60287 +
60288 +/* A map from SSA_NAMEs to the VAR_DECL to which they will be
60289 + promoted. */
60290 +
60291 +static struct pointer_map_t *variable_map;
60292 +
60293 +/* A set of the stmts that we have already rebuilt with promoted variables. */
60294 +
60295 +static struct pointer_set_t *promoted_stmts;
60296 +
60297 +\f
60298 +/* Add CASTED to PI->CAST_TYPES if we haven't seen CASTED before. */
60299 +
60300 +static void
60301 +add_casted_type (struct promote_info *pi, tree casted)
60302 +{
60303 + int i;
60304 + tree type;
60305 +
60306 + /* For this information to be useful later, CASTED must be wider than
60307 + the type of the variable. */
60308 + if (TYPE_PRECISION (casted) <= TYPE_PRECISION (TREE_TYPE (pi->var_decl)))
60309 + return;
60310 +
60311 + for (i = 0; VEC_iterate (tree, pi->cast_types, i, type); i++)
60312 + if (types_compatible_p (casted, type))
60313 + {
60314 + int c = VEC_index(int, pi->cast_counts, i);
60315 + VEC_replace(int, pi->cast_counts, i, ++c);
60316 + return;
60317 + }
60318 +
60319 + /* Haven't see the type before. */
60320 + VEC_safe_push (tree, heap, pi->cast_types, casted);
60321 + VEC_safe_push (int, heap, pi->cast_counts, 1);
60322 +}
60323 +
60324 +/* Return the most-casted-to type in PI->CAST_TYPES. Return an
60325 + appropriately signed variant of size_type_node if the variable wasn't
60326 + cast in some fashion. */
60327 +
60328 +static tree
60329 +choose_profitable_promoted_type (struct promote_info *pi)
60330 +{
60331 + int i;
60332 + int count;
60333 + tree type = NULL_TREE;
60334 + int maxuse = -1;
60335 +
60336 + for (i = 0; VEC_iterate (int, pi->cast_counts, i, count); i++)
60337 + if (count > maxuse)
60338 + {
60339 + maxuse = count;
60340 + type = VEC_index (tree, pi->cast_types, i);
60341 + }
60342 +
60343 + if (type == NULL_TREE)
60344 + {
60345 + if (dump_file)
60346 + {
60347 + fprintf (dump_file, "Warning, failed to find upcast type for ");
60348 + print_generic_expr (dump_file, pi->loop_index_name, 0);
60349 + fprintf (dump_file, "\n");
60350 + }
60351 + return (TYPE_UNSIGNED (TREE_TYPE (pi->var_decl))
60352 + ? size_type_node
60353 + : signed_type_for (size_type_node));
60354 + }
60355 + else
60356 + return signed_type_for (type);
60357 +}
60358 +
60359 +/* Intuit the loop index for LOOP from PHI. There must be a path that
60360 + only goes through NOP_EXPRs or CONVERT_EXPRs from the result of PHI
60361 + to one of the operands of COND. If such a path cannot be found,
60362 + return NULL_TREE. If LIMIT is not NULL and a path can be found,
60363 + store the other operand of COND into LIMIT. */
60364 +
60365 +static tree
60366 +find_promotion_candidate_from_phi (struct loop *loop, gimple cond,
60367 + gimple phi, tree *limit)
60368 +{
60369 + tree op0, op1;
60370 + tree result, candidate;
60371 +
60372 + result = candidate = PHI_RESULT (phi);
60373 + /* Must be an integer variable. */
60374 + if (TREE_CODE (TREE_TYPE (candidate)) != INTEGER_TYPE)
60375 + return NULL_TREE;
60376 +
60377 + op0 = gimple_cond_lhs (cond);
60378 + op1 = gimple_cond_rhs (cond);
60379 +
60380 + /* See if there's a path from CANDIDATE to an operand of COND. */
60381 + while (true)
60382 + {
60383 + use_operand_p use;
60384 + imm_use_iterator iui;
60385 + gimple use_stmt = NULL;
60386 +
60387 + if (candidate == op0)
60388 + {
60389 + if (limit) *limit = op1;
60390 + break;
60391 + }
60392 + if (candidate == op1)
60393 + {
60394 + if (limit) *limit = op0;
60395 + break;
60396 + }
60397 +
60398 + /* Find a single use in the loop header. Give up if there's
60399 + multiple ones. */
60400 + FOR_EACH_IMM_USE_FAST (use, iui, candidate)
60401 + {
60402 + gimple stmt = USE_STMT (use);
60403 +
60404 + if (gimple_bb (stmt) == loop->header)
60405 + {
60406 + if (use_stmt)
60407 + {
60408 + if (dump_file)
60409 + {
60410 + fprintf (dump_file, "Rejecting ");
60411 + print_generic_expr (dump_file, candidate, 0);
60412 + fprintf (dump_file, " because it has multiple uses in the loop header (bb #%d).\n",
60413 + loop->header->index);
60414 + fprintf (dump_file, "first use: ");
60415 + print_gimple_stmt (dump_file, use_stmt, 0, 0);
60416 + fprintf (dump_file, "\nsecond use: ");
60417 + print_gimple_stmt (dump_file, stmt, 0, 0);
60418 + fprintf (dump_file, "\n(possibly more, but unanalyzed)\n");
60419 + }
60420 + return NULL_TREE;
60421 + }
60422 + else
60423 + use_stmt = stmt;
60424 + }
60425 + }
60426 +
60427 + /* No uses in the loop header, bail. */
60428 + if (use_stmt == NULL)
60429 + return NULL_TREE;
60430 +
60431 + if (gimple_code (use_stmt) != GIMPLE_ASSIGN
60432 + || TREE_CODE (gimple_assign_lhs (use_stmt)) != SSA_NAME
60433 + || (gimple_assign_rhs_code (use_stmt) != NOP_EXPR
60434 + && gimple_assign_rhs_code (use_stmt) != CONVERT_EXPR))
60435 + {
60436 + if (dump_file)
60437 + {
60438 + fprintf (dump_file, "Rejecting ");
60439 + print_generic_expr (dump_file, candidate, 0);
60440 + fprintf (dump_file, " because of use in ");
60441 + print_gimple_stmt (dump_file, use_stmt, 0, 0);
60442 + fprintf (dump_file, "\n");
60443 + }
60444 + return NULL_TREE;
60445 + }
60446 +
60447 + candidate = gimple_assign_lhs (use_stmt);
60448 + }
60449 +
60450 + /* CANDIDATE is now what we believe to be the loop index variable. There
60451 + are two possibilities:
60452 +
60453 + - CANDIDATE is not the "true" loop index variable, but rather is a
60454 + promoted version of RESULT, done for purposes of satisfying a
60455 + language's semantics;
60456 +
60457 + - CANDIDATE is the "true" loop index variable. */
60458 + if (!types_compatible_p (TREE_TYPE (result), TREE_TYPE (candidate)))
60459 + candidate = result;
60460 +
60461 + /* The type of candidate must be "short" to consider promoting it. */
60462 + if (TREE_CODE (TREE_TYPE (candidate)) != INTEGER_TYPE
60463 + || TYPE_PRECISION (TREE_TYPE (candidate)) >= TYPE_PRECISION (size_type_node))
60464 + return NULL_TREE;
60465 +
60466 + return candidate;
60467 +}
60468 +
60469 +/* Find the loop index variable of LOOP. LOOP's exit is controlled by
60470 + the COND_EXPR EXPR. IF we can't determine what the loop index
60471 + variable is, or EXPR does not appear to be analyzable, then return
60472 + NULL_TREE. */
60473 +
60474 +static tree
60475 +find_promotion_candidate (struct loop *loop, gimple cond, tree *limit)
60476 +{
60477 + tree candidate = NULL_TREE;
60478 + gimple_stmt_iterator gsi;
60479 +
60480 + switch (gimple_cond_code (cond))
60481 + {
60482 + case GT_EXPR:
60483 + case GE_EXPR:
60484 + case NE_EXPR:
60485 + case LT_EXPR:
60486 + case LE_EXPR:
60487 + break;
60488 +
60489 + default:
60490 + return NULL_TREE;
60491 + }
60492 +
60493 + /* We'd like to examine COND and intuit the loop index variable from
60494 + there. Instead, we're going to start from the phi nodes in BB and
60495 + attempt to work our way forwards to one of the operands of COND,
60496 + since starting from COND might yield an upcast loop index. If we
60497 + find multiple phi nodes whose results reach COND, then give up. */
60498 + for (gsi = gsi_start_phis (loop->header); !gsi_end_p (gsi); gsi_next (&gsi))
60499 + {
60500 + gimple phi = gsi_stmt (gsi);
60501 + tree t = find_promotion_candidate_from_phi (loop, cond, phi, limit);
60502 +
60503 + if (t == NULL_TREE)
60504 + continue;
60505 + else if (candidate == NULL_TREE)
60506 + candidate = t;
60507 + else
60508 + {
60509 + if (dump_file)
60510 + {
60511 + fprintf (dump_file, "Can't find a candidate from ");
60512 + print_gimple_stmt (dump_file, cond, 0, 0);
60513 + fprintf (dump_file, "\n because too many phi node results reach the condition.\n");
60514 + }
60515 + return NULL_TREE;
60516 + }
60517 + }
60518 +
60519 + return candidate;
60520 +}
60521 +
60522 +/* Return true if X is something that could be promoted. */
60523 +
60524 +static bool
60525 +could_be_promoted (tree x)
60526 +{
60527 + return (TREE_CODE (x) == INTEGER_CST
60528 + || (TREE_CODE (x) == SSA_NAME
60529 + && pointer_set_contains (promotable_names, x)));
60530 +}
60531 +
60532 +/* Examine the RHS of STMT's suitability with respect to being able to
60533 + promote VAR. */
60534 +
60535 +static bool
60536 +check_rhs_for_promotability (struct promote_info *pi, tree var, gimple stmt,
60537 + bool is_assign)
60538 +{
60539 + enum tree_code subcode = gimple_assign_rhs_code (stmt);
60540 +
60541 + bool ok = true;
60542 +
60543 + switch (subcode)
60544 + {
60545 + case PLUS_EXPR:
60546 + case MINUS_EXPR:
60547 + case MULT_EXPR:
60548 + case EQ_EXPR:
60549 + case NE_EXPR:
60550 + case LT_EXPR:
60551 + case LE_EXPR:
60552 + case GT_EXPR:
60553 + case GE_EXPR:
60554 + {
60555 + tree op0 = gimple_assign_rhs1 (stmt);
60556 + tree op1 = gimple_assign_rhs2 (stmt);
60557 +
60558 + ok = ((op0 == var && could_be_promoted (op1))
60559 + || (op1 == var && could_be_promoted (op0)));
60560 + break;
60561 + }
60562 + case COND_EXPR:
60563 + if (gimple_expr_type (stmt) == NULL
60564 + || gimple_expr_type (stmt) == void_type_node)
60565 + ok = true;
60566 + else
60567 + /* This is conservative; it's possible that these sorts of nodes
60568 + could be promoted, but we'd have to be very careful about
60569 + checking in which parts of the COND_EXPR the promotable
60570 + variable(s) are. */
60571 + ok = false;
60572 + break;
60573 + case SSA_NAME:
60574 + {
60575 + tree expr = gimple_assign_rhs1 (stmt);
60576 + ok = (expr == var || could_be_promoted (expr));
60577 + }
60578 + break;
60579 + case INTEGER_CST:
60580 + break;
60581 + case NOP_EXPR:
60582 + case CONVERT_EXPR:
60583 + if (!is_assign)
60584 + {
60585 + add_casted_type (pi, gimple_expr_type (stmt));
60586 + break;
60587 + }
60588 + /* Fallthrough. */
60589 + default:
60590 + ok = false;
60591 + break;
60592 + }
60593 +
60594 + return ok;
60595 +}
60596 +
60597 +/* Analyze the loop index VAR for promotability. The rules for
60598 + promotability are:
60599 +
60600 + For uses:
60601 +
60602 + - The underlying variable may be used in NOP_EXPRs.
60603 +
60604 + - The underlying variable may be used in simple arithmmetic
60605 + expressions so long as the other parts are potentially promotable
60606 + variables or constants (so we don't go willy-nilly on promoting
60607 + things).
60608 +
60609 + - The underlying variable may not be stored to memory.
60610 +
60611 + - All uses must occur inside the loop.
60612 +
60613 + For defs:
60614 +
60615 + - The underlying variable may not be loaded from memory; and
60616 +
60617 + - The underlying variable may only be formed from expressions
60618 + involving potentially promotable varibles or constants.
60619 +
60620 + Note that defs may occur outside of the loop; we do this to handle
60621 + initial conditions before entering the loop. */
60622 +
60623 +static void
60624 +analyze_loop_index_uses (tree var, struct promote_info *pi)
60625 +{
60626 + imm_use_iterator iui;
60627 + use_operand_p use;
60628 + gimple bad_stmt = NULL;
60629 + const char *reason = NULL;
60630 +
60631 + FOR_EACH_IMM_USE_FAST (use, iui, var)
60632 + {
60633 + basic_block bb;
60634 + gimple use_stmt = USE_STMT (use);
60635 +
60636 + /* Uses must exist only within the loop. */
60637 + bb = gimple_bb (use_stmt);
60638 +
60639 + if (dump_file)
60640 + {
60641 + fprintf (dump_file, "Checking ");
60642 + print_gimple_stmt (dump_file, use_stmt, 0, 0);
60643 + fprintf (dump_file, "\n");
60644 + }
60645 +
60646 + if (!flow_bb_inside_loop_p (pi->loop, bb))
60647 + {
60648 + bad_stmt = use_stmt;
60649 + reason = " is involved in stmt outside loop ";
60650 + break;
60651 + }
60652 +
60653 + /* We cannot store the index to memory. */
60654 + if (gimple_references_memory_p (use_stmt))
60655 + {
60656 + bad_stmt = use_stmt;
60657 + reason = " is stored to memory in ";
60658 + break;
60659 + }
60660 +
60661 + if (gimple_code (use_stmt) == GIMPLE_CALL)
60662 + {
60663 + /* We cannot pass the variable to a function. */
60664 + bad_stmt = use_stmt;
60665 + reason = " is passed to function in ";
60666 + break;
60667 + }
60668 + else if (gimple_code (use_stmt) == GIMPLE_ASSIGN)
60669 + {
60670 + tree lhs = gimple_assign_lhs (use_stmt);
60671 +
60672 + if (!check_rhs_for_promotability (pi, var, use_stmt,
60673 + /*is_assign=*/false))
60674 + {
60675 + bad_stmt = use_stmt;
60676 + reason = " is involved in non-promotable expression ";
60677 + break;
60678 + }
60679 + else if ((TREE_CODE_CLASS (gimple_assign_rhs_code (use_stmt)) == tcc_binary
60680 + || gimple_assign_rhs_code (use_stmt) == SSA_NAME)
60681 + && !could_be_promoted (lhs))
60682 + {
60683 + bad_stmt = use_stmt;
60684 + reason = " is being assigned to non-promotable variable ";
60685 + break;
60686 + }
60687 + }
60688 + else if (gimple_code (use_stmt) != GIMPLE_COND
60689 + && gimple_code (use_stmt) != GIMPLE_PHI)
60690 + {
60691 + /* Use of the variable in some statement we don't know how to
60692 + analyze. */
60693 + bad_stmt = use_stmt;
60694 + reason = " is used in unanalyzable expression in ";
60695 + break;
60696 + }
60697 + }
60698 +
60699 + if (bad_stmt && reason)
60700 + {
60701 + if (dump_file)
60702 + {
60703 + fprintf (dump_file, "Loop index ");
60704 + print_generic_expr (dump_file, var, 0);
60705 + fprintf (dump_file, "%s", reason);
60706 + print_gimple_stmt (dump_file, bad_stmt, 0, 0);
60707 + fprintf (dump_file, "\n");
60708 + }
60709 + pi->can_be_promoted_p = false;
60710 + }
60711 +}
60712 +
60713 +/* Check that the uses and def of VAR, defined in STMT, conform to the
60714 + rules given above. */
60715 +
60716 +static bool
60717 +analyze_loop_index (tree var, gimple stmt, void *data)
60718 +{
60719 + struct promote_info *pi = (struct promote_info *) data;
60720 +
60721 + if (dump_file)
60722 + {
60723 + fprintf (dump_file, "Analyzing loop index ");
60724 + print_generic_expr (dump_file, var, 0);
60725 + fprintf (dump_file, " defined in ");
60726 + print_gimple_stmt (dump_file, stmt, 0, 0);
60727 + fprintf (dump_file, "\n");
60728 + }
60729 +
60730 + /* Check the definition. */
60731 + switch (gimple_code (stmt))
60732 + {
60733 + case GIMPLE_PHI:
60734 + /* Phi nodes are OK. */
60735 + break;
60736 +
60737 + case GIMPLE_ASSIGN:
60738 + if (!check_rhs_for_promotability (pi, var, stmt,
60739 + /*is_assign=*/true))
60740 + break;
60741 + /* Fallthrough. */
60742 +
60743 + default:
60744 + /* Something we can't handle or the variable is being loaded from
60745 + memory. */
60746 + pi->can_be_promoted_p = false;
60747 + goto done;
60748 + }
60749 +
60750 + if (gimple_code (stmt) == GIMPLE_PHI)
60751 + {
60752 + unsigned int i;
60753 +
60754 + for (i = 0; i < gimple_phi_num_args (stmt); i++)
60755 + {
60756 + tree arg = PHI_ARG_DEF (stmt, i);
60757 +
60758 + if (TREE_CODE (arg) == SSA_NAME)
60759 + pointer_set_insert (promotable_names, arg);
60760 + }
60761 +
60762 + analyze_loop_index_uses (PHI_RESULT (stmt), pi);
60763 + }
60764 + else
60765 + analyze_loop_index_uses (var, pi);
60766 +
60767 + /* Only worth continuing if we think the loop index can be
60768 + promoted. */
60769 + done:
60770 + if (dump_file)
60771 + {
60772 + fprintf (dump_file, "Done analyzing ");
60773 + print_generic_expr (dump_file, var, 0);
60774 + fprintf (dump_file, " defined in ");
60775 + print_gimple_stmt (dump_file, stmt, 0, 0);
60776 + fprintf (dump_file, "...%s to analyze\n\n",
60777 + pi->can_be_promoted_p ? "continuing" : "not continuing");
60778 + }
60779 + return !pi->can_be_promoted_p;
60780 +}
60781 +
60782 +/* Determine whether T is an INTEGER_CST or a single-use SSA_NAME
60783 + defined as the result of a NOP_EXPR or CONVERT_EXPR. Return the
60784 + operand of the NOP_EXPR or CONVERT_EXPR if so. */
60785 +
60786 +static tree
60787 +upcast_operand_p (tree t)
60788 +{
60789 + gimple def;
60790 +
60791 + if (TREE_CODE (t) == INTEGER_CST)
60792 + return t;
60793 +
60794 + if (TREE_CODE (t) != SSA_NAME
60795 + || !has_single_use (t))
60796 + return NULL_TREE;
60797 +
60798 + def = SSA_NAME_DEF_STMT (t);
60799 + if (gimple_code (def) != GIMPLE_ASSIGN)
60800 + return NULL_TREE;
60801 +
60802 + if (gimple_assign_rhs_code (def) != CONVERT_EXPR
60803 + && gimple_assign_rhs_code (def) != NOP_EXPR)
60804 + return NULL_TREE;
60805 +
60806 + return gimple_assign_rhs1 (def);
60807 +}
60808 +
60809 +/* Check for the idiom:
60810 +
60811 + short x, y;
60812 + unsigned short x.2, y.2, tmp;
60813 + ...
60814 + x.2 = (unsigned short) x;
60815 + y.2 = (unsigned short) y;
60816 + tmp = x.2 + y.2;
60817 + x = (short) tmp;
60818 +
60819 + which is generated by convert for avoiding signed arithmetic
60820 + overflow. RHS is TMP in the above statement. If RHS is
60821 + defined via such an idiom, store x and y into *OP0 and *OP1,
60822 + respectively. We permit y.2 to be a constant if necessary. */
60823 +
60824 +static bool
60825 +signed_arithmetic_overflow_idiom_p (tree rhs, tree *op0, tree *op1)
60826 +{
60827 + gimple op_stmt = SSA_NAME_DEF_STMT (rhs);
60828 + tree x2, y2;
60829 + bool yes = false;
60830 + enum tree_code code;
60831 +
60832 + if (!has_single_use (rhs)
60833 + || gimple_code (op_stmt) != GIMPLE_ASSIGN)
60834 + goto done;
60835 +
60836 + /* This could probably profitably be expanded to consider
60837 + MINUS_EXPR, MULT_EXPR, etc. */
60838 + code = gimple_assign_rhs_code (op_stmt);
60839 + if (code != PLUS_EXPR)
60840 + goto done;
60841 + x2 = gimple_assign_rhs1 (op_stmt);
60842 + y2 = gimple_assign_rhs2 (op_stmt);
60843 +
60844 + x2 = upcast_operand_p (x2);
60845 + if (x2 == NULL_TREE)
60846 + goto done;
60847 + y2 = upcast_operand_p (y2);
60848 + if (y2 == NULL_TREE)
60849 + goto done;
60850 +
60851 + *op0 = x2;
60852 + *op1 = y2;
60853 + yes = true;
60854 +
60855 + done:
60856 + return yes;
60857 +}
60858 +
60859 +/* Simple wrapper around flow_bb_inside_loop_p that handles NULL
60860 + statements and initial definitions of variables. */
60861 +
60862 +static bool
60863 +stmt_in_loop_p (gimple t, struct loop *loop)
60864 +{
60865 + basic_block bb;
60866 +
60867 + if (t == NULL)
60868 + return false;
60869 +
60870 + bb = gimple_bb (t);
60871 + if (bb == NULL)
60872 + return false;
60873 +
60874 + return flow_bb_inside_loop_p (loop, bb);
60875 +}
60876 +
60877 +/* The loop index should have a specific usage pattern:
60878 +
60879 + - It should be defined in a phi node with two incoming values:
60880 +
60881 + LI_phi = PHI (LI_out, LI_in)
60882 +
60883 + - One incoming value, LI_out, should be from outside the loop.
60884 +
60885 + - The other incoming value, LI_in, should be defined thusly:
60886 +
60887 + LI_in = LI_phi + increment
60888 +
60889 + - increment should be 1. We permit other increments with
60890 + -funsafe-loop-optimizations.
60891 +
60892 + - Finally, in the comparison to exit the loop, the loop index must be
60893 + compared against a variable that has a type at least as precise as
60894 + the loop index's type. For instance, something like:
60895 +
60896 + char limit;
60897 + short i;
60898 +
60899 + for (i = 0; i < limit; i++) ...
60900 +
60901 + would not be permitted. */
60902 +
60903 +static bool
60904 +analyze_loop_index_definition_pattern (struct promote_info *pi)
60905 +{
60906 + gimple phi = SSA_NAME_DEF_STMT (pi->loop_index_name);
60907 + bool ok = false, warn = false;
60908 + tree in0, in1;
60909 + bool inside0, inside1;
60910 + gimple def0, def1;
60911 + tree op0, op1, increment = NULL_TREE;
60912 +
60913 + if (gimple_code (phi) != GIMPLE_PHI
60914 + || gimple_phi_num_args (phi) != 2)
60915 + goto done;
60916 +
60917 + in0 = PHI_ARG_DEF (phi, 0);
60918 + in1 = PHI_ARG_DEF (phi, 1);
60919 +
60920 + /* Figure out which value comes from outside the loop. */
60921 + def0 = TREE_CODE (in0) == SSA_NAME ? SSA_NAME_DEF_STMT (in0) : NULL;
60922 + def1 = TREE_CODE (in1) == SSA_NAME ? SSA_NAME_DEF_STMT (in1) : NULL;
60923 +
60924 + inside0 = stmt_in_loop_p (def0, pi->loop);
60925 + inside1 = stmt_in_loop_p (def1, pi->loop);
60926 +
60927 + if (inside0 && inside1)
60928 + goto done;
60929 + else if (inside0)
60930 + {
60931 + tree t = in0;
60932 + gimple g;
60933 + in0 = in1;
60934 + in1 = t;
60935 + g = def0;
60936 + def0 = def1;
60937 + def1 = g;
60938 + }
60939 + else if (!inside1)
60940 + goto done;
60941 +
60942 + /* IN0 comes from outside the loop, IN1 from inside. Analyze IN1. */
60943 + if (gimple_code (def1) != GIMPLE_ASSIGN)
60944 + goto done;
60945 +
60946 + switch (gimple_assign_rhs_code (def1))
60947 + {
60948 + case CONVERT_EXPR:
60949 + case NOP_EXPR:
60950 + if (!signed_arithmetic_overflow_idiom_p (gimple_assign_rhs1 (def1),
60951 + &op0, &op1))
60952 + goto done;
60953 + goto plus;
60954 + case PLUS_EXPR:
60955 + op0 = gimple_assign_rhs1 (def1);
60956 + op1 = gimple_assign_rhs2 (def1);
60957 + plus:
60958 + {
60959 + bool op0_li = op0 == PHI_RESULT (phi);
60960 + bool op1_li = op1 == PHI_RESULT (phi);
60961 + if (op0_li && op1_li)
60962 + /* This is weird, and definitely is not a case we can support
60963 + for promotion. */
60964 + goto done;
60965 + else if (op0_li)
60966 + increment = op1;
60967 + else if (op1_li)
60968 + increment = op0;
60969 + else
60970 + goto done;
60971 + break;
60972 + }
60973 + default:
60974 + break;
60975 + }
60976 +
60977 +
60978 + /* Check that the exit condition for the loop is OK. */
60979 + {
60980 + enum tree_code code = gimple_cond_code (pi->exit_expr);
60981 +
60982 + op0 = gimple_cond_lhs (pi->exit_expr);
60983 + op1 = gimple_cond_rhs (pi->exit_expr);
60984 +
60985 + if (op0 == pi->loop_limit)
60986 + {
60987 + tree t = op0;
60988 + op0 = op1;
60989 + op1 = t;
60990 + code = swap_tree_comparison (code);
60991 + }
60992 +
60993 + if (code != LT_EXPR && code != LE_EXPR)
60994 + goto done;
60995 +
60996 + if (!types_compatible_p (TREE_TYPE (pi->loop_index_name),
60997 + TREE_TYPE (pi->loop_limit)))
60998 + {
60999 + switch (TREE_CODE (pi->loop_limit))
61000 + {
61001 + case INTEGER_CST:
61002 + if (!int_fits_type_p (pi->loop_limit,
61003 + TREE_TYPE (pi->loop_index_name)))
61004 + goto done;
61005 + break;
61006 + case SSA_NAME:
61007 + {
61008 + tree v = pi->loop_limit;
61009 + gimple def = SSA_NAME_DEF_STMT (v);
61010 +
61011 + /* Backtrack through CONVERT_EXPRs and/or NOP_EXPRs to
61012 + determine if the variables "started out" as the same
61013 + type. */
61014 + while (gimple_code (def) == GIMPLE_ASSIGN)
61015 + {
61016 + enum tree_code rhs_code = gimple_assign_rhs_code (def);
61017 +
61018 + if (rhs_code != NOP_EXPR && rhs_code != CONVERT_EXPR)
61019 + break;
61020 +
61021 + v = gimple_assign_rhs1 (def);
61022 + def = SSA_NAME_DEF_STMT (v);
61023 + }
61024 + /* Permit comparisons between non-compatible types with
61025 + flag_unsafe_loop_optimizations, since we can assume the
61026 + loop index does not overflow. */
61027 + if (types_compatible_p (TREE_TYPE (pi->loop_index_name),
61028 + TREE_TYPE (v))
61029 + || flag_unsafe_loop_optimizations)
61030 + break;
61031 + /* Fallthrough. */
61032 + default:
61033 + goto done;
61034 + }
61035 + }
61036 + }
61037 + }
61038 +
61039 + if (increment == NULL_TREE)
61040 + goto done;
61041 + if (TREE_CODE (increment) != INTEGER_CST
61042 + || compare_tree_int (increment, 1) != 0)
61043 + {
61044 + warn = true;
61045 + if (!flag_unsafe_loop_optimizations)
61046 + goto done;
61047 + }
61048 +
61049 + ok = true;
61050 + done:
61051 + if (warn && !pi->warned)
61052 + {
61053 + pi->warned = true;
61054 + /* We can promote unsigned indices only if -funsafe-loop-optimizations
61055 + is in effect, since the user might be depending on the modulo
61056 + wraparound behavior of unsigned types. */
61057 + if (warn_unsafe_loop_optimizations)
61058 + {
61059 + const char *wording;
61060 +
61061 + wording = (flag_unsafe_loop_optimizations
61062 + ? N_("assuming that the loop counter does not overflow")
61063 + : N_("cannot optimize loop, the loop counter may overflow"));
61064 + warning (OPT_Wunsafe_loop_optimizations, "%s", gettext (wording));
61065 + }
61066 + }
61067 +
61068 + return ok;
61069 +}
61070 +
61071 +/* Analyze the loop associated with PI_ to see if its loop index can be
61072 + promoted. */
61073 +
61074 +static bool
61075 +analyze_loop (const void *pi_, void *data)
61076 +{
61077 + struct promote_info *pi = CONST_CAST (struct promote_info *,
61078 + (const struct promote_info *) pi_);
61079 + bool *changed = (bool *) data;
61080 +
61081 + /* We previously determined we can't promote this; go ahead and
61082 + continue iterating. */
61083 + if (pi->loop_index_name == NULL_TREE)
61084 + return true;
61085 +
61086 + /* Assume we can always promote the loop index, even if it doesn't
61087 + exist. */
61088 + pi->can_be_promoted_p = true;
61089 +
61090 + if (dump_file)
61091 + {
61092 + fprintf (dump_file, "Analyzing ");
61093 + print_generic_expr (dump_file, pi->loop_index_name, 0);
61094 + fprintf (dump_file, "\n");
61095 + }
61096 +
61097 + if (pi->loop_index_name
61098 + && analyze_loop_index_definition_pattern (pi))
61099 + {
61100 + /* Clear any previously gathered information. */
61101 + VEC_truncate (tree, pi->cast_types, 0);
61102 + VEC_truncate (int, pi->cast_counts, 0);
61103 +
61104 + walk_use_def_chains (pi->loop_index_name, analyze_loop_index, pi, false);
61105 + }
61106 + else
61107 + pi->can_be_promoted_p = false;
61108 +
61109 + /* If we determined the loop index is used in strange ways, clear it
61110 + so we don't examine it again. */
61111 + if (!pi->can_be_promoted_p)
61112 + pi->loop_index_name = NULL_TREE;
61113 +
61114 + /* Let our caller know whether to re-do the analysis. */
61115 + *changed = *changed || !pi->can_be_promoted_p;
61116 + /* Continue if PI is promotable. */
61117 + return pi->can_be_promoted_p;
61118 +}
61119 +
61120 +/* Add PI_->LOOP_INDEX_NAME to the set of variables, DATA, that we are
61121 + considering for promotion. */
61122 +
61123 +static bool
61124 +add_variable (const void *pi_, void *data ATTRIBUTE_UNUSED)
61125 +{
61126 + const struct promote_info *pi = (const struct promote_info *) pi_;
61127 + struct pointer_set_t *pset = (struct pointer_set_t *) data;
61128 + int presentp;
61129 +
61130 + if (pi->loop_index_name != NULL_TREE)
61131 + {
61132 + presentp = pointer_set_insert (pset, pi->loop_index_name);
61133 + gcc_assert (!presentp);
61134 + }
61135 +
61136 + /* Continue traversal. */
61137 + return true;
61138 +}
61139 +
61140 +/* For each promotable variable:
61141 +
61142 + - create a new, promoted VAR_DECL;
61143 +
61144 + - walk through all the uses and defs and create new statements using
61145 + the promoted variables. We don't create new phi nodes; post-pass
61146 + SSA update will handle those for us. */
61147 +
61148 +/* Make dump files readable. */
61149 +#define PROMOTED_VAR_SUFFIX ".promoted"
61150 +
61151 +/* Create a variable NAME with TYPE and do the necessary work to inform
61152 + the SSA machinery about it. */
61153 +
61154 +static tree
61155 +create_pli_var (tree type, char *name)
61156 +{
61157 + tree var = create_tmp_var (type, name);
61158 + create_var_ann (var);
61159 + mark_sym_for_renaming (var);
61160 + add_referenced_var (var);
61161 + return var;
61162 +}
61163 +
61164 +/* Associate the SSA_NAME VAR with the promoted variable DATA. */
61165 +
61166 +static bool
61167 +associate_name_with_var (tree var, gimple def_stmt, void *data)
61168 +{
61169 + tree promoted_var = (tree) data;
61170 + void **p;
61171 +
61172 + gcc_assert (promoted_var != NULL_TREE);
61173 +
61174 + if (gimple_code (def_stmt) == GIMPLE_PHI)
61175 + var = PHI_RESULT (def_stmt);
61176 +
61177 + p = pointer_map_insert (variable_map, var);
61178 +
61179 + if (!*p)
61180 + {
61181 + if (dump_file)
61182 + {
61183 + fprintf (dump_file, "Associating ");
61184 + print_generic_expr (dump_file, var, 0);
61185 + fprintf (dump_file, " with ");
61186 + print_generic_expr (dump_file, promoted_var, 0);
61187 + fprintf (dump_file, "\n\n");
61188 + }
61189 + *(tree *)p = promoted_var;
61190 + }
61191 +
61192 + /* Continue traversal. */
61193 + return false;
61194 +}
61195 +
61196 +/* Create a promoted variable for the variable from PI_. */
61197 +
61198 +static bool
61199 +create_promoted_variable (const void *pi_, void *data ATTRIBUTE_UNUSED)
61200 +{
61201 + struct promote_info *pi = CONST_CAST (struct promote_info *,
61202 + (const struct promote_info *) pi_);
61203 +
61204 + if (pi->can_be_promoted_p)
61205 + {
61206 + tree type = choose_profitable_promoted_type (pi);
61207 + tree orig_name = DECL_NAME (pi->var_decl);
61208 + size_t id_len = IDENTIFIER_LENGTH (orig_name);
61209 + size_t name_len = id_len + strlen (PROMOTED_VAR_SUFFIX) + 1;
61210 + char *name;
61211 +
61212 + name = (char *) alloca (name_len);
61213 + strcpy (name, IDENTIFIER_POINTER (orig_name));
61214 + strcpy (name + id_len, PROMOTED_VAR_SUFFIX);
61215 +
61216 + pi->promoted_type = type;
61217 + pi->promoted_var = create_pli_var (type, name);
61218 +
61219 + if (dump_file)
61220 + {
61221 + fprintf (dump_file, "Created new variable ");
61222 + print_generic_expr (dump_file, pi->promoted_var, 0);
61223 + fprintf (dump_file, " to stand in for ");
61224 + print_generic_expr (dump_file, pi->loop_index_name, 0);
61225 + fprintf (dump_file, "\n\n");
61226 + }
61227 +
61228 + walk_use_def_chains (pi->loop_index_name,
61229 + associate_name_with_var,
61230 + pi->promoted_var, false);
61231 + }
61232 +
61233 + /* Continue traversal. */
61234 + return true;
61235 +}
61236 +
61237 +/* Rebuild T with newly promoted variables; STMT is the original
61238 + statement in which T appeared and may be equivalent to T. TYPE is
61239 + non-null when rebuilding the rhs of a GIMPLE_ASSIGN and indicates the
61240 + type of the lhs. */
61241 +
61242 +static tree
61243 +rebuild_tree_with_promotion (tree t, gimple stmt, tree type,
61244 + gimple_stmt_iterator gsi,
61245 + struct promote_info *pi)
61246 +{
61247 + tree op0, op1;
61248 +
61249 + switch (TREE_CODE (t))
61250 + {
61251 + case NOP_EXPR:
61252 + case CONVERT_EXPR:
61253 + {
61254 + tree pvar = rebuild_tree_with_promotion (TREE_OPERAND (t, 0), stmt, type, gsi, pi);
61255 +
61256 + if (types_compatible_p (type, TREE_TYPE (pvar)))
61257 + return pvar;
61258 + else
61259 + return build1 (TREE_CODE (t), type, pvar);
61260 + }
61261 + case INTEGER_CST:
61262 + {
61263 + return build_int_cst_wide (pi->promoted_type,
61264 + TREE_INT_CST_LOW (t),
61265 + TREE_INT_CST_HIGH (t));
61266 + }
61267 + case COND_EXPR:
61268 + {
61269 + tree orig_op0 = TREE_OPERAND (t, 0);
61270 + op0 = rebuild_tree_with_promotion (orig_op0, stmt, type, gsi, pi);
61271 + gcc_assert (orig_op0 != op0);
61272 + TREE_OPERAND (t, 0) = op0;
61273 + return t;
61274 + }
61275 + case PLUS_EXPR:
61276 + case MINUS_EXPR:
61277 + case MULT_EXPR:
61278 + type = pi->promoted_type;
61279 + goto binary_expr;
61280 + case EQ_EXPR:
61281 + case NE_EXPR:
61282 + case LT_EXPR:
61283 + case LE_EXPR:
61284 + case GT_EXPR:
61285 + case GE_EXPR:
61286 + type = TREE_TYPE (t);
61287 + binary_expr:
61288 + op0 = TREE_OPERAND (t, 0);
61289 + op1 = TREE_OPERAND (t, 1);
61290 + op0 = rebuild_tree_with_promotion (op0, stmt, type, gsi, pi);
61291 + op1 = rebuild_tree_with_promotion (op1, stmt, type, gsi, pi);
61292 + return build2 (TREE_CODE (t), type, op0, op1);
61293 + case SSA_NAME:
61294 + {
61295 + void **p = pointer_map_contains (variable_map, t);
61296 +
61297 + if (p == NULL)
61298 + {
61299 + /* This is unexpected, but it does happen if we were dealing
61300 + with COND_EXPRs and such. Just go ahead and create a
61301 + temporary for it. */
61302 + if (types_compatible_p (TREE_TYPE (t), pi->promoted_type)
61303 + || SSA_NAME_DEF_STMT (t) == stmt)
61304 + return t;
61305 + else
61306 + goto insert_cast;
61307 + }
61308 + else
61309 + return *(tree *)p;
61310 + }
61311 + case VAR_DECL:
61312 + return t;
61313 + default:
61314 + insert_cast:
61315 + {
61316 + gimple cast;
61317 + tree tmp, nop;
61318 + tree to_upcast = t;
61319 +
61320 + /* If we are dealing with a memory reference, then we can't have
61321 + wrap it in a NOP_EXPR; we need to load the value from memory
61322 + first, then convert it. */
61323 + if (!is_gimple_reg (to_upcast))
61324 + {
61325 + tree tmp = create_pli_var (TREE_TYPE (to_upcast),
61326 + CONST_CAST (char *, "loadtmp"));
61327 + gimple stmt = gimple_build_assign (tmp, to_upcast);
61328 + gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
61329 + to_upcast = tmp;
61330 + }
61331 +
61332 + tmp = create_pli_var (pi->promoted_type,
61333 + CONST_CAST (char *, "promotetmp"));
61334 + nop = build1 (NOP_EXPR, pi->promoted_type, to_upcast);
61335 + cast = gimple_build_assign (tmp, nop);
61336 + if (dump_file)
61337 + {
61338 + fprintf (dump_file, "Inserting cast ");
61339 + print_gimple_stmt (dump_file, cast, 0, 0);
61340 + fprintf (dump_file, " prior to ");
61341 + print_gimple_stmt (dump_file, stmt, 0, 0);
61342 + fprintf (dump_file, "\n");
61343 + }
61344 + gsi_insert_before (&gsi, cast, GSI_SAME_STMT);
61345 + return tmp;
61346 + }
61347 + }
61348 +}
61349 +
61350 +/* Split E and place STMT in the block created by doing so. */
61351 +
61352 +static void
61353 +insert_along_edge (gimple stmt, edge e)
61354 +{
61355 + basic_block bb = split_edge (e);
61356 +
61357 + gimple_set_bb (stmt, bb);
61358 + set_bb_seq (bb, gimple_seq_alloc_with_stmt (stmt));
61359 +}
61360 +
61361 +/* Rebuild STMT, which contains uses or a def of the promotable variable
61362 + associated with PI. */
61363 +
61364 +static void
61365 +rebuild_with_promotion (gimple stmt, struct promote_info *pi)
61366 +{
61367 + gimple_stmt_iterator gsi;
61368 +
61369 + if (pointer_set_insert (promoted_stmts, stmt))
61370 + return;
61371 +
61372 + if (dump_file)
61373 + {
61374 + fprintf (dump_file, "Rebuilding stmt ");
61375 + print_gimple_stmt (dump_file, stmt, 0, 0);
61376 + fprintf (dump_file, "\n");
61377 + }
61378 +
61379 + gsi = gsi_for_stmt (stmt);
61380 +
61381 + switch (gimple_code (stmt))
61382 + {
61383 + case GIMPLE_ASSIGN:
61384 + {
61385 + enum tree_code subcode = gimple_assign_rhs_code (stmt);
61386 + enum tree_code newcode = subcode;
61387 + tree lhs = gimple_assign_lhs (stmt);
61388 + tree rhs1 = gimple_assign_rhs1 (stmt);
61389 + tree rhs2 = gimple_assign_rhs2 (stmt);
61390 + tree x, y;
61391 + void **v;
61392 +
61393 + /* If we are defining a promotable variable, check for special
61394 + idioms. */
61395 + v = pointer_map_contains (variable_map, lhs);
61396 + if (v != NULL
61397 + && *(tree *)v == pi->promoted_var
61398 + && (subcode == NOP_EXPR || subcode == CONVERT_EXPR)
61399 + && signed_arithmetic_overflow_idiom_p (rhs1, &x, &y))
61400 + {
61401 + void **xp;
61402 + void **yp;
61403 + if (TYPE_PRECISION (TREE_TYPE (rhs1))
61404 + >= TYPE_PRECISION (pi->promoted_type))
61405 + goto done;
61406 +
61407 + /* It's possible that we've already promoted the operands of
61408 + one or both of the NOP_EXPRs. In that case, we can
61409 + bypass the logic below and go straight to rebuilding the
61410 + rhs that we really want to transform. */
61411 + if (TREE_CODE (x) == VAR_DECL
61412 + || TREE_CODE (y) == VAR_DECL)
61413 + goto build_fake;
61414 + xp = pointer_map_contains (variable_map, x);
61415 + yp = pointer_map_contains (variable_map, y);
61416 +
61417 + /* Nothing to see here. */
61418 + if (!types_compatible_p (TREE_TYPE (x),
61419 + TREE_TYPE (y))
61420 + || (xp == NULL && yp == NULL))
61421 + goto done;
61422 + x = (xp == NULL ? NULL_TREE : *(tree *)xp);
61423 + y = (yp == NULL ? NULL_TREE : *(tree *)yp);
61424 +
61425 + if (x != pi->promoted_var && y != pi->promoted_var)
61426 + goto done;
61427 +
61428 + build_fake:
61429 + newcode = PLUS_EXPR;
61430 + rhs1 = x;
61431 + rhs2 = y;
61432 + if (dump_file)
61433 + {
61434 + fprintf (dump_file, "Substituting ");
61435 + print_generic_expr (dump_file, x, 0);
61436 + fprintf (dump_file, " + ");
61437 + print_generic_expr (dump_file, y, 0);
61438 + fprintf (dump_file, " for rhs of original statement\n");
61439 + }
61440 +
61441 + done:
61442 + ;
61443 + }
61444 +
61445 + lhs = rebuild_tree_with_promotion (lhs, stmt, NULL, gsi, pi);
61446 + rhs1 = rebuild_tree_with_promotion (rhs1, stmt, NULL, gsi, pi);
61447 + if (rhs2)
61448 + rhs2 = rebuild_tree_with_promotion (rhs2, stmt, NULL, gsi, pi);
61449 +
61450 + if (newcode != subcode)
61451 + {
61452 + gimple newstmt = gimple_build_assign_with_ops (newcode,
61453 + lhs, rhs1, rhs2);
61454 + gsi_replace (&gsi, newstmt, true);
61455 + stmt = newstmt;
61456 + }
61457 + else
61458 + {
61459 + gimple_assign_set_lhs (stmt, lhs);
61460 + gimple_assign_set_rhs1 (stmt, rhs1);
61461 + if (rhs2)
61462 + gimple_assign_set_rhs2 (stmt, rhs2);
61463 + }
61464 + }
61465 + break;
61466 + case GIMPLE_COND:
61467 + {
61468 + tree lhs = gimple_cond_lhs (stmt);
61469 + tree rhs = gimple_cond_rhs (stmt);
61470 +
61471 + lhs = rebuild_tree_with_promotion (lhs, stmt, NULL, gsi, pi);
61472 + rhs = rebuild_tree_with_promotion (rhs, stmt, NULL, gsi, pi);
61473 +
61474 + gimple_cond_set_lhs (stmt, lhs);
61475 + gimple_cond_set_rhs (stmt, rhs);
61476 + }
61477 + break;
61478 + case GIMPLE_PHI:
61479 + {
61480 + unsigned int i;
61481 + bool promoted_result = could_be_promoted (PHI_RESULT (stmt));
61482 +
61483 + for (i = 0; i < gimple_phi_num_args (stmt); i++)
61484 + {
61485 + tree var = gimple_phi_arg_def (stmt, i);
61486 + edge e = gimple_phi_arg_edge (stmt, i);
61487 + gimple assign = NULL;
61488 +
61489 + if (TREE_CODE (var) == INTEGER_CST && promoted_result)
61490 + {
61491 + tree cst = build_int_cst_wide (pi->promoted_type,
61492 + TREE_INT_CST_LOW (var),
61493 + TREE_INT_CST_HIGH (var));
61494 +
61495 + assign = gimple_build_assign (pi->promoted_var, cst);
61496 + insert_along_edge (assign, e);
61497 + }
61498 + else if (TREE_CODE (var) == SSA_NAME
61499 + && SSA_NAME_VAR (var) == pi->var_decl
61500 + && !promoted_result)
61501 + {
61502 + tree t = create_pli_var (TREE_TYPE (PHI_RESULT (stmt)),
61503 + CONST_CAST (char *, "promotetmp"));
61504 + tree name;
61505 + assign = gimple_build_assign_with_ops (CONVERT_EXPR,
61506 + t, pi->promoted_var,
61507 + NULL_TREE);
61508 +
61509 + name = make_ssa_name (t, assign);
61510 + gimple_assign_set_lhs (assign, name);
61511 +
61512 + insert_along_edge (assign, e);
61513 + SET_PHI_ARG_DEF (stmt, i, name);
61514 + }
61515 + }
61516 + }
61517 + break;
61518 + default:
61519 + gcc_unreachable ();
61520 + }
61521 +
61522 + if (dump_file)
61523 + {
61524 + fprintf (dump_file, "Converted stmt ");
61525 + print_gimple_stmt (dump_file, stmt, 0, 0);
61526 + fprintf (dump_file, "\n\n");
61527 + }
61528 + update_stmt (stmt);
61529 +}
61530 +
61531 +/* Helper function for promote_variable that walks over use/def
61532 + chains. */
61533 +
61534 +static bool
61535 +promote_variable_1 (tree var, gimple stmt, void *data)
61536 +{
61537 + struct promote_info *pi = (struct promote_info *) data;
61538 + imm_use_iterator imi;
61539 + gimple use_stmt;
61540 +
61541 + rebuild_with_promotion (stmt, pi);
61542 +
61543 + if (gimple_code (stmt) == GIMPLE_PHI)
61544 + var = PHI_RESULT (stmt);
61545 +
61546 + if (could_be_promoted (var))
61547 + FOR_EACH_IMM_USE_STMT (use_stmt, imi, var)
61548 + {
61549 + rebuild_with_promotion (use_stmt, pi);
61550 + }
61551 +
61552 + return false;
61553 +}
61554 +
61555 +/* Convert all uses and defs of PI_->LOOP_INDEX_NAME as linked by
61556 + use-def chains to uses and defs of PI_->PROMOTED_VAR. */
61557 +
61558 +static bool
61559 +promote_variable (const void *pi_, void *data ATTRIBUTE_UNUSED)
61560 +{
61561 + const struct promote_info *pi = (const struct promote_info *) pi_;
61562 +
61563 + if (pi->can_be_promoted_p)
61564 + {
61565 + walk_use_def_chains (pi->loop_index_name, promote_variable_1,
61566 + CONST_CAST (struct promote_info *, pi), false);
61567 + }
61568 +
61569 + /* Continue traversal. */
61570 + return true;
61571 +}
61572 +
61573 +/* Free PI_ and its associated data. */
61574 +
61575 +static bool
61576 +free_pi_entries (const void *pi_, void *data ATTRIBUTE_UNUSED)
61577 +{
61578 + struct promote_info *pi = CONST_CAST (struct promote_info *,
61579 + (const struct promote_info *) pi_);
61580 +
61581 + VEC_free (tree, heap, pi->cast_types);
61582 + VEC_free (int, heap, pi->cast_counts);
61583 + free (pi);
61584 +
61585 + /* Continue traversal. */
61586 + return true;
61587 +}
61588 +
61589 +/* Collect information about variables that we believe to be loop
61590 + indices in PROMOTION_INFO. */
61591 +
61592 +static void
61593 +collect_promotion_candidates (void)
61594 +{
61595 + loop_iterator li;
61596 + struct loop *loop;
61597 +
61598 + FOR_EACH_LOOP (li, loop, 0)
61599 + {
61600 + basic_block header = loop->header;
61601 + gimple exit_cond = last_stmt (header);
61602 +
61603 + if (exit_cond && gimple_code (exit_cond) == GIMPLE_COND)
61604 + {
61605 + tree loop_index;
61606 + tree limit = NULL_TREE;
61607 + tree decl;
61608 + struct promote_info *pi;
61609 +
61610 + loop_index = find_promotion_candidate (loop, exit_cond, &limit);
61611 + if (loop_index == NULL_TREE)
61612 + continue;
61613 + decl = SSA_NAME_VAR (loop_index);
61614 + if (TREE_ADDRESSABLE (decl))
61615 + continue;
61616 +
61617 + if (dump_file)
61618 + {
61619 + fprintf (dump_file, "Found loop index ");
61620 + print_generic_expr (dump_file, loop_index, 0);
61621 + fprintf (dump_file, " involved in ");
61622 + print_gimple_stmt (dump_file, exit_cond, 0, 0);
61623 + fprintf (dump_file, "\n\n");
61624 + }
61625 +
61626 + pi = XCNEW (struct promote_info);
61627 + pi->loop = loop;
61628 + pi->exit_expr = exit_cond;
61629 + pi->loop_index_name = loop_index;
61630 + pi->loop_limit = limit;
61631 + pi->var_decl = decl;
61632 + /* We think so, anyway... */
61633 + pi->can_be_promoted_p = true;
61634 + pointer_set_insert (promotion_info, pi);
61635 + }
61636 + else if (dump_file)
61637 + {
61638 + fprintf (dump_file, "\nSkipping analysis of loop %d (header bb #%d)\n",
61639 + loop->num, loop->header->index);
61640 + if (exit_cond)
61641 + {
61642 + fprintf (dump_file, "Exit condition was ");
61643 + print_gimple_stmt (dump_file, exit_cond, 0, 0);
61644 + fprintf (dump_file, "\n");
61645 + }
61646 + }
61647 + }
61648 +}
61649 +
61650 +/* Free memory associated with global variables that we used. */
61651 +
61652 +static void
61653 +pli_cleanup (void)
61654 +{
61655 + if (promoted_stmts)
61656 + {
61657 + pointer_set_destroy (promoted_stmts);
61658 + promoted_stmts = NULL;
61659 + }
61660 + if (variable_map)
61661 + {
61662 + pointer_map_destroy (variable_map);
61663 + variable_map = NULL;
61664 + }
61665 + if (promotable_names)
61666 + {
61667 + pointer_set_destroy (promotable_names);
61668 + promotable_names = NULL;
61669 + }
61670 + if (promotion_info)
61671 + {
61672 + pointer_set_traverse (promotion_info, free_pi_entries, NULL);
61673 + pointer_set_destroy (promotion_info);
61674 + promotion_info = NULL;
61675 + }
61676 +}
61677 +
61678 +/* The guts of the pass. */
61679 +
61680 +static unsigned int
61681 +promote_short_indices (void)
61682 +{
61683 + bool did_something = false;
61684 + bool changed;
61685 + size_t max_iterations, i, n_promoted;
61686 +
61687 + promotion_info = pointer_set_create ();
61688 + collect_promotion_candidates ();
61689 +
61690 + if (dump_file)
61691 + fprintf (dump_file, "Found %d candidates for promotion\n",
61692 + (int) pointer_set_n_elements (promotion_info));
61693 +
61694 + /* Nothing to do. */
61695 + if (pointer_set_n_elements (promotion_info) == 0)
61696 + goto cleanup;
61697 +
61698 + /* We have information about which variables are loop index variables.
61699 + We now need to determine the promotability of the loop indices.
61700 + Since the promotability of loop indices may depend on other loop
61701 + indices, we need to repeat this until we reach a fixed point. */
61702 + changed = true;
61703 + max_iterations = pointer_set_n_elements (promotion_info);
61704 + i = 0;
61705 +
61706 + promotable_names = pointer_set_create ();
61707 +
61708 + while (changed)
61709 + {
61710 + changed = false;
61711 + pointer_set_clear (promotable_names);
61712 + pointer_set_traverse (promotion_info, add_variable,
61713 + promotable_names);
61714 + n_promoted = pointer_set_n_elements (promotable_names);
61715 +
61716 + if (dump_file)
61717 + fprintf (dump_file, "\nIteration %d, have %d variables to consider\n",
61718 + (int) i, (int) n_promoted);
61719 +
61720 + if (n_promoted == 0)
61721 + break;
61722 + gcc_assert (i < max_iterations);
61723 + pointer_set_traverse (promotion_info, analyze_loop, &changed);
61724 + i++;
61725 + }
61726 +
61727 + if (dump_file)
61728 + fprintf (dump_file, "Promoting %d variables\n",
61729 + (int) n_promoted);
61730 +
61731 + if (n_promoted != 0)
61732 + {
61733 + did_something = true;
61734 + variable_map = pointer_map_create ();
61735 + promoted_stmts = pointer_set_create ();
61736 + pointer_set_traverse (promotion_info, create_promoted_variable, NULL);
61737 + pointer_set_traverse (promotion_info, promote_variable, NULL);
61738 + }
61739 +
61740 + cleanup:
61741 + pli_cleanup ();
61742 + return did_something ? TODO_update_ssa : 0;
61743 +}
61744 +
61745 +/* Entry point for the short loop index promotion pass. */
61746 +
61747 +static unsigned int
61748 +tree_short_index_promotion (void)
61749 +{
61750 + unsigned int changed = 0;
61751 +
61752 + /* Initialize all the necessary loop infrastructure. */
61753 + loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_SIMPLE_LATCHES | LOOPS_HAVE_RECORDED_EXITS);
61754 + add_noreturn_fake_exit_edges ();
61755 + connect_infinite_loops_to_exit ();
61756 +
61757 + if (number_of_loops () > 1)
61758 + changed = promote_short_indices ();
61759 +
61760 + /* Tear down loop optimization infrastructure. */
61761 + remove_fake_exit_edges ();
61762 + free_numbers_of_iterations_estimates ();
61763 + loop_optimizer_finalize ();
61764 +
61765 + return changed;
61766 +}
61767 +
61768 +static bool
61769 +gate_short_index_promotion (void)
61770 +{
61771 + return optimize > 0 && flag_promote_loop_indices;
61772 +}
61773 +
61774 +struct gimple_opt_pass pass_promote_indices =
61775 +{
61776 + {
61777 + GIMPLE_PASS,
61778 + "promoteshort", /* name */
61779 + gate_short_index_promotion, /* gate */
61780 + tree_short_index_promotion, /* execute */
61781 + NULL, /* sub */
61782 + NULL, /* next */
61783 + 0, /* static_pass_number */
61784 + TV_TREE_LOOP_PROMOTE, /* tv_id */
61785 + PROP_cfg | PROP_ssa, /* properties_required */
61786 + 0, /* properties_provided */
61787 + 0, /* properties_destroyed */
61788 + 0, /* todo_flags_start */
61789 + TODO_dump_func | TODO_verify_loops
61790 + | TODO_ggc_collect /* todo_flags_finish */
61791 + }
61792 +};
61793 diff -Nur a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
61794 --- a/gcc/tree-ssa-pre.c 2009-02-20 16:20:38.000000000 +0100
61795 +++ b/gcc/tree-ssa-pre.c 2010-01-25 09:50:29.595686516 +0100
61796 @@ -104,6 +104,10 @@
61797 In order to make it fully redundant, we insert the expression into
61798 the predecessors where it is not available, but is ANTIC.
61799
61800 + When optimizing for size, we only eliminate the partial redundancy
61801 + if we need to insert in only one predecessor. This avoids almost
61802 + completely the code size increase that PRE usually causes.
61803 +
61804 For the partial anticipation case, we only perform insertion if it
61805 is partially anticipated in some block, and fully available in all
61806 of the predecessors.
61807 @@ -429,6 +433,7 @@
61808 static void bitmap_value_insert_into_set (bitmap_set_t, pre_expr);
61809 static void bitmap_value_replace_in_set (bitmap_set_t, pre_expr);
61810 static void bitmap_set_copy (bitmap_set_t, bitmap_set_t);
61811 +static void bitmap_set_and (bitmap_set_t, bitmap_set_t);
61812 static bool bitmap_set_contains_value (bitmap_set_t, unsigned int);
61813 static void bitmap_insert_into_set (bitmap_set_t, pre_expr);
61814 static void bitmap_insert_into_set_1 (bitmap_set_t, pre_expr, bool);
61815 @@ -2988,13 +2993,6 @@
61816 tree temp;
61817 gimple phi;
61818
61819 - if (dump_file && (dump_flags & TDF_DETAILS))
61820 - {
61821 - fprintf (dump_file, "Found partial redundancy for expression ");
61822 - print_pre_expr (dump_file, expr);
61823 - fprintf (dump_file, " (%04d)\n", val);
61824 - }
61825 -
61826 /* Make sure we aren't creating an induction variable. */
61827 if (block->loop_depth > 0 && EDGE_COUNT (block->preds) == 2
61828 && expr->kind != REFERENCE)
61829 @@ -3192,6 +3190,47 @@
61830 }
61831
61832
61833 +/* Indicate if, when optimizing for speed, it is appropriate to make
61834 + INSERTS_NEEDED insertions in order to make EXPR in BLOCK redundant. */
61835 +static bool
61836 +ppre_n_insert_for_speed_p (pre_expr expr, basic_block block,
61837 + unsigned int inserts_needed)
61838 +{
61839 + /* The more expensive EXPR is, the more we should be prepared to insert
61840 + in the predecessors of BLOCK to make EXPR fully redundant.
61841 + For now, only recognize AND, OR, XOR, PLUS and MINUS of a multiple-use
61842 + SSA_NAME with a constant as cheap. */
61843 + int cost;
61844 +
61845 + if (flag_tree_pre_partial_partial_obliviously)
61846 + return true;
61847 + if (expr->kind == NARY)
61848 + {
61849 + vn_nary_op_t nary = PRE_EXPR_NARY (expr);
61850 + switch (nary->opcode)
61851 + {
61852 + tree name, cnst;
61853 + case BIT_AND_EXPR: case BIT_IOR_EXPR: case BIT_XOR_EXPR:
61854 + case PLUS_EXPR: case MINUS_EXPR:
61855 +
61856 + gcc_assert (nary->length == 2);
61857 + name = nary->op[0];
61858 + cnst = nary->op[1];
61859 + if (TREE_CODE (name) != SSA_NAME || has_single_use (name))
61860 + return true;
61861 + if (!is_gimple_min_invariant (cnst))
61862 + return true;
61863 + cost = 1;
61864 + break;
61865 + default:
61866 + return true;
61867 + }
61868 + }
61869 + else
61870 + return true;
61871 + return EDGE_COUNT (block->preds) * cost >= inserts_needed;
61872 +
61873 +}
61874
61875 /* Perform insertion of partially redundant values.
61876 For BLOCK, do the following:
61877 @@ -3226,6 +3265,7 @@
61878 pre_expr *avail;
61879 unsigned int val;
61880 bool by_some = false;
61881 + unsigned int inserts_needed = 0;
61882 bool cant_insert = false;
61883 bool all_same = true;
61884 pre_expr first_s = NULL;
61885 @@ -3280,6 +3320,7 @@
61886 {
61887 avail[bprime->index] = eprime;
61888 all_same = false;
61889 + inserts_needed++;
61890 }
61891 else
61892 {
61893 @@ -3289,6 +3330,11 @@
61894 first_s = edoubleprime;
61895 else if (!pre_expr_eq (first_s, edoubleprime))
61896 all_same = false;
61897 + /* If the available value is not a NAME, PREing this
61898 + value will probably result in a copy on the edge
61899 + to assign the expression to a register. */
61900 + if (edoubleprime->kind != NAME)
61901 + inserts_needed++;
61902 }
61903 }
61904 /* If we can insert it, it's not the same value
61905 @@ -3297,9 +3343,27 @@
61906 partially redundant. */
61907 if (!cant_insert && !all_same && by_some && dbg_cnt (treepre_insert))
61908 {
61909 - if (insert_into_preds_of_block (block, get_expression_id (expr),
61910 - avail))
61911 - new_stuff = true;
61912 + if (dump_file && (dump_flags & TDF_DETAILS))
61913 + {
61914 + fprintf (dump_file,
61915 + "Found partial redundancy for expression ");
61916 + print_pre_expr (dump_file, expr);
61917 + fprintf (dump_file, " (%04d)\n", get_expr_value_id (expr));
61918 + }
61919 +
61920 + /* If optimizing for size, insert at most one
61921 + new expression to avoid increasing code size. */
61922 + if (optimize_function_for_speed_p (cfun)
61923 + ? 1 : EDGE_COUNT (block->preds) - inserts_needed == 1)
61924 + new_stuff |=
61925 + insert_into_preds_of_block (block,
61926 + get_expression_id (expr),
61927 + avail);
61928 + else if (dump_file && (dump_flags & TDF_DETAILS))
61929 + fprintf (dump_file, "Not inserting (optimizing for %s)\n",
61930 + optimize_function_for_speed_p (cfun)
61931 + ? "speed" : "size");
61932 +
61933 }
61934 /* If all edges produce the same value and that value is
61935 an invariant, then the PHI has the same value on all
61936 @@ -3428,9 +3492,28 @@
61937 if (!cant_insert && by_all && dbg_cnt (treepre_insert))
61938 {
61939 pre_stats.pa_insert++;
61940 - if (insert_into_preds_of_block (block, get_expression_id (expr),
61941 - avail))
61942 - new_stuff = true;
61943 + if (dump_file && (dump_flags & TDF_DETAILS))
61944 + {
61945 + fprintf (dump_file,
61946 + "Found partial redundancy for expression ");
61947 + print_pre_expr (dump_file, expr);
61948 + fprintf (dump_file, " (%04d)\n", get_expr_value_id (expr));
61949 + }
61950 + /* Assuming the expression is 50% anticipatable, we have to
61951 + multiply the number of insertions needed by two for a cost
61952 + comparison. */
61953 + if (!optimize_function_for_speed_p (cfun)
61954 + || ppre_n_insert_for_speed_p (expr, block,
61955 + 2 * EDGE_COUNT (block->preds)))
61956 + new_stuff |=
61957 + insert_into_preds_of_block (block,
61958 + get_expression_id (expr),
61959 + avail);
61960 + else if (dump_file && (dump_flags & TDF_DETAILS))
61961 + fprintf (dump_file, "Not inserting (optimizing for %s)\n",
61962 + optimize_function_for_speed_p (cfun)
61963 + ? "speed" : "size");
61964 +
61965 }
61966 free (avail);
61967 }
61968 @@ -3471,7 +3554,9 @@
61969 if (!single_pred_p (block))
61970 {
61971 new_stuff |= do_regular_insertion (block, dom);
61972 - if (do_partial_partial)
61973 + /* Don't bother with partial-partial redundancies when
61974 + optimizing for size. */
61975 + if (do_partial_partial && ! optimize_function_for_size_p (cfun))
61976 new_stuff |= do_partial_partial_insertion (block, dom);
61977 }
61978 }
61979 @@ -4220,11 +4305,11 @@
61980 only wants to do full redundancy elimination. */
61981
61982 static unsigned int
61983 -execute_pre (bool do_fre ATTRIBUTE_UNUSED)
61984 +execute_pre (bool do_fre)
61985 {
61986 unsigned int todo = 0;
61987
61988 - do_partial_partial = optimize > 2;
61989 + do_partial_partial = flag_tree_pre_partial_partial;
61990
61991 /* This has to happen before SCCVN runs because
61992 loop_optimizer_init may create new phis, etc. */
61993 @@ -4297,19 +4382,20 @@
61994 return todo;
61995 }
61996
61997 -/* Gate and execute functions for PRE. */
61998 +/* Gate and execute functions for FRE/PRE. */
61999
62000 static unsigned int
62001 do_pre (void)
62002 {
62003 - return TODO_rebuild_alias | execute_pre (false);
62004 + return TODO_rebuild_alias
62005 + | execute_pre (! flag_tree_pre);
62006 }
62007
62008 static bool
62009 gate_pre (void)
62010 {
62011 - /* PRE tends to generate bigger code. */
62012 - return flag_tree_pre != 0 && optimize_function_for_speed_p (cfun);
62013 + /* Run FRE even if we don't run PRE. */
62014 + return (flag_tree_fre || flag_tree_pre);
62015 }
62016
62017 struct gimple_opt_pass pass_pre =
62018 diff -Nur a/gcc/tree-ssa-remove-local-statics.c b/gcc/tree-ssa-remove-local-statics.c
62019 --- a/gcc/tree-ssa-remove-local-statics.c 1970-01-01 01:00:00.000000000 +0100
62020 +++ b/gcc/tree-ssa-remove-local-statics.c 2010-01-25 09:50:29.595686516 +0100
62021 @@ -0,0 +1,868 @@
62022 +/* Local static variable elimination pass.
62023 + Copyright (C) 2007 Free Software Foundation, Inc.
62024 + Contributed by Nathan Froyd <froydnj@codesourcery.com>
62025 +
62026 +This file is part of GCC.
62027 +
62028 +GCC is free software; you can redistribute it and/or modify it
62029 +under the terms of the GNU General Public License as published by the
62030 +Free Software Foundation; either version 3, or (at your option) any
62031 +later version.
62032 +
62033 +GCC is distributed in the hope that it will be useful, but WITHOUT
62034 +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
62035 +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
62036 +for more details.
62037 +
62038 +You should have received a copy of the GNU General Public License
62039 +along with GCC; see the file COPYING3. If not see
62040 +<http://www.gnu.org/licenses/>. */
62041 +
62042 +/* Converting static function-local variables to automatic variables.
62043 +
62044 + The motivating example is a function like:
62045 +
62046 + void
62047 + foo (unsigned n)
62048 + {
62049 + static int var;
62050 + unsigned i;
62051 +
62052 + for (i = 0; i != n; i++)
62053 + {
62054 + var = ...
62055 +
62056 + do other things with var...
62057 + }
62058 + }
62059 +
62060 + Because VAR is static, doing things like code motion to loads and
62061 + stores of VAR is difficult. Furthermore, accesses to VAR are
62062 + inefficient. This pass aims to recognize the cases where it is not
62063 + necessary for VAR to be static and modify the code so that later
62064 + passes will do the appropriate optimizations.
62065 +
62066 + The criteria for a static function-local variable V in a function F
62067 + being converted to an automatic variable are:
62068 +
62069 + 1. F does not call setjmp; and
62070 + 2. V's address is never taken; and
62071 + 3. V is not declared volatile; and
62072 + 4. V is not used in any nested function;
62073 + 5. V is not an aggregate value (union, struct, array, etc.); and
62074 + 6. Every use of V is defined along all paths leading to the use.
62075 +
62076 + NOTE: For ease of implementation, we currently treat a function call
62077 + as killing all previous definitions of static variables, since we
62078 + could have:
62079 +
62080 + static void
62081 + foo (...)
62082 + {
62083 + static int x;
62084 +
62085 + x = ...; (1)
62086 +
62087 + f (...); (2)
62088 +
62089 + ... = x; (3)
62090 + }
62091 +
62092 + The use at (3) needs to pick up a possible definition made by the
62093 + call at (2). If the call at (2) does not call back into 'foo',
62094 + then the call is not a killing call. We currently treat it as
62095 + though it is. */
62096 +
62097 +#include "config.h"
62098 +#include "system.h"
62099 +#include "coretypes.h"
62100 +#include "tm.h"
62101 +
62102 +#include "rtl.h"
62103 +#include "tm_p.h"
62104 +#include "hard-reg-set.h"
62105 +#include "obstack.h"
62106 +#include "basic-block.h"
62107 +
62108 +#include "tree.h"
62109 +#include "gimple.h"
62110 +#include "hashtab.h"
62111 +#include "diagnostic.h"
62112 +#include "tree-flow.h"
62113 +#include "tree-dump.h"
62114 +#include "flags.h"
62115 +#include "timevar.h"
62116 +#include "tree-pass.h"
62117 +
62118 +struct rls_decl_info
62119 +{
62120 + /* The variable declaration. */
62121 + tree orig_var;
62122 +
62123 + /* Its index in rls_block_local_data. */
62124 + int index;
62125 +
62126 + /* Whether we can optimize this variable. */
62127 + bool optimizable_p;
62128 +
62129 + /* The new variable declaration, if we can optimize away the staticness
62130 + of 'orig_var'. */
62131 + tree new_var;
62132 +};
62133 +
62134 +/* Filled with 'struct rls_decl_info'; keyed off ORIG_VAR. */
62135 +static htab_t static_variables;
62136 +
62137 +struct rls_stmt_info
62138 +{
62139 + /* The variable declaration. */
62140 + tree var;
62141 +
62142 + /* The statement in which we found a def or a use of the variable. */
62143 + gimple stmt;
62144 +
62145 + /* Whether STMT represents a use of VAR. */
62146 + bool use_p;
62147 +
62148 + /* A bitmap whose entries denote what variables have been defined
62149 + when execution arrives at STMT. This field is only used when
62150 + USE_P is true. */
62151 + sbitmap defined;
62152 +};
62153 +
62154 +/* Filled with 'struct rls_stmt_info'; keyed off STMT. */
62155 +static htab_t defuse_statements;
62156 +
62157 +static struct
62158 +{
62159 + /* The number of static variables we found. */
62160 + size_t n_statics;
62161 +
62162 + /* The number of optimizable variables we found. */
62163 + size_t n_optimizable;
62164 +} stats;
62165 +
62166 +struct rls_block_dataflow_data {
62167 + /* A bitmap whose entries denote what variables have been defined on
62168 + entry to this block. */
62169 + sbitmap defined_in;
62170 +
62171 + /* A bitmap whose entries denote what variables have been defined on
62172 + exit from this block. */
62173 + sbitmap defined_out;
62174 +};
62175 +
62176 +/* Parameters for the 'static_variables' hash table. */
62177 +
62178 +static hashval_t
62179 +rls_hash_decl_info (const void *x)
62180 +{
62181 + return htab_hash_pointer
62182 + ((const void *) ((const struct rls_decl_info *) x)->orig_var);
62183 +}
62184 +
62185 +static int
62186 +rls_eq_decl_info (const void *x, const void *y)
62187 +{
62188 + const struct rls_decl_info *a = (const struct rls_decl_info *) x;
62189 + const struct rls_decl_info *b = (const struct rls_decl_info *) y;
62190 +
62191 + return a->orig_var == b->orig_var;
62192 +}
62193 +
62194 +static void
62195 +rls_free_decl_info (void *info)
62196 +{
62197 + free (info);
62198 +}
62199 +
62200 +/* Parameters for the 'defuse_statements' hash table. */
62201 +
62202 +static hashval_t
62203 +rls_hash_use_info (const void *x)
62204 +{
62205 + return htab_hash_pointer
62206 + ((const void *) ((const struct rls_stmt_info *) x)->stmt);
62207 +}
62208 +
62209 +static int
62210 +rls_eq_use_info (const void *x, const void *y)
62211 +{
62212 + const struct rls_stmt_info *a = (const struct rls_stmt_info *) x;
62213 + const struct rls_stmt_info *b = (const struct rls_stmt_info *) y;
62214 +
62215 + return a->stmt == b->stmt;
62216 +}
62217 +
62218 +static void
62219 +rls_free_use_info (void *info)
62220 +{
62221 + struct rls_stmt_info *stmt_info = (struct rls_stmt_info *) info;
62222 +
62223 + if (stmt_info->defined)
62224 + sbitmap_free (stmt_info->defined);
62225 +
62226 + free (stmt_info);
62227 +}
62228 +
62229 +/* Initialize data structures and statistics. */
62230 +
62231 +static void
62232 +rls_init (void)
62233 +{
62234 + basic_block bb;
62235 +
62236 + /* We expect relatively few static variables, hence the small
62237 + initial size for the hash table. */
62238 + static_variables = htab_create (8, rls_hash_decl_info,
62239 + rls_eq_decl_info, rls_free_decl_info);
62240 +
62241 + /* We expect quite a few statements. */
62242 + defuse_statements = htab_create (128, rls_hash_use_info,
62243 + rls_eq_use_info, rls_free_use_info);
62244 +
62245 + FOR_ALL_BB (bb)
62246 + {
62247 + struct rls_block_dataflow_data *data;
62248 +
62249 + data = XNEW (struct rls_block_dataflow_data);
62250 + memset (data, 0, sizeof (*data));
62251 + bb->aux = data;
62252 + }
62253 +
62254 + stats.n_statics = 0;
62255 + stats.n_optimizable = 0;
62256 +}
62257 +
62258 +/* Free data structures. */
62259 +
62260 +static void
62261 +rls_done (void)
62262 +{
62263 + basic_block bb;
62264 +
62265 + htab_delete (static_variables);
62266 + htab_delete (defuse_statements);
62267 +
62268 + FOR_ALL_BB (bb)
62269 + {
62270 + struct rls_block_dataflow_data *data
62271 + = (struct rls_block_dataflow_data *) bb->aux;
62272 +
62273 + gcc_assert (data);
62274 +
62275 + if (data->defined_in)
62276 + sbitmap_free (data->defined_in);
62277 + if (data->defined_out)
62278 + sbitmap_free (data->defined_out);
62279 + free (data);
62280 + bb->aux = NULL;
62281 + }
62282 +}
62283 +
62284 +\f
62285 +/* Doing the initial work to find static variables. */
62286 +
62287 +/* Examine the defining statement for VAR and determine whether it is a
62288 + static variable we could potentially optimize. If so, stick in it
62289 + in the 'static_variables' hashtable.
62290 +
62291 + STMT is the statement in which a definition or use of VAR occurs.
62292 + USE_P indicates whether VAR is used or defined in STMT. Enter STMT
62293 + into 'defuse_statements' as well for use during dataflow
62294 + analysis. */
62295 +
62296 +static void
62297 +maybe_discover_new_declaration (tree var, gimple stmt, bool use_p)
62298 +{
62299 + tree def_stmt = SSA_NAME_VAR (var);
62300 +
62301 + if (TREE_CODE (def_stmt) == VAR_DECL
62302 + && DECL_CONTEXT (def_stmt) != NULL_TREE
62303 + && TREE_CODE (DECL_CONTEXT (def_stmt)) == FUNCTION_DECL
62304 + /* We cannot optimize away a static used in multiple functions (as
62305 + might happen in C++). */
62306 + && !DECL_NONLOCAL(def_stmt)
62307 + && TREE_STATIC (def_stmt)
62308 + /* We cannot optimize away aggregate statics, as we would have to
62309 + prove that definitions of every field of the aggregate dominate
62310 + uses. */
62311 + && !AGGREGATE_TYPE_P (TREE_TYPE (def_stmt))
62312 + /* GCC doesn't normally treat vectors as aggregates; we need to,
62313 + though, since a user could use intrinsics to read/write
62314 + particular fields of the vector, thereby treating it as an
62315 + array. */
62316 + && TREE_CODE (TREE_TYPE (def_stmt)) != VECTOR_TYPE
62317 + && !TREE_ADDRESSABLE (def_stmt)
62318 + && !TREE_THIS_VOLATILE (def_stmt))
62319 + {
62320 + struct rls_decl_info dummy;
62321 + void **slot;
62322 +
62323 + dummy.orig_var = def_stmt;
62324 + slot = htab_find_slot (static_variables, &dummy, INSERT);
62325 +
62326 + if (*slot == NULL)
62327 + {
62328 + /* Found a use or a def of a new declaration. */
62329 + struct rls_decl_info *info = XNEW (struct rls_decl_info);
62330 +
62331 + info->orig_var = def_stmt;
62332 + info->index = stats.n_statics++;
62333 + /* Optimistically assume that we can optimize. */
62334 + info->optimizable_p = true;
62335 + info->new_var = NULL_TREE;
62336 + *slot = (void *) info;
62337 + }
62338 +
62339 + /* Enter the statement into DEFUSE_STATEMENTS. */
62340 + {
62341 + struct rls_stmt_info dummy;
62342 + struct rls_stmt_info *info;
62343 +
62344 + dummy.stmt = stmt;
62345 + slot = htab_find_slot (defuse_statements, &dummy, INSERT);
62346 +
62347 + /* We should never insert the same statement into the
62348 + hashtable twice. */
62349 + gcc_assert (*slot == NULL
62350 + || ((struct rls_stmt_info *)(*slot))->stmt == stmt);
62351 +
62352 + if (*slot != NULL && ((struct rls_stmt_info *)(*slot))->stmt == stmt)
62353 + return;
62354 +
62355 + info = XNEW (struct rls_stmt_info);
62356 + info->var = def_stmt;
62357 + info->stmt = stmt;
62358 + if (dump_file)
62359 + {
62360 + fprintf (dump_file, "entering as %s ", use_p ? "use" : "def");
62361 + print_gimple_stmt (dump_file, stmt, 0, TDF_DETAILS | TDF_VOPS);
62362 + }
62363 + info->use_p = use_p;
62364 + /* We don't know how big to make the bitmap yet. */
62365 + info->defined = NULL;
62366 + *slot = (void *) info;
62367 + }
62368 + }
62369 +}
62370 +
62371 +/* Grovel through all the statements in the program, looking for
62372 + SSA_NAMEs whose SSA_NAME_VAR is a VAR_DECL. We look at both use and
62373 + def SSA_NAMEs. */
62374 +
62375 +static void
62376 +find_static_nonvolatile_declarations (void)
62377 +{
62378 + basic_block bb;
62379 +
62380 + FOR_EACH_BB (bb)
62381 + {
62382 + gimple_stmt_iterator i;
62383 +
62384 + for (i = gsi_start_bb (bb); !gsi_end_p (i); gsi_next (&i))
62385 + {
62386 + tree var;
62387 + ssa_op_iter iter;
62388 + gimple stmt = gsi_stmt (i);
62389 +
62390 + /* If there's a call expression in STMT, then previous passes
62391 + will have determined if the call transitively defines some
62392 + static variable. However, we need more precise
62393 + information--we need to know whether static variables are
62394 + live out after the call.
62395 +
62396 + Since we'll never see something like:
62397 +
62398 + staticvar = foo (bar, baz);
62399 +
62400 + in GIMPLE (the result of the call will be assigned to a
62401 + normal, non-static local variable which is then assigned to
62402 + STATICVAR in a subsequent statement), don't bother finding
62403 + new declarations if we see a GIMPLE_CALL.
62404 +
62405 + In a similar fashion, asm statements that clobber memory
62406 + will appear to define static variables. In general,
62407 + however, assuming that asm statements define static
62408 + variables would cause us to see that in the following
62409 + situation:
62410 +
62411 + static int foo = 0;
62412 +
62413 + __asm__ (... : "memory");
62414 + foo++;
62415 +
62416 + foo could be unstaticized because the asm has "defined"
62417 + foo. This is likely false. (Even if the asm does happen
62418 + to define foo--and only foo--that situation would be
62419 + sufficiently unusual that not optimizing it seems OK.) */
62420 + if (gimple_code (stmt) != GIMPLE_CALL
62421 + && gimple_code (stmt) != GIMPLE_ASM)
62422 + FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_VDEF)
62423 + {
62424 + maybe_discover_new_declaration (var, stmt, false);
62425 + }
62426 +
62427 + FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_VUSE)
62428 + {
62429 + maybe_discover_new_declaration (var, stmt, true);
62430 + }
62431 + }
62432 + }
62433 +}
62434 +
62435 +\f
62436 +/* Determining if we have anything to optimize. */
62437 +
62438 +/* Examine *SLOT (which is a 'struct rls_decl_info *') to see whether
62439 + the associated variable is optimizable. If it is, create a new,
62440 + non-static declaration for the variable; this new variable will be
62441 + used during a subsequent rewrite of the function. */
62442 +
62443 +#define NEW_VAR_PREFIX ".unstatic"
62444 +
62445 +static int
62446 +maybe_create_new_variable (void **slot, void *data ATTRIBUTE_UNUSED)
62447 +{
62448 + struct rls_decl_info *info = (struct rls_decl_info *) *slot;
62449 + tree id_node = DECL_NAME (info->orig_var);
62450 + size_t id_len = IDENTIFIER_LENGTH (id_node);
62451 + size_t name_len = id_len + strlen (NEW_VAR_PREFIX) + 1;
62452 + char *name;
62453 +
62454 + /* Don't create a new variable multiple times. */
62455 + gcc_assert (!info->new_var);
62456 +
62457 + /* Tie the new name to the old one to aid debugging dumps. */
62458 + name = (char *) alloca (name_len);
62459 + strcpy (name, IDENTIFIER_POINTER (id_node));
62460 + strcpy (name + id_len, NEW_VAR_PREFIX);
62461 + info->new_var = create_tmp_var (TREE_TYPE (info->orig_var), name);
62462 +
62463 + if (dump_file)
62464 + {
62465 + fprintf (dump_file, "new variable ");
62466 + print_generic_expr (dump_file, info->new_var, 0);
62467 + fprintf (dump_file, "\n");
62468 + }
62469 +
62470 + /* Inform SSA about this new variable. */
62471 + create_var_ann (info->new_var);
62472 + mark_sym_for_renaming (info->new_var);
62473 + /* We need to make sure we rebuild bits for the original variable,
62474 + such as virtual operands attached to statements. */
62475 + mark_sym_for_renaming (info->orig_var);
62476 + add_referenced_var (info->new_var);
62477 +
62478 + /* Always continue scanning. */
62479 + return 1;
62480 +}
62481 +
62482 +#undef NEW_VAR_PREFIX
62483 +
62484 +/* Traverse the 'defuse_statements' hash table. For every use,
62485 + determine if the associated variable is defined along all paths
62486 + leading to said use. Remove the associated variable from
62487 + 'static_variables' if it is not. */
62488 +
62489 +static int
62490 +check_definedness (void **slot, void *data ATTRIBUTE_UNUSED)
62491 +{
62492 + struct rls_stmt_info *info = (struct rls_stmt_info *) *slot;
62493 + struct rls_decl_info dummy;
62494 +
62495 + /* We don't need to look at definitions. Continue scanning. */
62496 + if (!info->use_p)
62497 + return 1;
62498 +
62499 + dummy.orig_var = info->var;
62500 + slot = htab_find_slot (static_variables, &dummy, INSERT);
62501 +
62502 + /* Might not be there because we deleted it already. */
62503 + if (*slot)
62504 + {
62505 + struct rls_decl_info *decl = (struct rls_decl_info *) *slot;
62506 +
62507 + if (!TEST_BIT (info->defined, decl->index))
62508 + {
62509 + if (dump_file)
62510 + {
62511 + fprintf (dump_file, "not optimizing ");
62512 + print_generic_expr (dump_file, decl->orig_var, 0);
62513 + fprintf (dump_file, "due to uncovered use in ");
62514 + print_gimple_stmt (dump_file, info->stmt, 0, 0);
62515 + fprintf (dump_file, "\n");
62516 + }
62517 +
62518 + htab_clear_slot (static_variables, slot);
62519 + stats.n_optimizable--;
62520 + }
62521 + }
62522 +
62523 + /* Continue scan. */
62524 + return 1;
62525 +}
62526 +
62527 +/* Check all statements in 'defuse_statements' to see if all the
62528 + statements that use a static variable have that variable defined
62529 + along all paths leading to the statement. Once that's done, go
62530 + through and create new, non-static variables for any static variables
62531 + that can be optimized. */
62532 +
62533 +static size_t
62534 +determine_optimizable_statics (void)
62535 +{
62536 + htab_traverse (defuse_statements, check_definedness, NULL);
62537 +
62538 + htab_traverse (static_variables, maybe_create_new_variable, NULL);
62539 +
62540 + return stats.n_optimizable;
62541 +}
62542 +
62543 +/* Look at STMT to see if we have uses or defs of a static variable.
62544 + STMT is passed in DATA. Definitions of a static variable are found
62545 + by the presence of a V_MUST_DEF, while uses are found by the presence
62546 + of a VUSE. */
62547 +
62548 +static int
62549 +unstaticize_variable (void **slot, void *data)
62550 +{
62551 + struct rls_decl_info *info = (struct rls_decl_info *) *slot;
62552 + gimple stmt = (gimple) data;
62553 + tree vdef;
62554 + tree vuse;
62555 + int continue_scan = 1;
62556 +
62557 + /* We should have removed unoptimizable variables during an earlier
62558 + traversal. */
62559 + gcc_assert (info->optimizable_p);
62560 +
62561 + /* Check for virtual definitions first. */
62562 + vdef = SINGLE_SSA_TREE_OPERAND (stmt, SSA_OP_VDEF);
62563 +
62564 + if (vdef != NULL
62565 + && ZERO_SSA_OPERANDS (stmt, SSA_OP_DEF)
62566 + && gimple_code (stmt) == GIMPLE_ASSIGN
62567 + && TREE_CODE (gimple_assign_lhs (stmt)) == VAR_DECL
62568 + && gimple_assign_lhs(stmt) == info->orig_var)
62569 + {
62570 + /* Make the statement define the new name. The new name has
62571 + already been marked for renaming, so no need to do that
62572 + here. */
62573 + gimple_assign_set_lhs (stmt, info->new_var);
62574 + if (dump_file)
62575 + {
62576 + fprintf (dump_file, "found virtual definition!\n");
62577 + print_gimple_stmt (dump_file, stmt, 0, TDF_VOPS | TDF_DETAILS);
62578 + fprintf (dump_file, "\n");
62579 + }
62580 + continue_scan = 0;
62581 + goto done;
62582 + }
62583 +
62584 + /* Check for virtual uses. */
62585 + vuse = SINGLE_SSA_TREE_OPERAND (stmt, SSA_OP_VUSE);
62586 +
62587 + if (vuse != NULL
62588 + && gimple_code (stmt) == GIMPLE_ASSIGN
62589 + && gimple_assign_rhs_code (stmt) == VAR_DECL
62590 + && gimple_assign_rhs1 (stmt) == info->orig_var)
62591 + {
62592 + /* Make the statement use the new name. */
62593 + gimple_assign_set_rhs1 (stmt, info->new_var);
62594 + if (dump_file)
62595 + {
62596 + fprintf (dump_file, "found virtual use!\n");
62597 + print_gimple_stmt (dump_file, stmt, 0, TDF_VOPS | TDF_DETAILS);
62598 + fprintf (dump_file, "\n");
62599 + }
62600 + continue_scan = 0;
62601 + goto done;
62602 + }
62603 +
62604 + done:
62605 + if (!continue_scan)
62606 + {
62607 + /* None of the other optimizable static variables can occur
62608 + in this statement. Stop the scan. */
62609 + update_stmt (stmt);
62610 +
62611 + if (dump_file)
62612 + {
62613 + fprintf (dump_file, "updated stmt\n");
62614 + print_gimple_stmt (dump_file, stmt, 0, TDF_VOPS | TDF_DETAILS);
62615 + }
62616 + }
62617 +
62618 + return continue_scan;
62619 +}
62620 +
62621 +/* Determine if we have any static variables we can optimize. If so,
62622 + replace any defs or uses of those variables in their defining/using
62623 + statements. */
62624 +
62625 +static void
62626 +maybe_remove_static_from_declarations (void)
62627 +{
62628 + size_t n_optimizable = determine_optimizable_statics ();
62629 + basic_block bb;
62630 +
62631 + if (n_optimizable)
62632 + /* Replace any optimizable variables with new, non-static variables. */
62633 + FOR_EACH_BB (bb)
62634 + {
62635 + gimple_stmt_iterator gsi;
62636 +
62637 + for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
62638 + {
62639 + gimple stmt = gsi_stmt (gsi);
62640 +
62641 + htab_traverse (static_variables, unstaticize_variable, stmt);
62642 + }
62643 + }
62644 +}
62645 +
62646 +/* Callback for htab_traverse to initialize the bitmap for *SLOT, which
62647 + is a 'struct rls_stmt_info'. */
62648 +
62649 +static int
62650 +initialize_statement_dataflow (void **slot, void *data ATTRIBUTE_UNUSED)
62651 +{
62652 + struct rls_stmt_info *info = (struct rls_stmt_info *) *slot;
62653 +
62654 + gcc_assert (!info->defined);
62655 +
62656 + if (info->use_p)
62657 + {
62658 + info->defined = sbitmap_alloc (stats.n_statics);
62659 + /* Assume defined along all paths until otherwise informed. */
62660 + sbitmap_ones (info->defined);
62661 + }
62662 +
62663 + /* Continue traversal. */
62664 + return 1;
62665 +}
62666 +
62667 +/* We have N_STATICS static variables to consider. Go through all the
62668 + blocks and all the use statements to initialize their bitmaps. */
62669 +
62670 +static void
62671 +initialize_block_and_statement_dataflow (size_t n_statics)
62672 +{
62673 + basic_block bb;
62674 +
62675 + FOR_ALL_BB (bb)
62676 + {
62677 + struct rls_block_dataflow_data *data
62678 + = (struct rls_block_dataflow_data *) bb->aux;
62679 +
62680 + gcc_assert (data);
62681 +
62682 + data->defined_in = sbitmap_alloc (n_statics);
62683 + sbitmap_zero (data->defined_in);
62684 + data->defined_out = sbitmap_alloc (n_statics);
62685 + sbitmap_zero (data->defined_out);
62686 + }
62687 +
62688 + htab_traverse (defuse_statements, initialize_statement_dataflow, NULL);
62689 +}
62690 +
62691 +/* Apply the individual effects of the stmts in BB to update the
62692 + dataflow analysis information for BB. */
62693 +
62694 +static void
62695 +compute_definedness_for_block (basic_block bb)
62696 +{
62697 + bool changed_p = false;
62698 + struct rls_block_dataflow_data *data
62699 + = (struct rls_block_dataflow_data *) bb->aux;
62700 + gimple_stmt_iterator gsi;
62701 +
62702 + sbitmap_copy (data->defined_out, data->defined_in);
62703 +
62704 + for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
62705 + {
62706 + gimple stmt = gsi_stmt (gsi);
62707 +
62708 + if (gimple_code (stmt) == GIMPLE_CALL)
62709 + /* If there's a call expression in STMT, then previous passes
62710 + will have determined if the call transitively defines some
62711 + static variable. However, we need more precise
62712 + information--we need to know whether static variables are
62713 + live out after the call. In the absence of such information,
62714 + simply declare that all static variables are clobbered by the
62715 + call. A better analysis would be interprocedural and compute
62716 + the liveness information we require, but for now, we're being
62717 + pessimistic. */
62718 + sbitmap_zero (data->defined_out);
62719 + else
62720 + {
62721 + struct rls_stmt_info dummy;
62722 + void **slot;
62723 +
62724 + /* See if this statement uses or defines a static variable. */
62725 + dummy.stmt = stmt;
62726 + slot = htab_find_slot (defuse_statements, &dummy, INSERT);
62727 +
62728 + /* Check for uses. */
62729 + if (*slot != NULL)
62730 + {
62731 + struct rls_stmt_info *info = (struct rls_stmt_info *) *slot;
62732 +
62733 + if (info->use_p)
62734 + {
62735 + gcc_assert (info->defined);
62736 +
62737 + /* Found a statement that uses a function-local static
62738 + variable. Copy the current state of definedness. */
62739 + sbitmap_copy (info->defined, data->defined_out);
62740 + }
62741 + else
62742 + {
62743 + struct rls_decl_info dummy;
62744 + struct rls_decl_info *decl;
62745 +
62746 + gcc_assert (!info->defined);
62747 +
62748 + /* Found a statement that defines a function-local static
62749 + variable. Look up the associated variable's information
62750 + and mark it as defined in the block. */
62751 + dummy.orig_var = info->var;
62752 + slot = htab_find_slot (static_variables, &dummy, INSERT);
62753 +
62754 + gcc_assert (*slot);
62755 +
62756 + decl = (struct rls_decl_info *) *slot;
62757 +
62758 + SET_BIT (data->defined_out, decl->index);
62759 + changed_p |= true;
62760 + }
62761 + }
62762 + }
62763 + }
62764 +}
62765 +
62766 +/* Solve the dataflow equations:
62767 +
62768 + DEFINED_IN(b) = intersect DEFINED_OUT(p) for p in preds(b)
62769 + DEFINED_OUT(b) = VARIABLES_DEFINED (b, DEFINED_IN (b))
62770 +
62771 + via a simple iterative solver. VARIABLES_DEFINED is computed by
62772 + 'compute_definedness_for_block'. */
62773 +
62774 +static void
62775 +compute_definedness (void)
62776 +{
62777 + basic_block bb;
62778 + bool changed_p;
62779 + sbitmap tmp_bitmap = sbitmap_alloc (stats.n_statics);
62780 +
62781 + /* Compute initial sets. */
62782 + FOR_EACH_BB (bb)
62783 + {
62784 + compute_definedness_for_block (bb);
62785 + }
62786 +
62787 + /* Iterate. */
62788 + do {
62789 + changed_p = false;
62790 +
62791 + FOR_EACH_BB (bb)
62792 + {
62793 + edge e;
62794 + edge_iterator ei;
62795 + struct rls_block_dataflow_data *data
62796 + = (struct rls_block_dataflow_data *) bb->aux;
62797 + bool bitmap_changed_p = false;
62798 +
62799 + sbitmap_ones (tmp_bitmap);
62800 +
62801 + gcc_assert (data);
62802 +
62803 + /* We require information about whether a variable was defined
62804 + over all paths leading to a particular use. Therefore, we
62805 + intersect the DEFINED sets of all predecessors. */
62806 + FOR_EACH_EDGE (e, ei, bb->preds)
62807 + {
62808 + struct rls_block_dataflow_data *pred_data
62809 + = (struct rls_block_dataflow_data *) e->src->aux;
62810 +
62811 + gcc_assert (pred_data);
62812 +
62813 + sbitmap_a_and_b (tmp_bitmap, tmp_bitmap, pred_data->defined_out);
62814 + }
62815 +
62816 + bitmap_changed_p = !sbitmap_equal (tmp_bitmap, data->defined_in);
62817 +
62818 + if (bitmap_changed_p)
62819 + {
62820 + sbitmap_copy (data->defined_in, tmp_bitmap);
62821 + compute_definedness_for_block (bb);
62822 + }
62823 +
62824 + changed_p |= bitmap_changed_p;
62825 + }
62826 + } while (changed_p);
62827 +
62828 + sbitmap_free (tmp_bitmap);
62829 +}
62830 +
62831 +static unsigned int
62832 +execute_rls (void)
62833 +{
62834 + rls_init ();
62835 +
62836 + find_static_nonvolatile_declarations ();
62837 +
62838 + /* Can we optimize anything? */
62839 + if (stats.n_statics != 0)
62840 + {
62841 + stats.n_optimizable = stats.n_statics;
62842 +
62843 + if (dump_file)
62844 + fprintf (dump_file, "found %d static variables to consider\n",
62845 + stats.n_statics);
62846 +
62847 + initialize_block_and_statement_dataflow (stats.n_statics);
62848 +
62849 + compute_definedness ();
62850 +
62851 + maybe_remove_static_from_declarations ();
62852 +
62853 + if (dump_file)
62854 + fprintf (dump_file, "removed %d static variables\n",
62855 + stats.n_optimizable);
62856 + }
62857 +
62858 + rls_done ();
62859 +
62860 + return 0;
62861 +}
62862 +
62863 +static bool
62864 +gate_rls (void)
62865 +{
62866 + return (flag_remove_local_statics != 0
62867 + && !cfun->calls_setjmp
62868 + && !cgraph_node (current_function_decl)->ever_was_nested);
62869 +}
62870 +
62871 +struct gimple_opt_pass pass_remove_local_statics =
62872 +{
62873 + {
62874 + GIMPLE_PASS,
62875 + "remlocstatic", /* name */
62876 + gate_rls, /* gate */
62877 + execute_rls, /* execute */
62878 + NULL, /* sub */
62879 + NULL, /* next */
62880 + 0, /* static_pass_number */
62881 + TV_TREE_RLS, /* tv_id */
62882 + PROP_cfg | PROP_ssa, /* properties_required */
62883 + 0, /* properties_provided */
62884 + 0, /* properties_destroyed */
62885 + 0, /* todo_flags_start */
62886 + TODO_dump_func | TODO_verify_ssa | TODO_verify_stmts
62887 + | TODO_rebuild_alias | TODO_update_ssa /* todo_flags_finish */
62888 + }
62889 +};
62890 diff -Nur a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c
62891 --- a/gcc/tree-ssa-sink.c 2009-02-20 16:20:38.000000000 +0100
62892 +++ b/gcc/tree-ssa-sink.c 2010-01-25 09:50:29.595686516 +0100
62893 @@ -449,6 +449,47 @@
62894 last = false;
62895 continue;
62896 }
62897 +
62898 + /* We cannot move statements that contain references to block-scope
62899 + variables out of that block, as this may lead to incorrect aliasing
62900 + when we lay out the stack frame in cfgexpand.c.
62901 + In lieu of more sophisticated analysis, be very conservative here
62902 + and prohibit moving any statement that references memory out of a
62903 + block with variables. */
62904 + if (gimple_references_memory_p (stmt))
62905 + {
62906 + tree fromblock = gimple_block (stmt);
62907 + while (fromblock
62908 + && fromblock != current_function_decl
62909 + && !BLOCK_VARS (fromblock))
62910 + fromblock = BLOCK_SUPERCONTEXT (fromblock);
62911 + if (fromblock && fromblock != current_function_decl)
62912 + {
62913 + gimple tostmt;
62914 + tree toblock;
62915 +
62916 + if (gsi_end_p (togsi))
62917 + tostmt = gimple_seq_last_stmt (gsi_seq (togsi));
62918 + else
62919 + tostmt = gsi_stmt (togsi);
62920 + if (tostmt)
62921 + toblock = gimple_block (tostmt);
62922 + else
62923 + toblock = NULL;
62924 + while (toblock
62925 + && toblock != current_function_decl
62926 + && toblock != fromblock)
62927 + toblock = BLOCK_SUPERCONTEXT (toblock);
62928 + if (!toblock || toblock != fromblock)
62929 + {
62930 + if (!gsi_end_p (gsi))
62931 + gsi_prev (&gsi);
62932 + last = false;
62933 + continue;
62934 + }
62935 + }
62936 + }
62937 +
62938 if (dump_file)
62939 {
62940 fprintf (dump_file, "Sinking ");
62941 diff -Nur a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
62942 --- a/gcc/tree-ssa-structalias.c 2009-03-23 17:29:33.000000000 +0100
62943 +++ b/gcc/tree-ssa-structalias.c 2010-01-25 09:50:29.595686516 +0100
62944 @@ -2926,7 +2926,8 @@
62945 /* Some people like to do cute things like take the address of
62946 &0->a.b */
62947 forzero = t;
62948 - while (!SSA_VAR_P (forzero) && !CONSTANT_CLASS_P (forzero))
62949 + while (!SSA_VAR_P (forzero) && TREE_CODE (forzero) != FUNCTION_DECL
62950 + && !CONSTANT_CLASS_P (forzero))
62951 forzero = TREE_OPERAND (forzero, 0);
62952
62953 if (CONSTANT_CLASS_P (forzero) && integer_zerop (forzero))
62954 diff -Nur a/gcc/tree-vect-analyze.c b/gcc/tree-vect-analyze.c
62955 --- a/gcc/tree-vect-analyze.c 2009-06-30 13:56:21.000000000 +0200
62956 +++ b/gcc/tree-vect-analyze.c 2010-01-25 09:50:29.595686516 +0100
62957 @@ -1459,7 +1459,7 @@
62958 }
62959
62960 base = build_fold_indirect_ref (base_addr);
62961 - alignment = ssize_int (TYPE_ALIGN (vectype)/BITS_PER_UNIT);
62962 + alignment = ssize_int (targetm.vectorize.vector_min_alignment (vectype));
62963
62964 if ((aligned_to && tree_int_cst_compare (aligned_to, alignment) < 0)
62965 || !misalign)
62966 @@ -1510,7 +1510,8 @@
62967 /* At this point we assume that the base is aligned. */
62968 gcc_assert (base_aligned
62969 || (TREE_CODE (base) == VAR_DECL
62970 - && DECL_ALIGN (base) >= TYPE_ALIGN (vectype)));
62971 + && (DECL_ALIGN (base)
62972 + >= targetm.vectorize.vector_min_alignment (vectype))));
62973
62974 /* Modulo alignment. */
62975 misalign = size_binop (TRUNC_MOD_EXPR, misalign, alignment);
62976 diff -Nur a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
62977 --- a/gcc/tree-vectorizer.c 2009-03-18 16:29:28.000000000 +0100
62978 +++ b/gcc/tree-vectorizer.c 2010-01-25 09:50:29.595686516 +0100
62979 @@ -2868,11 +2868,13 @@
62980 vnode = vnode->next_needed)
62981 {
62982 tree vectype, decl = vnode->decl;
62983 + tree t;
62984 unsigned int alignment;
62985
62986 - if (TREE_CODE (TREE_TYPE (decl)) != ARRAY_TYPE)
62987 + t = TREE_TYPE(decl);
62988 + if (TREE_CODE (t) != ARRAY_TYPE)
62989 continue;
62990 - vectype = get_vectype_for_scalar_type (TREE_TYPE (TREE_TYPE (decl)));
62991 + vectype = get_vectype_for_scalar_type (strip_array_types (t));
62992 if (!vectype)
62993 continue;
62994 alignment = TYPE_ALIGN (vectype);
62995 @@ -2887,6 +2889,7 @@
62996 {
62997 fprintf (dump_file, "Increasing alignment of decl: ");
62998 print_generic_expr (dump_file, decl, TDF_SLIM);
62999 + fprintf (dump_file, "\n");
63000 }
63001 }
63002 }
63003 diff -Nur a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
63004 --- a/gcc/tree-vect-transform.c 2009-04-20 09:09:01.000000000 +0200
63005 +++ b/gcc/tree-vect-transform.c 2010-01-25 09:50:29.595686516 +0100
63006 @@ -5442,7 +5442,21 @@
63007 vect_permute_store_chain(). */
63008 vec_oprnd = VEC_index (tree, result_chain, i);
63009
63010 - data_ref = build_fold_indirect_ref (dataref_ptr);
63011 + if (alignment_support_scheme == dr_aligned
63012 + && !targetm.vectorize.always_misalign(vectype))
63013 + {
63014 + data_ref = build_fold_indirect_ref (dataref_ptr);
63015 + }
63016 + else
63017 + {
63018 + /* TODO: Record actual alignment in always_misalign case. */
63019 + int mis = DR_MISALIGNMENT (first_dr);
63020 + tree tmis;
63021 + tmis = (mis == -1 ? size_zero_node : size_int (mis));
63022 + tmis = size_binop (MULT_EXPR, tmis, size_int(BITS_PER_UNIT));
63023 + data_ref =
63024 + build2 (MISALIGNED_INDIRECT_REF, vectype, dataref_ptr, tmis);
63025 + }
63026
63027 /* Arguments are ready. Create the new vector stmt. */
63028 new_stmt = gimple_build_assign (data_ref, vec_oprnd);
63029 @@ -6621,10 +6635,15 @@
63030 {
63031 case dr_aligned:
63032 gcc_assert (aligned_access_p (first_dr));
63033 - data_ref = build_fold_indirect_ref (dataref_ptr);
63034 - break;
63035 + if (!targetm.vectorize.always_misalign(vectype))
63036 + {
63037 + data_ref = build_fold_indirect_ref (dataref_ptr);
63038 + break;
63039 + }
63040 + /* Fall through... */
63041 case dr_unaligned_supported:
63042 {
63043 + /* TODO: Record actual alignment in always_misalign case. */
63044 int mis = DR_MISALIGNMENT (first_dr);
63045 tree tmis = (mis == -1 ? size_zero_node : size_int (mis));
63046
63047 @@ -7595,7 +7614,7 @@
63048 gimple dr_stmt = DR_STMT (dr);
63049 stmt_vec_info stmt_info = vinfo_for_stmt (dr_stmt);
63050 tree vectype = STMT_VINFO_VECTYPE (stmt_info);
63051 - int vectype_align = TYPE_ALIGN (vectype) / BITS_PER_UNIT;
63052 + int vectype_align = targetm.vectorize.vector_min_alignment (vectype);
63053 tree niters_type = TREE_TYPE (loop_niters);
63054 int step = 1;
63055 int element_size = GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (DR_REF (dr))));
63056 diff -Nur a/gcc/unwind-dw2.c b/gcc/unwind-dw2.c
63057 --- a/gcc/unwind-dw2.c 2009-04-10 01:23:07.000000000 +0200
63058 +++ b/gcc/unwind-dw2.c 2010-01-25 09:50:29.595686516 +0100
63059 @@ -1414,16 +1414,12 @@
63060 /* Fill in CONTEXT for top-of-stack. The only valid registers at this
63061 level will be the return address and the CFA. */
63062
63063 -#define uw_init_context(CONTEXT) \
63064 - do \
63065 - { \
63066 - /* Do any necessary initialization to access arbitrary stack frames. \
63067 - On the SPARC, this means flushing the register windows. */ \
63068 - __builtin_unwind_init (); \
63069 - uw_init_context_1 (CONTEXT, __builtin_dwarf_cfa (), \
63070 - __builtin_return_address (0)); \
63071 - } \
63072 - while (0)
63073 +#define uw_init_context(CONTEXT) \
63074 + /* Do any necessary initialization to access arbitrary stack frames. \
63075 + On the SPARC, this means flushing the register windows. */ \
63076 + (__builtin_unwind_init (), \
63077 + uw_init_context_1 ((CONTEXT), __builtin_dwarf_cfa (), \
63078 + __builtin_return_address (0)))
63079
63080 static inline void
63081 init_dwarf_reg_size_table (void)
63082 @@ -1431,7 +1427,7 @@
63083 __builtin_init_dwarf_reg_size_table (dwarf_reg_size_table);
63084 }
63085
63086 -static void
63087 +static _Unwind_Reason_Code
63088 uw_init_context_1 (struct _Unwind_Context *context,
63089 void *outer_cfa, void *outer_ra)
63090 {
63091 @@ -1445,7 +1441,8 @@
63092 context->flags = EXTENDED_CONTEXT_BIT;
63093
63094 code = uw_frame_state_for (context, &fs);
63095 - gcc_assert (code == _URC_NO_REASON);
63096 + if (code != _URC_NO_REASON)
63097 + return code;
63098
63099 #if __GTHREADS
63100 {
63101 @@ -1471,6 +1468,8 @@
63102 initialization context, then we can't see it in the given
63103 call frame data. So have the initialization context tell us. */
63104 context->ra = __builtin_extract_return_addr (outer_ra);
63105 +
63106 + return _URC_NO_REASON;
63107 }
63108
63109
63110 diff -Nur a/gcc/unwind.inc b/gcc/unwind.inc
63111 --- a/gcc/unwind.inc 2009-04-10 01:23:07.000000000 +0200
63112 +++ b/gcc/unwind.inc 2010-01-25 09:50:29.595686516 +0100
63113 @@ -85,7 +85,8 @@
63114 _Unwind_Reason_Code code;
63115
63116 /* Set up this_context to describe the current stack frame. */
63117 - uw_init_context (&this_context);
63118 + code = uw_init_context (&this_context);
63119 + gcc_assert (code == _URC_NO_REASON);
63120 cur_context = this_context;
63121
63122 /* Phase 1: Search. Unwind the stack, calling the personality routine
63123 @@ -198,7 +199,8 @@
63124 struct _Unwind_Context this_context, cur_context;
63125 _Unwind_Reason_Code code;
63126
63127 - uw_init_context (&this_context);
63128 + code = uw_init_context (&this_context);
63129 + gcc_assert (code == _URC_NO_REASON);
63130 cur_context = this_context;
63131
63132 exc->private_1 = (_Unwind_Ptr) stop;
63133 @@ -221,7 +223,8 @@
63134 struct _Unwind_Context this_context, cur_context;
63135 _Unwind_Reason_Code code;
63136
63137 - uw_init_context (&this_context);
63138 + code = uw_init_context (&this_context);
63139 + gcc_assert (code == _URC_NO_REASON);
63140 cur_context = this_context;
63141
63142 /* Choose between continuing to process _Unwind_RaiseException
63143 @@ -251,7 +254,8 @@
63144 if (exc->private_1 == 0)
63145 return _Unwind_RaiseException (exc);
63146
63147 - uw_init_context (&this_context);
63148 + code = uw_init_context (&this_context);
63149 + gcc_assert (code == _URC_NO_REASON);
63150 cur_context = this_context;
63151
63152 code = _Unwind_ForcedUnwind_Phase2 (exc, &cur_context);
63153 @@ -280,7 +284,9 @@
63154 struct _Unwind_Context context;
63155 _Unwind_Reason_Code code;
63156
63157 - uw_init_context (&context);
63158 + code = uw_init_context (&context);
63159 + if (code != _URC_NO_REASON)
63160 + return _URC_FATAL_PHASE1_ERROR;
63161
63162 while (1)
63163 {
63164 diff -Nur a/gcc/unwind-sjlj.c b/gcc/unwind-sjlj.c
63165 --- a/gcc/unwind-sjlj.c 2009-04-10 01:23:07.000000000 +0200
63166 +++ b/gcc/unwind-sjlj.c 2010-01-25 09:50:29.595686516 +0100
63167 @@ -292,10 +292,11 @@
63168 uw_update_context (context, fs);
63169 }
63170
63171 -static inline void
63172 +static inline _Unwind_Reason_Code
63173 uw_init_context (struct _Unwind_Context *context)
63174 {
63175 context->fc = _Unwind_SjLj_GetContext ();
63176 + return _URC_NO_REASON;
63177 }
63178
63179 static void __attribute__((noreturn))
63180 diff -Nur a/gcc/varasm.c b/gcc/varasm.c
63181 --- a/gcc/varasm.c 2009-03-17 21:18:21.000000000 +0100
63182 +++ b/gcc/varasm.c 2010-01-25 09:50:29.595686516 +0100
63183 @@ -1126,11 +1126,14 @@
63184 {
63185 #ifdef DATA_ALIGNMENT
63186 unsigned int data_align = DATA_ALIGNMENT (TREE_TYPE (decl), align);
63187 +#else
63188 + unsigned int data_align = align;
63189 +#endif
63190 + data_align = alignment_for_aligned_arrays (TREE_TYPE (decl), data_align);
63191 /* Don't increase alignment too much for TLS variables - TLS space
63192 is too precious. */
63193 if (! DECL_THREAD_LOCAL_P (decl) || data_align <= BITS_PER_WORD)
63194 align = data_align;
63195 -#endif
63196 #ifdef CONSTANT_ALIGNMENT
63197 if (DECL_INITIAL (decl) != 0 && DECL_INITIAL (decl) != error_mark_node)
63198 {
63199 @@ -3196,6 +3199,10 @@
63200 set_mem_alias_set (rtl, 0);
63201 set_mem_alias_set (rtl, const_alias_set);
63202
63203 + /* We cannot share RTX'es in pool entries.
63204 + Mark this piece of RTL as required for unsharing. */
63205 + RTX_FLAG (rtl, used) = 1;
63206 +
63207 /* Set flags or add text to the name to record information, such as
63208 that it is a local symbol. If the name is changed, the macro
63209 ASM_OUTPUT_LABELREF will have to know how to strip this
63210 diff -Nur a/gcc/vmsdbgout.c b/gcc/vmsdbgout.c
63211 --- a/gcc/vmsdbgout.c 2008-08-29 20:41:19.000000000 +0200
63212 +++ b/gcc/vmsdbgout.c 2010-01-25 09:50:29.595686516 +0100
63213 @@ -211,6 +211,7 @@
63214 debug_nothing_int, /* handle_pch */
63215 debug_nothing_rtx, /* var_location */
63216 debug_nothing_void, /* switch_text_section */
63217 + debug_nothing_tree_tree, /* set_name */
63218 0 /* start_end_main_source_file */
63219 };
63220
63221 diff -Nur a/include/libiberty.h b/include/libiberty.h
63222 --- a/include/libiberty.h 2008-06-24 03:42:31.000000000 +0200
63223 +++ b/include/libiberty.h 2010-01-25 09:50:29.595686516 +0100
63224 @@ -591,6 +591,10 @@
63225
63226 extern int pwait (int, int *, int);
63227
63228 +/* Convert a Cygwin path to a Windows path. */
63229 +
63230 +extern int cygpath (const char *, char []);
63231 +
63232 #if !HAVE_DECL_ASPRINTF
63233 /* Like sprintf but provides a pointer to malloc'd storage, which must
63234 be freed by the caller. */
63235 diff -Nur a/libcpp/directives.c b/libcpp/directives.c
63236 --- a/libcpp/directives.c 2009-04-10 01:23:07.000000000 +0200
63237 +++ b/libcpp/directives.c 2010-01-25 09:50:29.595686516 +0100
63238 @@ -2299,13 +2299,6 @@
63239 run_directive (pfile, type, str, count);
63240 }
63241
63242 -/* The number of errors for a given reader. */
63243 -unsigned int
63244 -cpp_errors (cpp_reader *pfile)
63245 -{
63246 - return pfile->errors;
63247 -}
63248 -
63249 /* The options structure. */
63250 cpp_options *
63251 cpp_get_options (cpp_reader *pfile)
63252 diff -Nur a/libcpp/errors.c b/libcpp/errors.c
63253 --- a/libcpp/errors.c 2009-04-10 01:23:07.000000000 +0200
63254 +++ b/libcpp/errors.c 2010-01-25 09:50:29.595686516 +0100
63255 @@ -28,171 +28,69 @@
63256 #include "cpplib.h"
63257 #include "internal.h"
63258
63259 -static void print_location (cpp_reader *, source_location, unsigned int);
63260 -
63261 -/* Print the logical file location (LINE, COL) in preparation for a
63262 - diagnostic. Outputs the #include chain if it has changed. A line
63263 - of zero suppresses the include stack, and outputs the program name
63264 - instead. */
63265 -static void
63266 -print_location (cpp_reader *pfile, source_location line, unsigned int col)
63267 -{
63268 - if (line == 0)
63269 - fprintf (stderr, "%s: ", progname);
63270 - else
63271 - {
63272 - const struct line_map *map;
63273 - linenum_type lin;
63274 -
63275 - map = linemap_lookup (pfile->line_table, line);
63276 - linemap_print_containing_files (pfile->line_table, map);
63277 -
63278 - lin = SOURCE_LINE (map, line);
63279 - if (col == 0)
63280 - {
63281 - col = SOURCE_COLUMN (map, line);
63282 - if (col == 0)
63283 - col = 1;
63284 - }
63285 -
63286 - if (lin == 0)
63287 - fprintf (stderr, "%s:", map->to_file);
63288 - else if (CPP_OPTION (pfile, show_column) == 0)
63289 - fprintf (stderr, "%s:%u:", map->to_file, lin);
63290 - else
63291 - fprintf (stderr, "%s:%u:%u:", map->to_file, lin, col);
63292 -
63293 - fputc (' ', stderr);
63294 - }
63295 -}
63296 -
63297 -/* Set up for a diagnostic: print the file and line, bump the error
63298 - counter, etc. SRC_LOC is the logical line number; zero means to print
63299 - at the location of the previously lexed token, which tends to be
63300 - the correct place by default. The column number can be specified either
63301 - using COLUMN or (if COLUMN==0) extracting SOURCE_COLUMN from SRC_LOC.
63302 - (This may seem redundant, but is useful when pre-scanning (cleaning) a line,
63303 - when we haven't yet verified whether the current line_map has a
63304 - big enough max_column_hint.)
63305 -
63306 - Returns 0 if the error has been suppressed. */
63307 -static int
63308 -_cpp_begin_message (cpp_reader *pfile, int code,
63309 - source_location src_loc, unsigned int column)
63310 -{
63311 - int level = CPP_DL_EXTRACT (code);
63312 -
63313 - switch (level)
63314 - {
63315 - case CPP_DL_WARNING:
63316 - case CPP_DL_PEDWARN:
63317 - if (cpp_in_system_header (pfile)
63318 - && ! CPP_OPTION (pfile, warn_system_headers))
63319 - return 0;
63320 - /* Fall through. */
63321 -
63322 - case CPP_DL_WARNING_SYSHDR:
63323 - if (CPP_OPTION (pfile, warnings_are_errors)
63324 - || (level == CPP_DL_PEDWARN && CPP_OPTION (pfile, pedantic_errors)))
63325 - {
63326 - if (CPP_OPTION (pfile, inhibit_errors))
63327 - return 0;
63328 - level = CPP_DL_ERROR;
63329 - pfile->errors++;
63330 - }
63331 - else if (CPP_OPTION (pfile, inhibit_warnings))
63332 - return 0;
63333 - break;
63334 -
63335 - case CPP_DL_ERROR:
63336 - if (CPP_OPTION (pfile, inhibit_errors))
63337 - return 0;
63338 - /* ICEs cannot be inhibited. */
63339 - case CPP_DL_ICE:
63340 - pfile->errors++;
63341 - break;
63342 - }
63343 -
63344 - print_location (pfile, src_loc, column);
63345 - if (CPP_DL_WARNING_P (level))
63346 - fputs (_("warning: "), stderr);
63347 - else if (level == CPP_DL_ICE)
63348 - fputs (_("internal error: "), stderr);
63349 - else
63350 - fputs (_("error: "), stderr);
63351 -
63352 - return 1;
63353 -}
63354 -
63355 -/* Don't remove the blank before do, as otherwise the exgettext
63356 - script will mistake this as a function definition */
63357 -#define v_message(msgid, ap) \
63358 - do { vfprintf (stderr, _(msgid), ap); putc ('\n', stderr); } while (0)
63359 -
63360 -/* Exported interface. */
63361 -
63362 /* Print an error at the location of the previously lexed token. */
63363 -void
63364 +bool
63365 cpp_error (cpp_reader * pfile, int level, const char *msgid, ...)
63366 {
63367 source_location src_loc;
63368 va_list ap;
63369 -
63370 + bool ret;
63371 +
63372 va_start (ap, msgid);
63373
63374 - if (CPP_OPTION (pfile, client_diagnostic))
63375 - pfile->cb.error (pfile, level, _(msgid), &ap);
63376 - else
63377 + if (CPP_OPTION (pfile, traditional))
63378 {
63379 - if (CPP_OPTION (pfile, traditional))
63380 - {
63381 - if (pfile->state.in_directive)
63382 - src_loc = pfile->directive_line;
63383 - else
63384 - src_loc = pfile->line_table->highest_line;
63385 - }
63386 - /* We don't want to refer to a token before the beginning of the
63387 - current run -- that is invalid. */
63388 - else if (pfile->cur_token == pfile->cur_run->base)
63389 - {
63390 - if (pfile->cur_run->prev != NULL)
63391 - src_loc = pfile->cur_run->prev->limit->src_loc;
63392 - else
63393 - src_loc = 0;
63394 - }
63395 + if (pfile->state.in_directive)
63396 + src_loc = pfile->directive_line;
63397 else
63398 - {
63399 - src_loc = pfile->cur_token[-1].src_loc;
63400 - }
63401 -
63402 - if (_cpp_begin_message (pfile, level, src_loc, 0))
63403 - v_message (msgid, ap);
63404 + src_loc = pfile->line_table->highest_line;
63405 + }
63406 + /* We don't want to refer to a token before the beginning of the
63407 + current run -- that is invalid. */
63408 + else if (pfile->cur_token == pfile->cur_run->base)
63409 + {
63410 + if (pfile->cur_run->prev != NULL)
63411 + src_loc = pfile->cur_run->prev->limit->src_loc;
63412 + else
63413 + src_loc = 0;
63414 }
63415 + else
63416 + {
63417 + src_loc = pfile->cur_token[-1].src_loc;
63418 + }
63419 +
63420 + if (!pfile->cb.error)
63421 + abort ();
63422 + ret = pfile->cb.error (pfile, level, src_loc, 0, _(msgid), &ap);
63423
63424 va_end (ap);
63425 + return ret;
63426 }
63427
63428 /* Print an error at a specific location. */
63429 -void
63430 +bool
63431 cpp_error_with_line (cpp_reader *pfile, int level,
63432 source_location src_loc, unsigned int column,
63433 const char *msgid, ...)
63434 {
63435 va_list ap;
63436 + bool ret;
63437
63438 va_start (ap, msgid);
63439
63440 - if (_cpp_begin_message (pfile, level, src_loc, column))
63441 - v_message (msgid, ap);
63442 + if (!pfile->cb.error)
63443 + abort ();
63444 + ret = pfile->cb.error (pfile, level, src_loc, column, _(msgid), &ap);
63445
63446 va_end (ap);
63447 + return ret;
63448 }
63449
63450 -void
63451 +bool
63452 cpp_errno (cpp_reader *pfile, int level, const char *msgid)
63453 {
63454 if (msgid[0] == '\0')
63455 msgid = _("stdout");
63456
63457 - cpp_error (pfile, level, "%s: %s", msgid, xstrerror (errno));
63458 + return cpp_error (pfile, level, "%s: %s", msgid, xstrerror (errno));
63459 }
63460 diff -Nur a/libcpp/files.c b/libcpp/files.c
63461 --- a/libcpp/files.c 2009-04-10 01:23:07.000000000 +0200
63462 +++ b/libcpp/files.c 2010-01-25 09:50:29.605686739 +0100
63463 @@ -488,7 +488,6 @@
63464 return file;
63465 }
63466
63467 - open_file_failed (pfile, file, angle_brackets);
63468 if (invalid_pch)
63469 {
63470 cpp_error (pfile, CPP_DL_ERROR,
63471 @@ -497,6 +496,7 @@
63472 cpp_error (pfile, CPP_DL_ERROR,
63473 "use -Winvalid-pch for more information");
63474 }
63475 + open_file_failed (pfile, file, angle_brackets);
63476 break;
63477 }
63478
63479 @@ -934,15 +934,28 @@
63480
63481 errno = file->err_no;
63482 if (print_dep && CPP_OPTION (pfile, deps.missing_files) && errno == ENOENT)
63483 - deps_add_dep (pfile->deps, file->name);
63484 + {
63485 + deps_add_dep (pfile->deps, file->name);
63486 + /* If the preprocessor output (other than dependency information) is
63487 + being used, we must also flag an error. */
63488 + if (CPP_OPTION (pfile, deps.need_preprocessor_output))
63489 + cpp_errno (pfile, CPP_DL_FATAL, file->path);
63490 + }
63491 else
63492 {
63493 - /* If we are outputting dependencies but not for this file then
63494 - don't error because we can still produce correct output. */
63495 - if (CPP_OPTION (pfile, deps.style) && ! print_dep)
63496 - cpp_errno (pfile, CPP_DL_WARNING, file->path);
63497 + /* If we are not outputting dependencies, or if we are and dependencies
63498 + were requested for this file, or if preprocessor output is needed
63499 + in addition to dependency information, this is an error.
63500 +
63501 + Otherwise (outputting dependencies but not for this file, and not
63502 + using the preprocessor output), we can still produce correct output
63503 + so it's only a warning. */
63504 + if (CPP_OPTION (pfile, deps.style) == DEPS_NONE
63505 + || print_dep
63506 + || CPP_OPTION (pfile, deps.need_preprocessor_output))
63507 + cpp_errno (pfile, CPP_DL_FATAL, file->path);
63508 else
63509 - cpp_errno (pfile, CPP_DL_ERROR, file->path);
63510 + cpp_errno (pfile, CPP_DL_WARNING, file->path);
63511 }
63512 }
63513
63514 diff -Nur a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
63515 --- a/libcpp/include/cpplib.h 2009-04-10 01:23:07.000000000 +0200
63516 +++ b/libcpp/include/cpplib.h 2010-01-25 09:50:29.605686739 +0100
63517 @@ -302,22 +302,9 @@
63518 /* Nonzero means print names of header files (-H). */
63519 unsigned char print_include_names;
63520
63521 - /* Nonzero means cpp_pedwarn causes a hard error. */
63522 - unsigned char pedantic_errors;
63523 -
63524 - /* Nonzero means don't print warning messages. */
63525 - unsigned char inhibit_warnings;
63526 -
63527 /* Nonzero means complain about deprecated features. */
63528 unsigned char warn_deprecated;
63529
63530 - /* Nonzero means don't suppress warnings from system headers. */
63531 - unsigned char warn_system_headers;
63532 -
63533 - /* Nonzero means don't print error messages. Has no option to
63534 - select it, but can be set by a user of cpplib (e.g. fix-header). */
63535 - unsigned char inhibit_errors;
63536 -
63537 /* Nonzero means warn if slash-star appears in a comment. */
63538 unsigned char warn_comments;
63539
63540 @@ -353,9 +340,6 @@
63541 explicitly undefined. */
63542 unsigned char warn_builtin_macro_redefined;
63543
63544 - /* Nonzero means turn warnings into errors. */
63545 - unsigned char warnings_are_errors;
63546 -
63547 /* Nonzero means we should look for header.gcc files that remap file
63548 names. */
63549 unsigned char remap;
63550 @@ -432,6 +416,10 @@
63551
63552 /* If true, no dependency is generated on the main file. */
63553 bool ignore_main_file;
63554 +
63555 + /* If true, intend to use the preprocessor output (e.g., for compilation)
63556 + in addition to the dependency info. */
63557 + bool need_preprocessor_output;
63558 } deps;
63559
63560 /* Target-specific features set by the front end or client. */
63561 @@ -450,9 +438,6 @@
63562 /* Nonzero means __STDC__ should have the value 0 in system headers. */
63563 unsigned char stdc_0_in_system_headers;
63564
63565 - /* True means error callback should be used for diagnostics. */
63566 - bool client_diagnostic;
63567 -
63568 /* True disables tokenization outside of preprocessing directives. */
63569 bool directives_only;
63570 };
63571 @@ -492,10 +477,11 @@
63572 be expanded. */
63573 cpp_hashnode * (*macro_to_expand) (cpp_reader *, const cpp_token *);
63574
63575 - /* Called to emit a diagnostic if client_diagnostic option is true.
63576 - This callback receives the translated message. */
63577 - void (*error) (cpp_reader *, int, const char *, va_list *)
63578 - ATTRIBUTE_FPTR_PRINTF(3,0);
63579 + /* Called to emit a diagnostic. This callback receives the
63580 + translated message. */
63581 + bool (*error) (cpp_reader *, int, source_location, unsigned int,
63582 + const char *, va_list *)
63583 + ATTRIBUTE_FPTR_PRINTF(5,0);
63584
63585 /* Callbacks for when a macro is expanded, or tested (whether
63586 defined or not at the time) in #ifdef, #ifndef or "defined". */
63587 @@ -697,19 +683,13 @@
63588
63589 /* Call this to finish preprocessing. If you requested dependency
63590 generation, pass an open stream to write the information to,
63591 - otherwise NULL. It is your responsibility to close the stream.
63592 -
63593 - Returns cpp_errors (pfile). */
63594 -extern int cpp_finish (cpp_reader *, FILE *deps_stream);
63595 + otherwise NULL. It is your responsibility to close the stream. */
63596 +extern void cpp_finish (cpp_reader *, FILE *deps_stream);
63597
63598 /* Call this to release the handle at the end of preprocessing. Any
63599 - use of the handle after this function returns is invalid. Returns
63600 - cpp_errors (pfile). */
63601 + use of the handle after this function returns is invalid. */
63602 extern void cpp_destroy (cpp_reader *);
63603
63604 -/* Error count. */
63605 -extern unsigned int cpp_errors (cpp_reader *);
63606 -
63607 extern unsigned int cpp_token_len (const cpp_token *);
63608 extern unsigned char *cpp_token_as_text (cpp_reader *, const cpp_token *);
63609 extern unsigned char *cpp_spell_token (cpp_reader *, const cpp_token *,
63610 @@ -835,24 +815,23 @@
63611 /* An internal consistency check failed. Prints "internal error: ",
63612 otherwise the same as CPP_DL_ERROR. */
63613 #define CPP_DL_ICE 0x04
63614 -/* Extracts a diagnostic level from an int. */
63615 -#define CPP_DL_EXTRACT(l) (l & 0xf)
63616 -/* Nonzero if a diagnostic level is one of the warnings. */
63617 -#define CPP_DL_WARNING_P(l) (CPP_DL_EXTRACT (l) >= CPP_DL_WARNING \
63618 - && CPP_DL_EXTRACT (l) <= CPP_DL_PEDWARN)
63619 +/* An informative note following a warning. */
63620 +#define CPP_DL_NOTE 0x05
63621 +/* A fatal error. */
63622 +#define CPP_DL_FATAL 0x06
63623
63624 /* Output a diagnostic of some kind. */
63625 -extern void cpp_error (cpp_reader *, int, const char *msgid, ...)
63626 +extern bool cpp_error (cpp_reader *, int, const char *msgid, ...)
63627 ATTRIBUTE_PRINTF_3;
63628
63629 /* Output a diagnostic with "MSGID: " preceding the
63630 error string of errno. No location is printed. */
63631 -extern void cpp_errno (cpp_reader *, int, const char *msgid);
63632 +extern bool cpp_errno (cpp_reader *, int, const char *msgid);
63633
63634 /* Same as cpp_error, except additionally specifies a position as a
63635 (translation unit) physical line and physical column. If the line is
63636 zero, then no location is printed. */
63637 -extern void cpp_error_with_line (cpp_reader *, int, source_location, unsigned,
63638 +extern bool cpp_error_with_line (cpp_reader *, int, source_location, unsigned,
63639 const char *msgid, ...) ATTRIBUTE_PRINTF_5;
63640
63641 /* In lex.c */
63642 diff -Nur a/libcpp/include/line-map.h b/libcpp/include/line-map.h
63643 --- a/libcpp/include/line-map.h 2009-04-10 01:23:07.000000000 +0200
63644 +++ b/libcpp/include/line-map.h 2010-01-25 09:50:29.605686739 +0100
63645 @@ -144,12 +144,6 @@
63646 extern const struct line_map *linemap_lookup
63647 (struct line_maps *, source_location);
63648
63649 -/* Print the file names and line numbers of the #include commands
63650 - which led to the map MAP, if any, to stderr. Nothing is output if
63651 - the most recently listed stack is the same as the current one. */
63652 -extern void linemap_print_containing_files (struct line_maps *,
63653 - const struct line_map *);
63654 -
63655 /* Converts a map and a source_location to source line. */
63656 #define SOURCE_LINE(MAP, LOC) \
63657 ((((LOC) - (MAP)->start_location) >> (MAP)->column_bits) + (MAP)->to_line)
63658 diff -Nur a/libcpp/init.c b/libcpp/init.c
63659 --- a/libcpp/init.c 2009-04-10 01:23:07.000000000 +0200
63660 +++ b/libcpp/init.c 2010-01-25 09:50:29.605686739 +0100
63661 @@ -616,12 +616,11 @@
63662 }
63663
63664 /* This is called at the end of preprocessing. It pops the last
63665 - buffer and writes dependency output, and returns the number of
63666 - errors.
63667 + buffer and writes dependency output.
63668
63669 Maybe it should also reset state, such that you could call
63670 cpp_start_read with a new filename to restart processing. */
63671 -int
63672 +void
63673 cpp_finish (cpp_reader *pfile, FILE *deps_stream)
63674 {
63675 /* Warn about unused macros before popping the final buffer. */
63676 @@ -636,9 +635,8 @@
63677 while (pfile->buffer)
63678 _cpp_pop_buffer (pfile);
63679
63680 - /* Don't write the deps file if there are errors. */
63681 if (CPP_OPTION (pfile, deps.style) != DEPS_NONE
63682 - && deps_stream && pfile->errors == 0)
63683 + && deps_stream)
63684 {
63685 deps_write (pfile->deps, deps_stream, 72);
63686
63687 @@ -649,8 +647,6 @@
63688 /* Report on headers that could use multiple include guards. */
63689 if (CPP_OPTION (pfile, print_include_names))
63690 _cpp_report_missing_guards (pfile);
63691 -
63692 - return pfile->errors;
63693 }
63694
63695 static void
63696 diff -Nur a/libcpp/internal.h b/libcpp/internal.h
63697 --- a/libcpp/internal.h 2009-04-10 01:23:07.000000000 +0200
63698 +++ b/libcpp/internal.h 2010-01-25 09:50:29.605686739 +0100
63699 @@ -388,9 +388,6 @@
63700 /* Nonzero prevents the lexer from re-using the token runs. */
63701 unsigned int keep_tokens;
63702
63703 - /* Error counter for exit code. */
63704 - unsigned int errors;
63705 -
63706 /* Buffer to hold macro definition string. */
63707 unsigned char *macro_buffer;
63708 unsigned int macro_buffer_len;
63709 diff -Nur a/libcpp/line-map.c b/libcpp/line-map.c
63710 --- a/libcpp/line-map.c 2009-04-10 01:23:07.000000000 +0200
63711 +++ b/libcpp/line-map.c 2010-01-25 09:50:29.605686739 +0100
63712 @@ -302,45 +302,6 @@
63713 return &set->maps[mn];
63714 }
63715
63716 -/* Print the file names and line numbers of the #include commands
63717 - which led to the map MAP, if any, to stderr. Nothing is output if
63718 - the most recently listed stack is the same as the current one. */
63719 -
63720 -void
63721 -linemap_print_containing_files (struct line_maps *set,
63722 - const struct line_map *map)
63723 -{
63724 - if (MAIN_FILE_P (map) || set->last_listed == map->included_from)
63725 - return;
63726 -
63727 - set->last_listed = map->included_from;
63728 - map = INCLUDED_FROM (set, map);
63729 -
63730 - fprintf (stderr, _("In file included from %s:%u"),
63731 - map->to_file, LAST_SOURCE_LINE (map));
63732 -
63733 - while (! MAIN_FILE_P (map))
63734 - {
63735 - map = INCLUDED_FROM (set, map);
63736 - /* Translators note: this message is used in conjunction
63737 - with "In file included from %s:%ld" and some other
63738 - tricks. We want something like this:
63739 -
63740 - | In file included from sys/select.h:123,
63741 - | from sys/types.h:234,
63742 - | from userfile.c:31:
63743 - | bits/select.h:45: <error message here>
63744 -
63745 - with all the "from"s lined up.
63746 - The trailing comma is at the beginning of this message,
63747 - and the trailing colon is not translated. */
63748 - fprintf (stderr, _(",\n from %s:%u"),
63749 - map->to_file, LAST_SOURCE_LINE (map));
63750 - }
63751 -
63752 - fputs (":\n", stderr);
63753 -}
63754 -
63755 /* Print an include trace, for e.g. the -H option of the preprocessor. */
63756
63757 static void
63758 diff -Nur a/libcpp/macro.c b/libcpp/macro.c
63759 --- a/libcpp/macro.c 2009-04-10 01:23:07.000000000 +0200
63760 +++ b/libcpp/macro.c 2010-01-25 09:50:29.605686739 +0100
63761 @@ -1833,11 +1833,13 @@
63762
63763 if (warn_of_redefinition (pfile, node, macro))
63764 {
63765 - cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->directive_line, 0,
63766 - "\"%s\" redefined", NODE_NAME (node));
63767 + bool warned;
63768 + warned = cpp_error_with_line (pfile, CPP_DL_PEDWARN,
63769 + pfile->directive_line, 0,
63770 + "\"%s\" redefined", NODE_NAME (node));
63771
63772 - if (node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
63773 - cpp_error_with_line (pfile, CPP_DL_PEDWARN,
63774 + if (warned && node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
63775 + cpp_error_with_line (pfile, CPP_DL_NOTE,
63776 node->value.macro->line, 0,
63777 "this is the location of the previous definition");
63778 }
63779 diff -Nur a/libcpp/makedepend.c b/libcpp/makedepend.c
63780 --- a/libcpp/makedepend.c 2005-06-29 04:34:39.000000000 +0200
63781 +++ b/libcpp/makedepend.c 2010-01-25 09:50:29.605686739 +0100
63782 @@ -1,206 +0,0 @@
63783 -/* Dependency generator utility.
63784 - Copyright (C) 2004 Free Software Foundation, Inc.
63785 - Contributed by Zack Weinberg, May 2004
63786 -
63787 -This program is free software; you can redistribute it and/or modify it
63788 -under the terms of the GNU General Public License as published by the
63789 -Free Software Foundation; either version 2, or (at your option) any
63790 -later version.
63791 -
63792 -This program is distributed in the hope that it will be useful,
63793 -but WITHOUT ANY WARRANTY; without even the implied warranty of
63794 -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
63795 -GNU General Public License for more details.
63796 -
63797 -You should have received a copy of the GNU General Public License
63798 -along with this program; if not, write to the Free Software
63799 -Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
63800 -
63801 - In other words, you are welcome to use, share and improve this program.
63802 - You are forbidden to forbid anyone else to use, share and improve
63803 - what you give them. Help stamp out software-hoarding! */
63804 -
63805 -#include "config.h"
63806 -#include "system.h"
63807 -#include "line-map.h"
63808 -#include "cpplib.h"
63809 -#include "getopt.h"
63810 -#include "mkdeps.h"
63811 -
63812 -const char *progname;
63813 -const char *vpath;
63814 -
63815 -static const char *output_file;
63816 -static bool had_errors;
63817 -
63818 -/* Option lists, to give to cpplib before each input file. */
63819 -struct cmd_line_macro
63820 -{
63821 - struct cmd_line_macro *next;
63822 - bool is_undef;
63823 - const char *macro;
63824 -};
63825 -
63826 -static struct cmd_line_macro *cmd_line_macros;
63827 -static cpp_dir *cmd_line_searchpath;
63828 -
63829 -static void
63830 -add_clm (const char *macro, bool is_undef)
63831 -{
63832 - struct cmd_line_macro *clm = XNEW (struct cmd_line_macro);
63833 - clm->next = cmd_line_macros;
63834 - clm->is_undef = is_undef;
63835 - clm->macro = macro;
63836 - cmd_line_macros = clm;
63837 -}
63838 -
63839 -static void
63840 -add_dir (char *name, bool sysp)
63841 -{
63842 - cpp_dir *dir = XNEW (cpp_dir);
63843 - dir->next = cmd_line_searchpath;
63844 - dir->name = name;
63845 - dir->sysp = sysp;
63846 - dir->construct = 0;
63847 - dir->user_supplied_p = 1;
63848 - cmd_line_searchpath = dir;
63849 -}
63850 -
63851 -/* Command line processing. */
63852 -
63853 -static void ATTRIBUTE_NORETURN
63854 -usage (int errcode)
63855 -{
63856 - fprintf (stderr,
63857 -"usage: %s [-vh] [-V vpath] [-Dname[=def]...] [-Uname] [-Idir...] [-o file] sources...\n",
63858 - progname);
63859 - exit (errcode);
63860 -}
63861 -
63862 -static int
63863 -parse_options (int argc, char **argv)
63864 -{
63865 - static const struct option longopts[] = {
63866 - { "--help", no_argument, 0, 'h' },
63867 - { 0, 0, 0, 0 }
63868 - };
63869 -
63870 - for (;;)
63871 - switch (getopt_long (argc, argv, "hD:U:I:J:o:V:", longopts, 0))
63872 - {
63873 - case 'h': usage (0);
63874 - case 'D': add_clm (optarg, false); break;
63875 - case 'U': add_clm (optarg, true); break;
63876 - case 'I': add_dir (optarg, false); break;
63877 - case 'J': add_dir (optarg, true); break;
63878 - case 'o':
63879 - if (output_file)
63880 - {
63881 - fprintf (stderr, "%s: too many output files\n", progname);
63882 - usage (2);
63883 - }
63884 - output_file = optarg;
63885 - break;
63886 - case 'V':
63887 - if (vpath)
63888 - {
63889 - fprintf (stderr, "%s: too many vpaths\n", progname);
63890 - usage (2);
63891 - }
63892 - vpath = optarg;
63893 - break;
63894 - case '?':
63895 - usage (2); /* getopt has issued the error message. */
63896 -
63897 - case -1: /* end of options */
63898 - if (optind == argc)
63899 - {
63900 - fprintf (stderr, "%s: no input files\n", progname);
63901 - usage (2);
63902 - }
63903 - return optind;
63904 -
63905 - default:
63906 - abort ();
63907 - }
63908 -}
63909 -
63910 -/* Set up cpplib from command line options. */
63911 -static cpp_reader *
63912 -reader_init (struct line_maps *line_table)
63913 -{
63914 - cpp_reader *reader;
63915 - cpp_options *options;
63916 -
63917 - linemap_init (line_table);
63918 - reader = cpp_create_reader (CLK_GNUC89, 0, line_table);
63919 -
63920 - /* Ignore warnings and errors (we don't have access to system
63921 - headers). Request dependency output. */
63922 - options = cpp_get_options (reader);
63923 - options->inhibit_warnings = 1;
63924 - options->inhibit_errors = 1;
63925 - options->deps.style = DEPS_USER;
63926 -
63927 - /* Further initialization. */
63928 - cpp_post_options (reader);
63929 - cpp_init_iconv (reader);
63930 - cpp_set_include_chains (reader, cmd_line_searchpath, cmd_line_searchpath,
63931 - false);
63932 - if (vpath)
63933 - {
63934 - struct deps *deps = cpp_get_deps (reader);
63935 - deps_add_vpath (deps, vpath);
63936 - }
63937 -
63938 - return reader;
63939 -}
63940 -
63941 -/* Process one input source file. */
63942 -static void
63943 -process_file (const char *file)
63944 -{
63945 - struct line_maps line_table;
63946 - cpp_reader *reader = reader_init (&line_table);
63947 -
63948 - if (!cpp_read_main_file (reader, file))
63949 - had_errors = true;
63950 - else
63951 - {
63952 - struct cmd_line_macro *clm;
63953 -
63954 - cpp_init_builtins (reader, true);
63955 - for (clm = cmd_line_macros; clm; clm = clm->next)
63956 - (clm->is_undef ? cpp_undef : cpp_define) (reader, clm->macro);
63957 -
63958 - cpp_scan_nooutput (reader);
63959 - if (cpp_finish (reader, stdout))
63960 - had_errors = true;
63961 - }
63962 - cpp_destroy (reader);
63963 - linemap_free (&line_table);
63964 -}
63965 -
63966 -/* Master control. */
63967 -
63968 -int
63969 -main(int argc, char **argv)
63970 -{
63971 - int first_input, i;
63972 -
63973 - progname = argv[0];
63974 - xmalloc_set_program_name (progname);
63975 -
63976 - first_input = parse_options (argc, argv);
63977 - if (output_file)
63978 - if (!freopen (output_file, "w", stdout))
63979 - {
63980 - perror (output_file);
63981 - return 1;
63982 - }
63983 -
63984 - for (i = first_input; i < argc; i++)
63985 - process_file (argv[i]);
63986 -
63987 - return had_errors;
63988 -}
63989 diff -Nur a/libcpp/Makefile.in b/libcpp/Makefile.in
63990 --- a/libcpp/Makefile.in 2009-07-22 09:43:59.000000000 +0200
63991 +++ b/libcpp/Makefile.in 2010-01-25 09:50:29.605686739 +0100
63992 @@ -72,13 +72,12 @@
63993 libcpp_a_OBJS = charset.o directives.o directives-only.o errors.o \
63994 expr.o files.o identifiers.o init.o lex.o line-map.o macro.o \
63995 mkdeps.o pch.o symtab.o traditional.o
63996 -makedepend_OBJS = makedepend.o
63997
63998 libcpp_a_SOURCES = charset.c directives.c directives-only.c errors.c \
63999 expr.c files.c identifiers.c init.c lex.c line-map.c macro.c \
64000 mkdeps.c pch.c symtab.c traditional.c
64001
64002 -all: libcpp.a makedepend$(EXEEXT) $(USED_CATALOGS)
64003 +all: libcpp.a $(USED_CATALOGS)
64004
64005 .SUFFIXES:
64006 .SUFFIXES: .c .gmo .o .obj .po .pox
64007 @@ -88,12 +87,6 @@
64008 $(AR) $(ARFLAGS) libcpp.a $(libcpp_a_OBJS)
64009 $(RANLIB) libcpp.a
64010
64011 -makedepend$(EXEEXT): $(makedepend_OBJS) libcpp.a ../libiberty/libiberty.a
64012 - @rm -f makedepend$(EXEEXT)
64013 - $(CC) $(CFLAGS) $(LDFLAGS) -o makedepend$(EXEEXT) \
64014 - $(makedepend_OBJS) libcpp.a ../libiberty/libiberty.a \
64015 - $(LIBINTL) $(LIBICONV)
64016 -
64017 # Rules to rebuild the configuration
64018
64019 Makefile: $(srcdir)/Makefile.in config.status
64020 @@ -165,7 +158,7 @@
64021 -rm -f *.o
64022
64023 clean: mostlyclean
64024 - -rm -rf makedepend$(EXEEXT) libcpp.a $(srcdir)/autom4te.cache
64025 + -rm -rf libcpp.a $(srcdir)/autom4te.cache
64026
64027 distclean: clean
64028 -rm -f config.h stamp-h1 config.status config.cache config.log \
64029 @@ -247,7 +240,7 @@
64030 sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot
64031 rm po/$(PACKAGE).pot.tmp
64032
64033 -TAGS_SOURCES = $(libcpp_a_SOURCES) makedepend.c internal.h ucnid.h \
64034 +TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h ucnid.h \
64035 include/line-map.h include/symtab.h include/cpp-id-data.h \
64036 include/cpplib.h include/mkdeps.h system.h
64037
64038 @@ -259,7 +252,7 @@
64039 .NOEXPORT:
64040
64041 # Dependencies
64042 --include $(patsubst %.o, $(DEPDIR)/%.Po, $(libcpp_a_OBJS) $(makedepend_OBJS))
64043 +-include $(patsubst %.o, $(DEPDIR)/%.Po, $(libcpp_a_OBJS))
64044
64045 # Dependencies on generated headers have to be explicit.
64046 init.o: localedir.h
64047 diff -Nur a/libgcc/config/arm/t-divmod-ef b/libgcc/config/arm/t-divmod-ef
64048 --- a/libgcc/config/arm/t-divmod-ef 1970-01-01 01:00:00.000000000 +0100
64049 +++ b/libgcc/config/arm/t-divmod-ef 2010-01-25 09:50:29.605686739 +0100
64050 @@ -0,0 +1,4 @@
64051 +# On ARM, specifying -fnon-call-exceptions will needlessly pull in
64052 +# the unwinder in simple programs which use 64-bit division. Omitting
64053 +# the option is safe.
64054 +LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions
64055 diff -Nur a/libgcc/config/mips/t-crtfm b/libgcc/config/mips/t-crtfm
64056 --- a/libgcc/config/mips/t-crtfm 1970-01-01 01:00:00.000000000 +0100
64057 +++ b/libgcc/config/mips/t-crtfm 2010-01-25 09:50:29.605686739 +0100
64058 @@ -0,0 +1,3 @@
64059 +crtfastmath.o: $(gcc_srcdir)/config/mips/crtfastmath.c
64060 + $(gcc_compile) -c $(gcc_srcdir)/config/mips/crtfastmath.c
64061 +
64062 diff -Nur a/libgcc/config/rs6000/t-ppccomm b/libgcc/config/rs6000/t-ppccomm
64063 --- a/libgcc/config/rs6000/t-ppccomm 2008-06-26 16:15:49.000000000 +0200
64064 +++ b/libgcc/config/rs6000/t-ppccomm 2010-01-25 09:50:29.605686739 +0100
64065 @@ -101,3 +101,63 @@
64066
64067 ncrtn$(objext): ncrtn.S
64068 $(crt_compile) -c ncrtn.S
64069 +
64070 +crtsavres$(objext): crtsavres.S
64071 + $(crt_compile) -c crtsavres.S
64072 +
64073 +crtsavfpr$(objext): crtsavfpr.S
64074 + $(crt_compile) -c crtsavfpr.S
64075 +
64076 +crtresfpr$(objext): crtresfpr.S
64077 + $(crt_compile) -c crtresfpr.S
64078 +
64079 +crtsavgpr$(objext): crtsavgpr.S
64080 + $(crt_compile) -c crtsavgpr.S
64081 +
64082 +crtresgpr$(objext): crtresgpr.S
64083 + $(crt_compile) -c crtresgpr.S
64084 +
64085 +crtresxfpr$(objext): crtresxfpr.S
64086 + $(crt_compile) -c crtresxfpr.S
64087 +
64088 +crtresxgpr$(objext): crtresxgpr.S
64089 + $(crt_compile) -c crtresxgpr.S
64090 +
64091 +e500crtres32gpr$(objext): e500crtres32gpr.S
64092 + $(crt_compile) -c e500crtres32gpr.S
64093 +
64094 +e500crtres64gpr$(objext): e500crtres64gpr.S
64095 + $(crt_compile) -c e500crtres64gpr.S
64096 +
64097 +e500crtres64gprctr$(objext): e500crtres64gprctr.S
64098 + $(crt_compile) -c e500crtres64gprctr.S
64099 +
64100 +e500crtrest32gpr$(objext): e500crtrest32gpr.S
64101 + $(crt_compile) -c e500crtrest32gpr.S
64102 +
64103 +e500crtrest64gpr$(objext): e500crtrest64gpr.S
64104 + $(crt_compile) -c e500crtrest64gpr.S
64105 +
64106 +e500crtresx32gpr$(objext): e500crtresx32gpr.S
64107 + $(crt_compile) -c e500crtresx32gpr.S
64108 +
64109 +e500crtresx64gpr$(objext): e500crtresx64gpr.S
64110 + $(crt_compile) -c e500crtresx64gpr.S
64111 +
64112 +e500crtsav32gpr$(objext): e500crtsav32gpr.S
64113 + $(crt_compile) -c e500crtsav32gpr.S
64114 +
64115 +e500crtsav64gpr$(objext): e500crtsav64gpr.S
64116 + $(crt_compile) -c e500crtsav64gpr.S
64117 +
64118 +e500crtsav64gprctr$(objext): e500crtsav64gprctr.S
64119 + $(crt_compile) -c e500crtsav64gprctr.S
64120 +
64121 +e500crtsavg32gpr$(objext): e500crtsavg32gpr.S
64122 + $(crt_compile) -c e500crtsavg32gpr.S
64123 +
64124 +e500crtsavg64gpr$(objext): e500crtsavg64gpr.S
64125 + $(crt_compile) -c e500crtsavg64gpr.S
64126 +
64127 +e500crtsavg64gprctr$(objext): e500crtsavg64gprctr.S
64128 + $(crt_compile) -c e500crtsavg64gprctr.S
64129 diff -Nur a/libgcc/config.host b/libgcc/config.host
64130 --- a/libgcc/config.host 2009-04-17 13:58:41.000000000 +0200
64131 +++ b/libgcc/config.host 2010-01-25 09:50:29.605686739 +0100
64132 @@ -203,12 +203,15 @@
64133 arm*-*-netbsd*)
64134 ;;
64135 arm*-*-linux*) # ARM GNU/Linux with ELF
64136 + tmake_file="${tmake_file} arm/t-divmod-ef"
64137 ;;
64138 arm*-*-uclinux*) # ARM ucLinux
64139 + tmake_file="${tmake_file} arm/t-divmod-ef"
64140 ;;
64141 arm*-*-ecos-elf)
64142 ;;
64143 arm*-*-eabi* | arm*-*-symbianelf* )
64144 + tmake_file="${tmake_file} arm/t-divmod-ef"
64145 ;;
64146 arm*-*-rtems*)
64147 ;;
64148 @@ -394,8 +397,12 @@
64149 mips*-*-netbsd*) # NetBSD/mips, either endian.
64150 ;;
64151 mips64*-*-linux*)
64152 + extra_parts="$extra_parts crtfastmath.o"
64153 + tmake_file="{$tmake_file} mips/t-crtfm"
64154 ;;
64155 mips*-*-linux*) # Linux MIPS, either endian.
64156 + extra_parts="$extra_parts crtfastmath.o"
64157 + tmake_file="{$tmake_file} mips/t-crtfm"
64158 ;;
64159 mips*-*-openbsd*)
64160 ;;
64161 @@ -419,6 +426,10 @@
64162 ;;
64163 mips64orion-*-elf* | mips64orionel-*-elf*)
64164 ;;
64165 +mips64octeon-wrs-elf* | mips64octeonel-wrs-elf*)
64166 + ;;
64167 +mips64octeon-montavista-elf*)
64168 + ;;
64169 mips*-*-rtems*)
64170 ;;
64171 mips-wrs-vxworks)
64172 diff -Nur a/libgcc/Makefile.in b/libgcc/Makefile.in
64173 --- a/libgcc/Makefile.in 2009-04-10 01:23:07.000000000 +0200
64174 +++ b/libgcc/Makefile.in 2010-01-25 09:50:29.605686739 +0100
64175 @@ -389,18 +389,24 @@
64176 endif
64177 endif
64178
64179 +ifeq ($(LIB2_DIVMOD_EXCEPTION_FLAGS),)
64180 +# Provide default flags for compiling divmod functions, if they haven't been
64181 +# set already by a target-specific Makefile fragment.
64182 +LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -fnon-call-exceptions
64183 +endif
64184 +
64185 # Build LIB2_DIVMOD_FUNCS.
64186 lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS))
64187 $(lib2-divmod-o): %$(objext): $(gcc_srcdir)/libgcc2.c
64188 $(gcc_compile) -DL$* -c $(gcc_srcdir)/libgcc2.c \
64189 - -fexceptions -fnon-call-exceptions $(vis_hide)
64190 + $(LIB2_DIVMOD_EXCEPTION_FLAGS) $(vis_hide)
64191 libgcc-objects += $(lib2-divmod-o)
64192
64193 ifeq ($(enable_shared),yes)
64194 lib2-divmod-s-o = $(patsubst %,%_s$(objext),$(LIB2_DIVMOD_FUNCS))
64195 $(lib2-divmod-s-o): %_s$(objext): $(gcc_srcdir)/libgcc2.c
64196 $(gcc_s_compile) -DL$* -c $(gcc_srcdir)/libgcc2.c \
64197 - -fexceptions -fnon-call-exceptions
64198 + $(LIB2_DIVMOD_EXCEPTION_FLAGS)
64199 libgcc-s-objects += $(lib2-divmod-s-o)
64200 endif
64201
64202 diff -Nur a/libgcc/shared-object.mk b/libgcc/shared-object.mk
64203 --- a/libgcc/shared-object.mk 2008-07-03 21:22:00.000000000 +0200
64204 +++ b/libgcc/shared-object.mk 2010-01-25 09:50:29.605686739 +0100
64205 @@ -8,11 +8,13 @@
64206
64207 ifeq ($(suffix $o),.c)
64208
64209 +c_flags-$(base)$(objext) := $(c_flags)
64210 $(base)$(objext): $o
64211 - $(gcc_compile) $(c_flags) -c $< $(vis_hide)
64212 + $(gcc_compile) $(c_flags-$@) -c $< $(vis_hide)
64213
64214 +c_flags-$(base)_s$(objext) := $(c_flags)
64215 $(base)_s$(objext): $o
64216 - $(gcc_s_compile) $(c_flags) -c $<
64217 + $(gcc_s_compile) $(c_flags-$@) -c $<
64218
64219 else
64220
64221 diff -Nur a/libgcc/static-object.mk b/libgcc/static-object.mk
64222 --- a/libgcc/static-object.mk 2007-01-04 05:22:37.000000000 +0100
64223 +++ b/libgcc/static-object.mk 2010-01-25 09:50:29.605686739 +0100
64224 @@ -8,8 +8,9 @@
64225
64226 ifeq ($(suffix $o),.c)
64227
64228 +c_flags-$(base)$(objext) := $(c_flags)
64229 $(base)$(objext): $o
64230 - $(gcc_compile) $(c_flags) -c $< $(vis_hide)
64231 + $(gcc_compile) $(c_flags-$@) -c $< $(vis_hide)
64232
64233 else
64234
64235 diff -Nur a/libgomp/configure b/libgomp/configure
64236 --- a/libgomp/configure 2009-07-22 09:43:59.000000000 +0200
64237 +++ b/libgomp/configure 2010-01-25 09:50:29.605686739 +0100
64238 @@ -457,7 +457,7 @@
64239 # include <unistd.h>
64240 #endif"
64241
64242 -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS GENINSRC_TRUE GENINSRC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar multi_basedir toolexecdir toolexeclibdir CC ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CFLAGS AR ac_ct_AR RANLIB ac_ct_RANLIB PERL BUILD_INFO_TRUE BUILD_INFO_FALSE LIBTOOL SED EGREP FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM LN_S OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS enable_shared enable_static MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT FC FCFLAGS LDFLAGS ac_ct_FC libtool_VERSION SECTION_LDFLAGS OPT_LDFLAGS LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE LIBGOMP_BUILD_VERSIONED_SHLIB_FALSE config_path XCFLAGS XLDFLAGS link_gomp USE_FORTRAN_TRUE USE_FORTRAN_FALSE OMP_LOCK_SIZE OMP_LOCK_ALIGN OMP_NEST_LOCK_SIZE OMP_NEST_LOCK_ALIGN OMP_LOCK_KIND OMP_NEST_LOCK_KIND OMP_LOCK_25_SIZE OMP_LOCK_25_ALIGN OMP_NEST_LOCK_25_SIZE OMP_NEST_LOCK_25_ALIGN OMP_LOCK_25_KIND OMP_NEST_LOCK_25_KIND LIBOBJS LTLIBOBJS'
64243 +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS GENINSRC_TRUE GENINSRC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar multi_basedir toolexecdir toolexeclibdir datarootdir docdir pdfdir htmldir CC ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CFLAGS AR ac_ct_AR RANLIB ac_ct_RANLIB PERL BUILD_INFO_TRUE BUILD_INFO_FALSE LIBTOOL SED EGREP FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM LN_S OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS enable_shared enable_static MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT FC FCFLAGS LDFLAGS ac_ct_FC libtool_VERSION SECTION_LDFLAGS OPT_LDFLAGS LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE LIBGOMP_BUILD_VERSIONED_SHLIB_FALSE config_path XCFLAGS XLDFLAGS link_gomp USE_FORTRAN_TRUE USE_FORTRAN_FALSE OMP_LOCK_SIZE OMP_LOCK_ALIGN OMP_NEST_LOCK_SIZE OMP_NEST_LOCK_ALIGN OMP_LOCK_KIND OMP_NEST_LOCK_KIND OMP_LOCK_25_SIZE OMP_LOCK_25_ALIGN OMP_NEST_LOCK_25_SIZE OMP_NEST_LOCK_25_ALIGN OMP_LOCK_25_KIND OMP_NEST_LOCK_25_KIND LIBOBJS LTLIBOBJS'
64244 ac_subst_files=''
64245 ac_pwd=`pwd`
64246
64247 @@ -1029,6 +1029,10 @@
64248 Optional Packages:
64249 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
64250 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
64251 + --with-datarootdir=DIR Use DIR as the data root [PREFIX/share]
64252 + --with-docdir=DIR Install documentation in DIR [DATAROOTDIR]
64253 + --with-pdfdir install pdf in this directory.
64254 + --with-htmldir=DIR html documentation in in DIR [DOCDIR]
64255 --with-pic try to use only PIC/non-PIC objects [default=use
64256 both]
64257 --with-gnu-ld assume the C compiler uses GNU ld [default=no]
64258 @@ -2201,6 +2205,46 @@
64259
64260
64261
64262 +
64263 +# Check whether --with-datarootdir or --without-datarootdir was given.
64264 +if test "${with_datarootdir+set}" = set; then
64265 + withval="$with_datarootdir"
64266 + datarootdir="\${prefix}/$with_datarootdir"
64267 +else
64268 + datarootdir='$(prefix)/share'
64269 +fi;
64270 +
64271 +
64272 +
64273 +# Check whether --with-docdir or --without-docdir was given.
64274 +if test "${with_docdir+set}" = set; then
64275 + withval="$with_docdir"
64276 + docdir="\${prefix}/$with_docdir"
64277 +else
64278 + docdir='$(datarootdir)'
64279 +fi;
64280 +
64281 +
64282 +
64283 +# Check whether --with-pdfdir or --without-pdfdir was given.
64284 +if test "${with_pdfdir+set}" = set; then
64285 + withval="$with_pdfdir"
64286 + pdfdir="\${prefix}/${withval}"
64287 +else
64288 + pdfdir="\${docdir}"
64289 +fi;
64290 +
64291 +
64292 +
64293 +# Check whether --with-htmldir or --without-htmldir was given.
64294 +if test "${with_htmldir+set}" = set; then
64295 + withval="$with_htmldir"
64296 + htmldir="\${prefix}/$with_htmldir"
64297 +else
64298 + htmldir='$(docdir)'
64299 +fi;
64300 +
64301 +
64302 # Check the compiler.
64303 # The same as in boehm-gc and libstdc++. Have to borrow it from there.
64304 # We must force CC to /not/ be precious variables; otherwise
64305 @@ -4156,13 +4200,13 @@
64306 else
64307 lt_cv_nm_interface="BSD nm"
64308 echo "int some_variable = 0;" > conftest.$ac_ext
64309 - (eval echo "\"\$as_me:4159: $ac_compile\"" >&5)
64310 + (eval echo "\"\$as_me:4203: $ac_compile\"" >&5)
64311 (eval "$ac_compile" 2>conftest.err)
64312 cat conftest.err >&5
64313 - (eval echo "\"\$as_me:4162: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
64314 + (eval echo "\"\$as_me:4206: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
64315 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
64316 cat conftest.err >&5
64317 - (eval echo "\"\$as_me:4165: output\"" >&5)
64318 + (eval echo "\"\$as_me:4209: output\"" >&5)
64319 cat conftest.out >&5
64320 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
64321 lt_cv_nm_interface="MS dumpbin"
64322 @@ -5320,7 +5364,7 @@
64323 ;;
64324 *-*-irix6*)
64325 # Find out which ABI we are using.
64326 - echo '#line 5323 "configure"' > conftest.$ac_ext
64327 + echo '#line 5367 "configure"' > conftest.$ac_ext
64328 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
64329 (eval $ac_compile) 2>&5
64330 ac_status=$?
64331 @@ -7101,11 +7145,11 @@
64332 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
64333 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
64334 -e 's:$: $lt_compiler_flag:'`
64335 - (eval echo "\"\$as_me:7104: $lt_compile\"" >&5)
64336 + (eval echo "\"\$as_me:7148: $lt_compile\"" >&5)
64337 (eval "$lt_compile" 2>conftest.err)
64338 ac_status=$?
64339 cat conftest.err >&5
64340 - echo "$as_me:7108: \$? = $ac_status" >&5
64341 + echo "$as_me:7152: \$? = $ac_status" >&5
64342 if (exit $ac_status) && test -s "$ac_outfile"; then
64343 # The compiler can only warn and ignore the option if not recognized
64344 # So say no if there are warnings other than the usual output.
64345 @@ -7440,11 +7484,11 @@
64346 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
64347 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
64348 -e 's:$: $lt_compiler_flag:'`
64349 - (eval echo "\"\$as_me:7443: $lt_compile\"" >&5)
64350 + (eval echo "\"\$as_me:7487: $lt_compile\"" >&5)
64351 (eval "$lt_compile" 2>conftest.err)
64352 ac_status=$?
64353 cat conftest.err >&5
64354 - echo "$as_me:7447: \$? = $ac_status" >&5
64355 + echo "$as_me:7491: \$? = $ac_status" >&5
64356 if (exit $ac_status) && test -s "$ac_outfile"; then
64357 # The compiler can only warn and ignore the option if not recognized
64358 # So say no if there are warnings other than the usual output.
64359 @@ -7545,11 +7589,11 @@
64360 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
64361 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
64362 -e 's:$: $lt_compiler_flag:'`
64363 - (eval echo "\"\$as_me:7548: $lt_compile\"" >&5)
64364 + (eval echo "\"\$as_me:7592: $lt_compile\"" >&5)
64365 (eval "$lt_compile" 2>out/conftest.err)
64366 ac_status=$?
64367 cat out/conftest.err >&5
64368 - echo "$as_me:7552: \$? = $ac_status" >&5
64369 + echo "$as_me:7596: \$? = $ac_status" >&5
64370 if (exit $ac_status) && test -s out/conftest2.$ac_objext
64371 then
64372 # The compiler can only warn and ignore the option if not recognized
64373 @@ -7600,11 +7644,11 @@
64374 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
64375 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
64376 -e 's:$: $lt_compiler_flag:'`
64377 - (eval echo "\"\$as_me:7603: $lt_compile\"" >&5)
64378 + (eval echo "\"\$as_me:7647: $lt_compile\"" >&5)
64379 (eval "$lt_compile" 2>out/conftest.err)
64380 ac_status=$?
64381 cat out/conftest.err >&5
64382 - echo "$as_me:7607: \$? = $ac_status" >&5
64383 + echo "$as_me:7651: \$? = $ac_status" >&5
64384 if (exit $ac_status) && test -s out/conftest2.$ac_objext
64385 then
64386 # The compiler can only warn and ignore the option if not recognized
64387 @@ -10412,7 +10456,7 @@
64388 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
64389 lt_status=$lt_dlunknown
64390 cat > conftest.$ac_ext <<_LT_EOF
64391 -#line 10415 "configure"
64392 +#line 10459 "configure"
64393 #include "confdefs.h"
64394
64395 #if HAVE_DLFCN_H
64396 @@ -10508,7 +10552,7 @@
64397 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
64398 lt_status=$lt_dlunknown
64399 cat > conftest.$ac_ext <<_LT_EOF
64400 -#line 10511 "configure"
64401 +#line 10555 "configure"
64402 #include "confdefs.h"
64403
64404 #if HAVE_DLFCN_H
64405 @@ -10859,7 +10903,7 @@
64406
64407
64408 # Provide some information about the compiler.
64409 -echo "$as_me:10862:" \
64410 +echo "$as_me:10906:" \
64411 "checking for Fortran compiler version" >&5
64412 ac_compiler=`set X $ac_compile; echo $2`
64413 { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
64414 @@ -11095,7 +11139,7 @@
64415
64416
64417 # Provide some information about the compiler.
64418 -echo "$as_me:11098:" \
64419 +echo "$as_me:11142:" \
64420 "checking for Fortran compiler version" >&5
64421 ac_compiler=`set X $ac_compile; echo $2`
64422 { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
64423 @@ -11835,11 +11879,11 @@
64424 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
64425 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
64426 -e 's:$: $lt_compiler_flag:'`
64427 - (eval echo "\"\$as_me:11838: $lt_compile\"" >&5)
64428 + (eval echo "\"\$as_me:11882: $lt_compile\"" >&5)
64429 (eval "$lt_compile" 2>conftest.err)
64430 ac_status=$?
64431 cat conftest.err >&5
64432 - echo "$as_me:11842: \$? = $ac_status" >&5
64433 + echo "$as_me:11886: \$? = $ac_status" >&5
64434 if (exit $ac_status) && test -s "$ac_outfile"; then
64435 # The compiler can only warn and ignore the option if not recognized
64436 # So say no if there are warnings other than the usual output.
64437 @@ -11934,11 +11978,11 @@
64438 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
64439 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
64440 -e 's:$: $lt_compiler_flag:'`
64441 - (eval echo "\"\$as_me:11937: $lt_compile\"" >&5)
64442 + (eval echo "\"\$as_me:11981: $lt_compile\"" >&5)
64443 (eval "$lt_compile" 2>out/conftest.err)
64444 ac_status=$?
64445 cat out/conftest.err >&5
64446 - echo "$as_me:11941: \$? = $ac_status" >&5
64447 + echo "$as_me:11985: \$? = $ac_status" >&5
64448 if (exit $ac_status) && test -s out/conftest2.$ac_objext
64449 then
64450 # The compiler can only warn and ignore the option if not recognized
64451 @@ -11986,11 +12030,11 @@
64452 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
64453 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
64454 -e 's:$: $lt_compiler_flag:'`
64455 - (eval echo "\"\$as_me:11989: $lt_compile\"" >&5)
64456 + (eval echo "\"\$as_me:12033: $lt_compile\"" >&5)
64457 (eval "$lt_compile" 2>out/conftest.err)
64458 ac_status=$?
64459 cat out/conftest.err >&5
64460 - echo "$as_me:11993: \$? = $ac_status" >&5
64461 + echo "$as_me:12037: \$? = $ac_status" >&5
64462 if (exit $ac_status) && test -s out/conftest2.$ac_objext
64463 then
64464 # The compiler can only warn and ignore the option if not recognized
64465 @@ -15133,7 +15177,8 @@
64466 cat confdefs.h >>conftest.$ac_ext
64467 cat >>conftest.$ac_ext <<_ACEOF
64468 /* end confdefs.h. */
64469 -$ac_includes_default
64470 +/* no standard headers */
64471 +
64472 int
64473 main ()
64474 {
64475 @@ -15197,7 +15242,8 @@
64476 cat confdefs.h >>conftest.$ac_ext
64477 cat >>conftest.$ac_ext <<_ACEOF
64478 /* end confdefs.h. */
64479 -$ac_includes_default
64480 +/* no standard headers */
64481 +
64482 int
64483 main ()
64484 {
64485 @@ -15238,7 +15284,8 @@
64486 cat confdefs.h >>conftest.$ac_ext
64487 cat >>conftest.$ac_ext <<_ACEOF
64488 /* end confdefs.h. */
64489 -$ac_includes_default
64490 +/* no standard headers */
64491 +
64492 int
64493 main ()
64494 {
64495 @@ -15295,7 +15342,8 @@
64496 cat confdefs.h >>conftest.$ac_ext
64497 cat >>conftest.$ac_ext <<_ACEOF
64498 /* end confdefs.h. */
64499 -$ac_includes_default
64500 +/* no standard headers */
64501 +
64502 int
64503 main ()
64504 {
64505 @@ -15336,7 +15384,8 @@
64506 cat confdefs.h >>conftest.$ac_ext
64507 cat >>conftest.$ac_ext <<_ACEOF
64508 /* end confdefs.h. */
64509 -$ac_includes_default
64510 +/* no standard headers */
64511 +
64512 int
64513 main ()
64514 {
64515 @@ -15401,7 +15450,8 @@
64516 cat confdefs.h >>conftest.$ac_ext
64517 cat >>conftest.$ac_ext <<_ACEOF
64518 /* end confdefs.h. */
64519 -$ac_includes_default
64520 +/* no standard headers */
64521 +
64522 int
64523 main ()
64524 {
64525 @@ -15469,7 +15519,8 @@
64526 cat confdefs.h >>conftest.$ac_ext
64527 cat >>conftest.$ac_ext <<_ACEOF
64528 /* end confdefs.h. */
64529 -$ac_includes_default
64530 +/* no standard headers */
64531 +
64532 long longval () { return (long) (sizeof (void *)); }
64533 unsigned long ulongval () { return (long) (sizeof (void *)); }
64534 #include <stdio.h>
64535 @@ -15557,7 +15608,8 @@
64536 cat confdefs.h >>conftest.$ac_ext
64537 cat >>conftest.$ac_ext <<_ACEOF
64538 /* end confdefs.h. */
64539 -$ac_includes_default
64540 +/* no standard headers */
64541 +
64542 int
64543 main ()
64544 {
64545 @@ -15621,7 +15673,8 @@
64546 cat confdefs.h >>conftest.$ac_ext
64547 cat >>conftest.$ac_ext <<_ACEOF
64548 /* end confdefs.h. */
64549 -$ac_includes_default
64550 +/* no standard headers */
64551 +
64552 int
64553 main ()
64554 {
64555 @@ -15662,7 +15715,8 @@
64556 cat confdefs.h >>conftest.$ac_ext
64557 cat >>conftest.$ac_ext <<_ACEOF
64558 /* end confdefs.h. */
64559 -$ac_includes_default
64560 +/* no standard headers */
64561 +
64562 int
64563 main ()
64564 {
64565 @@ -15719,7 +15773,8 @@
64566 cat confdefs.h >>conftest.$ac_ext
64567 cat >>conftest.$ac_ext <<_ACEOF
64568 /* end confdefs.h. */
64569 -$ac_includes_default
64570 +/* no standard headers */
64571 +
64572 int
64573 main ()
64574 {
64575 @@ -15760,7 +15815,8 @@
64576 cat confdefs.h >>conftest.$ac_ext
64577 cat >>conftest.$ac_ext <<_ACEOF
64578 /* end confdefs.h. */
64579 -$ac_includes_default
64580 +/* no standard headers */
64581 +
64582 int
64583 main ()
64584 {
64585 @@ -15825,7 +15881,8 @@
64586 cat confdefs.h >>conftest.$ac_ext
64587 cat >>conftest.$ac_ext <<_ACEOF
64588 /* end confdefs.h. */
64589 -$ac_includes_default
64590 +/* no standard headers */
64591 +
64592 int
64593 main ()
64594 {
64595 @@ -15893,7 +15950,8 @@
64596 cat confdefs.h >>conftest.$ac_ext
64597 cat >>conftest.$ac_ext <<_ACEOF
64598 /* end confdefs.h. */
64599 -$ac_includes_default
64600 +/* no standard headers */
64601 +
64602 long longval () { return (long) (sizeof (long)); }
64603 unsigned long ulongval () { return (long) (sizeof (long)); }
64604 #include <stdio.h>
64605 @@ -15981,7 +16039,8 @@
64606 cat confdefs.h >>conftest.$ac_ext
64607 cat >>conftest.$ac_ext <<_ACEOF
64608 /* end confdefs.h. */
64609 -$ac_includes_default
64610 +/* no standard headers */
64611 +
64612 int
64613 main ()
64614 {
64615 @@ -16045,7 +16104,8 @@
64616 cat confdefs.h >>conftest.$ac_ext
64617 cat >>conftest.$ac_ext <<_ACEOF
64618 /* end confdefs.h. */
64619 -$ac_includes_default
64620 +/* no standard headers */
64621 +
64622 int
64623 main ()
64624 {
64625 @@ -16086,7 +16146,8 @@
64626 cat confdefs.h >>conftest.$ac_ext
64627 cat >>conftest.$ac_ext <<_ACEOF
64628 /* end confdefs.h. */
64629 -$ac_includes_default
64630 +/* no standard headers */
64631 +
64632 int
64633 main ()
64634 {
64635 @@ -16143,7 +16204,8 @@
64636 cat confdefs.h >>conftest.$ac_ext
64637 cat >>conftest.$ac_ext <<_ACEOF
64638 /* end confdefs.h. */
64639 -$ac_includes_default
64640 +/* no standard headers */
64641 +
64642 int
64643 main ()
64644 {
64645 @@ -16184,7 +16246,8 @@
64646 cat confdefs.h >>conftest.$ac_ext
64647 cat >>conftest.$ac_ext <<_ACEOF
64648 /* end confdefs.h. */
64649 -$ac_includes_default
64650 +/* no standard headers */
64651 +
64652 int
64653 main ()
64654 {
64655 @@ -16249,7 +16312,8 @@
64656 cat confdefs.h >>conftest.$ac_ext
64657 cat >>conftest.$ac_ext <<_ACEOF
64658 /* end confdefs.h. */
64659 -$ac_includes_default
64660 +/* no standard headers */
64661 +
64662 int
64663 main ()
64664 {
64665 @@ -16317,7 +16381,8 @@
64666 cat confdefs.h >>conftest.$ac_ext
64667 cat >>conftest.$ac_ext <<_ACEOF
64668 /* end confdefs.h. */
64669 -$ac_includes_default
64670 +/* no standard headers */
64671 +
64672 long longval () { return (long) (sizeof (int)); }
64673 unsigned long ulongval () { return (long) (sizeof (int)); }
64674 #include <stdio.h>
64675 @@ -16401,7 +16466,8 @@
64676 cat confdefs.h >>conftest.$ac_ext
64677 cat >>conftest.$ac_ext <<_ACEOF
64678 /* end confdefs.h. */
64679 -$ac_includes_default
64680 +/* no standard headers */
64681 +
64682 int
64683 main ()
64684 {
64685 @@ -16465,7 +16531,8 @@
64686 cat confdefs.h >>conftest.$ac_ext
64687 cat >>conftest.$ac_ext <<_ACEOF
64688 /* end confdefs.h. */
64689 -$ac_includes_default
64690 +/* no standard headers */
64691 +
64692 int
64693 main ()
64694 {
64695 @@ -16506,7 +16573,8 @@
64696 cat confdefs.h >>conftest.$ac_ext
64697 cat >>conftest.$ac_ext <<_ACEOF
64698 /* end confdefs.h. */
64699 -$ac_includes_default
64700 +/* no standard headers */
64701 +
64702 int
64703 main ()
64704 {
64705 @@ -16563,7 +16631,8 @@
64706 cat confdefs.h >>conftest.$ac_ext
64707 cat >>conftest.$ac_ext <<_ACEOF
64708 /* end confdefs.h. */
64709 -$ac_includes_default
64710 +/* no standard headers */
64711 +
64712 int
64713 main ()
64714 {
64715 @@ -16604,7 +16673,8 @@
64716 cat confdefs.h >>conftest.$ac_ext
64717 cat >>conftest.$ac_ext <<_ACEOF
64718 /* end confdefs.h. */
64719 -$ac_includes_default
64720 +/* no standard headers */
64721 +
64722 int
64723 main ()
64724 {
64725 @@ -16669,7 +16739,8 @@
64726 cat confdefs.h >>conftest.$ac_ext
64727 cat >>conftest.$ac_ext <<_ACEOF
64728 /* end confdefs.h. */
64729 -$ac_includes_default
64730 +/* no standard headers */
64731 +
64732 int
64733 main ()
64734 {
64735 @@ -16737,7 +16808,8 @@
64736 cat confdefs.h >>conftest.$ac_ext
64737 cat >>conftest.$ac_ext <<_ACEOF
64738 /* end confdefs.h. */
64739 -$ac_includes_default
64740 +/* no standard headers */
64741 +
64742 long longval () { return (long) (sizeof (short)); }
64743 unsigned long ulongval () { return (long) (sizeof (short)); }
64744 #include <stdio.h>
64745 @@ -16821,7 +16893,8 @@
64746 cat confdefs.h >>conftest.$ac_ext
64747 cat >>conftest.$ac_ext <<_ACEOF
64748 /* end confdefs.h. */
64749 -$ac_includes_default
64750 +/* no standard headers */
64751 +
64752 int
64753 main ()
64754 {
64755 @@ -16885,7 +16958,8 @@
64756 cat confdefs.h >>conftest.$ac_ext
64757 cat >>conftest.$ac_ext <<_ACEOF
64758 /* end confdefs.h. */
64759 -$ac_includes_default
64760 +/* no standard headers */
64761 +
64762 int
64763 main ()
64764 {
64765 @@ -16926,7 +17000,8 @@
64766 cat confdefs.h >>conftest.$ac_ext
64767 cat >>conftest.$ac_ext <<_ACEOF
64768 /* end confdefs.h. */
64769 -$ac_includes_default
64770 +/* no standard headers */
64771 +
64772 int
64773 main ()
64774 {
64775 @@ -16983,7 +17058,8 @@
64776 cat confdefs.h >>conftest.$ac_ext
64777 cat >>conftest.$ac_ext <<_ACEOF
64778 /* end confdefs.h. */
64779 -$ac_includes_default
64780 +/* no standard headers */
64781 +
64782 int
64783 main ()
64784 {
64785 @@ -17024,7 +17100,8 @@
64786 cat confdefs.h >>conftest.$ac_ext
64787 cat >>conftest.$ac_ext <<_ACEOF
64788 /* end confdefs.h. */
64789 -$ac_includes_default
64790 +/* no standard headers */
64791 +
64792 int
64793 main ()
64794 {
64795 @@ -17089,7 +17166,8 @@
64796 cat confdefs.h >>conftest.$ac_ext
64797 cat >>conftest.$ac_ext <<_ACEOF
64798 /* end confdefs.h. */
64799 -$ac_includes_default
64800 +/* no standard headers */
64801 +
64802 int
64803 main ()
64804 {
64805 @@ -17157,7 +17235,8 @@
64806 cat confdefs.h >>conftest.$ac_ext
64807 cat >>conftest.$ac_ext <<_ACEOF
64808 /* end confdefs.h. */
64809 -$ac_includes_default
64810 +/* no standard headers */
64811 +
64812 long longval () { return (long) (sizeof (char)); }
64813 unsigned long ulongval () { return (long) (sizeof (char)); }
64814 #include <stdio.h>
64815 @@ -17906,6 +17985,64 @@
64816 ac_status=$?
64817 echo "$as_me:$LINENO: \$? = $ac_status" >&5
64818 (exit $ac_status); }; }; then
64819 + chktls_save_LDFLAGS="$LDFLAGS"
64820 + case $host in
64821 + *-*-linux*)
64822 + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
64823 + ;;
64824 + esac
64825 + chktls_save_CFLAGS="$CFLAGS"
64826 + CFLAGS="-fPIC $CFLAGS"
64827 + cat >conftest.$ac_ext <<_ACEOF
64828 +int f() { return 0; }
64829 +_ACEOF
64830 +rm -f conftest.$ac_objext conftest$ac_exeext
64831 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
64832 + (eval $ac_link) 2>conftest.er1
64833 + ac_status=$?
64834 + grep -v '^ *+' conftest.er1 >conftest.err
64835 + rm -f conftest.er1
64836 + cat conftest.err >&5
64837 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
64838 + (exit $ac_status); } &&
64839 + { ac_try='test -z "$ac_c_werror_flag"
64840 + || test ! -s conftest.err'
64841 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
64842 + (eval $ac_try) 2>&5
64843 + ac_status=$?
64844 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
64845 + (exit $ac_status); }; } &&
64846 + { ac_try='test -s conftest$ac_exeext'
64847 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
64848 + (eval $ac_try) 2>&5
64849 + ac_status=$?
64850 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
64851 + (exit $ac_status); }; }; then
64852 + cat >conftest.$ac_ext <<_ACEOF
64853 +__thread int a; int b; int f() { return a = b; }
64854 +_ACEOF
64855 +rm -f conftest.$ac_objext conftest$ac_exeext
64856 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
64857 + (eval $ac_link) 2>conftest.er1
64858 + ac_status=$?
64859 + grep -v '^ *+' conftest.er1 >conftest.err
64860 + rm -f conftest.er1
64861 + cat conftest.err >&5
64862 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
64863 + (exit $ac_status); } &&
64864 + { ac_try='test -z "$ac_c_werror_flag"
64865 + || test ! -s conftest.err'
64866 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
64867 + (eval $ac_try) 2>&5
64868 + ac_status=$?
64869 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
64870 + (exit $ac_status); }; } &&
64871 + { ac_try='test -s conftest$ac_exeext'
64872 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
64873 + (eval $ac_try) 2>&5
64874 + ac_status=$?
64875 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
64876 + (exit $ac_status); }; }; then
64877 gcc_cv_have_tls=yes
64878 else
64879 echo "$as_me: failed program was:" >&5
64880 @@ -17915,6 +18052,24 @@
64881 fi
64882 rm -f conftest.err conftest.$ac_objext \
64883 conftest$ac_exeext conftest.$ac_ext
64884 +else
64885 + echo "$as_me: failed program was:" >&5
64886 +sed 's/^/| /' conftest.$ac_ext >&5
64887 +
64888 +gcc_cv_have_tls=yes
64889 +fi
64890 +rm -f conftest.err conftest.$ac_objext \
64891 + conftest$ac_exeext conftest.$ac_ext
64892 + CFLAGS="$chktls_save_CFLAGS"
64893 + LDFLAGS="$chktls_save_LDFLAGS"
64894 +else
64895 + echo "$as_me: failed program was:" >&5
64896 +sed 's/^/| /' conftest.$ac_ext >&5
64897 +
64898 +gcc_cv_have_tls=no
64899 +fi
64900 +rm -f conftest.err conftest.$ac_objext \
64901 + conftest$ac_exeext conftest.$ac_ext
64902
64903
64904 else
64905 @@ -22801,6 +22956,10 @@
64906 s,@multi_basedir@,$multi_basedir,;t t
64907 s,@toolexecdir@,$toolexecdir,;t t
64908 s,@toolexeclibdir@,$toolexeclibdir,;t t
64909 +s,@datarootdir@,$datarootdir,;t t
64910 +s,@docdir@,$docdir,;t t
64911 +s,@pdfdir@,$pdfdir,;t t
64912 +s,@htmldir@,$htmldir,;t t
64913 s,@CC@,$CC,;t t
64914 s,@ac_ct_CC@,$ac_ct_CC,;t t
64915 s,@EXEEXT@,$EXEEXT,;t t
64916 diff -Nur a/libgomp/configure.ac b/libgomp/configure.ac
64917 --- a/libgomp/configure.ac 2008-09-19 22:27:11.000000000 +0200
64918 +++ b/libgomp/configure.ac 2010-01-25 09:50:29.605686739 +0100
64919 @@ -94,6 +94,30 @@
64920 AC_SUBST(toolexecdir)
64921 AC_SUBST(toolexeclibdir)
64922
64923 +AC_ARG_WITH(datarootdir,
64924 +[ --with-datarootdir=DIR Use DIR as the data root [[PREFIX/share]]],
64925 +datarootdir="\${prefix}/$with_datarootdir",
64926 +datarootdir='$(prefix)/share')
64927 +AC_SUBST(datarootdir)
64928 +
64929 +AC_ARG_WITH(docdir,
64930 +[ --with-docdir=DIR Install documentation in DIR [[DATAROOTDIR]]],
64931 +docdir="\${prefix}/$with_docdir",
64932 +docdir='$(datarootdir)')
64933 +AC_SUBST(docdir)
64934 +
64935 +AC_ARG_WITH(pdfdir,
64936 +[ --with-pdfdir install pdf in this directory.],
64937 +[pdfdir="\${prefix}/${withval}"],
64938 +[pdfdir="\${docdir}"])
64939 +AC_SUBST(pdfdir)
64940 +
64941 +AC_ARG_WITH(htmldir,
64942 +[ --with-htmldir=DIR html documentation in in DIR [[DOCDIR]]],
64943 +htmldir="\${prefix}/$with_htmldir",
64944 +htmldir='$(docdir)')
64945 +AC_SUBST(htmldir)
64946 +
64947 # Check the compiler.
64948 # The same as in boehm-gc and libstdc++. Have to borrow it from there.
64949 # We must force CC to /not/ be precious variables; otherwise
64950 diff -Nur a/libgomp/libgomp.texi b/libgomp/libgomp.texi
64951 --- a/libgomp/libgomp.texi 2008-11-04 19:16:17.000000000 +0100
64952 +++ b/libgomp/libgomp.texi 2010-01-25 09:50:29.605686739 +0100
64953 @@ -94,7 +94,7 @@
64954 How you can copy and share this manual.
64955 * Funding:: How to help assure continued work for free
64956 software.
64957 -* Index:: Index of this documentation.
64958 +* Library Index:: Index of this documentation.
64959 @end menu
64960
64961
64962 @@ -1713,8 +1713,8 @@
64963 @c Index
64964 @c ---------------------------------------------------------------------
64965
64966 -@node Index
64967 -@unnumbered Index
64968 +@node Library Index
64969 +@unnumbered Library Index
64970
64971 @printindex cp
64972
64973 diff -Nur a/libgomp/Makefile.am b/libgomp/Makefile.am
64974 --- a/libgomp/Makefile.am 2008-08-31 20:16:09.000000000 +0200
64975 +++ b/libgomp/Makefile.am 2010-01-25 09:50:29.615687242 +0100
64976 @@ -1,5 +1,10 @@
64977 ## Process this file with automake to produce Makefile.in
64978
64979 +datarootdir = @datarootdir@
64980 +docdir = @docdir@
64981 +htmldir = @htmldir@
64982 +pdfdir = @pdfdir@
64983 +
64984 ACLOCAL_AMFLAGS = -I .. -I ../config
64985 SUBDIRS = testsuite
64986
64987 @@ -41,6 +46,12 @@
64988 nodist_finclude_HEADERS = omp_lib.h omp_lib.f90 omp_lib.mod omp_lib_kinds.mod
64989 endif
64990
64991 +LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
64992 +
64993 +LINK = $(LIBTOOL) --tag CC --mode=link $(CCLD) $(AM_CCFLAGS) $(CFLAGS) \
64994 + $(AM_LDFLAGS) $(LTLDFLAGS) -o $@
64995 +
64996 +
64997 omp_lib_kinds.mod: omp_lib.mod
64998 :
64999 omp_lib.mod: omp_lib.f90
65000 @@ -50,10 +61,30 @@
65001 env.lo: libgomp_f.h
65002 env.o: libgomp_f.h
65003
65004 +HTMLS_INSTALL=libgomp
65005 +HTMLS_BUILD=libgomp/index.html
65006
65007 -# No install-html or install-pdf support in automake yet
65008 -.PHONY: install-html install-pdf
65009 -install-html:
65010 +$(HTMLS_BUILD): $(info_TEXINFOS)
65011 + $(TEXI2HTML) $(MAKEINFOFLAGS) -I$(srcdir) -o $(@D) $<
65012 +
65013 +html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
65014 +
65015 +install-html: $(HTMLS_BUILD)
65016 + @$(NORMAL_INSTALL)
65017 + test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)"
65018 + @list='$(HTMLS_INSTALL)'; for p in $$list; do \
65019 + if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
65020 + f=$(html__strip_dir) \
65021 + if test -d "$$d$$p"; then \
65022 + echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \
65023 + $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
65024 + echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
65025 + $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
65026 + else \
65027 + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
65028 + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
65029 + fi; \
65030 + done
65031
65032 install-pdf: $(PDFS)
65033 @$(NORMAL_INSTALL)
65034 @@ -71,6 +102,7 @@
65035 # `texinfo.tex' for your package. The value of this variable should be
65036 # the relative path from the current `Makefile.am' to `texinfo.tex'.
65037 TEXINFO_TEX = ../gcc/doc/include/texinfo.tex
65038 +TEXI2HTML = $(MAKEINFO) --html
65039
65040 # Defines info, dvi, pdf and html targets
65041 MAKEINFOFLAGS = -I $(srcdir)/../gcc/doc/include
65042 diff -Nur a/libgomp/Makefile.in b/libgomp/Makefile.in
65043 --- a/libgomp/Makefile.in 2009-07-22 09:43:59.000000000 +0200
65044 +++ b/libgomp/Makefile.in 2010-01-25 09:50:29.615687242 +0100
65045 @@ -97,8 +97,6 @@
65046 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
65047 $(AM_CFLAGS) $(CFLAGS)
65048 CCLD = $(CC)
65049 -LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
65050 - $(AM_LDFLAGS) $(LDFLAGS) -o $@
65051 SOURCES = $(libgomp_la_SOURCES)
65052 DIST_SOURCES = $(libgomp_la_SOURCES)
65053 MULTISRCTOP =
65054 @@ -259,6 +257,8 @@
65055 build_vendor = @build_vendor@
65056 config_path = @config_path@
65057 datadir = @datadir@
65058 +datarootdir = @datarootdir@
65059 +docdir = @docdir@
65060 enable_shared = @enable_shared@
65061 enable_static = @enable_static@
65062 exec_prefix = @exec_prefix@
65063 @@ -267,6 +267,7 @@
65064 host_cpu = @host_cpu@
65065 host_os = @host_os@
65066 host_vendor = @host_vendor@
65067 +htmldir = @htmldir@
65068 includedir = @includedir@
65069 infodir = @infodir@
65070 install_sh = @install_sh@
65071 @@ -280,6 +281,7 @@
65072 mkdir_p = @mkdir_p@
65073 multi_basedir = @multi_basedir@
65074 oldincludedir = @oldincludedir@
65075 +pdfdir = @pdfdir@
65076 prefix = @prefix@
65077 program_transform_name = @program_transform_name@
65078 sbindir = @sbindir@
65079 @@ -317,6 +319,13 @@
65080 nodist_noinst_HEADERS = libgomp_f.h
65081 nodist_libsubinclude_HEADERS = omp.h
65082 @USE_FORTRAN_TRUE@nodist_finclude_HEADERS = omp_lib.h omp_lib.f90 omp_lib.mod omp_lib_kinds.mod
65083 +LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
65084 +LINK = $(LIBTOOL) --tag CC --mode=link $(CCLD) $(AM_CCFLAGS) $(CFLAGS) \
65085 + $(AM_LDFLAGS) $(LTLDFLAGS) -o $@
65086 +
65087 +HTMLS_INSTALL = libgomp
65088 +HTMLS_BUILD = libgomp/index.html
65089 +html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
65090
65091 # Automake Documentation:
65092 # If your package has Texinfo files in many directories, you can use the
65093 @@ -324,6 +333,7 @@
65094 # `texinfo.tex' for your package. The value of this variable should be
65095 # the relative path from the current `Makefile.am' to `texinfo.tex'.
65096 TEXINFO_TEX = ../gcc/doc/include/texinfo.tex
65097 +TEXI2HTML = $(MAKEINFO) --html
65098
65099 # Defines info, dvi, pdf and html targets
65100 MAKEINFOFLAGS = -I $(srcdir)/../gcc/doc/include
65101 @@ -1085,9 +1095,25 @@
65102 env.lo: libgomp_f.h
65103 env.o: libgomp_f.h
65104
65105 -# No install-html or install-pdf support in automake yet
65106 -.PHONY: install-html install-pdf
65107 -install-html:
65108 +$(HTMLS_BUILD): $(info_TEXINFOS)
65109 + $(TEXI2HTML) $(MAKEINFOFLAGS) -I$(srcdir) -o $(@D) $<
65110 +
65111 +install-html: $(HTMLS_BUILD)
65112 + @$(NORMAL_INSTALL)
65113 + test -z "$(htmldir)" || $(mkinstalldirs) "$(DESTDIR)$(htmldir)"
65114 + @list='$(HTMLS_INSTALL)'; for p in $$list; do \
65115 + if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
65116 + f=$(html__strip_dir) \
65117 + if test -d "$$d$$p"; then \
65118 + echo " $(mkinstalldirs) '$(DESTDIR)$(htmldir)/$$f'"; \
65119 + $(mkinstalldirs) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
65120 + echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
65121 + $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
65122 + else \
65123 + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
65124 + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
65125 + fi; \
65126 + done
65127
65128 install-pdf: $(PDFS)
65129 @$(NORMAL_INSTALL)
65130 diff -Nur a/libgomp/testsuite/Makefile.in b/libgomp/testsuite/Makefile.in
65131 --- a/libgomp/testsuite/Makefile.in 2009-07-22 09:43:59.000000000 +0200
65132 +++ b/libgomp/testsuite/Makefile.in 2010-01-25 09:50:29.615687242 +0100
65133 @@ -177,6 +177,8 @@
65134 build_vendor = @build_vendor@
65135 config_path = @config_path@
65136 datadir = @datadir@
65137 +datarootdir = @datarootdir@
65138 +docdir = @docdir@
65139 enable_shared = @enable_shared@
65140 enable_static = @enable_static@
65141 exec_prefix = @exec_prefix@
65142 @@ -185,6 +187,7 @@
65143 host_cpu = @host_cpu@
65144 host_os = @host_os@
65145 host_vendor = @host_vendor@
65146 +htmldir = @htmldir@
65147 includedir = @includedir@
65148 infodir = @infodir@
65149 install_sh = @install_sh@
65150 @@ -198,6 +201,7 @@
65151 mkdir_p = @mkdir_p@
65152 multi_basedir = @multi_basedir@
65153 oldincludedir = @oldincludedir@
65154 +pdfdir = @pdfdir@
65155 prefix = @prefix@
65156 program_transform_name = @program_transform_name@
65157 sbindir = @sbindir@
65158 diff -Nur a/libiberty/argv.c b/libiberty/argv.c
65159 --- a/libiberty/argv.c 2007-07-23 19:29:17.000000000 +0200
65160 +++ b/libiberty/argv.c 2010-01-25 09:50:29.615687242 +0100
65161 @@ -119,6 +119,24 @@
65162 }
65163 }
65164
65165 +static void
65166 +consume_whitespace (const char **input)
65167 +{
65168 + while (ISSPACE (**input))
65169 + {
65170 + (*input)++;
65171 + }
65172 +}
65173 +
65174 +static int
65175 +only_whitespace (const char* input)
65176 +{
65177 + while (*input != EOS && ISSPACE (*input))
65178 + input++;
65179 +
65180 + return (*input == EOS);
65181 +}
65182 +
65183 /*
65184
65185 @deftypefn Extension char** buildargv (char *@var{sp})
65186 @@ -179,10 +197,8 @@
65187 do
65188 {
65189 /* Pick off argv[argc] */
65190 - while (ISBLANK (*input))
65191 - {
65192 - input++;
65193 - }
65194 + consume_whitespace (&input);
65195 +
65196 if ((maxargc == 0) || (argc >= (maxargc - 1)))
65197 {
65198 /* argv needs initialization, or expansion */
65199 @@ -278,10 +294,7 @@
65200 argc++;
65201 argv[argc] = NULL;
65202
65203 - while (ISSPACE (*input))
65204 - {
65205 - input++;
65206 - }
65207 + consume_whitespace (&input);
65208 }
65209 while (*input != EOS);
65210 }
65211 @@ -420,8 +433,17 @@
65212 goto error;
65213 /* Add a NUL terminator. */
65214 buffer[len] = '\0';
65215 - /* Parse the string. */
65216 - file_argv = buildargv (buffer);
65217 + /* If the file is empty or contains only whitespace, buildargv would
65218 + return a single empty argument. In this context we want no arguments,
65219 + instead. */
65220 + if (only_whitespace (buffer))
65221 + {
65222 + file_argv = (char **) xmalloc (sizeof (char *));
65223 + file_argv[0] = NULL;
65224 + }
65225 + else
65226 + /* Parse the string. */
65227 + file_argv = buildargv (buffer);
65228 /* If *ARGVP is not already dynamically allocated, copy it. */
65229 if (!argv_dynamic)
65230 {
65231 @@ -434,7 +456,7 @@
65232 }
65233 /* Count the number of arguments. */
65234 file_argc = 0;
65235 - while (file_argv[file_argc] && *file_argv[file_argc])
65236 + while (file_argv[file_argc])
65237 ++file_argc;
65238 /* Now, insert FILE_ARGV into ARGV. The "+1" below handles the
65239 NULL terminator at the end of ARGV. */
65240 diff -Nur a/libiberty/configure b/libiberty/configure
65241 --- a/libiberty/configure 2009-04-08 16:18:33.000000000 +0200
65242 +++ b/libiberty/configure 2010-01-25 09:50:29.615687242 +0100
65243 @@ -8891,6 +8891,20 @@
65244 esac
65245
65246
65247 +# On MinGW, add support for Cygwin paths.
65248 +case "${host}" in
65249 + *-*-mingw*)
65250 + case $LIBOBJS in
65251 + "cygpath.$ac_objext" | \
65252 + *" cygpath.$ac_objext" | \
65253 + "cygpath.$ac_objext "* | \
65254 + *" cygpath.$ac_objext "* ) ;;
65255 + *) LIBOBJS="$LIBOBJS cygpath.$ac_objext" ;;
65256 +esac
65257 +
65258 + ;;
65259 +esac
65260 +
65261 if test x$gcc_no_link = xyes; then
65262 if test "x${ac_cv_func_mmap_fixed_mapped+set}" != xset; then
65263 ac_cv_func_mmap_fixed_mapped=no
65264 diff -Nur a/libiberty/configure.ac b/libiberty/configure.ac
65265 --- a/libiberty/configure.ac 2009-04-08 16:18:33.000000000 +0200
65266 +++ b/libiberty/configure.ac 2010-01-25 09:50:29.615687242 +0100
65267 @@ -663,6 +663,13 @@
65268 esac
65269 AC_SUBST(pexecute)
65270
65271 +# On MinGW, add support for Cygwin paths.
65272 +case "${host}" in
65273 + *-*-mingw*)
65274 + AC_LIBOBJ([cygpath])
65275 + ;;
65276 +esac
65277 +
65278 libiberty_AC_FUNC_STRNCMP
65279
65280 # Install a library built with a cross compiler in $(tooldir) rather
65281 diff -Nur a/libiberty/cygpath.c b/libiberty/cygpath.c
65282 --- a/libiberty/cygpath.c 1970-01-01 01:00:00.000000000 +0100
65283 +++ b/libiberty/cygpath.c 2010-01-25 09:50:29.615687242 +0100
65284 @@ -0,0 +1,591 @@
65285 +/* Support Cygwin paths under MinGW.
65286 + Copyright (C) 2006 Free Software Foundation, Inc.
65287 + Written by CodeSourcery.
65288 +
65289 +This file is part of the libiberty library.
65290 +Libiberty is free software; you can redistribute it and/or modify it
65291 +under the terms of the GNU Library General Public License as published
65292 +by the Free Software Foundation; either version 2 of the License, or
65293 +(at your option) any later version.
65294 +
65295 +Libiberty is distributed in the hope that it will be useful,
65296 +but WITHOUT ANY WARRANTY; without even the implied warranty of
65297 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
65298 +Library General Public License for more details.
65299 +
65300 +You should have received a copy of the GNU Library General Public
65301 +License along with libiberty; see the file COPYING.LIB. If not, write
65302 +to the Free Software Foundation, Inc., 51 Franklin Street - Fifth
65303 +Floor, Boston, MA 02110-1301, USA. */
65304 +
65305 +#include <windows.h>
65306 +#include <errno.h>
65307 +#include <fcntl.h>
65308 +#include <sys/stat.h>
65309 +#include <sys/types.h>
65310 +#include <io.h>
65311 +#include <process.h>
65312 +#include <stdbool.h>
65313 +#include <stdio.h>
65314 +#include <stdlib.h>
65315 +#include "libiberty.h"
65316 +
65317 +/* If non-zero, we have attempted to use cygpath. CYGPATH_PEX may
65318 + still be NULL, if cygpath is unavailable. */
65319 +static int cygpath_initialized;
65320 +
65321 +/* If non-NULL, an instance of cygpath connected via a pipe. */
65322 +static struct pex_obj *cygpath_pex;
65323 +
65324 +/* The input to cygpath. */
65325 +static FILE *cygpath_in;
65326 +
65327 +/* The output from cygpath. */
65328 +static FILE *cygpath_out;
65329 +
65330 +/* If non-NULL, a file to which path translations are logged. */
65331 +static FILE *cygpath_log;
65332 +
65333 +/* Record MESSAGE in the CYGPATH_LOG. MESSAGE is a format string,
65334 + which is expected to have a single "%s" field, to be replaced by
65335 + ARG. */
65336 +static void
65337 +cygpath_log_msg_arg (const char *message, const char *arg)
65338 +{
65339 + if (!cygpath_log)
65340 + return;
65341 + fprintf (cygpath_log, "[%d] cygpath: ", _getpid ());
65342 + fprintf (cygpath_log, message, arg);
65343 + fprintf (cygpath_log, "\n");
65344 + fflush (cygpath_log);
65345 +}
65346 +
65347 +/* Record MESSAGE in the CYGPATH_LOG. */
65348 +static void
65349 +cygpath_log_msg (const char *message)
65350 +{
65351 + cygpath_log_msg_arg ("%s", message);
65352 +}
65353 +
65354 +/* An error has occured. Add the MESSAGE to the CYGPATH_LOG, noting
65355 + the cause of the error based on errno. */
65356 +static void
65357 +cygpath_perror (const char *message)
65358 +{
65359 + if (!cygpath_log)
65360 + return;
65361 + fprintf (cygpath_log, "[%d] cygpath: error: %s: %s\n",
65362 + _getpid(), message, strerror (errno));
65363 + fflush (cygpath_log);
65364 +}
65365 +
65366 +/* Closes CYGPATH_PEX and frees all associated
65367 + resoures. */
65368 +static void
65369 +cygpath_close (void)
65370 +{
65371 + /* Free resources. */
65372 + if (cygpath_out)
65373 + {
65374 + fclose (cygpath_out);
65375 + cygpath_out = NULL;
65376 + }
65377 + if (cygpath_in)
65378 + {
65379 + fclose (cygpath_in);
65380 + cygpath_in = NULL;
65381 + }
65382 + if (cygpath_pex)
65383 + {
65384 + pex_free (cygpath_pex);
65385 + cygpath_pex = NULL;
65386 + }
65387 + if (cygpath_log)
65388 + {
65389 + cygpath_log_msg ("end");
65390 + cygpath_log = NULL;
65391 + }
65392 +}
65393 +
65394 +/* CYG_PATH is a pointer to a Cygwin path. This function converts the
65395 + Cygwin path to a Windows path, storing the result in
65396 + WIN32_PATH. Returns true if the conversion was successful; false
65397 + otherwise. */
65398 +int
65399 +cygpath (const char *cyg_path, char win32_path[MAX_PATH + 1])
65400 +{
65401 + bool ok;
65402 + bool retrying;
65403 +
65404 + /* Special-case the empty path. cygpath cannot handle the empty
65405 + path correctly. It ignores the empty line, waiting for a
65406 + non-empty line, which in turn causes an application using this
65407 + function to appear stuck. */
65408 + if (cyg_path[0] == '\0')
65409 + {
65410 + win32_path[0] = '\0';
65411 + return true;
65412 + }
65413 +
65414 + retrying = false;
65415 +
65416 + retry:
65417 + if (!cygpath_initialized)
65418 + {
65419 + const char *argv[] = { "cygpath", "-w", "-f", "-", NULL };
65420 + const char *cygpath_path;
65421 + const char *log;
65422 + int err;
65423 +
65424 + /* If we are unable to invoke cygpath, we do not want to try
65425 + again. So, we set the initialized flag at this point; if
65426 + errors occur during the invocation, it will remain set. */
65427 + cygpath_initialized = 1;
65428 + /* Check to see if the user wants cygpath support. */
65429 + cygpath_path = getenv ("CYGPATH");
65430 + if (!cygpath_path)
65431 + /* The user doesn't need to support Cygwin paths. */
65432 + goto error;
65433 + /* If debugging, open the log file. */
65434 + log = getenv ("CSL_DEBUG_CYGPATH");
65435 + if (log && log[0])
65436 + {
65437 + /* The log file is opened for "append" so that multiple
65438 + processes (perhaps invoked from "make") can share it. */
65439 + cygpath_log = fopen (log, "a");
65440 + if (cygpath_log)
65441 + cygpath_log_msg ("begin");
65442 + }
65443 + /* If the environment variable is set to a non-empty string, use
65444 + that string as the path to cygpath. */
65445 + if (cygpath_path[0] != '\0')
65446 + argv[0] = cygpath_path;
65447 + /* Create the pex object. */
65448 + cygpath_pex = pex_init (PEX_SEARCH | PEX_USE_PIPES,
65449 + "cygpath", NULL);
65450 + if (!cygpath_pex)
65451 + goto error;
65452 + /* Get the FILE we will use to write to the child. */
65453 + cygpath_in = pex_input_pipe (cygpath_pex, /*binary=*/0);
65454 + if (!cygpath_in)
65455 + goto error;
65456 + /* Start the child process. */
65457 + if (pex_run (cygpath_pex, PEX_SEARCH | PEX_USE_PIPES,
65458 + argv[0], (char**) argv,
65459 + NULL, NULL,
65460 + &err) != NULL)
65461 + goto error;
65462 + /* Get the FILE we will use to read from the child. */
65463 + cygpath_out = pex_read_output (cygpath_pex, /*binary=*/1);
65464 + if (!cygpath_out)
65465 + goto error;
65466 + }
65467 + else if (!cygpath_pex)
65468 + /* We previously tried to use cygpath, but something went wrong. */
65469 + return false;
65470 +
65471 + /* Write CYG_PATH to the child, on a line by itself. */
65472 + cygpath_log_msg_arg ("-> %s", cyg_path);
65473 + if (fprintf (cygpath_in, "%s\n", cyg_path) < 0)
65474 + {
65475 + cygpath_perror ("write failed");
65476 + goto error;
65477 + }
65478 + /* Flush the output. (We cannot set the stream into line-buffered
65479 + mode with setvbuf because Windows treats _IOLBF as a synonym for
65480 + _IOFBF.) */
65481 + if (fflush (cygpath_in))
65482 + cygpath_perror ("flush failed");
65483 + /* Read the output. */
65484 + ok = true;
65485 + while (1)
65486 + {
65487 + size_t pathlen;
65488 + if (!fgets (win32_path, MAX_PATH, cygpath_out))
65489 + {
65490 + if (ferror (cygpath_out))
65491 + cygpath_perror ("read failed");
65492 + else
65493 + {
65494 + cygpath_log_msg ("error: EOF");
65495 + /* Unfortunately, cygpath sometimes crashes for no
65496 + apparent reason. We give it two chances... */
65497 + if (!retrying)
65498 + {
65499 + retrying = true;
65500 + cygpath_log_msg ("retrying");
65501 + cygpath_close ();
65502 + cygpath_initialized = 0;
65503 + goto retry;
65504 + }
65505 + }
65506 + goto error;
65507 + }
65508 + pathlen = strlen (win32_path);
65509 + if (pathlen == 0 && ok)
65510 + /* This isn't a well-formed response from cygpath. */
65511 + goto error;
65512 + if (win32_path[pathlen - 1] == '\n')
65513 + {
65514 + win32_path[pathlen - 1] = '\0';
65515 + cygpath_log_msg_arg ("<- %s", win32_path);
65516 + break;
65517 + }
65518 + /* We didn't reach the end of the line. There's no point in
65519 + trying to use this output, since we know the length of
65520 + paths are limited to MAX_PATH characters, but we read the
65521 + entire line so that we are still in sync with
65522 + cygpath. */
65523 + ok = false;
65524 + if (cygpath_log)
65525 + cygpath_log_msg_arg ("error: invalid response: %s",
65526 + win32_path);
65527 + }
65528 +
65529 + return ok;
65530 +
65531 + error:
65532 + cygpath_close();
65533 + return false;
65534 +}
65535 +
65536 +/* Returns the handle for the MVCRT DLL, or NULL if it is not
65537 + available. */
65538 +static HMODULE
65539 +msvcrt_dll (void)
65540 +{
65541 + static HMODULE dll = (HMODULE)(-1);
65542 +
65543 + /* After we call LoadLibrary, DLL will be either a valid handle or
65544 + NULL, so this check ensures that we only try to load the library
65545 + once. */
65546 + if (dll == (HMODULE)(-1))
65547 + dll = LoadLibrary ("msvcrt.dll");
65548 +
65549 + return dll;
65550 +}
65551 +
65552 +/* Call the underlying MSVCRT fopen with PATH and MODE, and return
65553 + what it returns. */
65554 +static FILE *
65555 +msvcrt_fopen (const char *path, const char *mode)
65556 +{
65557 + typedef FILE *(fopen_type)(const char *path,
65558 + const char *mode);
65559 +
65560 + static fopen_type *f = NULL;
65561 +
65562 + /* Get the address of "fopen". */
65563 + if (!f)
65564 + {
65565 + HMODULE dll = msvcrt_dll ();
65566 + if (!dll)
65567 + {
65568 + errno = ENOSYS;
65569 + return NULL;
65570 + }
65571 + f = (fopen_type *) GetProcAddress (dll, "fopen");
65572 + if (!f)
65573 + {
65574 + errno = ENOSYS;
65575 + return NULL;
65576 + }
65577 + }
65578 +
65579 + /* Call fopen. */
65580 + return (*f)(path, mode);
65581 +}
65582 +
65583 +FILE *
65584 +fopen (const char *path, const char *mode)
65585 +{
65586 + FILE *f;
65587 + char win32_path[MAX_PATH + 1];
65588 +
65589 + /* Assume PATH is a Windows path. */
65590 + f = msvcrt_fopen (path, mode);
65591 + if (f || errno != ENOENT)
65592 + return f;
65593 + /* Perhaps it is a Cygwin path? */
65594 + if (cygpath (path, win32_path))
65595 + f = msvcrt_fopen (win32_path, mode);
65596 + return f;
65597 +}
65598 +
65599 +int
65600 +open (const char *path, int oflag, ...)
65601 +{
65602 + int fd;
65603 + char win32_path[MAX_PATH + 1];
65604 + int pmode = 0;
65605 +
65606 + if ((oflag & _O_CREAT))
65607 + {
65608 + va_list ap;
65609 + va_start (ap, oflag);
65610 + pmode = va_arg (ap, int);
65611 + va_end (ap);
65612 + }
65613 +
65614 + /* Assume PATH is a Windows path. */
65615 + fd = _open (path, oflag, pmode);
65616 + if (fd != -1 || errno != ENOENT)
65617 + return fd;
65618 + /* Perhaps it is a Cygwin path? */
65619 + if (cygpath (path, win32_path))
65620 + fd = _open (win32_path, oflag, pmode);
65621 + return fd;
65622 +}
65623 +
65624 +int
65625 +stat (const char *path, struct stat *buffer)
65626 +{
65627 + int r;
65628 + char win32_path[MAX_PATH + 1];
65629 +
65630 + /* Assume PATH is a Windows path. */
65631 + r = _stat (path, (struct _stat *) buffer);
65632 + if (r != -1 || errno != ENOENT)
65633 + return r;
65634 + /* Perhaps it is a Cygwin path? */
65635 + if (cygpath (path, win32_path))
65636 + r = _stat (win32_path, (struct _stat *) buffer);
65637 + return r;
65638 +}
65639 +
65640 +int
65641 +access (const char *path, int mode)
65642 +{
65643 + int r;
65644 + char win32_path[MAX_PATH + 1];
65645 +
65646 +#ifdef _WIN32
65647 + /* Some GNU tools mistakenly defined X_OK to 1 on Windows. */
65648 + mode = mode & ~1;
65649 +#endif
65650 + /* Assume PATH is a Windows path. */
65651 + r = _access (path, mode);
65652 + if (r != -1 || errno != ENOENT)
65653 + return r;
65654 + /* Perhaps it is a Cygwin path? */
65655 + if (cygpath (path, win32_path))
65656 + r = _access (win32_path, mode);
65657 + return r;
65658 +}
65659 +
65660 +/* Given the WINDOWS_CODE (typically the result of GetLastError), set
65661 + ERRNO to the corresponding error code. If there is no obvious
65662 + correspondence, ERRNO will be set to EACCES. */
65663 +static void
65664 +set_errno_from_windows_code (DWORD windows_code)
65665 +{
65666 + int mapping[][2] = {
65667 + {ERROR_ACCESS_DENIED, EACCES},
65668 + {ERROR_ACCOUNT_DISABLED, EACCES},
65669 + {ERROR_ACCOUNT_RESTRICTION, EACCES},
65670 + {ERROR_ALREADY_ASSIGNED, EBUSY},
65671 + {ERROR_ALREADY_EXISTS, EEXIST},
65672 + {ERROR_ARITHMETIC_OVERFLOW, ERANGE},
65673 + {ERROR_BAD_COMMAND, EIO},
65674 + {ERROR_BAD_DEVICE, ENODEV},
65675 + {ERROR_BAD_DRIVER_LEVEL, ENXIO},
65676 + {ERROR_BAD_EXE_FORMAT, ENOEXEC},
65677 + {ERROR_BAD_FORMAT, ENOEXEC},
65678 + {ERROR_BAD_LENGTH, EINVAL},
65679 + {ERROR_BAD_PATHNAME, ENOENT},
65680 + {ERROR_BAD_PIPE, EPIPE},
65681 + {ERROR_BAD_UNIT, ENODEV},
65682 + {ERROR_BAD_USERNAME, EINVAL},
65683 + {ERROR_BROKEN_PIPE, EPIPE},
65684 + {ERROR_BUFFER_OVERFLOW, ENOMEM},
65685 + {ERROR_BUSY, EBUSY},
65686 + {ERROR_BUSY_DRIVE, EBUSY},
65687 + {ERROR_CALL_NOT_IMPLEMENTED, ENOSYS},
65688 + {ERROR_CRC, EIO},
65689 + {ERROR_CURRENT_DIRECTORY, EINVAL},
65690 + {ERROR_DEVICE_IN_USE, EBUSY},
65691 + {ERROR_DIR_NOT_EMPTY, EEXIST},
65692 + {ERROR_DIRECTORY, ENOENT},
65693 + {ERROR_DISK_CHANGE, EIO},
65694 + {ERROR_DISK_FULL, ENOSPC},
65695 + {ERROR_DRIVE_LOCKED, EBUSY},
65696 + {ERROR_ENVVAR_NOT_FOUND, EINVAL},
65697 + {ERROR_EXE_MARKED_INVALID, ENOEXEC},
65698 + {ERROR_FILE_EXISTS, EEXIST},
65699 + {ERROR_FILE_INVALID, ENODEV},
65700 + {ERROR_FILE_NOT_FOUND, ENOENT},
65701 + {ERROR_FILENAME_EXCED_RANGE, ENAMETOOLONG},
65702 + {ERROR_GEN_FAILURE, EIO},
65703 + {ERROR_HANDLE_DISK_FULL, ENOSPC},
65704 + {ERROR_INSUFFICIENT_BUFFER, ENOMEM},
65705 + {ERROR_INVALID_ACCESS, EINVAL},
65706 + {ERROR_INVALID_ADDRESS, EFAULT},
65707 + {ERROR_INVALID_BLOCK, EFAULT},
65708 + {ERROR_INVALID_DATA, EINVAL},
65709 + {ERROR_INVALID_DRIVE, ENODEV},
65710 + {ERROR_INVALID_EXE_SIGNATURE, ENOEXEC},
65711 + {ERROR_INVALID_FLAGS, EINVAL},
65712 + {ERROR_INVALID_FUNCTION, ENOSYS},
65713 + {ERROR_INVALID_HANDLE, EBADF},
65714 + {ERROR_INVALID_LOGON_HOURS, EACCES},
65715 + {ERROR_INVALID_NAME, ENOENT},
65716 + {ERROR_INVALID_OWNER, EINVAL},
65717 + {ERROR_INVALID_PARAMETER, EINVAL},
65718 + {ERROR_INVALID_PASSWORD, EPERM},
65719 + {ERROR_INVALID_PRIMARY_GROUP, EINVAL},
65720 + {ERROR_INVALID_SIGNAL_NUMBER, EINVAL},
65721 + {ERROR_INVALID_TARGET_HANDLE, EIO},
65722 + {ERROR_INVALID_WORKSTATION, EACCES},
65723 + {ERROR_IO_DEVICE, EIO},
65724 + {ERROR_IO_INCOMPLETE, EINTR},
65725 + {ERROR_LOCKED, EBUSY},
65726 + {ERROR_LOGON_FAILURE, EACCES},
65727 + {ERROR_MAPPED_ALIGNMENT, EINVAL},
65728 + {ERROR_META_EXPANSION_TOO_LONG, E2BIG},
65729 + {ERROR_MORE_DATA, EPIPE},
65730 + {ERROR_NEGATIVE_SEEK, ESPIPE},
65731 + {ERROR_NO_DATA, EPIPE},
65732 + {ERROR_NO_MORE_SEARCH_HANDLES, EIO},
65733 + {ERROR_NO_PROC_SLOTS, EAGAIN},
65734 + {ERROR_NO_SUCH_PRIVILEGE, EACCES},
65735 + {ERROR_NOACCESS, EFAULT},
65736 + {ERROR_NONE_MAPPED, EINVAL},
65737 + {ERROR_NOT_ENOUGH_MEMORY, ENOMEM},
65738 + {ERROR_NOT_READY, ENODEV},
65739 + {ERROR_NOT_SAME_DEVICE, EXDEV},
65740 + {ERROR_OPEN_FAILED, EIO},
65741 + {ERROR_OPERATION_ABORTED, EINTR},
65742 + {ERROR_OUTOFMEMORY, ENOMEM},
65743 + {ERROR_PASSWORD_EXPIRED, EACCES},
65744 + {ERROR_PATH_BUSY, EBUSY},
65745 + {ERROR_PATH_NOT_FOUND, ENOTDIR},
65746 + {ERROR_PIPE_BUSY, EBUSY},
65747 + {ERROR_PIPE_CONNECTED, EPIPE},
65748 + {ERROR_PIPE_LISTENING, EPIPE},
65749 + {ERROR_PIPE_NOT_CONNECTED, EPIPE},
65750 + {ERROR_PRIVILEGE_NOT_HELD, EACCES},
65751 + {ERROR_READ_FAULT, EIO},
65752 + {ERROR_SEEK, ESPIPE},
65753 + {ERROR_SEEK_ON_DEVICE, ESPIPE},
65754 + {ERROR_SHARING_BUFFER_EXCEEDED, ENFILE},
65755 + {ERROR_STACK_OVERFLOW, ENOMEM},
65756 + {ERROR_SWAPERROR, ENOENT},
65757 + {ERROR_TOO_MANY_MODULES, EMFILE},
65758 + {ERROR_TOO_MANY_OPEN_FILES, EMFILE},
65759 + {ERROR_UNRECOGNIZED_MEDIA, ENXIO},
65760 + {ERROR_UNRECOGNIZED_VOLUME, ENODEV},
65761 + {ERROR_WAIT_NO_CHILDREN, ECHILD},
65762 + {ERROR_WRITE_FAULT, EIO},
65763 + {ERROR_WRITE_PROTECT, EROFS}
65764 +/* MinGW does not define ETXTBSY as yet.
65765 + {ERROR_LOCK_VIOLATION, ETXTBSY},
65766 + {ERROR_SHARING_VIOLATION, ETXTBSY},
65767 +*/
65768 + };
65769 +
65770 + size_t i;
65771 +
65772 + for (i = 0; i < sizeof (mapping)/sizeof (mapping[0]); ++i)
65773 + if (mapping[i][0] == windows_code)
65774 + {
65775 + errno = mapping[i][1];
65776 + return;
65777 + }
65778 +
65779 + /* Unrecognized error. Use EACCESS to have some error code,
65780 + not misleading "No error" thing. */
65781 + errno = EACCES;
65782 +}
65783 +
65784 +int rename (const char *oldpath, const char *newpath)
65785 +{
65786 + BOOL r;
65787 + int oldpath_converted = 0;
65788 + char win32_oldpath[MAX_PATH + 1];
65789 + char win32_newpath[MAX_PATH + 1];
65790 +
65791 + /* Older versions of the cygpath program called FindFirstFile, but
65792 + not FindClose. As a result, a long-running cygpath program ends
65793 + up leaking these handles, and, as a result, the Windows kernel
65794 + will not let us remove or rename things in directories. Therefore,
65795 + we kill the child cygpath program now.
65796 +
65797 + The defect in cygpath was corrected by this patch:
65798 +
65799 + http://cygwin.com/ml/cygwin-patches/2007-q1/msg00033.html
65800 +
65801 + but older versions of cygpath will be in use for the forseeable
65802 + future. */
65803 +
65804 + cygpath_close ();
65805 + cygpath_initialized = 0;
65806 +
65807 + /* Assume all paths are Windows paths. */
65808 + r = MoveFileEx (oldpath, newpath, MOVEFILE_REPLACE_EXISTING);
65809 + if (r)
65810 + return 0;
65811 + else if (GetLastError () != ERROR_PATH_NOT_FOUND)
65812 + goto error;
65813 +
65814 + /* Perhaps the old path is a cygwin path? */
65815 + if (cygpath (oldpath, win32_oldpath))
65816 + {
65817 + oldpath_converted = 1;
65818 + r = MoveFileEx (win32_oldpath, newpath, MOVEFILE_REPLACE_EXISTING);
65819 + if (r)
65820 + return 0;
65821 + else if (GetLastError () != ERROR_PATH_NOT_FOUND)
65822 + goto error;
65823 + }
65824 +
65825 + /* Perhaps the new path is a cygwin path? */
65826 + if (cygpath (newpath, win32_newpath))
65827 + {
65828 + r = MoveFileEx (oldpath_converted ? win32_oldpath : oldpath,
65829 + win32_newpath, MOVEFILE_REPLACE_EXISTING);
65830 + if (r == TRUE)
65831 + return 0;
65832 + }
65833 +error:
65834 + set_errno_from_windows_code (GetLastError ());
65835 + return -1;
65836 +}
65837 +
65838 +int remove (const char *pathname)
65839 +{
65840 + int r;
65841 + char win32_path[MAX_PATH + 1];
65842 +
65843 + cygpath_close ();
65844 + cygpath_initialized = 0;
65845 +
65846 + /* Assume PATH is a Windows path. */
65847 + r = _unlink (pathname);
65848 + if (r != -1 || errno != ENOENT)
65849 + return r;
65850 + /* Perhaps it is a Cygwin path? */
65851 + if (cygpath (pathname, win32_path))
65852 + r = _unlink (win32_path);
65853 + return r;
65854 +}
65855 +
65856 +int unlink(const char *pathname)
65857 +{
65858 + return remove (pathname);
65859 +}
65860 +
65861 +int
65862 +chdir (const char *path)
65863 +{
65864 + int ret;
65865 + char win32_path[MAX_PATH + 1];
65866 +
65867 + /* Assume PATH is a Windows path. */
65868 + ret = _chdir (path);
65869 + if (ret != -1 || errno != ENOENT)
65870 + return ret;
65871 + /* Perhaps it is a Cygwin path? */
65872 + if (cygpath (path, win32_path))
65873 + ret = _chdir (win32_path);
65874 + return ret;
65875 +}
65876 diff -Nur a/libiberty/lrealpath.c b/libiberty/lrealpath.c
65877 --- a/libiberty/lrealpath.c 2005-05-24 22:48:25.000000000 +0200
65878 +++ b/libiberty/lrealpath.c 2010-01-25 09:50:29.615687242 +0100
65879 @@ -138,6 +138,17 @@
65880 {
65881 char buf[MAX_PATH];
65882 char* basename;
65883 +
65884 + if (_access (filename, F_OK) != 0)
65885 + {
65886 + char cygbuf[MAX_PATH + 1];
65887 + /* The file does not exist. It's fine to call lrealpath
65888 + on a non-existing path... but if this would be an existing
65889 + path after cygpath conversion, use that instead. */
65890 + if (cygpath (filename, cygbuf) && _access (cygbuf, F_OK) == 0)
65891 + filename = cygbuf;
65892 + }
65893 +
65894 DWORD len = GetFullPathName (filename, MAX_PATH, buf, &basename);
65895 if (len == 0 || len > MAX_PATH - 1)
65896 return strdup (filename);
65897 diff -Nur a/libiberty/Makefile.in b/libiberty/Makefile.in
65898 --- a/libiberty/Makefile.in 2008-10-22 15:30:19.000000000 +0200
65899 +++ b/libiberty/Makefile.in 2010-01-25 09:50:29.615687242 +0100
65900 @@ -124,7 +124,7 @@
65901 CFILES = alloca.c argv.c asprintf.c atexit.c \
65902 basename.c bcmp.c bcopy.c bsearch.c bzero.c \
65903 calloc.c choose-temp.c clock.c concat.c cp-demangle.c \
65904 - cp-demint.c cplus-dem.c \
65905 + cp-demint.c cplus-dem.c cygpath.c \
65906 dyn-string.c \
65907 fdmatch.c ffs.c fibheap.c filename_cmp.c floatformat.c \
65908 fnmatch.c fopen_unlocked.c \
65909 @@ -182,7 +182,7 @@
65910 # maint-missing" and "make check".
65911 CONFIGURED_OFILES = ./asprintf.o ./atexit.o \
65912 ./basename.o ./bcmp.o ./bcopy.o ./bsearch.o ./bzero.o \
65913 - ./calloc.o ./clock.o ./copysign.o \
65914 + ./calloc.o ./clock.o ./copysign.o ./cygpath.o \
65915 ./_doprnt.o \
65916 ./ffs.o \
65917 ./getcwd.o ./getpagesize.o ./gettimeofday.o \
65918 @@ -619,6 +619,13 @@
65919 else true; fi
65920 $(COMPILE.c) $(srcdir)/cplus-dem.c $(OUTPUT_OPTION)
65921
65922 +./cygpath.o: $(srcdir)/cygpath.c config.h $(INCDIR)/ansidecl.h \
65923 + $(INCDIR)/libiberty.h
65924 + if [ x"$(PICFLAG)" != x ]; then \
65925 + $(COMPILE.c) $(PICFLAG) $(srcdir)/cygpath.c -o pic/$@; \
65926 + else true; fi
65927 + $(COMPILE.c) $(srcdir)/cygpath.c $(OUTPUT_OPTION)
65928 +
65929 ./dyn-string.o: $(srcdir)/dyn-string.c config.h $(INCDIR)/ansidecl.h \
65930 $(INCDIR)/dyn-string.h $(INCDIR)/libiberty.h
65931 if [ x"$(PICFLAG)" != x ]; then \
65932 diff -Nur a/libiberty/pex-win32.c b/libiberty/pex-win32.c
65933 --- a/libiberty/pex-win32.c 2008-08-07 21:30:14.000000000 +0200
65934 +++ b/libiberty/pex-win32.c 2010-01-25 09:50:29.615687242 +0100
65935 @@ -119,7 +119,7 @@
65936 pex_win32_open_read (struct pex_obj *obj ATTRIBUTE_UNUSED, const char *name,
65937 int binary)
65938 {
65939 - return _open (name, _O_RDONLY | (binary ? _O_BINARY : _O_TEXT));
65940 + return open (name, _O_RDONLY | (binary ? _O_BINARY : _O_TEXT));
65941 }
65942
65943 /* Open a file for writing. */
65944 @@ -130,10 +130,10 @@
65945 {
65946 /* Note that we can't use O_EXCL here because gcc may have already
65947 created the temporary file via make_temp_file. */
65948 - return _open (name,
65949 - (_O_WRONLY | _O_CREAT | _O_TRUNC
65950 - | (binary ? _O_BINARY : _O_TEXT)),
65951 - _S_IREAD | _S_IWRITE);
65952 + return open (name,
65953 + (_O_WRONLY | _O_CREAT | _O_TRUNC
65954 + | (binary ? _O_BINARY : _O_TEXT)),
65955 + _S_IREAD | _S_IWRITE);
65956 }
65957
65958 /* Close a file. */
65959 @@ -746,6 +746,28 @@
65960 OSVERSIONINFO version_info;
65961 STARTUPINFO si;
65962 PROCESS_INFORMATION pi;
65963 + int orig_out, orig_in, orig_err;
65964 + BOOL separate_stderr = !(flags & PEX_STDERR_TO_STDOUT);
65965 +
65966 + /* Ensure we have inheritable descriptors to pass to the child, and close the
65967 + original descriptors. */
65968 + orig_in = in;
65969 + in = _dup (orig_in);
65970 + if (orig_in != STDIN_FILENO)
65971 + _close (orig_in);
65972 +
65973 + orig_out = out;
65974 + out = _dup (orig_out);
65975 + if (orig_out != STDOUT_FILENO)
65976 + _close (orig_out);
65977 +
65978 + if (separate_stderr)
65979 + {
65980 + orig_err = errdes;
65981 + errdes = _dup (orig_err);
65982 + if (orig_err != STDERR_FILENO)
65983 + _close (orig_err);
65984 + }
65985
65986 stdin_handle = INVALID_HANDLE_VALUE;
65987 stdout_handle = INVALID_HANDLE_VALUE;
65988 @@ -753,7 +775,7 @@
65989
65990 stdin_handle = (HANDLE) _get_osfhandle (in);
65991 stdout_handle = (HANDLE) _get_osfhandle (out);
65992 - if (!(flags & PEX_STDERR_TO_STDOUT))
65993 + if (separate_stderr)
65994 stderr_handle = (HANDLE) _get_osfhandle (errdes);
65995 else
65996 stderr_handle = stdout_handle;
65997 @@ -822,12 +844,13 @@
65998 *errmsg = "CreateProcess";
65999 }
66000
66001 - /* Close the standard output and standard error handles in the
66002 - parent. */
66003 - if (out != STDOUT_FILENO)
66004 - obj->funcs->close (obj, out);
66005 - if (errdes != STDERR_FILENO)
66006 - obj->funcs->close (obj, errdes);
66007 + /* Close the standard input, standard output and standard error handles
66008 + in the parent. */
66009 +
66010 + _close (in);
66011 + _close (out);
66012 + if (separate_stderr)
66013 + _close (errdes);
66014
66015 return pid;
66016 }
66017 @@ -883,7 +906,7 @@
66018 pex_win32_pipe (struct pex_obj *obj ATTRIBUTE_UNUSED, int *p,
66019 int binary)
66020 {
66021 - return _pipe (p, 256, binary ? _O_BINARY : _O_TEXT);
66022 + return _pipe (p, 256, (binary ? _O_BINARY : _O_TEXT) | _O_NOINHERIT);
66023 }
66024
66025 /* Get a FILE pointer to read from a file descriptor. */
66026 diff -Nur a/libiberty/testsuite/test-expandargv.c b/libiberty/testsuite/test-expandargv.c
66027 --- a/libiberty/testsuite/test-expandargv.c 2006-01-20 23:55:36.000000000 +0100
66028 +++ b/libiberty/testsuite/test-expandargv.c 2010-01-25 09:50:29.615687242 +0100
66029 @@ -107,6 +107,38 @@
66030 ARGV0,
66031 0,
66032
66033 + /* Test 4 - Check for options beginning with an empty line. */
66034 + "\na\nb", /* Test 4 data */
66035 + ARGV0,
66036 + "@test-expandargv-4.lst",
66037 + 0,
66038 + ARGV0,
66039 + "a",
66040 + "b",
66041 + 0,
66042 +
66043 + /* Test 5 - Check for options containing an empty argument. */
66044 + "a\n''\nb", /* Test 5 data */
66045 + ARGV0,
66046 + "@test-expandargv-5.lst",
66047 + 0,
66048 + ARGV0,
66049 + "a",
66050 + "",
66051 + "b",
66052 + 0,
66053 +
66054 + /* Test 6 - Check for options containing a quoted newline. */
66055 + "a\n'a\n\nb'\nb", /* Test 6 data */
66056 + ARGV0,
66057 + "@test-expandargv-6.lst",
66058 + 0,
66059 + ARGV0,
66060 + "a",
66061 + "a\n\nb",
66062 + "b",
66063 + 0,
66064 +
66065 0 /* Test done marker, don't remove. */
66066 };
66067
66068 @@ -246,7 +278,7 @@
66069 /* Compare each of the argv's ... */
66070 else
66071 for (k = 0; k < argc_after; k++)
66072 - if (strncmp (argv_before[k], argv_after[k], strlen(argv_after[k])) != 0)
66073 + if (strcmp (argv_before[k], argv_after[k]) != 0)
66074 {
66075 printf ("FAIL: test-expandargv-%d. Arguments don't match.\n", i);
66076 failed++;
66077 diff -Nur a/libjava/classpath/configure b/libjava/classpath/configure
66078 --- a/libjava/classpath/configure 2009-03-16 13:08:23.000000000 +0100
66079 +++ b/libjava/classpath/configure 2010-01-25 09:50:29.625686976 +0100
66080 @@ -461,7 +461,7 @@
66081 # include <unistd.h>
66082 #endif"
66083
66084 -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir INSTALL_BINARIES_TRUE INSTALL_BINARIES_FALSE LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE CREATE_GJDOC_TRUE CREATE_GJDOC_FALSE toolexeclibdir nativeexeclibdir glibjdir CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_GJDOC_PARSER_TRUE CREATE_GJDOC_PARSER_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR GMP_CFLAGS GMP_LIBS USER_JAVAH CLASSPATH_INCLUDES vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP JAR WITH_JAR_TRUE WITH_JAR_FALSE INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR TOOLSDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP JAVA uudecode JAVAC JAVAC_IS_GCJ GCJ_JAVAC_TRUE GCJ_JAVAC_FALSE ANTLR_JAR ANTLR ac_ct_ANTLR JAVAC_MEM_OPT USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER WANT_NATIVE_BIG_INTEGER CREATE_GMPBI_LIBRARY_TRUE CREATE_GMPBI_LIBRARY_FALSE LIBOBJS LTLIBOBJS'
66085 +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir INSTALL_BINARIES_TRUE INSTALL_BINARIES_FALSE LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE CREATE_GJDOC_TRUE CREATE_GJDOC_FALSE target_noncanonical toolexecdir toolexecmainlibdir toolexeclibdir nativeexeclibdir glibjdir CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_GJDOC_PARSER_TRUE CREATE_GJDOC_PARSER_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR GMP_CFLAGS GMP_LIBS USER_JAVAH CLASSPATH_INCLUDES vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP JAR WITH_JAR_TRUE WITH_JAR_FALSE INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR TOOLSDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP JAVA uudecode JAVAC JAVAC_IS_GCJ GCJ_JAVAC_TRUE GCJ_JAVAC_FALSE ANTLR_JAR ANTLR ac_ct_ANTLR JAVAC_MEM_OPT USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER WANT_NATIVE_BIG_INTEGER CREATE_GMPBI_LIBRARY_TRUE CREATE_GMPBI_LIBRARY_FALSE LIBOBJS LTLIBOBJS'
66086 ac_subst_files=''
66087 ac_pwd=`pwd`
66088
66089 @@ -1063,6 +1063,9 @@
66090 (disabled by --disable-gmp) default=yes
66091 --disable-gjdoc compile GJDoc (disabled by --disable-gjdoc)
66092 default=yes
66093 + --enable-version-specific-runtime-libs
66094 + specify that runtime libraries should be installed
66095 + in a compiler-specific directory
66096 --enable-regen-headers automatically regenerate JNI headers default=yes if
66097 headers don't exist
66098 --enable-regen-gjdoc-parser
66099 @@ -4838,11 +4841,57 @@
66100 fi
66101
66102
66103 +# Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given.
66104 +if test "${enable_version_specific_runtime_libs+set}" = set; then
66105 + enableval="$enable_version_specific_runtime_libs"
66106 + case "$enableval" in
66107 + yes) version_specific_libs=yes ;;
66108 + no) version_specific_libs=no ;;
66109 + *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable version-specific libs" >&5
66110 +echo "$as_me: error: Unknown argument to enable/disable version-specific libs" >&2;}
66111 + { (exit 1); exit 1; }; };;
66112 + esac
66113 +else
66114 + version_specific_libs=no
66115 +
66116 +fi;
66117 +
66118 + case ${host_alias} in
66119 + "") host_noncanonical=${build_noncanonical} ;;
66120 + *) host_noncanonical=${host_alias} ;;
66121 + esac
66122 + case ${target_alias} in
66123 + "") target_noncanonical=${host_noncanonical} ;;
66124 + *) target_noncanonical=${target_alias} ;;
66125 + esac
66126 +
66127
66128 - multi_os_directory=`$CC -print-multi-os-directory`
66129 - case $multi_os_directory in
66130 - .) toolexeclibdir=${libdir} ;; # Avoid trailing /.
66131 - *) toolexeclibdir=${libdir}/${multi_os_directory} ;;
66132 + case ${version_specific_libs} in
66133 + yes)
66134 + # Need the gcc compiler version to know where to install libraries
66135 + # and header files if --enable-version-specific-runtime-libs option
66136 + # is selected.
66137 + includedir='$(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include/'
66138 + toolexecdir='$(libdir)/gcc/$(target_noncanonical)'
66139 + toolexecmainlibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
66140 + toolexeclibdir=$toolexecmainlibdir
66141 + ;;
66142 + no)
66143 + if test -n "$with_cross_host" &&
66144 + test x"$with_cross_host" != x"no"; then
66145 + # Install a library built with a cross compiler in tooldir, not libdir.
66146 + toolexecdir='$(exec_prefix)/$(target_noncanonical)'
66147 + toolexecmainlibdir='$(toolexecdir)/lib'
66148 + else
66149 + toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
66150 + toolexecmainlibdir='$(libdir)'
66151 + fi
66152 + multi_os_directory=`$CC -print-multi-os-directory`
66153 + case $multi_os_directory in
66154 + .) toolexeclibdir=$toolexecmainlibdir ;; # Avoid trailing /.
66155 + *) toolexeclibdir=$toolexecmainlibdir/$multi_os_directory ;;
66156 + esac
66157 + ;;
66158 esac
66159
66160
66161 @@ -5753,13 +5802,13 @@
66162 else
66163 lt_cv_nm_interface="BSD nm"
66164 echo "int some_variable = 0;" > conftest.$ac_ext
66165 - (eval echo "\"\$as_me:5756: $ac_compile\"" >&5)
66166 + (eval echo "\"\$as_me:5807: $ac_compile\"" >&5)
66167 (eval "$ac_compile" 2>conftest.err)
66168 cat conftest.err >&5
66169 - (eval echo "\"\$as_me:5759: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
66170 + (eval echo "\"\$as_me:5810: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
66171 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
66172 cat conftest.err >&5
66173 - (eval echo "\"\$as_me:5762: output\"" >&5)
66174 + (eval echo "\"\$as_me:5813: output\"" >&5)
66175 cat conftest.out >&5
66176 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
66177 lt_cv_nm_interface="MS dumpbin"
66178 @@ -6905,7 +6954,7 @@
66179 ;;
66180 *-*-irix6*)
66181 # Find out which ABI we are using.
66182 - echo '#line 6908 "configure"' > conftest.$ac_ext
66183 + echo '#line 6959 "configure"' > conftest.$ac_ext
66184 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
66185 (eval $ac_compile) 2>&5
66186 ac_status=$?
66187 @@ -8191,11 +8240,11 @@
66188 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
66189 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
66190 -e 's:$: $lt_compiler_flag:'`
66191 - (eval echo "\"\$as_me:8194: $lt_compile\"" >&5)
66192 + (eval echo "\"\$as_me:8245: $lt_compile\"" >&5)
66193 (eval "$lt_compile" 2>conftest.err)
66194 ac_status=$?
66195 cat conftest.err >&5
66196 - echo "$as_me:8198: \$? = $ac_status" >&5
66197 + echo "$as_me:8249: \$? = $ac_status" >&5
66198 if (exit $ac_status) && test -s "$ac_outfile"; then
66199 # The compiler can only warn and ignore the option if not recognized
66200 # So say no if there are warnings other than the usual output.
66201 @@ -8530,11 +8579,11 @@
66202 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
66203 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
66204 -e 's:$: $lt_compiler_flag:'`
66205 - (eval echo "\"\$as_me:8533: $lt_compile\"" >&5)
66206 + (eval echo "\"\$as_me:8584: $lt_compile\"" >&5)
66207 (eval "$lt_compile" 2>conftest.err)
66208 ac_status=$?
66209 cat conftest.err >&5
66210 - echo "$as_me:8537: \$? = $ac_status" >&5
66211 + echo "$as_me:8588: \$? = $ac_status" >&5
66212 if (exit $ac_status) && test -s "$ac_outfile"; then
66213 # The compiler can only warn and ignore the option if not recognized
66214 # So say no if there are warnings other than the usual output.
66215 @@ -8635,11 +8684,11 @@
66216 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
66217 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
66218 -e 's:$: $lt_compiler_flag:'`
66219 - (eval echo "\"\$as_me:8638: $lt_compile\"" >&5)
66220 + (eval echo "\"\$as_me:8689: $lt_compile\"" >&5)
66221 (eval "$lt_compile" 2>out/conftest.err)
66222 ac_status=$?
66223 cat out/conftest.err >&5
66224 - echo "$as_me:8642: \$? = $ac_status" >&5
66225 + echo "$as_me:8693: \$? = $ac_status" >&5
66226 if (exit $ac_status) && test -s out/conftest2.$ac_objext
66227 then
66228 # The compiler can only warn and ignore the option if not recognized
66229 @@ -8690,11 +8739,11 @@
66230 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
66231 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
66232 -e 's:$: $lt_compiler_flag:'`
66233 - (eval echo "\"\$as_me:8693: $lt_compile\"" >&5)
66234 + (eval echo "\"\$as_me:8744: $lt_compile\"" >&5)
66235 (eval "$lt_compile" 2>out/conftest.err)
66236 ac_status=$?
66237 cat out/conftest.err >&5
66238 - echo "$as_me:8697: \$? = $ac_status" >&5
66239 + echo "$as_me:8748: \$? = $ac_status" >&5
66240 if (exit $ac_status) && test -s out/conftest2.$ac_objext
66241 then
66242 # The compiler can only warn and ignore the option if not recognized
66243 @@ -11557,7 +11606,7 @@
66244 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
66245 lt_status=$lt_dlunknown
66246 cat > conftest.$ac_ext <<_LT_EOF
66247 -#line 11560 "configure"
66248 +#line 11611 "configure"
66249 #include "confdefs.h"
66250
66251 #if HAVE_DLFCN_H
66252 @@ -11653,7 +11702,7 @@
66253 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
66254 lt_status=$lt_dlunknown
66255 cat > conftest.$ac_ext <<_LT_EOF
66256 -#line 11656 "configure"
66257 +#line 11707 "configure"
66258 #include "confdefs.h"
66259
66260 #if HAVE_DLFCN_H
66261 @@ -16084,11 +16133,11 @@
66262 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
66263 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
66264 -e 's:$: $lt_compiler_flag:'`
66265 - (eval echo "\"\$as_me:16087: $lt_compile\"" >&5)
66266 + (eval echo "\"\$as_me:16138: $lt_compile\"" >&5)
66267 (eval "$lt_compile" 2>conftest.err)
66268 ac_status=$?
66269 cat conftest.err >&5
66270 - echo "$as_me:16091: \$? = $ac_status" >&5
66271 + echo "$as_me:16142: \$? = $ac_status" >&5
66272 if (exit $ac_status) && test -s "$ac_outfile"; then
66273 # The compiler can only warn and ignore the option if not recognized
66274 # So say no if there are warnings other than the usual output.
66275 @@ -16183,11 +16232,11 @@
66276 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
66277 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
66278 -e 's:$: $lt_compiler_flag:'`
66279 - (eval echo "\"\$as_me:16186: $lt_compile\"" >&5)
66280 + (eval echo "\"\$as_me:16237: $lt_compile\"" >&5)
66281 (eval "$lt_compile" 2>out/conftest.err)
66282 ac_status=$?
66283 cat out/conftest.err >&5
66284 - echo "$as_me:16190: \$? = $ac_status" >&5
66285 + echo "$as_me:16241: \$? = $ac_status" >&5
66286 if (exit $ac_status) && test -s out/conftest2.$ac_objext
66287 then
66288 # The compiler can only warn and ignore the option if not recognized
66289 @@ -16235,11 +16284,11 @@
66290 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
66291 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
66292 -e 's:$: $lt_compiler_flag:'`
66293 - (eval echo "\"\$as_me:16238: $lt_compile\"" >&5)
66294 + (eval echo "\"\$as_me:16289: $lt_compile\"" >&5)
66295 (eval "$lt_compile" 2>out/conftest.err)
66296 ac_status=$?
66297 cat out/conftest.err >&5
66298 - echo "$as_me:16242: \$? = $ac_status" >&5
66299 + echo "$as_me:16293: \$? = $ac_status" >&5
66300 if (exit $ac_status) && test -s out/conftest2.$ac_objext
66301 then
66302 # The compiler can only warn and ignore the option if not recognized
66303 @@ -29270,7 +29319,7 @@
66304 if uudecode$EXEEXT Test.uue; then
66305 ac_cv_prog_uudecode_base64=yes
66306 else
66307 - echo "configure: 29273: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
66308 + echo "configure: 29324: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
66309 echo "configure: failed file was:" >&5
66310 cat Test.uue >&5
66311 ac_cv_prog_uudecode_base64=no
66312 @@ -29417,7 +29466,7 @@
66313 JAVA_TEST=Object.java
66314 CLASS_TEST=Object.class
66315 cat << \EOF > $JAVA_TEST
66316 -/* #line 29420 "configure" */
66317 +/* #line 29471 "configure" */
66318 package java.lang;
66319
66320 public class Object
66321 @@ -29466,7 +29515,7 @@
66322 CLASS_TEST=Test.class
66323 TEST=Test
66324 cat << \EOF > $JAVA_TEST
66325 -/* [#]line 29469 "configure" */
66326 +/* [#]line 29520 "configure" */
66327 public class Test {
66328 public static void main (String args[]) {
66329 System.exit (0);
66330 @@ -29786,7 +29835,7 @@
66331 JAVA_TEST=Object.java
66332 CLASS_TEST=Object.class
66333 cat << \EOF > $JAVA_TEST
66334 -/* #line 29789 "configure" */
66335 +/* #line 29840 "configure" */
66336 package java.lang;
66337
66338 public class Object
66339 @@ -29827,7 +29876,7 @@
66340 JAVA_TEST=Test.java
66341 CLASS_TEST=Test.class
66342 cat << \EOF > $JAVA_TEST
66343 - /* #line 29830 "configure" */
66344 + /* #line 29881 "configure" */
66345 public class Test
66346 {
66347 public static void main(String args)
66348 @@ -31681,6 +31730,9 @@
66349 s,@CREATE_PLUGIN_FALSE@,$CREATE_PLUGIN_FALSE,;t t
66350 s,@CREATE_GJDOC_TRUE@,$CREATE_GJDOC_TRUE,;t t
66351 s,@CREATE_GJDOC_FALSE@,$CREATE_GJDOC_FALSE,;t t
66352 +s,@target_noncanonical@,$target_noncanonical,;t t
66353 +s,@toolexecdir@,$toolexecdir,;t t
66354 +s,@toolexecmainlibdir@,$toolexecmainlibdir,;t t
66355 s,@toolexeclibdir@,$toolexeclibdir,;t t
66356 s,@nativeexeclibdir@,$nativeexeclibdir,;t t
66357 s,@glibjdir@,$glibjdir,;t t
66358 diff -Nur a/libjava/classpath/configure.ac b/libjava/classpath/configure.ac
66359 --- a/libjava/classpath/configure.ac 2009-03-16 13:08:23.000000000 +0100
66360 +++ b/libjava/classpath/configure.ac 2010-01-25 09:50:29.625686976 +0100
66361 @@ -316,6 +316,16 @@
66362 dnl so that we can refer to the multilib installation directories from
66363 dnl classpath's build files.
66364 dnl -----------------------------------------------------------
66365 +AC_ARG_ENABLE(version-specific-runtime-libs,
66366 + AS_HELP_STRING([--enable-version-specific-runtime-libs],
66367 + [specify that runtime libraries should be installed in a compiler-specific directory]),
66368 + [case "$enableval" in
66369 + yes) version_specific_libs=yes ;;
66370 + no) version_specific_libs=no ;;
66371 + *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
66372 + esac],
66373 + [version_specific_libs=no]
66374 +)
66375 CLASSPATH_TOOLEXECLIBDIR
66376
66377 dnl -----------------------------------------------------------
66378 diff -Nur a/libjava/classpath/doc/api/Makefile.in b/libjava/classpath/doc/api/Makefile.in
66379 --- a/libjava/classpath/doc/api/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66380 +++ b/libjava/classpath/doc/api/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66381 @@ -334,9 +334,12 @@
66382 target = @target@
66383 target_alias = @target_alias@
66384 target_cpu = @target_cpu@
66385 +target_noncanonical = @target_noncanonical@
66386 target_os = @target_os@
66387 target_vendor = @target_vendor@
66388 +toolexecdir = @toolexecdir@
66389 toolexeclibdir = @toolexeclibdir@
66390 +toolexecmainlibdir = @toolexecmainlibdir@
66391 uudecode = @uudecode@
66392 vm_classes = @vm_classes@
66393 @CREATE_API_DOCS_TRUE@noinst_DATA = html
66394 diff -Nur a/libjava/classpath/doc/Makefile.in b/libjava/classpath/doc/Makefile.in
66395 --- a/libjava/classpath/doc/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66396 +++ b/libjava/classpath/doc/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66397 @@ -357,9 +357,12 @@
66398 target = @target@
66399 target_alias = @target_alias@
66400 target_cpu = @target_cpu@
66401 +target_noncanonical = @target_noncanonical@
66402 target_os = @target_os@
66403 target_vendor = @target_vendor@
66404 +toolexecdir = @toolexecdir@
66405 toolexeclibdir = @toolexeclibdir@
66406 +toolexecmainlibdir = @toolexecmainlibdir@
66407 uudecode = @uudecode@
66408 vm_classes = @vm_classes@
66409 SUBDIRS = api
66410 diff -Nur a/libjava/classpath/examples/Makefile.in b/libjava/classpath/examples/Makefile.in
66411 --- a/libjava/classpath/examples/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66412 +++ b/libjava/classpath/examples/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66413 @@ -343,9 +343,12 @@
66414 target = @target@
66415 target_alias = @target_alias@
66416 target_cpu = @target_cpu@
66417 +target_noncanonical = @target_noncanonical@
66418 target_os = @target_os@
66419 target_vendor = @target_vendor@
66420 +toolexecdir = @toolexecdir@
66421 toolexeclibdir = @toolexeclibdir@
66422 +toolexecmainlibdir = @toolexecmainlibdir@
66423 uudecode = @uudecode@
66424 vm_classes = @vm_classes@
66425 GLIBJ_CLASSPATH = '$(top_builddir)/lib/glibj.zip:$(top_builddir)/lib'
66426 diff -Nur a/libjava/classpath/external/jsr166/Makefile.in b/libjava/classpath/external/jsr166/Makefile.in
66427 --- a/libjava/classpath/external/jsr166/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66428 +++ b/libjava/classpath/external/jsr166/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66429 @@ -332,9 +332,12 @@
66430 target = @target@
66431 target_alias = @target_alias@
66432 target_cpu = @target_cpu@
66433 +target_noncanonical = @target_noncanonical@
66434 target_os = @target_os@
66435 target_vendor = @target_vendor@
66436 +toolexecdir = @toolexecdir@
66437 toolexeclibdir = @toolexeclibdir@
66438 +toolexecmainlibdir = @toolexecmainlibdir@
66439 uudecode = @uudecode@
66440 vm_classes = @vm_classes@
66441 EXTRA_DIST = IMPORTING \
66442 diff -Nur a/libjava/classpath/external/Makefile.in b/libjava/classpath/external/Makefile.in
66443 --- a/libjava/classpath/external/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66444 +++ b/libjava/classpath/external/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66445 @@ -341,9 +341,12 @@
66446 target = @target@
66447 target_alias = @target_alias@
66448 target_cpu = @target_cpu@
66449 +target_noncanonical = @target_noncanonical@
66450 target_os = @target_os@
66451 target_vendor = @target_vendor@
66452 +toolexecdir = @toolexecdir@
66453 toolexeclibdir = @toolexeclibdir@
66454 +toolexecmainlibdir = @toolexecmainlibdir@
66455 uudecode = @uudecode@
66456 vm_classes = @vm_classes@
66457 SUBDIRS = sax w3c_dom relaxngDatatype jsr166
66458 diff -Nur a/libjava/classpath/external/relaxngDatatype/Makefile.in b/libjava/classpath/external/relaxngDatatype/Makefile.in
66459 --- a/libjava/classpath/external/relaxngDatatype/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66460 +++ b/libjava/classpath/external/relaxngDatatype/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66461 @@ -332,9 +332,12 @@
66462 target = @target@
66463 target_alias = @target_alias@
66464 target_cpu = @target_cpu@
66465 +target_noncanonical = @target_noncanonical@
66466 target_os = @target_os@
66467 target_vendor = @target_vendor@
66468 +toolexecdir = @toolexecdir@
66469 toolexeclibdir = @toolexeclibdir@
66470 +toolexecmainlibdir = @toolexecmainlibdir@
66471 uudecode = @uudecode@
66472 vm_classes = @vm_classes@
66473 EXTRA_DIST = README.txt \
66474 diff -Nur a/libjava/classpath/external/sax/Makefile.in b/libjava/classpath/external/sax/Makefile.in
66475 --- a/libjava/classpath/external/sax/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66476 +++ b/libjava/classpath/external/sax/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66477 @@ -332,9 +332,12 @@
66478 target = @target@
66479 target_alias = @target_alias@
66480 target_cpu = @target_cpu@
66481 +target_noncanonical = @target_noncanonical@
66482 target_os = @target_os@
66483 target_vendor = @target_vendor@
66484 +toolexecdir = @toolexecdir@
66485 toolexeclibdir = @toolexeclibdir@
66486 +toolexecmainlibdir = @toolexecmainlibdir@
66487 uudecode = @uudecode@
66488 vm_classes = @vm_classes@
66489 EXTRA_DIST = README \
66490 diff -Nur a/libjava/classpath/external/w3c_dom/Makefile.in b/libjava/classpath/external/w3c_dom/Makefile.in
66491 --- a/libjava/classpath/external/w3c_dom/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66492 +++ b/libjava/classpath/external/w3c_dom/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66493 @@ -332,9 +332,12 @@
66494 target = @target@
66495 target_alias = @target_alias@
66496 target_cpu = @target_cpu@
66497 +target_noncanonical = @target_noncanonical@
66498 target_os = @target_os@
66499 target_vendor = @target_vendor@
66500 +toolexecdir = @toolexecdir@
66501 toolexeclibdir = @toolexeclibdir@
66502 +toolexecmainlibdir = @toolexecmainlibdir@
66503 uudecode = @uudecode@
66504 vm_classes = @vm_classes@
66505 EXTRA_DIST = README \
66506 diff -Nur a/libjava/classpath/include/Makefile.in b/libjava/classpath/include/Makefile.in
66507 --- a/libjava/classpath/include/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66508 +++ b/libjava/classpath/include/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66509 @@ -333,9 +333,12 @@
66510 target = @target@
66511 target_alias = @target_alias@
66512 target_cpu = @target_cpu@
66513 +target_noncanonical = @target_noncanonical@
66514 target_os = @target_os@
66515 target_vendor = @target_vendor@
66516 +toolexecdir = @toolexecdir@
66517 toolexeclibdir = @toolexeclibdir@
66518 +toolexecmainlibdir = @toolexecmainlibdir@
66519 uudecode = @uudecode@
66520 vm_classes = @vm_classes@
66521 @CREATE_JNI_HEADERS_FALSE@DISTCLEANFILES = jni_md.h config-int.h
66522 diff -Nur a/libjava/classpath/lib/Makefile.in b/libjava/classpath/lib/Makefile.in
66523 --- a/libjava/classpath/lib/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66524 +++ b/libjava/classpath/lib/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66525 @@ -337,9 +337,12 @@
66526 target = @target@
66527 target_alias = @target_alias@
66528 target_cpu = @target_cpu@
66529 +target_noncanonical = @target_noncanonical@
66530 target_os = @target_os@
66531 target_vendor = @target_vendor@
66532 +toolexecdir = @toolexecdir@
66533 toolexeclibdir = @toolexeclibdir@
66534 +toolexecmainlibdir = @toolexecmainlibdir@
66535 uudecode = @uudecode@
66536 vm_classes = @vm_classes@
66537 JAVA_DEPEND = java.dep
66538 diff -Nur a/libjava/classpath/m4/acinclude.m4 b/libjava/classpath/m4/acinclude.m4
66539 --- a/libjava/classpath/m4/acinclude.m4 2008-10-21 19:55:01.000000000 +0200
66540 +++ b/libjava/classpath/m4/acinclude.m4 2010-01-25 09:50:29.625686976 +0100
66541 @@ -247,11 +247,45 @@
66542 dnl -----------------------------------------------------------
66543 AC_DEFUN([CLASSPATH_TOOLEXECLIBDIR],
66544 [
66545 - multi_os_directory=`$CC -print-multi-os-directory`
66546 - case $multi_os_directory in
66547 - .) toolexeclibdir=${libdir} ;; # Avoid trailing /.
66548 - *) toolexeclibdir=${libdir}/${multi_os_directory} ;;
66549 + case ${host_alias} in
66550 + "") host_noncanonical=${build_noncanonical} ;;
66551 + *) host_noncanonical=${host_alias} ;;
66552 esac
66553 + case ${target_alias} in
66554 + "") target_noncanonical=${host_noncanonical} ;;
66555 + *) target_noncanonical=${target_alias} ;;
66556 + esac
66557 + AC_SUBST(target_noncanonical)
66558 +
66559 + case ${version_specific_libs} in
66560 + yes)
66561 + # Need the gcc compiler version to know where to install libraries
66562 + # and header files if --enable-version-specific-runtime-libs option
66563 + # is selected.
66564 + includedir='$(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include/'
66565 + toolexecdir='$(libdir)/gcc/$(target_noncanonical)'
66566 + toolexecmainlibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
66567 + toolexeclibdir=$toolexecmainlibdir
66568 + ;;
66569 + no)
66570 + if test -n "$with_cross_host" &&
66571 + test x"$with_cross_host" != x"no"; then
66572 + # Install a library built with a cross compiler in tooldir, not libdir.
66573 + toolexecdir='$(exec_prefix)/$(target_noncanonical)'
66574 + toolexecmainlibdir='$(toolexecdir)/lib'
66575 + else
66576 + toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
66577 + toolexecmainlibdir='$(libdir)'
66578 + fi
66579 + multi_os_directory=`$CC -print-multi-os-directory`
66580 + case $multi_os_directory in
66581 + .) toolexeclibdir=$toolexecmainlibdir ;; # Avoid trailing /.
66582 + *) toolexeclibdir=$toolexecmainlibdir/$multi_os_directory ;;
66583 + esac
66584 + ;;
66585 + esac
66586 + AC_SUBST(toolexecdir)
66587 + AC_SUBST(toolexecmainlibdir)
66588 AC_SUBST(toolexeclibdir)
66589 ])
66590
66591 diff -Nur a/libjava/classpath/Makefile.in b/libjava/classpath/Makefile.in
66592 --- a/libjava/classpath/Makefile.in 2009-02-25 22:40:28.000000000 +0100
66593 +++ b/libjava/classpath/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66594 @@ -380,9 +380,12 @@
66595 target = @target@
66596 target_alias = @target_alias@
66597 target_cpu = @target_cpu@
66598 +target_noncanonical = @target_noncanonical@
66599 target_os = @target_os@
66600 target_vendor = @target_vendor@
66601 +toolexecdir = @toolexecdir@
66602 toolexeclibdir = @toolexeclibdir@
66603 +toolexecmainlibdir = @toolexecmainlibdir@
66604 uudecode = @uudecode@
66605 vm_classes = @vm_classes@
66606
66607 diff -Nur a/libjava/classpath/native/fdlibm/Makefile.in b/libjava/classpath/native/fdlibm/Makefile.in
66608 --- a/libjava/classpath/native/fdlibm/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66609 +++ b/libjava/classpath/native/fdlibm/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66610 @@ -359,9 +359,12 @@
66611 target = @target@
66612 target_alias = @target_alias@
66613 target_cpu = @target_cpu@
66614 +target_noncanonical = @target_noncanonical@
66615 target_os = @target_os@
66616 target_vendor = @target_vendor@
66617 +toolexecdir = @toolexecdir@
66618 toolexeclibdir = @toolexeclibdir@
66619 +toolexecmainlibdir = @toolexecmainlibdir@
66620 uudecode = @uudecode@
66621 vm_classes = @vm_classes@
66622 noinst_LTLIBRARIES = libfdlibm.la
66623 diff -Nur a/libjava/classpath/native/jawt/Makefile.in b/libjava/classpath/native/jawt/Makefile.in
66624 --- a/libjava/classpath/native/jawt/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66625 +++ b/libjava/classpath/native/jawt/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66626 @@ -359,9 +359,12 @@
66627 target = @target@
66628 target_alias = @target_alias@
66629 target_cpu = @target_cpu@
66630 +target_noncanonical = @target_noncanonical@
66631 target_os = @target_os@
66632 target_vendor = @target_vendor@
66633 +toolexecdir = @toolexecdir@
66634 toolexeclibdir = @toolexeclibdir@
66635 +toolexecmainlibdir = @toolexecmainlibdir@
66636 uudecode = @uudecode@
66637 vm_classes = @vm_classes@
66638 nativeexeclib_LTLIBRARIES = libjawt.la
66639 diff -Nur a/libjava/classpath/native/jni/classpath/Makefile.in b/libjava/classpath/native/jni/classpath/Makefile.in
66640 --- a/libjava/classpath/native/jni/classpath/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66641 +++ b/libjava/classpath/native/jni/classpath/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66642 @@ -350,9 +350,12 @@
66643 target = @target@
66644 target_alias = @target_alias@
66645 target_cpu = @target_cpu@
66646 +target_noncanonical = @target_noncanonical@
66647 target_os = @target_os@
66648 target_vendor = @target_vendor@
66649 +toolexecdir = @toolexecdir@
66650 toolexeclibdir = @toolexeclibdir@
66651 +toolexecmainlibdir = @toolexecmainlibdir@
66652 uudecode = @uudecode@
66653 vm_classes = @vm_classes@
66654
66655 diff -Nur a/libjava/classpath/native/jni/gconf-peer/Makefile.in b/libjava/classpath/native/jni/gconf-peer/Makefile.in
66656 --- a/libjava/classpath/native/jni/gconf-peer/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66657 +++ b/libjava/classpath/native/jni/gconf-peer/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66658 @@ -359,9 +359,12 @@
66659 target = @target@
66660 target_alias = @target_alias@
66661 target_cpu = @target_cpu@
66662 +target_noncanonical = @target_noncanonical@
66663 target_os = @target_os@
66664 target_vendor = @target_vendor@
66665 +toolexecdir = @toolexecdir@
66666 toolexeclibdir = @toolexeclibdir@
66667 +toolexecmainlibdir = @toolexecmainlibdir@
66668 uudecode = @uudecode@
66669 vm_classes = @vm_classes@
66670 nativeexeclib_LTLIBRARIES = libgconfpeer.la
66671 diff -Nur a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in
66672 --- a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66673 +++ b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66674 @@ -361,9 +361,12 @@
66675 target = @target@
66676 target_alias = @target_alias@
66677 target_cpu = @target_cpu@
66678 +target_noncanonical = @target_noncanonical@
66679 target_os = @target_os@
66680 target_vendor = @target_vendor@
66681 +toolexecdir = @toolexecdir@
66682 toolexeclibdir = @toolexeclibdir@
66683 +toolexecmainlibdir = @toolexecmainlibdir@
66684 uudecode = @uudecode@
66685 vm_classes = @vm_classes@
66686 nativeexeclib_LTLIBRARIES = libgstreamerpeer.la
66687 diff -Nur a/libjava/classpath/native/jni/gtk-peer/Makefile.in b/libjava/classpath/native/jni/gtk-peer/Makefile.in
66688 --- a/libjava/classpath/native/jni/gtk-peer/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66689 +++ b/libjava/classpath/native/jni/gtk-peer/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66690 @@ -397,9 +397,12 @@
66691 target = @target@
66692 target_alias = @target_alias@
66693 target_cpu = @target_cpu@
66694 +target_noncanonical = @target_noncanonical@
66695 target_os = @target_os@
66696 target_vendor = @target_vendor@
66697 +toolexecdir = @toolexecdir@
66698 toolexeclibdir = @toolexeclibdir@
66699 +toolexecmainlibdir = @toolexecmainlibdir@
66700 uudecode = @uudecode@
66701 vm_classes = @vm_classes@
66702 nativeexeclib_LTLIBRARIES = libgtkpeer.la
66703 diff -Nur a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in
66704 --- a/libjava/classpath/native/jni/java-io/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66705 +++ b/libjava/classpath/native/jni/java-io/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66706 @@ -361,9 +361,12 @@
66707 target = @target@
66708 target_alias = @target_alias@
66709 target_cpu = @target_cpu@
66710 +target_noncanonical = @target_noncanonical@
66711 target_os = @target_os@
66712 target_vendor = @target_vendor@
66713 +toolexecdir = @toolexecdir@
66714 toolexeclibdir = @toolexeclibdir@
66715 +toolexecmainlibdir = @toolexecmainlibdir@
66716 uudecode = @uudecode@
66717 vm_classes = @vm_classes@
66718 nativeexeclib_LTLIBRARIES = libjavaio.la
66719 diff -Nur a/libjava/classpath/native/jni/java-lang/Makefile.in b/libjava/classpath/native/jni/java-lang/Makefile.in
66720 --- a/libjava/classpath/native/jni/java-lang/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66721 +++ b/libjava/classpath/native/jni/java-lang/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66722 @@ -375,9 +375,12 @@
66723 target = @target@
66724 target_alias = @target_alias@
66725 target_cpu = @target_cpu@
66726 +target_noncanonical = @target_noncanonical@
66727 target_os = @target_os@
66728 target_vendor = @target_vendor@
66729 +toolexecdir = @toolexecdir@
66730 toolexeclibdir = @toolexeclibdir@
66731 +toolexecmainlibdir = @toolexecmainlibdir@
66732 uudecode = @uudecode@
66733 vm_classes = @vm_classes@
66734 nativeexeclib_LTLIBRARIES = libjavalang.la libjavalangreflect.la libjavalangmanagement.la
66735 diff -Nur a/libjava/classpath/native/jni/java-math/Makefile.in b/libjava/classpath/native/jni/java-math/Makefile.in
66736 --- a/libjava/classpath/native/jni/java-math/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66737 +++ b/libjava/classpath/native/jni/java-math/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66738 @@ -359,9 +359,12 @@
66739 target = @target@
66740 target_alias = @target_alias@
66741 target_cpu = @target_cpu@
66742 +target_noncanonical = @target_noncanonical@
66743 target_os = @target_os@
66744 target_vendor = @target_vendor@
66745 +toolexecdir = @toolexecdir@
66746 toolexeclibdir = @toolexeclibdir@
66747 +toolexecmainlibdir = @toolexecmainlibdir@
66748 uudecode = @uudecode@
66749 vm_classes = @vm_classes@
66750 nativeexeclib_LTLIBRARIES = libjavamath.la
66751 diff -Nur a/libjava/classpath/native/jni/java-net/Makefile.in b/libjava/classpath/native/jni/java-net/Makefile.in
66752 --- a/libjava/classpath/native/jni/java-net/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66753 +++ b/libjava/classpath/native/jni/java-net/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66754 @@ -371,9 +371,12 @@
66755 target = @target@
66756 target_alias = @target_alias@
66757 target_cpu = @target_cpu@
66758 +target_noncanonical = @target_noncanonical@
66759 target_os = @target_os@
66760 target_vendor = @target_vendor@
66761 +toolexecdir = @toolexecdir@
66762 toolexeclibdir = @toolexeclibdir@
66763 +toolexecmainlibdir = @toolexecmainlibdir@
66764 uudecode = @uudecode@
66765 vm_classes = @vm_classes@
66766 nativeexeclib_LTLIBRARIES = libjavanet.la
66767 diff -Nur a/libjava/classpath/native/jni/java-nio/Makefile.in b/libjava/classpath/native/jni/java-nio/Makefile.in
66768 --- a/libjava/classpath/native/jni/java-nio/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66769 +++ b/libjava/classpath/native/jni/java-nio/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66770 @@ -369,9 +369,12 @@
66771 target = @target@
66772 target_alias = @target_alias@
66773 target_cpu = @target_cpu@
66774 +target_noncanonical = @target_noncanonical@
66775 target_os = @target_os@
66776 target_vendor = @target_vendor@
66777 +toolexecdir = @toolexecdir@
66778 toolexeclibdir = @toolexeclibdir@
66779 +toolexecmainlibdir = @toolexecmainlibdir@
66780 uudecode = @uudecode@
66781 vm_classes = @vm_classes@
66782 nativeexeclib_LTLIBRARIES = libjavanio.la
66783 diff -Nur a/libjava/classpath/native/jni/java-util/Makefile.in b/libjava/classpath/native/jni/java-util/Makefile.in
66784 --- a/libjava/classpath/native/jni/java-util/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66785 +++ b/libjava/classpath/native/jni/java-util/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66786 @@ -358,9 +358,12 @@
66787 target = @target@
66788 target_alias = @target_alias@
66789 target_cpu = @target_cpu@
66790 +target_noncanonical = @target_noncanonical@
66791 target_os = @target_os@
66792 target_vendor = @target_vendor@
66793 +toolexecdir = @toolexecdir@
66794 toolexeclibdir = @toolexeclibdir@
66795 +toolexecmainlibdir = @toolexecmainlibdir@
66796 uudecode = @uudecode@
66797 vm_classes = @vm_classes@
66798 nativeexeclib_LTLIBRARIES = libjavautil.la
66799 diff -Nur a/libjava/classpath/native/jni/Makefile.in b/libjava/classpath/native/jni/Makefile.in
66800 --- a/libjava/classpath/native/jni/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66801 +++ b/libjava/classpath/native/jni/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66802 @@ -340,9 +340,12 @@
66803 target = @target@
66804 target_alias = @target_alias@
66805 target_cpu = @target_cpu@
66806 +target_noncanonical = @target_noncanonical@
66807 target_os = @target_os@
66808 target_vendor = @target_vendor@
66809 +toolexecdir = @toolexecdir@
66810 toolexeclibdir = @toolexeclibdir@
66811 +toolexecmainlibdir = @toolexecmainlibdir@
66812 uudecode = @uudecode@
66813 vm_classes = @vm_classes@
66814 @CREATE_CORE_JNI_LIBRARIES_TRUE@JNIDIRS = native-lib java-io java-lang java-net java-nio java-util
66815 diff -Nur a/libjava/classpath/native/jni/midi-alsa/Makefile.in b/libjava/classpath/native/jni/midi-alsa/Makefile.in
66816 --- a/libjava/classpath/native/jni/midi-alsa/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66817 +++ b/libjava/classpath/native/jni/midi-alsa/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66818 @@ -361,9 +361,12 @@
66819 target = @target@
66820 target_alias = @target_alias@
66821 target_cpu = @target_cpu@
66822 +target_noncanonical = @target_noncanonical@
66823 target_os = @target_os@
66824 target_vendor = @target_vendor@
66825 +toolexecdir = @toolexecdir@
66826 toolexeclibdir = @toolexeclibdir@
66827 +toolexecmainlibdir = @toolexecmainlibdir@
66828 uudecode = @uudecode@
66829 vm_classes = @vm_classes@
66830 nativeexeclib_LTLIBRARIES = libgjsmalsa.la
66831 diff -Nur a/libjava/classpath/native/jni/midi-dssi/Makefile.in b/libjava/classpath/native/jni/midi-dssi/Makefile.in
66832 --- a/libjava/classpath/native/jni/midi-dssi/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66833 +++ b/libjava/classpath/native/jni/midi-dssi/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66834 @@ -361,9 +361,12 @@
66835 target = @target@
66836 target_alias = @target_alias@
66837 target_cpu = @target_cpu@
66838 +target_noncanonical = @target_noncanonical@
66839 target_os = @target_os@
66840 target_vendor = @target_vendor@
66841 +toolexecdir = @toolexecdir@
66842 toolexeclibdir = @toolexeclibdir@
66843 +toolexecmainlibdir = @toolexecmainlibdir@
66844 uudecode = @uudecode@
66845 vm_classes = @vm_classes@
66846 nativeexeclib_LTLIBRARIES = libgjsmdssi.la
66847 diff -Nur a/libjava/classpath/native/jni/native-lib/Makefile.in b/libjava/classpath/native/jni/native-lib/Makefile.in
66848 --- a/libjava/classpath/native/jni/native-lib/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66849 +++ b/libjava/classpath/native/jni/native-lib/Makefile.in 2010-01-25 09:50:29.625686976 +0100
66850 @@ -350,9 +350,12 @@
66851 target = @target@
66852 target_alias = @target_alias@
66853 target_cpu = @target_cpu@
66854 +target_noncanonical = @target_noncanonical@
66855 target_os = @target_os@
66856 target_vendor = @target_vendor@
66857 +toolexecdir = @toolexecdir@
66858 toolexeclibdir = @toolexeclibdir@
66859 +toolexecmainlibdir = @toolexecmainlibdir@
66860 uudecode = @uudecode@
66861 vm_classes = @vm_classes@
66862 noinst_LTLIBRARIES = libclasspathnative.la
66863 diff -Nur a/libjava/classpath/native/jni/qt-peer/Makefile.in b/libjava/classpath/native/jni/qt-peer/Makefile.in
66864 --- a/libjava/classpath/native/jni/qt-peer/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66865 +++ b/libjava/classpath/native/jni/qt-peer/Makefile.in 2010-01-25 09:50:29.635686641 +0100
66866 @@ -376,9 +376,12 @@
66867 target = @target@
66868 target_alias = @target_alias@
66869 target_cpu = @target_cpu@
66870 +target_noncanonical = @target_noncanonical@
66871 target_os = @target_os@
66872 target_vendor = @target_vendor@
66873 +toolexecdir = @toolexecdir@
66874 toolexeclibdir = @toolexeclibdir@
66875 +toolexecmainlibdir = @toolexecmainlibdir@
66876 uudecode = @uudecode@
66877 vm_classes = @vm_classes@
66878 noinst_LTLIBRARIES = libqtpeer.la
66879 diff -Nur a/libjava/classpath/native/jni/xmlj/Makefile.in b/libjava/classpath/native/jni/xmlj/Makefile.in
66880 --- a/libjava/classpath/native/jni/xmlj/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66881 +++ b/libjava/classpath/native/jni/xmlj/Makefile.in 2010-01-25 09:50:29.635686641 +0100
66882 @@ -360,9 +360,12 @@
66883 target = @target@
66884 target_alias = @target_alias@
66885 target_cpu = @target_cpu@
66886 +target_noncanonical = @target_noncanonical@
66887 target_os = @target_os@
66888 target_vendor = @target_vendor@
66889 +toolexecdir = @toolexecdir@
66890 toolexeclibdir = @toolexeclibdir@
66891 +toolexecmainlibdir = @toolexecmainlibdir@
66892 uudecode = @uudecode@
66893 vm_classes = @vm_classes@
66894 nativeexeclib_LTLIBRARIES = libxmlj.la
66895 diff -Nur a/libjava/classpath/native/Makefile.in b/libjava/classpath/native/Makefile.in
66896 --- a/libjava/classpath/native/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66897 +++ b/libjava/classpath/native/Makefile.in 2010-01-25 09:50:29.635686641 +0100
66898 @@ -340,9 +340,12 @@
66899 target = @target@
66900 target_alias = @target_alias@
66901 target_cpu = @target_cpu@
66902 +target_noncanonical = @target_noncanonical@
66903 target_os = @target_os@
66904 target_vendor = @target_vendor@
66905 +toolexecdir = @toolexecdir@
66906 toolexeclibdir = @toolexeclibdir@
66907 +toolexecmainlibdir = @toolexecmainlibdir@
66908 uudecode = @uudecode@
66909 vm_classes = @vm_classes@
66910 @CREATE_JNI_LIBRARIES_TRUE@JNIDIR = jni
66911 diff -Nur a/libjava/classpath/native/plugin/Makefile.in b/libjava/classpath/native/plugin/Makefile.in
66912 --- a/libjava/classpath/native/plugin/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66913 +++ b/libjava/classpath/native/plugin/Makefile.in 2010-01-25 09:50:29.635686641 +0100
66914 @@ -358,9 +358,12 @@
66915 target = @target@
66916 target_alias = @target_alias@
66917 target_cpu = @target_cpu@
66918 +target_noncanonical = @target_noncanonical@
66919 target_os = @target_os@
66920 target_vendor = @target_vendor@
66921 +toolexecdir = @toolexecdir@
66922 toolexeclibdir = @toolexeclibdir@
66923 +toolexecmainlibdir = @toolexecmainlibdir@
66924 uudecode = @uudecode@
66925 vm_classes = @vm_classes@
66926 nativeexeclib_LTLIBRARIES = libgcjwebplugin.la
66927 diff -Nur a/libjava/classpath/resource/Makefile.in b/libjava/classpath/resource/Makefile.in
66928 --- a/libjava/classpath/resource/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66929 +++ b/libjava/classpath/resource/Makefile.in 2010-01-25 09:50:29.635686641 +0100
66930 @@ -343,9 +343,12 @@
66931 target = @target@
66932 target_alias = @target_alias@
66933 target_cpu = @target_cpu@
66934 +target_noncanonical = @target_noncanonical@
66935 target_os = @target_os@
66936 target_vendor = @target_vendor@
66937 +toolexecdir = @toolexecdir@
66938 toolexeclibdir = @toolexeclibdir@
66939 +toolexecmainlibdir = @toolexecmainlibdir@
66940 uudecode = @uudecode@
66941 vm_classes = @vm_classes@
66942 logging_DATA = java/util/logging/logging.properties
66943 diff -Nur a/libjava/classpath/scripts/Makefile.in b/libjava/classpath/scripts/Makefile.in
66944 --- a/libjava/classpath/scripts/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66945 +++ b/libjava/classpath/scripts/Makefile.in 2010-01-25 09:50:29.635686641 +0100
66946 @@ -333,9 +333,12 @@
66947 target = @target@
66948 target_alias = @target_alias@
66949 target_cpu = @target_cpu@
66950 +target_noncanonical = @target_noncanonical@
66951 target_os = @target_os@
66952 target_vendor = @target_vendor@
66953 +toolexecdir = @toolexecdir@
66954 toolexeclibdir = @toolexeclibdir@
66955 +toolexecmainlibdir = @toolexecmainlibdir@
66956 uudecode = @uudecode@
66957 vm_classes = @vm_classes@
66958 EXTRA_DIST = generate-locale-list.sh import-cacerts.sh
66959 diff -Nur a/libjava/classpath/tools/Makefile.in b/libjava/classpath/tools/Makefile.in
66960 --- a/libjava/classpath/tools/Makefile.in 2008-11-12 21:55:13.000000000 +0100
66961 +++ b/libjava/classpath/tools/Makefile.in 2010-01-25 09:50:29.635686641 +0100
66962 @@ -448,9 +448,12 @@
66963 target = @target@
66964 target_alias = @target_alias@
66965 target_cpu = @target_cpu@
66966 +target_noncanonical = @target_noncanonical@
66967 target_os = @target_os@
66968 target_vendor = @target_vendor@
66969 +toolexecdir = @toolexecdir@
66970 toolexeclibdir = @toolexeclibdir@
66971 +toolexecmainlibdir = @toolexecmainlibdir@
66972 uudecode = @uudecode@
66973 vm_classes = @vm_classes@
66974 @CREATE_GJDOC_TRUE@gjdoc_gendir = ${top_srcdir}/tools/generated
66975 diff -Nur a/libjava/configure b/libjava/configure
66976 --- a/libjava/configure 2009-07-22 09:43:59.000000000 +0200
66977 +++ b/libjava/configure 2010-01-25 09:50:29.635686641 +0100
66978 @@ -26501,10 +26501,10 @@
66979 multi_os_directory=`$CC -print-multi-os-directory`
66980 case $multi_os_directory in
66981 .)
66982 - dbexecdir='$(libdir)/'$gcjsubdir # Avoid /.
66983 + dbexecdir='$(toolexeclibdir)/'$gcjsubdir # Avoid /.
66984 ;;
66985 *)
66986 - dbexecdir='$(libdir)/'$multi_os_directory/$gcjsubdir
66987 + dbexecdir='$(toolexeclibdir)/'$multi_os_directory/$gcjsubdir
66988 ;;
66989 esac
66990
66991 @@ -27652,6 +27652,74 @@
66992 ac_status=$?
66993 echo "$as_me:$LINENO: \$? = $ac_status" >&5
66994 (exit $ac_status); }; }; then
66995 + chktls_save_LDFLAGS="$LDFLAGS"
66996 + case $host in
66997 + *-*-linux*)
66998 + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
66999 + ;;
67000 + esac
67001 + chktls_save_CFLAGS="$CFLAGS"
67002 + CFLAGS="-fPIC $CFLAGS"
67003 + if test x$gcc_no_link = xyes; then
67004 + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
67005 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
67006 + { (exit 1); exit 1; }; }
67007 +fi
67008 +cat >conftest.$ac_ext <<_ACEOF
67009 +int f() { return 0; }
67010 +_ACEOF
67011 +rm -f conftest.$ac_objext conftest$ac_exeext
67012 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67013 + (eval $ac_link) 2>conftest.er1
67014 + ac_status=$?
67015 + grep -v '^ *+' conftest.er1 >conftest.err
67016 + rm -f conftest.er1
67017 + cat conftest.err >&5
67018 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67019 + (exit $ac_status); } &&
67020 + { ac_try='test -z "$ac_c_werror_flag"
67021 + || test ! -s conftest.err'
67022 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67023 + (eval $ac_try) 2>&5
67024 + ac_status=$?
67025 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67026 + (exit $ac_status); }; } &&
67027 + { ac_try='test -s conftest$ac_exeext'
67028 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67029 + (eval $ac_try) 2>&5
67030 + ac_status=$?
67031 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67032 + (exit $ac_status); }; }; then
67033 + if test x$gcc_no_link = xyes; then
67034 + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
67035 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
67036 + { (exit 1); exit 1; }; }
67037 +fi
67038 +cat >conftest.$ac_ext <<_ACEOF
67039 +__thread int a; int b; int f() { return a = b; }
67040 +_ACEOF
67041 +rm -f conftest.$ac_objext conftest$ac_exeext
67042 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67043 + (eval $ac_link) 2>conftest.er1
67044 + ac_status=$?
67045 + grep -v '^ *+' conftest.er1 >conftest.err
67046 + rm -f conftest.er1
67047 + cat conftest.err >&5
67048 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67049 + (exit $ac_status); } &&
67050 + { ac_try='test -z "$ac_c_werror_flag"
67051 + || test ! -s conftest.err'
67052 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67053 + (eval $ac_try) 2>&5
67054 + ac_status=$?
67055 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67056 + (exit $ac_status); }; } &&
67057 + { ac_try='test -s conftest$ac_exeext'
67058 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67059 + (eval $ac_try) 2>&5
67060 + ac_status=$?
67061 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67062 + (exit $ac_status); }; }; then
67063 gcc_cv_have_tls=yes
67064 else
67065 echo "$as_me: failed program was:" >&5
67066 @@ -27661,6 +27729,24 @@
67067 fi
67068 rm -f conftest.err conftest.$ac_objext \
67069 conftest$ac_exeext conftest.$ac_ext
67070 +else
67071 + echo "$as_me: failed program was:" >&5
67072 +sed 's/^/| /' conftest.$ac_ext >&5
67073 +
67074 +gcc_cv_have_tls=yes
67075 +fi
67076 +rm -f conftest.err conftest.$ac_objext \
67077 + conftest$ac_exeext conftest.$ac_ext
67078 + CFLAGS="$chktls_save_CFLAGS"
67079 + LDFLAGS="$chktls_save_LDFLAGS"
67080 +else
67081 + echo "$as_me: failed program was:" >&5
67082 +sed 's/^/| /' conftest.$ac_ext >&5
67083 +
67084 +gcc_cv_have_tls=no
67085 +fi
67086 +rm -f conftest.err conftest.$ac_objext \
67087 + conftest$ac_exeext conftest.$ac_ext
67088
67089
67090 else
67091 diff -Nur a/libjava/configure.ac b/libjava/configure.ac
67092 --- a/libjava/configure.ac 2009-04-26 16:24:38.000000000 +0200
67093 +++ b/libjava/configure.ac 2010-01-25 09:50:29.635686641 +0100
67094 @@ -1490,10 +1490,10 @@
67095 multi_os_directory=`$CC -print-multi-os-directory`
67096 case $multi_os_directory in
67097 .)
67098 - dbexecdir='$(libdir)/'$gcjsubdir # Avoid /.
67099 + dbexecdir='$(toolexeclibdir)/'$gcjsubdir # Avoid /.
67100 ;;
67101 *)
67102 - dbexecdir='$(libdir)/'$multi_os_directory/$gcjsubdir
67103 + dbexecdir='$(toolexeclibdir)/'$multi_os_directory/$gcjsubdir
67104 ;;
67105 esac
67106 AC_SUBST(dbexecdir)
67107 diff -Nur a/libjava/Makefile.am b/libjava/Makefile.am
67108 --- a/libjava/Makefile.am 2009-05-11 10:21:39.000000000 +0200
67109 +++ b/libjava/Makefile.am 2010-01-25 09:50:29.635686641 +0100
67110 @@ -55,9 +55,14 @@
67111
67112 dbexec_LTLIBRARIES = libjvm.la
67113
67114 -pkgconfigdir = $(libdir)/pkgconfig
67115 +# Install the pkgconfig file in a target-specific directory, since the
67116 +# libraries it indicates
67117
67118 -jardir = $(datadir)/java
67119 +pkgconfigdir = $(toolexeclibdir)/pkgconfig
67120 +
67121 +# We install the JAR in a target-specific directory so that toolchains
67122 +# build from different sources can be installed in the same directory.
67123 +jardir = $(prefix)/$(target_noncanonical)/share/java
67124 jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar
67125 if INSTALL_ECJ_JAR
67126 jar_DATA += $(ECJ_BUILD_JAR)
67127 diff -Nur a/libjava/Makefile.in b/libjava/Makefile.in
67128 --- a/libjava/Makefile.in 2009-07-22 09:43:59.000000000 +0200
67129 +++ b/libjava/Makefile.in 2010-01-25 09:50:29.645688750 +0100
67130 @@ -916,8 +916,14 @@
67131 $(am__append_2) $(am__append_3)
67132 toolexecmainlib_DATA = libgcj.spec
67133 dbexec_LTLIBRARIES = libjvm.la
67134 -pkgconfigdir = $(libdir)/pkgconfig
67135 -jardir = $(datadir)/java
67136 +
67137 +# Install the pkgconfig file in a target-specific directory, since the
67138 +# libraries it indicates
67139 +pkgconfigdir = $(toolexeclibdir)/pkgconfig
67140 +
67141 +# We install the JAR in a target-specific directory so that toolchains
67142 +# build from different sources can be installed in the same directory.
67143 +jardir = $(prefix)/$(target_noncanonical)/share/java
67144 jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar \
67145 $(am__append_4)
67146 @JAVA_HOME_SET_FALSE@JAVA_HOME_DIR = $(prefix)
67147 diff -Nur a/libmudflap/configure b/libmudflap/configure
67148 --- a/libmudflap/configure 2009-03-01 18:49:31.000000000 +0100
67149 +++ b/libmudflap/configure 2010-01-25 09:50:29.645688750 +0100
67150 @@ -12787,6 +12787,64 @@
67151 ac_status=$?
67152 echo "$as_me:$LINENO: \$? = $ac_status" >&5
67153 (exit $ac_status); }; }; then
67154 + chktls_save_LDFLAGS="$LDFLAGS"
67155 + case $host in
67156 + *-*-linux*)
67157 + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
67158 + ;;
67159 + esac
67160 + chktls_save_CFLAGS="$CFLAGS"
67161 + CFLAGS="-fPIC $CFLAGS"
67162 + cat >conftest.$ac_ext <<_ACEOF
67163 +int f() { return 0; }
67164 +_ACEOF
67165 +rm -f conftest.$ac_objext conftest$ac_exeext
67166 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67167 + (eval $ac_link) 2>conftest.er1
67168 + ac_status=$?
67169 + grep -v '^ *+' conftest.er1 >conftest.err
67170 + rm -f conftest.er1
67171 + cat conftest.err >&5
67172 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67173 + (exit $ac_status); } &&
67174 + { ac_try='test -z "$ac_c_werror_flag"
67175 + || test ! -s conftest.err'
67176 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67177 + (eval $ac_try) 2>&5
67178 + ac_status=$?
67179 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67180 + (exit $ac_status); }; } &&
67181 + { ac_try='test -s conftest$ac_exeext'
67182 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67183 + (eval $ac_try) 2>&5
67184 + ac_status=$?
67185 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67186 + (exit $ac_status); }; }; then
67187 + cat >conftest.$ac_ext <<_ACEOF
67188 +__thread int a; int b; int f() { return a = b; }
67189 +_ACEOF
67190 +rm -f conftest.$ac_objext conftest$ac_exeext
67191 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67192 + (eval $ac_link) 2>conftest.er1
67193 + ac_status=$?
67194 + grep -v '^ *+' conftest.er1 >conftest.err
67195 + rm -f conftest.er1
67196 + cat conftest.err >&5
67197 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67198 + (exit $ac_status); } &&
67199 + { ac_try='test -z "$ac_c_werror_flag"
67200 + || test ! -s conftest.err'
67201 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67202 + (eval $ac_try) 2>&5
67203 + ac_status=$?
67204 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67205 + (exit $ac_status); }; } &&
67206 + { ac_try='test -s conftest$ac_exeext'
67207 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67208 + (eval $ac_try) 2>&5
67209 + ac_status=$?
67210 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67211 + (exit $ac_status); }; }; then
67212 gcc_cv_have_tls=yes
67213 else
67214 echo "$as_me: failed program was:" >&5
67215 @@ -12796,6 +12854,24 @@
67216 fi
67217 rm -f conftest.err conftest.$ac_objext \
67218 conftest$ac_exeext conftest.$ac_ext
67219 +else
67220 + echo "$as_me: failed program was:" >&5
67221 +sed 's/^/| /' conftest.$ac_ext >&5
67222 +
67223 +gcc_cv_have_tls=yes
67224 +fi
67225 +rm -f conftest.err conftest.$ac_objext \
67226 + conftest$ac_exeext conftest.$ac_ext
67227 + CFLAGS="$chktls_save_CFLAGS"
67228 + LDFLAGS="$chktls_save_LDFLAGS"
67229 +else
67230 + echo "$as_me: failed program was:" >&5
67231 +sed 's/^/| /' conftest.$ac_ext >&5
67232 +
67233 +gcc_cv_have_tls=no
67234 +fi
67235 +rm -f conftest.err conftest.$ac_objext \
67236 + conftest$ac_exeext conftest.$ac_ext
67237
67238
67239 else
67240 diff -Nur a/libstdc++-v3/config/cpu/sh/atomicity.h b/libstdc++-v3/config/cpu/sh/atomicity.h
67241 --- a/libstdc++-v3/config/cpu/sh/atomicity.h 2009-04-10 01:23:07.000000000 +0200
67242 +++ b/libstdc++-v3/config/cpu/sh/atomicity.h 2010-01-25 09:50:29.645688750 +0100
67243 @@ -25,47 +25,48 @@
67244
67245 #ifdef __SH4A__
67246
67247 -#ifndef _GLIBCXX_ATOMICITY_H
67248 -#define _GLIBCXX_ATOMICITY_H 1
67249 +#include <ext/atomicity.h>
67250
67251 -typedef int _Atomic_word;
67252 +_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
67253
67254 -static inline _Atomic_word
67255 -__attribute__ ((__unused__))
67256 -__exchange_and_add (volatile _Atomic_word* __mem, int __val)
67257 -{
67258 - _Atomic_word __result;
67259 + typedef int _Atomic_word;
67260
67261 - __asm__ __volatile__
67262 - ("0:\n"
67263 - "\tmovli.l\t@%2,r0\n"
67264 - "\tmov\tr0,%1\n"
67265 - "\tadd\t%3,r0\n"
67266 - "\tmovco.l\tr0,@%2\n"
67267 - "\tbf\t0b"
67268 - : "+m" (*__mem), "=r" (__result)
67269 - : "r" (__mem), "rI08" (__val)
67270 - : "r0");
67271 -
67272 - return __result;
67273 -}
67274 -
67275 -
67276 -static inline void
67277 -__attribute__ ((__unused__))
67278 -__atomic_add (volatile _Atomic_word* __mem, int __val)
67279 -{
67280 - asm("0:\n"
67281 - "\tmovli.l\t@%1,r0\n"
67282 - "\tadd\t%2,r0\n"
67283 - "\tmovco.l\tr0,@%1\n"
67284 - "\tbf\t0b"
67285 - : "+m" (*__mem)
67286 - : "r" (__mem), "rI08" (__val)
67287 - : "r0");
67288 -}
67289 + _Atomic_word
67290 + __attribute__ ((__unused__))
67291 + __exchange_and_add (volatile _Atomic_word* __mem, int __val)
67292 + {
67293 + _Atomic_word __result;
67294
67295 -#endif
67296 + __asm__ __volatile__
67297 + ("0:\n"
67298 + "\tmovli.l\t@%2,r0\n"
67299 + "\tmov\tr0,%1\n"
67300 + "\tadd\t%3,r0\n"
67301 + "\tmovco.l\tr0,@%2\n"
67302 + "\tbf\t0b"
67303 + : "+m" (*__mem), "=&r" (__result)
67304 + : "r" (__mem), "rI08" (__val)
67305 + : "r0");
67306 +
67307 + return __result;
67308 + }
67309 +
67310 +
67311 + void
67312 + __attribute__ ((__unused__))
67313 + __atomic_add (volatile _Atomic_word* __mem, int __val)
67314 + {
67315 + asm("0:\n"
67316 + "\tmovli.l\t@%1,r0\n"
67317 + "\tadd\t%2,r0\n"
67318 + "\tmovco.l\tr0,@%1\n"
67319 + "\tbf\t0b"
67320 + : "+m" (*__mem)
67321 + : "r" (__mem), "rI08" (__val)
67322 + : "r0");
67323 + }
67324 +
67325 +_GLIBCXX_END_NAMESPACE
67326
67327 #else /* !__SH4A__ */
67328
67329 diff -Nur a/libstdc++-v3/configure b/libstdc++-v3/configure
67330 --- a/libstdc++-v3/configure 2009-05-07 12:23:06.000000000 +0200
67331 +++ b/libstdc++-v3/configure 2010-01-25 09:50:29.665687451 +0100
67332 @@ -458,7 +458,7 @@
67333 # include <unistd.h>
67334 #endif"
67335
67336 -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CPP CPPFLAGS EGREP LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 LDFLAGS CXXCPP enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS glibcxx_thread_h WERROR SECTION_FLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_C_GLOBAL_TRUE GLIBCXX_C_HEADERS_C_GLOBAL_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE GLIBCXX_C_HEADERS_EXTRA_TRUE GLIBCXX_C_HEADERS_EXTRA_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE ENABLE_PARALLEL_TRUE ENABLE_PARALLEL_FALSE EXTRA_CXX_FLAGS GLIBCXX_LIBS SECTION_LDFLAGS OPT_LDFLAGS LIBICONV LTLIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_GNU_NAMESPACE_TRUE ENABLE_SYMVERS_GNU_NAMESPACE_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE ENABLE_VISIBILITY_TRUE ENABLE_VISIBILITY_FALSE GLIBCXX_LDBL_COMPAT_TRUE GLIBCXX_LDBL_COMPAT_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR ATOMIC_FLAGS CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR ERROR_CONSTANTS_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
67337 +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CPP CPPFLAGS EGREP LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 LDFLAGS CXXCPP enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS glibcxx_thread_h WERROR SECTION_FLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_C_GLOBAL_TRUE GLIBCXX_C_HEADERS_C_GLOBAL_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE GLIBCXX_C_HEADERS_EXTRA_TRUE GLIBCXX_C_HEADERS_EXTRA_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE ENABLE_PARALLEL_TRUE ENABLE_PARALLEL_FALSE EXTRA_CXX_FLAGS GLIBCXX_LIBS SECTION_LDFLAGS OPT_LDFLAGS LIBICONV LTLIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_GNU_NAMESPACE_TRUE ENABLE_SYMVERS_GNU_NAMESPACE_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE ENABLE_VISIBILITY_TRUE ENABLE_VISIBILITY_FALSE GLIBCXX_LDBL_COMPAT_TRUE GLIBCXX_LDBL_COMPAT_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR ATOMIC_FLAGS CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR ERROR_CONSTANTS_SRCDIR LIBSUPCXX_PRONLY_TRUE LIBSUPCXX_PRONLY_FALSE glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
67338 ac_subst_files=''
67339 ac_pwd=`pwd`
67340
67341 @@ -40730,6 +40730,74 @@
67342 ac_status=$?
67343 echo "$as_me:$LINENO: \$? = $ac_status" >&5
67344 (exit $ac_status); }; }; then
67345 + chktls_save_LDFLAGS="$LDFLAGS"
67346 + case $host in
67347 + *-*-linux*)
67348 + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
67349 + ;;
67350 + esac
67351 + chktls_save_CFLAGS="$CFLAGS"
67352 + CFLAGS="-fPIC $CFLAGS"
67353 + if test x$gcc_no_link = xyes; then
67354 + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
67355 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
67356 + { (exit 1); exit 1; }; }
67357 +fi
67358 +cat >conftest.$ac_ext <<_ACEOF
67359 +int f() { return 0; }
67360 +_ACEOF
67361 +rm -f conftest.$ac_objext conftest$ac_exeext
67362 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67363 + (eval $ac_link) 2>conftest.er1
67364 + ac_status=$?
67365 + grep -v '^ *+' conftest.er1 >conftest.err
67366 + rm -f conftest.er1
67367 + cat conftest.err >&5
67368 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67369 + (exit $ac_status); } &&
67370 + { ac_try='test -z "$ac_c_werror_flag"
67371 + || test ! -s conftest.err'
67372 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67373 + (eval $ac_try) 2>&5
67374 + ac_status=$?
67375 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67376 + (exit $ac_status); }; } &&
67377 + { ac_try='test -s conftest$ac_exeext'
67378 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67379 + (eval $ac_try) 2>&5
67380 + ac_status=$?
67381 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67382 + (exit $ac_status); }; }; then
67383 + if test x$gcc_no_link = xyes; then
67384 + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
67385 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
67386 + { (exit 1); exit 1; }; }
67387 +fi
67388 +cat >conftest.$ac_ext <<_ACEOF
67389 +__thread int a; int b; int f() { return a = b; }
67390 +_ACEOF
67391 +rm -f conftest.$ac_objext conftest$ac_exeext
67392 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67393 + (eval $ac_link) 2>conftest.er1
67394 + ac_status=$?
67395 + grep -v '^ *+' conftest.er1 >conftest.err
67396 + rm -f conftest.er1
67397 + cat conftest.err >&5
67398 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67399 + (exit $ac_status); } &&
67400 + { ac_try='test -z "$ac_c_werror_flag"
67401 + || test ! -s conftest.err'
67402 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67403 + (eval $ac_try) 2>&5
67404 + ac_status=$?
67405 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67406 + (exit $ac_status); }; } &&
67407 + { ac_try='test -s conftest$ac_exeext'
67408 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67409 + (eval $ac_try) 2>&5
67410 + ac_status=$?
67411 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67412 + (exit $ac_status); }; }; then
67413 gcc_cv_have_tls=yes
67414 else
67415 echo "$as_me: failed program was:" >&5
67416 @@ -40739,6 +40807,24 @@
67417 fi
67418 rm -f conftest.err conftest.$ac_objext \
67419 conftest$ac_exeext conftest.$ac_ext
67420 +else
67421 + echo "$as_me: failed program was:" >&5
67422 +sed 's/^/| /' conftest.$ac_ext >&5
67423 +
67424 +gcc_cv_have_tls=yes
67425 +fi
67426 +rm -f conftest.err conftest.$ac_objext \
67427 + conftest$ac_exeext conftest.$ac_ext
67428 + CFLAGS="$chktls_save_CFLAGS"
67429 + LDFLAGS="$chktls_save_LDFLAGS"
67430 +else
67431 + echo "$as_me: failed program was:" >&5
67432 +sed 's/^/| /' conftest.$ac_ext >&5
67433 +
67434 +gcc_cv_have_tls=no
67435 +fi
67436 +rm -f conftest.err conftest.$ac_objext \
67437 + conftest$ac_exeext conftest.$ac_ext
67438
67439
67440 else
67441 @@ -76926,6 +77012,74 @@
67442 ac_status=$?
67443 echo "$as_me:$LINENO: \$? = $ac_status" >&5
67444 (exit $ac_status); }; }; then
67445 + chktls_save_LDFLAGS="$LDFLAGS"
67446 + case $host in
67447 + *-*-linux*)
67448 + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
67449 + ;;
67450 + esac
67451 + chktls_save_CFLAGS="$CFLAGS"
67452 + CFLAGS="-fPIC $CFLAGS"
67453 + if test x$gcc_no_link = xyes; then
67454 + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
67455 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
67456 + { (exit 1); exit 1; }; }
67457 +fi
67458 +cat >conftest.$ac_ext <<_ACEOF
67459 +int f() { return 0; }
67460 +_ACEOF
67461 +rm -f conftest.$ac_objext conftest$ac_exeext
67462 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67463 + (eval $ac_link) 2>conftest.er1
67464 + ac_status=$?
67465 + grep -v '^ *+' conftest.er1 >conftest.err
67466 + rm -f conftest.er1
67467 + cat conftest.err >&5
67468 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67469 + (exit $ac_status); } &&
67470 + { ac_try='test -z "$ac_c_werror_flag"
67471 + || test ! -s conftest.err'
67472 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67473 + (eval $ac_try) 2>&5
67474 + ac_status=$?
67475 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67476 + (exit $ac_status); }; } &&
67477 + { ac_try='test -s conftest$ac_exeext'
67478 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67479 + (eval $ac_try) 2>&5
67480 + ac_status=$?
67481 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67482 + (exit $ac_status); }; }; then
67483 + if test x$gcc_no_link = xyes; then
67484 + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
67485 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
67486 + { (exit 1); exit 1; }; }
67487 +fi
67488 +cat >conftest.$ac_ext <<_ACEOF
67489 +__thread int a; int b; int f() { return a = b; }
67490 +_ACEOF
67491 +rm -f conftest.$ac_objext conftest$ac_exeext
67492 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67493 + (eval $ac_link) 2>conftest.er1
67494 + ac_status=$?
67495 + grep -v '^ *+' conftest.er1 >conftest.err
67496 + rm -f conftest.er1
67497 + cat conftest.err >&5
67498 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67499 + (exit $ac_status); } &&
67500 + { ac_try='test -z "$ac_c_werror_flag"
67501 + || test ! -s conftest.err'
67502 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67503 + (eval $ac_try) 2>&5
67504 + ac_status=$?
67505 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67506 + (exit $ac_status); }; } &&
67507 + { ac_try='test -s conftest$ac_exeext'
67508 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67509 + (eval $ac_try) 2>&5
67510 + ac_status=$?
67511 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67512 + (exit $ac_status); }; }; then
67513 gcc_cv_have_tls=yes
67514 else
67515 echo "$as_me: failed program was:" >&5
67516 @@ -76935,6 +77089,24 @@
67517 fi
67518 rm -f conftest.err conftest.$ac_objext \
67519 conftest$ac_exeext conftest.$ac_ext
67520 +else
67521 + echo "$as_me: failed program was:" >&5
67522 +sed 's/^/| /' conftest.$ac_ext >&5
67523 +
67524 +gcc_cv_have_tls=yes
67525 +fi
67526 +rm -f conftest.err conftest.$ac_objext \
67527 + conftest$ac_exeext conftest.$ac_ext
67528 + CFLAGS="$chktls_save_CFLAGS"
67529 + LDFLAGS="$chktls_save_LDFLAGS"
67530 +else
67531 + echo "$as_me: failed program was:" >&5
67532 +sed 's/^/| /' conftest.$ac_ext >&5
67533 +
67534 +gcc_cv_have_tls=no
67535 +fi
67536 +rm -f conftest.err conftest.$ac_objext \
67537 + conftest$ac_exeext conftest.$ac_ext
67538
67539
67540 else
67541 @@ -94541,6 +94713,74 @@
67542 ac_status=$?
67543 echo "$as_me:$LINENO: \$? = $ac_status" >&5
67544 (exit $ac_status); }; }; then
67545 + chktls_save_LDFLAGS="$LDFLAGS"
67546 + case $host in
67547 + *-*-linux*)
67548 + LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS"
67549 + ;;
67550 + esac
67551 + chktls_save_CFLAGS="$CFLAGS"
67552 + CFLAGS="-fPIC $CFLAGS"
67553 + if test x$gcc_no_link = xyes; then
67554 + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
67555 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
67556 + { (exit 1); exit 1; }; }
67557 +fi
67558 +cat >conftest.$ac_ext <<_ACEOF
67559 +int f() { return 0; }
67560 +_ACEOF
67561 +rm -f conftest.$ac_objext conftest$ac_exeext
67562 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67563 + (eval $ac_link) 2>conftest.er1
67564 + ac_status=$?
67565 + grep -v '^ *+' conftest.er1 >conftest.err
67566 + rm -f conftest.er1
67567 + cat conftest.err >&5
67568 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67569 + (exit $ac_status); } &&
67570 + { ac_try='test -z "$ac_c_werror_flag"
67571 + || test ! -s conftest.err'
67572 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67573 + (eval $ac_try) 2>&5
67574 + ac_status=$?
67575 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67576 + (exit $ac_status); }; } &&
67577 + { ac_try='test -s conftest$ac_exeext'
67578 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67579 + (eval $ac_try) 2>&5
67580 + ac_status=$?
67581 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67582 + (exit $ac_status); }; }; then
67583 + if test x$gcc_no_link = xyes; then
67584 + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
67585 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
67586 + { (exit 1); exit 1; }; }
67587 +fi
67588 +cat >conftest.$ac_ext <<_ACEOF
67589 +__thread int a; int b; int f() { return a = b; }
67590 +_ACEOF
67591 +rm -f conftest.$ac_objext conftest$ac_exeext
67592 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
67593 + (eval $ac_link) 2>conftest.er1
67594 + ac_status=$?
67595 + grep -v '^ *+' conftest.er1 >conftest.err
67596 + rm -f conftest.er1
67597 + cat conftest.err >&5
67598 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67599 + (exit $ac_status); } &&
67600 + { ac_try='test -z "$ac_c_werror_flag"
67601 + || test ! -s conftest.err'
67602 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67603 + (eval $ac_try) 2>&5
67604 + ac_status=$?
67605 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67606 + (exit $ac_status); }; } &&
67607 + { ac_try='test -s conftest$ac_exeext'
67608 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
67609 + (eval $ac_try) 2>&5
67610 + ac_status=$?
67611 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
67612 + (exit $ac_status); }; }; then
67613 gcc_cv_have_tls=yes
67614 else
67615 echo "$as_me: failed program was:" >&5
67616 @@ -94550,6 +94790,24 @@
67617 fi
67618 rm -f conftest.err conftest.$ac_objext \
67619 conftest$ac_exeext conftest.$ac_ext
67620 +else
67621 + echo "$as_me: failed program was:" >&5
67622 +sed 's/^/| /' conftest.$ac_ext >&5
67623 +
67624 +gcc_cv_have_tls=yes
67625 +fi
67626 +rm -f conftest.err conftest.$ac_objext \
67627 + conftest$ac_exeext conftest.$ac_ext
67628 + CFLAGS="$chktls_save_CFLAGS"
67629 + LDFLAGS="$chktls_save_LDFLAGS"
67630 +else
67631 + echo "$as_me: failed program was:" >&5
67632 +sed 's/^/| /' conftest.$ac_ext >&5
67633 +
67634 +gcc_cv_have_tls=no
67635 +fi
67636 +rm -f conftest.err conftest.$ac_objext \
67637 + conftest$ac_exeext conftest.$ac_ext
67638
67639
67640 else
67641 @@ -114470,7 +114728,8 @@
67642 cat confdefs.h >>conftest.$ac_ext
67643 cat >>conftest.$ac_ext <<_ACEOF
67644 /* end confdefs.h. */
67645 -$ac_includes_default
67646 +/* no standard headers */
67647 +
67648 int
67649 main ()
67650 {
67651 @@ -114534,7 +114793,8 @@
67652 cat confdefs.h >>conftest.$ac_ext
67653 cat >>conftest.$ac_ext <<_ACEOF
67654 /* end confdefs.h. */
67655 -$ac_includes_default
67656 +/* no standard headers */
67657 +
67658 int
67659 main ()
67660 {
67661 @@ -114575,7 +114835,8 @@
67662 cat confdefs.h >>conftest.$ac_ext
67663 cat >>conftest.$ac_ext <<_ACEOF
67664 /* end confdefs.h. */
67665 -$ac_includes_default
67666 +/* no standard headers */
67667 +
67668 int
67669 main ()
67670 {
67671 @@ -114632,7 +114893,8 @@
67672 cat confdefs.h >>conftest.$ac_ext
67673 cat >>conftest.$ac_ext <<_ACEOF
67674 /* end confdefs.h. */
67675 -$ac_includes_default
67676 +/* no standard headers */
67677 +
67678 int
67679 main ()
67680 {
67681 @@ -114673,7 +114935,8 @@
67682 cat confdefs.h >>conftest.$ac_ext
67683 cat >>conftest.$ac_ext <<_ACEOF
67684 /* end confdefs.h. */
67685 -$ac_includes_default
67686 +/* no standard headers */
67687 +
67688 int
67689 main ()
67690 {
67691 @@ -114738,7 +115001,8 @@
67692 cat confdefs.h >>conftest.$ac_ext
67693 cat >>conftest.$ac_ext <<_ACEOF
67694 /* end confdefs.h. */
67695 -$ac_includes_default
67696 +/* no standard headers */
67697 +
67698 int
67699 main ()
67700 {
67701 @@ -114806,7 +115070,8 @@
67702 cat confdefs.h >>conftest.$ac_ext
67703 cat >>conftest.$ac_ext <<_ACEOF
67704 /* end confdefs.h. */
67705 -$ac_includes_default
67706 +/* no standard headers */
67707 +
67708 long longval () { return (long) (sizeof (void *)); }
67709 unsigned long ulongval () { return (long) (sizeof (void *)); }
67710 #include <stdio.h>
67711 @@ -114894,7 +115159,8 @@
67712 cat confdefs.h >>conftest.$ac_ext
67713 cat >>conftest.$ac_ext <<_ACEOF
67714 /* end confdefs.h. */
67715 -$ac_includes_default
67716 +/* no standard headers */
67717 +
67718 int
67719 main ()
67720 {
67721 @@ -114958,7 +115224,8 @@
67722 cat confdefs.h >>conftest.$ac_ext
67723 cat >>conftest.$ac_ext <<_ACEOF
67724 /* end confdefs.h. */
67725 -$ac_includes_default
67726 +/* no standard headers */
67727 +
67728 int
67729 main ()
67730 {
67731 @@ -114999,7 +115266,8 @@
67732 cat confdefs.h >>conftest.$ac_ext
67733 cat >>conftest.$ac_ext <<_ACEOF
67734 /* end confdefs.h. */
67735 -$ac_includes_default
67736 +/* no standard headers */
67737 +
67738 int
67739 main ()
67740 {
67741 @@ -115056,7 +115324,8 @@
67742 cat confdefs.h >>conftest.$ac_ext
67743 cat >>conftest.$ac_ext <<_ACEOF
67744 /* end confdefs.h. */
67745 -$ac_includes_default
67746 +/* no standard headers */
67747 +
67748 int
67749 main ()
67750 {
67751 @@ -115097,7 +115366,8 @@
67752 cat confdefs.h >>conftest.$ac_ext
67753 cat >>conftest.$ac_ext <<_ACEOF
67754 /* end confdefs.h. */
67755 -$ac_includes_default
67756 +/* no standard headers */
67757 +
67758 int
67759 main ()
67760 {
67761 @@ -115162,7 +115432,8 @@
67762 cat confdefs.h >>conftest.$ac_ext
67763 cat >>conftest.$ac_ext <<_ACEOF
67764 /* end confdefs.h. */
67765 -$ac_includes_default
67766 +/* no standard headers */
67767 +
67768 int
67769 main ()
67770 {
67771 @@ -115230,7 +115501,8 @@
67772 cat confdefs.h >>conftest.$ac_ext
67773 cat >>conftest.$ac_ext <<_ACEOF
67774 /* end confdefs.h. */
67775 -$ac_includes_default
67776 +/* no standard headers */
67777 +
67778 long longval () { return (long) (sizeof (long)); }
67779 unsigned long ulongval () { return (long) (sizeof (long)); }
67780 #include <stdio.h>
67781 @@ -115318,7 +115590,8 @@
67782 cat confdefs.h >>conftest.$ac_ext
67783 cat >>conftest.$ac_ext <<_ACEOF
67784 /* end confdefs.h. */
67785 -$ac_includes_default
67786 +/* no standard headers */
67787 +
67788 int
67789 main ()
67790 {
67791 @@ -115382,7 +115655,8 @@
67792 cat confdefs.h >>conftest.$ac_ext
67793 cat >>conftest.$ac_ext <<_ACEOF
67794 /* end confdefs.h. */
67795 -$ac_includes_default
67796 +/* no standard headers */
67797 +
67798 int
67799 main ()
67800 {
67801 @@ -115423,7 +115697,8 @@
67802 cat confdefs.h >>conftest.$ac_ext
67803 cat >>conftest.$ac_ext <<_ACEOF
67804 /* end confdefs.h. */
67805 -$ac_includes_default
67806 +/* no standard headers */
67807 +
67808 int
67809 main ()
67810 {
67811 @@ -115480,7 +115755,8 @@
67812 cat confdefs.h >>conftest.$ac_ext
67813 cat >>conftest.$ac_ext <<_ACEOF
67814 /* end confdefs.h. */
67815 -$ac_includes_default
67816 +/* no standard headers */
67817 +
67818 int
67819 main ()
67820 {
67821 @@ -115521,7 +115797,8 @@
67822 cat confdefs.h >>conftest.$ac_ext
67823 cat >>conftest.$ac_ext <<_ACEOF
67824 /* end confdefs.h. */
67825 -$ac_includes_default
67826 +/* no standard headers */
67827 +
67828 int
67829 main ()
67830 {
67831 @@ -115586,7 +115863,8 @@
67832 cat confdefs.h >>conftest.$ac_ext
67833 cat >>conftest.$ac_ext <<_ACEOF
67834 /* end confdefs.h. */
67835 -$ac_includes_default
67836 +/* no standard headers */
67837 +
67838 int
67839 main ()
67840 {
67841 @@ -115654,7 +115932,8 @@
67842 cat confdefs.h >>conftest.$ac_ext
67843 cat >>conftest.$ac_ext <<_ACEOF
67844 /* end confdefs.h. */
67845 -$ac_includes_default
67846 +/* no standard headers */
67847 +
67848 long longval () { return (long) (sizeof (int)); }
67849 unsigned long ulongval () { return (long) (sizeof (int)); }
67850 #include <stdio.h>
67851 @@ -115738,7 +116017,8 @@
67852 cat confdefs.h >>conftest.$ac_ext
67853 cat >>conftest.$ac_ext <<_ACEOF
67854 /* end confdefs.h. */
67855 -$ac_includes_default
67856 +/* no standard headers */
67857 +
67858 int
67859 main ()
67860 {
67861 @@ -115802,7 +116082,8 @@
67862 cat confdefs.h >>conftest.$ac_ext
67863 cat >>conftest.$ac_ext <<_ACEOF
67864 /* end confdefs.h. */
67865 -$ac_includes_default
67866 +/* no standard headers */
67867 +
67868 int
67869 main ()
67870 {
67871 @@ -115843,7 +116124,8 @@
67872 cat confdefs.h >>conftest.$ac_ext
67873 cat >>conftest.$ac_ext <<_ACEOF
67874 /* end confdefs.h. */
67875 -$ac_includes_default
67876 +/* no standard headers */
67877 +
67878 int
67879 main ()
67880 {
67881 @@ -115900,7 +116182,8 @@
67882 cat confdefs.h >>conftest.$ac_ext
67883 cat >>conftest.$ac_ext <<_ACEOF
67884 /* end confdefs.h. */
67885 -$ac_includes_default
67886 +/* no standard headers */
67887 +
67888 int
67889 main ()
67890 {
67891 @@ -115941,7 +116224,8 @@
67892 cat confdefs.h >>conftest.$ac_ext
67893 cat >>conftest.$ac_ext <<_ACEOF
67894 /* end confdefs.h. */
67895 -$ac_includes_default
67896 +/* no standard headers */
67897 +
67898 int
67899 main ()
67900 {
67901 @@ -116006,7 +116290,8 @@
67902 cat confdefs.h >>conftest.$ac_ext
67903 cat >>conftest.$ac_ext <<_ACEOF
67904 /* end confdefs.h. */
67905 -$ac_includes_default
67906 +/* no standard headers */
67907 +
67908 int
67909 main ()
67910 {
67911 @@ -116074,7 +116359,8 @@
67912 cat confdefs.h >>conftest.$ac_ext
67913 cat >>conftest.$ac_ext <<_ACEOF
67914 /* end confdefs.h. */
67915 -$ac_includes_default
67916 +/* no standard headers */
67917 +
67918 long longval () { return (long) (sizeof (short)); }
67919 unsigned long ulongval () { return (long) (sizeof (short)); }
67920 #include <stdio.h>
67921 @@ -116158,7 +116444,8 @@
67922 cat confdefs.h >>conftest.$ac_ext
67923 cat >>conftest.$ac_ext <<_ACEOF
67924 /* end confdefs.h. */
67925 -$ac_includes_default
67926 +/* no standard headers */
67927 +
67928 int
67929 main ()
67930 {
67931 @@ -116222,7 +116509,8 @@
67932 cat confdefs.h >>conftest.$ac_ext
67933 cat >>conftest.$ac_ext <<_ACEOF
67934 /* end confdefs.h. */
67935 -$ac_includes_default
67936 +/* no standard headers */
67937 +
67938 int
67939 main ()
67940 {
67941 @@ -116263,7 +116551,8 @@
67942 cat confdefs.h >>conftest.$ac_ext
67943 cat >>conftest.$ac_ext <<_ACEOF
67944 /* end confdefs.h. */
67945 -$ac_includes_default
67946 +/* no standard headers */
67947 +
67948 int
67949 main ()
67950 {
67951 @@ -116320,7 +116609,8 @@
67952 cat confdefs.h >>conftest.$ac_ext
67953 cat >>conftest.$ac_ext <<_ACEOF
67954 /* end confdefs.h. */
67955 -$ac_includes_default
67956 +/* no standard headers */
67957 +
67958 int
67959 main ()
67960 {
67961 @@ -116361,7 +116651,8 @@
67962 cat confdefs.h >>conftest.$ac_ext
67963 cat >>conftest.$ac_ext <<_ACEOF
67964 /* end confdefs.h. */
67965 -$ac_includes_default
67966 +/* no standard headers */
67967 +
67968 int
67969 main ()
67970 {
67971 @@ -116426,7 +116717,8 @@
67972 cat confdefs.h >>conftest.$ac_ext
67973 cat >>conftest.$ac_ext <<_ACEOF
67974 /* end confdefs.h. */
67975 -$ac_includes_default
67976 +/* no standard headers */
67977 +
67978 int
67979 main ()
67980 {
67981 @@ -116494,7 +116786,8 @@
67982 cat confdefs.h >>conftest.$ac_ext
67983 cat >>conftest.$ac_ext <<_ACEOF
67984 /* end confdefs.h. */
67985 -$ac_includes_default
67986 +/* no standard headers */
67987 +
67988 long longval () { return (long) (sizeof (char)); }
67989 unsigned long ulongval () { return (long) (sizeof (char)); }
67990 #include <stdio.h>
67991 @@ -118004,6 +118297,24 @@
67992
67993
67994
67995 +# For SymbianOS, we use a highly cut-down libsupc++. This lets us
67996 +# conditionalise libsupc++'s Makefile.am to include only the necessary sources.
67997 +case "$target" in
67998 + *arm*-symbianelf)
67999 + LIBSUPCXX_PRONLY=yes;;
68000 + *);;
68001 +esac
68002 +
68003 +
68004 +if test x$LIBSUPCXX_PRONLY = xyes; then
68005 + LIBSUPCXX_PRONLY_TRUE=
68006 + LIBSUPCXX_PRONLY_FALSE='#'
68007 +else
68008 + LIBSUPCXX_PRONLY_TRUE='#'
68009 + LIBSUPCXX_PRONLY_FALSE=
68010 +fi
68011 +
68012 +
68013 # Determine cross-compile flags and AM_CONDITIONALs.
68014 #AC_SUBST(GLIBCXX_IS_NATIVE)
68015 #AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)
68016 @@ -118582,6 +118893,13 @@
68017 Usually this means the macro was only invoked conditionally." >&2;}
68018 { (exit 1); exit 1; }; }
68019 fi
68020 +if test -z "${LIBSUPCXX_PRONLY_TRUE}" && test -z "${LIBSUPCXX_PRONLY_FALSE}"; then
68021 + { { echo "$as_me:$LINENO: error: conditional \"LIBSUPCXX_PRONLY\" was never defined.
68022 +Usually this means the macro was only invoked conditionally." >&5
68023 +echo "$as_me: error: conditional \"LIBSUPCXX_PRONLY\" was never defined.
68024 +Usually this means the macro was only invoked conditionally." >&2;}
68025 + { (exit 1); exit 1; }; }
68026 +fi
68027
68028 : ${CONFIG_STATUS=./config.status}
68029 ac_clean_files_save=$ac_clean_files
68030 @@ -119667,6 +119985,8 @@
68031 s,@ABI_TWEAKS_SRCDIR@,$ABI_TWEAKS_SRCDIR,;t t
68032 s,@OS_INC_SRCDIR@,$OS_INC_SRCDIR,;t t
68033 s,@ERROR_CONSTANTS_SRCDIR@,$ERROR_CONSTANTS_SRCDIR,;t t
68034 +s,@LIBSUPCXX_PRONLY_TRUE@,$LIBSUPCXX_PRONLY_TRUE,;t t
68035 +s,@LIBSUPCXX_PRONLY_FALSE@,$LIBSUPCXX_PRONLY_FALSE,;t t
68036 s,@glibcxx_prefixdir@,$glibcxx_prefixdir,;t t
68037 s,@gxx_include_dir@,$gxx_include_dir,;t t
68038 s,@glibcxx_toolexecdir@,$glibcxx_toolexecdir,;t t
68039 diff -Nur a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
68040 --- a/libstdc++-v3/configure.ac 2009-05-07 12:23:06.000000000 +0200
68041 +++ b/libstdc++-v3/configure.ac 2010-01-25 09:50:29.675687743 +0100
68042 @@ -329,6 +329,15 @@
68043 AC_SUBST(ERROR_CONSTANTS_SRCDIR)
68044
68045
68046 +# For SymbianOS, we use a highly cut-down libsupc++. This lets us
68047 +# conditionalise libsupc++'s Makefile.am to include only the necessary sources.
68048 +case "$target" in
68049 + *arm*-symbianelf)
68050 + LIBSUPCXX_PRONLY=yes;;
68051 + *);;
68052 +esac
68053 +AM_CONDITIONAL(LIBSUPCXX_PRONLY, test x$LIBSUPCXX_PRONLY = xyes)
68054 +
68055 # Determine cross-compile flags and AM_CONDITIONALs.
68056 #AC_SUBST(GLIBCXX_IS_NATIVE)
68057 #AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)
68058 diff -Nur a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in
68059 --- a/libstdc++-v3/doc/Makefile.in 2009-01-15 21:02:11.000000000 +0100
68060 +++ b/libstdc++-v3/doc/Makefile.in 2010-01-25 09:50:29.675687743 +0100
68061 @@ -161,6 +161,8 @@
68062 LIBOBJS = @LIBOBJS@
68063 LIBS = @LIBS@
68064 LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
68065 +LIBSUPCXX_PRONLY_FALSE = @LIBSUPCXX_PRONLY_FALSE@
68066 +LIBSUPCXX_PRONLY_TRUE = @LIBSUPCXX_PRONLY_TRUE@
68067 LIBTOOL = @LIBTOOL@
68068 LIPO = @LIPO@
68069 LN_S = @LN_S@
68070 diff -Nur a/libstdc++-v3/include/c_global/cwchar b/libstdc++-v3/include/c_global/cwchar
68071 --- a/libstdc++-v3/include/c_global/cwchar 2009-04-10 01:23:07.000000000 +0200
68072 +++ b/libstdc++-v3/include/c_global/cwchar 2010-01-25 09:50:29.675687743 +0100
68073 @@ -156,14 +156,18 @@
68074 using ::mbsrtowcs;
68075 using ::putwc;
68076 using ::putwchar;
68077 +#ifndef _GLIBCXX_HAVE_BROKEN_VSWPRINTF
68078 using ::swprintf;
68079 +#endif
68080 using ::swscanf;
68081 using ::ungetwc;
68082 using ::vfwprintf;
68083 #if _GLIBCXX_HAVE_VFWSCANF
68084 using ::vfwscanf;
68085 #endif
68086 +#ifndef _GLIBCXX_HAVE_BROKEN_VSWPRINTF
68087 using ::vswprintf;
68088 +#endif
68089 #if _GLIBCXX_HAVE_VSWSCANF
68090 using ::vswscanf;
68091 #endif
68092 diff -Nur a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
68093 --- a/libstdc++-v3/include/Makefile.am 2009-05-13 02:24:16.000000000 +0200
68094 +++ b/libstdc++-v3/include/Makefile.am 2010-01-25 09:50:29.675687743 +0100
68095 @@ -1125,8 +1125,14 @@
68096 if GLIBCXX_HOSTED
68097 install-data-local: install-headers
68098 else
68099 +if LIBSUPCXX_PRONLY
68100 +# Don't install any headers if we're only putting eh_personality in
68101 +# libsupc++ (e.g. on SymbianOS)
68102 +install-data-local:
68103 +else
68104 install-data-local: install-freestanding-headers
68105 endif
68106 +endif
68107
68108 # This is a subset of the full install-headers rule. We only need <cstddef>,
68109 # <limits>, <cstdlib>, <cstdarg>, <new>, <typeinfo>, <exception>, and any
68110 diff -Nur a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
68111 --- a/libstdc++-v3/include/Makefile.in 2009-05-13 02:24:16.000000000 +0200
68112 +++ b/libstdc++-v3/include/Makefile.in 2010-01-25 09:50:29.675687743 +0100
68113 @@ -161,6 +161,8 @@
68114 LIBOBJS = @LIBOBJS@
68115 LIBS = @LIBS@
68116 LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
68117 +LIBSUPCXX_PRONLY_FALSE = @LIBSUPCXX_PRONLY_FALSE@
68118 +LIBSUPCXX_PRONLY_TRUE = @LIBSUPCXX_PRONLY_TRUE@
68119 LIBTOOL = @LIBTOOL@
68120 LIPO = @LIPO@
68121 LN_S = @LN_S@
68122 @@ -1527,7 +1529,10 @@
68123 # the rest are taken from the original source tree.
68124
68125 @GLIBCXX_HOSTED_TRUE@install-data-local: install-headers
68126 -@GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers
68127 +# Don't install any headers if we're only putting eh_personality in
68128 +# libsupc++ (e.g. on SymbianOS)
68129 +@GLIBCXX_HOSTED_FALSE@@LIBSUPCXX_PRONLY_TRUE@install-data-local:
68130 +@GLIBCXX_HOSTED_FALSE@@LIBSUPCXX_PRONLY_FALSE@install-data-local: install-freestanding-headers
68131
68132 # This is a subset of the full install-headers rule. We only need <cstddef>,
68133 # <limits>, <cstdlib>, <cstdarg>, <new>, <typeinfo>, <exception>, and any
68134 diff -Nur a/libstdc++-v3/libsupc++/eh_arm.cc b/libstdc++-v3/libsupc++/eh_arm.cc
68135 --- a/libstdc++-v3/libsupc++/eh_arm.cc 2009-04-10 01:23:07.000000000 +0200
68136 +++ b/libstdc++-v3/libsupc++/eh_arm.cc 2010-01-25 09:50:29.675687743 +0100
68137 @@ -38,7 +38,7 @@
68138 extern "C" __cxa_type_match_result
68139 __cxa_type_match(_Unwind_Exception* ue_header,
68140 const std::type_info* catch_type,
68141 - bool is_reference __attribute__((__unused__)),
68142 + bool is_reference,
68143 void** thrown_ptr_p)
68144 {
68145 bool forced_unwind = __is_gxx_forced_unwind_class(ue_header->exception_class);
68146 @@ -68,11 +68,11 @@
68147 if (throw_type->__is_pointer_p())
68148 thrown_ptr = *(void**) thrown_ptr;
68149
68150 - if (catch_type->__do_catch(throw_type, &thrown_ptr, 1))
68151 + if (catch_type->__do_catch (throw_type, &thrown_ptr, 1 + is_reference * 2))
68152 {
68153 *thrown_ptr_p = thrown_ptr;
68154
68155 - if (typeid(*catch_type) == typeid (typeid(void*)))
68156 + if (typeid (*catch_type) == typeid (typeid(void*)))
68157 {
68158 const __pointer_type_info *catch_pointer_type =
68159 static_cast<const __pointer_type_info *> (catch_type);
68160 diff -Nur a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc
68161 --- a/libstdc++-v3/libsupc++/eh_personality.cc 2009-04-10 01:23:07.000000000 +0200
68162 +++ b/libstdc++-v3/libsupc++/eh_personality.cc 2010-01-25 09:50:29.675687743 +0100
68163 @@ -89,20 +89,22 @@
68164 // Return an element from a type table.
68165
68166 static const std::type_info*
68167 -get_ttype_entry(lsda_header_info* info, _uleb128_t i)
68168 +get_ttype_entry(lsda_header_info* info, _uleb128_t i, bool &is_ref)
68169 {
68170 _Unwind_Ptr ptr;
68171
68172 ptr = (_Unwind_Ptr) (info->TType - (i * 4));
68173 ptr = _Unwind_decode_target2(ptr);
68174
68175 - return reinterpret_cast<const std::type_info *>(ptr);
68176 + is_ref = ptr & 1;
68177 +
68178 + return reinterpret_cast<const std::type_info *>(ptr & ~1);
68179 }
68180
68181 // The ABI provides a routine for matching exception object types.
68182 typedef _Unwind_Control_Block _throw_typet;
68183 -#define get_adjusted_ptr(catch_type, throw_type, thrown_ptr_p) \
68184 - (__cxa_type_match (throw_type, catch_type, false, thrown_ptr_p) \
68185 +#define get_adjusted_ptr(catch_type, throw_type, is_ref, thrown_ptr_p) \
68186 + (__cxa_type_match (throw_type, catch_type, is_ref, thrown_ptr_p) \
68187 != ctm_failed)
68188
68189 // Return true if THROW_TYPE matches one if the filter types.
68190 @@ -118,6 +120,7 @@
68191 {
68192 const std::type_info* catch_type;
68193 _uleb128_t tmp;
68194 + bool is_ref;
68195
68196 tmp = *e;
68197
68198 @@ -129,13 +132,14 @@
68199 tmp = _Unwind_decode_target2((_Unwind_Word) e);
68200
68201 // Match a ttype entry.
68202 - catch_type = reinterpret_cast<const std::type_info*>(tmp);
68203 + is_ref = tmp & 1;
68204 + catch_type = reinterpret_cast<const std::type_info*>(tmp & ~1);
68205
68206 // ??? There is currently no way to ask the RTTI code about the
68207 // relationship between two types without reference to a specific
68208 // object. There should be; then we wouldn't need to mess with
68209 // thrown_ptr here.
68210 - if (get_adjusted_ptr(catch_type, throw_type, &thrown_ptr))
68211 + if (get_adjusted_ptr(catch_type, throw_type, is_ref, &thrown_ptr))
68212 return true;
68213
68214 // Advance to the next entry.
68215 @@ -207,7 +211,7 @@
68216 // Return an element from a type table.
68217
68218 static const std::type_info *
68219 -get_ttype_entry (lsda_header_info *info, _uleb128_t i)
68220 +get_ttype_entry (lsda_header_info *info, _uleb128_t i, bool &is_ref)
68221 {
68222 _Unwind_Ptr ptr;
68223
68224 @@ -215,7 +219,9 @@
68225 read_encoded_value_with_base (info->ttype_encoding, info->ttype_base,
68226 info->TType - i, &ptr);
68227
68228 - return reinterpret_cast<const std::type_info *>(ptr);
68229 + is_ref = ptr & 1;
68230 +
68231 + return reinterpret_cast<const std::type_info *>(ptr & ~1);
68232 }
68233
68234 // Given the thrown type THROW_TYPE, pointer to a variable containing a
68235 @@ -226,6 +232,7 @@
68236 static bool
68237 get_adjusted_ptr (const std::type_info *catch_type,
68238 const std::type_info *throw_type,
68239 + bool is_ref,
68240 void **thrown_ptr_p)
68241 {
68242 void *thrown_ptr = *thrown_ptr_p;
68243 @@ -237,7 +244,7 @@
68244 if (throw_type->__is_pointer_p ())
68245 thrown_ptr = *(void **) thrown_ptr;
68246
68247 - if (catch_type->__do_catch (throw_type, &thrown_ptr, 1))
68248 + if (catch_type->__do_catch (throw_type, &thrown_ptr, 1 + is_ref * 2))
68249 {
68250 *thrown_ptr_p = thrown_ptr;
68251 return true;
68252 @@ -267,13 +274,15 @@
68253 return false;
68254
68255 // Match a ttype entry.
68256 - catch_type = get_ttype_entry (info, tmp);
68257 + bool is_ref;
68258 +
68259 + catch_type = get_ttype_entry (info, tmp, is_ref);
68260
68261 // ??? There is currently no way to ask the RTTI code about the
68262 // relationship between two types without reference to a specific
68263 // object. There should be; then we wouldn't need to mess with
68264 // thrown_ptr here.
68265 - if (get_adjusted_ptr (catch_type, throw_type, &thrown_ptr))
68266 + if (get_adjusted_ptr (catch_type, throw_type, is_ref, &thrown_ptr))
68267 return true;
68268 }
68269 }
68270 @@ -582,14 +591,16 @@
68271 else if (ar_filter > 0)
68272 {
68273 // Positive filter values are handlers.
68274 - catch_type = get_ttype_entry (&info, ar_filter);
68275 + bool is_ref;
68276 +
68277 + catch_type = get_ttype_entry (&info, ar_filter, is_ref);
68278
68279 // Null catch type is a catch-all handler; we can catch foreign
68280 // exceptions with this. Otherwise we must match types.
68281 if (! catch_type
68282 || (throw_type
68283 && get_adjusted_ptr (catch_type, throw_type,
68284 - &thrown_ptr)))
68285 + is_ref, &thrown_ptr)))
68286 {
68287 saw_handler = true;
68288 break;
68289 diff -Nur a/libstdc++-v3/libsupc++/Makefile.am b/libstdc++-v3/libsupc++/Makefile.am
68290 --- a/libstdc++-v3/libsupc++/Makefile.am 2009-04-10 01:23:07.000000000 +0200
68291 +++ b/libstdc++-v3/libsupc++/Makefile.am 2010-01-25 09:50:29.675687743 +0100
68292 @@ -30,6 +30,11 @@
68293 # 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a
68294 noinst_LTLIBRARIES = libsupc++convenience.la
68295
68296 +if LIBSUPCXX_PRONLY
68297 +sources = \
68298 + eh_personality.cc
68299 +
68300 +else
68301
68302 headers = \
68303 exception new typeinfo cxxabi.h cxxabi-forced.h exception_defines.h \
68304 @@ -84,6 +89,7 @@
68305 vec.cc \
68306 vmi_class_type_info.cc \
68307 vterminate.cc
68308 +endif
68309
68310 libsupc___la_SOURCES = $(sources) $(c_sources)
68311 libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
68312 diff -Nur a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
68313 --- a/libstdc++-v3/libsupc++/Makefile.in 2009-01-15 21:02:11.000000000 +0100
68314 +++ b/libstdc++-v3/libsupc++/Makefile.in 2010-01-25 09:50:29.675687743 +0100
68315 @@ -38,7 +38,7 @@
68316 build_triplet = @build@
68317 host_triplet = @host@
68318 target_triplet = @target@
68319 -DIST_COMMON = $(glibcxxinstall_HEADERS) $(srcdir)/Makefile.am \
68320 +DIST_COMMON = $(am__glibcxxinstall_HEADERS_DIST) $(srcdir)/Makefile.am \
68321 $(srcdir)/Makefile.in $(top_srcdir)/fragment.am
68322 subdir = libsupc++
68323 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
68324 @@ -87,19 +87,29 @@
68325 pmem_type_info.cc pointer_type_info.cc pure.cc \
68326 si_class_type_info.cc tinfo.cc tinfo2.cc vec.cc \
68327 vmi_class_type_info.cc vterminate.cc cp-demangle.c
68328 -am__objects_1 = array_type_info.lo atexit_arm.lo bad_cast.lo \
68329 - bad_typeid.lo class_type_info.lo del_op.lo del_opnt.lo \
68330 - del_opv.lo del_opvnt.lo dyncast.lo eh_alloc.lo eh_arm.lo \
68331 - eh_aux_runtime.lo eh_call.lo eh_catch.lo eh_exception.lo \
68332 - eh_globals.lo eh_personality.lo eh_ptr.lo eh_term_handler.lo \
68333 - eh_terminate.lo eh_throw.lo eh_type.lo eh_unex_handler.lo \
68334 - enum_type_info.lo function_type_info.lo \
68335 - fundamental_type_info.lo guard.lo new_handler.lo new_op.lo \
68336 - new_opnt.lo new_opv.lo new_opvnt.lo pbase_type_info.lo \
68337 - pmem_type_info.lo pointer_type_info.lo pure.lo \
68338 - si_class_type_info.lo tinfo.lo tinfo2.lo vec.lo \
68339 - vmi_class_type_info.lo vterminate.lo
68340 -@GLIBCXX_HOSTED_TRUE@am__objects_2 = cp-demangle.lo
68341 +@LIBSUPCXX_PRONLY_FALSE@am__objects_1 = array_type_info.lo \
68342 +@LIBSUPCXX_PRONLY_FALSE@ atexit_arm.lo bad_cast.lo \
68343 +@LIBSUPCXX_PRONLY_FALSE@ bad_typeid.lo class_type_info.lo \
68344 +@LIBSUPCXX_PRONLY_FALSE@ del_op.lo del_opnt.lo del_opv.lo \
68345 +@LIBSUPCXX_PRONLY_FALSE@ del_opvnt.lo dyncast.lo eh_alloc.lo \
68346 +@LIBSUPCXX_PRONLY_FALSE@ eh_arm.lo eh_aux_runtime.lo eh_call.lo \
68347 +@LIBSUPCXX_PRONLY_FALSE@ eh_catch.lo eh_exception.lo \
68348 +@LIBSUPCXX_PRONLY_FALSE@ eh_globals.lo eh_personality.lo \
68349 +@LIBSUPCXX_PRONLY_FALSE@ eh_ptr.lo eh_term_handler.lo \
68350 +@LIBSUPCXX_PRONLY_FALSE@ eh_terminate.lo eh_throw.lo eh_type.lo \
68351 +@LIBSUPCXX_PRONLY_FALSE@ eh_unex_handler.lo enum_type_info.lo \
68352 +@LIBSUPCXX_PRONLY_FALSE@ function_type_info.lo \
68353 +@LIBSUPCXX_PRONLY_FALSE@ fundamental_type_info.lo guard.lo \
68354 +@LIBSUPCXX_PRONLY_FALSE@ new_handler.lo new_op.lo new_opnt.lo \
68355 +@LIBSUPCXX_PRONLY_FALSE@ new_opv.lo new_opvnt.lo \
68356 +@LIBSUPCXX_PRONLY_FALSE@ pbase_type_info.lo pmem_type_info.lo \
68357 +@LIBSUPCXX_PRONLY_FALSE@ pointer_type_info.lo pure.lo \
68358 +@LIBSUPCXX_PRONLY_FALSE@ si_class_type_info.lo tinfo.lo \
68359 +@LIBSUPCXX_PRONLY_FALSE@ tinfo2.lo vec.lo \
68360 +@LIBSUPCXX_PRONLY_FALSE@ vmi_class_type_info.lo vterminate.lo
68361 +@LIBSUPCXX_PRONLY_TRUE@am__objects_1 = eh_personality.lo
68362 +@GLIBCXX_HOSTED_TRUE@@LIBSUPCXX_PRONLY_FALSE@am__objects_2 = \
68363 +@GLIBCXX_HOSTED_TRUE@@LIBSUPCXX_PRONLY_FALSE@ cp-demangle.lo
68364 am_libsupc___la_OBJECTS = $(am__objects_1) $(am__objects_2)
68365 libsupc___la_OBJECTS = $(am_libsupc___la_OBJECTS)
68366 libsupc__convenience_la_LIBADD =
68367 @@ -132,6 +142,9 @@
68368 SOURCES = $(libsupc___la_SOURCES) $(libsupc__convenience_la_SOURCES)
68369 DIST_SOURCES = $(am__libsupc___la_SOURCES_DIST) \
68370 $(am__libsupc__convenience_la_SOURCES_DIST)
68371 +am__glibcxxinstall_HEADERS_DIST = exception new typeinfo cxxabi.h \
68372 + cxxabi-forced.h exception_defines.h initializer_list \
68373 + exception_ptr.h
68374 glibcxxinstallHEADERS_INSTALL = $(INSTALL_HEADER)
68375 HEADERS = $(glibcxxinstall_HEADERS)
68376 ETAGS = etags
68377 @@ -231,6 +244,8 @@
68378 LIBOBJS = @LIBOBJS@
68379 LIBS = @LIBS@
68380 LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
68381 +LIBSUPCXX_PRONLY_FALSE = @LIBSUPCXX_PRONLY_FALSE@
68382 +LIBSUPCXX_PRONLY_TRUE = @LIBSUPCXX_PRONLY_TRUE@
68383 LIBTOOL = @LIBTOOL@
68384 LIPO = @LIPO@
68385 LN_S = @LN_S@
68386 @@ -365,57 +380,60 @@
68387 toolexeclib_LTLIBRARIES = libsupc++.la
68388 # 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a
68389 noinst_LTLIBRARIES = libsupc++convenience.la
68390 -headers = \
68391 - exception new typeinfo cxxabi.h cxxabi-forced.h exception_defines.h \
68392 - initializer_list exception_ptr.h
68393 -
68394 -@GLIBCXX_HOSTED_TRUE@c_sources = \
68395 -@GLIBCXX_HOSTED_TRUE@ cp-demangle.c
68396 -
68397 -sources = \
68398 - array_type_info.cc \
68399 - atexit_arm.cc \
68400 - bad_cast.cc \
68401 - bad_typeid.cc \
68402 - class_type_info.cc \
68403 - del_op.cc \
68404 - del_opnt.cc \
68405 - del_opv.cc \
68406 - del_opvnt.cc \
68407 - dyncast.cc \
68408 - eh_alloc.cc \
68409 - eh_arm.cc \
68410 - eh_aux_runtime.cc \
68411 - eh_call.cc \
68412 - eh_catch.cc \
68413 - eh_exception.cc \
68414 - eh_globals.cc \
68415 - eh_personality.cc \
68416 - eh_ptr.cc \
68417 - eh_term_handler.cc \
68418 - eh_terminate.cc \
68419 - eh_throw.cc \
68420 - eh_type.cc \
68421 - eh_unex_handler.cc \
68422 - enum_type_info.cc \
68423 - function_type_info.cc \
68424 - fundamental_type_info.cc \
68425 - guard.cc \
68426 - new_handler.cc \
68427 - new_op.cc \
68428 - new_opnt.cc \
68429 - new_opv.cc \
68430 - new_opvnt.cc \
68431 - pbase_type_info.cc \
68432 - pmem_type_info.cc \
68433 - pointer_type_info.cc \
68434 - pure.cc \
68435 - si_class_type_info.cc \
68436 - tinfo.cc \
68437 - tinfo2.cc \
68438 - vec.cc \
68439 - vmi_class_type_info.cc \
68440 - vterminate.cc
68441 +@LIBSUPCXX_PRONLY_FALSE@sources = \
68442 +@LIBSUPCXX_PRONLY_FALSE@ array_type_info.cc \
68443 +@LIBSUPCXX_PRONLY_FALSE@ atexit_arm.cc \
68444 +@LIBSUPCXX_PRONLY_FALSE@ bad_cast.cc \
68445 +@LIBSUPCXX_PRONLY_FALSE@ bad_typeid.cc \
68446 +@LIBSUPCXX_PRONLY_FALSE@ class_type_info.cc \
68447 +@LIBSUPCXX_PRONLY_FALSE@ del_op.cc \
68448 +@LIBSUPCXX_PRONLY_FALSE@ del_opnt.cc \
68449 +@LIBSUPCXX_PRONLY_FALSE@ del_opv.cc \
68450 +@LIBSUPCXX_PRONLY_FALSE@ del_opvnt.cc \
68451 +@LIBSUPCXX_PRONLY_FALSE@ dyncast.cc \
68452 +@LIBSUPCXX_PRONLY_FALSE@ eh_alloc.cc \
68453 +@LIBSUPCXX_PRONLY_FALSE@ eh_arm.cc \
68454 +@LIBSUPCXX_PRONLY_FALSE@ eh_aux_runtime.cc \
68455 +@LIBSUPCXX_PRONLY_FALSE@ eh_call.cc \
68456 +@LIBSUPCXX_PRONLY_FALSE@ eh_catch.cc \
68457 +@LIBSUPCXX_PRONLY_FALSE@ eh_exception.cc \
68458 +@LIBSUPCXX_PRONLY_FALSE@ eh_globals.cc \
68459 +@LIBSUPCXX_PRONLY_FALSE@ eh_personality.cc \
68460 +@LIBSUPCXX_PRONLY_FALSE@ eh_ptr.cc \
68461 +@LIBSUPCXX_PRONLY_FALSE@ eh_term_handler.cc \
68462 +@LIBSUPCXX_PRONLY_FALSE@ eh_terminate.cc \
68463 +@LIBSUPCXX_PRONLY_FALSE@ eh_throw.cc \
68464 +@LIBSUPCXX_PRONLY_FALSE@ eh_type.cc \
68465 +@LIBSUPCXX_PRONLY_FALSE@ eh_unex_handler.cc \
68466 +@LIBSUPCXX_PRONLY_FALSE@ enum_type_info.cc \
68467 +@LIBSUPCXX_PRONLY_FALSE@ function_type_info.cc \
68468 +@LIBSUPCXX_PRONLY_FALSE@ fundamental_type_info.cc \
68469 +@LIBSUPCXX_PRONLY_FALSE@ guard.cc \
68470 +@LIBSUPCXX_PRONLY_FALSE@ new_handler.cc \
68471 +@LIBSUPCXX_PRONLY_FALSE@ new_op.cc \
68472 +@LIBSUPCXX_PRONLY_FALSE@ new_opnt.cc \
68473 +@LIBSUPCXX_PRONLY_FALSE@ new_opv.cc \
68474 +@LIBSUPCXX_PRONLY_FALSE@ new_opvnt.cc \
68475 +@LIBSUPCXX_PRONLY_FALSE@ pbase_type_info.cc \
68476 +@LIBSUPCXX_PRONLY_FALSE@ pmem_type_info.cc \
68477 +@LIBSUPCXX_PRONLY_FALSE@ pointer_type_info.cc \
68478 +@LIBSUPCXX_PRONLY_FALSE@ pure.cc \
68479 +@LIBSUPCXX_PRONLY_FALSE@ si_class_type_info.cc \
68480 +@LIBSUPCXX_PRONLY_FALSE@ tinfo.cc \
68481 +@LIBSUPCXX_PRONLY_FALSE@ tinfo2.cc \
68482 +@LIBSUPCXX_PRONLY_FALSE@ vec.cc \
68483 +@LIBSUPCXX_PRONLY_FALSE@ vmi_class_type_info.cc \
68484 +@LIBSUPCXX_PRONLY_FALSE@ vterminate.cc
68485 +
68486 +@LIBSUPCXX_PRONLY_TRUE@sources = \
68487 +@LIBSUPCXX_PRONLY_TRUE@ eh_personality.cc
68488 +
68489 +@LIBSUPCXX_PRONLY_FALSE@headers = \
68490 +@LIBSUPCXX_PRONLY_FALSE@ exception new typeinfo cxxabi.h cxxabi-forced.h exception_defines.h \
68491 +@LIBSUPCXX_PRONLY_FALSE@ initializer_list exception_ptr.h
68492 +
68493 +@GLIBCXX_HOSTED_TRUE@@LIBSUPCXX_PRONLY_FALSE@c_sources = \
68494 +@GLIBCXX_HOSTED_TRUE@@LIBSUPCXX_PRONLY_FALSE@ cp-demangle.c
68495
68496 libsupc___la_SOURCES = $(sources) $(c_sources)
68497 libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
68498 diff -Nur a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
68499 --- a/libstdc++-v3/Makefile.in 2009-01-15 21:02:11.000000000 +0100
68500 +++ b/libstdc++-v3/Makefile.in 2010-01-25 09:50:29.675687743 +0100
68501 @@ -193,6 +193,8 @@
68502 LIBOBJS = @LIBOBJS@
68503 LIBS = @LIBS@
68504 LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
68505 +LIBSUPCXX_PRONLY_FALSE = @LIBSUPCXX_PRONLY_FALSE@
68506 +LIBSUPCXX_PRONLY_TRUE = @LIBSUPCXX_PRONLY_TRUE@
68507 LIBTOOL = @LIBTOOL@
68508 LIPO = @LIPO@
68509 LN_S = @LN_S@
68510 diff -Nur a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
68511 --- a/libstdc++-v3/po/Makefile.in 2009-01-15 21:02:11.000000000 +0100
68512 +++ b/libstdc++-v3/po/Makefile.in 2010-01-25 09:50:29.675687743 +0100
68513 @@ -161,6 +161,8 @@
68514 LIBOBJS = @LIBOBJS@
68515 LIBS = @LIBS@
68516 LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
68517 +LIBSUPCXX_PRONLY_FALSE = @LIBSUPCXX_PRONLY_FALSE@
68518 +LIBSUPCXX_PRONLY_TRUE = @LIBSUPCXX_PRONLY_TRUE@
68519 LIBTOOL = @LIBTOOL@
68520 LIPO = @LIPO@
68521 LN_S = @LN_S@
68522 diff -Nur a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
68523 --- a/libstdc++-v3/src/Makefile.in 2009-01-17 03:03:25.000000000 +0100
68524 +++ b/libstdc++-v3/src/Makefile.in 2010-01-25 09:50:29.675687743 +0100
68525 @@ -221,6 +221,8 @@
68526 LIBOBJS = @LIBOBJS@
68527 LIBS = @LIBS@
68528 LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
68529 +LIBSUPCXX_PRONLY_FALSE = @LIBSUPCXX_PRONLY_FALSE@
68530 +LIBSUPCXX_PRONLY_TRUE = @LIBSUPCXX_PRONLY_TRUE@
68531 LIBTOOL = @LIBTOOL@
68532 LIPO = @LIPO@
68533 LN_S = @LN_S@
68534 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc
68535 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc 2009-04-10 01:23:07.000000000 +0200
68536 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc 2010-01-25 09:50:29.675687743 +0100
68537 @@ -1,4 +1,5 @@
68538 // { dg-options "-std=gnu++0x" }
68539 +// { dg-require-string-conversions "" }
68540 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68541
68542 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68543 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc
68544 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc 2009-04-10 01:23:07.000000000 +0200
68545 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc 2010-01-25 09:50:29.675687743 +0100
68546 @@ -1,4 +1,5 @@
68547 // { dg-options "-std=gnu++0x" }
68548 +// { dg-require-string-conversions "" }
68549 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68550
68551 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68552 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc
68553 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc 2009-04-10 01:23:07.000000000 +0200
68554 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc 2010-01-25 09:50:29.675687743 +0100
68555 @@ -1,4 +1,5 @@
68556 // { dg-options "-std=gnu++0x" }
68557 +// { dg-require-string-conversions "" }
68558 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68559
68560 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68561 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc
68562 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc 2009-04-10 01:23:07.000000000 +0200
68563 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc 2010-01-25 09:50:29.675687743 +0100
68564 @@ -1,4 +1,5 @@
68565 // { dg-options "-std=gnu++0x" }
68566 +// { dg-require-string-conversions "" }
68567 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68568
68569 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68570 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc
68571 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc 2009-04-10 01:23:07.000000000 +0200
68572 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc 2010-01-25 09:50:29.675687743 +0100
68573 @@ -1,4 +1,5 @@
68574 // { dg-options "-std=gnu++0x" }
68575 +// { dg-require-string-conversions "" }
68576 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68577
68578 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68579 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc
68580 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc 2009-04-10 01:23:07.000000000 +0200
68581 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc 2010-01-25 09:50:29.675687743 +0100
68582 @@ -1,4 +1,5 @@
68583 // { dg-options "-std=gnu++0x" }
68584 +// { dg-require-string-conversions "" }
68585 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68586
68587 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68588 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc
68589 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc 2009-04-10 01:23:07.000000000 +0200
68590 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc 2010-01-25 09:50:29.675687743 +0100
68591 @@ -1,4 +1,5 @@
68592 // { dg-options "-std=gnu++0x" }
68593 +// { dg-require-string-conversions "" }
68594 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68595
68596 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68597 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc
68598 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc 2009-04-10 01:23:07.000000000 +0200
68599 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc 2010-01-25 09:50:29.675687743 +0100
68600 @@ -1,4 +1,5 @@
68601 // { dg-options "-std=gnu++0x" }
68602 +// { dg-require-string-conversions "" }
68603 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68604
68605 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68606 diff -Nur a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc
68607 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc 2009-04-10 01:23:07.000000000 +0200
68608 +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc 2010-01-25 09:50:29.675687743 +0100
68609 @@ -1,4 +1,5 @@
68610 // { dg-options "-std=gnu++0x" }
68611 +// { dg-require-string-conversions "" }
68612 // 2008-06-15 Paolo Carlini <paolo.carlini@oracle.com>
68613
68614 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68615 diff -Nur a/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc b/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc
68616 --- a/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc 2009-04-10 01:23:07.000000000 +0200
68617 +++ b/libstdc++-v3/testsuite/21_strings/headers/cwchar/functions_std.cc 2010-01-25 09:50:29.675687743 +0100
68618 @@ -1,5 +1,6 @@
68619 // { dg-do compile }
68620 // { dg-require-c-std "" }
68621 +// { dg-require-swprintf "" }
68622
68623 // Copyright (C) 2007, 2009 Free Software Foundation, Inc.
68624 //
68625 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
68626 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc 2009-04-10 01:23:07.000000000 +0200
68627 +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc 2010-01-25 09:50:29.675687743 +0100
68628 @@ -20,6 +20,7 @@
68629 // 27.8.1.4 Overridden virtual functions
68630
68631 // { dg-require-fileio "" }
68632 +// { dg-require-binary-io "" }
68633
68634 #include <fstream>
68635 #include <testsuite_hooks.h>
68636 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
68637 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc 2009-04-10 01:23:07.000000000 +0200
68638 +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc 2010-01-25 09:50:29.675687743 +0100
68639 @@ -20,6 +20,7 @@
68640 // 27.8.1.4 Overridden virtual functions
68641
68642 // { dg-require-fileio "" }
68643 +// { dg-require-binary-io "" }
68644
68645 #include <fstream>
68646 #include <testsuite_hooks.h>
68647 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc
68648 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc 2009-04-10 01:23:07.000000000 +0200
68649 +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc 2010-01-25 09:50:29.675687743 +0100
68650 @@ -24,6 +24,7 @@
68651 // 27.8.1.4 Overridden virtual functions
68652
68653 // { dg-require-fileio "" }
68654 +// { dg-require-binary-io "" }
68655
68656 #include <fstream>
68657 #include <testsuite_hooks.h>
68658 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc
68659 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc 2009-04-10 01:23:07.000000000 +0200
68660 +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc 2010-01-25 09:50:29.675687743 +0100
68661 @@ -24,6 +24,7 @@
68662 // 27.8.1.4 Overridden virtual functions
68663
68664 // { dg-require-fileio "" }
68665 +// { dg-require-binary-io "" }
68666
68667 #include <fstream>
68668 #include <testsuite_hooks.h>
68669 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc
68670 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc 2009-04-10 01:23:07.000000000 +0200
68671 +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc 2010-01-25 09:50:29.675687743 +0100
68672 @@ -24,6 +24,7 @@
68673 // 27.8.1.4 Overridden virtual functions
68674
68675 // { dg-require-fileio "" }
68676 +// { dg-require-binary-io "" }
68677
68678 #include <fstream>
68679 #include <testsuite_hooks.h>
68680 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc
68681 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc 2009-04-10 01:23:07.000000000 +0200
68682 +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc 2010-01-25 09:50:29.675687743 +0100
68683 @@ -24,6 +24,7 @@
68684 // 27.8.1.4 Overridden virtual functions
68685
68686 // { dg-require-fileio "" }
68687 +// { dg-require-binary-io "" }
68688
68689 #include <fstream>
68690 #include <testsuite_hooks.h>
68691 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
68692 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc 2009-04-10 01:23:07.000000000 +0200
68693 +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc 2010-01-25 09:50:29.675687743 +0100
68694 @@ -17,6 +17,8 @@
68695
68696 // 27.8.1.4 Overridden virtual functions
68697
68698 +// { dg-require-binary-io "" }
68699 +
68700 #include <fstream>
68701 #include <locale>
68702 #include <testsuite_hooks.h>
68703 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc b/libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc
68704 --- a/libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc 2009-04-10 01:23:07.000000000 +0200
68705 +++ b/libstdc++-v3/testsuite/27_io/basic_istream/readsome/char/6746-2.cc 2010-01-25 09:50:29.675687743 +0100
68706 @@ -26,6 +26,7 @@
68707 // @diff@ %-*.tst %-*.txt
68708
68709 // { dg-require-fileio "" }
68710 +// { dg-require-binary-io "" }
68711
68712 #include <istream>
68713 #include <fstream>
68714 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc b/libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc
68715 --- a/libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc 2009-04-10 01:23:07.000000000 +0200
68716 +++ b/libstdc++-v3/testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc 2010-01-25 09:50:29.675687743 +0100
68717 @@ -19,6 +19,8 @@
68718 // causes "in_avail" to return an incorrect value.
68719 // { dg-do run { xfail arm*-*-elf arm*-*-eabi } }
68720
68721 +// { dg-require-binary-io "" }
68722 +
68723 // 27.6.1.3 unformatted input functions
68724 // @require@ %-*.tst %-*.txt
68725 // @diff@ %-*.tst %-*.txt
68726 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
68727 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc 2009-04-10 01:23:07.000000000 +0200
68728 +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc 2010-01-25 09:50:29.675687743 +0100
68729 @@ -1,3 +1,5 @@
68730 +// { dg-require-swprintf "" }
68731 +
68732 // Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
68733 //
68734 // This file is part of the GNU ISO C++ Library. This library is free
68735 diff -Nur a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc
68736 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc 2009-04-28 12:32:22.000000000 +0200
68737 +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc 2010-01-25 09:50:29.675687743 +0100
68738 @@ -1,4 +1,5 @@
68739 // { dg-options "-std=gnu++0x" }
68740 +// { dg-require-swprintf "" }
68741
68742 // Copyright (C) 2007, 2008, 2009 Free Software Foundation
68743 //
68744 diff -Nur a/libstdc++-v3/testsuite/27_io/objects/char/10.cc b/libstdc++-v3/testsuite/27_io/objects/char/10.cc
68745 --- a/libstdc++-v3/testsuite/27_io/objects/char/10.cc 2009-04-10 01:23:07.000000000 +0200
68746 +++ b/libstdc++-v3/testsuite/27_io/objects/char/10.cc 2010-01-25 09:50:29.675687743 +0100
68747 @@ -18,6 +18,7 @@
68748 // <http://www.gnu.org/licenses/>.
68749
68750 // { dg-require-fileio "" }
68751 +// { dg-require-binary-io "" }
68752
68753 #include <iostream>
68754 #include <cstdio>
68755 diff -Nur a/libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc b/libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc
68756 --- a/libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc 2009-04-10 01:23:07.000000000 +0200
68757 +++ b/libstdc++-v3/testsuite/ext/vstring/element_access/char/front_back.cc 2010-01-25 09:50:29.675687743 +0100
68758 @@ -1,4 +1,5 @@
68759 // { dg-options "-std=gnu++0x" }
68760 +// { dg-require-string-conversions "" }
68761
68762 // 2007-10-16 Paolo Carlini <pcarlini@suse.de>
68763
68764 diff -Nur a/libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc b/libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc
68765 --- a/libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc 2009-04-10 01:23:07.000000000 +0200
68766 +++ b/libstdc++-v3/testsuite/ext/vstring/element_access/wchar_t/front_back.cc 2010-01-25 09:50:29.675687743 +0100
68767 @@ -1,4 +1,5 @@
68768 // { dg-options "-std=gnu++0x" }
68769 +// { dg-require-string-conversions "" }
68770
68771 // 2007-10-16 Paolo Carlini <pcarlini@suse.de>
68772
68773 diff -Nur a/libstdc++-v3/testsuite/ext/vstring/init-list.cc b/libstdc++-v3/testsuite/ext/vstring/init-list.cc
68774 --- a/libstdc++-v3/testsuite/ext/vstring/init-list.cc 2009-04-10 01:23:07.000000000 +0200
68775 +++ b/libstdc++-v3/testsuite/ext/vstring/init-list.cc 2010-01-25 09:50:29.675687743 +0100
68776 @@ -17,6 +17,7 @@
68777 //
68778
68779 // { dg-options "-std=gnu++0x" }
68780 +// { dg-require-string-conversions "" }
68781
68782 #include <ext/vstring.h>
68783 #include <testsuite_hooks.h>
68784 diff -Nur a/libstdc++-v3/testsuite/ext/vstring/moveable.cc b/libstdc++-v3/testsuite/ext/vstring/moveable.cc
68785 --- a/libstdc++-v3/testsuite/ext/vstring/moveable.cc 2009-04-10 01:23:07.000000000 +0200
68786 +++ b/libstdc++-v3/testsuite/ext/vstring/moveable.cc 2010-01-25 09:50:29.675687743 +0100
68787 @@ -1,4 +1,5 @@
68788 // { dg-options "-std=gnu++0x" }
68789 +// { dg-require-string-conversions "" }
68790
68791 // Copyright (C) 2007, 2009 Free Software Foundation, Inc.
68792 //
68793 diff -Nur a/libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc
68794 --- a/libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc 2009-04-10 01:23:07.000000000 +0200
68795 +++ b/libstdc++-v3/testsuite/ext/vstring/requirements/citerators.cc 2010-01-25 09:50:29.675687743 +0100
68796 @@ -1,4 +1,5 @@
68797 // { dg-options "-std=gnu++0x" }
68798 +// { dg-require-string-conversions "" }
68799
68800 // 2007-10-15 Paolo Carlini <pcarlini@suse.de>
68801
68802 diff -Nur a/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc
68803 --- a/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc 2009-04-10 01:23:07.000000000 +0200
68804 +++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/1.cc 2010-01-25 09:50:29.675687743 +0100
68805 @@ -1,6 +1,7 @@
68806 // { dg-do compile }
68807 // { dg-options "-std=gnu++0x" }
68808 // { dg-require-cstdint "" }
68809 +// { dg-require-string-conversions "" }
68810
68811 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68812 //
68813 diff -Nur a/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc
68814 --- a/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc 2009-04-10 01:23:07.000000000 +0200
68815 +++ b/libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/1.cc 2010-01-25 09:50:29.675687743 +0100
68816 @@ -1,6 +1,7 @@
68817 // { dg-do compile }
68818 // { dg-options "-std=gnu++0x" }
68819 // { dg-require-cstdint "" }
68820 +// { dg-require-string-conversions "" }
68821
68822 // Copyright (C) 2008, 2009 Free Software Foundation, Inc.
68823 //
68824 diff -Nur a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
68825 --- a/libstdc++-v3/testsuite/lib/dg-options.exp 2009-04-10 01:23:07.000000000 +0200
68826 +++ b/libstdc++-v3/testsuite/lib/dg-options.exp 2010-01-25 09:50:29.675687743 +0100
68827 @@ -142,3 +142,21 @@
68828 }
68829 return
68830 }
68831 +
68832 +proc dg-require-swprintf { args } {
68833 + if { ![ check_v3_target_swprintf ] } {
68834 + upvar dg-do-what dg-do-what
68835 + set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
68836 + return
68837 + }
68838 + return
68839 +}
68840 +
68841 +proc dg-require-binary-io { args } {
68842 + if { ![ check_v3_target_binary_io ] } {
68843 + upvar dg-do-what dg-do-what
68844 + set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
68845 + return
68846 + }
68847 + return
68848 +}
68849 diff -Nur a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
68850 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp 2009-05-21 13:30:55.000000000 +0200
68851 +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp 2010-01-25 09:50:29.675687743 +0100
68852 @@ -204,14 +204,23 @@
68853 # directory, and then add that to the search path.
68854 foreach src [glob "${srcdir}/util/*.h" \
68855 "${srcdir}/util/*.cc" \
68856 - "${srcdir}/util/*/*.hpp" \
68857 + "${srcdir}/util/*.tcc" \
68858 + "${srcdir}/util/*.hpp" \
68859 + "${srcdir}/util/*/*.h" \
68860 "${srcdir}/util/*/*.cc" \
68861 + "${srcdir}/util/*/*.tcc" \
68862 "${srcdir}/util/*/*.hpp" \
68863 + "${srcdir}/util/*/*/*.h" \
68864 "${srcdir}/util/*/*/*.cc" \
68865 + "${srcdir}/util/*/*/*.tcc" \
68866 "${srcdir}/util/*/*/*.hpp" \
68867 + "${srcdir}/util/*/*/*/*.h" \
68868 "${srcdir}/util/*/*/*/*.cc" \
68869 + "${srcdir}/util/*/*/*/*.tcc" \
68870 "${srcdir}/util/*/*/*/*.hpp" \
68871 + "${srcdir}/util/*/*/*/*/*.h" \
68872 "${srcdir}/util/*/*/*/*/*.cc" \
68873 + "${srcdir}/util/*/*/*/*/*.tcc" \
68874 "${srcdir}/util/*/*/*/*/*.hpp" ] {
68875 # Remove everything up to "util/..."
68876 set dst [string range $src [string length "${srcdir}/"] end]
68877 @@ -1374,3 +1383,119 @@
68878 verbose "check_v3_target_string_conversions: $et_string_conversions" 2
68879 return $et_string_conversions
68880 }
68881 +
68882 +proc check_v3_target_swprintf { } {
68883 + global cxxflags
68884 + global DEFAULT_CXXFLAGS
68885 + global et_swprintf
68886 +
68887 + global tool
68888 +
68889 + if { ![info exists et_swprintf_target_name] } {
68890 + set et_swprintf_target_name ""
68891 + }
68892 +
68893 + # If the target has changed since we set the cached value, clear it.
68894 + set current_target [current_target_name]
68895 + if { $current_target != $et_swprintf_target_name } {
68896 + verbose "check_v3_target_swprintf: `$et_swprintf_target_name'" 2
68897 + set et_swprintf_target_name $current_target
68898 + if [info exists et_swprintf] {
68899 + verbose "check_v3_target_swprintf: removing cached result" 2
68900 + unset et_swprintf
68901 + }
68902 + }
68903 +
68904 + if [info exists et_swprintf] {
68905 + verbose "check_v3_target_swprintf: using cached result" 2
68906 + } else {
68907 + set et_swprintf 0
68908 +
68909 + # Set up and compile a C++0x test program that depends
68910 + # on a standard swprintf function to be available.
68911 + set src swprintf[pid].cc
68912 + set exe swprintf[pid].exe
68913 +
68914 + set f [open $src "w"]
68915 + puts $f "#include <bits/c++config.h>"
68916 + puts $f "int main()"
68917 + puts $f "#if !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)"
68918 + puts $f "{ return 0; }"
68919 + puts $f "#endif"
68920 + close $f
68921 +
68922 + set cxxflags_saved $cxxflags
68923 + set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -Werror"
68924 +
68925 + set lines [v3_target_compile $src $exe executable ""]
68926 + set cxxflags $cxxflags_saved
68927 + file delete $src
68928 +
68929 + if [string match "" $lines] {
68930 + # No error message, compilation succeeded.
68931 + set et_swprintf 1
68932 + } else {
68933 + verbose "check_v3_target_swprintf: compilation failed" 2
68934 + }
68935 + }
68936 + verbose "check_v3_target_swprintf: $et_swprintf" 2
68937 + return $et_swprintf
68938 +}
68939 +
68940 +proc check_v3_target_binary_io { } {
68941 + global cxxflags
68942 + global DEFAULT_CXXFLAGS
68943 + global et_binary_io
68944 +
68945 + global tool
68946 +
68947 + if { ![info exists et_binary_io_target_name] } {
68948 + set et_binary_io_target_name ""
68949 + }
68950 +
68951 + # If the target has changed since we set the cached value, clear it.
68952 + set current_target [current_target_name]
68953 + if { $current_target != $et_binary_io_target_name } {
68954 + verbose "check_v3_target_binary_io: `$et_binary_io_target_name'" 2
68955 + set et_binary_io_target_name $current_target
68956 + if [info exists et_binary_io] {
68957 + verbose "check_v3_target_binary_io: removing cached result" 2
68958 + unset et_binary_io
68959 + }
68960 + }
68961 +
68962 + if [info exists et_binary_io] {
68963 + verbose "check_v3_target_binary_io: using cached result" 2
68964 + } else {
68965 + set et_binary_io 0
68966 +
68967 + # Set up and compile a C++0x test program that depends
68968 + # on text and binary I/O being the same.
68969 + set src binary_io[pid].cc
68970 + set exe binary_io[pid].exe
68971 +
68972 + set f [open $src "w"]
68973 + puts $f "#include <bits/c++config.h>"
68974 + puts $f "int main()"
68975 + puts $f "#if !defined(_GLIBCXX_HAVE_DOS_BASED_FILESYSTEM)"
68976 + puts $f "{ return 0; }"
68977 + puts $f "#endif"
68978 + close $f
68979 +
68980 + set cxxflags_saved $cxxflags
68981 + set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -Werror"
68982 +
68983 + set lines [v3_target_compile $src $exe executable ""]
68984 + set cxxflags $cxxflags_saved
68985 + file delete $src
68986 +
68987 + if [string match "" $lines] {
68988 + # No error message, compilation succeeded.
68989 + set et_binary_io 1
68990 + } else {
68991 + verbose "check_v3_target_binary_io: compilation failed" 2
68992 + }
68993 + }
68994 + verbose "check_v3_target_binary_io: $et_binary_io" 2
68995 + return $et_binary_io
68996 +}
68997 diff -Nur a/libstdc++-v3/testsuite/lib/prune.exp b/libstdc++-v3/testsuite/lib/prune.exp
68998 --- a/libstdc++-v3/testsuite/lib/prune.exp 2009-04-10 01:23:07.000000000 +0200
68999 +++ b/libstdc++-v3/testsuite/lib/prune.exp 2010-01-25 09:50:29.675687743 +0100
69000 @@ -30,5 +30,23 @@
69001 regsub -all "(^|\n)\[^\n\]*: Additional NOP may be necessary to workaround Itanium processor A/B step errata" $text "" text
69002 regsub -all "(^|\n)\[^\n*\]*: Assembler messages:\[^\n\]*" $text "" text
69003
69004 + if { [ishost "sparc*-*-solaris2*"] } {
69005 + # When testing a compiler built for SPARC Solaris 2.9 (or earlier)
69006 + # on a host running Solaris 2.10 (or later), we get this warning
69007 + # from the static linker when building with g++:
69008 + #
69009 + # libm.so.1, needed by .../libstdc++.so may conflict with
69010 + # libm.so
69011 + #
69012 + # The warning is issued because libstdc++ is linked against
69013 + # libm.so.1 (from the Solaris 2.9 sysroot), whereas Solaris 2.10
69014 + # provides both libm.so.2 and libm.so.1. On Solaris 2.10, libc.so
69015 + # depends on libm.so.2, so all programs pull in libm.so.2.
69016 + #
69017 + # Pulling both libraries must in fact be harmless, as, otherwise,
69018 + # programs built for Solaris 2.9 would break on Solaris 2.10.
69019 + regsub -all "(^|\n)\[^\n\]*: warning: libm.so.1, needed by \[^\n\]*, may conflict with libm.so.2" $text "" text
69020 + }
69021 +
69022 return $text
69023 }
69024 diff -Nur a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
69025 --- a/libstdc++-v3/testsuite/Makefile.in 2009-02-23 21:42:53.000000000 +0100
69026 +++ b/libstdc++-v3/testsuite/Makefile.in 2010-01-25 09:50:29.675687743 +0100
69027 @@ -161,6 +161,8 @@
69028 LIBOBJS = @LIBOBJS@
69029 LIBS = @LIBS@
69030 LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
69031 +LIBSUPCXX_PRONLY_FALSE = @LIBSUPCXX_PRONLY_FALSE@
69032 +LIBSUPCXX_PRONLY_TRUE = @LIBSUPCXX_PRONLY_TRUE@
69033 LIBTOOL = @LIBTOOL@
69034 LIPO = @LIPO@
69035 LN_S = @LN_S@