OSDN Git Service

Fix thinko
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
2
3         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
4         flag bit mask.
5
6 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
7
8         * except.h (struct eh_entry): Add false_label field.
9         (end_catch_handler): Add prototype.
10         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
11         (start_catch_handler): When using old style exceptions, issue
12         runtime typematch code before continuing with the handler.
13         (end_catch_handler): New function, generates label after handler
14         if needed by older style exceptions.
15         (expand_start_all_catch): No need to check for new style exceptions.
16         (output_exception_table_entry): Only output the first handler label
17         for old style exceptions.
18         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
19         mechanism into one function, if a runtime matcher is provided.
20
21 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
22
23         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
24
25 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
26
27         * integrate.c (copy_decl_list): Fix typo.
28
29 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
30
31         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
32         attribute.
33
34 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
35
36         * version.c: Bump for snapshot.
37
38 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
39
40         * version.c: Bump for snapshot.
41
42 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
43
44         * version.c: Bump for snapshot.
45
46 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
47
48         * invoke.texi (C Dialect Options): Put back missing @end itemize.
49
50 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
51
52         * configure.in: remove usage of `!' to negate the result of a
53         command; some common shells do not support it
54
55 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
56
57         * configure.in: in sparc9-sol2 config, use 'if test' not
58         brackets.
59         * configure: Rebuilt.
60
61         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
62         CM_MEDANY.
63         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
64         (CPP_CPU_DEFAULT_SPEC): Likewise.
65         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
66         for arch64 libfuncs.
67         
68         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
69         for operand zero.
70
71 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
72
73         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
74
75         * collect2.c: Don't declare `sys_siglist' here.
76         (my_strsignal): Prototype and define new function.  Use it in
77         place of `sys_siglist' hacks.
78
79         * mips_tfile.c:  Likewise.
80
81         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
82         (GCC_NEED_DECLARATIONS): Likewise.
83
84         * system.h (strsignal): Prototype it, if necessary.
85         (sys_siglist): Declare it, if necessary.
86
87 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
88
89         * loop.c (move_movables): While removing insn sequences, preserve
90         the next pointer of the most recently deleted insn when we skip
91         over a NOTE.
92
93 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
94
95         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
96         supported with -mcpu=xxx.
97
98 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
99
100         * flow.c (mark_set_1): Recognize multi-register structure return
101         values in CALL insns.
102         (mark_used_regs): Likewise.
103         (count_reg_sets_1): Likewise.
104         (count_reg_references): Likewise.
105         * rtlanal.c (note_stores): Likewise.
106         (reg_overlap_mentioned_p): Likewise.
107         * haifa-sched.c (check_live_1): Likewise.
108         (update_live_1): Likewise.
109         (sched_analyze_1): Likewise.
110         (sched_note_set): Likewise.
111         (birthing_insn_p): Likewise.
112         (attach_deaths): Likewise.
113
114         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
115
116
117 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
118
119         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
120
121 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
122
123         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
124
125 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
126
127         * configure.in: Add check for GAS subsection -1 support.
128         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
129         * configure config.in: Rebuilt.
130         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
131         SImode is subsection -1 works, else use DImode.
132         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
133         subsection -1 works.
134         * config/sparc/sparc.c (sparc_output_addr_vec,
135         sparc_output_addr_diff_vec): Use them if defined.
136
137 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
138
139         * tree.h (DECL_ORIGIN): New macro.
140         * integrate.c (copy_and_set_decl_abstract_origin): New function.
141         (copy_decl_list): Use it.
142         (integrate_parm_decls): Likewise.
143         (integrate_decl_tree): Likewise.
144         * dwarf2out.c (decl_ultimate_origin): Simplify.
145         * dwarfout.c (decl_ultimate_origin): Likewise.
146         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
147         (pushdecl): Likewise.
148
149 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
150
151         * config/rs6000/rs6000.c (output_epilog): Add Java support.
152
153 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
154
155         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
156
157 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
158
159         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
160         empty or has a single entry.
161
162         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
163         before calling reg_to_stack.
164
165 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
166
167         * alpha.c (alphaev5_insn_pipe): Abort on default case.
168         (alphaev5_next_group): Swallow CLOBBERs and USEs.
169
170         * c-tree.h (warn_long_long): Declare it.
171
172 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
173
174         * emit-rtl.c (gen_lowpart_common): Disable optimization of
175         initialized float-int union if the value is a NaN.
176
177 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
178
179         * c-lex.c (real_yylex): Don't warn about long long constants if 
180         we're allowing long long
181
182 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
183
184         * except.h (current_function_eh_stub_label): Declare.
185         (current_function_eh_old_stub_label): Declare.
186         * function.h (struct function): New members eh_stub_label and
187         eh_old_stub_label.
188         * except.c (current_function_eh_stub_label): New variable.
189         (current_function_eh_old_stub_label): New variable.
190         (init_eh_for_function): Clear them.
191         (save_eh_status): Save them.
192         (restore_eh_status): Restore them.
193         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
194         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
195         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
196         make an edge from the block that contains it to the block starting
197         with the label if this label is one of the eh stub labels.
198         If eh stub labels exist, show they are reachable from the last block
199         in the function.
200
201         * reload1.c (reload): Break out several subroutines and make some
202         variables global.
203         (calculate_needs_all_insns): New function, broken out of reload.
204         (calculate_needs): Likewise.
205         (find_reload_regs): Likewise.
206         (find_group): Likewise.
207         (find_tworeg_group): Likewise.
208         (something_needs_reloads): New global variable, formerly in reload.
209         (something_needs_elimination): Likewise.
210         (caller_save_spill_class): Likewise.
211         (caller_save_group_size): Likewise.
212         (max_needs): Likewise.
213         (group_size): Likewise.
214         (max_groups): Likewise.
215         (max_nongroups): Likewise.
216         (group_mode): Likewise.
217         (max_needs_insn): Likewise.
218         (max_groups_insn): Likewise.
219         (max_nongroups_insn): Likewise.
220         (failure): Likewise.
221
222         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
223
224 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
225
226         * loop.c (load_mems): Copy rtx for output mem.
227
228 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
229
230         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
231         mips1 or mips2 either.
232
233 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
234
235         * pa.c (pa_reorg): New marking scheme for jumps inside switch
236         tables.
237         (pa_adjust_insn_length): Update to work with new marking scheme
238         for jumps inside switch tables. 
239         * pa.md (switch_jump): Remove pattern.
240         (jump): Handle jumps inside jump tables.
241
242         * Makefile.in (profile.o): Depend on insn-config.h
243
244 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
245
246         * iris6.h (DWARF2_UNWIND_INFO): Undef.
247
248 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
249
250         Add preliminary native sparcv9 Solaris support.
251         * configure.in: Recognize sparv9-*-solaris2*
252         * configure: rebuilt
253         * config.sub: Recognize sparcv9 just like sparc64.
254         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
255         config/sparc/sol2-cn.asm: Macroize so it can be shared between
256         32-bit and 64-bit Solaris systems.
257         * config/sparc/t-sol2: Assemble those with cpp.
258         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
259         (*TF*_LIBCALL): If ARCH64 use V9 names.
260         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
261
262 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
263
264         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
265         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
266         not doing pic.
267         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
268         Pmode.
269         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
270         to Pmode if CASE_VECTOR_MODE is something else.
271
272 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
273
274         * prefix.c (update_path): Correctly handle cases where PATH is
275         a substring of the builtin prefix, but specifies a different
276         directory location.
277
278 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
279
280         * expr.c: Corrected comment about what MOVE_RATIO does.
281         * config/alpha/alpha.h: Ditto.
282         * config/1750a/1750a.h: Ditto.
283         * config/clipper/clipper.h: Ditto.
284         * config/i386/i386.h: Ditto.
285
286 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
287
288         * configure.in (m68k-next-nextstep3*): Use collect2.
289         Similarly for x86 NeXT configurations.
290         * configure: Rebuilt.
291
292 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
293
294         * configure.in: Don't assume srcdir is .../gcc
295         * configure: Rebuilt.
296
297 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
298
299         * global.c: Update comments.
300         (global_alloc): Assign allocation-numbers
301         even for registers allocated by local_alloc in case
302         they are later spilled and retry_global_alloc is called.
303         (mark_reg_store, mark_reg_clobber,
304         mark_reg_conflicts, mark_reg_death): Always record a
305         conflict with a pseudo register even if it has been
306         assigned to a hard register.
307         (dump_conflicts): Don't list pseudo registers already assigned to
308         a hard register as needing to be allocated, but do list their
309         conflicts.
310         * local-alloc.c: Update comment.
311
312 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
313
314         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
315         * configure: Rebuilt.
316
317 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
318
319         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
320         missing 'c'.
321         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
322         for all targets that set -msoft-float.
323
324 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
325
326         * toplev.c (print_switch_values): Make static to match prototype.
327
328 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
329
330         * configure.in: If we are unable to find the "gnatbind" program,
331         then do not configure the ada subdir.
332         * configure: Rebuilt.
333
334 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
335
336         * version.c: Bump for snapshot.
337
338 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
339
340         * version.c: Bump for snapshot.
341
342 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
343
344         * Makefile.in (toplev.o): Depend on $(EXPR_H).
345         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
346
347         * gansidecl.h: Define ATTRIBUTE_NORETURN.
348
349         * genattrtab.c: Have insn-attrtab.c include toplev.h.
350
351         * genextract.c: Have insn-extract.c include toplev.h.
352
353         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
354
355         * toplev.c: Include expr.h.
356         (really_sorry, fancy_abort): Remove prototypes.
357         (set_target_switch): Add argument in prototype.
358         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
359         (v_really_sorry): Likewise.
360         (print_version, print_single_switch, print_switch_values): Make
361         static and add prototype arguments.
362         (decl_printable_name): Add prototype arguments.
363         (lang_expand_expr_t): New typedef.
364         (lang_expand_expr): Declare as a lang_expand_expr_t.
365         (incomplete_decl_finalize_hook): Add prototype argument.
366         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
367         (botch): Likewise for variable `s'.
368         (rest_of_type_compilation): Mark variables `type' and `toplev'
369         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
370         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
371         (display_help): Make variable `i' an `unsigned long'.
372         (main): Remove unused parameter `envp'.
373         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
374         Cast -1 when comparing it with a `size_t'.
375
376         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
377         prototype with ATTRIBUTE_NORETURN.
378         (fatal_insn_not_found, fatal_insn, really_sorry,
379         push_float_handler, pop_float_handler): Add prototypes.
380         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
381         (do_abort, botch): Add prototypes.
382         
383 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
384
385         * final.c (final): If a label is reached only from a single jump,
386         call NOTICE_UPDATE_CC on the jump and its predecessor before
387         emitting the insn after the label.
388         
389         * i386.h: Add AMD K6 support.
390         Change TARGET_* macros to use table lookup.
391         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
392         (ADJUST_COST): Change definition to call function in i386.c.
393         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
394         * i386.c: Add AMD K6 support.
395         Add constants for feature tests used by TARGET_* macros.
396         (split_di): If before reload, call gen_lowpart and gen_highpart.
397         (x86_adjust_cost): New function.
398         (put_jump_code): New function.
399         (print_operand): New codes 'D' and 'd'.
400         * i386.md: New insn types.  New insn attribute "memory".
401         Redefine scheduling parameters to use new types and add AMD K6
402         support.  Explicitly set type of most insns.
403         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
404         Pro and K6 prefer movl $1,reg to incl reg.
405         (adddi3, subdi3): Set cc_status.
406         (DImode shift patterns): Change label counters from HOST_WIDE_INT
407         to int; x86 can't have more than 2^31 DImode shifts per file.
408         (setcc): Combine all setcc patterns.  Allow writing memory.
409         Combine all jump patterns using match_operator.
410         (*bzero): Name pattern.  Emit mutliple stos instructions when that
411         is faster than rep stos.
412         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
413         add define_split.
414
415 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
416
417         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
418         linking.
419
420 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
421
422         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
423         not whatever we're generating now.
424
425         * alpha.c (set_frame_related_p, FRP): New.
426         (alpha_expand_prologue): Mark frame related insns.
427         (alpha_expand_epilogue): Likewise, but with a null FRP.
428         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
429         * alpha.md (exception_receiver): New.
430         * alpha/crtbegin.asm (.eh_frame): New beginning.
431         (__do_frame_setup, __do_frame_takedown): New.
432         * alpha/crtend.asm (.eh_frame): New ending.
433         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
434         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
435         (ASM_FILE_START): Don't emit .file for dwarf2.
436
437         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
438         * rtl.c (reg_note_name): Likewise.
439         * rtl.texi (REG_NOTES): Likewise.
440         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
441         without an offset.
442
443 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
444
445         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
446         * i386.md (movsf, movdf, movxf): Validate memory address returned
447         from force_const_mem.  Kill useless REG_EQUAL setting code.
448
449 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
450
451         * m68k.md (zero_extendsidi2): Fix typo.
452
453 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
454
455         * configure.in: Removed references to the removed file
456         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
457         * arm*-*-netbsd* and ns32k-*-netbsd*.
458         * config/i386/xm-netbsd.h: Removed unnecessary file.
459         * config/m68k/xm-netbsd.h: Likewise.
460         * config/sparc/xm-netbsd.h: Likewise.
461         * config/mips/xm-netbsd.h: Likewise.
462
463 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
464
465         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
466         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
467
468         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
469         for exact section attributions.
470
471         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
472         runtime.
473         * i386/crtdll.h (CPP_PREDEFINES): Define.
474
475 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
476
477         * m68k.md (5200 movqi): Do not allow byte sized memory references
478         using address regs.
479         * m68k.c (output_move_qimode): Do not use byte sized operations on
480         address registers.
481
482         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
483         explicit rules for building.  Similarly for alloca, vfprintf,
484         choose-temp and mkstemp, getopt, getopt1, and obstack.
485         (INCLUDES): Add $(srcdir)/../include.
486         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
487         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
488
489 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
490
491         * gcc.c (do_spec_1): [case 'o'] Account for
492         lang_specific_extra_outfiles.
493         (main): Correctly clear all slots in outfiles for
494         lang_specific_extra_outfiles.  Set input_file_number before
495         calling lang_specific_pre_link.
496
497 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
498
499         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
500
501 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
502
503         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
504         cases, use xword.
505         (sparc_output_deferred_case_vectors): If no work to do, return.
506         Fix thinko in Sept 1 change.
507
508 1998-09-03  SL Baur  <steve@altair.xemacs.org>
509
510         * Makefile.in: add semicolon in BISON definition for portability.
511
512 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
513
514         * config/nextstep.c (handle_pragma): Correct name of third
515         argument.
516
517 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
518
519         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
520         * config/m32r/m32r.h: Make register 17 be fixed.
521         * config/m32r/m32r.c: Use SImode for cc operations.
522
523 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
524
525         * invoke.texi (Warning Options): Add -Wnon-template-friend
526         documentation.
527
528 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
529
530         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
531
532 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@mhpcc.edu>
533
534         * rs6000.md (movsf): Disable explicit secondary-reload-like
535         functionality if TARGET_POWERPC64.
536         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
537         functionality.
538
539 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
540
541         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
542         and term.h from fixinc.wrap.
543
544 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
545
546         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
547         safe to include both string.h and strings.h together.
548         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
549         which headers to search for function declarations.  Continue to
550         prefer string.h over strings.h when both are not acceptable.
551
552         * acconfig.h (STRING_WITH_STRINGS): Add stub.
553
554         * configure.in: Call GCC_HEADER_STRING.
555
556         * system.h: Test STRING_WITH_STRINGS when deciding which headers
557         to include.  Continue to prefer string.h over strings.h when both
558         are not acceptable.
559
560 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
561
562         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
563         not assume top 32-bits of symbolic addresses are zero if
564         flag_pic.
565
566 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
567
568         * ginclude/va-alpha.h: Protect entire second portion of the
569         file against double inclusion.
570
571 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
572
573         Added support for the Boehm's garbage collector.
574         * configure.in: Handle --enable-objc-gc.
575         * configure: Rebuilt.
576         * Makefile.in (CHECK_TARGETS): Add check-objc.
577         (check-objc): New rule.
578         * objc/Make-lang.in: Build a different Objective-C library that
579         runs with the Boehm's collector.
580         * objc/encoding.c (objc_round_acc_size_for_types): New function.
581         * objc/encoding.c: Correctly compute the size of compound types in
582         the presence of bitfields. Skip the variable name of the type if
583         any. Added support for long long.
584         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
585         (_F_GCINVISIBLE): New mask.
586         * objc/gc.c: New file. Compute the type memory mask associated with
587         a class based on the runtime information.
588         * objc/misc.c: Added the hooks that use the Boehm's collector
589         allocation functions.
590         * objc/objc-act.c (build_class_template): Generate a new class
591         member (gc_object_type) to hold the class' type memory mask.
592         (build_shared_structure_initializer): Initialize the new member to
593         NULL.
594         (encode_complete_bitfield): New function. Generate the new
595         encoding.
596         (encode_field_decl): Generate the new encoding only for the GNU
597         runtime.
598         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
599         long long types.
600         (class_get_gc_object_type): New function to mark a pointer instance
601         variable as a weak pointer.
602         * objc/objc-features.texi: New file.
603         * objc/objc.h (gc_object_type): New class member.
604         * objc/objects.c (class_create_instance): Create a typed memory
605         object when compiled with Boehm's collector support.
606         * objc/sendmsg.c (__objc_init_install_dtable): Call
607         __objc_send_initialize instead of setting the initialize flag.
608         (__objc_send_initialize): Call __objc_generate_gc_type_description
609         to generate the class type memory mask. Rewrite the code that
610         sends the +initialize so that it is called only once (bug report
611         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
612         * testsuite/objc: New testsuite for Objective-C type encoding.
613         * testsuite/lib/objc-torture.exp: New file.
614         * testsuite/lib/objc.exp: New file.
615
616 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
617
618         * jump.c (jump_optimize): In if/then/else transformations, add
619         another call to modified_between_p for the jump insn.
620
621 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
622
623         * fix-header.c (symlink): Treat like readlink.
624
625 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
626
627         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
628         as FT_float.
629
630 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
631
632         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
633         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
634         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
635         
636         * config/nextstep.c (handle_pragma): Take three arguments, as per
637         the new HANDLE_PRAGMA macro specification.
638         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
639         per the new HANDLE_PRAGMA macro specification.
640         * config/i960/i960.c (process_pragma): Take three arguments, as
641         per the new HANDLE_PRAGMA macro specification.
642
643 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
644
645         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
646         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
647         if unknown pragmas are encountered.
648         (handle_sysv_pragma): Interpret return code from
649         handle_pragma_token ().  Return success/failure indication rather
650         than next unprocessed character. 
651         (pragma_getc): New function: retrieves characters from the
652         input stream.  Defined when HANDLE_PRAGMA is enabled.
653         (pragma_ungetc): New function: replaces characters back into the
654         input stream.  Defined when HANDLE_PRAGMA is enabled.
655         
656         * c-pragma.c (handle_pragma_token): Return success/failure status
657         of the parse.
658         
659         * c-pragma.h: Change prototype of handle_pragma_token().
660
661         * varasm.c: (handle_pragma_weak): Only create this function if
662         HANDLE_PRAGMA_WEAK is defined.
663
664         * c-common,c (decl_attributes): If defined call the expression
665         contained within the INSERT_ATTRIBUTES macro before adding
666         attributes to a decl.
667
668         * tm.texi (HANDLE_PRAGMA): Document the new verion of
669         HANDLE_PRAGMA, which takes three arguments.
670         (INSERT_ATTRIBUTES): Document this new macro.  
671
672         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
673         new INSERT_ATTRIBUTES macro.
674
675 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
676
677         * config/sparc/sparc.md (movdf): Only generate special RTL for
678         LABEL_REFs when PIC.
679         (move_label_di): Remove
680         (movdi_pic_label_ref, movdi_high_pic_label_ref,
681         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
682         references when PIC.
683         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
684         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
685         output an .xword for all 64-bit cases.
686         
687 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
688
689         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
690         alignment, use FUNCTION_BOUNDARY instead.
691         (sparc_output_deferred_case_vectors): Likewise.
692
693 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
694
695         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
696         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
697
698 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
699
700         * alpha/va_list.h: New file.
701         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
702
703 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
704
705         * NEWS: Add SCO Openserver and Unixware 7 notes.
706
707         * NEWS: Fix typos.
708
709 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
710
711         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
712         (record_constant_1): Handle RANGE_EXPR.
713
714 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
715
716         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
717         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
718         and NOTE_INSN_RANGE_END specially.
719         (reemit_notes): Likewise.
720
721 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
722
723         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
724         (ultrasparc_sched_init): Remove unneeded &.
725
726 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
727
728         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
729         for m68020-60, to prevent the use of fintrz.
730
731 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
732
733         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
734         even in stage1. 
735         * Makefile.in: Likewise.
736         * configure: Regenerated.
737
738 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
739
740         * configure.in (gxx_include_dir): Changed to
741         '${prefix}/include/g++'-${libstdcxx_interface}.
742         * configure: Rebuilt.
743
744 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
745
746         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
747         consistent.
748         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
749         *sequences* *below* which scalar moves will be used.
750
751 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
752
753         * collect2.c (mktemp): Delete unused declaration.
754
755         * config/xm-netbsd.h: Remove unnecessary file.
756         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
757         file anymore, it is not needed.
758
759 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
760
761         * convert.c (convert_to_integer): Issue an error on conversions to
762         incomplete types.
763
764 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
765
766         * Makefile.in: Add lang_tree_files and gencheck.h.
767         * configure.in: Generate them.
768         * gencheck.c: Include gencheck.h.
769
770 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
771
772         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
773         movdi_lo_sum_pic and movdi_high_pic and make visible.
774         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
775         emit these when Pmode is not SImode.
776         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
777
778 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
779
780         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
781         .linkonce directive after the first time.
782
783 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
784
785         * m68k.md (beq0_di): Generate correct (and more efficient) code when
786         the clobbered operand overlaps with an input.
787         (bne0_di): Similarly.
788
789         * Makefile.in (INSTALL): Remove "--no-header" argument.
790
791         * NEWS: Various updates.
792
793 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
794
795         * config/sparc/sparc.c (arith_operand, const64_operand,
796         const64_high_operand, arith_double_4096_operand): Mark mode as
797         unused.
798         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
799         callers changed.
800         (sparc_emit_set_const64): Remove unused variable i.
801         (sparc_splitdi_legitimate): Likewise for addr_part.
802         (ultra_code_from_mask): Likewise for mask.
803         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
804         reverse return values so it matches usage and comments.
805         (ultra_flush_pipeline): Likewise.
806         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
807         this_type, and allow loads and stores of differing FP modes as
808         they do not create a conflict.
809         (ultra_find_type): Initialize fpmode to SFmode, fix
810         parenthesization thinkos in large conditional.
811         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
812         Init free_slot_mask after ultra_cur_hist is reset, not before.
813         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
814         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
815         use ultra_flush_pipeline instead, then re-init group pointer.
816         Fix statement with no effect.  If no progress made in, and no
817         instructions scheduled at all, advance to new pipeline cycle else
818         we get into an endless loop.
819         (ultrasparc_adjust_cost): Remove previous arg.
820         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
821         
822 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
823
824         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
825         code.  Use reg_overlap_mentioned_p to detect when source and
826         destination overlap.
827         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
828
829 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
830
831         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
832         COMPARISON_VAL, into invariant_p.
833
834 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
835
836         * regmove.c (regclass_compatible_p): New function.
837         (regmove_optimize): Use it.
838
839         Use NREGS parameter insted of calling max_reg_num.
840
841         (fixup_match_1): Don't use code = MINUS when later tieing with
842         a hard register is likely.
843
844 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
845
846         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
847         COMPARISON_VAL was normalized.
848
849 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
850
851         * loop.c (check_dbra_loop): The loop ending comparison value
852         must be an invariant or we can not reverse the loop.
853
854         * loop.c (scan_loop): Count down from max_reg_num - 1 to
855         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
856         of the loop.
857         (load_mems_and_recount_loop_regs_set): Likewise.
858
859         * i386.c (print_operand): Remove obsolete 'c' docs.
860
861 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
862
863         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
864         * frame.c (init_object_mutex): New function.
865         (init_object_mutex_once): Likewise.
866         (find_fde): Call it.
867         (__register_frame_info): Likewise.
868         (__register_frame_info_table): Likewise.
869         (__deregister_frame_info): Likewise.
870
871 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
872
873         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
874
875 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
876
877         * loop.c (check_dbra_loop): Enable code for reversal
878         of some loops without a known constant loop end.
879
880 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
881
882         * haifa-sched.c (last_clock_var): New.
883         (schedule_block): Initialize it.
884         (schedule_insn): Use it to fill insn modes with issue information.
885
886         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
887         Tag trapb and next insn with TImode.
888         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
889         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
890         Invoke alphaev5_align_insns as appropriate.
891         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
892         (MD_SCHED_VARIABLE_ISSUE): New.
893         * alpha.md (attr type): Add multi.
894         (define_asm_attributes): New.
895         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
896         (arg_home): Likewise.
897         (fnop, unop, realign): New.
898
899 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
900
901         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
902         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
903
904         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
905         (rs6000-ibm-aix4.[12]*): Likewise.
906         * configure: Regnerate.
907
908 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
909
910         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
911         already contains the return address.
912
913 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
914
915         * calls.c (expand_call): Use bitfield instructions to extract/deposit
916         word sized hunks when loading unaligned args into registers.
917
918         * haifa-sched.c (sched_analyze_insn): Only create scheduling
919         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
920
921         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
922
923 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
924
925         * loop.c (check_dbra_loop): Add some code that would allow reversal
926         of some loops without a known constant loop end if it were enabled.
927
928 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
929
930         * mips.md (lshrsi3_internal2+2): Fix type-o.
931
932 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
933
934         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
935         correctly with regards to stdio.h.
936         
937         * calls.c: Remove stdarg.h/varargs.h.
938         * cccp.c: Likewise.
939         * cexp.y: Likewise.
940         * combine.c: Likewise.
941         * cpperror.c: Likewise.
942         * cpplib.c: Likewise.
943         * cpplib.h: Likewise.
944         * doprint.c: Likewise.
945         * emit-rtl.c: Likewise.
946         * final.c: Likewise.
947         * fix-header.c: Likewise.
948         * gcc.c: Likewise.
949         * genattr.c: Likewise.
950         * genattrtab.c: Likewise.
951         * gencodes.c: Likewise.
952         * genconfig.c: Likewise.
953         * genemit.c: Likewise.
954         * genextract.c: Likewise.
955         * genflags.c: Likewise.
956         * genopinit.c: Likewise.
957         * genoutput.c: Likewise.
958         * genpeep.c: Likewise.
959         * genrecog.c: Likewise.
960         * mips-tfile.c: Likewise.
961         * prefix.c: Likewise.
962         * protoize.c: Likewise.
963         * regmove.c: Likewise.
964         * toplev.c: Likewise.
965         * tree.c: Likewise.
966
967 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
968
969         * config/sparc/sparc.c (sparc_override_options): If not
970         TARGET_FPU, turn off TARGET_VIS.
971         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
972         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
973         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
974         (movdi_insn_sp64): Add VIS fzero alternative.
975         (clear_sf, clear_df): New VIS patterns.
976         (movsf, movdf expanders): Allow fp_zero_operand flat out when
977         TARGET_VIS.
978         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
979         
980 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
981
982         * loop.c (n_times_set, n_times_used, may_not_optimize,
983         reg_single_usage): Convert to varrays.  All uses changed.
984         (insert_loop_mem): Return a value.
985         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
986         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
987         necessary.
988
989 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
990
991         * From Alexandre:
992         * configure.in: Do not set thread_file to "irix" since no such
993         support exists yet.
994
995         * sparc.md (float abs/neg splits): Check reload_completed before
996         calling alter_subreg.
997
998 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
999
1000         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
1001         function.
1002         * config/sparc/sparc.h: Declare it.
1003         * config/sparc/sparc.md (float abs/neg splits): Use it.
1004         (all other splits): Handle SUBREGs properly where necessary.
1005         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
1006
1007 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
1008
1009         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
1010         an insn on the unfilled_slots_list that has no delay slots.
1011         (fill_eager_delay_slots): Similarly.
1012
1013 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
1014
1015         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
1016         as an ordinary operand.
1017
1018 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
1019
1020         * tree.c (valid_machine_attribute): Don't apply attributes to both
1021         decl and type.
1022
1023 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
1024
1025         * reload.c (operands_match_p): Handle rtvecs.
1026
1027         * i386.c (legitimate_pic_address_disp_p): New.
1028         (legitimate_address_p): Use it.
1029         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
1030         Handle constant pool symbols just like statics.
1031         (emit_pic_move): Use Pmode not SImode for clarity.
1032         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
1033         [UNSPEC]: New, handling what we killed above.
1034         [PLUS]: Detect and abort on invalid symbol arithmetic.
1035         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
1036
1037 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
1038
1039         * alias.c: Include output.h.
1040         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
1041         different if we're in a varargs function.
1042         * Makefile.in (alias.o): Depend on output.h
1043         
1044 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1045
1046         * sh.h (GIV_SORT_CRITERION): Delete.
1047
1048 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
1049
1050         * regclass.c (regclass): Use xmalloc/free instead of alloca.
1051         * stupid.c (stupid_life_analysis): Ditto.
1052         * reload1.c (reload): Ditto.
1053
1054 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
1055
1056         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
1057         arith_double_4096_operand, arith_double_add_operand): New
1058         predicates.
1059         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
1060         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
1061         them to transform add/sub 4096 into add/sub -4096.
1062
1063 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1064
1065         * loop.c (scan_loop): Allocate some slop to handle pseudos
1066         generated by move_movables.
1067         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
1068         here too.
1069
1070 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
1071
1072         * tree.def (DECL_RESULT): Correct documentation.
1073
1074 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1075
1076         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
1077         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
1078         conflicts will all RELOAD_FOR_OUTPUT reloads.
1079
1080         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
1081         loads the function result, substitute with a USE.
1082
1083 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1084
1085         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
1086         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
1087         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
1088         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
1089         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
1090         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
1091         operand. 
1092         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
1093         'o' to 'm' for GPR variant constraints.
1094
1095 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
1096
1097         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
1098
1099         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
1100
1101         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
1102         when the source and destination overlap.
1103
1104         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
1105         clash with global type.
1106
1107 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
1108
1109         * fixinc.irix: Add curses.h handling from fixinc.wrap.
1110
1111         * c-common.c (combine_strings): Also set TREE_READONLY.
1112         Change warn_write_strings to flag_const_strings.
1113         * c-decl.c, c-tree.h: Likewise.
1114
1115 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1116
1117         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
1118         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
1119         sequence, use SET/IOR instead so CSE can see it.
1120         * config/sparc/sparc.md (movhi_const64_special,
1121         movsi_const64_special): New patterns necessitated by that change.
1122         (movhi_high): Remove.
1123         (movhi_lo_sum): Change to match an IOR.
1124         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
1125         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
1126         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
1127         (movdf splits): Allow when not V9 or when not ARCH64 and integer
1128         registers are involved.
1129         (snesi_zero_extend split): Remove reload_completed test.
1130         (unnamed plus and minus zero_extend sidi splits): Add it.
1131
1132 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
1133
1134         * extend.texi: Remove description of extension to explicit
1135         instantiation that is now endorsed by standard C++.
1136
1137 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1138
1139         * config/arc/arc.c (arc_initialize_pic): Remove.
1140         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
1141         nothing on any platform and is invoked by no-one, it does not even
1142         appear in the documentation.
1143         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
1144         * config/sparc/sparc.c (initialize_pic): Likewise.
1145         (find_addr_reg): Remove this as well, no longer referenced after
1146         my rewrite.
1147
1148 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
1149
1150         * recog.c (validate_replace_rtx_group): New function.
1151         * recog.h (validate_replace_rtx_group): Declare it.
1152         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
1153         the entire group of substitutions.
1154
1155 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
1156
1157         * loop.c (load_mems): Fix initializers.
1158
1159 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1160
1161         * config/sparc/sparc.md (TFmode splits): Handle destination
1162         registers being referenced in the address correctly.
1163
1164         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
1165         TREE_UNSIGNED, when bitsize of type's mode is larger than
1166         HOST_BITS_PER_WIDE_INT.
1167
1168 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
1169
1170         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
1171         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
1172         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
1173         macros.
1174         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
1175         EXIT_BLOCK_EXPR.
1176
1177 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
1178
1179         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
1180         * h8300.h (TINY_DATA_NAME_P): Likewise.
1181         (STRIP_NAME_ENCODING): Handle '&'.
1182
1183         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
1184         register (it could be accessed via an outer SUBREG).
1185         (REG_OK_FOR_BASE_P): Likewwise.
1186         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
1187
1188         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
1189         bogus rtl.
1190
1191         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
1192
1193 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1194
1195         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
1196         must be offsettable so the splits can be made.
1197
1198 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
1199
1200         * config/i386/winnt.c: Include system.h, not stdio.h to get
1201         sys/param.h pulled in before rtl.h in case the system defines MIN
1202         and MAX.
1203
1204 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1205
1206         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
1207
1208 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
1209
1210         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
1211         arrays of bits.
1212         * cpplib.c (cpp_define): Handle macros with parameters.
1213
1214 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1215
1216         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
1217         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
1218         and DImode 64-bit.  Use llong for minimal-toc SFmode and
1219         SYMBOL_REF / LABEL_REF 64-bit.
1220         (output_function_profiler): Use llong for profiler label and ld to
1221         load 64-bit label address.
1222
1223 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
1224
1225         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
1226         OFFSET addressing.
1227
1228 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
1229
1230         * version.c: Bump for snapshot.
1231
1232 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
1233
1234         * version.c: Bump for snapshot.
1235
1236 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
1237
1238         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
1239
1240 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
1241
1242         * tm.texi (Misc): Fix typo "teh".
1243
1244         * tm.texi (PIC): Fix typo "PPIC".
1245
1246         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
1247         effect when -O2 and higher.
1248         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
1249
1250 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
1251
1252         * regclass.c: Changed register set documentation to be consistent
1253         with GCC behaviour.
1254
1255         * final.c (final_start_function) Removed redundant test for
1256         call_fixed_regs.
1257
1258 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
1259
1260         * rtl.h (rtx_function): New type.
1261         (for_each_rtx): New function.
1262         * rtlanal.c (for_each_rtx): Define it.
1263         
1264         * recog.c (change_t): New type.
1265         (change_objects, change_old_codes, change_locs, change_olds):
1266         Replace with ...
1267         (changes): New variable.
1268         (validate_change): Dynamically allocate room for more changes, if
1269         necessary.  Uses changes array instead of change_objects, etc.
1270         (apply_change_group):  Use changes array instead of
1271         change_objects, etc.
1272         
1273         * loop.c (loop_mem_info): New type.
1274         (loop_mems): New variable.
1275         (loop_mems_idx): Likewise.
1276         (looop_mems_allocated): Likewise.
1277         (scan_loop): Remove nregs parameter.
1278         (next_insn_in_loop): New function.
1279         (load_mems_and_recount_loop_regs_set): Likewise.
1280         (load_mems): Likewise.
1281         (insert_loop_mem): Likewise.
1282         (replace_loop_mem): Likewise.
1283         (replace_label): Likewise.
1284         (INSN_IN_RANGE_P): New macro.
1285         (loop_optimize): Don't pass max_reg_num() to scan_loop.
1286         (scan_loop): Remove nregs parameter, compute it after any new
1287         registers are created by load_mems.  Use INSN_IN_RANGE_P and
1288         next_insn_in_loop rather than expanding them inline.  Call
1289         load_mems to load memory into pseudos, if appropriate.
1290         (prescan_loop): Figure out whether or not there are jumps from the
1291         loop to targets other than the label immediately following the
1292         loop.  Call insert_loop_mem to notice all the MEMs used in the
1293         loop, if it could be safe to pull MEMs into REGs for the duration
1294         of the loop.
1295         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
1296
1297 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
1298
1299         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
1300
1301 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1302
1303         * config/sparc/sparc.c (finalize_pic): Check for the correct
1304         nonlocal_goto_receiver UNSPEC number.
1305         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
1306         making note of this dependency existing in sparc.c
1307         (negtf2_notv9 split): Give NEG SFmode.
1308         (negsf2): Fix insn output string.
1309         
1310 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
1311
1312         * c-common.c (decl_attributes): Issue an error if the argument
1313         to alias is not a string.
1314
1315 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
1316
1317         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
1318         pending memory flush list.
1319
1320         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
1321         notes.
1322         (try_combine): Allow combining insns with REG_LIBCALL notes.
1323
1324         * expr.c (emit_block_move): Do not call memcpy as a libcall
1325         instead build up a CALL_EXPR and call it like any other
1326         function.
1327         (clear_storage): Similarly for memset.
1328
1329         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
1330         on notes.
1331
1332         * Makefile.in (cplus-dem.o): Provide explicit rules for building
1333         cplus-dem.o
1334
1335         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
1336         and REG_LIVE_LENGTH as successful substitutions are made.
1337
1338 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1339
1340         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
1341         statement after end of loop label.
1342
1343 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1344
1345         * config/sparc/sparc.c (ultra_types_avail): New variable.
1346         (ultra_build_types_avail): New function to record mask of insn
1347         types in ready list at this cycle.
1348         (ultrasparc_sched_reorder): Call it.
1349         (ultra_find_type): Use it to quicken the search.  Also simplif
1350         dependency check, don't use rtx_equal_p because we know exactly
1351         what we are looking for.
1352
1353 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
1354
1355         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
1356         for architecture v4.
1357
1358 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1359
1360         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
1361         gen_compare_reg.
1362         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
1363         movdf_const_intreg and helper splits): New patterns to move float
1364         constants into integer registers.
1365         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
1366         splits.
1367
1368 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
1369
1370         * From Graham
1371         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
1372         to itype.
1373         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
1374
1375         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
1376         a BASE_REGS register is needed as an intermediate when copying
1377         a symbolic value into any register class other than BASE_REGS.
1378
1379         * expr.c (move_by_pieces): No longer static.  Remove prototype.
1380         * rtl.h (move_by_pieces): Add extern prototype.
1381         * mips.c (expand_block_move): Handle aligned straight line copy by
1382         calling move_by_pieces.
1383
1384         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
1385         and VAR_DECLs.
1386
1387 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
1388
1389         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
1390         jumps out of the loop to be treated as part of the exit test.
1391
1392 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1393                           Jeff Law <law@cygnus.com>
1394
1395         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
1396         * cplus-dem.c: Delete.
1397
1398         * Makefile.in (fold-const.o): depend on $(RTL_H).
1399
1400         * fold-const.c: Include rtl.h to get the prototype for
1401         `set_identifier_local_value'.
1402
1403         * loop.c (express_from_1): Remove unused variable `tmp'.
1404         (combine_givs): cast the first argument of bzero to char *.
1405
1406         * toplev.c (display_help): Remove unused variable `looking_for_start'.
1407
1408         * c-decl.c (init_decl_processing): Remove unneeded &.
1409
1410         * alpha.h (alpha_initialize_trampoline): Provide prototype.
1411         
1412         * except.c (set_exception_lang_code, set_exception_version_code):
1413         Change parameter from `short' to `int' to avoid using a gcc
1414         extension.
1415
1416         * except.h (set_exception_lang_code, set_exception_version_code):
1417         Likewise for prototypes.
1418
1419         * flow.c (count_reg_references): Remove unused variables `regno'
1420         and `i'.
1421
1422         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
1423
1424         * prefix.c (translate_name): Cast the result of `alloca'.
1425
1426         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
1427
1428 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1429
1430         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
1431         Include "toplev.h".
1432         (valid_dbcc_comparison_p): Mark mode argument as unused.
1433         (symbolic_operand): Likewise.
1434         (legitimize_pic_address): Likewise.
1435         (const_uint32_operand): Likewise.
1436         (const_sint32_operand): Likewise.
1437         * sched.c [!INSN_SCHEDULING]: Define only dummy function
1438         schedule_insns and comment out rest of file.
1439
1440         * m68k.c (output_move_simode_const): Use subl to move a zero into an
1441         address register.
1442         (output_move_[hq]imode): Likewise.
1443
1444 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
1445
1446         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
1447         * invoke.texi: Corresponding changes.
1448
1449 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
1450
1451         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
1452
1453 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1454
1455         * config/sparc/sparc.c (ultra_code_from_mask,
1456         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
1457         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
1458         ultrasparc_sched_init, ultrasparc_variable_issue,
1459         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
1460         functions to describe UltraSPARC pipeline exactly to Haifa.
1461         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
1462         as there is nothing the scheduler can do about it.  Indicate that
1463         REG_DEP_OUTPUT's collide.  Fixup formatting.
1464         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
1465         divide costs on Ultra for DImode.
1466         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
1467         Define.
1468         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
1469         ieuN and add call_no_delay_slot to type list.
1470         (cti function unit): New unit for branches on UltraSPARC.
1471         (subx/addx insns): Set type to misc.
1472         (sidi zero/sign extension insns on arch64): Set type to shift.
1473         (sign_extendhidi2_insn): Set type to sload.
1474
1475 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>
1476
1477         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
1478         (output_epilog): Use if != 0 for offset.
1479         (rs6000_fatal_bad_address): Prepare for Intl.
1480         * rs6000.h (rs6000_fatal_bad_address): Declare.
1481         * rs6000.md (movsfcc, movdfcc): Use else if.
1482         (elf_high): Use {liu|lis}.
1483         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
1484         (movsi): Use rs6000_fatal_bad_address.
1485         
1486 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
1487
1488         * reload.c (find_equiv_reg): Reject equivalences separated
1489         by a volatile instruction.
1490
1491 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 
1492
1493         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
1494
1495 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
1496
1497         * alpha.md (movsicc): Fix mode mismatch.
1498
1499 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
1500
1501         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
1502         return type.
1503         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
1504
1505 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1506
1507         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
1508         write-only modifier from operand 1 constraint.
1509
1510 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1511
1512         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
1513         emitting a XOR of -1 at the end, emit a NOT instead for combine's
1514         sake.
1515         (sparc_emit_set_const64): Likewise, also when computing trailing
1516         bits do not negate low_bits and make fast_int an int.
1517
1518 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
1519
1520         * loop.c (add_label_notes): Do not ignore references to labels
1521         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
1522         * gcse.c (add_label_notes): Similarly.
1523
1524         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
1525
1526         * m68k.md (adddi_dilshr32): One of the operands must be a register.
1527         (adddi_dishl32): Similarly.
1528
1529 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
1530
1531         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
1532         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
1533         * cse.c (cse_basic_block): Add parens to shut up warnings.
1534
1535 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1536
1537         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
1538         sparc_emit_set_const64_longway, const64_is_2insns,
1539         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
1540         in 64-bit constant formation.
1541         * config/sparc/sparc.md (snesi_zero_extend split): Generate
1542         rtl for addx not subx.
1543         (define_insn movdi_const64_special): Make available even when
1544         HOST_BITS_PER_WIDE_INT is not 64.
1545         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
1546         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
1547         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
1548         instances of operand 1 inside a QI subreg.
1549         (xordi3_sp64_dbl): Remove '%' constraint for op1.
1550         (one_cmpldi2_sp64): Fix output string.
1551         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
1552         alternative case.
1553         (unnamed arch64 ashift DI): Truncate shift count if greater than
1554         63, not 31.
1555
1556 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1557
1558         * expr.c (store_expr): Don't optimize away load-store pair
1559         when either source or destination have a side effect.
1560
1561 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
1562
1563         * genrecog.c (add_to_sequence): Fatal error if the modes of the
1564         operands of SET are incompatible.
1565
1566         * alpha.md: Fix max and min patterns so modes of SET operands match.
1567
1568 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
1569
1570         * configure.in: Avoid [[ by using test and changequote.
1571         * configure: Rebuild.
1572
1573 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1574
1575         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
1576
1577         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
1578         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
1579         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
1580         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
1581         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
1582         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
1583         Fix mismatching modes in SET operands.
1584         (conditional move patterns): Fix formatting.
1585         (unnamed subx arch64 pattern): Remove duplicate insn.
1586         
1587 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1588
1589         * config/sparc/sparc.c (const64_operand, const64_high_operand):
1590         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
1591         (input_operand): Fixup test for what we accept for constant
1592         integers.
1593         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
1594         set VOIDmode.
1595         (safe_constDI): Remove.
1596         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1597         gen_safe_XOR64): New functions.
1598         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
1599         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
1600         them.
1601         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
1602         available when HOST_BITS_PER_WIDE_INT is not 64.
1603         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
1604         move before movdi_insn_sp64 pattern.
1605         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
1606         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
1607         symbolic_operand as predicate for second operand.
1608         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
1609         expander): Give set VOIDmode.
1610         
1611 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
1612
1613         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
1614
1615 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
1616
1617         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
1618
1619 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
1620
1621         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
1622         point.
1623         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
1624
1625 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
1626
1627         * install.texi: Various SCO OpenServer tweaks.
1628
1629 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
1630
1631         * reload1.c (eliminate_regs_in_insn): Handle another case when
1632         eliminating the frame pointer to the hard frame pointer.  Add
1633         missing ep->to_rtx check to one existing case.
1634
1635         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
1636
1637 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
1638
1639         * tree.h: De-conditionalize init_priority code.
1640
1641         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
1642         * collect2.c (NM_FLAGS): Change from -p to -n.
1643
1644         * configure.in: Turn on collect2 for mipstx39-elf.
1645         Handle use_collect2=no properly.
1646
1647         * c-common.c: De-conditionalize init_priority code.
1648         * collect2.c (extract_init_priority, sort_ids): New fns.
1649         (main): Call sort_ids.
1650         Move sequence_number to file scope.
1651
1652         * configure.in: Handle --enable-init-priority.
1653         * c-common.c (attrs): Add A_INIT_PRIORITY.
1654         (init_attributes, decl_attributes): Likewise.
1655         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
1656         * tree.c (get_file_function_name_long): Split out...
1657         (get_file_function_name): ...from here.
1658
1659 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
1660
1661         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
1662         accessing nodes.
1663
1664 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
1665
1666         * toplev.c (display_help): Add braces to shut up warnings.
1667         * tree.c (simple_cst_equal): Likewise.
1668
1669         * fold-const.c (non_lvalue): Don't deal with null pointer 
1670         constants here.
1671         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
1672
1673         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
1674         of any size to a pointer.
1675
1676 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
1677
1678         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
1679
1680 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
1681
1682         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
1683         which will be saved.
1684         * mn10300.md (prologue insn): Only save registers which need saving.
1685         (epilogue insn): Similarly.
1686
1687         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
1688         optimizations.
1689
1690 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
1691
1692         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
1693         VAR_DECL's in gp addressable sections.
1694
1695 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
1696
1697         * sparc.c: Change return <exp> to <exp>; return; in functions
1698         returning void.
1699         * sparc.md: Add empty semicolon statement after final label in
1700         move expanders.
1701
1702 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1703
1704         * config/sparc/sparc.md (define_insn addx_extend): Rename to
1705         addx_extend_sp64, only allow when TARGET_ARCH64.
1706         (define_insn addx_extend_sp32 and split): Version that works when
1707         not TARGET_ARCH64.
1708         (define_insn subx_extend): Likewise.
1709         (define_split adddi3 and subdi3 with zero extension): Fixup and
1710         correct bugs when not TARGET_ARCH64.
1711
1712 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
1713
1714         * except.c (set_exception_lang_code, set_exception_version_code):
1715         Use prototype-style definition if __STDC__, to match declaration
1716         in except.h.
1717
1718         * genemit.c: Change FAIL and DONE macros not to use loops.
1719
1720 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
1721
1722         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
1723         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
1724
1725         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
1726
1727 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
1728
1729         * README.g77: Update from Craig.
1730
1731 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1732
1733         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
1734         type HOST_WIDE_INT.
1735         (safe_constDI sparc_emit_set_const64_quick1,
1736         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
1737         analyze_64bit_constant, const64_is_2insns,
1738         create_simple_focus_bits): Fix some bugs when compiled on real
1739         64-bit hosts.
1740         (function_arg_record_value_3, function_arg_record_value_2,
1741         function_arg_record_value): Add fully prototyped forward decls.
1742         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
1743         to cmpsi_insn and use on both 64 and 32 bit targets.
1744         (define_insn cmpsi_insn_sp64): Remove.
1745         (define_expand zero_extendsidi2): Allow for 32-bit target too.
1746         (define_insn zero_extendsidi2_insn): Rename to
1747         zero_extendsidi2_insn_sp64.
1748         (define_insn zero_extendsidi2_insn_sp32): New pattern and
1749         assosciated forced split for it.
1750
1751         * config/sparc/sparc.c (const64_operand, const64_high_operand):
1752         New predicates.
1753         * config/sparc/sparc.h: Declare them.
1754         (PREDICATE_CODES): Add them.
1755         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
1756         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
1757
1758 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
1759
1760         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
1761         in v9 case as the latter makes the Solaris assembler crash.
1762
1763 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1764
1765         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
1766         for TFmode when !v9.  We require offsettable memory addresses.
1767         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
1768         DFmode register number conversions.
1769         * config/sparc/sparc.md (define_split DFmode moves): If register
1770         is a SUBREG do alter_subreg on it before using.
1771         (define_expand movtf): Fixup comment about alignment on v9.
1772         (define_split TFmode moves): Don't use gen_{high,low}part, create
1773         explicit SUBREGs instead.
1774
1775 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
1776
1777         * Makefile.in (mbchar.o): Depend on mbchar.c.
1778
1779 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
1780                           Richard Henderson  <rth@cygnus.com>
1781         
1782         Rewrite Sparc backend for better code generation and
1783         improved sparc64 support.
1784         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
1785         zero.
1786         * config/sparc/sysv4.h: Likewise.
1787         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
1788         move_operand, v8plus_regcmp_op, emit_move_sequence,
1789         singlemove_string, doublemove_string, mem_aligned_8,
1790         output_move_double, output_move_quad, output_fp_move_double,
1791         move_quad_direction, output_fp_move_quad, output_scc_insn):
1792         Remove.
1793         (small_int_or_double): New predicate.
1794         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
1795         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
1796         old pic_{sethi,lo_sum}_si patterns.
1797         (mem_min_alignment): New generic function to replace
1798         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
1799         available and can test for arbitrary alignments.  All callers
1800         changed.
1801         (save_regs, restore_regs, build_big_number,
1802         output_function_prologue, output_cbranch, output_return,
1803         sparc_flat_save_restore, sparc_flat_output_function_prologue,
1804         sparc_flat_output_function_epilogue): Prettify
1805         insn output.
1806         (output_function_epilogue): Likewise and add code to output
1807         deferred case vectors.
1808         (output_v9branch): Likewise, add new arg INSN and use it to tack
1809         on branch prediction settings.  All callers changed.
1810         (print_operand): Likewise and output %l44 for LO_SUMs when
1811         TARGET_CM_MEDMID.
1812         (sparc_splitdi_legitimate): New function to make sure DImode
1813         splits can be run properly when !arch64.
1814         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
1815         Reformat example code in comments.
1816         (set_extends): Remove UNSPEC/v8plus_clear_high case.
1817         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
1818         of deferred case vectors we need to output.
1819         (sparc_defer_case_vector): Record a case vector.
1820         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
1821         sparc_output_deferred_case_vectors): New functions to output them.
1822         (sparc_emit_set_const32): New function to form 32-bit constants in
1823         registers when that requires more than one instruction.
1824         (safe_constDI, sparc_emit_set_const64_quick1,
1825         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
1826         analyze_64bit_constant, const64_is_2insns,
1827         create_simple_focus_bits, sparc_emit_set_const64): New functions
1828         which do the same for 64-bit constants when arch64.
1829         (sparc_emit_set_symbolic_const64): New function to emit address
1830         loading for all code models on v9.
1831         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
1832         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
1833         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
1834         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
1835         inaccuracies in comments, add symbolic and text_segment operands
1836         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
1837         GENERAL_REGS in these cases as a temp REG is needed to load these
1838         addresses into a register properly.
1839         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
1840         is no longer used.
1841         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
1842         quads are guarenteed to have 16-byte alignment.
1843         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
1844         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
1845         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
1846         deferred case vector implementation.
1847         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
1848         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
1849         Generate "internal label - label" instead of "label - 1b".
1850         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
1851         (PREDICATE_CODES): Remove sparc_operand, move_operand,
1852         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
1853         zero_operand.
1854         (doublemove_string, output_block_move, output_fp_move_double,
1855         output_fp_move_quad, output_move_double, output_move_quad,
1856         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
1857         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
1858         (sparc_emit_set_const32, sparc_emit_set_const64,
1859         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
1860         mem_min_alignment, small_int_or_double): Add externs.
1861         * config/sparc/sparc.md: Document the many uses of UNSPEC and
1862         UNSPEC_VOLATILE in this backend.
1863         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
1864         unary to types which execute in it.
1865         (define_function_unit ieu_shift): Rename to ieu0.
1866         (define_function_unit ieu1): New, executes compare, call, and
1867         uncond_branch type insns.
1868         (define_function_units for type fdivs, fdivd, fsqrt): These
1869         execute in the fpu multiply unit not the adder on UltraSparc.
1870         (define_expand cmpdi): Disallow TARGET_V8PLUS.
1871         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
1872         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
1873         allows the arith_double_operand predicate and rHI constraint when
1874         TARGET_ARCH64.
1875         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
1876         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
1877         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
1878         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
1879         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
1880         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
1881         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
1882         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
1883         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
1884         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
1885         sign_extendqihi2_insn, sign_extendqisi2_insn,
1886         sign_extendqidi2_insn, sign_extendhidi2_insn,
1887         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
1888         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
1889         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
1890         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
1891         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
1892         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
1893         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
1894         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
1895         smulsi3_highpart_v8plus, unnamed subreg mult,
1896         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
1897         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
1898         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
1899         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
1900         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
1901         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
1902         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
1903         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
1904         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
1905         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1906         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
1907         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
1908         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
1909         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
1910         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
1911         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
1912         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
1913         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
1914         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
1915         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
1916         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
1917         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
1918         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
1919         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
1920         call_address_untyped_struct_value_sp32,
1921         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
1922         call_value_symbolic_sp32, call_value_address_sp64,
1923         call_value_symbolic_sp64, branch_sp32, branch_sp64,
1924         flush_register_windows, goto_handler_and_restore,
1925         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
1926         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
1927         return_addsi, return_di, return_adddi, return_sf, all call+jump
1928         peepholes, trap, unnamed trap insns): Prettify output strings.
1929         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
1930         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
1931         Likewise and force + implement splits for integer cases.
1932         (define_insn return_sf_no_fpu): Likewise and allow to match when
1933         no-fpu because of our subreg SFmode splits.
1934         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
1935         zero_extendqidi2_insn, zero_extendhidi2_insn,
1936         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
1937         input_operand for second operand.
1938         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
1939         reg_or_0_operand for operand 2 so new splits can use it.
1940         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
1941         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
1942         too.
1943         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
1944         CONST_DOUBLEs for operand 2.
1945         (define_insn move_label_di): Likewise and label distance
1946         optimization because it no longer works with new deferred case
1947         vector scheme.  To be revisited.
1948         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
1949         and allow reg_or_0_operand and J constraint for second operand.
1950         (define_insn jump): Set branch predict taken on V9.
1951         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
1952         new deferred case vector scheme.
1953         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
1954         (define_insn negdi2_sp32): Force + implement splits.
1955         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
1956         one_cmplsi2_not_liveg0 respectively, and create expander of original
1957         names which emit special rtl for TARGET_LIVE_G0.
1958         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
1959         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
1960         gen_compare_reg, FAIL instead.
1961         (define_insn sgtu, sleu): Likewise and check gen_s*() return
1962         values when trying to reverse condition codes, if they FAIL then
1963         do likewise.
1964         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
1965         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
1966         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
1967         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
1968         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
1969         set output string to # to indicate they are mandatory splits.
1970         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
1971         pic_sethi_di, move_pic_label_si): Remove.
1972         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
1973         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
1974         place.
1975         (define_expand movsi_pic_label_ref, define_insn
1976         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
1977         expander and insns to handle PIC label references and deferred
1978         case vectors.
1979         (define_insn get_pc_via_rdpc): Comment out as it is no longer
1980         used.
1981         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
1982         Rewrite to not use emit_move_sequence, make use of new constant
1983         formation code, and new splits for all multi-insn cases.
1984         (define_insn movqi_insn): Remove sethi case, it can never happen.
1985         Use reg_or_zero_operand instead of const0_rtx explicit test,
1986         use input_operand instead of move_operand for source, and use
1987         general_operand now for dest.
1988         (define_insn movhi_insn): Similar but leave sethi case.
1989         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
1990         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
1991         movhi_lo_sum respectively, prettify output string.
1992         (define_insn movsi_zero_liveg0): New pattern to put zero into a
1993         register when needed on TARGET_LIVE_G0.
1994         (define_insn movsi_insn): Use general_operand and input_operand
1995         for dest and src respectively.  Simplify applicability test.
1996         Prettify output strings, and add clr alternative for J
1997         constraint.
1998         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
1999         deprecated std and reg-reg DI moves): Remove and...
2000         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
2001         implementation which uses forced splits for all non-single insn
2002         cases.
2003         (define_split DI move cases on !arch64): New splits to handle all
2004         situations of 64-bit double register DImode on 32bit, and
2005         unaligned registers and memory addresses for all subtargets.
2006         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
2007         Remove.
2008         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
2009         input_operand for dest and src respectively, prettify output
2010         strings.
2011         (define_insn movdf_insn, movdf_no_e_insn, store_df,
2012         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
2013         and...
2014         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
2015         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
2016         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
2017         movtf_no_e_insn_sp64) Replace with new
2018         implementation which uses forced splits for all non-single insn
2019         cases.
2020         (define_split DF move cases): New splits in similar vein to DI
2021         move counterparts.
2022         (define_insn sethi_di_medlow, sethi_di_medium_pic,
2023         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
2024         movdi_sp64_insn): Remove old v9 code model and constant loading
2025         support insns and..
2026         (define_insn pic_lo_sum_di, pic_sethi_di,
2027         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
2028         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
2029         embmedany_sethi, embmedany_losum, embmedany_brsum,
2030         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
2031         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
2032         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
2033         scheme, using unspecs, secondary reloads, and one to one sparc
2034         insn to rtl insn mapping for better scheduling and code gen.
2035         (define_expand reload_indi, reload_outdi): Reload helpers for
2036         MEDANY and EMBMEDANY symbol address loading cases which require a
2037         temporary register.
2038         (define_expand movsicc): Remove v8plus_regcmp cases.
2039         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
2040         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
2041         cmp_diqi_trunc_set): New patterns used by some of the new scc
2042         splits on arch64.
2043         (define_insn xordi3_sp64_dbl): New pattern used for constant
2044         formation when crossing from 32-bit targets.
2045         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
2046         split): Remove.
2047         (define_insn addx, subx): Make visible and prettify.
2048         (define_insn adddi3_insn_sp32): Likewise and force split.
2049         (define_insn addx_extend, subx_extend, unnamed): New patterns for
2050         64bit scc split usage.
2051         (define_insn unnamed plusDI zero_extend, unnamed minusDI
2052         zero_extend, subdi3): Force and implement splits.
2053         
2054         * final.c (final_scan_insn): Don't output labels if target
2055         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
2056         instead.
2057         
2058         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
2059         don't forget to walk inside SEQUENCESs too as these are what the
2060         delay slot scheduler will create.
2061         
2062 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
2063
2064         * alpha.md (extxl+1,+2): New patterns to work around
2065         combine lossage.
2066
2067 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
2068
2069         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
2070         caused bad assembly code to be generated.
2071
2072 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
2073
2074         * netbsd.h: Fix typo.
2075
2076 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
2077
2078         * config.sub: Fix typo.
2079
2080 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
2081
2082         * invoke.texi (Environment Variables): Typo: Change "ascpects"
2083         into "aspects".
2084         (Running Protoize): Typo: Change "ther" into "other".
2085
2086 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
2087
2088         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
2089         * m68k/netbsd.h: Likewise.
2090         * ns32k/netbsd.h: Likewise.
2091         * sparc/netbsd.h: Likewise.
2092
2093 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
2094
2095         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
2096         * ginclude/va-clipper.h (va_list): Likewise.
2097
2098 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
2099
2100         * rs6000.c (rs6000_override_options): If big endian and -Os, use
2101         load/store multiple instructions unless user overrides.
2102
2103 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
2104
2105         * ns32k/netbsd.h: Fix typo.
2106
2107 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
2108
2109         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
2110         labels with .debugsym if no parallel insns.
2111
2112 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
2113
2114         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
2115         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
2116
2117 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2118
2119         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
2120         (AR_FOR_TARGET): Define.
2121
2122 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
2123
2124         * dyn-string.h: New file.
2125         * dyn-string.c: Likewise.
2126         * Makefile.in (OBJS): Add dyn-string.o.
2127         (dwarf2out.o): Add dyn-string.h dependency.
2128         (dyn-string.o): List dependencies.
2129         * dwarf2out.c: Include dyn-string.h.
2130         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
2131         (addr_const_to_string): Take a dyn_string_t, not a char* as a
2132         prototype.  Use dyn_string_append rather than strcat, throughout.
2133         (addr_to_string): Use dyn_string_t.
2134
2135 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
2136
2137         Function entry/exit profiling instrumentation:
2138         * expr.h (profile_function_entry_libfunc,
2139         profile_function_exit_libfunc): Declare new variables.
2140         * optabs.c: Define them here.
2141         (init_optabs): Initialize them.
2142         * tree.h (struct tree_decl): New flag
2143         no_instrument_function_entry_exit.
2144         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
2145         * c-decl.c (duplicate_decls): Merge it.
2146         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
2147         (init_attributes): Use it for "no_instrument_function".
2148         (decl_attributes): Handle it, for functions that have not yet been
2149         compiled.  Set decl flag.
2150         * flags.h (flag_instrument_function_entry_exit): Declare new
2151         variable.
2152         * toplev.c (flag_instrument_function_entry_exit): Define it here.
2153         (f_options): New option "instrument-functions".
2154         * function.h (struct function): New field instrument_entry_exit.
2155         * function.c (current_function_instrument_entry_exit): New
2156         variable.
2157         (push_function_context_to, pop_function_context_from): Save and
2158         restore.
2159         (expand_function_start): Set current_ variable, maybe emit return
2160         label and entry profile call.
2161         (expand_function_end): Maybe emit exit profile call.
2162
2163 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
2164
2165         * i386.md (movqi): When optimizing a load of (const_int 1) into a
2166         NON_QI_REG_P, pretend the register is SImode.
2167
2168 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
2169
2170         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
2171         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
2172         manufacturer id for ns32k.
2173         * configure: Regenerated.
2174         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
2175         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
2176         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
2177         * config/m68k/netbsd.h: Same.
2178         * config/ns32k/netbsd.h: Same.
2179         * config/sparc/netbsd.h: Same.
2180
2181 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
2182
2183         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
2184         or UNROLL_COMPLETELY loop that starts with a jump to its
2185         exit code.
2186
2187 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2188
2189         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
2190         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
2191         (print_operand, case 'B'): Don't fall through.
2192         (print_operand, case 'S'): Correct mask begin/end computation.
2193         Use HOST_BITS_PER_WIDE_INT.
2194         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
2195         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
2196         * rs6000/aix41.h (CPP_PREDEFINES): Same.
2197         * rs6000/aix43.h (CPP_PREDEFINES): Same.
2198
2199 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
2200
2201         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
2202         constraint from second alternative.
2203
2204 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
2205
2206         * configure.in: Fix --without/--disable cases for local-prefix, 
2207         gxx-include-dir and checking.
2208
2209 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2210
2211         * configure.in (enable_haifa): Set by default for sparc64 too.
2212         configure: Rebuilt.
2213
2214 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
2215
2216         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
2217         * i386/winnt.c (associated_type): New fn.
2218         (i386_pe_valid_type_attribute_p): New fn.
2219         (i386_pe_check_vtable_importexport): Remove.
2220         (i386_pe_dllexport_p): Use associated_type.
2221         (i386_pe_dllimport_p): Likewise.
2222
2223         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
2224         * i386.c (i386_valid_type_attribute_p): Also accept
2225         attributes for METHOD_TYPEs.
2226
2227 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
2228
2229         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
2230
2231 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
2232
2233         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
2234
2235         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
2236         them from generating a new base name for each occurence of
2237         a specific suffix.
2238
2239 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
2240
2241         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
2242         SUBREG, MEM.
2243         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
2244
2245
2246
2247         * cplus-dem.c (type_kind_t): New type.
2248         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
2249         on this paramter, rather than demangling the type again.
2250         (demangle_integral_value): Pass tk_integral.
2251         (demangle_template_: Pass the value returned from do_type.
2252         (do_type): Return a type_kind_t.  Pass tk_integral to
2253         demangle_template_value_parm for array bounds.
2254         (demangle_fund_type): Likewise.
2255         
2256 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
2257
2258         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
2259         identical.
2260
2261 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
2262
2263         * pa.c (move_operand): Accept CONSTANT_P_RTX.
2264
2265 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
2266
2267         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
2268
2269         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
2270         index conversion.
2271
2272 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
2273
2274         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
2275         (DEBUGGER_ARG_OFFSET): Likewise.
2276
2277         * mn10300.md (movsf): Remove last change.  Not needed.
2278
2279 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
2280
2281         * c-lex.c (yylex): Fix boundary conditions in character literal and
2282         string literal loops.
2283
2284 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
2285
2286         * longlong.h (count_leading_zeros): Sparclite scan instruction was
2287         being invoked incorrectly.
2288
2289         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
2290         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
2291         Add -pg support. 
2292         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
2293         * configure.in: Added i[34567]86-*-win32
2294         * config.sub: Ditto.
2295         * configure: Rebuilt.
2296         
2297 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
2298
2299         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
2300         the frame pointer and compiling PIC code and reload has not completed.
2301
2302         * i386.c (output_to_reg): Add code to emulate non-popping DImode
2303         case.
2304
2305 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
2306
2307         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
2308
2309 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2310
2311         * Makefile.in (install-info): Only try to update the info
2312         directory file if it exists in the first place.
2313
2314 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
2315
2316         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
2317
2318 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
2319
2320         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
2321         CONST_DOUBLE source.
2322
2323 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
2324
2325         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
2326         strings as the insertion of USER_LABEL_PREFIX.
2327         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
2328         valid code.
2329         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
2330         calls. 
2331
2332 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
2333
2334         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
2335         already defined type.
2336
2337 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
2338
2339         * expr.c (check_max_integer_computation_mode): Allow conversions
2340         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
2341         (expand_expr): Likewise.
2342
2343 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
2344
2345         * expr.c (expand_expr): Expand RETURN_EXPR.
2346
2347 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
2348
2349         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
2350
2351 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
2352
2353         * dwarf2out.c (output_aranges):  Call stripattributes
2354         for TEXT_SECTION references.
2355         (output_line_info): Likewise.
2356
2357 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2358
2359         * profile.c (branch_prob): Call allocate_reg_info after outputting
2360         profile rtl in instrument_arcs.
2361
2362 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
2363
2364         * fixinc.irix (math.h): Install wrapper instead of copying.
2365
2366 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
2367
2368         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
2369         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
2370         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
2371         lang_flag_0. Added documentation in the flag table.
2372
2373 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
2374
2375         * cccp.c (do_include): Fix vax c style include handling.
2376
2377 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
2378
2379         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
2380
2381 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
2382
2383         * fold-const.c (non_lvalue): Don't deal with null pointer 
2384         constants here.
2385         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
2386
2387 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2388
2389         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
2390         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
2391         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
2392         (u_short_cint_operand): Same.
2393         (reg_or_cint_operand): Same.
2394         (logical_operand): Same.
2395         (input_operand): Same.
2396         (reg_or_short_operand): Use u_short_cint_operand.
2397
2398 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
2399
2400         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
2401         but keep the insns and splits.  Adjust so when the ultimate destination
2402         is memory, use cvtql.
2403
2404 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
2405
2406         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
2407
2408 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
2409
2410         * gcc.c (do_spec): Call "error" not "warning".
2411
2412         * configure.in: Fix minor problems with gas feature detection code.
2413         * configure: Rebuilt.
2414
2415         * gcc.c (do_spec): Issue a warning for '%[]' usage.
2416
2417         * Undo this change.
2418         * gcc.c: Delete %[spec] support.
2419         (do_spec_1, case '('): Likewise.
2420         (do_spec_1, case '['): Call error.
2421
2422 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
2423
2424         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
2425         (CPP_SUBTARGET_SPEC): Default to empty string.
2426         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
2427         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
2428         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
2429         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
2430         (LIB_SPEC): Tidy.
2431         * alpha/linux.h (CPP_PREDEFINES): Tidy.
2432         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
2433         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
2434         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
2435         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
2436         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
2437         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
2438         * alpha/vxworks.h: Likewise.
2439
2440 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
2441
2442         * mips.md (reload_outsi): Added missing REGNO call.
2443         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
2444         function pointer.
2445         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
2446         another match_operator and compare the codes.
2447
2448         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
2449
2450         * MIPS multiply pattern fixes:
2451         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
2452         Add union classes for HI, LO, or HILO plus general registers.
2453         (GENERATE_MADD): Deleted.
2454         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
2455         Add TARGET_MAD to condition.
2456         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
2457         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
2458         "*d" for accumulator, to give preference to LO initially but not
2459         during reload.
2460
2461 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
2462
2463         * configure.in (enable_c_mbchar): New configure option.
2464         (extra_cpp_objs): Always available now.
2465
2466         * cexp.y (mbchar.h): #include it.
2467         (yylex): Handle Multibyte characters in character literals.
2468
2469         * cccp.c (mbchar.h): #include it.
2470         (main): Set character set based on LANG environment variable.
2471         (rescan): Handle multibyte characters in comments.
2472         (skip_if_group): See above.
2473         (validate_else): See above.
2474         (skip_to_end_of_comment): See above.
2475         (macarg1): See above.
2476         (discard_comments): See above.
2477         (rescan): Handle multibyte characters in string and character literals.
2478         (collect_expansion): See above.
2479         (skip_quoted_string): See above.
2480         (macroexpand): See above.
2481         (macarg1): See above.
2482         (discard_comments): See above.
2483         (change_newlines): See above.
2484
2485         * c-lex.c (mbchar.h): #include it.
2486         (GET_ENVIRONMENT): New macro.
2487         (init_lex): Set character set based on LANG environment variable.
2488         (yylex): Handle multibyte characters in character literals.
2489         (yylex): Handle multibyte characters in string literals.
2490
2491         * Makefile.in (mbchar.o): New target.
2492         (cccp$(exeext)): @extra_cpp_objs@ is always available.
2493         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
2494
2495         * mbchar.[ch]: New files for multibyte character handling.
2496
2497 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2498
2499         * jump.c (jump_optimize): When simplifying noop moves and
2500         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
2501         the PUSHes to rewrite in second loop as we did in the first.
2502
2503 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2504
2505         * cplus-dem.c (demangle_nested_args): Make function definition
2506         static to match the prototype.
2507
2508 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
2509
2510         * alloca.c: Respect USE_C_ALLOCA.
2511         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
2512         * gengenrtl.c (xmalloc): Likewise.
2513
2514 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
2515
2516         * loop.h (struct induction): Add no_const_addval.
2517         * loop.c (the_movables, reg_address_cost): New variables.
2518         (init_loop): Init reg_address_cost.
2519         (loop_optimize): Call end_alias_analysis.
2520         (scan_loop): Init the_movables.
2521         (record_giv): Init induction->no_const_addval.
2522         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
2523         [REG]: Rearrange loop search test to catch more cases.
2524         (general_induction_var): Return success not benefit; take an extra
2525         argument for that.  Change all callers.
2526         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
2527         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
2528         [default]: Search the_movables for additional combinations.
2529         (sge_plus_constant, sge_plus): New functions.
2530         (express_from_1): New function.
2531         (express_from): Always define.  Rewrite using express_from_1.
2532         (combine_givs_p): Handle more cases.  Ignore address cost.
2533         (cmp_combine_givs_stats): New function.
2534         (combine_givs_used_once, combine_givs_benefit_from): New functions.
2535         (combine_givs): Rewrite to do best-fit combination.
2536
2537         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
2538         (fold): Do a complete (A*C)+(B*C) association check.
2539
2540 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
2541
2542         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
2543
2544 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
2545
2546         * mn10300.c (MODES_TIEABLE_P): Fix typo.
2547
2548 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
2549
2550         * tree.c (valid_machine_attribute): Only create a new type variant if
2551         there is a decl to use it.
2552
2553 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
2554
2555         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
2556         a suffix.
2557
2558 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
2559
2560         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
2561         be deleted" 
2562
2563 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
2564
2565         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
2566         Simplify tests for clearing an address register.
2567         (expand_prologue): Corresponding changes.
2568
2569         * mn10300.md (movXX patterns): Make sure the destination is an
2570         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
2571         (logical patterns): Split into expanders + patterns
2572         (zero and sign extension patterns): Similarly.
2573         (shift patterns): Similarly.
2574
2575 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
2576
2577         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
2578         for the sequence, recording base values.
2579
2580 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
2581
2582         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
2583
2584 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
2585
2586         * gcc.c: Remove ANSI-C ism from --help code.
2587
2588         * toplev.c: Support --help with USE_CPPLIB.
2589
2590 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
2591
2592         * configure.in: Rework gas feature code to work with symlink based
2593         source trees.
2594
2595         * extend.texi: Clarify some issues related to local variables
2596         assigned to explicit registers.
2597
2598         * mn10300.md (mulsi): Turn into expander + pattern.
2599
2600         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
2601         alternative.
2602
2603 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
2604
2605         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
2606
2607 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
2608
2609         * version.c: Bump again to distinguish mainline tree from the
2610         egcs-1.1 branch.
2611
2612 See ChangeLog.0 for earlier changes.
2613
2614 Local Variables:
2615 add-log-time-format: current-time-string
2616 End: