OSDN Git Service

Merge from gcc-2.8
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog.11
1 Fri Dec  5 07:29:26 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2
3         * Version 2.8.0 released.
4
5 Fri Dec  5 07:24:36 1997  Richard Stallman  <rms@gnu.org>
6
7         * sparc/linux64.h (TARGET_VERSION): Write "GNU/Linux".
8         * sparc/linux.h, sparc/linux-aout.h, rs6000/linux.h: Likewise.
9         * m68k/linux.h, arm/linux.h, alpha/{linux,elf}.h: Likewise.
10         * listing: Change linux to gnu-linux.
11
12 Fri Dec  5 06:23:22 1997  Paul Eggert  <eggert@twinsun.com>
13
14         Alter C startup code so that it doesn't invoke malloc on Solaris.
15         * frame.h (struct object): Decl moved here from frame.c.
16         * frame.c (struct object): Move decl to frame.h.
17         ("frame.h"): Include after <stddef.h>, so that size_t is defined.
18         (__register_frame, __register_frame_table, __deregister_frame):
19         It's now the caller's responsibility to allocate storage for object.
20         * crtstuff.c (frame_dummy), collect2.c (write_c_file_stat):
21         Allocate initial frame object in static storage and pass its address.
22         * crtstuff.c (<stddef.h>, "frame.h"): Include.
23         * Makefile.in ($(T)crtbegin.o, $(T)crtend.o, stamp-crtS):
24         Depend on defaults.h and frame.h.
25
26         * Makefile.in (RTL_H, TREE_H): Add gansidecl.h.
27         (DEMANGLE_H): New macro.  All dependencies on demangle.h
28         changed to $(DEMANGLE_H).
29         (RECOG_H): Likewise.
30         (libgcc2.a, stmp-multilib): Add dependencies on frame.h, gansidecl.h.
31         (collect.o): Add dependency on gansidecl.h.
32         (gcc.o, choose-temp.o, pexecute.o, prefix.o): Likewise.
33         (obstack.o, choose-temp.o, pexecute.o): Add dependency on $(CONFIG_H).
34
35 Fri Dec  5 06:20:06 1997  Dean Deaver <deaver@amt.tay1.dec.com>
36
37         * arm.md (casesi_internal):  Add USE of label.
38
39 Fri Dec  5 05:59:44 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40
41         * configure.in (sys/times.h): Check for this instead of times.h.
42         * cpplib.c, toplev.c: Properly test for and include sys/times.h.
43
44 Thu Dec  4 12:30:40 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
45
46         * sh.c (final_prescan_insn): Use local label prefix when emitting
47         .uses pseudo-ops.
48
49 Thu Dec  4 07:00:48 1997  Richard Earnshaw <rearnsha@arm.com>
50
51         * arm.c (arm_finalize_pic): Use an offset of 4 when adjusting the
52         GOT address.
53
54 Thu Dec  4 06:58:32 1997  Dean Deaver  <deaver@amt.tay1.dec.com>
55
56         * genoutput.c (scan_operands): Treat format of "u" like "e".
57
58 Thu Dec  4 06:28:33 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
59
60         * msdos/top.sed, winnt/config-nt.sed: Change version to 2.8.0.
61
62         * stmt.c (pushcase_range): Clean up handling of "infinite" values.
63
64 Wed Dec  3 09:03:35 1997  Bernd Schmidt  <crux@ohara.Informatik.RWTH-Aachen.DE>
65
66         * i386.c (notice_update_cc): Remove bogus Pentium GCC code.
67
68 Wed Dec  3 08:46:32 1997  Paul Eggert  <eggert@twinsun.com>
69
70         * arm.h (CPP_ARCH_DEFAULT_SPEC): Fix misspelling: `TARGET_CPU_DEFUALT'.
71         (TARGET_SWITCHES): Fix misspelling: `no-apcs-rentrant'.
72         * pa.c (override_options): Fix misspelling: `compatable'.
73         * enquire.c (main): Fix misspelling in diagnostic: `mallocatable'.
74         * gcov.c (function_summary): Fix misspelling in diagnostic: `funcion'.
75         * objc/thr-decosf1.c (__objc_thread_id): Fix misspelling in code:
76         `pthread_getuniqe_np'.
77
78         * tahoe.c (extensible_operand): Renamed from extendable_operand.
79         All callers changed.
80         * dwarf2.h (enum dwarf_discrim_list): Renamed from dwarf_descrim_list.
81         * dwarf2out.c: Fix misspellings in forward static function
82         declarations: `add_AT_setion_offset', `add_sibling_atttributes'.
83         * dwarfout.c: Fix misspellings in forward static function
84         declarations: `langauge_attribute', `geneate_new_sfname_entry'.
85         * stmt.c, tree.h (start_cleanup_deferral):
86         Renamed from start_cleanup_deferal.
87         (end_cleanup_deferral): Renamed from end_cleanup_deferal.
88         * toplev.c (rest_of_compilation): Rename local var from
89         inlineable to inlinable.
90
91 Wed Dec  3 06:17:03 1997  Jason Merrill  <jason@yorick.cygnus.com>
92
93         * stmt.c (expand_decl_cleanup): Update thisblock after eh_region_start.
94
95 Wed Dec  3 06:06:38 1997  Jim Wilson  <wilson@cygnus.com>
96
97         * dwarf2out.c (gen_type_die, case POINTER_TYPE): See TREE_ASM_WRITTEN
98         before the recursive call.
99
100 Wed Dec  3 05:57:29 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
101
102         * configure.in (AC_HEADER_{STDC,TIME}): Add calls.
103         (AC_CHECK_HEADERS): Add fcntl.h times.h, sys/times.h,
104         sys/resource.h, and sys/param.h.
105         (getenv): Check if need declaration.
106         * cccp.c: Remove obsolete ways of including headers and use autoconf
107         symbols instead.
108         Include gansidecl.h; remove things defined there.
109         See if getenv needs to be declared.
110         * cpplib.c: Likewise.
111         * cexp.y: Use autoconf symbols to select what include files are needed.
112         * genattrtab.c, toplev.c: Likewise.
113
114 Tue Dec  2 21:44:25 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
115
116         * reload1.c (reload): Make copy of MEM before setting
117         req_equiv_mem if the address is a PLUS.
118
119 Tue Dec  2 07:03:47 1997  Pat Rankin  <rankin@eql.caltech.edu>
120
121         * vax/xm-vms.h (STDC_HEADERS, HAVE_STDLIB, HAVE_STRING): Define.
122         (mesg_implicit_function_declaration): New macro.
123
124         * make-l2.com: Compile libgcc2.c with `-fexceptions' specified.
125
126 Mon Dec  1 17:44:59 1997  Jeffrey A Law  (law@cygnus.com)
127
128         * dwarf2out.c (output_call_frame_info): Use ASM_OUTPUT_ASCII to
129         output ASCII by default; only use ASM_OUTPUT_DWARF_STRING if
130         flag_debug_asm is on.
131         (output_die, output_pubnames, output_line_info): Likewise.
132
133 Mon Dec  1 17:15:30 1997  Philip Blundell  <pb@nexus.co.uk>
134
135         * arm/linux.h (SUBTARGET_CPU_DEFAULT): Define  instead
136         of TARGET_CPU_DEFAULT.
137
138 Mon Dec  1 16:51:23 1997  J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl>
139
140         * i386/mingw32.h (MATH_LIBRARY): Set to "-lcrtdll".
141
142 Mon Dec  1 16:46:57 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
143
144         * c-aux-info.c: Add prototypes for static functions.
145         * c-lex.c, emit-rtl.c, rtl.c, xcoffout.c: Likewise.
146
147         * i386.h (TARGET_SWITCHES): Add entries for "windows" and "dll".
148
149 Mon Dec  1 16:42:20 1997  Jim Wilson  <wilson@cygnus.com>
150
151         * mips.md (fix_trunc{dfsi,sfsi,dfsi}2): Add '*' in operand 3.
152
153 Sun Nov 30 20:25:59 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
154
155         * expr.c (get_inner_reference): For ARRAY_REF, if need
156         WITH_RECORD_EXPR, make it with the ARRAY_REF as exp.
157
158         * expr.c (store_constructor): Use TARGET, not EXP, for
159         WITH_RECORD_EXPR when offset has a placeholder.
160
161 Sun Nov 30 11:19:00 1997  J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl>
162
163         * objc/Make-lang.in (libobjc.dll): Rename -dll flag to -mdll.
164
165 Sun Nov 30 08:42:29 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
166
167         * stmt.c (expand_end_bindings): Cleanups and incoming gotos are
168         not incompatible.
169
170 Sun Nov 30 05:45:06 1997  Michael P. Hayes  <michaelh@ongaonga.chch.cri.nz>
171
172         * jump.c (jump_optimize): Use find_insert_position in two more places.
173
174 Sat Nov 29 13:47:40 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
175
176         * alpha/vms.h (HAVE_STRERROR, HAVE_{LIMITS,STDDEF,TIME}_H): Define. 
177
178 Sat Nov 29 08:29:47 1997  J.J.van der Heijden <J.J.vanderHeijden@student.utwente.nl>
179
180         * configure.in: Add check for kill.
181         * gcc.c: Define kill as raise if not HAVE_KILL.
182
183 Sat Nov 29 06:18:08 1997  Michael P. Hayes  <michaelh@ongaonga.chch.cri.nz>
184
185         * jump.c (find_insert_position): New function.
186         (jump_optimize): Use it when making new copy of insn after test.
187
188 Sat Nov 29 05:54:57 1997  Douglas Rupp  <rupp@gnat.com>
189
190         * alpha/vms.h (BIGGEST_ALIGNMENT, ENCODE_SECTION_INFO): No longer
191         override.
192
193 Sat Nov 29 05:43:37 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
194
195         * getpwd.c (getpwd, [VMS]): Only add extra arg if VMS.
196
197         * alpha/xm-vms.h (HAVE_VPRINTF, HAVE_PUTENV): Define.
198
199         * cccp.c (index, rindex): Add conditional defs to strchr and strrchr.s
200         * cpplib.c: Likewise.
201         * gcov.c: Include gansidecl.h.
202
203 Fri Nov 28 21:17:51 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
204
205         * objc/objc-act.c: Include "output.h".
206
207         * objc/Make-lang.in (objc-parse.o, objc-act.o): Also depend on
208         $(srcdir)/output.h.
209
210         * objc/Object.m (+conformsTo:): Surround assignment with parentheses.
211
212         * objc/archive.c, objc/class.c, objc/encoding.c: Finish prototyping.
213         * objc/init.c, objc/objc-act.c, objc/objc-api.h: Likewise.
214         * objc/runtime.h, objc/sendmsg.c: Likewise.
215
216 Fri Nov 28 19:15:53 1997  Mark Kettenis <kettenis@phys.uva.nl>
217
218         * objc/thr-posix.c (__objc_mutex_allocate): Allocate
219         mutex type instead of assuming it fits in a void * type.
220         (__objc_mutex_deallocate): Free mutex type.
221         (__objc_mutex_lock): Pass mutex type instead of pointer to it.
222         (__objc_mutex_{try,un}lock): Likewise.
223         (__objc_condition_allocate): Allocate condition type instead
224         of assuming it fits in a void * type.
225         (__objc_condition_deallocate): Free condition type.
226         (__objc_condition_wait): Pass condition type instead of pointer to it.
227         (__objc_condition_{broadcast,signal}): Likewise.
228
229 Fri Nov 28 17:07:25 1997  David Edelsohn  <edelsohn@mhpcc.edu>
230
231         * rs6000.c (function_arg_partial_nregs): Undo 11/26 change.
232
233 Fri Nov 28 12:34:03 1997  Scott Christley  <scottc@net-community.com>
234
235         * objc/Make-lang.in (runtime-info.h): Add comment in file.
236
237         * objc/selector.c: Replace all occurences of sarray_get
238         with sarray_get_safe.
239         * objc/sendmsg.c: Likewise.
240
241         * protoize.c (include_defaults): Add component element as in cccp.c.
242         * nextstep.h (INCLUDE_DEFAULTS): Add component element.
243         (ASM_COMMENT_START): Correct assembly comment string.
244         * objc/Make-lang.in (objc/{NXConstStr,Object,Protocol,linking):
245         Compile with GNU runtime.
246
247 Fri Nov 28 12:27:50 1997  Ovidiu Predescu <ovidiu@net-community.com>
248
249         Generate platform information required by ObjC runtime.
250         * toplev.c (lang_options): New ObjC specific compiler flag.
251         * objc/Make-lang.in: Add target to generate runtime-info.h file.
252         * objc/objc-act.c (print_struct_values): New variable.
253         (generate_struct_by_value_array): New function.
254         (lang_init): Call generate_struct_by_value_array if requested.
255         (lang_decode_option): Check for new compiler flag.s
256         * objc/sendmsg.c (__objc_get_forward_imp): Check size of type
257         for determining proper forwarding function.
258
259 Fri Nov 28 05:58:30 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
260
261         * regclass.c (record_address_regs): Use REG_OK_FOR_{INDEX,BASE},
262         not the REGNO versions.
263
264 Thu Nov 27 16:28:04 1997  Scott Snyder  <snyder@d0sgif.fnal.gov>
265
266         * dwarf2out.c (outout_call_frame_info): Ensure info has proper
267         alignment.
268
269         * libgcc2.c (__throw): Initialize HANDLER.
270
271 Thu Nov 27 16:23:25 1997  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
272
273         * tree.h, rtl.h: See if need declarations for free.
274         * tree.c, bc-optab.c: Get the declaration of free from stdlib.h.
275
276 Thu Nov 27 07:21:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
277
278         * except.h: Add outer_context_label_stack.
279         * except.c: Likewise.
280         (expand_start_all_catch): Push the outer_context for the try block
281         onto outer_context_label_stack.
282         (expand_end_all_catch): Use it and pop it.
283
284         * except.c (expand_start_all_catch): One more do_pending_stack_adjust.
285
286         * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR.
287
288 Thu Nov 27 07:15:10 1997  Michael Meissner  <meissner@cygnus.com>
289
290         * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
291         (print_operand{,_address}): Use SMALL_DATA_REG for register involved in
292         small data relocations.
293
294         * rs6000/linux.h (LINK_SPEC): Pass -dynamic-linker /lib/ld.so.1 if
295         -dynamic linker is not used.
296
297         * rs6000.md (call insns): For local calls, use @local suffix under
298         System V; don't use @plt under Solaris.
299
300 Wed Nov 26 15:12:32 1997  Jeffrey A Law  (law@cygnus.com)
301
302         * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions.
303
304         * toplev.c (flag_exceptions): Default value is 2.
305         (compile_file): If flag_exceptions still has the value 2, then
306         set it to 0.
307
308 Wed Nov 26 14:58:42 1997  Michael Meissner  <meissner@cygnus.com>
309
310         * rs6000.c (output_function_profiler): Put label address in r0, and
311         store LR in 4(sp) for System V/eabi.
312
313         * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16
314         byte boundary, and maintain stack backchain.
315
316         (Originally from Geoffrey Keating)
317         * rs6000.c (function_arg): Excess floating point arguments don't
318         go into GPR registers after exhausting FP registers under the
319         System V.4 ABI.
320         (function_arg_partial_nregs): Likewise.
321
322         * rs6000.md (call insns): If -fPIC or -mrelocatable, add @plt
323         suffix to calls.
324
325 Wed Nov 26 14:09:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
326
327         * dwarfout.c (output_type): If finalizing, write out nested types 
328         of types we've already written.
329
330         * toplev.c (main): Complain about -gdwarfn.
331
332 Wed Nov 26 12:37:56 1997  J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl>
333
334         * mingw32.h (PATH_SEPARATOR): Moved to xm-mingw32.h
335         * xm-mingw32.h (PATH_SEPARATOR): Moved here from mingw32.h.
336
337         * getpwd.c (getpwd): Use VMS implementation of _WIN32 unless cygwin32.
338
339 Wed Nov 26 12:26:44 1997  John Hassey  <hassey@dg-rtp.dg.com>
340
341         * m88k/dgux.h (ASM_CPU_SPEC) : No whitespace allowed.
342
343         * m88k.h (SUPPORTS_ONE_ONLY) : Must be svr4.
344
345         * i386/dgux.h (ASM_OUTPUT_ALIGN): Deleted.
346
347         * i386/dgux.c (output_file_start) : Changed ix86_isa_string
348         to ix86_arch_string.
349
350         * cplus-dem.c (fancy_abort): Added.
351
352 Wed Nov 26 06:07:50 1997  Richard Earnshaw <rearnsha@arm.com>
353
354         * arm/coff.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_32 to defaults.
355
356         * configure.in (arm*-*-*): Recognize --with-cpu for ARM processors.
357
358 Wed Nov 26 05:05:36 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
359
360         * libgcc2.c (inhibit_libc): Define #ifdef CROSS_COMPILE.
361
362         * mips/xm-iris6.h (malloc, realloc, calloc): No longer declare.
363         (USG): Define here.
364         (xm-iris5.h): No longer include; just include xm-mips.h.
365
366         * mips-tfile.c (parse_def): Properly recognize bitfield and
367         count array dimensions.
368
369         * protoize.c: Remove declarations of void, exit, and free.
370
371         * i386/mingw32.h (LINK_SPEC, STARTFILE_SPEC): Change -dll to -mdll.
372
373         * configure.in: Check for sys/file.h.
374         * gcc.c (sys/file.h): Include if HAVE_SYS_FILE_H.
375
376         * configure.in: Only give error on bad --with-cpu value for target.
377
378 Sat Nov 22 19:21:55 1997  Philippe De Muyter  <phdm@macqel.be>
379
380         * dwarf2out.c (CIE_LENGTH_LABEL, FDE_LENGTH_LABEL): New macros.
381         (ASM_OUTPUT_DWARF_VALUE4): New macro.
382         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Define if SET_ASM_OP is
383         defined.
384         (output_call_frame_info): Don't output forward label differences
385         if ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL is defined.
386         Substitute instead simple label and define this label later to be
387         difference of desired labels after they have been defined.
388         * m68k/mot3300.h (SET_ASM_OP): Define when not using gas.
389
390         * gcc.c (process_command): Don't take address of function fatal when
391         calling lang_specific_driver.
392
393 Sat Nov 22 17:08:03 1997  J. Kean Johnston  <jkj@sco.com>
394
395         * i386/sco5.h (SELECT_RTX_SECTION): Redefine to work with -fpic.
396         (LIBGCC_SPEC, LIB_SPEC): Link with correct libgcc.a.
397         (HAVE_ATEXIT): Define.
398
399 Sat Nov 22 12:20:22 1997  Richard Earnshaw <rearnsha@arm.com>
400
401         * arm.md (movsfcc{,_hard}_insn): Specify mode for all alternatives.
402
403 Sat Nov 22 06:56:16 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
404
405         * function.c (instantiate_decl): Only ignore ADDRESSOF if arg is REG.
406
407         * configure.in: Check for functions before checking which need decls.
408         (bcopy, bzero, bcmp, index, rindex): Add checks.
409         (vax-*-sysv*): Fix typo in setting of xm_file.
410         * aclocal.m4: Add conditional definitions of index and rindex.
411         * gansidecl.h (bcopy, bzero, bcmp, index, rindex): If don't
412         have one of these, define macro to use ANSI form.
413         * pa/xm-pahpux.h (bcopy, bzero, bcmp, rindex, index): No longer define.
414         * mips/xm-sysv.h, xm-m88k.h, m68k/xm-plexus.h: Likewise.
415         * m68k/xm-mot3300.h, m68k/xm-m68kv.h, m68k/xm-hp320.h: Likewise.
416         * winnt/xm-winnt.h, vax/xm-vms.h, m68k/xm-3b1.h: Likewise.
417         * i386/xm-os2.h, i386/xm-mingw32.h, alpha/xm-vms.h: Likewise.
418         * xm-svr4.h, xm-svr3.h: Likewise.
419         * clipper/xm-clix.h: Likewise.
420         (TARGET_MEM_FUNCTIONS): Define here.
421         * xm-linux.h (bcmp, bcopy, bzero, index, rindex): No longer undefine.
422         * xm-convex.h (bcopy, bzero): No longer define.
423         * vax/xm-vaxv.h, sparc/xm-pbd.h, mips/xm-iris{3,4,5}.h: Likewise.
424         * m68k/xm-crds.h, m68k/xm-altos3068.h, i386/xm-sun.h: Likewise.
425         * i386/xm-osf.h, i386/xm-aix.h, xm-i370.h, ns32k/xm-genix.h: Likewise.
426
427 Sat Nov 22 06:46:26 1997  Paul Eggert  <eggert@twinsun.com>
428
429         * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c:
430         Don't include <strings.h> unless there's no <string.h>.
431
432 Fri Nov 21 06:46:50 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
433
434         * configure.in (i[3456]86-*-freebsd{,elf}*): Delete i386/xm-freebsd.h.
435         * xm-freebsd.h, i386/xm-freebsd.h: Deleted.
436
437         * i386/xm-cygwin32.h (HAVE_RUSAGE, HAVE_FILE_H): Deleted.
438         * i386/xm-mingw32.h, rs6000/xm-cygwin32.h: Likewise.
439
440         * xm-std32.h: New file, so far unused.
441
442 Fri Nov 21 05:50:54 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
443
444         * m68k.c (legitimize_pic_address): Make sure pic register marked used.
445
446         * dwarf2out.c (output_call_frame_info): Call app_enable and
447         app_disable if flag_debug_asm, not if flag_verbose_asm.
448
449 Thu Nov 20 16:37:36 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
450
451         * expr.c (expand_builtin_apply): Fix typo in last change.
452
453         * expr.c (expand_assignment): If assigning to readonly field,
454         mark rtx as unchanging.
455
456         * configure.in: Add checks for functions putenv, popen, and vprintf.
457         (i[3456]86-*-netbsd*): No longer need i386/xm-netbsd.h.
458         (i860-alliant-*): No longer need i860/xm-fx2800.h.
459         (m68k-ncr-sysv*): Use xm-svr3.h instead of m68k/xm-tower.h.
460         (m68k-sun-sunos*): No longer need m68k/xm-sun3.h.
461         (m68k-*-netbsd*): No longer need m68k/xm-netbsd.h.
462         (mips-dec-netbsd*): No longer need mips/xm-netbsd.h.
463         (ns32k-pc532-netbsd*): No longer need ns32k/xm-netbsd.h.
464         (sparc-*-netbsd*): No longer need sparc/xm-netbsd.h.
465         (vax-*-netbsd*): No longer need config/xm-netbsd.h.
466         * arm/xm-netbsd.h: No longer include xm-netbsd.h.
467         * xm-linux.h (HAVE_VPRINTF, HAVE_POPEN, HAVE_PUTENV): Deleted.
468         * xm-mips.h (HAVE_VPRINTF, HAVE_PUTENV): Deleted.
469         * i386/xm-osf.h, xm-arm.h, xm-alpha.h: Likewise.
470         * xm-sparc.h (HAVE_POPEN): Deleted.
471         * xm-sh.h (HAVE_VPRINTF): Deleted.
472         * mips/xm-iris4.h, mips/xm-iris5.h, xm-m88k.h: Likewise.
473         * m68k/xm-crds.h, m68k/xm-atari.h, m68k/xm-amix.h: Likewise.
474         * xm-svr3.h, xm-svr4.h, i386/xm-mingw32.h: Likewise.
475         * i386/xm-os2.h (HAVE_PUTENV): Deleted.
476         * i386/xm-dos.h, i386/xm-aix.h: Likewise.
477         * arm/xm-netbsd.h (HAVE_VPRINTF, HAVE_STRERROR): No longer
478         need undefine.
479         * xm-netbsd.h, i386/xm-netbsd.h, m68k/xm-netbsd.h: Deleted.
480         * mips/xm-netbsd.h, ns32k/xm-netbsd.h, sparc/xm-netbsd.h: Likewise.
481         * i860/xm-fx2800.h, m68k/xm-sun3.h, m68k/xm-tower.h: Likewise.
482
483 Thu Nov 20 16:04:24 1997  Richard Earnshaw <rearnsha@arm.com>
484
485         * explow.c (plus_constant_wide, case MEM): If about to call 
486         force_const_mem, generate the rtl in a saveable obstack.
487
488         * arm.md (movhi): Pass the full MEM to storeinthi, storehi and
489         storehi_bigend.
490         (storeinthi, storehi, storehi_bigend): Be more conservative about
491         when not to force a PLUS or MINUS into a REG.  Use change_address
492         to create new MEMs.
493
494 Wed Nov 19 15:16:04 1997  Ulrich Drepper  <drepper@cygnus.com>
495
496         * c-common.c (print_char_table): Add a and A to float formats.
497         (scan_char_table): Likewise.
498         (check_format_info): Recognize `a' as allocate flag only if used
499         in correct context.
500
501 Wed Nov 19 12:56:54 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
502
503         * configure.in: Fix check for <inttypes.h>.
504
505 Tue Nov 18 19:27:01 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
506
507         * sh.md (attribute "type"): Add nil.
508         (movsi_ie): y/y alternative is type nil.
509         (movsf_ie): Replace ry/yr/X alternative by r/y/X , y/r/X and y/y/X.
510         (movsf_ie+1): Delete.
511
512 Tue Nov 18 18:38:41 1997  Paul Eggert  <eggert@twinsun.com>
513
514         * cccp.c (warn_undef): Now static.
515         (eval_if_expression): Don't warn about undefined preprocessor symbols
516         in system headers.
517         * cexp.y (parse_c_expression):
518         Now takes new arg specifying whether to warn
519         about undefined preprocessor symbols.
520         (warn_undef): Now local and static; independent of warn_undef in cccp.c
521         (yylex): `register' -> `register int', needed for C9X.
522
523         The following changes are only if TEST_EXP_READER is defined:
524         (expression_signedp): New var.
525         (start): Set expression_signedp to signedness of expression.
526         (print_unsigned_host_wide_int): New function.
527         (main): Use it to print value of expression, instead of hoping that
528         `long' is long enough.  Print "u" after unsigned values.
529
530 Tue Nov 18 18:33:30 1997  Jim Wilson  <wilson@cygnus.com>
531
532         * mips.c (save_restore_insns): If gp_offset or fp_offset are
533         large_int, emit two insns instead of one splitable insn.
534         * dwarf2out.c (dwarf2out_frame_debug): When set cfa_store_offset
535         from cfa_temp_value, use cfa_offset.  Add assert checking that
536         cfa_reg is SP.
537
538 Tue Nov 18 09:11:58 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
539
540         * fold-const.c (div_and_round_double): Return overflow for
541         divide-by-zero instead of aborting.
542
543         * tree.c (substitute_in_expr, case TREE_LIST): Fix two typos.
544
545 Tue Nov 18 05:03:52 1997  Jeffrey A Law  <law@cygnus.com>
546
547         * arm.c (output_move_double): Allocate 3 entries in otherops array.
548
549 Tue Nov 18 02:41:01 1997  Paul Eggert  <eggert@twinsun.com>
550
551         * cccp.c (quote_string_for_make): New function.
552         (deps_output): Use it to fix bug with file name quoting in -M output.
553
554 Mon Nov 17 13:28:33 1997  Philip Blundell  <Philip.Blundell@pobox.com>
555
556         * arm/lib1funcs.asm (__div0): Provide GNU/Linux implementation.
557         * arm/t-linux (LIB1ASMFUNCS): Use it.
558
559 Mon Nov 17 09:13:59 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
560
561         * function.c (purge_addressof_1): Make copy when substituting argument
562         of ADDRESSOF.
563         (fixup_var_refs_1): Likewise.
564
565         * m68k.c: Include tree.h.
566
567 Mon Nov 17 09:01:05 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
568
569         * getpwd.c (getpwd, [VMS]): Add extra arg of 0 to getcwd call.
570
571         * alpha/vms.h ({OPTIMIZATION,OVERRIDE}_OPTIONS): Delete, for now.
572         * alpha/xm-vms.h (DIR_SEPARATOR, PATH_SEPARATOR): Delete.
573
574 Mon Nov 17 08:52:45 1997  Richard Earnshaw  <rearnsha@arm.com>
575
576         * function.c (fixup_stack_1): Also fix-up refs via ARG_POINTER_REGNUM.
577
578         * configure.in (arm-*-netbsd*): Doesn't need collect2.
579
580 Mon Nov 17 08:50:01 1997  Stephen L Moshier  <moshier@world.std.com>
581
582         * i386/isc.h (DWARF2_UNWIND_INFO): Define as 0.
583
584 Mon Nov 17 08:42:28 1997  Michael P. Hayes  <michaelh@ongaonga.chch.cri.nz>
585
586         * flow.c (propagate_block): Look for pre-inc/dec within PARALLEL.
587
588 Mon Nov 17 03:14:46 1997  Paul Eggert  <eggert@twinsun.com>
589
590         * cpplib.c (file_size_and_mode): Remove.
591         (finclude): Don't assume long and off_t are same size or that
592         mode_t fits in int.
593         * cccp.c: (main, finclude, check_precompiled): Don't assume size_t
594         and off_t are same size.
595         * gcov.c (read_files): Don't assume off_t and unsigned are same size.
596
597 Sun Nov 16 18:56:40 1997  Scott Christley  <scottc@net-community.com>
598
599         * objc/objc-act.c (objc_demangle): New function.
600         (objc_printable_name): New function.
601         (init_objc): Change default function.
602
603         * expr.c (expand_builtin_apply): Prefer nonlocal over block.
604
605 Sun Nov 16 18:10:13 1997  Fila Kolodny  <fila@ibi.com>
606
607         * i370.c (i370_function_prolog): New function from i370.h.
608         * i370.h (FUNCTION_PROLOG): Just call i370_function_prolog.
609
610 Sun Nov 16 08:40:35 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
611
612         * calls.c (expand_call, store_one_arg): Don't pass QImode arguments
613         to emit_library_call. 
614         * expr.c (emit_push_insn, expand_assignment, store_expr): Likewise.
615         (expand_expr, expand_builtin): Likewise.
616         * function.c (put_var_into_stack, assign_parms): Likewise.
617         * alpha.c (alpha_builtin_saveregs): Likewise.
618         * clipper.c (clipper_builtin_saveregs): Likewise.
619         * m88k.c (m88k_builtin_saveregs): Likewise.
620         * pa.c (hppa_builtin_saveregs): Likewise.
621         * sparc.c (sparc_builtin_saveregs): Likewise.
622
623 Sun Nov 16 07:39:08 1997  Paul Eggert  <eggert@twinsun.com>
624
625         * real.h (REAL_VALUES_IDENTICAL): New macro.
626         * expr.c (is_zeros_p): Don't consider -0.0 to be all zeros.
627         * fold-const.c (operand_equal_p): Don't consider -0.0 identical to 0.0.
628         * tree.c (simple_cst_equal): Likewise.
629         * varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL macro.
630
631 Sun Nov 16 07:29:12 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
632
633         * acconfig.h (NEED_DECLARATION_{,R}INDEX): New cases.
634         * configure.in: See if need declarations for index and rindex.
635         * c-typeck.c, collect2.c, cpplib.c, dwarfout.c, gcov.c, protoize.c:
636         Include stdlib.h, string.h, and strings.h, if they exist.
637         Only declare index and rindex if needed.
638         * collect2.c: Only declare free if needed.
639
640         * regclass.c (record_address_regs): Refine choice of index and base
641         when have sum of two regs, one of which is a hard reg.
642
643 Sun Nov 16 07:07:45 1997  Robert Lipe (robertl@dgii.com)
644
645         * i386/sco5.h (ASM_OUTPUT_ALIGNED_BSS): Define as in sysv4 and linux
646         (HAVE_ATEXIT): No longer define.  This confused ELF destructors.
647         (DBX_DEBUGGING_INFO): Define.
648
649 Sat Nov 15 09:55:11 1997  Richard Earnshaw (rearnsha@arm.com)
650
651         * arm.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept MINUS (until reload
652         knows what to do with it).
653
654 Thu Nov 13 11:07:41 1997  Michael Meissner  <meissner@cygnus.com>
655
656         * rs6000.c (num_insns_constant): Use REAL_VALUE_FROM_CONST_DOUBLE to
657         pick apart floating point values, instead of using CONST_DOUBLE_LOW
658         and CONST_DOUBLE_HIGH.
659
660         * rs6000.md (define_splits for DF constants): Use the appropriate
661         REAL_VALUE_* interface to pick apart DF floating point constants in
662         a machine independent fashion.
663
664 Thu Nov 13 07:30:53 1997  Richard Earnshaw (rearnsha@arm.com)
665
666         * arm/netbsd.h (LINK_SPEC): Redefine -- pass -X.
667
668         * arm.md (movsicc_insn): Add extra reload alternatives for better 
669         register tying.
670         (movsfcc_hard_insn, movsfcc_soft_insn, movdfcc_insn): Likewise.
671
672 Mon Nov 10 19:32:14 1997  Doug Evans  <dje@cygnus.com>
673
674         * sparc.md (mov[sdt]f_const_insn): Fix condition to match what
675         instruction can handle.
676
677 Mon Nov 10 03:02:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
678
679         * stmt.c (expand_decl_cleanup_no_eh): New fn.
680
681         * except.c (expand_leftover_cleanups): do_pending_stack_adjust.
682
683 Sun Nov  9 14:34:47 1997  David Edelsohn  <edelsohn@mhpcc.edu>
684
685         * rs6000.md (lshrdi3_power): Delete '&' from first alternative and
686         swap instruction order.
687         
688 Sun Nov  9 09:51:08 1997  Michael P. Hayes  <michaelh@ongaonga.chch.cri.nz>
689
690         * machmode.def (QCmode, HCmode): New modes.
691
692 Sun Nov  9 09:24:21 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
693
694         * combine.c (sets_function_arg_p): New function.
695         (combinable_i3pat): Check if combining with any but the first
696         argument register setting insn for a function call.
697
698         * a29k.h (ELIGIBLE_FOR_EPILOGUE_DELAY): Avoid sheduling load from
699         stack slot.
700
701 Sun Nov  9 09:17:53 1997  Richard Earnshaw (rearnsha@arm.com)
702
703         * loop.c (strength_reduce): If initial value of BIV is equivalent to
704         a constant, record that as initial value.
705         (check_dbra_loop): Don't reverse loop if initial value isn't CONST_INT.
706
707 Sun Nov  9 09:12:41 1997  Tristan Gingold  <gingold@haendel.enst.fr>
708
709         * expr.c (emit_push_insn): Avoid infinite recursion
710         when -fcheck-memory-usage.
711   
712 Sun Nov  9 08:03:42 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
713
714         * cse.c (simplify_binary_operation): Fix error in last change.
715
716 Sun Nov  9 07:56:31 1997  Pat Rankin  <rankin@eql.caltech.edu>
717
718         * vmsconfig.com [version.opt]: Parse version string more robustly.
719         [@variable@]: Discard configure tokens when using Makefile.in.
720         [libgcc2-cxx.list]: Generate this new file for CXX_LIB2FUNCS.
721         [cp/input.c]: Suppress it as workaround to avoid linker warning.
722         [objc-parse.y]: Now lives in the objc subdirectory.
723         * make-cc1.com [objc-parse.{c,y}]: Ditto.
724         * make-cccp.com [prefix.c]: Compile additional source file.
725
726         * cccp.c (VMS_freopen, VMS_fopen, VMS_open, VMS_fstat): Call
727         corresponding library routine specified via its ordinary name
728         rather than with a decc$ prefix.  (Reverses Oct 19 change.)
729
730         * cccp.c, cexp.y [HOST_WIDE_INT]: Manually splice long lines
731         of avoid backslash+newline continuation on #if directives.
732
733 Sun Nov  9 01:54:54 1997  Jeffrey A Law  (law@cygnus.com)
734
735         * local-alloc.c (block_alloc): Don't lose if two SCRATCH expressions
736         are shared.
737
738 Sat Nov  8 23:01:37 1997  Michael P. Hayes  <michaelh@ongaonga.chch.cri.nz>
739
740         * cse.c (simplify_binary_operation): Don't simplify divide by zero
741         for targets that don't support a representation of INFINITY.
742
743 Sat Nov  8 22:37:29 1997  Richard Earnshaw  <rearnsha@arm.com>
744
745         * Makefile.in (cse.o): Depend on expr.h.
746         * cse.c: Include expr.h.
747         (fold_rtx, case MEM): For ADDRESSOF, create new MEM.
748
749 Sat Nov  8 19:27:56 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
750
751         * expr.c (expand_increment): When enqueing a postincrement for a MEM,
752         use copy_to_reg if address is not a general_operand.
753
754 Sat Nov  8 18:39:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
755
756         * libgcc2.c (L_eh): Define __eh_pc here.
757         Replace __eh_type with generic pointer __eh_info.
758
759 Sat Nov  8 07:03:47 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
760
761         * alpha.h (SECONDARY_OUTPUT_RELOAD_CLASS): If FLOAT_REGS,
762         need secondary reload for QImode and HImode even if BWX.
763
764         * expmed.c (store_split_bit_field): Force ADDRESSOF into register.
765
766         * cse.c (fold_rtx, case ADDRESSOF): New case (that does nothing).
767
768         * function.c (fixup_var_refs_1, case ADDRESSSOF): Check that
769         new value is valid for insn.
770
771         * stor-layout.c (get_best_mode): Refine test for field within
772         unit to work properly for negative positions.
773
774         * print-rtl.c (print_inline_rtx): Save and restore sawclose and indent.
775
776         * reload.c (find_replacement): If PLUS, MINUS, or MULT, see if
777         either arg contains a replacement.
778
779 Fri Nov  7 10:22:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
780
781         * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for
782         linked once FDEs.
783
784 Fri Nov  7 06:50:57 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
785
786         * alpha.h (FUNCTION_VALUE): Take into account promotion of pointers.
787
788         * unroll.c (back_branch_in_range_p): Refine check for INSN at loop end.
789
790 Wed Nov  5 18:17:50 1997  Paul Eggert  <eggert@twinsun.com>
791
792         * fixinc.svr4: Replace `__STDC__ - 0 == 1'
793         with `defined (__STRICT_ANSI__)'.
794
795 Tue Nov  4 18:32:44 1997  Jim Wilson  <wilson@cygnus.com>
796
797         * mips.md (insv, extzv, extv): Add change_address call.
798         (movsi_ulw, movsi_usw): Change QImode to BLKmode in pattern.
799         * mips.c (mips_expand_epilogue): Emit blockage insn before call to
800         save_restore_insns if no FP and GP will be restored.
801
802         * acconfig.h (HAVE_INTTYPES_H): Undef.
803         * configure.in (inttypes.h): Check for conflicts between sys/types.h
804         and inttypes.h, and verify that intmax_t is defined.
805         * mips/x-iris (CC, OPT, OLDCC): Comment out.
806         * mips/x-iris3: Likewise.
807
808 Tue Nov  4 17:28:31 1997  Doug Evans  <dje@cygnus.com>
809
810         * c-lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
811         (yylex): Record wide strings using target endianness, not host.
812
813 Tue Nov  4 16:18:19 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
814
815         * Makefile.in (distdir-start): Add dependency on $(srcdir)/config.in.
816
817 Tue Nov  4 06:14:30 1997  Paul Eggert  <eggert@twinsun.com>
818
819         * c-lex.c (yylex): Don't warn about constants like
820         9223372036854775807 and 18446744073709551615U on an L32LL64 host
821         unless pedantic.
822
823 Mon Nov  3 18:42:44 1997  Jim Wilson  <wilson@cygnus.com>
824
825         * i386.c (load_pic_register): Call prologue_get_pc_and_set_got.
826         * i386.md (prologue_{set_got,get_pc}): Add UNSPEC_VOLATILE to pattern.
827         (prologue_get_pc_and_set_got): New pattern.
828
829 Mon Nov  3 13:42:21 1997  Paul Eggert  <eggert@twinsun.com>
830
831         * cccp.c, cpplib.c (compare_defs): Don't complain about arg name
832         respellings unless pedantic.
833         * cpplib.c (compare_defs): Accept pfile as new arg.
834         All callers changed.
835
836 Fri Oct 31 07:10:09 1997  Jeffrey A Law  (law@cygnus.com)
837
838         * global.c (global_alloc): Free the conflict matrix after
839         reload has finished.
840
841 Thu Oct 30 17:30:42 1997  Doug Evans  <dje@cygnus.com>
842
843         * configure.in (sparc-*-elf*): Use sparc/elf.h, sparc/t-elf.
844         Set extra_parts.
845         (sparc*-*-*): Recognize --with-cpu=v9.
846         * sparc/elf.h: New file.
847         * sparc/t-elf: New file.
848
849 Thu Oct 30 16:36:17 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
850
851         * stmt.c (expand_asm_operand): If error in matching constraint,
852         don't emit asm.
853
854 Thu Oct 30 12:21:06 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
855
856         * va-sh.h (__va_arg_sh1): Define.
857         (va_arg): Use it.
858         SH3E doesn't use any integer registers for subsequent arguments
859         once a non-float value was passed in the stack.
860         * sh.c (machine_dependent_reorg): If optimizing, put explicit
861         alignment in front label for ADDR_DIFF_VEC.
862         * sh.h (PASS_IN_REG_P): Fix SH3E case.
863         (ADJUST_INSN_LENGTH): If not optimizing, add two extra bytes length.
864
865 Tue Oct 28 21:09:25 1997  Jim Wilson  <wilson@cygnus.com>
866
867         * m68k.md (btst patterns): Add 5200 support.
868
869 1997-10-28  Brendan Kehoe  <brendan@cygnus.com>
870
871         * global.c (global_alloc): Use xmalloc instead of alloca for
872         CONFLICTS, since max_allocno * allocno_row_words alone can be more
873         than 2.5Mb sometimes.
874
875 Tue Oct 28 15:06:44 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
876
877         * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Undefine before including
878         svr4.h.
879
880 Tue Oct 28 10:19:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
881
882         From Brendan:
883         * dwarf2out.c (output_call_frame_info): Use l1 instead of ".".
884
885 Mon Oct 27 16:01:14 1997  Jeffrey A Law  (law@cygnus.com)
886
887         * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Disable reg+reg.
888
889 Mon Oct 27 16:11:52 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
890
891         * sh.c (machine_dependent_reorg): When -flag_delayed_branches,
892         put an use_sfunc_addr before each sfunc.
893         * sh.md (use_sfunc_addr, dummy_jump): New insns.
894         (casesi): For TARGET_SH2, emit a dummy_jump after LAB.
895
896 Mon Oct 27 11:49:43 1997  Jason Merrill  <jason@yorick.cygnus.com>
897
898         * dwarf2.h: Remove dwarf2out prototypes.
899         * tree.h: And put them here.
900         * m68k.c, i386.c: Don't include dwarf2.h.
901
902 Mon Oct 27 00:02:13 1997  Paul Eggert  <eggert@twinsun.com>
903
904         Remap include files with header.gcc only if user or configuration
905         file specifies "-remap".
906
907         * cccp.c (remap): New var.
908         (main): Set it if user specifies "-remap".
909         (open_include_file): Remap only if `remap' is nonzero.
910
911         * cpplib.h (struct cpp_options): New member `remap'.
912         * cpplib.c (cpp_options_init): Set remap to 0.
913         (open_include_file): Remap only if `remap' is nonzero.
914         (cpp_handle_options): Set remap if user specifies "-remap".
915
916         * i386/cygwin32.h, rs6000/cygwin32.h (CPP_SPEC): Define with -remap.
917
918 Sun Oct 26 11:41:49 1997  Jason Merrill  <jason@yorick.cygnus.com>
919
920         * dwarf2out.c (output_call_frame_info): The CIE pointer is now a 32
921         bit PC-relative offset.  The exception range table pointer is now in
922         the CIE.
923         * frame.c (dwarf_cie, dwarf_fde): Rename CIE_pointer to CIE_delta.
924         (count_fdes, add_fdes, get_cie): Adjust.
925         (cie_info, extract_cie_info, __frame_state_for): Adjust eh_ptr uses.
926
927         From H.J. Lu:
928         * frame.c (count_fdes, add_fdes): Skip linked once FDE entries.
929
930 Sat Oct 25 20:29:39 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>
931
932         * Makefile.in (float.h-nat): If float.h is to be empty, ensure it is.
933
934 Sat Oct 25 20:16:52 1997  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
935
936         * prefix.c: Use stdarg.h only ifdef __STDC__.  Otherwise,
937         use varargs.h.  Wrap header with <>, not "".
938
939 Sat Oct 25 20:10:57 1997  Robert Lipe (robertl@dgii.com)
940
941         * i386/sco5.h (EH_FRAME_SECTION_ASM_OP{,_ELF,_COFF}): Define.
942         (DWARF2_UNWIND_INFO): Likewise.
943         (EXTRA_SECTIONS): Add in_eh.
944
945 Sat Oct 25 12:20:58 1997  Jeffrey A Law  (law@cygnus.com)
946
947         * mn10300.h (TARGET_SWITCHES): Add -mmult-bug and -mno-mult-bug.
948         (TARGET_MULT_BUG): Define.
949         (TARGET_DEFAULT): Default to TARGET_MULT_BUG.
950         * mn10300.md (mulsi3): Handle TARGET_MULT_BUG.
951
952 Fri Oct 24 15:43:57 1997  Michael Meissner  <meissner@cygnus.com>
953
954         * rs6000.c (toplevel): Move include stdio.h before config.h.
955
956         (Patch from H.J. Lu, Aug 27, 1997)
957         * rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New; defined as 1.
958
959         (Patch from Jeff Law, Oct 22, 1997)
960         * rs6000.c (struct machine_function): Add pic_offset_table_rtx.
961         (rs6000_{save,restore}_machine_status): Save/restore it.
962
963         * rs6000.md (movsi_got_internal_mem): New pattern to work around
964         case where GOT value did not get a register.
965         (movsi_got_internal_mem splitter): Split above pattern.
966
967         (Patch from Geoffrey Keating, Oct 21, 1997)
968         * rs6000.c (rs6000_stack_info): Avoid creating a stack
969         frame under System V ABI if we only need to save the LR.
970
971         (Patch from Joel Sherrill, Sep 1, 1997)
972         * rs6000/sysv4.h (SUBTARGET_SWITCHES): Add new macro
973         EXTRA_SUBTARGET_SWITCHES, which defaults to nothing.
974
975         (Patch from Geoffrey Keating, Oct 20, 1997)
976         * rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS{,_S}): Add -msdata=none
977         switch.
978
979 Fri Oct 24 15:25:50 1997  Doug Evans  <dje@cygnus.com>
980
981         * sparc.h (ASM_SPEC): Delete.
982
983 Fri Oct 24 13:16:24 1997  Jeffrey A Law  (law@cygnus.com)
984
985         * mn10200.c (indirect_memory_operand): Delete unused function.
986         * mn10200.h (EXTRA_CONSTRAINT): Handle 'R'.
987         * mn10200.md (bset, bclr insns): Handle output in a reg too.
988
989         * mn10300.c (symbolic_operand, legitimize_address): New functions.
990         * mn10300.h (LEGITIMIZE_ADDRESS): Call legitimize_address.
991         (GO_IF_LEGITIMATE_ADDRESS): Don't allow base + symbolic.
992
993 Thu Oct 23 08:03:59 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
994
995         * dbxout.c (dbxout_start_new_source_file): Use output_quoted_string
996         for FILENAME.
997
998 Tue Oct 21 16:18:13 1997  Paul Eggert  <eggert@twinsun.com>
999
1000         * winnt/win-nt.h (CPP_SPEC): Remove reference to obsolete
1001         option -lang-c-c++-comments.
1002
1003 Tue Oct 21 10:00:20 1997  Jeffrey A Law  (law@cygnus.com)
1004
1005         * mn10300.md (movqi, movhi): Avoid using address registers as
1006         destinations unless absolutely necessary.
1007
1008         * mn10200.c (expand_prologue): Fix typo.
1009
1010         * mn10200.h (GO_IF_LEGITIMATE_ADDRESS): Do not allow indexed addresses.
1011         * mn10200.md (neghi2): Provide an alternative which works if
1012         the input and output register are the same.
1013
1014         * mn10300.c (print_operand): Handle 'S'.
1015         * mn10300.md (ashlsi3, lshrsi3, ashrsi3): Use %S for
1016         shift amount in last alternative
1017
1018         * mn10300.c (expand_epilogue): Rework to handle register restores
1019         in "ret" and "retf" instructions correctly.
1020
1021 Tue Oct 21 07:35:19 1997  Richard Earnshaw  (rearnsha@arm.com)
1022
1023         * arm.md (insv): Avoid writing result into a paradoxical subreg.
1024
1025 Tue Oct 21 07:12:28 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
1026
1027         * sh/elf.h (PREFERRED_DEBUGGING_TYPE): Don't redefine.
1028
1029 Mon Oct 20 12:04:04 1997  Nick Clifton  <nickc@cygnus.com>
1030
1031         * v850.h (CPP_SPEC): Define __v850__.
1032         (CPP_PREDEFINES): Do not define __v850__.
1033         
1034         * xm-v850.h: Use __v850 rather than __v850__ to identify v850 port.
1035         
1036 Mon Oct 20 17:29:55 1997  Doug Evans  <dje@cygnus.com>
1037
1038         * sparc.h (SPARC_V9,SPARC_ARCH64): Delete.
1039         (DEFAULT_ARCH32_P): New macro.
1040         (TARGET_ARCH{32,64}): Allow compile time or runtime selection.
1041         (enum cmodel): Declare.
1042         (sparc_cmodel_string,sparc_cmodel): Declare.
1043         (SPARC_DEFAULT_CMODEL): Provide default.
1044         (TARGET_{MEDLOW,MEDANY}): Renamed to TARGET_CM_{MEDLOW,MEDANY}.
1045         (TARGET_FULLANY): Deleted.
1046         (TARGET_CM_MEDMID): New macro.
1047         (CPP_CPU_DEFAULT_SPEC): Renamed from CPP_DEFAULT_SPEC.
1048         (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC.
1049         (CPP_PREDEFINES): Take out stuff now handled by %(cpp_arch).
1050         (CPP_SPEC): Rewrite.
1051         (CPP_ARCH{,32,64,_DEFAULT}_SPEC): New macros.
1052         (CPP_{ENDIAN,SUBTARGET}_SPEC): New macros.
1053         (ASM_ARCH{,32,64,_DEFAULT}_SPEC): New macros.
1054         (ASM_SPEC): Add %(asm_arch).
1055         (EXTRA_SPECS): Rename cpp_default to cpp_cpu_default.
1056         Rename asm_default to asm_cpu_default.
1057         Add cpp_arch32, cpp_arch64, cpp_arch_default, cpp_arch, cpp_endian,
1058         cpp_subtarget, asm_arch32, asm_arch64, asm_arch_default, asm_arch.
1059         (NO_BUILTIN_{PTRDIFF,SIZE}_TYPE): Define ifdef SPARC_BI_ARCH.
1060         ({PTRDIFF,SIZE}_TYPE): Provide 32 and 64 bit values.
1061         (MASK_INT64,MASK_LONG64): Delete.
1062         (MASK_ARCH64): Renamed to MASK_64BIT.
1063         (MASK_{MEDLOW,MEDANY,FULLANY,CODE_MODEL}): Delete.
1064         (EMBMEDANY_BASE_REG): Renamed from MEDANY_BASE_REG.
1065         (TARGET_SWITCHES): Always provide 64 bit options.
1066         (ARCH64_SWITCHES): Delete.
1067         (TARGET_OPTIONS): New option -mcmodel=.
1068         (INT_TYPE_SIZE): Always 32.
1069         (MAX_LONG_TYPE_SIZE): Define ifdef SPARC_BI_ARCH.
1070         (INIT_EXPANDERS): sparc64_init_expanders renamed to sparc_init_....
1071         (FUNCTION_{,BLOCK_}PROFILER): Delete TARGET_EMBMEDANY support.
1072         (PRINT_OPERAND_PUNCT_VALID_P): Add '_'.
1073         * sparc/linux-aout.h (CPP_PREDEFINES): Take out stuff handled by
1074         CPP_SPEC.
1075         (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC.
1076         * sparc/linux.h: Likewise.
1077         * sparc/linux64.h (SPARC_V9,SPARC_ARCH64): Delete.
1078         (ASM_CPU_DEFAULT_SPEC): Renamed from ASM_DEFAULT_SPEC.
1079         (TARGET_DEFAULT): Delete MASK_LONG64, MASK_MEDANY, add MASK_64BIT.
1080         (SPARC_DEFAULT_CMODEL): Define.
1081         (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
1082         (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC.
1083         (LONG_DOUBLE_TYPE_SIZE): Define.
1084         (ASM_SPEC): Add %(asm_arch).
1085         * sparc/sol2.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
1086         (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC.
1087         (TARGET_CPU_DEFAULT): Add ultrasparc case.
1088         * sparc/sp64-aout.h (SPARC_V9,SPARC_ARCH64): Delete.
1089         (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT.
1090         (SPARC_DEFAULT_CMODEL): Define.
1091         * sparc/sp64-elf.h (SPARC_V9,SPARC_ARCH64): Delete.
1092         (TARGET_DEFAULT): MASK_ARCH64 renamed to MASK_64BIT.  Delete
1093         MASK_LONG64, MASK_MEDANY.
1094         (SPARC_DEFAULT_CMODEL): Define.
1095         (CPP_PREDEFINES): Delete.
1096         (CPP_SUBTARGET_SPEC): Renamed from CPP_SPEC.
1097         (ASM_SPEC): Add %(asm_arch).
1098         (LONG_DOUBLE_TYPE_SIZE): Define.
1099         (DWARF2_DEBUGGING_INFO): Define.
1100         * sparc/splet.h (CPP_SPEC): Delete.
1101         * sparc/sysv4.h (CPP_PREDEFINES): Take out stuff handled by CPP_SPEC.
1102         (FUNCTION_BLOCK_PROFILER): Delete TARGET_EMBMEDANY support.
1103         (BLOCK_PROFILER): Likewise.
1104         * sparc.c (sparc_cmodel_string,sparc_cmodel): New globals.
1105         (sparc_override_options): Handle code model selection.
1106         (sparc_init_expanders): Renamed from sparc64_init_expanders.
1107         * sparc.md: TARGET_<code_model> renamed to TARGET_CM_....
1108         TARGET_MEDANY renamed to TARGET_CM_EMBMEDANY.
1109         (sethi_di_embmedany_{data,text}): Renamed from sethi_di_medany_....
1110         (sethi_di_fullany): Delete.
1111
1112 Mon Oct 20 17:20:17 1997  Jim Wilson  <wilson@cygnus.com>
1113
1114         * mips.c (compute_frame_size): Not a leaf function if profile_flag set.
1115
1116 Sun Oct 19 17:46:02 1997  Douglas Rupp  <rupp@gnat.com>
1117
1118         * cccp.c (OBJECT_SUFFIX): Add default definition.
1119         (main): Use OBJECT_SUFFIX.
1120         (VMS_{freopen,fopen,open}): Use instead of using macro on
1121         unprefixed name.
1122         (VMS_fstat): Use decc$fstat explicitly, not via macro.
1123         
1124 Sun Oct 19 09:07:38 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1125
1126         * prefix.c (get_key_value): Initialize prefix to null.
1127         * Makefile.in (prefix.o): Properly pass in prefix.
1128
1129         * objc/Make-lang.in (objc.distdir): Make the objc directory.
1130         * Makefile.in (distdir-start): No longer depend on objc-parse.[cy].
1131         Don't copy objc files here.
1132         (TAGS): Don't delete objc-parse.y
1133
1134         * i386/mingw32.h (LIB_SPEC): Add -ladvapi32.
1135         (STARTFILE_SPEC): If -dll, use dllcrt1.o.
1136         (INCOMING_RETURN_ADDR_RTX): Undefine.
1137         
1138         * Makefile.in (float.h-nat): Avoid using /dev/null for input,
1139         since it's not present on all systems.
1140
1141         * prefix.c : New file.
1142         * Makefile.in (xgcc, cccp, cppmain, fix-header): Add prefix.o.
1143         (prefix.o): New rule.
1144         * cccp.c (update_path): Add extern definition.
1145         (struct default_include): New field `component'.
1146         (default_include): Add initializer for new field to all entries.
1147         (new_include_prefix): Take new arg and call update_path;
1148         all callers changed.
1149         Add trailing "." before doing stat of file.
1150         * cpplib.c (update_path): Add extern definition.
1151         (struct default_include): New field `component'.
1152         (default_include): Add initializer for new field to all entries.
1153         (cpp_start_read): Call update_path.
1154         * gcc.c (upate_path): Add extern definition.
1155         (find_a_file): For MS-DOS-based, consider a drive spec as absolute.
1156         (add_prefix): New arg component and pass to update_path;
1157         all callers changed.
1158         * netbsd.h (INCLUDE_DEFAULTS): Add `component' to values.
1159         * i386/freebsd.h, mips/netbsd.h, winnt/win-nt.h: Likewise.
1160         * i386/mingw32 (STANDARD_INCLUDE_COMPONENT): New macro.
1161         * vax/vms.h (INCLUDE_DEFAULTS): New macro.
1162         * vax/xm-vms.h (INCLUDE_DEFAULTS): Delete from here.
1163
1164         * sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): New macro.
1165
1166         * i386.c (ix86_prologue): Conditionalize Dwarf2 calls 
1167         on #ifdef INCOMING_RETURN_ADDR_RTX.
1168         * i386.md (allocate_stack): Fix incorrect operand number.
1169
1170         * alpha.c (vmskrunch): Deleted.
1171         (output_prolog, VMS): Use alloca for entry_label and don't
1172         truncate to 64 characters.
1173         * alpha/vms.h (vmskrunch): No longer define.
1174         (ENCODE_SECTION_INFO): No longer call vmskrunch.
1175         (ASM_DECLARE_FUNCTION_NAME): No longer override.
1176
1177         * toplev.c (output_quoted_string): Call new OUTPUT_QUOTED_STRING macro.
1178         * i386/mingw32.h (OUTPUT_QUOTED_STRING): New macro.
1179
1180         * stmt.c (using_eh_for_cleanups_p): New variable.
1181         (using_eh_for_cleanups): New function.
1182         (expand_decl_cleanup): Don't call expand_eh_region_start_tree
1183         unless using EH for cleanups.
1184
1185         * function.c (purge_addressof_1): When dealing with a
1186         bare (address (mem)), verify that what's inside is valid in insn.
1187         (instantiate_virtual_regs_1, case ADDRESSOF): If have MEM, just
1188         do instantiation inside and leave alone here.
1189
1190         * fold-const.c (fold, case COND_EXPR): Allow creation
1191         of {MIN,MAX}_EXPR, but preserve info on orginal comparison code.
1192
1193         * function.h (restore_tree_status): Update prototype.
1194
1195         * cse.c (cse_basic_block): Flush the hash table every 1,000 insns.
1196
1197 Sat Oct 18 13:48:14 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
1198
1199         * longlong.h (count_leading_zeros): Add missing casts to USItype.
1200
1201 Sat Oct 18 13:35:09 1997  Marc Lehmann (pcg@goof.com)
1202
1203         * toplev.c (main): Don't execute "ps" under MSDOS.
1204
1205 Sat Oct 18 13:26:42 1997  Richard Earnshaw  (rearnsha@arm.com)
1206
1207         * function.c (instantiate_virtual_regs): Don't instantiate the 
1208         stack slots for the parm registers until after the insns have had
1209         their virtuals instantiated.
1210
1211          * varargs.h (va_arg): For ARM systems, definition is endian-dependent.
1212          * stdarg.h (va_arg): Likewise.
1213
1214 Sat Oct 18 11:23:04 1997  Nick Clifton  <nickc@cygnus.com>
1215
1216         * final.c (end_final): Use ASM_OUTPUT_ALIGNED_DECL_LOCAL if defined.
1217         * varasm.c (assemble_static_space): Likewise.
1218         (assemble_variable): Use ASM_OUTPUT_ALIGNED_DECL_{COMMON,LOCAL} if def.
1219
1220 Sat Oct 18 11:02:19 1997  Doug Evans  <dje@canuck.cygnus.com>
1221
1222         * expr.c (use_group_regs): Don't call use_reg unless REG.
1223
1224 Sat Oct 18 10:39:22 1997  Jim Wilson  <wilson@cygnus.com>
1225
1226         * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse
1227         redundant conditional moves to single operand.
1228
1229         * expmed.c (extract_bit_field): Don't make flag_force_mem disable
1230         extzv for memory operands.
1231
1232 Sat Oct 18 09:58:44 1997  Jeffrey A Law  <law@cygnus.com>
1233
1234         * ptx4.h: Fix typo.
1235
1236         * integrate.c (save_for_inline_copying): Avoid undefined pointer
1237         operations.
1238         (expand_inline_function): Likewise.
1239         
1240 Sat Oct 18 09:49:46 1997  Jason Merrill  <jason@yorick.cygnus.com>
1241
1242         * tree.c (restore_tree_status): Also free up temporary storage
1243         when we finish a toplevel function.
1244         (dump_tree_statistics): Print stats for backend obstacks.
1245
1246         * libgcc2.c (__throw): Don't copy the return address.
1247         * dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address.
1248
1249         * tree.c (expr_tree_cons, build_expr_list, expralloc): New fns.
1250         * tree.h: Declare them.
1251
1252         * except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized).
1253         * toplev.c (main): Initialize exceptions_via_longjmp.
1254
1255         * tree.c: Add extra_inline_obstacks.
1256         (save_tree_status): Use it.
1257         (restore_tree_status): If this is a toplevel inline obstack and we
1258         didn't want to save anything on it, recycle it.
1259         (print_inline_obstack_statistics): New fn.
1260         * function.c (pop_function_context_from): Pass context to 
1261         restore_tree_status.
1262
1263 Sat Oct 18 09:45:22 1997  Michael Meissner  <meissner@cygnus.com>
1264
1265         * profile.c (get_file_function_name): Remove declaration.
1266         * c-lang.c (finish_file): Likewise.
1267
1268 Sat Oct 18 09:35:40 1997  Tristan Gingold  <gingold@messiaen.enst.fr>
1269
1270         * expr.c (expand_assignment): If -fcheck-memory-usage, add call to
1271         chkr_check_addr if size not zero.
1272         (expand_expr, case COMPONENT_REF): Likewise.
1273         (expand_builtin): If -fcheck_memory-usage, check memory usage
1274         of operands for strlen, strcpy, and memcpy or don't use builtins
1275         for memcmp and strcmp.
1276         * expr.h (chkr_check_str_libfunc): Declare.
1277         * optabs.c (chkr_check_str_libfunc): New variable.
1278         (init_optabs): Initialize it.
1279
1280 Sat Oct 18 09:29:21 1997  J"orn Rennecke  <amylaar@cygnus.co.uk>
1281
1282         * i386/cygwin32.h (ASM_COMMENT_START): Redefine.
1283
1284 Sat Oct 18 09:23:54 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1285
1286         * frame.c (__frame_state_for): Execute the FDE insns until the
1287         current pc value is strictly bigger than the target pc value.
1288
1289         * expr.c (expand_expr, case TARGET_EXPR): If target and slot has
1290         no DECL_RTL, then call mark_addressable again for the slot after
1291         we give it RTL.
1292
1293 Sat Oct 18 08:58:36 1997  Manfred Hollstein  (manfred@lts.sel.alcatel.de)
1294
1295         * m88k/dolph.h (INITIALIZE_TRAMPOLINE): Delete here.
1296         * m88k/sysv3.h (INITIALIZE_TRAMPOLINE): Unconditionally define.
1297         * libgcc2.c (__enable_execute_stack): Check for __sysV88__ not
1298         __DOLPHIN__.
1299
1300         * m68k/mot3300.h (ASM_OUTPUT_ALIGN): Accept any alignment.
1301         * dwarf2out.c (output_call_frame_info): Call app_enable and
1302         app_disable to let GNU as accept the generated comments.
1303
1304         * m88k.c (m88k_begin_prologue): Remove superfluous backslash.
1305
1306 Sat Oct 18 08:50:04 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
1307
1308         * flow.c (print_rtl_with_bb): Cast alloca return values.
1309
1310 Sat Oct 18 08:47:46 1997  Douglas Rupp  <rupp@gnat.com>
1311
1312         * alpha/vms.h (LITERALS_SECTION_ASM_OP, ASM_OUTPUT_DEF): 
1313         (EXTRA_SECTION_FUNCTIONS): Add literals_section.
1314         (EXTRA_SECTIONS): Include in_literals.
1315
1316 Sat Oct 18 08:40:55 1997  Nick Burrett  <nick.burrett@btinternet.com>
1317
1318         * cpplib.c: (initialize_builtins): Cast all string constants for the
1319         function install, to type U_CHAR *.
1320         (eval_if_expression): Likewise.
1321         * cppexp.c: (cpp_lex): Cast string, for cpp_lookup, to type U_CHAR *.
1322
1323 Sat Oct 18 08:38:13 1997  Ken Raeburn  <raeburn@cygnus.com>
1324
1325         * c-lex.c (check_newline) At `skipline', flush nextchar as well.
1326
1327 Sat Oct 18 08:17:13 1997  Paul Russell  <Paul.Russell@RustCorp.com.au>
1328
1329         * input.h (struct file_stack): Added indent_level.
1330         * c-lex.c (check_newline): Add {}-count & balance warning.
1331
1332 Sat Oct 18 06:54:39 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1333
1334         * regclass.c (record_address_regs, case PLUS): Refine how to choose
1335         which is base and index.
1336
1337         * alpha.h (FUNCTION_VALUE): Use word_mode only for integral types,
1338         not types with integral modes.
1339
1340         * final.c (alter_cond): Properly conditionalize forward decl.
1341
1342         * tree.h (SAVE_EXPR_NOPLACEHOLDER): New flag.
1343         * tree.c (contains_placeholder_p, case SAVE_EXPR): Avoid
1344         checking each SAVE_EXPR more than once.
1345
1346         * rs6000.md (nonlocal_goto_receiver): Don't test pool size.
1347
1348         * i386.c (load_pic_register): New function.
1349         (ix86_prologue): Code to load PIC register moved to new function.
1350         Don't emit blockage if not generating RTL.
1351         * i386.md (nolocal_goto_receiver): New pattern.
1352
1353         * i386.c: Major cleanup, mostly reformatting.
1354         Include dwarf2.h.
1355         Remove many spurious casts.
1356         (ix86_{pro,epi}logue): Use proper mode for SET rtx.
1357
1358 Fri Oct 17 17:13:42 1997  David S. Miller  <davem@tanya.rutgers.edu>
1359
1360         * sparc/linux64.h (LINK_SPEC): Dynamic linker is ld-linux64.so.2.
1361         * sparc.h (FUNCTION_PROFILER): Fix format string when TARGET_MEDANY.
1362         * sparc.c (output_double_int): Output DI mode values
1363         correctly when HOST_BITS_PER_WIDE_INT is 64.
1364         (output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use
1365         fmovd so it works if a quad float ends up in one of the upper 32
1366         float regs.
1367         * sparc.md (pic_{lo_sum,sethi}_di): New patterns for PIC support
1368         on sparc64.
1369
1370 Fri Oct 17 16:27:07 1997  Doug Evans  <dje@cygnus.com>
1371
1372         * sparc/sp64-elf.h (TARGET_DEFAULT): Delete MASK_STACK_BIAS.
1373         * sparc.h (PROMOTE_MODE): Promote small ints if arch64.
1374         (PROMOTE_FUNCTION_ARGS,PROMOTE_FUNCTION_RETURN): Define.
1375         (SPARC_FIRST_FP_REG, SPARC_FP_REG_P): New macros.
1376         (SPARC_{OUTGOING,INCOMING}_INT_ARG_FIRST): New macros.
1377         (SPARC_FP_ARG_FIRST): New macro.
1378         (CONDITIONAL_REGISTER_USAGE): All v9 fp regs are volatile now.
1379         (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER): Reorganize fp regs.
1380         (NPARM_REGS): There are 32 fp argument registers now.
1381         (FUNCTION_ARG_REGNO_P): Likewise.
1382         (FIRST_PARM_OFFSET): Update to new v9 abi.
1383         (REG_PARM_STACK_SPACE): Define for arch64.
1384         (enum sparc_arg_class): Delete.
1385         (sparc_arg_count,sparc_n_named_args): Delete.
1386         (struct sparc_args): Redefine and use for arch32 as well as arch64.
1387         (GET_SPARC_ARG_CLASS,ROUND_REG,ROUND_ADVANCE): Delete.
1388         (FUNCTION_ARG_ADVANCE): Rewrite.
1389         (FUNCTION_ARG,FUNCTION_INCOMING_ARG): Rewrite.
1390         (FUNCTION_ARG_{PARTIAL_NREGS,PASS_BY_REFERENCE}): Rewrite.
1391         (FUNCTION_ARG_CALLEE_COPIES): Delete.
1392         (FUNCTION_ARG_{PADDING,BOUNDARY}): Define.
1393         (STRICT_ARGUMENT_NAMING): Define.
1394         (doublemove_string): Declare.
1395         * sparc.c (sparc_arg_count,sparc_n_named_args): Delete.
1396         (single_move_string): Use GEN_INT, and HOST_WIDE_INT.
1397         (doublemove_string): New function.
1398         (output_move_quad): Clean up some of the arch64 support.
1399         (compute_frame_size): Add REG_PARM_STACK_SPACE if arch64.
1400         Don't add 8 bytes of reserved space if arch64.
1401         (sparc_builtin_saveregs): Combine arch32/arch64 versions.
1402         (init_cumulative_args): New function.
1403         (function_arg_slotno): New static function.
1404         (function_arg,function_arg_partial_nregs): New functions.
1405         (function_arg_{pass_by_reference,advance}): New functions.
1406         (function_arg_padding): New function.
1407         * ginclude/va-sparc.h: Rewrite v9 support.
1408
1409 Fri Oct 17 13:21:45 EDT 1997  Philip Blundell  <pb@nexus.co.uk>
1410
1411         * arm/netbsd.h (TYPE_OPERAND_FMT): use % not @ to avoid
1412         problems with comments.
1413
1414 Fri Oct 17 13:00:38 EDT 1997  Richard Earnshaw  (rearnsha@arm.com)
1415
1416         * arm/aout.h (ASM_OUTPUT_LABEL): Define in place of ARM_OUTPUT_LABEL.
1417         * arm/aof.h (ASM_OUTPUT_LABEL): Likewise.
1418         * arm.h (ASM_OUTPUT_LABEL): Delete.
1419         (ASM_OUTPUT_INTERNAL_LABEL): Call ASM_OUTPUT_LABEL directly.
1420         * arm.c (arm_asm_output_label): Delete.
1421
1422         * arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Do what is needed inline.
1423         * arm.c (output_lcomm_directive): Delete.
1424
1425         * arm.h (PUSH_ROUNDING): Delete; this is not what happens.
1426         (ACCUMULATE_OUTGOING_ARGS): Define.
1427         (PROMOTE_FUNCTION_ARGS): Define.
1428         (INITIAL_ELIMINATION_OFFSET): Take current_function_outgoing_args_size
1429         into account.
1430         * arm.c (use_return_insn, output_func_epilogue,
1431         arm_expand_prologue): Likewise.
1432
1433         * arm.c (const_ok_for_arm): If HOST_WIDE_INT more than 32 bits,
1434         insist high bits are all zero  or all one.
1435         (output_move_double): Handle case where CONST_INT is more than 32 bits.
1436
1437         * arm.c (load_multiple_sequence): Support SUBREG of MEM.
1438         (store_multiple_sequence): Likewise.
1439
1440         * arm.c (arm_gen_load_multiple): New args UNCHANGING_P and IN_STRUCT_P.
1441         Use them if we create any new MEMs; all callers changed.
1442         (arm_gen_store_multiple): Likewise.
1443         (arm_gen_movstrqi): Preserve RTX_UNCHANGING_P and MEM_IN_STRUCT_P
1444         on any MEMs created.
1445
1446         * arm.h (ASM_OUTPUT_MI_THUNK): Use branch instruction to jump to label.
1447         (RETURN_ADDR_RTX): Use NULL_RTX rather than casting zero.
1448         (output_move_double): Correct typo in prototype.
1449
1450         * arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid.
1451
1452         * arm/netbsd.h (CPP_PREDEFINES): Always predefine __arm__.
1453         * arm/xm-netbsd.h (SYS_SIGLIST_DECLARED, HAVE_STRERROR): Define these.
1454
1455         * arm/t-netbsd (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS) Don't define
1456         these any more.
1457         * configure.in (arm-*-netbsd*): Pick up t-netbsd before arm/t-netbsd.
1458
1459 Thu Oct 16 19:31:22 1997  Jim Wilson  <wilson@cygnus.com>
1460
1461         * v850.c (ep_memory_offset): New function.
1462         (ep_memory_operand, substitute_ep_register, v850_reorg): Call it.
1463
1464         * v850.h (CONST_OK_FOR_*): Add and correct comments.
1465         (CONSTANT_ADDRESS_P): Add comment.
1466         (EXTRA_CONSTRAINT): Define 'U'.
1467         * v850.md: Add comments on bit field instructions.
1468         (addsi3): Delete &r/r/r alternative.  Add r/r/U alternative.
1469         (lshrsi3): Use N not J constraint.
1470
1471         * v850.md (v850_tst1+1): New define_split for tst1 instruction.
1472
1473         * v850.c (reg_or_0_operand): Call register_operand.
1474         (reg_or_int5_operand): Likewise.
1475         * v850.h (MASK_BIG_SWITCH, TARGET_BIG_SWITCH): New macros.
1476         (TARGET_SWITCHES): Add "big-switch".
1477         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE,
1478         ASM_OUTPUT_BEFORE_BASE_LABEL): Add support for TARGET_BIG_SWITCH.
1479         (CASE_DROPS_THROUGH): Comment out.
1480         (CASE_VECTOR_PC_RELATIVE, JUMP_TABLES_IN_TEXT_SECTION): Define.
1481         * v850.md (cmpsi): Delete compare mode.
1482         (casesi): New pattern.
1483
1484         * v850.h (CONST_OK_FOR_N): Delete redundant compare against zero.
1485         * v850.md (ashlsi3): Use SImode not QImode for shift count.
1486         (lshrsi3): Likewise.
1487
1488         * v850.c (print_operand): Add 'c', 'C', and 'z' support.  Delete
1489         unreachable switch statement after 'b' support.  Remove "b" from
1490         strings for 'b' support.
1491         * v850.md (branch_normal, branch_invert): Change %b to b%b.
1492
1493 Thu Oct 16 13:08:45 1997  Doug Evans  <dje@cygnus.com>
1494
1495         * configure.in (sparc-*-elf*): New target.
1496
1497 Wed Oct 15 22:30:37 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
1498
1499         * h8300.h (REG_CLASS_CONTENTS): AP is a general register.
1500         (REG_OK_FOR_BASE_P, ! REG_OK_STRICT case): Reject special registers.
1501
1502 Wed Oct 15 22:00:57 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
1503
1504         * sh.md (movhi+1): Add x/r alternative.
1505
1506         * sh/elf.h (HANDLE_SYSV_PRAGMA): Undefine.
1507
1508         * va-sh.h (va_arg): Fix big endian bugs for small integers.
1509
1510 Wed Oct 15 21:34:45 1997  David Edelsohn  <edelsohn@mhpcc.edu>
1511
1512         * rs6000.md (udivsi3, divsi3): Split into MQ and non-MQ cases for
1513         PPC601.
1514         (umulsidi3,umulsi3_highpart): Likewise.
1515         (smulsi3_highpart_no_mq): Add !TARGET_POWER.
1516
1517 Wed Oct 15 18:45:31 1997  Doug Evans  <dje@cygnus.com>
1518
1519         * sparc/t-sp64 (LIBGCC2_CFLAGS): Delete.
1520
1521 Wed Oct 15 17:17:33 1997  Jeffrey A Law  (law@cygnus.com)
1522
1523         * pa.c (following_call): Fail if the CALL_INSN is an indirect call.
1524
1525 Wed Oct  1 17:52:09 1997  Douglas Rupp  <rupp@gnat.com>
1526
1527         * vms.h (UNALIGNED_{SHORT,INT,DOUBLE_INT}_ASM_OP): Define.
1528
1529 Wed Oct  1 16:09:42 1997  Benjamin Kosnik  <bkoz@melange.gnu.ai.mit.edu>
1530
1531         * fixincludes: Fix sys/param.h so that MAXINT will not be redefined
1532         on HPUX.
1533         
1534 Wed Oct  1 08:08:21 1997  Jeffrey A Law  <law@chunks.cygnus.com>
1535
1536         * cse.c (this_insn_cc0_mode): Initialize.
1537
1538 Wed Oct  1 07:22:12 1997  Richard Henderson  <rth@cygnus.com>
1539
1540         * i386.h (RETURN_ADDR_RTX): Use FRAME arg, not ap.
1541
1542 Tue Sep 30 19:19:58 1997  Jim Wilson  <wilson@cygnus.com>
1543
1544         * except.c (find_exception_handler_labels): Correct argument to free.
1545
1546 Fri Sep 26 14:06:45 1997  Mike Stump  <mrs@wrs.com>
1547
1548         * c-decl.c (start_struct): Ensure that structs with forward
1549         declarations are in fact packed when -fpack-struct is given.
1550
1551 Wed Sep 24 11:31:24 1997  Mike Stump  <mrs@wrs.com>
1552
1553         * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if
1554         packing structure.  This allows a structure with only bytes to be
1555         aligned on a byte boundary and have no padding on a m68k.
1556
1557 Tue Sep 30 11:00:00 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
1558
1559         * except.c (find_exception_handler_labels): Free LABELS when done.
1560
1561 Tue Sep 30 10:47:33 1997  Paul Eggert  <eggert@twinsun.com>
1562
1563         * cexp.y, cppexp.c (HOST_BITS_PER_WIDE_INT):
1564         Define only if not already defined.
1565
1566 Mon Sep 29 17:55:55 1997  Gavin Koch  <gavin@cygnus.com>
1567
1568         * c-decl.c (warn_implicit): Deleted.
1569         (warn_implicit_int, mesg_implicit_function_declaration}): New vars.
1570         (c_decode_option): For -Wimplicit, set both new variables.
1571         Add -Wimplicit-function-declarations, -Wimplicit-int,
1572         and -Werror-implicit-function-declaration.
1573         (implicitly_declare, grokdeclarator): Use new flags.
1574         * toplev.c (lang_options): Add new -W options.
1575
1576 Mon Sep 29 17:55:15 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1577
1578         * c-common.c (check_format_info): Add check for scanf into
1579         constant object or via constant pointer type.
1580
1581 Mon Sep 29 16:10:12 1997  Richard Henderson  <rth@cygnus.com>
1582
1583         * alpha.md (beq): For registers and ints 0-255, use cmpeq+bne.
1584         (bne): Likewise for cmpeq+beq.
1585
1586 Mon Sep 29 15:58:22 1997  Doug Evans  <dje@cygnus.com>
1587
1588         * reload1.c (reload_cse_simplify_set): Fix return values.
1589
1590 Mon Sep 29 08:21:35 1997  Bruno Haible  <bruno@linuix.mathematik.uni-karlsruhe.de>
1591
1592         * i386.c (notice_update_cc): Use reg_overlap_mentioned_p.
1593
1594 Sun Sep 28 18:59:58 1997  Jason Merrill  <jason@yorick.cygnus.com>
1595
1596         * libgcc2.c (__throw): Fix thinko.
1597
1598 Sun Sep 28 12:00:52 1997  Mark Mitchell  <mmitchell@usa.net>
1599
1600         * cplus-dem.c (demangle_template): Add new parameter.  Handle new
1601         template-function mangling.
1602         (consume_count_with_underscores): New function.
1603         (demangle_signature): Handle new name-mangling scheme.
1604
1605 Sun Sep 28 11:19:09 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1606
1607         * flow.c (print_rtl_with_bb): Reformat messages about BB boundaries.
1608
1609         * calls.c: Include regs.h.
1610         * profile.c: Likewise.
1611         * Makefile.in (calls.o, profile.o): Depend on regs.h.
1612         * except.h (expand_builtin_dwarf_reg_size): Put in #ifdef TREE_CODE.
1613
1614         * tree.h (get_file_function_name): Add decl.
1615         * dwarf2out.c (output_call_frame_info): Don't cast its result.
1616
1617 Sun Sep 28 10:58:21 1997  Manfred Hollstein  <manfred@s-direktnet.de>
1618
1619         * Makefile.in (sub-makes): Pass value of LANGUAGES.
1620
1621 Sun Sep 28 10:52:59 1997  Ian Dall  <ian.dall@dsto.defence.gov.au>
1622
1623         * regs.h (SMALL_REGISTER_CLASSES): Default to 0.
1624         * calls.c (prepare_call_address, expand_call):
1625         Remove #if test on SMALL_REGISTER_CLASSES.
1626         * combine.c (can_combine_p, combinable_i3pat, try_combine): Likewise.
1627         * cse.c (canon_hash): Likewise.
1628         * function.c (expand_function_start): Likewise.
1629         * jump.c (jump_optimize): Likewise.
1630         * local-alloc.c (optimize_reg_copy_1): Likewise.
1631         * loop.c (scan_loop, valid_initial_value_p): Likewise.
1632         * profile.c (output_arc_profiler): Likewise.
1633         * reload.c (push_secondary_reload, push_reload): Likewise.
1634         (combine_reloads): Likewise.
1635         * reload1.c (reload, scan_paradoxical_subregs): Likewise.
1636         (order_regs_for_reload, reload_as_needed): Likewise.
1637         (choose_reload_regs): Likewise.
1638         (merge_assigned_reloads): Declare unconditionally.
1639
1640 Sat Sep 27 11:02:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
1641
1642         * c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
1643         * tree.h (built_in_function): Likewise.
1644         * expr.c (expand_builtin): Likewise.
1645         * except.h: Likewise.
1646         * dwarf2out.c (expand_builtin_dwarf_reg_size): New fn.
1647         * libgcc2.c (copy_reg): New fn.
1648         (__throw): Use it.
1649
1650 Fri Sep 26 09:00:13 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1651
1652         * frame.c (gansidecl.h): New include, for PROTO.
1653         * dwarf2out.c: Move inclusion of dwarf2.h down.
1654         (dwarf2out_cfi_label): Don't declare here.
1655         * dwarf2.h (dwarf2out_{do_frame,cfi_label,def_cfa}): New declarations.
1656         (dwarf2out_{window_save,args_size,reg_save,return_save}): Likewise.
1657         (dwarf2out_{return_reg,begin_prologue,end_epilogue}): Likewise.
1658         * m68k.c (dwarf2.h): Include.
1659         (output_function_prologue): Add dwarf2 support.
1660         * m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros.
1661         (INCOMING_FRAME_SP_OFFSET): Likewise.
1662
1663         * integrate.c (copy_rtx_and_substitute, case ADDRESSOF): New case.
1664
1665         * integrate.c (expand_inline_function): Make sure there is at
1666         least one insn that can be used as an insertion point.
1667
1668 Fri Sep 26 08:54:59 1997  Paul Eggert  <eggert@twinsun.com>
1669
1670         * c-typeck.c (build_binary_op): Warn about comparing signed vs
1671         unsigned if -W is specified and -Wno-sign-compare is not.
1672         * c-decl.c (warn_sign_compare): Initialize to -1.
1673         (c_decode_option): -Wall no longer implies -Wsign-compare.
1674
1675 Wed Sep 24 21:34:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
1676
1677         * dwarf2out.c: s/flag_verbose_asm/flag_debug_asm/
1678
1679 Wed Sep 24 19:17:08 1997  Doug Evans  <dje@cygnus.com>
1680
1681         * sparc.md (get_pc_via_call): Renamed from get_pc_sp32.
1682         (get_pc_via_rdpc): Renamed from get_pc_sp64.
1683         * sparc.c (finalize_pic): Update call to gen_get_pc_via_call.
1684
1685 Wed Sep 24 18:38:22 1997  David S. Miller  <davem@tanya.rutgers.edu>
1686
1687         * sparc.h (ASM_CPU_SPEC): Pass -Av9a for v8plus, ultrasparc.
1688         (TARGET_OPTIONS): Add -malign-loops=, -malign-jumps=,
1689         and -malign-functions=.
1690         (sparc_align_{loops,jumps,funcs}_string): Declare.
1691         (sparc_align_{loops,jumps,funcs}): Declare.
1692         (DEFAULT_SPARC_ALIGN_FUNCS): New macro.
1693         (FUNCTION_BOUNDARY): Use sparc_align_funcs.
1694         (STACK_BIAS): Define.
1695         (SPARC_SIMM*_P): Cast to unsigned HOST_WIDE_INT, then perform test.
1696         (SPARC_SETHI_P): New macro.
1697         (CONST_OK_FOR_LETTER_P): Use it.
1698         (ASM_OUTPUT_ALIGN_CODE): Define.
1699         (ASM_OUTPUT_LOOP_ALIGN): Define.
1700         * sparc.c (sparc_align_{loops,jumps,funcs}_string): New globals.
1701         (sparc_align_{loops,jumps,funcs}): New globals.
1702         (sparc_override_options): Handle -malign-loops=, -malign-jumps=,
1703         -malign-functions=.
1704         (move_operand): Use SPARC_SETHI_P.
1705         (arith_double_operand): Cast to unsigned HOST_WIDE_INT, then test.
1706         (arith11_double_operand): Likewise.
1707         (arith10_double_operand): Likewise.
1708         (finalize_pic): Finish sparc64 support.
1709         (emit_move_sequence): Use SPARC_SETHI_P.  Simplify low part of
1710         64 bit constants if able.
1711         (output_fp_move_quad): Don't use fmovq unless TARGET_HARD_QUAD.
1712         (sparc_builtin_saveregs [sparc64]): Don't save fp regs if ! TARGET_FPU.
1713         * sparc.md: Use GEN_INT instead of gen_rtx.
1714         (get_pc_sp32): Use for sparc64 as well.
1715         (lo_sum_di_sp{32,64}): Fix handling on 64 bit hosts.
1716         (sethi_di_sp64_const): Likewise.
1717         (movtf_cc_sp64): Check TARGET_HARD_QUAD.
1718         (cmp_zero_extract_sp64): Use unsigned HOST_WIDE_INT in cast.
1719         (ashlsi3, ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
1720
1721 Wed Sep 24 08:25:28 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>
1722
1723         * i386.md (allocate_stack): Fix typo in last change.
1724
1725 Tue Sep 23 19:02:46 1997  Doug Evans  <dje@cygnus.com>
1726
1727         * sparc/linux-aout.h (COMMENT_BEGIN): Delete.
1728         * sparc/linux.h (COMMENT_BEGIN): Likewise.
1729         * sparc/linux64.h (COMMENT_BEGIN): Likewise.
1730
1731 Tue Sep 23 14:48:18 1997  David S. Miller  <davem@tanya.rutgers.edu>
1732
1733         Add sparc64 linux support.
1734         * configure.in (sparc64-*-linux*): Recognize.  Add sparc/xm-sparc.h
1735         to xm_file list on 32-bit sparc-linux.
1736         * sparc/xm-sp64.h: New file.
1737         * sparc/linux64.h: New file.
1738         * sparc/xm-linux.h: Include some standard headers if not inhibit_libc.
1739         Don't include xm-sparc.h.
1740         * config/xm-linux.h (HAVE_PUTENV, HAVE_ATEXIT): Define.
1741         * glimits.h (LONG_MAX): Handle sparc64.
1742
1743 Tue Sep 23 08:32:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
1744
1745         * final.c (final_end_function): Also do dwarf2 thing if
1746         DWARF2_DEBUGGING_INFO.
1747         (final_start_function): Likewise.
1748
1749 Tue Sep 23 06:55:40 1997  David S. Miller  <davem@tanya.rutgers.edu>
1750
1751         * expmed.c (expand_divmod): If compute_mode is not same as mode,
1752         handle case where convert_modes causes op1 to no longer be CONST_INT.
1753
1754 Tue Sep 23 00:58:48 1997  Jim Wilson  <wilson@cygnus.com>
1755
1756         * mips.c (save_restore_insns): Only set RTX_FRAME_RELATED_P if store_p.
1757
1758 Mon Sep 22 18:26:25 1997  J. Kean Johnston  <jkj@sco.com>
1759
1760         * i386/sco5.h: Make ELF default file format and add -mcoff/-melf..
1761         (MULTILIB_DEFAULTS): Define.
1762         (ASM_SPEC, CPP_SPEC): Handle -mcoff.
1763         (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise.
1764         (LIBGCC_SPEC): Likewise.
1765         (MASK_COFF, TARGET_COFF, TARGET_ELF): Define.
1766         (SUBTARGET_SWITCHES): Add -mcoff and -melf.
1767         * i386/t-sco5 (CRTSTUFF_T_CFLAGS): Add -fPIC.
1768         (CRTSTUFF_T_CFLAGS_S): Tweak for COFF.
1769         (EXTRA_PARTS, TAROUTOPTS): Delete.
1770         (libgcc1-elf, libgcc2-elf, libgcc-elf targets): Delete.
1771         (MULTILIB_OPTIONS): Define.
1772         (MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): Likewise.
1773         (MULTILIB_MATCHE, MULTILIB_EXTRA_OPTS): Likewise.
1774
1775 Mon Sep 22 14:42:11 1997  Jeffrey A Law  (law@cygnus.com)
1776
1777         * reg-stack.c (find_blocks): Fix thinko in last change.
1778
1779 Mon Sep 22 16:22:41 1997  David S. Miller  <davem@tanya.rutgers.edu>
1780
1781         * combine.c (try_combine): Use NULL_RTX, not 0, in gen_rtx calls.
1782         * cse.c (cse_main): Likewise.
1783         * emit-rtl.c (gen_label_rtx): Likewise.
1784         * expr.c (init_expr_once): Likewise.
1785         * sched.c (schedule_insns): Likewise.
1786         * varasm.c (immed_double_const): Likewise.
1787
1788         * sparc.h (INCOMING_FRAME_SP_OFFSET): Define as SPARC_STACK_BIAS.
1789
1790 Mon Sep 22 16:13:21 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
1791
1792         * alpha/linux.h (HANDLE_SYSV_PRAGMA): Define.
1793
1794 Mon Sep 22 16:02:01 1997  Benjamin Kosnik  <bkoz@rhino.cygnus.com>
1795
1796         * c-common.c (decl_attributes): Add support for TYPE_UNUSED on types.
1797         * c-decl.c (finish_decl): Set TREE_USED on decls if TREE_USED on type.
1798         * stmt.c (expand_end_bindings): Check DECL_NAME and DECL_ARTIFICIAL
1799         before unused variable warning.
1800
1801 Mon Sep 22 14:04:18 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1802
1803         * rtlanal.c (computed_jump_p): Fix typo in last change.
1804
1805         * clipper.md (movstrsi): Use change_address instead of making new MEM.
1806         * dsp16xx.md (movstrqi): Likewise.
1807         * i370.md (movstrsi): Likewise.
1808         * i860.md (movstrsi): Likewise.
1809         * pa.md (movstrsi): Likewise.
1810         * mips.md (movstrsi): Fix (unused) pattern in define_expand.
1811         * pdp11.md (movstrhi): Likewise.
1812
1813         * alpha.md (allocate_stack): Use virtual_stack_dynamic for result.
1814         * i386.md (allocate_stack): Likewise.
1815         * rs6000.md (allocate_stack): Likewise.
1816
1817         * alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float.
1818
1819         * function.c (assign_parms): Make max_parm_reg handling more
1820         precise and make it agree with size of parm_reg_stack_loc.
1821         * integrate.c (save_for_inline_{nocopy,copying}): Remove
1822         redundant assignment of max_parm_reg.
1823
1824         * function.c (assign_parms): Properly set RTX_UNCHANGING_P for
1825         copy of parm.
1826
1827         * integrate.c (copy_rtx_and_substitute, case SET): Handle
1828         a SET_DEST of the virtual fp or ap specially and undo
1829         the adjustment into the local area as well.
1830         (mark_stores): Don't wipe out map entries for virtual fp and ap.
1831
1832         * alpha.h (FLOAT_STORE_FLAG_VALUE): Different for VAX and IEEE float.
1833
1834         * emit-rtl.c (gen_lowpart): Handle ADDRESSOF.
1835
1836 Mon Sep 22 13:35:56 1997  Doug Evans  <dje@cygnus.com>
1837
1838         * rtlanal.c (replace_regs): Fix up lossage in last patch.
1839
1840 Sun Sep 21 19:28:48 1997  Jeffrey A Law  (law@cygnus.com)
1841
1842         * flow.c (jmp_uses_reg_or_mem): Deleted unused function.
1843         (find_basic_blocks): Use computed_jump_p to determine if a 
1844         particular JUMP_INSN is a computed jump.
1845         * reg-stack.c (find_blocks): Use computed_jump_p to determine
1846         if a particular JUMP_INSN is a computed jump.
1847         * rtlanal.c (jmp_uses_reg_or_mem): New function.
1848         (computed_jump_p): Likewise.
1849         * rtl.h (computed_jump_p): Declare.
1850         * genattrtab.c (pc_rtx): Define and initialize.
1851
1852         * cse.c (simplify_relational_operation): Set h0u just like h0s.
1853         Similarly for h1u and h1s.
1854
1855 Sun Sep 21 14:13:31 1997  Doug Evans  <dje@cygnus.com>
1856
1857         * function.c (instantiate_virtual_regs): Fix thinko in last patch.
1858
1859 Sun Sep 21 10:33:26 1997  Paul Eggert  <eggert@twinsun.com>
1860
1861         * cccp.c, cpplib.c (special_symbol): If STDC_0_IN_SYSTEM_HEADERS
1862         is defined, expand __STDC__ to 0 in system headers.
1863         * i386/sol2.h, rs6000/sol2.h, sparc/sol2.h:
1864         (STDC_0_IN_SYSTEM_HEADERS): New macro.
1865         (CPP_SPEC): Remove -D__STDC__=0; it's no longer needed.
1866
1867         * fixinc.math (_MATH_H_WRAPPER):  Define at the end of the
1868         wrapper, not the start, so that if #include_next gets another
1869         instance of the wrapper, this will follow the #include_next
1870         chain until we arrive at the real <math.h>.
1871
1872         * fixproto (subdirs_made):  New var, to keep track of which
1873         subdirectories we've made (in reverse order).  At the end,
1874         attempt to rmdir them all, so that we don't create any empty
1875         directories.
1876
1877 Sun Sep 21 10:02:07 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1878
1879         * pa.c (move_operand): Respect -mdisable-indexing.
1880         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
1881
1882 Sun Sep 21 09:29:23 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1883
1884         * function.c (purge_addressof_1): Don't convert (MEM (ADDRESSOF (REG)))
1885         to (SUBREG (REG)) on big endian machines.
1886         Don't fall through to substitute the inner (REG) unchanged
1887         when the above conversion cannot be validated.
1888
1889 Sat Sep 20 16:22:06 1997  Jason Merrill  <jason@yorick.cygnus.com>
1890
1891         * frame.c (__deregister_frame): Properly check for initialized object.
1892
1893         * function.c (instantiate_virtual_regs): Instantiate 
1894         parm_reg_stack_locs.
1895
1896 Sat Sep 20 03:07:54 1997  Doug Evans  <dje@cygnus.com>
1897
1898         * sparc/sysv4.h (ASM_COMMENT_START): Delete.
1899         * sparc.h (ASM_COMMENT_START): Define.
1900         * sparc.c (output_function_prologue): Use it.
1901         (sparc_flat_output_function_{epi,pro}logue): Likewise.
1902
1903 Fri Sep 19 19:43:09 1997  Jeffrey A Law  (law@cygnus.com)
1904
1905         * loop.c (strength_reduce): Fix typo.
1906
1907         * m68k/xm-mot3300.h (alloca): Properly declare if __STDC__.
1908         * mips.h, xm-rs6000.h, rs6000/xm-sysv4.h: Likewise.
1909
1910 Fri Sep 19 20:10:30 1997  Doug Evans  <dje@cygnus.com>
1911
1912         * rtl.h (find_use_as_address): Delete accidentally added decl.
1913
1914 Fri Sep 19 08:36:16 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
1915
1916         * jump.c (thread_jumps): Check can_reverse_comparison_p before
1917         threading a reversed-condition jump.
1918
1919 Fri Sep 19 08:16:12 1997  Andrew M. Bishop <amb@gedanken.demon.co.uk>.
1920
1921         * Add support for new -dI option for cxref,
1922         * cccp.c (dump_includes): New variable.
1923         (struct directive, directive_table): Remove members angle_brackets,
1924         traditional_comments, pass_thru; all code using struct directive
1925         now uses `type' member instead.
1926         (IS_INCLUDE_DIRECTIVE_TYPE): New macro.
1927         (main, handle_directive): Add support for new -dI option.
1928         (do_ident): Avoid unnecessary alloca.
1929         (do_pragma): Avoid unnecessary comparison to newline.
1930
1931         * cpplib.h (struct cpp_options): New member dump_includes.
1932         * cpplib.c (struct directive, directive_table): Remove members
1933         traditional_comments, pass_thru; all code using struct directive
1934         now uses `type' member instead.
1935         (IS_INCLUDE_DIRECTIVE_TYPE): New macro.
1936         (handle_directive, cpp_handle_options): Add support for new -dI option.
1937
1938 Fri Sep 19 07:57:19 1997  Pat Rankin  <rankin@eql.caltech.edu>
1939
1940         * vax/xm-vms.h (expand_builtin_{extract,set}_return_addr): New macros.
1941
1942 Fri Sep 19 07:47:29 1997  Nick Burrett  <n.a.burrett@btinternet.com>
1943
1944         * cpplib.c (pcstring_used, pcfinclude): Delete unused declarations.
1945         (check_preconditions, print_containing_files, pipe_closed): Likewise.
1946         (dump_defn_1, dump_arg_n, make_undef): Likewise.
1947         (trigraph_pcp): Pre-process out decl.
1948         (quote_string): Cast CPP_PWRITTEN macro to char * for sprintf.
1949         (output_line_command): Likewise.
1950         (macro_expand): Likewise.
1951         (do_line): Cast atoi argument to char *.
1952         * genattrtab.c (simplify_by_alternatives): Pre-process out decl.
1953         * genpeep.c (gen_exp): Remove decl.
1954
1955 Fri Sep 19 07:29:40 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
1956
1957         * enquire.c (basic): Elminate dangling else warning.
1958         * except.h (struct function, save_eh_status, restore_eh_status):
1959         Don't declare.
1960         * expr.c (clear_storage): Don't return without a value.
1961         * function.h ({save,restore}_machine_status): Add proper prototype.
1962         ({save,restore}_{tree,eh,stmt,expr,emit,storage}_status): Declare.
1963         * real.h (real_value_truncate): Add proper prototype.
1964         (target_isnan, target_isinf, target_negative, debug_real): Declare.
1965         (assemble_real): Likewise.
1966         * recog.c (strict_memory_address_p, memory_address_p): Don't declare.
1967         (find_single_use_1): Add prototype.
1968         * recog.h (init_recog, init_recog_no_volatile): Declare.
1969         (check_asm_operands, constrain_operands, memory_address_p): Likewise.
1970         (strict_memory_address_p, validate_replace_rtx): Likewise.
1971         (reg_fits_class_p, find_single_use, general_operand): Likewise.
1972         (address_operand, register_operand, scratch_operand): Likewise.
1973         (immediate_operand, const_int_operand, const_double_operand): Likewise.
1974         (nonimmediate_operand, nonmemory_operand, push_operand): Likewise.
1975         (memory_operand, indirect_operand, mode_independent_operand): Likewise.
1976         (comparison_operator, offsettable_{,nonstrict_}memref_p): Likewise.
1977         (offsettable_address_p, mode_dependent_address_p, recog): Likewise.
1978         (add_clobbers): Likewise.
1979         * reload.h (strict_memory_address_p): Don't declare here.
1980         * rtl.h (struct rtvec_def): Make num_elem an integer.
1981         (PUT_NUM_ELEM): Delete cast to unsigned.
1982         (rtx_unstable_p, rtx_varies_p, reg_mentioned_p): Declare.
1983         (reg_{referenced,used_between,referenced_between}_p: Likewise.
1984         ({reg_set,modified,no_labels}_between_p, modified_in_p): Likewise.
1985         (reg_set_p, refers_to_regno_p, reg_overlap_mentioned_p): Likewise.
1986         (note_stores, rtx_equal_p, dead_or_set{,_regno}_p): Likewise.
1987         (remove_note, side_effects_p, volatile_{refs,insn}_p): Likewise.
1988         (may_trap_p, inequality_comparison_p): Likewise.
1989         * rtlanal.c (note_stores, reg_set_p): Don't declare.
1990         (rtx_addr_can_trap_p): Add prototype, make static.
1991         (reg_set_p_1): Add declaration for parameter pat.
1992         * emit-rtl.c: Include recog.h.
1993         * integrate.c: Likewise.
1994         * jump.c: Likewise.
1995         * unroll.c: Likewise.
1996         * Makefile.in (emit-rtl.o, integrate.o, jump.o, unroll.o): Depend
1997         on recog.h.
1998         
1999 Fri Sep 19 06:52:22 1997  Paul Eggert  <eggert@twinsun.com>
2000
2001         * enquire.c (SYS_FLOAT_H_WRAP): New macro.
2002         Include "float.h" if SYS_FLOAT_H_WRAP is nonzero.
2003         (f_define): New argument `req'.
2004         (main): Output `#include_next <float.h>' if wrapping float.h.
2005         (i_define, f_define): Don't output anything if wrapping float.h
2006         and if the system defn is already correct.  Put other value tests
2007         inside `#ifdef VERIFY'.
2008         (UNDEFINED): New macro.
2009         (I_MAX, I_MIN, U_MAX, F_RADIX, F_MANT_DIG, F_DIG, F_ROUNDS):
2010         Define even if VERIFY isn't defined, because SYS_FLOAT_H_WRAP may need
2011         these values.  Give them the value UNDEFINED if not already defined.
2012         (F_EPSILON, F_MIN_EXP, F_MIN, F_MIN_10_EXP, F_MAX_EXP): Likewise.
2013         (F_MAX, F_MAX_10_EXP): Likewise.
2014         (FPROP): Prefer system float.h definition of F_ROUNDS.
2015         Pass system values to f_define.
2016         * Makefile.in (FLOAT_H_TEST): New var.
2017         (float.h-nat): Make it empty if we can use the system float.h without
2018         change.
2019         (enquire.o): Define SYS_FLOAT_H_WRAP=1 if we can build a wrapper
2020         around the system <float.h>.  Remove include/float.h before compiling.
2021         (stmp-headers): Remove include/float.h if we would just be installing
2022         an empty file (which is a placeholder that stands for no file).
2023
2024         * fix-header.c: Don't munge headers for POSIX and XOPEN,
2025         as this is too error-prone.
2026         (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): New macros, normally undefed.
2027         (POSIX1_SYMBOL, POSIX2_SYMBOL): Now 0 unless ADD_MISSING_POSIX.
2028         (XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL): Now 0 unless ADD_MISSING_XOPEN.
2029         (main): Ignore symbols whose flags are 0.
2030
2031 Thu Sep 18 10:43:07 1997  Nick Clifton  <nickc@cygnus.com>
2032  
2033         * v850.c (compute_register_save_size): Correct register number.
2034         * v850.md (save_interrupt, return_interrupt): Likewise.
2035         * v850/lib1funcs.asm (save_interrupt): Likewise.
2036         (return_interrupt): Use stack pointer, not element pointer.
2037
2038 Thu Sep 18 14:22:22 1997  Jason Merrill  <jason@yorick.cygnus.com>
2039
2040         * final.c (final_scan_insn): Hand BARRIERs to dwarf2 code.
2041         * dwarf2out.c (dwarf2out_frame_debug): Pass the whole insn along.
2042         (dwarf2out_stack_adjust): A BARRIER resets the args space to 0.
2043
2044         * except.c (end_eh_unwinder): Subtract 1 from return address.
2045         * libgcc2.c (__throw): Likewise.
2046         (find_exception_handler): Don't change PC here.  Compare end with >.
2047
2048 Thu Sep 18 14:01:20 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
2049
2050         * configure.in: Make sure to create the stage* and include
2051         symbolic links in each subdirectory.
2052
2053 Thu Sep 18 13:20:37 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2054
2055         * sh/lib1funcs.asm (LOCAL): Define.
2056         (whole file): Use it.
2057
2058 Thu Sep 18 09:52:24 1997  Benjamin Kosnik  <bkoz@beauty.cygnus.com>
2059
2060         * collect2.c (collect_execute): Specify name of new file when
2061         redirecting stdout/stderr.
2062
2063 Thu Sep 18 01:47:06 1997  Jeffrey A Law  (law@cygnus.com)
2064
2065         * pa.md (reload_peepholes): Don't allow addresses with side
2066         effects for the memory operand.
2067
2068 Wed Sep 17 18:19:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
2069
2070         * libgcc2.c (find_exception_handler): Subtract one from our PC when
2071         looking for a handler, to avoid hitting the beginning of the next
2072         region.
2073
2074         * except.c (expand_builtin_set_return_addr_reg): Use force_operand.
2075
2076 Wed Sep 17 18:23:09 1997  Jeffrey A Law  (law@cygnus.com)
2077
2078         * mips/abi64.h (LONG_MAX_SPEC): Define.
2079         * mips.h (LONG_MAX_SPEC): Define.
2080         (CPP_SPEC): Include long_max_spec.
2081         (EXTRA_SPECS): Include long_max_spec.
2082
2083 Wed Sep 17 14:17:26 1997  Paul Eggert  <eggert@twinsun.com>
2084
2085         * configure.in (AC_CHECK_HEADERS): Add inttypes.h, limits.h.
2086         ({sparc,i[3456]86,powerpcle}-*-solaris2*): Use fixinc.math.
2087
2088         * fixinc.math (PWDCMD, ORIGDIR, LINKS): Remove.
2089         Remove duplicate test for missing $1.
2090         Don't cd to $INPUT.
2091         Build wrapper around system <math.h> instead of copying it;
2092         this is better if the system <math.h> is updated later by a software
2093         patch or upgrade.
2094
2095         * cccp.c (HAVE_STDLIB_H, HAVE_UNISTD_H):
2096         Do not define any more; now autoconfed.
2097         <limits.h>: Include if HAVE_LIMITS_H.
2098         (HOST_BITS_PER_WIDE_INT): Remove.
2099         (HOST_WIDE_INT): Use intmax_t or long long if available.
2100         (pcfinclude): Use size_t, not HOST_WIDE_INT, for cast from pointer;
2101         this is less likely to annoy the compiler.
2102
2103         * cexp.y (HAVE_STDLIB_H): Do not define any more; now autoconfed.
2104         <limits.h>: Include if HAVE_LIMITS_H.
2105         (HOST_WIDE_INT): Use intmax_t or long long if available.
2106         (unsigned_HOST_WIDE_INT, CHAR_BIT): New macros.
2107         (HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof.
2108         (MAX_CHAR_TYPE_MASK, MAX_CHAR_TYPE_MASK): Rewrite so that we don't use
2109         HOST_BITS_PER_WIDE_INT in a preprocessor expression, since it now
2110         uses sizeof.
2111
2112         * cppexp.c: <limits.h>: Include if HAVE_LIMITS_H.
2113         (HOST_WIDE_INT): Use intmax_t or long long if available.
2114         (CHAR_BIT): New macro.
2115         (HOST_BITS_PER_WIDE_INT): Define in terms of CHAR_BIT and sizeof.
2116         * cpplib.c: <limits.h>: Include if HAVE_LIMITS_H.
2117         (HOST_WIDE_INT): Use intmax_t or long long if available.
2118         (HOST_BITS_PER_WIDE_INT): Remove.
2119
2120 Wed Sep 17 14:11:38 1997  Jeffrey A Law  (law@cygnus.com)
2121
2122         * v850.c (construct_save_jarl): Fix thinko in last change.
2123
2124 Wed Sep 17 15:04:19 1997  Doug Evans  <dje@cygnus.com>
2125
2126         * sparc/sysv4.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Delete,
2127         use sparc.h's copies.
2128         * sparc.h (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Print ascii form
2129         as well.
2130
2131 Wed Sep 17 14:08:20 1997  Nick Burrett  <nick.burrett@btinternet.com>
2132
2133         * explow.c (allocate_dynamic_stack_space): Make allocate_stack
2134         pass 'target' as an extra operand.
2135         * expr.c (expand_builtin_apply): Use allocate_dynamic_stack_space
2136         to push a block of memory onto the stack.
2137         * alpha.md (allocate_stack): Alter in accordance with new operand.
2138         * i386.md (allocate_stack): Likewise.
2139         * rs6000.md (allocate_stack): Likewise.
2140
2141 Wed Sep 17 13:34:43 1997  Robert Lipe  <robertl@dgii.com>
2142
2143         * i386/xm-sco5.h (sys_siglist, SYS_SYGLIST_DECLARED): Define.
2144
2145 Wed Sep 17 13:27:05 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2146
2147         * Makefile.in (native): Correct dependency to auto-config.h from
2148         config.h.
2149
2150 Tue Sep 16 10:02:02 1997  Jason Merrill  <jason@yorick.cygnus.com>
2151
2152         * libgcc2.c (find_exception_handler): Not found is -1.
2153
2154         * integrate.c (expand_inline_function): Move expand_start_bindings
2155         after expanding the arguments.
2156
2157         * i386.c (ix86_prologue): Pass SYMBOL_REF to
2158         gen_prologue_{get_pc,set_got}.
2159         * i386.md (prologue_set_got, prologue_get_pc): Adjust.
2160
2161 Tue Sep 16 07:33:15 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2162
2163         * fold-const.c (make_range): Correctly handle cases of converting
2164         from unsigned to signed type.
2165
2166         * function.c (flush_addressof): New function.
2167
2168         * combine.c (num_sign_bit_copies): If asking about wider mode,
2169         treat like paradoxical subreg.
2170
2171 Tue Sep 16 00:26:52 1997  Jeffrey A Law  (law@cygnus.com)
2172
2173         * cse.c (simplify_relational_operation): If MODE specifies mode wider
2174         than HOST_WIDE_INT, high word of CONST_INT is derived from sign bit
2175         of low word.
2176
2177 Tue Sep 16 00:13:20 1997  Nick Clifton  <nickc@cygnus.com>
2178
2179         * v850.c ({register,pattern}_is_ok_for_epilogue): New functions.
2180         (construct_{save,restore}_jr, pattern_is_ok_for_prologue): Likewise.
2181         * v850.h (pattern_is_ok_for_{pro,epi}logue): New predicates.
2182         (register_is_ok_for_epilogue): Likewise.
2183         * v850.md: Replace prologue and epilogue patterns with a
2184         match_parallel pattern.
2185         * v850.c (output_move_single_unsigned): Cope with zero
2186         extending and moving between registers at the same time.
2187
2188 Mon Sep 15 22:02:46 1997  Jeffrey A Law  (law@cygnus.com)
2189
2190         * fixinc.math: New file to fix math.h on some systems.
2191         * configure.in (*-*-freebsd*, *-*-netbsd*): Use fixinc.math on these
2192         systems.
2193    
2194 Mon Sep 15 18:58:36 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2195
2196         * sched.c (update_flow_info) When looking if to set found_split_dest
2197         or found_orig_dest, look at all parts of a PARALLEL.
2198
2199         * sh.md (casesi_0): Reduce functionality, exclude insns from
2200         mova onwards.  Changed expander caller.
2201         (casesi_worker_0): New insn.
2202         (casesi_worker_0+[12]): New define_splits.
2203         (casesi_worker): Need no gen_* function.
2204         (casesi): Use casesi_worker_0 instead of casesi_worker.
2205         * sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p.
2206
2207 Mon Sep 15 11:43:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
2208
2209         Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86.
2210         * dwarf2.h: Add DW_CFA_GNU_args_size.
2211         * frame.c (execute_cfa_insn): Likewise.
2212         * dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise.
2213         (dwarf2out_args_size, dwarf2out_stack_adjust): New fns.
2214         (dwarf2out_frame_debug): If this isn't a prologue or epilogue
2215         insn, hand it off to dwarf2out_stack_adjust.
2216         (dwarf2out_begin_prologue): Initialize args_size.
2217         * frame.h (struct frame_state): Add args_size.
2218         * libgcc2.c (__throw): Use args_size.
2219         * final.c (final_scan_insn): If we push args, hand off all insns
2220         to dwarf2out_frame_debug.
2221         * defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS.
2222
2223         * dwarf2out.c (dwarf2out_frame_debug): Fix typo.
2224         Handle epilogue restore of SP from FP.
2225         * emit-rtl.c (gen_sequence): Still generate a sequence if the 
2226         lone insn has RTX_FRAME_RELATED_P set.
2227
2228         * frame.c (extract_cie_info): Handle "e" augmentation.
2229         * dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the
2230         absence of UNALIGNED_*_ASM_OP.
2231         (UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF.
2232         (output_call_frame_info): Use "e" instead of "z" for augmentation.
2233         Don't emit augmentation fields length.
2234         (dwarf2out_do_frame): Move outside of #ifdefs.
2235         * defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data
2236         opcodes.
2237
2238         * sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all.
2239         * sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here.
2240         * sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0.
2241         * sparc/sun4gas.h: New file.
2242         * configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as.
2243
2244         * collect2.c (write_c_file_stat, write_c_file_glob): Declare 
2245         __register_frame_table and __deregister_frame.
2246
2247 Mon Sep 15 19:04:34 1997  Brendan Kehoe  <brendan@cygnus.com>
2248
2249         * except.c (find_exception_handler_labels): Use xmalloc instead of
2250         alloca, since MAX_LABELNO - MIN_LABELNO can be more than 1 million
2251         in some cases.
2252
2253 Sat Sep 13 23:13:51 1997  Paul Eggert  <eggert@twinsun.com>
2254
2255         * cpplib.h (PARAMS): Fix misspelling of __STDC__.
2256         (cpp_get_token): Arg is cpp_reader *, not struct parse_marker *.
2257
2258         * cpplib.c (cpp_fatal, cpp_file_line_for_message): New decls.
2259         (ppp_hash_cleanup, cpp_message, cpp_print_containing_files): Likewise.
2260         (copy_rest_of_line): Fix typo that prevented recognition of
2261         C++ style comments.
2262         (output_line_command, special_symbol): Use %ld for long, not %d.
2263
2264         * cppexp.c (xrealloc): Declare first arg as void *, not char *.
2265         (cpp_lex): Cast 2nd arg of cpp_parse_escape from const char ** to
2266         char **.
2267
2268 Fri Sep 12 16:54:04 1997  Doug Evans  <dje@cygnus.com>
2269
2270         * bitmap.h (bitmap_print): Don't use STDIO_PROTO.
2271
2272 Fri Sep 12 13:49:58 1997  Jason Merrill  <jason@yorick.cygnus.com>
2273
2274         * except.h: Prototype dwarf2 hooks.
2275         * expr.c: Adjust.
2276
2277 Thu Sep 11 18:36:51 1997  Jim Wilson  <wilson@cygnus.com>
2278
2279         * local-alloc.c (contains_replace_regs): New function.
2280         (update_equiv_regs): When adding a REG_EQUIV note for a set of a MEM,
2281         verify that there is no existing REG_EQUIV note, and add a call to
2282         contains_place_regs.
2283
2284         * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Add __HPUX_ASM__ versions.
2285
2286 Wed Sep 10 21:49:38 1997  Michael Meissner  <meissner@cygnus.com>
2287
2288         * toplev.c (rest_of_compilation): For passes starting with
2289         flow_analysis, use print_rtl_with_bb instead of print_rtl.
2290         * print-rtl.c (print_rtl_single): Print a single rtl value to a
2291         file.
2292         * flow.c (print_rtl_with_bb): Print which insns start and end
2293         basic blocks.  For the start of a basic block, also print the live
2294         information.
2295         * bitmap.h (EXECUTE_IF_AND_IN_BITMAP): New macro, to iterate over
2296         two bitmaps ANDed together.
2297         (bitmap_print): Declare.
2298         * bitmap.c (function_obstack): Don't declare any more.
2299         (bitmap_obstack): Obstack for allocating links from.
2300         (bitmap_obstack_init): New static to say whether to initialize
2301         bitmap_obstack.
2302         (bitmap_element_allocate): Use bitmap_obstack to allocate from.
2303         (bitmap_release_memory): Free all memory allocated from
2304         bitmap_obstack.
2305         (toplevel): Conditionally include stdlib.h.
2306         (free): Provide a declaration if NEED_DECLARATION_FREE.
2307
2308         * basic-block.h (EXECUTE_IF_AND_IN_REG_SET): New macro, invoke
2309         EXECUTE_IF_AND_IN_BITMAP.
2310
2311 Wed Sep 10 17:53:33 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2312
2313         * sh.c (addr_diff_vec_adjust): Properly propagate considered
2314         address changes through alignments.
2315
2316 Wed Sep 10 13:10:52 1997  Per Bothner  <bothner@cygnus.com>
2317
2318         * stor-layout.c (layout_type):  Simplify special BOOLEAN_TYPE handling.
2319
2320 Wed Sep 10 12:59:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
2321
2322         * expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum()
2323         if DWARF2_UNWIND_INFO.
2324
2325 Wed Sep 10 15:43:10 1997  Jason Merrill  <jason@yorick.cygnus.com>
2326
2327         * cplus-dem.c (demangle_fund_type): Change "complex" to "__complex".
2328
2329 Wed Sep 10 11:13:53 1997  Paul Eggert  <eggert@twinsun.com>
2330
2331         Handle `extern int errno;' correctly when fixing <errno.h>.
2332         * fix-header.c (recognized_extern): Use name_length when comparing.
2333         * scan-decls.c (scan_decls): Don't ignore the first CPP_NAME in a
2334         declaration, so that we see the `extern' in `extern int errno;'.
2335
2336 Wed Sep 10 11:49:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
2337
2338         Add support for exception handling using DWARF 2 frame unwind info.
2339         * libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr,
2340         next_stack_level, in_reg_window): Helper fns.
2341         (__throw): Implement for DWARF2_UNWIND_INFO.
2342
2343         * expr.c (expand_builtin): Handle builtins used by __throw.
2344         * tree.h (enum built_in_function): Add builtins used by __throw.
2345         * c-decl.c (init_decl_processing): Declare builtins used by __throw.
2346         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw.
2347         * except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw.
2348         (expand_builtin_extract_return_addr): Likewise.
2349         (expand_builtin_frob_return_addr): Likewise.
2350         (expand_builtin_set_return_addr_reg): Likewise.
2351         (expand_builtin_eh_stub): Likewise.
2352         (expand_builtin_set_eh_regs): Likewise.
2353         (eh_regs): Choose two call-clobbered registers for passing back values.
2354
2355         * frame.c, frame.h: New files for parsing dwarf 2 frame info.
2356         * Makefile.in (LIB2ADD): New variable.  Add $(srcdir)/frame.c.
2357         (libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS)
2358         (stmp-multilib): Likewise.
2359         ($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions.
2360
2361         * except.c: #include "defaults.h".
2362         (exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO.
2363         (emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO.
2364         (register_exception_table_p): New fn.
2365         (start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO.
2366         (end_eh_unwinder): Likewise.
2367
2368         * crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP, 
2369         call __register_frame and __deregister_frame as needed.
2370         * varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP.
2371         * dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro.  Check
2372         EH_FRAME_SECTION_ASM_OP.
2373         * sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define.
2374         * mips/iris6.h: (EH_FRAME_SECTION_ASM_OP): Define.
2375         (LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols.
2376
2377         * dwarf2out.c (output_call_frame_info): If no support for
2378         EXCEPTION_SECTION, mark the start of the frame info with a
2379         collectable tag.
2380         * collect2.c (frame_tables): New list.
2381         (is_ctor_dtor): Recognise frame entries.
2382         (scan_prog_file): Likewise.
2383         (main): Pass -fno-exceptions to sub-compile.  Also do collection
2384         if there are any frame entries.
2385         (write_c_file_stat): Call __register_frame_table and
2386         __deregister_frame as needed.
2387         (write_c_file_glob): Likewise.
2388
2389         * defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported.  
2390         Also require unaligned reloc support.
2391         * sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2392         UNALIGNED_DOUBLE_INT_ASM_OP): Define here.
2393         * sparc/sysv4.h: Not here.
2394
2395         * toplev.c (compile_file): Call dwarf2out_frame_{init,finish}.
2396         * dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init.
2397         (dwarf2out_finish): Don't call dwarf2out_frame_finish.
2398
2399         * libgcc2.c (L_eh): Reorganize, moving code shared by different
2400         EH implementations to the top.
2401         (find_exception_handler): Split out.  Start from 0.  Compare against
2402         end with >=.
2403         (__find_first_exception_table_match): Use it.
2404         * except.c (output_exception_table): Don't do anything if there's
2405         no table.  Don't output a first entry of zeroes.
2406         (eh_outer_context): Adjust properly.
2407         (add_eh_table_entry): Use xrealloc.
2408         * toplev.c (compile_file): Just call output_exception_table.
2409
2410 Wed Sep 10 11:49:20 1997  Jason Merrill  <jason@yorick.cygnus.com>
2411
2412         * varasm.c (save_varasm_status): Take the target function context.
2413         * function.c (push_function_context_to): Pass it in.
2414
2415         * rtl.def (ADDRESSOF): Add new field for original regno.
2416         * function.c (put_reg_into_stack and callers): Add original_regno
2417         argument.
2418         (gen_mem_addressof): Remember the original regno.
2419         * rtl.def (INLINE_HEADER): Add new field for parm_reg_stack_loc.
2420         * rtl.h (PARMREG_STACK_LOC): New macro.
2421         (ADDRESSOF_REGNO): New macro.
2422         * emit-rtl.c (gen_inline_header_rtx): Add parm_reg_stack_loc.
2423         * function.c (max_parm_reg, parm_reg_stack_loc): No longer static.
2424         (assign_parms): Allocate parm_reg_stack_loc on saveable obstack.
2425         * integrate.c (output_inline_function): Set max_parm_reg and
2426         parm_reg_stack_loc from inline header.
2427         (initialize_for_inline): Pass in parm_reg_stack_loc.
2428
2429 Wed Sep 10  11:30:36 1997  Stan Cox  <coxs@dg-rtp.dg.com>
2430
2431         * i386.c (override_options): Don't set TARGET_SCHEDULE_PROLOGUE
2432         (ix86_expand_prologue, ix86_expand_epilogue): Emit rtl by default.
2433         
2434 Wed Sep 10  11:30:36 1997  Jason Merrill  <jason@cygnus.com>
2435         
2436         * i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case.
2437
2438 Wed Sep 10 08:48:44 1997  Jeffrey A Law  (law@cygnus.com)
2439
2440         * xm-m88k.h (USG): Only define if it hasn't already been defined.
2441
2442         * i386.h (CPP_CPU_DEFAULT): Avoid using #elif.
2443
2444         * expr.c (do_jump_by_parts_equality_rtx): Don't clobber the
2445         source operand when performing an IOR of the parts.
2446
2447         * expr.c (emit_block_move): Always return a value.
2448
2449         * expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
2450         when clearing non-BLKmode data.
2451
2452         * final.c (shorten_branches): Remove last change for ADDR_VEC
2453         alignment computation.   During first pass, assume worst
2454         possible alignment for ADDR_VEC and ADDR_VEC_DIFF insns.
2455
2456 Wed Sep 10 09:33:19 1997  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
2457
2458         * explow.c (emit_stack_save, emit_stack_restore): Correctly
2459         handle HAVE_{save,restore}_stack_* evaluating to 0.
2460
2461 Wed Sep 10 09:27:45 1997  Weiwen Liu  <liu@hepvms.physics.yale.edu>
2462
2463         * Makefile.in (sdbout.o): Add dependency on insn-config.h.
2464
2465 Wed Sep 10 09:24:56 1997  Nick Burrett  <n.a.burrett@btinternet.com>
2466
2467         * sched.c (birthing_insn_p): Rename prototype decl from birthing_insn.
2468         * final.c (leaf_renumber_regs, alter_cond): Declare prototype only
2469         if LEAF_REGISTERS is defined.
2470         * reload1.c (merge_assigned_reloads): Declare prototype only if
2471         SMALL_REGISTER_CLASSES is defined.
2472         * loop.c (replace_call_address): Pre-process out prototype decl.
2473         * real.c (dectoe, etodec, todec): Declare proto if DEC is defined
2474         (ibmtoe, etoibm, toibm): Declare proto if IBM is defined
2475
2476 Wed Sep 10 09:13:51 1997  Manfred Hollstein  <manfred@s-direktnet.de>
2477
2478         * configure.in (out_file): Emit definition to config.status.
2479
2480 Wed Sep 10 08:37:56 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2481
2482         * final.c (shorten_branches): Fix alignment calculation.
2483         Don't count the lengths of deleted instructions.
2484
2485 Wed Sep 10 08:34:11 1997  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2486
2487         * cpplib.c (cpp_start_read): Make known_suffixes static.
2488
2489 Wed Sep 10 08:27:05 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
2490
2491         * m68k.c (print_operand_address) [MOTOROLA]: When compiling
2492         with -fpic (not -fPIC) force the GOT offset to 16 bits.
2493
2494 Wed Sep 10 08:22:51 1997  Christian Iseli  <chris@lslsun.epfl.ch>
2495
2496         * expr.c (convert_move): Add missing use of trunctqtf2.
2497
2498 Wed Sep 10 08:17:10 1997  Torbjorn Granlund  <tege@pdc.kth..se>
2499
2500         * except.c (eh_outer_context): Do masking using expand_and.
2501
2502 Wed Sep 10 07:52:21 1997  Joel Sherrill  <joel@OARcorp.com>
2503
2504         * pa/rtems.h (subtarget_switches): Removed -mrtems subtarget_switch.
2505         * configure.in (sh*-*-rtems*): New target.
2506         * sh.h (TARGET_SWITCHES: Call SUBTARGET_SWITCHES.
2507         (SUBTARGET_SWITCHES): Provide default definition.
2508
2509 Wed Sep 10 06:33:47 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2510
2511         * i386/mingw32.h ({LIB,LINK}_SPEC): Check for -mwindows, not -windows.
2512
2513         * alpha/vms.h (ASM_OUTPUT_SECTION): Clear NAME if overlaid.
2514
2515         * c-parse.in (unary_expr): Test DECL_C_BIT_FIELD, not DECL_BIT_FIELD.
2516         * c-typeck.c (default_conversion): Likewise.
2517
2518         * tree.c (contains_placeholder_p, substitute_in_expr):
2519         Handle placeholders inside args of CALL_EXPR (and hence in TREE_LIST).
2520
2521         * expr.c (expand_expr, case PLACEHOLDER_EXPR): Check all
2522         expressions in placeholder_list.
2523
2524 Tue Sep  9 18:10:30 1997  Doug Evans  <dje@cygnus.com>
2525
2526         Add port done awhile ago for the ARC cpu.
2527         * arc.h, arc.c, arc.md, t-arc, xm-arc.h: New files.
2528         * arc/initfini.c, arc/lib1funcs.asm: New files.
2529         * ginclude/va-arc.h: New file.
2530         * ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
2531         * ginclude/varargs.h: Likewise.
2532         * Makefile.in (USER_H): Add va-arc.h.
2533         * configure.in (arc-*-elf*): Recognize.
2534         * longlong.h: Add ARC support.
2535
2536 Tue Sep  9 01:30:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
2537
2538         * mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of
2539         write_symbols.
2540
2541 Mon Sep  8 15:15:11 1997  Nick Clifton  <nickc@cygnus.com>
2542
2543         * v850.h (ASM_SPEC): Pass on target processor.
2544         (CPP_PREDEFINES): Only define if not already specified.
2545         (TARGET_VERSION): Only define if not already specified.
2546         (MASK_CPU, MASK_V850, MASK_DEFAULT): Bits to specify target
2547         processor. 
2548         (EXTRA_SWITCHES): Extra entries in the switches array.
2549         (TARGET_DEFAULT): Set default target processor.
2550
2551 Tue Sep  9 09:50:02 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2552
2553         * configure.in (alpha*-*-*): Support pca56 and ev6.
2554
2555         * varasm.c (named_section): Set in section after writing directive.
2556         * dwarf2out.c (output_call_frame_info): Call named_section.
2557
2558 Mon Sep  8 16:32:43 1997  Jason Merrill  <jason@yorick.cygnus.com>
2559
2560         * mips.c (function_prologue): Set up the CFA when ABI_32.
2561
2562         * sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG
2563         for dwarf2 unwind info.
2564         (output_function_prologue, sparc_flat_output_function_prologue): Same.
2565
2566         * final.c (final_end_function): Check dwarf2out_do_frame instead
2567         of DWARF2_DEBUG for dwarf2 unwind info.
2568         (final_scan_insn): Likewise.
2569         (final_start_function): Likewise.  Initialize dwarf2 frame debug here.
2570         (final): Not here.
2571
2572         * expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if
2573         count > 0.
2574
2575         * varasm.c (exception_section): Check EXCEPTION_SECTION first.
2576
2577 Mon Sep  8 14:58:07 1997  Jim Wilson  <wilson@cygnus.com>
2578
2579         * toplev.c (main): Change #elif to #else/#ifdef
2580
2581         * i386/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define to -fPIC.
2582
2583 Mon Sep  8 08:45:19 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2584
2585         * alpha.h (processor_type): Add EV6.
2586         ({TARGET,MASK}_BWX): Renamed from _BYTE_OPS.
2587         ({TARGET,MASK}_{CIX,MAX}): New macros.
2588         (MASK_CPU_EV5): Change bit number.
2589         (MASK_CPU_EV6, {TARGET,MASK}_SUPPORT_ARCH): New macros.
2590         (TARGET_OPTIONS): Rename "byte" to "bwx" and add "cix" and "max".
2591         (MINIMUM_ATOMIC_ALIGNMENT): Rename TARGET_BYTE_OPS to TARGET_BWX.
2592         (SECONDARY_{INPUT,OUTPUT}_RELOAD_CLASS, ASM_FILE_START): Likewise.
2593         (SECONDARY_MEMORY_NEEDED): Not needed if CIX.
2594         (ASM_FILE_START): Only write if TARGET_SUPPORT_ARCH.
2595         Add "pca56" and "ev6".
2596         * alpha.c (input_operand): Rename TARGET_BYTE_OPS to TARGET_BWX.
2597         (override_options): Likewise; also add new CPU types and subset flags.
2598         * alpha.md: Rename TARGET_BYTE_OPS to TARGET_BWX.
2599         (cpu attr): Add "ev6".
2600         (ev5 function units): Use for ev6 as well, for now.
2601         (ffsdi2): New define_expand and define_insn, for TARGET_CIX.
2602         (sqrt[sd]f2): New patterns, for TARGET_CIX.
2603         (s{min,max}[qh]i3): New patterns, for TARGET_MAX.
2604         (movsi): Use ldf/lsf when appropriate, instead of lds/sts.
2605         (mov[sd]i): Add use of ftio/itof for TARGET_CIX.
2606         * configure.in (alpha*-dec-osf*): Set MASK_SUPPORT_ARCH for >= 4.0B.
2607         Rename MASK_BYTE_OPS to MASK_BWX.
2608
2609         * i386/mingw32.h (STANDARD_INCLUDE_DIR): New macros.
2610         (STARTFILE_SPEC, PATH_SEPARATOR): Likewise.
2611
2612         * configure.in (AC_PROG_LN_S): Remove; unneeded.
2613         (*cygwin32*, *mingw32*): Default prefix to /usr.
2614         (symbolic_link): Set to "cp -p" if no "ln -s"; add AC_SUBST.
2615         (configure.lang call): Change remaining use of config.h to auto-conf.h.
2616
2617         * Makefile.in (LN): Add new symbol.
2618         (FLAGS_TO_PASS): Pass it down.
2619         (stage[1-4]-start): Use $(LN), not "ln -s".
2620
2621         * mips.h (flag_omit_frame_pointer, frame_pointer_needed, optimize):
2622         Remove declarations: no longer needed.
2623         * pyr.md: Remove unneeded declarations of `optimize'.
2624         * h8300.md: Likewise.
2625         * sparc.c (dwarf2out_cfi_label): Add declaration.
2626         (save_regs, output_function_prologue): Remove cast for it.
2627         (sparc_flat_{save_restore,output_function_prologue): Likewise.
2628         ({save,restore}_regs): No longer inline.
2629
2630 Mon Sep  8 03:08:35 1997  Jim Wilson  <wilson@cygnus.com>
2631
2632         * i960.h (LINK_SPEC): Handle -mjX and -mrp switches.
2633
2634         * mips.md (nonlocal_goto_receiver): Define.
2635
2636         * unroll.c (calculate_giv_inc): Handle increment with code PLUS.
2637
2638         * alpha.h (PREFERRED_RELOAD_CLASS): Return NO_REGS if NO_REGS
2639         is passed in.
2640         * emit-rtl.c (gen_lowpart_common): Add code to convert CONST_INT to
2641         SFmode for 64 bit hosts.
2642
2643         * profile.c (output_arc_profiler): Verify next_insert_after is an
2644         INSN before and after skipping a stack pop.  Check next_insert_after
2645         for non NULL before deferencing it.
2646         (output_func_start_profiler): Set DECL_EXTERNAL to zero.
2647
2648         * va-mips.h: Add _VA_MIPS_H_ENUM ifdef/define/endif.
2649
2650         * m68k.md (iorsi_zexthi_ashl16): Disable.
2651
2652         * varasm.c (mark_constants): Don't look inside CONST_DOUBLEs.
2653
2654 Sun Sep  7 18:30:46 1997  Jason Merrill  <jason@yorick.cygnus.com>
2655
2656         * dwarf2out.c (dwarf2out_frame_debug): Assume that in a PARALLEL
2657         prologue insn, only the first elt is significant.
2658         (output_call_frame_info): For exception handling, always use 4-byte
2659         fields as specified by the dwarf2 spec.
2660         Don't skip trivial FDEs.
2661
2662 Sun Sep  7 03:35:28 1997  Paul Eggert  <eggert@twinsun.com>
2663
2664         * fix-header.c (std_include_table): Remove bogus entry for popen
2665         under stdio.h with ANSI_SYMBOL.  popen is a POSIX2_SYMBOL.
2666
2667 Fri Sep  5 17:19:58 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2668
2669         * sh.md (movsf_ie+1): Typo fix.
2670
2671 Fri Sep  5 10:08:44 1997  Jeffrey A Law  (law@cygnus.com)
2672
2673         * v850: New directory for v850 port.
2674         * v850/lib1funcs.asm: New file.
2675         * t-v850, v850.c, v850.h, v850.md, xm-v850.h: New files.
2676         * ginclude/va-v850.h: New file.
2677         * varargs.h, stdarg.h: Include va-mn10200.h.
2678         * configure.in (mn10200-*-*): New target.
2679         * Makefile.in (USER_H): Add va-mn10200.h. 
2680
2681         * xm-svr4.h (SYS_SIGLIST_DECLARED): Define.
2682         * mips/xm-news.h (SYS_SIGLIST_DECLARED): Define.
2683         * mips/xm-sysv4.h (SYS_SIGLIST_DECLARED): Define.
2684
2685 Fri Sep  5 03:50:15 1997  David Edelsohn  <edelsohn@mhpcc.edu>
2686
2687         * rs6000.md (fma patterns): Extend previous -mno-fused-madd
2688         patch to DFmode patterns inadvertently omitted.
2689
2690 Thu Sep  4 20:06:02 1997  Christian Kuehnke  <Christian.Kuehnke@arbi.Informatik.Uni-Oldenburg.DE>
2691
2692         * sparc.md: Add ultrasparc scheduling support.
2693         * sparc.h (RTX_COSTS): For MULT give v9 a cost of 25 insns.
2694
2695 Wed Sep  3 20:56:24 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2696
2697         * sh.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Define.
2698
2699 Wed Sep  3 20:52:07 1997  Joel Sherrill  <joel@OARcorp.com>
2700
2701         * sh/rtems.h: New file.
2702
2703 Wed Sep 3  17:30:36 1997  Stan Cox  <coxs@dg-rtp.dg.com>
2704
2705         * reg-stack.c (subst_stack_regs): Pop the stack register for a
2706         computed goto which sets the same stack register.
2707
2708 Wed Sep 3  17:30:36 1997  Jim Wilson  <wilson@cygnus.com>
2709
2710         * i386.c (ix86_expand_epilogue): Emit blockage instruction when pic.
2711         
2712 Wed Sep  3 11:25:19 1997  Jeffrey A Law  (law@cygnus.com)
2713
2714         * pa.md (reload peepholes): Fix typo in last change.
2715
2716 Wed Sep  3 03:02:02 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2717
2718         * sh.md (movsi_ie): Move t/r alternative after r/r alternative.
2719
2720 Tue Sep  2 18:41:55 1997  Jeffrey A Law  (law@cygnus.com)
2721
2722         * cccp.c (sys_errlist): Remove special 4.4bsd declaration.
2723         * collect2.c (sys_errlist): Likewise.
2724         * cpplib.c (sys_errlist): Likewise.
2725         * gcc.c (sys_errlist): Likewise.
2726         * protoize.c (sys_errlist): Likewise.
2727         * configure.in: Check for strerror.
2728         * xm-freebsd.h (HAVE_STRERROR): Remove definition.
2729         * xm-gnu.h (HAVE_STRERROR): Likewise.
2730         * xm-linux.h (HAVE_STRERROR): Likewise.
2731         * xm-netbsd.h (HAVE_STRERROR): Likewise.
2732         * alpha/xm-linux.h (HAVE_STRERROR): Likewise.
2733         * i386/xm-bsd386.h (HAVE_STRERROR): Likewise.
2734         * i386/xm-cygwin32.h (HAVE_STRERROR): Likewise.
2735         * i386/xm-dos.h (HAVE_STRERROR): Likewise.
2736         * i386/xm-mingw32.h (HAVE_STRERROR): Likewise.
2737         * pa/xm-pa.h (HAVE_STRERROR): Likewise.
2738         * pa/xm-papro.h (HAVE_STRERROR): Likewise.
2739         * rs6000/xm-cygwin32.h (HAVE_STRERROR): Likewise.
2740         * rs6000/xm-sysv4.h (HAVE_STRERROR): Likewise.
2741
2742         * collect2.c (SYS_SIGLIST_DECLARED): Renamed from
2743         DONT_DECLARE_SYS_SIGLIST.
2744         * mips-tfile.c (SYS_SIGLIST_DECLARED): Likewise.
2745         * xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition.
2746         * xm-freebsd.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
2747         * alpha/xm-linux.h (DONT_DECLARE_SYS_SIGLIST): Delete definition.
2748         * i386/xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
2749         * i386/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
2750         * mips/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
2751         * rs6000/xm-sysv4.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
2752         * sparc/xm-sol2.h (DONT_DECLARE_SYS_SIGLIST): Likewise.
2753         * configure.in: Check for sys_siglist declaration.
2754
2755         * Makefile.in (libgcc2.a): Add missing "else true" clause.
2756         (stage{1,2,3,4}-start): Likewise.
2757
2758         * mn10200.h (INITIALIZE_TRAMPOLINE): PC relative instructions
2759         are relative to the next instruction, not the current instruction.
2760
2761 Tue Sep  2 14:15:32 1997  Jason Merrill  <jason@yorick.cygnus.com>
2762
2763         * toplev.c (xrealloc): Handle null ptr.
2764
2765 Tue Sep  2 13:42:38 1997  Paul N. Hilfinger  <hilfingr@CS.Berkeley.EDU>
2766
2767         * fixincludes: Permits spaces between # and define.  Discard C++
2768         comments in sys/pci.h on HP/UX 10.20.
2769
2770 Tue Sep  2 09:28:31 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2771
2772         * rs6000.h (ROUND_TYPE_ALIGN): Don't blow up if no fields in record.
2773
2774 Tue Sep  2 00:19:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
2775
2776         * expr.c (expand_expr, case COND_EXPR): It's OK to merge two
2777         SAVE_EXPRs.
2778
2779 Mon Sep  1 23:36:45 1997  Jeffrey A Law  (law@cygnus.com)
2780
2781         * pa.c (restore_unscaled_index_insn_codes): New function.
2782         (record_unscaled_index_insn_codes): Likewise.
2783         (output_function_prologue): Call restore_unscaled_index_insn_codes.
2784         (output_function_epilogue): Free memory for unscaled_index_insn_codes.
2785         (pa_reorg): Call record_unscaled_index_insn_codes.
2786
2787 Mon Sep  1 14:46:09 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2788
2789         * sh.md (casesi_jump_1, casesi_jump2): Generate expanders.
2790         (casesi_jump): Delete.
2791         (casesi) Use gen_casesi_jump_1 and gen_casesi_jump2 instead of
2792         gen_casesi_jump.
2793
2794 Mon Sep  1 14:36:36 1997  Paul Eggert  <eggert@twinsun.com>
2795
2796         * sparc/sol2.h (CPP_SPEC): Add -D__STDC__=0 unless -ansi
2797         or -traditional, for compatibility with Sun's practice.
2798         * i386/sol2.h (CPP_SPEC), rs6000/sol2.h (CPP_SPEC): Likewise.
2799         * configure.in ({sparc,i[3456]86,powerpcle}-*-solaris2*):
2800         Set fixincludes=Makefile.in.
2801
2802 Mon Sep  1 14:08:23 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
2803
2804         * Makefile.in (config.status): Depend on version.c.
2805
2806 Mon Sep  1 13:48:02 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2807
2808         * acconfig.h: Remove include of config2.h.
2809         * configure.in: Build auto-config.h, not config.h, from autoconf data.
2810         Add auto-conf.h in front of all other host_xm_file entries.
2811         Make config.h, not config2.h, from host_xm_file.
2812         * Makefile.in (auto-config.h): New rule; was config.h.
2813         (distclean): Remove auto-config.h, not config2.h.
2814
2815         * expr.c (do_jump_by_parts_equality_rtx): Try to do by IOR of
2816         all the words.
2817
2818 Mon Sep  1 13:07:36 1997  Bob Manson  <manson@charmed.cygnus.com>
2819
2820         * sparc/t-vxsparc (TARGET_LIBGCC2_CFLAGS): New definition.
2821         (LIBGCC2_CFLAGS): Deleted.
2822         * m68k/t-vxworks68: Likewise.
2823         * i960/t-vxworks960: Likewise.
2824         * a29k/t-vx29k: Likewise.
2825
2826 Sun Aug 31 17:12:27 1997   Paul Eggert  <eggert@twinsun.com>
2827
2828         * real.c (EMULONG): Correct typo in spelling of HOST_BITS_PER_LONGLONG.
2829
2830 Fri Aug 29 16:13:51 1997  Jeffrey A Law  (law@cygnus.com)
2831
2832         * mips.md (movstrsi_internal[23]): Set insn type to "store" to
2833         get more accurate schedules.
2834
2835         * pa.md (reload_peepholes): Make sure operand is a REG before
2836         examining REGNO.  Allow general registers too.
2837
2838 Thu Aug 28 12:34:56 1997  Doug Evans  <dje@seba.cygnus.com>
2839
2840         * reload1.c (reload_cse_no_longer_dead): Don't pass incremented regno
2841         to SET_HARD_REG_BIT, it can be evaluated twice.
2842
2843 Wed Aug 27 20:15:53 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
2844
2845         * sh/elf.h: (LINK_SPEC): Use shlelf.
2846         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX, ASM_FILE_START): Redefine.
2847         * sh/lib1funcs.asm (___ashrsi3, ___ashlsi3, ___lshrsi3):
2848         Truncate shift count.  Use braf if not SH1.
2849         * sh.c (sfunc_uses_reg): No longer static.
2850         Check for SImode inside the USE.
2851         (shiftcosts, expand_ashiftrt, shl_sext_kind): 
2852         Use SH_DYNAMIC_SHIFT_COST.
2853         (sh_dynamicalize_shift_p, output_branchy_insn): New functions.
2854         (output_ieee_ccmpeq, mova_p, cache_align_p, fixup_aligns): Likewise.
2855         (branch_offset, short_cbranch_p, med_branch_p): Likewise.
2856         (braf_branch_p, align_length, fixup_addr_diff_vecs): Likewise.
2857         (addr_diff_vec_adjust, get_dest_uid, gen_far_branch): Likewise.
2858         (split_branches, regs_used, gen_block_redirect): Likewise.
2859         (from_compare): Can't compare non-zero DImode constant directly.
2860         Emit special code for TARGET_SH3E floating point with code == GE.
2861         Force 0.0 into a register for SH3E.
2862         (print_operand): Add ','.
2863         Emit the actual comparison instruction.
2864         (sh_builtin_saveregs): Save floating point registers in order that
2865         allows pre-decrement.
2866         (find_barrier): New arguments num_mova and mova.  Changed caller.
2867         When rewinding to before a mova, also restore the last found barrier.
2868         Branch is now known to be shortened.
2869         Prefer barriers where no new alignment is needed.
2870         More generic alignment for cache lines.
2871         Add checks for pieces of code that use more table space than their
2872         own size.
2873         Fix up the barrier we return so that the alignment will always be
2874         after the table.
2875         Remove limit adjustments for table alignment.
2876         Handle PARALLELs correctly.
2877         (machine_dependent_reorg): Add extra pass to split insns.
2878         Don't scan instructions twice for broken moves.
2879         Calculate insn length, call fixup_addr_diff_vecs.
2880         Call split_branches.
2881         Add alignment for loops and after BARRIERs.
2882         Initialize max_uid_before_fixup_addr_diff_vecs.
2883         Advance mdep_reorg_phase.
2884         Clear insn_addresses.
2885         (output_far_jump): Use braf and/or pre-allocated scratch register
2886         when possible.
2887         (expand_ashiftrt): Truncate shift count.
2888         (push_regs): Push PR last.
2889         (sh_expand_epilogue): Pop PR first.
2890         (code_for_indirect_jump_scratch, mdep_reorg_phase): New variables.
2891         (uid_align, uid_align_max): Likewise.
2892         (max_uid_before_fixup_addr_diff_vecs, sh_addr_diff_vec_mode): Likewise.
2893         (braf_label_ref_operand): New predicate.
2894         (initial_elimination_offset): calculate offset from
2895         RETURN_ADDRESS_POINTER_REGNUM starting with total_saved_regs_space.
2896         (output_branch): Expect out-of-range condbranches to have been split.
2897         * sh.md (rotlsi3_16): Named insn.
2898         (rotlsi3): Rewritten to use superoptimizer patterns.
2899         (adddi3, subdi3, ashrsi2_16, ashrsi2_31): Always split.
2900         (movsi_i, movsi_ie): replace t/z alternative with t/r alternative.
2901         Use pcload_si and load_si insn types.
2902         (adddi3+1, subdi3+1, ashrsi2_16+1, ashrsi2_31+1) New define_splits.
2903         (addc, subc, ashlsi_c): New insns.
2904         (attribute "type"): New values dyn_shift, load_si, pcload_si, fmove,
2905         jump_ind, arith3 and arith3b.
2906         (function_unit "fp"): Take fmove into account.
2907         (function_unit "int"): Uses one cycle for !dyn_shift.
2908         (function_unit "memory"): Special case for load_si and pcload_si.
2909         (attribute "in_delay_slot): handle pcload_si.
2910         (cmpgtdi_t, cmpgedi_t, cmpgeudi_t, cmpgtudi_t): Type arith3.
2911         (cmpsi+1, cmpeqdi_t) Type arith3b.
2912         (movsf_ie, alternatives f/fGH/X, f/y/X, y/f/X): Type fmove.
2913         (extendsidi2): Delete.
2914         (cmpeqsi_t-2): Delete. (Redundant with movt.)
2915         (*rotlhi3_8) Name.
2916         (iorsi3, rotlsi3_1, rotlsi3_31, rotlsi3_16, (*rotlhi3_8): Type arith.
2917         (ashlsi3_k, ashlhi3_ki, ashrsi2_16, ashrsi2_31, lshrsi3_m): Likewise.
2918         (lshrsi3_k, lshrhi3_m, lshrhi3_k, ashldi3_k, lshrdi3_k): Likewise.
2919         (ashrdi3_k, xtrct_left, xtrct_right, dect, mova, movt): Likewise.
2920         (movt): Likewise.
2921         (ashlsi3_d, ashrsi3_d, lshrsi3_d): Type dyn_shift.
2922         (indirect_jump_scratch, *casesi_jump_1, *casesi_jump_2): Type jump_ind.
2923         (ashlsi3, ashlsi3_n, lshrsi3, lshrsi3_n): Use sh_dynamicalize_shift_p.
2924         (movsf_ie+1, movsf_ie+2): Exchange.
2925         (cmpeqdi_t-1, cmpeqdi_t, cmpgtdi_t, cmpgedi_t): New insns.
2926         (cmpgeudi_t, cmpgtudi_t, movsi_i_lowpart, ieee_ccmpeqsf_t): Likewise.
2927         (cmpdi, movnegt): New define_expands.
2928         (movsi_ie): Add y,y alternative.
2929         (sge): Use it for ! TARGET_IEEE.  Use special code for TARGET_IEEE.
2930         (sle): Use sge.
2931         (align_4, casesi_jump): Now define_expand.
2932         (casesi_0, addr_diff_vec_adjust, align_log): New patterns.
2933         (*casesi_jump_[12]): Likewise.
2934         (casesi): Use casesi_0 and casesi_jump.
2935         (casesi_worker): Depends on the mode used for the table.
2936         (define_delay for cbranches):  Test TARGET_SH2.
2937         Changed all callers of from_compare.
2938         (attribute "length"): Take use of braf and scratch registers into
2939         account.
2940         (indirect_jump_scratch, block_branch_redirect): New patterns.
2941         (jump): Call output_far_jump for any jump larger than 4 bytes.
2942         (inverse_branch_true, inverse_branch_false): Remove.
2943         (bne, blt, ble, bltu, bleu): Canonicalize.
2944         (attribute "cpu"): Remove "sh0" alternative.
2945         * sh.h (ADJUST_COST): Lower cost of non-address sfunc dependencies.
2946         Adjust cost of load_si / pcload_si insns when not used for call.
2947         (enum reg_class): Move GENERAL_REGS after FPUL_REGS.
2948         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
2949         (REGISTER_MOVE_COST): Add costs for fpul <-> mac, pr moves.
2950         Fix to match default cost in regclass.  Move to T reg not costly.
2951         When checking for GENERAL_REGS, check for R0_REGS too.
2952         (INITIALIZE_TRAMPOLINE): Include code for constant parts.
2953         (SHIFT_COUNT_TRUNCATED): Not true for TARGET_SH3.
2954         (CPP_SPEC): Define __sh1__ if no specific cpu is selected.
2955         (FUNCTION_BOUNDARY): Align to cache line boundary.
2956         (optimize, sh_addr_diff_vec_mode, machine_dependent_reorg): Declare.
2957         (addr_diff_vec_adjust, code_for_indirect_jump_scratch): Declare.
2958         (short_cbranch_p, med_branch_p, braf_branch_p, align_length): Declare.
2959         (output_ieee_ccmpeq, output_branchy_insn, sfunc_uses_reg): Declare.
2960         (ASM_OUTPUT_ADDR_DIFF_ELT): Depends on sh_addr_diff_vec_mode.
2961         (PREDICATE_CODES): Add braf_label_ref_operand and register_operand.
2962         (IEEE_BIT, TAGET_IEEE, LOCAL_LABEL_PREFIX, ASSEMBLER_DIALECT): Define.
2963         (CACHE_LOG, enum mdep_reorg_phase_e, TRAMPOLINE_ALIGNMENT): Define.
2964         (SH_DYNAMIC_SHIFT_COST): Define.
2965         (TARGET_SWITCHES): Remove -m0 entry.  Add -mieee, -mno-ieee.
2966         (OVERRIDE_OPTIONS): sh_cpu defaults to CPU_SH1.
2967         Initialize sh_addr_diff_vec_mode.
2968         (REG_ALLOC_ORDER): Move FP0 behind FP7.
2969         Move all FP registers in front of the general registers.
2970         (SECONDARY_OUTPUT_RELOAD_CLASS): Add case for MAC_REGS / PR_REGS.
2971         When checking for GENERAL_REGS, check for R0_REGS too.
2972         Fix direction of compares to {FIR,LA}ST_FP_REG.
2973         (SECONDARY_INPUT_RELOAD_CLASS): check for fp_one_operand.
2974         (ASM_OUTPUT_ALIGN_CODE, ASM_OUTPUT_LOOP_ALIGN, SH0_BIT): Delete.
2975         (TARGET_SH0, PUSH_ROUNDING, TRAMPOLINE_TEMPLATE): Delete.
2976         (TRAMPOLINE_ALIGN): Delete.
2977         (processor_type): Remove PROCESSOR_SH0.
2978         (ADJUST_INSN_LENGTH): Remove check for preceding BARRIER.
2979         Adjust ADDR_DIFF_VECs.  Add code for alignment instructions.
2980         Check if insn needing a delay slot is already inside a SEQUENCE.
2981
2982         * va-sh.h (__va_rounded_size): Delete.
2983         (__LITTLE_ENDIAN_P, __SCALAR_TYPE, __PASS_AS_FLOAT): Define.
2984         (va_arg): Unify big and little endian code.
2985         Optimization for small integers.
2986
2987         From Fred Fish:
2988         * sh.h (INITIAL_ELIMINATION_OFFSET): Proper bracketing.
2989         (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise.
2990         (SECONDARY_{OUTPUT,INPUT}_RELOAD_CLASS, LIBCALL_VALUE): Likewise.
2991         (ROUND_ADVANCE, FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS): Likewise.
2992         (FUNCTION_PROFILE, FUNCTION_EPILOGUE, RETURN_ADDR_RTX): Likewise.
2993         (REGNO_OK_FOR_INDEX_P, EXTRA_CONSTRAINT_Q, MODE_DISP_OK_4): Likewise.
2994         (GO_IF_LEGITIMATE_{INDEX,ADDRES}, LEGITIMIZE_ADDRESS): Likewise.
2995         (CONST_COSTS, REGISTER_MOVE_COST, ASM_OUTPUT_CONSTRUCTOR): Likewise.
2996         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Likewise.
2997         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP, ASM_OUTPUT_LABEL): Likewise.
2998         (ASM_OUTPUT_ALIGN),  ASM_DECLARE_FUNCTION_NAME): Likewise.
2999         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_CASE_LABEL): Likewise.
3000         (ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT) Likewise.
3001         (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_INT): Likewise.
3002         (ASM_OUTPUT_SHORT, ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE): Likewise.
3003         (ASM_OUTPUT_SKIP, FINAL_PRESCAN_INSN, PRINT_OPERAND): Likewise.
3004         (PRINT_OPERAND_ADDRESS, HANDLE_PRAGMA, ADJUST_INSN_LENGTH): Likewise.
3005         (PROMOTE_MODE): Likewise.
3006         (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX.
3007         (ASM_OUTPUT_INTERNAL_LABEL): Use %L.
3008         * sh/elf.h: (ASM_OUTPUT_LABELREF): Use %U.
3009         (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX.
3010         (ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SOURCE_LINE): Use %L.
3011
3012 Wed Aug 27 16:42:21 1997  Bob Manson  (manson@cygnus.com)
3013
3014         * t-h8300 (TARGET_LIBGCC2_CFLAGS): New definit.
3015         (LIBGCC2_CFLAGS): Deleted.
3016         * t-mn10200: Likewise.
3017
3018 Wed Aug 27 17:10:51 1997  Jim Wilson  <wilson@cygnus.com>
3019
3020         * m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in
3021         last change.
3022
3023 Wed Aug 27 15:19:55 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
3024
3025         * dwarfout.c (dwarfout_start_new_source_file): Strip leading '*'s
3026         from label names.
3027
3028 Wed Aug 27 14:33:38 1997  Jim Wilson  <wilson@cygnus.com>
3029
3030         * reload.c (find_reloads, case '0'): Reject matching a non-offsettable
3031         address where an offsettable address is required.
3032
3033 Wed Aug 27 10:38:32 1997  Jeffrey A Law  (law@cygnus.com)
3034
3035         * reorg.c (dbr_schedule): Allow current_function_return_rtx
3036         to be something other than a REG.
3037         * function.c (expand_function_end): Fix current_function_return_rtx
3038         if it was a pseudo.
3039
3040         * t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS.
3041         * x-netbsd: Likewise
3042         * x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS
3043         (INSTALL_HEADERS): Delete.
3044         * x-dguxbcs: Likewise.
3045         * x-hp3bsd44: Likewise
3046         * x-pa: Likewise.
3047
3048 Wed Aug 27 07:15:58 1997  Klaus Espenlaub  <kespenla@hydra.informatik.uni-ulm.de>
3049
3050         * configure.in (AC_PROG_CC, AC_PROG_MAKE_SET): Check for gcc before
3051         testing for flex.
3052  
3053 Wed Aug 27 02:24:35 1997  Jim Wilson  <wilson@cygnus.com>
3054
3055         * dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check
3056         TYPE_DECL_IS_STUB instead of DECL_NAME.
3057
3058         * Makefile.in (install-info): Don't cd into srcdir.  Add srcdir to
3059         filenames.  Use sed to extract base filename for install.
3060
3061 Wed Aug 27 01:56:18 1997  Doug Evans  <dje@seba.cygnus.com>
3062
3063         * loop.c (combine_movables): Earlier insns don't match later ones.
3064
3065         * c-decl.c (grokdeclarator): If array index or size calculations
3066         overflow, issue an error.
3067         * fold-const.c (int_const_binop): New static function.
3068         (const_binop, size_binop): Call it.
3069
3070 Tue Aug 26 17:51:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
3071
3072         * collect2.c (main): Check SCAN_LIBRARIES instead of LDD_SUFFIX
3073         to decide whether to always emit init and fini handles.
3074
3075 Tue Aug 26 13:51:10 1997  Jim Wilson  <wilson@cygnus.com>
3076
3077         * stor-layout.c (layout_record): Test DECL_PACKED instead of
3078         TYPE_PACKED to determine alignment.
3079
3080         * combine.c (try_combine): Distribute REG_DEAD notes created for
3081         i3dest_killed similar to the ones created for i2dest_in_i2src
3082         and for i1dest_in_i1src.
3083
3084 Tue Aug 26 11:36:34 1997  Jeffrey A Law  (law@cygnus.com)
3085
3086         * loop.c (check_final_value): Don't miss a biv increment in a
3087         parallel.
3088
3089         * loop.c (check_dbra_loop): If the loop biv is only used
3090         for counting, then normalize it so that the initial
3091         value is zero.
3092
3093 Tue Aug 26 06:19:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
3094
3095         * dwarfout.c (*_LABEL): Add initial '*'.
3096
3097 Tue Aug 26 05:27:28 1997  Richard Henderson  <rth@cygnus.com>
3098
3099         * alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1.
3100         * configure.in (alpha-*-linux-gnulibc1): New target.
3101         (alpha-*-linux-gnu*): Don't build crtbegin/end.
3102
3103 Mon Aug 25 19:11:38 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
3104
3105         * reload1.c (reload_cse_simplify_operands): Fix typo.
3106
3107 Mon Aug 25 19:04:42 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3108
3109         * c-typeck.c (common_type): Always prefer long double to double.
3110
3111 Mon Aug 25 08:55:00 1997  Jeffrey A Law  (law@cygnus.com)
3112
3113         * pa.c (secondary_reload_class): (mem (mem ... )) does not need
3114         secondary reloads.
3115
3116         * pa.c (hppa_builtin_saveregs): Emit a blockage insn after the
3117         store of the argument registers.
3118
3119 Sun Aug 24 21:25:06 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
3120
3121         * reload1.c (reload_cse_mem_conflict_p, case MEM): Also check
3122         for conflict with the address.
3123
3124 Sat Aug 23 18:43:22 1997  Jim Wilson  <wilson@cygnus.com>
3125
3126         * acconfig.h (NEED_DECLARATION_CALLOC): Add.
3127         * configure.in: Add GCC_NEED_DECLARATION call for calloc.
3128         * rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete
3129         declarations.
3130
3131         * m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it.
3132         * m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef.
3133         
3134 Sat Aug 23 00:18:22 1997  Jeffrey A Law  (law@cygnus.com)
3135
3136         * pa.c (pa_reorg): Always put begin_brtab and end_brtab insns
3137         around branch tables.
3138         * pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab
3139         and .end_brtab directives if TARGET_GAS.
3140
3141 Fri Aug 22 19:17:25 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3142
3143         * function.c (instantiate_virtual_regs_1, case ADDRESSOF):
3144         New case.
3145         (fix_lexical_addr): Handle (addressof (mem ...)).
3146
3147 Thu Aug 21 17:56:06 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3148
3149         * reload.c (push_secondary_reload): If SECONDARY_MEM_NEEDED,
3150         call get_secondary_mem for input before adding reload and
3151         for output after.
3152         (push_reload): Likewise.
3153
3154 Thu Aug 21 15:57:03 1997  Jim Wilson  <wilson@cygnus.com>
3155
3156         * stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test
3157         block_stack before dereferencing it.
3158
3159 Wed Aug 20 15:45:52 1997  Dave Love  <d.love@dl.ac.uk>
3160
3161         * dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from
3162         list.
3163
3164 Wed Aug 20 15:30:36 1997  Stan Cox  <coxs@dg-rtp.dg.com>
3165
3166         * i386.c (ix86_prologue, ix86_epilogue): New functions.
3167         ({function,ix86_expand}_{pro,epi}logue, ix86_expand_prologue):
3168         Use ix86_prologue.
3169
3170 Wed Aug 20 14:57:11 1997  Michael Meissner  <meissner@cygnus.com>
3171
3172         * rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate.
3173
3174 Tue Aug 19 17:10:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
3175
3176         * cplus-dem.c: Add 'extern' to prepends_underscore.
3177
3178 Tue Aug 19 15:46:30 1997  Jeffrey A Law  (law@cygnus.com)
3179
3180         * mips/r3900.h (SUBTARGET_CC1_SPEC): Remove some unnecessary stuff.
3181         (MIPS_CPU_STRING_DEFAULT, MIPS_ISA_DEFAULT): Define.
3182
3183 Mon Aug 18 21:49:02 1997  Jim Wilson  <wilson@cygnus.com>
3184
3185         * reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR
3186         reloads to RELOAD_FOR_OPERAND_ADDRESS reloads.
3187
3188 Mon Aug 18 17:39:02 1997  Mike Meissner  <meissner@cygnus.com>
3189
3190         * configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single
3191         quotes around the name.
3192
3193 Mon Aug 18 17:26:42 1997  Doug Evans  <dje@cygnus.com>
3194
3195         * mips.md (movsi_ulw,movsi_usw,loadgp): Give unspec a mode.
3196
3197 Mon Aug 18 11:05:17 1997  Jeffrey A Law  (law@cygnus.com)
3198
3199         * mips/r3900.h (TARGET_DEFAULT): Turn on MASK_MIPS3900.
3200
3201 Sun Aug 17 14:39:18 1997  Gavin Koch  (gavin@cygnus.com)
3202
3203         * mips/elf.h (PREFERRED_DEBUGGING_TYPE): Only set if not already set.
3204         * mips.c (TARGET_{SINGLE,SOFT}_FLOAT): Make sure both aren't set.
3205         (PROCESSOR_R3900): Set flag from option.
3206         * mips.h: Add m3900 option.
3207         ({PROCESSOR,TARGET,MASK}_R3900): Define.
3208         (GENERATE_{BRANCHLIKELY,MADD,MULT3): Likewise.
3209         (debugj,MASK_DEBUG_J): Delete to make room for m3900.
3210         (BRANCH_LIKELY_P): Redefine to include 3900.
3211         (GAS_ASM_SPEC,CC1_SPEC): Add m3900 option.
3212         (RTX_COSTS): Add 3900.
3213         * mips.md: Add 3900, including three op madd and mult.
3214         * configure.in (mipstx39{,el}-*-elf*): New cases.
3215         * mips/r3900.h: New file.
3216
3217 Fri Aug 15 07:34:12 1997  Richard Earnshaw (rearnsha@arm.com)
3218
3219         * arm.md (umulsi3_highpart, smulsi3_highpart): Add extra reloading
3220         alternatives.
3221
3222 Fri Aug 15 07:34:12 1997  Torbjorn Granlund  <tege@tege.pdc.kth.se>
3223
3224         * arm.md (umulsi3_highpart, smulsi3_highpart): New patterns.
3225         * arm.c (arm_rtx_costs, case TRUNCATE): New case.
3226
3227 Fri Aug 15 06:40:03 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3228
3229         * genemit.c (main): Write an include for flags.h.
3230         * genoutput.c (main): Likewise.
3231
3232         * alpha.c (override_options): Turn off byte insns for cpu=ev4 or ev5.
3233
3234         * alpha.md (allocate_stack): If stupid reg allocation, add USE
3235         for loop variable.
3236         
3237         * fold-const.c (fold, compare cases): Add calls to `fold' to
3238         previous change.
3239
3240 Wed Aug 13 17:32:38 1997  Jason Merrill  <jason@yorick.cygnus.com>
3241
3242         * rtl.h ({SET,}ADDRESSOF_DECL): op 1 of ADDRESSOF is now the decl.
3243         * function.c (put_var_into_stack, gen_mem_addressof,
3244         put_addressof_into_stack): Adjust.
3245
3246         * expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable
3247         again for the slot after we give it RTL.
3248         (expand_expr, case VAR_DECL): Lose gen_mem_addressof case.
3249
3250 Wed Aug 13 17:29:25 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
3251
3252         * c-lex.c (check_newline): Pass finput again to HANDLE_PRAGMA.
3253
3254 Wed Aug 13 16:51:35 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
3255
3256         * reload1.c (reload_cse_simplify_operands): New function.
3257         (reload_cse_no_longer_dead,reload_cse_delete_death_notes): Likewise.
3258         (no_longer_dead_regs): New static variable.
3259         (reload_cse_simplify_set): Now returns int.
3260         Don't delete death notes on previous insns, call
3261         reload_cse_no_longer_dead instead.
3262         Call validate_change with nonzero value for in_group.
3263         (reload_cse_noop_set_p): Don't delete death notes on previous insns,
3264         call reload_cse_no_longer_dead instead.
3265         (reload_cse_regs): Initialize no_longer_dead_regs and call
3266         reload_cse_delete_death_notes as appropriate.
3267         Call apply_change_group after calling reload_cse_simplify_set.
3268         Call reload_cse_simplify_set on elements of a PARALLEL.
3269         Call reload_cse_simplify_operands if reload_cse_simplify_set could
3270         not simplify things.
3271
3272 Wed Aug 13 16:18:42 1997  Douglas Rupp  <rupp@gnat.com>
3273
3274         * vms.h (LINK_SPEC): Echo -shared, not -share, to linker.
3275
3276 Wed Aug 13 12:51:11 1997  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
3277
3278         * m68k.md: Add braces to clarify nesting.
3279
3280 Wed Aug 13 12:51:11 1997  Jason Merrill  <jason@yorick.cygnus.com>
3281
3282         * calls.c (expand_call): Use assign_temp and mark_addressable
3283         instead of calling gen_mem_addressof directly.
3284
3285 Wed Aug 13 12:40:15 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3286
3287         * Makefile.in (install-man): Add missing $(exeext).
3288
3289         * configure.in (alpha*-dec-osf*): Merge various cases;
3290         split off version-specific files in new case statement.
3291         Include osf2or3.h even for OSF1.2.
3292
3293         * alpha.c (NUM_ARGS): New macro.
3294         (CURRENT_FUNCTION_ARGS_INFO): Deleted.
3295         (alpha_builtin_saveregs): Use new macro.
3296         (function_arg): Deleted.
3297         (alpha_arg_type, alpha_arg_info_reg_val): New functions.
3298         * vms.h (enum avms_arg_type, avms_arg_info): New types.
3299         (CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Update definitions
3300         to use new types.
3301         (SETUP_INCOMING_VARARGS): Likewise.
3302         (FUNCTION_ARG{,_PARTIAL_NREGS}, FUNCTION_ARG_ADVANCE): Likewise.
3303         Only update CUM in FUNCTION_ARG_ADVANCE.
3304         
3305 Tue Aug 12 19:27:32 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
3306
3307         * integrate.c (save_for_inline_copying): Use 0, not NULL_PTR,
3308         as initial value for real_label_map.
3309         (copy_for_inline): Likewise.
3310
3311 Tue Aug 12 16:15:36 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
3312
3313         * rtl.h (BYTECODE_LABEL): Use XSTR, not XEXP.
3314
3315         * calls.c (expand_calls): Properly call any_pending_cleanups.
3316
3317 Tue Aug 12 12:18:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
3318
3319         * function.c (purge_addressof_1): Add force argument.
3320         (purge_addressof): If there are any ASM_OPERANDS in an insn, always
3321         put ADDRESSOFs into the stack.
3322
3323         * function.c (setjmp_protect): See through addressof.
3324         (setjmp_protect_args): Likewise.
3325         * calls.c (expand_call): For now, only use addressof if the type
3326         doesn't promote.
3327         * function.c (put_var_into_stack): Likewise.
3328         * expr.c (expand_expr): Likewise.
3329         * toplev.c (rest_of_compilation): Check inlineable instead of
3330         DECL_INLINE.
3331         * function.c (purge_addressof_1): Try recognizing the insn with
3332         and without the SUBREG.  If it doesn't work, just put the REG into
3333         the stack.
3334         (gen_mem_addressof): Set the mode of the MEM to the mode of the type.
3335         (put_var_into_stack): Don't be fooled by addressof in an enclosing
3336         scope.
3337
3338 Sun Aug 10 22:19:19 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3339
3340         * explow.c (probe_stack_range): Add USE for test_addr if -O0.
3341
3342 Sun Aug 10 22:15:40 1997  Jason Merrill  <merrill@churchy.gnu.ai.mit.edu>
3343
3344         * toplev.c (rest_of_compilation): Move purge_addressof before loop.
3345
3346 Sun Aug 10 15:25:51 1997  Jim Wilson  <wilson@cygnus.com>
3347
3348         * toplev.c (main): In -g handling code, add code to set len.
3349
3350         * sdbout.c (plain_type_1, case ARRAY_TYPE): Verify that TYPE_DOMAIN
3351         has integer TYPE_{MAX,MIN}_VALUE before using them.
3352
3353         * alpha.md (extendqihi2): Use HImode not QImode in force_reg call.
3354
3355 Sun Aug 10 16:47:34 1997  Nick Burrett  <nick.burrett@btinternet.com>
3356
3357         * arm/aof.h (COMMON_SECTION): New macro, define common_section.
3358         (EXTRA_SECTION_FUNCTIONS): Add COMMON_SECTION.
3359         (EXTRA_SECTIONS): Add in_common.
3360         (ASM_OUTPUT_COMMON): Call common_section() to indicate we've
3361         changed areas.
3362
3363 Sat Aug  9 20:04:35 1997  Jim Wilson  <wilson@cygnus.com>
3364
3365         * dwarf2out.c (gen_subprogram_die): Handle redefinition of an
3366         extern inline function.
3367
3368 Sat Aug  9 13:01:06 1997  Michael Meissner  <meissner@cygnus.com>
3369
3370         * rs6000/sysv4.h (*_SPEC): Add support for -mads and -myellowknife.
3371         Use a common crt0.o for all embedded platforms.  Use --start-group
3372         and --end-group instead of -( and -) to allow better cut and pasting
3373         when debugging the linker.  Set default start for MVME text.
3374         (TARGET_SWITCHES): Add -mads and -myellowknife.
3375
3376 Fri Aug  8 20:12:43 1997  Per Bothner  <bothner@cygnus.com>
3377
3378         *  dwarf2out.c (gen_enumeration_type_die):
3379         Make code work for a tag name, without a TYPE_STUB_DECL.
3380         (gen_struct_or_union_type_die):  Likewise.
3381
3382 Fri Aug  8 18:10:40 1997  Marc Lehmann  <pcg@goof.com>
3383
3384         * i386/go32.h (HAS_INIT_SECTION, HAVE_ATEXIT): New macros.
3385
3386 Fri Aug  8 17:30:22 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
3387
3388         * i386.c (output_pic_addr_const, case PLUS): Emit the constant first.
3389
3390 Fri Aug  8 17:07:36 1997  Stan Cox  <coxs@dg-rtp.dg.com>
3391
3392         * m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list
3393         template.
3394         
3395         * reg-stack.c (compare_for_stack_reg): Swap only if the source and
3396         destination are both on the regstack.
3397         (subst_stack_regs_pat): Put the destination at the top of the regstack.
3398         
3399 Fri Aug  8 17:03:21 1997  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
3400
3401         * i386.md (pop): pop increments the stack pointer.
3402         (prologue_set_stack_ptr): New pattern.
3403         * i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr
3404         instead of subsi3. 
3405
3406 Fri Aug  8 17:00:36 1997  Paul Eggert  <eggert@twinsun.com>
3407
3408         * gansidecl.h, halfpic.h (STDIO_PROTO): Remove.
3409         * bitmap.h, c-tree.h, output.h, reload.h, rtl.h (STDIO_PROTO):
3410         Replace with PROTO in include files.
3411         * bc-emit.c: Include <stdio.h> before include files that formerly
3412         used STDIO_PROTO.
3413         * bc-optab.c, c-common.c, c-decl.c, caller-save.c, calls.c: Likewise.
3414         * convex.c, i860.c, mips.c, spur.c, tahoe.c, emit-rtl.c: Likewise.
3415         * explow.c, expmed.c, expr.c, genattrtab.c, halfpic.c: Likewise.
3416         * jump.c, optabs.c, profile.c, recog.c, regclass.c: Likewise.
3417         * rtlanal.c, sdbout.c, unroll.c: Likewise.
3418         * genattrtab.c (main): Generate files that include <stdio.h>
3419         before including files that formerly used STDIO_PROTO.
3420         * genemit.c (main), genextract.c (main), genopinit.c (main): Likewise.
3421         * genoutput.c (output_prologue), genpeep.c (main): Likewise.
3422         * genrecog.c (main): Likewise.
3423         * halfpic.h (PROTO): Use "gansidecl.h" to define this instead.
3424         (half_pic_finish): Declare without prototype; FILE isn't defined.
3425
3426         * bitmap.c, c-aux-info.c, c-lex.c: Include "config.h" first.
3427         * c-parse.in, c-pragma.c, 1750a.c, a29k.c, alpha.c: Likewise.
3428         * arm.c, clipper.c, dsp16xx.c, elxsi.c, fx80.c, gmicro.c: Likewise.
3429         * h8300.c, i370.c, i386.c, i386/winnt.c, i960.c: Likewise.
3430         * m32r.c, m68k.c, m88k.c, mn10200.c, mn10300.c, ns32k.c: Likewise.
3431         * pa.c, pdp11.c, pyr.c, romp.c, rs6000.c, sparc.c, vax.c: Likewise.
3432         * we32k.c, cppmain.c, dbxout.c, flow.c, fold-const.c: Likewise.
3433         * gcc.c, gcov.c, global.c, integrate.c, local-alloc.c: Likewise.
3434         * loop.c, mips-tdump.c, mips-tfile.c, objc-act.c: Likewise.
3435         * real.c, reg-stack.c, reload.c, reload1.c, reorg.c, sched.c: Likewise.
3436         * stupid.c, tree.c, varasm.c, xcoffout.c: Likewise.
3437
3438 Fri Aug  8 14:52:35 1997  Jason Merrill  <jason@yorick.cygnus.com>
3439
3440         * function.c (fixup_stack_1): Stack slots can also be relative to
3441         the frame or stack pointers.
3442
3443 Fri Aug  8 14:13:49 1997  Richard Henderson  <richard@gnu.ai.mit.edu>
3444
3445         * dwarf2out.c (reg_loc_descriptor): Fix prototype.
3446         (concat_loc_descriptor): New function.
3447         (loc_descriptor): Call it.
3448         (add_AT_location_description): Also elide the descriptor if both
3449         halves of a CONCAT are pseudos.
3450         (add_location_or_const_value_attribute): Recognize CONCAT too.
3451
3452 Fri Aug  8 06:36:29 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
3453
3454         * c-common.c (if_stack{,_space,_pointer}): New static variables.
3455         (c_expand_{start_cond,start_else,end_cond}): New functions.
3456         * c-parse.in (compstmt_count): New static variable.
3457         (compstmt_start): New rule.
3458         (compstmt): Use new rule.
3459         (do_stmt_start): Update compstmt_count.
3460         (simple_if, stmt): Use new versions of start_cond, start_else,
3461         and end_cond.
3462
3463 Thu Aug  7 15:35:25 1997  Jim Wilson  <wilson@cygnus.com>
3464
3465         * mips/iris6.h (TARGET_LONG64): Don't define here.
3466         * mips.c (override_options): Set MASK_LONG64 for ABI_64.
3467         
3468         * mips.c (function_prologue): Don't emit ".ent", ".frame",
3469         ".mask", ".fmask" if flag_inhibit_size_directive is true.
3470         (function_epilogue): Don't emit ".end" if
3471         flag_inhibit_size_directive is true.
3472
3473         * mips/iris6.h (STARTFILE_SPEC, LIB_SPEC): Move
3474         -L/usr/lib{32,64}/mips? from STARTFILE_SPEC to LIB_SPEC.
3475
3476 Thu Aug  7 13:14:21 1997  Torbjorn Granlund  <tege@tunnis.tmg.se>
3477
3478         * fold-const.c (fold): Optimize unsigned x <= 0x7fffffff.
3479
3480 Thu Aug  7 12:46:31 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3481
3482         * explow.c (convert_memory_address, case LABEL_REF): Copy
3483         LABEL_REF_NONLOCAL_P.
3484
3485         * expr.c (store_constructor): Use CONST0_RTX macro, not always
3486         the integer version, when clearing a register.
3487
3488         * varasm.c (output_constructor): Correctly check for
3489         multi-word constant.
3490
3491 Thu Aug  7 10:04:42 1997  Douglas Rupp  <rupp@gnat.com>
3492
3493         * alpha/vms-tramp.asm: New file.
3494
3495         * gcc.c (execute): Don't allow -pipe on VMS.
3496         
3497         * alpha.c (vmskrunch): Don't strip off trailing digits.
3498         (vms_valid_decl_attribute_p): New function.
3499         * alpha/vms.h (TRAMPOLINE_TEMPLATE): Add another quadword of zeros.
3500         (TRAMPOLINE_SIZE): Now 32 bytes.
3501         (INITIALIZE_TRAMPOLINE): Put FNADDR at offset 16, CXT at 24.
3502         (DBX_DEBUGGING_INFO, ASM_FORMAT_PRIVATE_NAME): Always undefine.
3503         (STARTFILE_SPEC): Likewise.
3504         (PREFERRED_DEBUGGING_TYPE): Define to be Dwarf-2.
3505         (VALID_MACHINE_DECL_ATTRIBUTE, ASM_OUTPUT_SECTION{,_NAME}): New macros.
3506         (ASM_OUTPUT_ALIGN{,ED_COMMON}): Redefine.
3507         (LINK_SPEC): Pass -share and -v.
3508         (ENDFILE_SPEC, LIBGCC2_SPEC): Don't redefine.
3509
3510 Thu Aug  7 06:21:47 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
3511
3512         * Eliminate most -Wswitch warnings.
3513         * c-common.c (binary_op_error): Add default case to switch.
3514         (shorten_compare, truthvalue_conversion): Likewise.
3515         * c-iterate.c (collect_iteratores): Likewise.
3516         * c-typeck.c (comptypes, build_component_ref): Likewise.
3517         (build_binary_op, lvalue_p, build_unary_op): Likewise.
3518         (build_modify_expr, initializer_constant_valid_p): Likewise.
3519         (c_expand_return): Likewise.
3520         * calls.c (calls_function_1): Likewise.
3521         * combine.c (find_split_point, simplify_rtx): Likewise.
3522         (simplify_if_then_else, simplify_logical): Likewise.
3523         (extract_left_shift, make_compound_operation, force_to_mode): Likewise.
3524         (known_cond, nonzero_bits, num_sign_bit_copies): Likewise.
3525         (merge_outer_ops, simplify_shift_const, simplify_comparison): Likewise.
3526         (reversible_comparison_p, mark_used_regs_combine): Likewise.
3527         * convert.c (convert_to_integer): Likewise.
3528         * cse.c (canon_hash, exp_equiv_p): Likewise.
3529         (set_nonvarying_address_components, canon_reg): Likewise.
3530         (simplify_unary_operation, simplify_plus_minus): Likewise.
3531         (simplify_relational_operation, fold_rtx): Likewise.
3532         (cse_process_note,  count_reg_usage): Likewise.
3533         * dbxout.c (dbxout_symbol): Likewise.
3534         * dwarf2out.c (lookup_cfa_1, print_die): Likewise.
3535         * emit_rtl.c (copy_rtx_if_shared, reset_used_flags): Likewise.
3536         * explow.c (plus_constant_wide, convert_memory_address): Likewise.
3537         (promote_mode, emit_stack_save, emit_stack_restore): Likewise.
3538         * expmed.c (expand_divmod, emit_store_flag): Likewise.
3539         * expr.c (queued_subexp_p, is_zeros_p, safe_from_p): Likewise.
3540         (bc_expand_expr, preexpand_calls, convert_move): Likewise.
3541         * final.c (get_attr_length, final_scan_insn): Likewise.
3542         (walk_alter_subreg, alter_cond): Likewise.
3543         * flow.c (jmp_uses_reg_or_mem, mark_used_regs): Likewise.
3544         * fold-const.c (operand_equal_p, twoval_comparison_p): Likewise.
3545         (eval_subst, invert_truthvalue, range_binop): Likewise.
3546         (make_range, fold): Likewise.
3547         * function.c (fixup_var_refs_1, instantiate_virtual_regs_1): Likewise.
3548         * genattrtab.c (attr_copy_rtx, make_canonical): Likewise.
3549         (encode_units_mask, simplify_test_exp): Likewise.
3550         (find_and_mark_used_attributes, write_test_expr): Likewise.
3551         (simplify_with_current_value_aux, clear_struct_flag): Likewise.
3552         (count_sub_rtxs, gen_insn walk_attr_value): Likewise.
3553         (copy_rtx_unchanging): Likewise.
3554         * genconfig.c (walk_insn_part): Likewise.
3555         * genextract.c (walk_rtx): Likewise.
3556         * genoutput.c (scan_operands): Likewise.
3557         * genpeep.c (match_rtx): Likewise.
3558         * genrecog.c (add_to_sequence): Likewise.
3559         * integrate.c (copy_for_inline, copy_rtx_and_substitute): Likewise.
3560         (subst_constants): Likewise.
3561         * jump.c (duplicate_loop_exit_test, comparison_dominates_p): Likewise.
3562         (mark_jump_label, rtx_renumbered_equal_p): Likewise.
3563         (rtx_equal_for_thread_p): Likewise.
3564         * local-alloc.c (memref_referenced_p): Likewise.
3565         * loop.c (record_excess_regs, reg_in_basic_block_p): Likewise.
3566         (get_condition, replace_call_address): Likewise.
3567         (count_nonfixed_reads, find_and_verify_loops, find_mem_givs): Likewise.
3568         (maybe_eliminate_biv_1, invariant_p, simplify_giv_expr): Likewise.
3569         * optabs.c (emit_float_lib_cmp): Likewise.
3570         * print-tree.c (print_node): Likewise.
3571         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
3572         * reload.c (subst_reg_equivs, find_reloads_address_1): Likewise.
3573         (refers_to_regno_for_reload_p, find_equiv_reg): Likewise.
3574         * reload1.c (set_label_offsets, eliminate_regs): Likewise.
3575         (scan_paradoxical_subregs, count_occurrences): Likewise.
3576         * rtl.c (copy_rtx, copy_most_rtx): Likewise.
3577         * rtlanal.c (rtx_varies_p, rtx_addr_can_trap_p): Likewise.
3578         (reg_mentioned_p, reg_referenced_p, modified_between_p): Likewise.
3579         (modified_in_p, refers_to_regno_p, volatile_insn_p): Likewise.
3580         (volatile_refs_p, side_effects_p): Likewise.
3581         (inequality_comparison_p, replace_regs): Likewise.
3582         * sched.c (sched_analyze_2): Likewise.
3583         * stmt.c (expand_return): Likewise.
3584         * tree.c (staticp, unsave_expr_now, contains_placeholder_p): Likewise.
3585         (substitute_in_expr, build_type_attribute_variant): Likewise.
3586         (simple_cst_equal): Likewise.
3587         * unroll.c (remap_split_bivs): Likewise.
3588         * varasm.c (const_hash, compare_constant_1): Likewise.
3589         (decode_rtx_const, output_addressed_constants): Likewise.
3590         (output_constant): Likewise.
3591         * print-tree.c (print_node): Convert switch with one case into an if.
3592         * sched.c (memrefs_conflict_p): Likewise.
3593         * genrecog.c (write_tree_1): Output default case for every switch.
3594
3595         * profile.c (output_arc_profiler) [SMALL_REGISTER_CLASSES]:
3596         Apply PATTERN only to insns.
3597
3598 Thu Aug  7 06:13:20 1997  Robert Lipe  <robertl@dgii.com>
3599
3600         * i386/t-sco5 (libgcc2-elf.a): Resync with Makefile.in.
3601
3602 Wed Aug  6 19:28:05 1997  Jim Wilson  <wilson@cygnus.com>
3603
3604         * dwarf2out.c (build_abbrev_table): Use xrealloc not xmalloc.
3605
3606 Wed Aug  6 12:57:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
3607
3608         * dwarf2out.c (output_call_frame_info): Always emit the info.
3609         (dwarf2out_frame_debug): We can initialize the temp reg in the
3610         epilogue, too.
3611
3612         * rtl.def: Add ADDRESSOF.
3613         * rtl.h (ADDRESSOF_TYPE, SET_ADDRESSOF_TYPE): New macros.
3614         * Makefile.in (mostlyclean): Remove *.addressof.
3615         * toplev.c (rest_of_compilation): Set DECL_DEFER_OUTPUT on
3616         non-nested inlines.  Run purge_addressof after CSE.
3617         (various): Add .addressof RTL dump file.
3618         * rtl.c (copy_rtx): No need to copy ADDRESSOF.
3619         * reload1.c (eliminate_regs): Elide ADDRESSOF.
3620         * recog.c (general_operand): (MEM (ADDRESSOF ())) is a valid operand.
3621         So is (ADDRESSOF ()).
3622         (memory_address_p): (ADDRESSOF ()) is a valid memory address.
3623         * integrate.c (expand_inline_function): If the structure_value_addr
3624         is an ADDRESSOF, we can use it as a constant.
3625         (copy_rtx_and_substitute): Copy a '0' operand over unchanged.
3626         * function.c (fixup_var_refs_1): Remove (ADDRESSOF (MEM ())).
3627         (gen_mem_addressof): New fn.
3628         (put_addressof_into_stack): New fn.
3629         (purge_addressof_1): New fn.
3630         (purge_addressof): New fn.
3631         (instantiate_decl): Don't bother looking into an ADDRESSOF.
3632         (put_var_into_stack): Call gen_mem_addressof for local REGs instead
3633         of calling put_reg_into_stack.
3634         * expr.c (expand_expr, case TARGET_EXPR): Put the temp in a register 
3635         if it will fit.
3636         (expand_expr, case ADDR_EXPR): Call gen_mem_addressof to take the
3637         address of a REG.
3638         * explow.c (memory_address): An ADDRESSOF is a valid memory address.
3639         * dwarfout.c (location_or_const_value_attribute): Handle ADDRESSOF.
3640         * dwarf2out.c (add_location_or_const_value_attribute): Handle
3641         ADDRESSOF.
3642         * cse.c (FIXED_BASE_PLUS_P): Add ADDRESSOF.
3643         (NONZERO_BASE_PLUS_P): Add ADDRESSOF.
3644         (canon_hash): Ignore '0' operands.
3645         (find_best_addr): Don't try to replace an ADDRESSOF.
3646         (fold_rtx): If our address has a const equiv of an ADDRESSOF, use it.
3647         * calls.c (expand_call): Put the struct value in a register if
3648         it fits.
3649
3650 Tue Aug  5 16:10:45 1997  Jason Merrill  <jason@yorick.cygnus.com>
3651
3652         * mips.c (function_arg): Handle passing a struct 
3653         containing a double in a DFmode register without the PARALLEL.
3654
3655 Tue Aug  5 12:27:31 1997  Doug Evans  <dje@cygnus.com>
3656
3657         * configure.in (sparc-*-solaris2): Set float_format to i128.
3658         * config/float-i128.h: New file.
3659
3660 Mon Aug  4 17:45:19 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3661
3662         * combine.c (try_combine): If have PARALLEL of independent SETs
3663         and have cc0, ensure insn using CC0 come first.
3664
3665 Mon Aug  4 15:22:41 1997  Mike Meissner  <meissner@cygnus.com>
3666
3667         * rs6000/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Undef for System V
3668         environments.
3669
3670 Mon Aug  4 12:34:41 1997  Philip Blundell  <pb@nexus.co.uk>
3671
3672         * configure.in (arm-*-aout): Set tmake_file correctly.
3673
3674 Mon Aug  4 08:06:48 1997  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
3675
3676         * reload.c (find_reloads_address_1): Don't pass VOIDmode for an
3677         integer argument of push_reload.
3678
3679         * rtlanal.c (may_trap_p): Fix unintended fall-through so divisions by
3680         non-zero constants are handled properly.  Return 1 for FP divisions.
3681
3682 Mon Aug  4 06:52:20 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
3683
3684         * c-common.c (check_format_info): Store each flag character only
3685         once in the flag_chars array.
3686
3687 Sun Aug  3 21:57:31 1997  Jim Meyering  <meyering@eng.ascend.com>
3688
3689         * objc/Make-lang.in (objc/*.o): Depend on $(GCC_PASSES).
3690
3691 Sun Aug  3 21:54:51 1997  Nick Burrett  <n.a.burrett@btinternet.com>
3692
3693         * cpplib.c (cpp_start_read): Recognise suffixes 'cp' and 'c++'.
3694
3695 Sun Aug  3 19:18:27 1997  Ralf Baechle  <ralf@uni-koblenz.de>
3696
3697         * Makefile.in (mostlyclean): Remove libgcc1-test.
3698
3699 Sun Aug  3 19:10:27 1997  Klaus Espenlaub  <kespenla@hydra.informatik.uni-ulm.de>
3700
3701         * Makefile.in (T): Move to place where it can be overridden.
3702         (install_common): Fix permissions of specs and EXTRA_PARTS files.
3703
3704 Sun Aug  3 19:07:04 1997  Jan-Jaap van der Heijden  <J.J.vanderHeijden@student.utwente.nl>
3705
3706         * gcc.c (default_compilers): Add default entries for Pascal.
3707
3708 Sun Aug  3 18:38:41 1997  Richard Henderson  <rth@cygnus.com>
3709
3710         * alpha.c (alpha_return_addr): New function.
3711         (output_epilog): Zero alpha_return_addr_rtx.
3712         * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr.
3713
3714 Sun Aug  3 17:27:44 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
3715
3716         * Makefile.in (INSTALL): Build in $(srcdir).
3717
3718         * config/linux.h (DEFAULT_VTABLE_THUNKS): New macro.
3719
3720 Sun Aug  3 17:18:31 1997  Richard Earnshaw (rearnshaw@cambridge.arm.com)
3721
3722         * expr.c (expand_builtin, case BUILT_IN_RETURN_ADDRESS): Emit warning
3723         if return address cannot be determined.
3724
3725 Sun Aug  3 17:04:00 1997  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
3726
3727         * stupid.c (stupid_life_analysis): If function receives non-local
3728         goto, don't let any registers live across calls.
3729
3730         * fold-const.c (merge_ranges): Make sure that if one range is subset
3731         of another, it will always be the second range.  Correct (+,-) case to
3732         account for this.
3733
3734 Sun Aug  3 16:48:30 1997  Paul Eggert  <eggert@twinsun.com>
3735
3736         * c-lex.c (yylex): Remove duplicate check on high bit before
3737         invoking int_fits_type_p.
3738
3739 Sun Aug  3 16:44:41 1997  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
3740
3741         * reload.c (find_equiv_reg): If goal is a pseudo that got memory, a
3742         store into memory makes it invalid.  This was handled in the single
3743         set case, but missing in the PARALLEL case.
3744
3745 Sun Aug  3 09:13:47 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3746
3747         * expr.c (store_field): Return quickly if EXP is ERROR_MARK.
3748
3749         * c-typeck.c (unary_complex_lvalue): Don't warn about COMPOUND_EXPR
3750         or COND_EXPR if FUNCTION_TYPE.
3751
3752         * alpha.h (ASM_SPEC): Add -O0.
3753
3754         * expr.h (clear_storage): Now returns rtx.
3755         (emit_block_move): Likewise; delete duplicate declaration.
3756         * expr.c (clear_storage, emit_block_move): Return address of
3757         dest if calling memset/memcpy.
3758         (expand_builtin, BUILT_IN_MEM{CPY,SET}): Return value from
3759         clear_storage or emit_block_move if present.
3760
3761         * c-decl.c (start_function): Reset immediate_size_expand on
3762         error return.
3763
3764 Sat Aug  2 18:50:43 1997  Paul Eggert  <eggert@twinsun.com>
3765
3766         * tree.c (int_fits_type_p): Negative ints never fit unsigned
3767         types, and unsigned ints with top-bit-set never fit signed types.
3768
3769 Sat Aug  2 16:25:43 1997  Per Bothner  <bothner@frobnitz.gnu.ai.mit.edu>
3770
3771         * Makefile.in (EXTRA_C_OBJS): Removed.
3772         (C_AND_OBJC_OBJS):  New.  Subsumes EXTRA_C_OBJS and OBJC_CCOMMON.
3773         * objc/Make-lang.in (OBJC_CCOMMON):  Removed.
3774
3775 Sat Aug  2 16:11:57 1997  Doug Evans  <dje@cygnus.com>
3776
3777         * configure.in: Build .gdbinit for top level build dir here.
3778         (AC_OUTPUT): Pass oldstyle_subdirs to configure.lang.
3779         * configure.lang: Fix building of .gdbinit for oldstyle lang subdirs.
3780
3781 Sat Aug  2 13:48:15 1997  Ken Raeburn  <raeburn@cygnus.com>
3782
3783         * cse.c (cse_insn): Ignore paradoxical SUBREGs unless we are
3784         looking for such.
3785
3786 Sat Aug  2 13:25:33 1997  Tristan Gingold  (gingold@email.enst.fr)
3787
3788         * calls.c (expand_call): If -fcheck-memory-usage, use pseudo-register,
3789         check indirectly called function is executable, and set rights of
3790         memory for aggregate as write only.
3791         (store_one_arg): If -fcheck-memory-usage, set rights for pushed
3792         stack argument.
3793         * c-decl.c (init_decl_processing): Add
3794         __builtin_aggregate_incoming_address.
3795         * explow.c (expr_size): Call expand_expr with appropriate flag.
3796         * expr.c (expand_builtin, case BUILT_IN_AGGREGATE_INCOMING_ADDRESS):
3797         New case.
3798         (expand_assignment, expand_expr, emit_push_insn, store_expr):
3799         Insert calls to chkr_check_addr, chkr_set_right, and chkr_copy_bitmap
3800         when -fcheck-memory-usage.
3801         (get_push_address, get_memory_usage_from_modifier): New functions.
3802         * expr.h: Add expand_modifier flags.
3803         (chkr_*_libfunc): New decls.
3804         (memory_use_mode): New declaration.
3805         * flags.h (flag_check_memory_usage, flag_prefix_function_name): New
3806         declaration.
3807         * function.c (put_var_into_stack, assign_parms): If
3808         -fcheck-memory-usage, set the rights of pushed variable.
3809         * optabs.c (chkr_{check_addr,set_right}_libfunc): New definitions.
3810         (chkr_{copy_bitmap,check_exec}_libfunc): Likewise.
3811         (init_optabs): Initialize these chkr_*_libfunc.
3812         * stmt.c (expand_computed_goto): If -fcheck-memory-usage, check that
3813         computed address of a goto is executable.
3814         (expand_asm, expand_asm_operands): If -fcheck-memory-usage,
3815         disallow asm statments.
3816         * toplev.c (flag_check_memory_usage, flag_prefix_function_name): New
3817         variable.
3818         (f_options): Add `check-memory-usage' and `prefix_function_name'.
3819         (main): Disable `-fomit-frame-pointer' if `-fcheck-memory-usage' is set
3820         and the machine can't debug without the frame pointer.
3821         * tree.h (built_in_function): Add BUILT_IN_AGGREGATE_INCOMING_ADDRESS.
3822         * varasm.c (make_function_rtl, make_decl_rtl): Add a prefix when
3823         flag_prefix_function_name_usage is set.
3824         (assemble_name): Strip the CHKR_PREFIX.
3825         * alpha.c (alpha_builtin_saveregs): If -fcheck-memory-usage,
3826         set rights of saved registers.
3827         * clipper.c (clipper_builtin_saveregs): Likewise.
3828         * m88k.c (m88k_builtin_saveregs): Likewise.
3829         * pa.c (hppa_builtin_saveregs): Likewise.
3830         * sparc.c (sparc_builtin_saveregs): Likewise.
3831
3832 Sat Aug  2 08:01:12 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3833
3834         * c-decl.c (grokdeclarator): Give error for `long double' and
3835         refine text of some error messages.
3836
3837         * alpha.h (FLOAT_VALUE_TYPE, INTIFY, FLOATIFY, FLOAT_ARG_TYPE): Define.
3838         * i860.h (FLOAT_VALUE_TYPE): Fix typo; was FLOAT_TYPE_VALLUE.
3839
3840         * calls.c (store_one_arg): Allow stack_slot to be SP in
3841         ARGS_GROW_DOWNWARD case.
3842
3843         * c-decl.c (parmlist_tags_warning): Only suppress warning on
3844         union if anonymous.
3845
3846         * libgcc2.c (_trampoline): Rework last change; both getpagesize
3847         and mprotect are in cygwin32.
3848
3849         * reload1.c (reload): Add IN_ADDR to IN_ADDR_ADDR when computing
3850         needs since they conflict.
3851
3852         * print-rtl.c (indent): Move to file level; was static in print_rtx.
3853         (print_inline_rtx): New function.
3854         * reload.c (debug_reload): Rework to make output more compact.
3855
3856         * dwarfout.c (output_compile_unit_die): Add support for Pascal.
3857         * dwarf2out.c (gen_compile_unit_die): Likewise.
3858
3859         * c-typeck.c (lvalue_p, case BIND_EXPR, RTL_EXPR): Return 1 if array.
3860
3861         * Makefile.in (OBJC_OBJC): Delete from here.
3862
3863         * varasm.c (compare_constant_1, case STRING_CST): Compare TYPE_MODE.
3864         (record_constant_1, case STRING_CST): Record TYPE_MODE.
3865
3866         * tree.c (contains_this_placeholder_p): Delete.
3867         (contains_placeholder_p): Now contains code from above function.
3868         (contains_placeholder_p, case 'r'): Don't look at offset info.
3869         * expr.c (expand_expr, case PLACEHOLDER_EXPR): Find innermost
3870         matching and don't check contains_placeholder_p.
3871
3872 Fri Aug  1 17:15:07 1997  Per Bothner  <bothner@cygnus.com>
3873
3874         * objc/objc-act.c (lang_init):  Don't check_newline #if USE_CPPLIB.
3875         * c-lex.c (lang_init):  Remove (recently moved here).
3876         * c-lang.c (lang_init):  Restore, but add #if !USE_CPPLIB.
3877
3878 Fri Aug  1 11:26:45 1997  Jeffrey A Law  (law@cygnus.com)
3879
3880         * pa.c (pa_reorg): Explode ADDR_DIFF_VEC insns too.
3881
3882 Thu Jul 31 19:37:22 1997  Ian Lance Taylor  <ian@cygnus.com>
3883
3884         * libgcc2.c (getpagesize): Don't compile if __CYGWIN32__.
3885
3886 Thu Jul 31 16:04:42 1997  Stan Cox  <coxs@dg-rtp.dg.com>
3887
3888         * i386.c (output_to_reg, output_fix_trunc): Use scratch memory,
3889         if available, instead of dynamically extending the stack.
3890         (put_condition_code, print_operand): Added reverse_cc to reverse the
3891         comparison when $ah is accessed directly instead of using eflags
3892
3893         * i386.md (*trunc*): Use scratch memory for output_fix_trunc.
3894         (movsicc_1, movhicc_1) Change alternative 3 to: 
3895         jCC L1; mov; jmp L2; L1:mov; L2:
3896         (movsfcc, movdfcc, movxfcc): Force constant operands to memory.
3897         (movsfcc_1, movdfcc_1, movxfcc_1): Change alternative 3 as above.
3898
3899 Thu Jul 31 16:04:42 1997  Jason Merrill  <jason@yorick.cygnus.com>
3900
3901         * i386.h (MAX_FIXED_MODE_SIZE): Define.
3902
3903 Thu Jul 31 16:04:42 1997   Robert Lipe <robertl@dgii.com>
3904         
3905         * i386/sco5.h (SWITCHES_NEED_SPACES) Define.
3906         Required by the COFF (but not ELF) linker.
3907
3908 Wed Jul 30 15:03:52 1997  Per Bothner  <bothner@cygnus.com>
3909
3910         * demangle.h (DMGL_JAVA):  New option to request Java demangling.
3911         * cplus-dem.c:  Various changes to produce Java output when passed
3912         DMGL_JAVA.  Thus "::" becomes "." and "JArray<Foo>" becomes "Foo[]".
3913         (main):  Support --java and -j flags to set DMGL_JAVA.
3914
3915 Wed Jul 30 08:56:08 1997  Philip Blundell  <Philip.Blundell@pobox.com>
3916
3917         * configure.in (arm-*-*): Replace with arm-*-aout.
3918         * arm/aout.h (SET_ASM_OP): Define by default.
3919         * arm/riscix.h (SET_ASM_OP: Undefine.
3920         * arm.h (CPP_SPEC): Add %(subtarget_cpp_spec).
3921         (SUBTARGET_CPP_SPEC): New macro.
3922         * arm/linux.h: Include aout.h rather than arm.h directly.
3923         (TARGET_CPU_DEFAULT): Define.
3924         ({ASM,CPP}_SPEC): Remove.
3925         * arm/t-linux (MULTILIB_OPTIONS): Use -mapcs-NN instead of -mN.
3926         (LIB1ASMSRC): Use generic ARM version.
3927         (CROSS_LIBGCC1): Define.
3928         * arm/lib1funcs-linux.asm: Remove.
3929
3930 Tue Jul 29 17:57:47 1997  Per Bothner  <bothner@cygnus.com>
3931
3932         * Add hooks for using autconf-style Makefile.in in language subdirs.
3933         * configure.in (all_outputs, oldstyle_subdirs):  New variables.
3934         Pass all_outputs to AC_OUTPUT.
3935         * configure.lang:  Only iterate over oldstyle_subdirs.
3936
3937         * Patches to use cpplib with cc1 #if USE_CPPLIB.
3938         * configure.in (--enable-c-cpplib):  New option.
3939         (extra_c_flags, extra_c_objs):  New variables.
3940         * Makefile.in (EXTRA_C_OBJS):  New variable.
3941         (INTERNAL_CFLAGS):  Add @extra_c_flags@.
3942         (C_OBJS):  Add $(EXTRA_C_OBJS).
3943         * c-lex.c (generally):  Replace getc and ungetc by macros GETC and
3944         UNGETC.  Avoid explicit references to finput.
3945         (yy_get_token):  New function, that calls cpp_get_token.
3946         (init_parse):  New function - calls init_lex.
3947         (finish_parse):  New function (called by compile_file).
3948         (GET_DIRECTIVE_LINE):  New macro wrapper replaces get_directive_line.
3949         (lang_init):  Don't check_newline - already know main_input_filename.
3950         (handle_sysv_pragma):  Remove FILE* parameter.
3951         * toplev.c (finput):  Remove #if USE_CPPLIB.
3952         (compile_file):  #if USE_CPPLIB don't open input file here,
3953         do it in cpp_start_read.  Call init_parse instead of init_lex.
3954         At end, call finish_parse instead of fclose(finput).
3955
3956 Mon Jul 28 15:48:29 1997  Brendan Kehoe  <brendan@cygnus.com>
3957
3958         * integrate.c (expand_inline_function): Use xmalloc instead of
3959         alloca for the LABEL_MAP.
3960         (save_for_inline_copying): Likewise.
3961
3962 Mon Jul 28 11:22:16 1997  Jason Merrill  <jason@yorick.cygnus.com>
3963
3964         * toplev.c (compile_file): Also emit any deferred TREE_PUBLIC inlines.
3965         (rest_of_compilation): Use decl_printable_name instead of DECL_NAME
3966         to identify functions in the RTL dump files.
3967
3968         * dwarf2out.c (add_location_or_const_value_attribute): 
3969         leaf_renumber_regs_insn.  Also eliminate_regs here.
3970         (add_AT_location_description): Not here.  Don't emit anything 
3971         for a variable that has been optimized away.
3972         (add_const_value_attribute): Likewise.
3973
3974         * dwarfout.c (location_or_const_value_attribute):
3975         leaf_renumber_regs_insn.  Also eliminate_regs here.
3976         (location_attribute): Not here.
3977
3978         * stor-layout.c (layout_type): Fix ancient code to match ancient
3979         comment.  Use mode of field for one-field structs.
3980
3981 Sun Jul 27 12:09:02 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3982
3983         * function.c (put_var_into_stack, trampoline_address): Treat
3984         inline_function_decl like current_function_decl.
3985         * expr.c (expand_expr, case LABEL_DECL): Likewise.
3986         (expand_expr, case SAVE_EXPR): Handle top-level SAVE_EXPR by
3987         moving into current function; abort if in incorrect context.
3988         * fold-const.c (fold_range_test, fold): Avoid making SAVE_EXPR
3989         if at top level.
3990
3991         * dwarfout.c (ASM_OUTPUT_SOURCE_FILENAME): Delete default value.
3992
3993         * alpha.h (TARGET_SWITCHES): Add -mno-byte.
3994
3995         * expr.c (get_inner_unaligned_p): Deleted.
3996         (expand_assignment): Remove special-case of constant array.
3997         (expand_expr, case ARRAY_REF): Likewise, and clean up remaining code.
3998
3999         * explow.c (probe_stack_range): Do probing with loop if more
4000         than a small number.
4001
4002 Fri Jul 25 15:42:34 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
4003
4004         * configure.in: Finish fixing calculation if default thread
4005         support is enabled.
4006
4007 Fri Jul 25 15:30:09 1997  Doug Evans  <dje@cygnus.com>
4008
4009         * Makefile.in (native): Depend on config.h.
4010         (gcc.o): Depend on Makefile, not config.status.
4011
4012 Fri Jul 25 10:56:50 1997  Jeffrey A Law  (law@cygnus.com)
4013
4014         * pa.c (pa_reorg): If TARGET_BIG_SWITCH, then do not explode
4015         ADDR_VEC insns.  Slightly rework code which explodes ADDR_VEC
4016         insns.
4017         * pa.h (TARGET_BIG_SWITCH): Define.
4018         (TARGET_SWITCHES): Add "big-switch" and "no-big-switch".
4019         (CASE_VECTOR_MODE): Use TI or DI depending on TARGET_BIG_SWITCH.
4020         (CASE_DROPS_THROUGH): Remove definition.
4021         (ASM_OUTPUT_ADDR_VEC_ELT): Rewrite to handle TARGET_BIG_SWITCH.
4022         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4023         * pa.md (casesi): Rework to avoid some potential long branch
4024         problems (also makes generated code faster!).  Handle
4025         TARGET_BIG_SWITCH.
4026         (casesi0): Corresponding changes.
4027
4028 Fri Jul 25 08:36:47 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4029
4030         * calls.c: (expand_call): If -fstack-check and temp needed
4031         for arg is too large, use alloca.
4032         * expr.c (expand_expr, case MODIFY_EXPR): Don't preexpand calls
4033         if LHS is an indirect via a constant pointer.
4034
4035 Thu Jul 24 21:49:11 1997  Pat Rankin  <rankin@eql.caltech.edu>
4036
4037         * bitmap.c (bitmap_operation): Reset CURRENT on deferred deletion.
4038
4039 Wed Jul 23 23:52:14 1997  Chris Smith  <csmith@convex.hp.com>
4040
4041         * convex.h (CHECK_FLOAT_VALUE): Fix OVERFLOW capitalization.
4042
4043 Wed Jul 23 13:00:47 1997  Richard Earnshaw <rearnsha@cambridge.arm.com>
4044
4045         * configure.in (arm-*-netbsd*): Fix typo setting tmake_file.
4046
4047 Wed Jul 23 06:39:35 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4048
4049         * configure.in (alpha*): Put quotes around MASK_GAS.
4050
4051 Tue Jul 22 15:24:45 1997  Brendan Kehoe  <brendan@cygnus.com>
4052
4053         * tree.c (array_type_nelts): Make sure the domain of TYPE is set
4054         before we try to use it.
4055
4056 Tue Jul 22 12:26:13 1997  Doug Evans  <dje@cygnus.com>
4057
4058         * sparc.c (gen_v9_scc): Handle early clobber of result.
4059         * sparc.md (seqdi_special): Don't clobber %xcc.
4060         (snedi_special, seqdi_special_trunc, snedi_special_trunc): Likewise.
4061         (snedi_zero, neg_snedi_zero, seqdi_zero, neg_seqdi_zero): Likewise.
4062         (snedi_zero_trunc, seqdi_zero_trunc): Likewise. Renamed from ..._sp64.
4063         (snedi_zero_trunc_sp32, seqdi_zero_trunc_sp32): Delete.
4064
4065         * Makefile.in (Makefile): Pass xmake_file, tmake_file to
4066         configure.frag
4067         (distclean): Delete Make-host, Make-target.
4068         * configure.in (host_overrides): Set to Make-host.
4069         (dep_host_xmakefile): Loop over all elements in host_make_file.
4070         (target_overrides): Set to Make-target.
4071         (dep_tmake_file):  Loop over all elements in tmake_file.
4072         (configure.frag): Pass dep_host_xmake_file, dep_tmake_file.
4073         * configure.frag: New arguments xmake_files, tmake_files.
4074         Build Make-host, Make-target.
4075
4076 Mon Jul 21 23:17:44 1997  Paul Eggert  <eggert@twinsun.com>     
4077
4078         * objc/Make-lang.in, objc/Makefile.in: Comment out lines containing
4079         just formfeeds.
4080
4081 Mon Jul 21 14:05:46 1997  Doug Evans  <dje@cygnus.com>
4082
4083         * Makefile.in (Makefile): Depend on config.status instead
4084         of configure.
4085         (config.status): Depend on configure.  Run config.status --recheck
4086         if out of date.
4087         (cstamp-h.in): Use echo instead of touch.
4088
4089         * reload1.c (reload_cse_mem_conflict_p): Restore handling of
4090         (mem:BLK const0_rtx) meaning all memory is clobbered.
4091
4092 Mon Jul 21 06:20:10 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4093
4094         * m68k.md (iorsi_zexthi_ashl16): Mark output operand as earlyclobber.
4095
4096 Sun Jul 20 06:11:30 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4097
4098         * configure.in (alpha*-*-*): Set cpu_type to alpha.
4099         Change "alpha-" to "alpha*-" in all entries.
4100         Set target_cpu_default for ev5 and ev56 systems.
4101         Use symbolic names for target_cpu_default.
4102         * alpha.c (override_options): Set default for alpha_cpu
4103         from TARGET_CPU_DEFAULT.
4104         * alpha.h (MASK_CPU_EV5): New macro.
4105
4106         * tree.c (contains_placeholder_p): Call contains_this_placeholder_p.
4107         (contains_this_placeholder_p): Renamed from contains_placeholder_p.
4108         Added new arg, PL.
4109         Rework to make more consistent, check more codes, and avoid
4110         undefined fields.
4111         * expr.c (expand_expr, case PLACEHOLDER_EXPR): Pick outermost
4112         object in placeholder_list of right type without a PLACEHOLDER_EXPR.
4113
4114 Sat Jul 19 18:00:01 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4115
4116         * alpha.c (override_options): Allow processor of ev56 or 21164a.
4117         (input_operand, case MEM): Correct test involving TARGET_BYTE_OPS.
4118         * alpha.h (SECONDARY_{IN,OUT}PUT_RELOAD_CLASS): Don't need for
4119         QImode or HImode if TARGET_BYTE_OPS.
4120         (ASM_FILE_START): Write a .arch directive.
4121         (STACK_CHECK_BUILTIN): New macro.
4122         * alpha.md ({zero_,}extend[qh]i[dsh]i2): Rework TARGET_BYTE_OPS cases.
4123         (mov[hq]i): Likewise.
4124         (extend[qh]i[hsd]i2x): Add missing cases and fix typo in constraint.
4125         (reload_{in,out}[qh]i): Disable for TARGET_BYTE_OPS.
4126
4127 Fri Jul 18 23:24:57 1997  Jason Merrill  <jason@yorick.cygnus.com>
4128
4129         * varasm.c (make_decl_rtl): Don't use ASM_FORMAT_PRIVATE_NAME for
4130         local decls with TREE_PUBLIC set.
4131         (bc_make_decl_rtl): Likewise.
4132
4133 Fri Jul 18 22:16:28 1997  Doug Evans  <dje@cygnus.com>
4134
4135         * configure.in: Invoke AC_CONFIG_HEADER.
4136         Check for string.h, strings.h, stdlib.h, time.h, unistd.h.
4137         Check for whether malloc/realloc/free need to be declared.
4138         (links): Rename config.h to config2.h.
4139         (AC_OUTPUT): Create cstamp-h.
4140         * Makefile.in (config.in,cstamp-h.in): Add rules for.
4141         (config.h,cstamp-h): Add rules for.
4142         (distclean): Delete config2.h, cstamp-h.
4143         (ALL_CFLAGS): Add @DEFS@.
4144         * aclocal.m4, acconfig.h: New files.
4145
4146         * Makefile.in (distclean): Delete Make-host, Make-target.
4147         * configure.in (host_overrides): Set to host_xmake_file, don't create
4148         Make-host.
4149         (target_overrides): Set to tmake_file, don't create Make-target.
4150         (language subdir support): Keep together.
4151
4152         * c-decl.c (duplicate_decls): Set DECL_ABSTRACT_ORIGIN to olddecl
4153         if inline function and not new definition.
4154
4155         * configure.in: Don't loop trying to configure language subdirs.
4156         Don't pass to configure.lang variables it doesn't use.
4157         * configure.lang: Delete top level directory from loop.
4158         Delete code not useful for language subdirs.
4159
4160 Fri Jul 18 08:12:53 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
4161
4162         * toplev.c (rest_of_compilation): Call reload_cse_regs here.
4163         * reload1.c (reload): Don't call it here.
4164         (reload_cse_mem_conflict_p): Remove MEM_OFFSET and MEM_MODE args.
4165         (reload_cse_mem_conflict_p, case MEM): Call anti_dependence.
4166         (reload_cse_invalidate_mem): Update call to reload_cse_mem_conflict_p.
4167         (reload_cse_regs): No longer static.
4168         Call init_alias_analysis.
4169         Ignore CLOBBER in a PARALLEL.
4170
4171 Fri Jul 18 06:44:22 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4172
4173         * objc/Make-lang.in (objc-headers): Fix command for the new build
4174         directory layout, don't pass srcdir variable.
4175         * objc/Makefile.in (copy-headers): Use $(srcdir) from this
4176         makefile, not the parent's.
4177
4178 Thu Jul 17 16:03:03 1997  Doug Evans  <dje@cygnus.com>
4179
4180         * configure.lang (EXTRA_HEADERS,EXTRA_PASSES,EXTRA_PARTS): Delete.
4181         (EXTRA_PROGRAMS,EXTRA_OBJS,EXTRA_GCC_OBJS,MD_DEPS): Delete.
4182         (version) Delete duplicate entry.
4183         * configure.in (merged_frags): Delete unused variable.
4184         (extra_headers_list): Move setting outside of subdir loop.
4185         (extra_headers,extra_passes): Don't pass to configure.lang.
4186         (extra_programs,extra_parts,extra_objs): Likewise.
4187         (host_extra_gcc_objs,gxx_include_dir,md_cppflags): Likewise.
4188
4189 Thu Jul 17 07:00:43 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4190
4191         * expr.h (STACK_CHECK_*): Provide default values.
4192         (probe_stack_range): New declaration.
4193         * flags.h (flag_stack_check): Likewise.
4194         * explow.c (allocate_dynamic_stack_space): Call probe_stack_range.
4195         (emit_stack_probe, probe_stack_range): New functions.
4196         * function.c (expand_function_end): If function is non-leaf and stack 
4197         checking is requested, emit needed probes.
4198         * reload1.c (reload): If checking stack, verify frame small enough.
4199         * stmt.c (expand_decl): If stack checking, use alloca for large vars.
4200         * toplev.c (flag_stack_check): New variable.
4201         (f_options): Add "stack-check".
4202
4203         * reorg.c (mark_target_live_regs): Pass FIRST_PSEUDO_REGISTER to
4204         call to EXECUTE_IF_SET_IN_REG_SET.
4205
4206 Wed Jul 16 14:51:00 1997  Jason Merrill  <jason@yorick.cygnus.com>
4207
4208         * i960.h (ASM_OUTPUT_ALIGNED_BSS): Define.
4209         (ASM_OUTPUT_ALIGNED_LOCAL): Use standard method to convert ALIGN
4210         to power-of-two of bytes.
4211
4212         * sparc.h (ASM_OUTPUT_ALIGNED_BSS): Define.
4213         * sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Undef before definition.
4214
4215 Wed Jul 16 14:34:09 1997  Klaus Espenlaub  (kespenla@hydra.informatik.uni-ulm.de)
4216
4217         * calls.c (emit_library_call_value): Initialize all argvec elements.
4218
4219 Wed Jul 16 14:31:39 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4220
4221         * global.c (global_conflicts): Pass FIRST_PSEUDO_REGISTER to
4222         call to EXECUTE_IF_SET_IN_REG_SET.
4223
4224 Wed Jul 16 10:57:03 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
4225
4226         * From Rob Black (r.black@ic.ac.uk) and Mark Brinicombe
4227         (amb@physig.ph.kcl.ac.uk):
4228         * configure.in (arm-*-netbsd*): New configuration.
4229         * arm/netbsd.h, arm/t-netbsd, arm/xm-netbsd.h: New files.
4230         
4231 Wed Jul 16 10:57:03 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
4232
4233         * arm.c (tune_flags): New variable.
4234         (target_{cpu,fpe}_name): Delete.
4235         (arm_fpu_arch): New variable.
4236         (arm_select): Also allow -march=... to configure just the 
4237         architecture.
4238         (all_procs): Allow armv{2,2a,3,3m,4,4t} for use with -march=.
4239         (arm_override_options): Handle -march=, but don't let -mcpu=
4240         and -mtune= match the architecture names, since we can only
4241         tune for an implementation.  Rework selection of tuning options
4242         for floating point.
4243         (use_return_insn): Support interworking with Thumb code.
4244         (arm_rtx_costs): Rework multiply costs so that cost is based on
4245         the tune, not the architecture.
4246         (f_register_operand): New function.
4247         (output_return_instruction): Support interworking with Thumb code.
4248         (output_func_epilogue): Support interworking with Thumb code.
4249         Remove redundant calculation of code_size. Use floating-point
4250         load-multiples if permitted.
4251         (emit_sfm): New function.
4252         (arm_expand_prologue): Use floating-point store-multiples if 
4253         permitted.
4254
4255         * arm.h (CPP_CPU_ARCH_SPEC): Handle -march=...
4256         (TARGET_OPTIONS): Add arch= and fp=.  Delete fpe=.
4257         (enum processor_type): Add PROCESSOR_NONE, for use in all_procs table.
4258         (FP_DEFAULT): Default floating point architecture for generic 
4259         back-end.
4260         (PREDICATE_CODES): Add f_register_operand.
4261
4262         * arm.md (*push_fp_multi): New pattern.
4263
4264
4265 Tue Jul 15 22:08:47 1997  Jim Wilson  <wilson@cygnus.com>
4266
4267         * Makefile.in (exeext): Set to build_exeext not exeext.
4268         * configure.in (exeext): Delete redundant set and AC_SUBST call.
4269         Change remaining AC_SUBST to use build_exeext instead of exeext.
4270
4271 Tue Jul 15 15:48:25 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
4272
4273         * configure.in: Fix calculation if default thread support is enabled.
4274
4275 Tue Jul 15 13:38:46 1997  Mike Meissner  <meissner@cygnus.com>
4276
4277         * rtl.h (replace_regs): Declare.
4278
4279 Mon Jul 14 16:18:19 1997  Jason Merrill  <jason@yorick.cygnus.com>
4280
4281         * i960.h (ASM_OUTPUT_MI_THUNK): Define.
4282
4283         * dwarf2out.c (gen_subprogram_die): Remove unreachable and redundant
4284         code.
4285
4286 Mon Jul 14 14:22:45 1997  Jeffrey A Law  (law@cygnus.com)
4287
4288         * calls.c (emit_library_call): Use right index into argvec array
4289         when iterating over arguments which need to be pushed on the stack.
4290         (emit_library_call_value): Likewise.
4291
4292 Mon Jul 14 08:17:41 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4293
4294         * gcc.c (convert_filename): Fix typo.
4295
4296 Mon Jul 14 08:10:12 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4297
4298         * configure.in: Clear headers and lib2funcs before re-reading
4299         config-lang.in.
4300
4301         * m68k/linux.h (LINK_SPEC): Fix last change.
4302
4303 Mon Jul 14 08:03:38 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
4304
4305         * configure.in (sparc-*-linux-gnu{*,libc1*}): Add sparc/t-linux.
4306         * sparc/t-linux: New file.
4307
4308         * alpha/elf.h (LINK_SPEC): Fix typo.
4309         * configure.in (alpha-*-linux-gnu*): Set tmake_file.
4310         * alpha/t-linux: New file.
4311
4312 Mon Jul 14 07:41:37 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
4313
4314         * m68k.c (output_{and,ior,xor}si3): New functions from patterns bodies.
4315         * m68k.h (output_{and,ior,xor}si3): New extern declarations.
4316         * m68k.md (adddi3, subdi3): Allow constant operand.
4317         (anddi3, iordi3, xordi3): New patterns.
4318         ({and,ior,xor}si3_internal): Use corresponding output_???si3 function.
4319
4320 Mon Jul 14 07:33:11 1997  Fila Kolodny  <fila@ibi.com>
4321
4322         * configure.in (*-*-gnu*): Add crt{begin,end}S.o to extra_parts.
4323
4324 Mon Jul 14 07:26:36 1997  Craig Burley  <burley@gnu.ai.mit.edu>
4325
4326         * varasm.c (assemble_variable): If low part of size
4327         doesn't fit in an int, variable is too large.
4328
4329 Mon Jul 14 06:51:37 1997  Mike Meissner  <meissner@cygnus.com>
4330
4331         * bitmap.{h,c}: New files.
4332         * Makefile.in (OBJS): Add bitmap.o.
4333         (BASIC_BLOCK_H): New make variable for basic-block.h, bitmap.h.
4334         ({flow,combine,regclass,local-alloc,reload1,reorg,sched}.o): Use
4335         BASIC_BLOCK_H variable instead of basic-block.h.
4336         * basic-block.h (*REG_SET): Delete old implementation; use bitmap.h.
4337         (regset_{size,bytes}): Delete.
4338         (regs_live_at_setjmp): Declare.
4339         (EXECUTE_IF_SET_AND_RESET_IN_REG_SET): Delete.
4340         * flow.c (init_regset_vector): Make global; don't take basic block
4341         times # of pseduos as argument.
4342         (life_analysis): Change all init_regset_vector calls.
4343         Use free_regset_vector to release arrays only flow uses at end.
4344         (allocate_for_life_analysis): Change init_regset_vector call.
4345         Don't set regset_{size,bytes}.
4346         (free_regset_vector): Call FREE_REG_SET to release any
4347         memory allocated by each vector.
4348         (propagate_block): Call FREE_REG_SET on dead/live.
4349         (mark_used_regs): Don't use REGSET_ELT_TYPE anymore.
4350         * output.h (allocate_for_life_analysis): Add declaration.
4351         (regno_uninitialized, regno_clobbered_at_setjmp): Likewise.
4352         (dump_flow_info, flow_analysis): Likewise.
4353         * regclass.c (init_reg_sets): Invoke INIT_ONCE_REG_SET.
4354         (allocate_reg_info): Invoke MAX_REGNO_REG_SET.
4355         (regset_release_memory): Free basic_block_live_at_start storage.
4356         * reorg.c (mark_target_live_regs): Delete unused variables.
4357         * sched.c (schedule_block): Free space associated with
4358         reg_pending_sets and old_live_regs.
4359         (schedule_insns): Free bb_{dead,live}_regs on first pass.
4360         (sched_analyze_insn): Use EXECUTE_IF_SET_IN_REG_SET and then clear.
4361         * toplev.c (rest_of_compilation): Call regset_release_memory.
4362
4363 Mon Jul 14 00:14:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
4364
4365         * toplev.c (main): Prefer DWARF 2 or stabs with -ggdb.
4366         * ns32k/tek6000.h (PREFERRED_DEBUGGING_TYPE): DBX_DEBUG.
4367         * alpha.h (PREFERRED_DEBUGGING_TYPE): SDB_DEBUG.
4368         * mips.h (PREFERRED_DEBUGGING_TYPE): SDB_DEBUG.
4369
4370 Sun Jul 13 15:11:08 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4371
4372         * stupid.c (stupid_mark_refs): If setting reg set only in this
4373         insn and not referenced, make REG_UNUSED note.
4374
4375 Sun Jul 13 14:03:19 1997  Michael Meissner  <meissner@cygnus.com>
4376
4377         * gcc.c (process_command): If -save-temps and -pipe were specified
4378         together, don't do -pipe.
4379
4380 Sun Jul 13 12:27:03 1997  Doug Evans  <dje@cygnus.com>
4381
4382         * gcc.c (main): Handle blank in version_string when comparing
4383         with compiler_version.
4384
4385 Sat Jul 12 01:53:55 1997  Jason Merrill  <jason@yorick.cygnus.com>
4386
4387         * sparc.c (output_function_prologue): Fix offset from CFA.
4388         (sparc_flat_output_function_prologue): Likewise.
4389
4390 Fri Jul 11 09:49:15 1997  Jeffrey A Law  (law@cygnus.com)
4391         
4392         * mips.c (epilogue_reg_mentioned_p): Delete unused function.
4393         (mips_epilogue_delay_slots): Likewise.
4394         (function_epilogue): Greatly simplify.
4395         (mips_expand_epilogue): If we have a null prologue/epilogue,
4396         then use a normal return insn.  Emit blockage insns before
4397         stack pointer adjustments.
4398         (mips_can_use_return_insn): Renamed from simple_epilogue_p.  All
4399         callers changed.  Do not use return insns if $31 is live in the
4400         function or if generating profiling information.
4401         * mips.h (DELAY_SLOTS_FOR_EPILOGUE): Delete.
4402         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
4403         * mips.md (return): Remove expander and change the pattern to
4404         look like a standard "return" insn.
4405         (return_internal): Show use of $31 explictly.
4406         (epilogue expander): Enable.
4407
4408 Thu Jul 10 13:04:53 1997  Doug Evans  <dje@cygnus.com>
4409
4410         * cccp.c (INO_T_EQ): Return 0 for MSDOS.
4411
4412         * Makefile.in (CC): Use autoconf value.
4413
4414 Tue Jul  8 18:08:00 1997  Jim Wilson  <wilson@cygnus.com>
4415
4416         * dwarf2out.c (gen_subprogram_die): When handling declarations, test
4417         DECL_CONTEXT not decl_class_context before equate_decl_number_to_die.
4418
4419 Tue Jul  8 16:47:13 1997  Michael Meissner  <meissner@cygnus.com>
4420
4421         * rs6000.md (movsi define_split): Use unsigned HOST_WIDE_INT,
4422         not unsigned.
4423
4424 Sat Jul  7 00:01:41 1997  Jim Meyering <meyering@eng.ascend.com>
4425
4426         * i386/t-sol2 (crt[1in].o): Also depend on $(GCC_PASSES).
4427
4428 Fri Jul  4 11:45:39 1997  Jason Merrill  <jason@yorick.cygnus.com>
4429
4430         * dwarf2out.c (DWARF_CIE_HEADER_SIZE, DWARF_FDE_HEADER_SIZE,
4431         size_of_cfi, size_of_fde, calc_fde_sizes, next_fde_offset,
4432         cie_size): Lose.
4433         (ASM_OUTPUT_DWARF_STRING): Move earlier.
4434         (INCOMING_FRAME_SP_OFFSET): Provide default.
4435         (initial_return_save): Adjust for CFA offset.
4436         (dwarf2out_frame_debug): Lookup initial CFA offset when setting up.
4437         (output_call_frame_info): Use label subtraction for length fields.
4438         Add pointer to exception region information in for_eh case.
4439         (dwarf2out_do_frame): New fn.
4440         (dwarf2out_frame_init): Use INCOMING_FRAME_SP_OFFSET.
4441         (dwarf2out_frame_finish): Don't bother emitting .debug_frame for
4442         non-Irix targets.  Just emit .eh_frame.
4443         (output_die): Refer to an FDE with label subtraction.
4444         * i386.h (INCOMING_FRAME_SP_OFFSET): Define.
4445         * defaults.h (DWARF2_UNWIND_INFO): Define if
4446         INCOMING_RETURN_ADDR_RTX is provided.
4447         * final.c (final): Don't call dwarf2out_frame_debug unless we are
4448         doing dwarf 2.
4449
4450 Thu Jul  3 17:37:52 1997  Jim Wilson  <wilson@cygnus.com>
4451
4452         * fp-bit.c (unpack_d): Check fraction not sign to distinquish QNaN.
4453
4454 Wed Jul  2 09:48:03 1997  Michael Meissner  <meissner@cygnus.com>
4455
4456         * loop.c (strength_reduce): Make sure register does not exceed the
4457         table size when looking up the last UID.
4458
4459 Wed Jul  2 07:47:44 1997  Nick Burrett  <n.a.burrett@btinternet.com>
4460
4461         * genoutput.c (process_template): Place increment expression
4462         outside of putchar function call.
4463
4464 Wed Jul  2 06:56:52 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
4465
4466         * sparc/linux.h (LIBGCC_SPEC): Removed.
4467         (CC1_SPEC): Add %{profile:-p}.
4468         ({CPP,LIB,LINK}_SPEC): Choose glibc 1 or 2 depending on USE_GNULIBC_1.
4469         * configure.in (sparc-*-linux-gnulibc1*): New configuration.
4470
4471         * configure.in (powerpc-*-linuxgnu*): Default thread_file is posix.
4472         Set xmake_file to x-linux.  Add extra_parts.
4473         * rs6000/linux.h (LINK_SPEC): Defined.
4474
4475         * m68k/linux.h (LINK_SPEC): Pass -shared for -shared.
4476         ({CPP,LINK}_SPEC): Choose for glibc 1 or 2 depending on USE_GNULIBC_1.
4477         * configure.in (m68k-*-linux-gnu*): Default thread_file is `posix'.
4478         (m68k-*-linux-gnulibc1): New configuration.
4479
4480         * alpha/elf.h (LINK_SPEC): Change ld-gnu.so.1 to ld-linux.so.2.
4481         * configure.in (alpha-*-linux-gnu*): Default thread_file is `posix'.
4482
4483 Wed Jul  2 06:12:37 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4484
4485         * alpha.md (divsi3, modsi3, udivsi3): Comment out.
4486         (extendsfsd2_no_tp): Add alternative with output in MEM, input in REG.
4487
4488         * configure.in (*-linux*): Add "-gnu" to names to match.
4489
4490         * libgcc2.c (_trampoline): Add stdcall attribute to VirtualProtect
4491         on i386.
4492
4493         * objc/objc.gperf: Renamed from gperf.
4494
4495 Wed Jul  2 05:42:19 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4496
4497         * objc/Make-lang.in ($(srcdir)/objc/objc-parse.c): Fix command
4498         to use the right file names.
4499
4500 Tue Jul  1 23:25:42 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4501
4502         * reorg.c (redundant_insn): If INSN or possible match has REG_UNUSED
4503         note, don't have match.
4504
4505 Tue Jul  1 18:36:24 1997  Doug Evans  <dje@cygnus.com>
4506
4507         * mips.c (mips_output_external): Don't output .extern's for
4508         variables in user specified sections unless they're .sbss/.sdata.
4509
4510 Tue Jul  1 18:30:26 1997  Jim Wilson  <wilson@cygnus.com>
4511
4512         * cse.c (find_best_addr): Add missing rtx_cost arguments.
4513
4514         * fp-bit.c (float_to_usi): Move code for negative numbers before code
4515         for infinity.  Modify infinty code to only handle positive infinities.
4516
4517 Tue Jul  1 11:16:41 1997  Robert Lipe  <robertl@dgii.com>
4518
4519         * fixinc.sco: Restore pwd after copy.
4520         Convert declaration of abs in math.h to prototype.
4521         Fix static functions in sys/stat.h for C++.
4522
4523 Tue Jul  1 10:55:47 1997  Michael Meissner  <meissner@cygnus.com>
4524
4525         * rs6000.md ({add,ior,xor}si3): Change to use define_expand wrapper
4526         and split add/ior/xor of large constants early.
4527         (andsi3): Remove 6/29 code to do and of large constants.
4528         (nor, nand, eqv, maskir): Add names to all logical define_insns.
4529
4530 Tue Jul  1 09:03:35 1997  Jeffrey A Law  (law@cygnus.com)
4531
4532         * h8300.h (BIGGEST_FIELD_ALIGNMENT): Remove definition.
4533         * mips.h (BIGGEST_FIELD_ALIGNMENT): Likewise.
4534
4535 Mon Jun 30 14:58:00 1997  Jeffrey A Law  (law@cygnus.com)
4536
4537         * sh.c (sh_expand_epilogue): Emit blockage insn before cutting
4538         back stack.
4539
4540 Sun Jun 29 11:27:07 1997  Michael Meissner  <meissner@cygnus.com>
4541
4542         * rs6000.h (TARGET_FLAGS): Add -m{,no-}update to suppress
4543         creating load/store with update instructions, and also
4544         -m{,no-}fused-madd to suppress the generation of fused add and
4545         multiply instructions.  Move debug flags to TARGET_OPTIONS.
4546         (GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_{INC,DEC} if -mno-update.
4547         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
4548         (rs6000_debug_{name,stack,arg}): Add declarations.
4549         (toc_initialized): Likewise.
4550         (got_no_const_operand): Likewise.
4551         (PREDICATE_CODES): Add got_no_const_operand.
4552         (toc_section): Make toc_initialized a global.
4553         (RTX_COSTS): Set appropriate costs for add, logical operators that
4554         are really two instructions.
4555         
4556         * rs6000.c (rs6000_debug_{name,stack,arg}): Add definitions.
4557         (rs6000_override_options): Process debug flags.
4558         (toc_initialized): Global to say toc initialized.
4559         (small_data_operand): Use #if TARGET_ELF, not #ifdef TARGET_SDATA.
4560         (rs6000_init_expanders): Likewise.
4561         (SMALL_DATA_RELOC): Likewise.
4562         (got_no_const_operand): Recognize SYMBOL_REF and LABEL_REF.
4563         (rs6000_makes_calls): System V profiling doesn't count as a call.
4564         (rs6000_stack_info): Likewise.
4565         (rs6000_output_load_toc_table): Take register number argument to
4566         determine register to load.  Generate correct code if more than
4567         one toc table is done in System V due to profiling or non-local
4568         gotos.  If System V toc is not initialized, initialize it now.
4569         (rs6000_allocate_stack_space): Move code from output_prolog to
4570         allocate stack space.  Take -mno-update into account.
4571         (output_prolog): Call rs6000_allocate_stack_space.  Only set
4572         rs6000_pic_func_labelno if not profiling.
4573         (output_function_profiler): Implement System V profiling.
4574         (and_operand): Don't call reg_or_short_operand.
4575         (rs6000_finalize_pic): If not optimizing, insert a USE of the GOT
4576         register as the last insn.
4577         
4578         * rs6000.md (load/store update): Take -mno-update into account.
4579         If -msoft-float, support SF load/store with update to GPR regs.
4580         (allocate_stack): Take -mno-update into account.
4581         (add/subtract + multiply instructions): Take -mno-fused-madd into
4582         account.
4583         (nonlocal_goto_receiver): Specify register # to load.
4584         ({add,and,ior,xor}si3): Recognize operation done with full 32 bit
4585         constant, splitting latter if need be.
4586         (andsi3 define_split): Fix up splitting andsi3 of large constant.
4587         ({ior,xor}si3 define_split): Use GEN_INT to create integer rtx
4588         values.
4589         (movsi_got{,_internal}): Split the load of a CONST into load of
4590         the SYMBOL_REF/LABEL_REF and an add.
4591         (movsi): Know that addsi3 can handle large values now for NT.
4592
4593         * sysv4.h (TARGET_SDATA): Remove explicit bit for -msdata.
4594         (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
4595         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
4596         (SUBTARGET_SWITCHES): Indicate -m{,no-}sdata doesn't set any flags.
4597         (ASM_SPEC): Only pass -m{,no-}reg-names if assembling .s/.S files.
4598         (CC1_SPEC): If -msdata, invoke compiler with -msdata=default.
4599         (PROFILE_BEFORE_PROLOGUE): Likewise.
4600         (RS6000_MCOUNT): Define as "_mcount".
4601         (toc_section): Make toc_initialized a global.
4602
4603 Fri Jun 27 19:01:11 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
4604
4605         * config/t-linux-gnulibc1: New file.
4606         * configure.in (i[3456]86-*-linux*): Default thread_file is `posix'.
4607         (i[3456]86-*-linux*gnulibc1): New case.
4608         * config/linux.h (LIB_SPEC): Choose for glibc 1 or 2 depending
4609         on USE_GNULIBC_1.
4610         * i386/linux.h (CPP_SPEC, LINK_SPEC): Likewise.
4611
4612 Fri Jun 27 19:00:52 1997  Ralf Baechle  <ralf@waldorf-gmbh.de>
4613
4614         * config/linux.h (PREFERRED_DEBUGGING_TYPE): Undefine before define.
4615
4616 Fri Jun 27 18:35:04 1997  Alan Modra  <alan@spri.levels.unisa.edu.au>
4617         
4618         * configure.in: Clean up Make-{host,target,hooks} in all
4619         subdirs, not just '.'.
4620         * Makefile.in (distclean): Delete */Make-{host,target,lang,hooks}.
4621
4622 Fri Jun 27 18:27:11 1997  Fila Kolodny  <fila@ibi.com>
4623
4624         * config/xm-gnu.h (fcntl.h): Only include if not building libgcc.a.
4625
4626 Fri Jun 27 18:17:44 1997  Doug Evans  <dje@cygnus.com>
4627
4628         * configure.frag: Rewrite.
4629
4630         * objc/Make-lang.in (OBJC_CCOMMON): Object files don't go in srcdir.
4631         (OBJC_OBJS): Likewise.
4632         (OBJC_O): Likewise.
4633         (objc-parse.o, objc-act.o): Fix rules.
4634         (objc/libobjc files): Fix rules.
4635
4636 Fri Jun 27 13:23:38 1997  Andrew Cagney  <cagney@tpgi.com.au>
4637
4638         * fp-bit.c (float_to_si): Correct return value when Inf.
4639
4640 Fri Jun 27 10:47:09 1997  Scott Christley <scottc@net-community.com>
4641
4642         * Makefile.in (DLLTOOL): Define.
4643         * objc/Make-lang.in (libobjc_entry.o, libobjc_s.a, libobjc.dll):
4644         New targets.
4645         (objc.install-normal): Install Objective-C runtime as a DLL.
4646         (objc.mostlyclean): Clean up files used to build DLL.
4647         * objc/libobjc.def: New file.
4648         * objc/libobjc_entry.c: New file.
4649
4650         * objc/sendmsg.c (search_for_method_in_list): No longer static.
4651
4652         * Makefile.in (GCC_THREAD_FILE): Renamed from OBJC_THREAD_FILE.
4653         * configure.lang (GCC_THREAD_FILE): Likewise.
4654         * configure.in (--enable-threads): New parameter.
4655         * objc/Make-lang.in (OBJC_THREAD_FILE): New definition.e
4656         * objc/config-lang.in: Print message about ObjC thread file.
4657
4658         * cccp.c (INO_T_EQ): Define for Win32 but not Cygwin32.
4659         * i386/mingw32.h: New file.
4660         * i386/xm-mingw32.h: New file.
4661         * configure.in (i[3456]86-*-mingw32): New target.
4662         * protoize.c (link): Eliminate definition on Win32.
4663
4664         * objc/thr-posix.c (__objc_thread_yield): Use sched_yield instead.
4665
4666 Fri Jun 27 10:36:41 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
4667
4668         * stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
4669         Round up when calculating possible end address.
4670
4671 Wed Jun 25 19:54:29 1997  Jim Wilson  <wilson@cygnus.com>
4672
4673         * unroll.c (final_giv_value): Verify that bl->initial_value is
4674         invariant before trying to use it.
4675
4676 Wed Jun 25 18:13:05 1997  Michael Meissner  <meissner@cygnus.com>
4677
4678         * rs6000/sysv4.h (WCHAR_TYPE{,_SIZE}): Make wchar_t long as per
4679         ABI spec.
4680
4681 Wed Jun 25 16:56:16 1997  Jason Merrill  <jason@yorick.cygnus.com>
4682
4683         * sparc.h (INCOMING_RETURN_ADDR_RTX): Define.
4684         (DBX_REGISTER_NUMBER): Fix frame pointer regno for -mflat.
4685         * sol2.h (DBX_REGISTER_NUMBER): Likewise.
4686         * sparc.c (save_regs): Emit dwarf2 frame debug info.
4687         (output_function_prologue, sparc_flat_save_restore,
4688         sparc_flat_output_function_prologue): Likewise.
4689
4690         * dwarf2.h (enum dwarf_call_frame_info): Add DW_CFA_GNU_window_save.
4691         * dwarf2out.c (dwarf_cfi_name, output_cfi): Support it.
4692         (dwarf2out_cfi_label): Make non-static.
4693         (initial_return_save): Support PLUS.
4694         (dwarf2out_window_save, dwarf2out_return_save, 
4695         dwarf2out_return_reg): New fns.
4696
4697         * dwarf2out.c (SECTION_FORMAT): Use PUSHSECTION_FORMAT, if defined.
4698         (DEBUG_INFO_SECTION): Rename from DEBUG_SECTION.
4699         (DEBUG_LINE_SECTION): Rename from LINE_SECTION.
4700         * mips/iris6.h: Likewise.
4701
4702 Wed Jun 25 16:25:41 1997  Scott Christley <scottc@net-community.com>
4703
4704         * Makefile.in (GCC_PASSES): Don't define with $(exeext).
4705         * configure.in ({cc,stage_prefix}_set_by_configure): Eliminate extra
4706         comma and don't pass value to configure.lang.
4707         * objc/Make-lang.in (objc-runtime): Add objc-headers.
4708
4709         * configure.in: Execute configure.frag in a shell.
4710
4711         * configure.in (cross_overrides, build_overrides): Default to
4712         /dev/null to help platforms where sed cannot handle empty filenames.
4713
4714         * Reorganize thread implementation to make a clearly defined
4715         front-end/back-end interface.
4716         * objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Completely
4717         rework according to new interface.
4718         * objc/thr-{solaris,win32}.c: Likewise.
4719         * objc/thr.c: Likewise.
4720         * objc/thr.h: Define front-end/back-end interface functions and
4721         structures.
4722
4723 Wed Jun 25 16:14:10 1997  Ovidiu Predescu <ovidiu@net-community.com>
4724
4725         * Complete implementation of +load.
4726         * objc/init.c (objc_send_load): New function.
4727         (objc_class_tree): New structure.
4728         (create_tree_of_subclasses_inherited_from): New function.
4729         (__objc_tree_insert_class): New function.
4730         (objc_tree_insert_class): New function.
4731         (objc_preorder_traverse): New function.
4732         (objc_postorder_traverse): New function.
4733         (__objc_tree_print): New function.
4734         (__objc_destroy_class_tree_node): New function.
4735         (class_is_subclass_of_class): New function.
4736         (__objc_exec_class): Allocate class tree list and load hash table.
4737         (__objc_send_message_in_list): Rewrite using hash table.
4738         (__objc_send_load): Remove calls to _objc_load_callback.
4739         (objc_send_load): Make static.  Create Tree of classes resembling
4740         class hierarchy for all modules.  Call __objc_send_load on all of 
4741         the modules in __objc_module_list.
4742         (__objc_create_classes_tree): New function.
4743
4744         * objc/encoding.h (method_get_sizeof_arguments): Fix typo.
4745         * objc/objc-api.h (OBJC_ERR_BAD_STATE): New error code.
4746         On NeXT redefine object_copy and object_dispose to avoid
4747         a conflict with those defined in system library.
4748         * objc/selector.c (__objc_register_instance_methods_to_class): New 
4749         function.
4750         * objc/runtime.h: Likewise.  Add missing function prototypes.
4751
4752 Wed Jun 25 15:09:01 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4753
4754         * Makefile.in (Makefile): Execute configure.frag from srcdir.
4755
4756         * Makefile.in (configure): Target is $(srcdir)/configure.
4757
4758 Tue Jun 24 15:18:14 1997  Jim Wilson  <wilson@cygnus.com>
4759
4760         * m68k.h (LIMIT_RELOAD_CLASS): Define.
4761
4762         * recog.c (constrain_operands): When checking earlyclobbers, use
4763         operands_match_p instead of rtx_equal_p.
4764
4765         * dwarfout.c (field_byte_offset): Check for object_offset_in_bits
4766         greater than bitpos_int and recompute object_offset_in_bytes if true.
4767
4768         * mips.md (movdi_internal): Add x/J alternative.
4769         (movdi_internal2): Add x/J alternative; change a/I to a/J.
4770         (movsi_internal1, movsi_internal2): Change x/I alternative to x/J.
4771
4772 Tue Jun 24 08:49:56 1997  Jeffrey A Law  (law@cygnus.com)
4773
4774         * pa.h (ASM_OUTPUT_SECTION_NAME): Fix typo.
4775
4776 Mon Jun 23 22:48:00 1997  Jim Wilson  <wilson@cygnus.com>
4777
4778         * unroll.c (find_splittable_givs): Set splittable_regs_updates to
4779         biv_count for reduced givs.
4780
4781 Mon Jun 23 10:51:53 1997  Jeffrey A Law  (law@cygnus.com)
4782
4783         * mn10200.c, mn10200.h, mn10200.md: New files for mn10200 port.
4784         * lib1funcs.asm, divmod.c, udivmod.c, udivmodsi4.c: Likewise.
4785         * t-mn10200, xm-mn10200.h, va-mn10200.h: Likewise.
4786         * Makefile.in (USER_H): Add va-mn10200.h.
4787         * varargs.h, stdarg.h: Include va-mn10200.h.
4788         * configure.in (mn10200-*-*): New target.
4789         
4790 Sun Jun 22 06:47:19 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
4791
4792         * combine.c (force_to_mode): Don't do anything for ASM_OPERANDS insn.
4793
4794 Sun Jun 22 06:29:28 1997  J. Kean Johnston  <jkj@sco.com>
4795
4796         * ginclude/stdarg.h: Protect va_list definition from SCO headers.
4797         * ginclude/varargs.h: Likewise.
4798
4799 Sat Jun 21 20:56:23 1997  Scott Christley <scottc@net-community.com>
4800
4801         * Make ObjC a front-end language.
4802         * Makefile.in (LANGUAGES, COMPILERS, .PHONY, stmp-int-hdrs): Remove
4803         specific references to ObjC compiler and source files.
4804         ({mostly,dist,maintainer,}clean, install-normal): Likewise
4805         (OBJC_OBJS, OBJC, OBJECTIVE-C, cc1obj, objc-runtime): Rules deleted.
4806         (libobjc.a, sublibobjc.a, objc-parse.{o, c, y}): Rules deleted.
4807         (objc-headers, install-libobjc): Rules deleted.
4808         * objc/Make-lang.in: New file; from rules deleted above.
4809         * objc/config-lang.in: New file.
4810         * objc/Makefile.in: Changes to support ObjC as a front-end language;
4811         renamed from Makefile.in.
4812         * objc-act.{c,h}, objc-parse.{c,y}, objc-tree.def: Moved to objc dir.
4813
4814 Sat Jun 21 07:54:36 1997  Robert Lipe <robertl@dgii.com>
4815
4816         * fixinc.sco (math.h): Correct the collision of "exception".
4817
4818 Sat Jun 21 06:51:40 1997  Peter Gerwinski  <peter@agnes.dida.physik.uni-essen.de>
4819
4820         * rs6000.c (output_epilog): Name is "GNU Pascal", not all caps.
4821
4822 Sat Jun 21 06:29:19 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
4823
4824         * gcc.c (main): Check for and read ${libdir}/gcc-lib/specs to
4825         override the default specs.
4826
4827 Fri Jun 20 17:20:15 1997  Jim Wilson  <wilson@cygnus.com>
4828
4829         * mips.c (output_block_move): When loading addresses into registers,
4830         add checks for ABI_N32 and ABI_64.
4831         (mips_expand_prologue): Add check for SImode in code splitting
4832         tsize_rtx when it is large_int.
4833
4834 Fri Jun 20 09:07:31 1997  Russell King  <rmk92@ecs.soton.ac.uk>
4835
4836         * configure.in (arm-*-linuxaout): New target.
4837         * arm/lib1funcs-linux.asm, arm/linux-gas.h: New files.
4838         * arm/linux.h, arm/t-linux, arm/xm-linux.h: New file.
4839         * xm-linux.h: Undef some macros before defining them.
4840
4841 Thu Jun 19 21:18:20 1997  Jim Wilson  <wilson@cygnus.com>
4842
4843         * dwarf2out.c (output_line_info): Always use DW_LNE_set_address instead
4844         of DW_LNS_fixed_advance_pc for line number addresses.
4845         (size_of_line_info): Adjust size calculation as per above change.
4846         (text_end_label): Make it static.
4847
4848 Thu Jun 19 14:55:49 1997  Brendan Kehoe  <brendan@cygnus.com>
4849
4850         * toplev.c (xmalloc): Only give the fatal msg if SIZE is non-zero.
4851
4852 Sun Apr 27 23:19:13 1997  Ulrich Drepper  <drepper@cygnus.com>
4853
4854         * libgcc2.c (__eh_type):  Remove `extern' to make this a definition.
4855
4856 Wed Jun 18 18:10:16 1997  Per Bothner  <bothner@cygnus.com>
4857
4858         * dbxout.c (dbxout_type_fields):  Skip field if DECL_IGNORED_P.
4859
4860 Wed Jun 18 18:04:33 1997  Mike Stump  <mrs@cygnus.com>
4861
4862         * except.c (end_eh_unwinder): If we have a return instruction, we
4863         have to make sure we use it and don't fall off the end of the
4864         function in the unwinder.
4865
4866 Wed Jun 18 14:27:58 1997  Mike Stump  <mrs@cygnus.com>
4867  
4868         * flow.c (find_basic_blocks): Fix end case bug.
4869  
4870 Tue Jun 17 18:35:57 1997  Mike Stump  <mrs@cygnus.com>
4871
4872         * libgcc2.c (__eh_pcnthrow): Add support -fno-sjlj-exceptions
4873         -fPIC exception handling on the SPARC.
4874         * sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
4875         * libgcc2.c (__eh_ffetmnpc): Remove.
4876
4877 Mon Jun 16 20:28:51 1997  Jason Merrill  <jason@yorick.cygnus.com>
4878
4879         * collect2.c (extract_string): Null-terminate.
4880
4881 Mon Jun 16 14:38:44 1997  Michael Meissner  <meissner@cygnus.com>
4882
4883         * combine.c (set_nonzero_bits_and_sign_copies): Use REG_SET macros
4884         instead of doing bit operations directly.
4885         (try_combine,reg_dead_at_p): Ditto.
4886         * caller-save.c (save_call_clobbered_regs): Ditto.
4887         * reload1.c (reload): Ditto.
4888         * local-alloc.c (update_equiv_regs,block_alloc): Ditto.
4889         * sched.c (schedule_block): Dito.
4890
4891 Sun Jun 15 20:46:12 1997  Jim Wilson  <wilson@cygnus.com>
4892
4893         * dwarf2out.c (dwarf2out_frame_debug): Handle IOR.
4894         (struct limbo_die_struct): Define.
4895         (TYPE_DECL_IS_STUB): Call decl_ultimate_origin if DECL_ABTRACT_ORIGIN
4896         is set.
4897         (limbo_die_count): Delete.
4898         (libmo_die_list): Define.
4899         (new_die): Add die to limbo_die_list instead of incrementing
4900         limbo_die_count.
4901         (add_AT_location_description): Renamed from add_location_attribute.
4902         New parameter attr_kind.
4903         (add_location_or_const_value_attribute, gen_subprogram_die,
4904         add_bound_info): Change call to add_AT_location_description.
4905         (add_bound_info): Add call to contains_placeholder_p.  Ignore
4906         MAX_EXPR and VAR_DECL.
4907         (add_subscript_info): Ignore the index type if it is an unnamed
4908         integral type.
4909         (scope_die_for): Move check for function-local tags after code setting
4910         containing_scope, and add check for non-NULL containing_scope
4911         (add_type_attribute): If unnamed type, use TREE_TYPE instead.
4912         (gen_enumeration_type_die, gen_struct_or_union_type_die): Call
4913         add_child_die if die_parent is NULL.
4914         (gen_subprogram_die): Ifdef out DW_AT_static_link code.
4915         (decls_for_scope): Delete decrement of limbo_die_count.
4916         (dwarf2out_finish): Add code to traverse the limbo_die_list, and
4917         call add_child_die if die_parent is NULL.  Delete limbo_die_count code.
4918         * mips.c (mips_expand_prologue): If tsize_rtx is large_int, emit two
4919         insns instead of one splitable insn, setting RTX_FRAME_RELATED_P.
4920
4921 Fri Jun 13 19:33:35 1997  Brendan Kehoe  <brendan@cygnus.com>
4922
4923         * fixincludes: Also fix AIX NULL macro in sys/{dir,param,types}.h.
4924
4925 Thu Jun 12 22:53:12 1997  Jim Wilson  <wilson@cygnus.com>
4926
4927         * m68k.md (mov[qhs]i): Remove pair of constraints which allow
4928         offsetable memory addresses to be moved to the same for TARGET_5200.
4929
4930 Thu Jun 12 15:33:01 1997  Jeffrey A Law  (law@cygnus.com)
4931
4932         * pa.h (SELECT_RTX_SECTION): Place symbolic operands into the
4933         data section.
4934
4935         * pa.c (emit_move_sequence): Rewrite code to handle arithmetic
4936         involving plabels.
4937
4938 Wed Jun 11 08:57:14 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
4939
4940         * tree.c (unsave_expr_now): Avoid recursing into the parts of
4941         the tree that are RTL.
4942
4943 Thu Jun 12 09:43:55 1997  Jeffrey A Law  (law@cygnus.com)
4944
4945         * reorg.c (emit_delay_sequence): Call set_new_first_and_last_insn
4946         after the new sequence insn has been spliced into the insn chain.
4947
4948 Wed Jun 11 23:10:49 1997  Jeffrey A Law  (law@cygnus.com)
4949
4950         * mn10300.md (call, call_value): Use "call" instead of "calls"
4951         for calls to named functions.
4952
4953 Wed Jun 11 00:22:34 1997  Jim Wilson  <wilson@cygnus.com>
4954
4955         * configure, configure.in: Restore changes from Feb 15 to Apr 13
4956         lost during conversion to autoconf.
4957
4958 Tue Jun 10 18:23:35 1997  Mike Stump  <mrs@cygnus.com>
4959
4960         * stmt.c (expand_decl_cleanup): Avoid core dumping when exceptions
4961         aren't on.
4962         
4963 Tue Jun 10 18:22:30 1997  Jason Merrill  <jason@yorick.cygnus.com>
4964
4965         * collect2.c (extract_string): New fn.
4966         (main): Use it.
4967
4968 Tue Jun 10 17:40:15 1997  Jim Wilson  <wilson@cygnus.com>
4969
4970         * expr.c (emit_group_load): Add case using gen_lowpart. 
4971
4972 Tue Jun 10 17:14:58 1997  Michael Meissner  <meissner@cygnus.com>
4973
4974         * rs6000.c (rs6000_override_options): If -mcpu=403, set -mstrict-align.
4975
4976         * rs6000/t-ppc{,gas} (MULTILIB_EXTRA_OPTS): Build libraries with
4977         -mstrict-align.
4978
4979         * configure.in ({powerpc,rs6000}*-*-*): Add embedded targets to
4980         --with-cpu=n support.
4981
4982 Tue Jun 10 07:06:12 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
4983
4984         * flow.c (mark_used_regs): Fix typo in Jun 4 change.
4985
4986 Mon Jun  9 20:26:26 1997  Jim Wilson  <wilson@cygnus.com>
4987
4988         * Makefile.in (MAYBE_USE_COLLECT2): Renamed from MAYBE_USE_COLLECT.
4989
4990 Mon Jun  9 19:42:21 1997  Jason Merrill  <jason@yorick.cygnus.com>
4991
4992         * fold-const.c (fold): Don't do COND_EXPR -> MIN_EXPR folding if it
4993         loses information that might be needed by a later use as an lvalue.
4994
4995 Mon Jun  9 19:10:50 1997  Alexandre Oliva <oliva@dcc.unicamp.br>
4996
4997         * configure.in: Don't override a user's setting for prefix
4998         on platforms that use the native prefix.
4999
5000 Mon Jun  9 19:00:49 1997  Brendan Kehoe  <brendan@melange.gnu.ai.mit.edu>
5001
5002         * integrate.c (expand_inline_function): Use the mode of FNDECL's
5003         result rtl, not the result type itself, in setting ARRIVING_MODE.
5004
5005         * reload1.c (reload): Use xmalloc instead of alloca for the label
5006         offsets in OFFSETS_AT and OFFSETS_KNOWN_AT.
5007
5008 Mon Jun  9 15:16:52 1997  Mike Stump  <mrs@cygnus.com>
5009
5010         * flow.c (find_basic_blocks): Eliminate more dead code, enables
5011         dead throws to be eliminated.
5012
5013 Mon Jun  9 17:15:50 1997  Stephen L Moshier  <moshier@world.std.com>
5014
5015         * alpha.c (check_float_value):  Underflow and overflow constants
5016         are different for FLOAT_VAX and default targets.
5017
5018 Mon Jun  9 16:48:21 1997  Scott Christley <scottc@net-community.com>
5019
5020         * Makefile.in (Makefile): Process language fragments.
5021         * configure.frag: New file.
5022         * configure.in: Move language fragment processing to configure.lang.e
5023
5024         * Makefile.in (GCC_PASSES): Prevent all compilers from being
5025         built when only the C compiler is needed.
5026
5027         * configure.in (cross_overrides, build_overrides): Use absolute
5028         path to GCC top-level source directory.
5029
5030         * configure.in: Save target alias for language directories.
5031
5032         * configure.in (with-gxx-include-dir): New parameter for
5033         setting the g++ header file directory.
5034         * Makefile.in (gxx_include_dir): Use autoconf variable.
5035
5036         * configure.in: Add parameter for setting local prefix.
5037
5038         * configure.lang: New file.
5039         * configure.in: Move language subdirectory Makefile processing
5040         into configure.lang.
5041
5042 Mon Jun  9 16:44:47 1997  Jim Wilson  <wilson@cygnus.com>
5043
5044         * sched.c (attach_deaths): Fix typo in Jun 4 change.
5045
5046 Mon Jun  9 15:13:00 1997  Marc Lehmann  (pcg@goof.com)
5047
5048         * varasm.c (assemble_end_function): Switch back to function
5049         section after outputting constant pool.
5050
5051 Mon Jun  9 14:47:22 1997  Paul Eggert  <eggert@twinsun.com>
5052
5053         * tree.c (change_main_variant): Remove unused function.
5054         (build_array_type): Remove obsolete references to
5055         change_main_variant.
5056         * c-decl.c (complete_array_type): Likewise.
5057
5058         * c-common.c (c_build_type_variant): Don't futz with main type
5059         variant of array since C Standard requires main type variant of
5060         array-of-const also be array-of-const.
5061
5062         * Makefile.in: Comment out lines containing just formfeeds.
5063
5064         * Makefile.in (distclean): Remove config.bak.
5065         (maintainer-clean): Output warning.
5066         Do not remove `configure'.
5067
5068 Mon Jun  9 14:44:17 1997  J.T. Conklin  <jtc@netbsd.org>
5069
5070         * configure.in (*-*-netbsd): Restore changes of Apr 13th lost in
5071         autoconf conversion: tmake_file now t-netbsd; delete xmake_file.
5072
5073 Mon Jun  9 14:39:29 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5074
5075         * expr.c (expand_builtin, case BUILT_IN_FRAME_ADDRESS):
5076         Use correct function name in error message.
5077
5078         * Makefile.in (diff): Exclude bi-parser.h.
5079
5080         * i386.h (CC1_CPU_SPEC): Renamed, was CC1_SPEC.
5081         (CC1_SPEC): New macro.
5082         (EXTRA_SPECS): Add "cc1_cpu".
5083         * i386/linux.h (CC1_SPEC): New macro.
5084
5085 Mon Jun  9 13:23:06 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
5086
5087         * m68k/next.h (TARGET_DEFAULT): Use MASK_68040,
5088         not MASK_68040_ALSO.
5089         * m68k/mot3300.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise.
5090
5091         * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Test #ifdef __mcf52000__,
5092         not if (TARGET_52000); fixed for mc68000 case.
5093
5094         * m68k/mot3300.h (CPP_SPEC): Define __mc68020__ if no -m[c]68000
5095         command-line option given.
5096
5097 Mon Jun  9 09:19:17 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
5098
5099         * Makefile.in (target_alias): Substitute with target_alias.
5100
5101         * final.c (final_scan_insn): Use single_set to check cc_status.flags.
5102
5103 Mon Jun  9 09:09:07 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5104
5105         * c-common.c (check_format_info): Correct handling of the 'a' flag
5106         which adds another pointer level.
5107
5108 Sun Jun  8 00:34:25 1997  Jeffrey A Law  (law@cygnus.com)
5109
5110         * pa.md (conditional branch insns): Get length right for branches
5111         to targets which can not be reached with a "bl" instruction.
5112         * pa.c (output_cbranch): Handle branches to targets which can not
5113         be reached with a "bl" instruction.
5114
5115         * pa.md (alternate dbra pattern): Remove incorrect pattern.
5116
5117 Sat Jun  7 23:30:25 1997  Jeffrey A Law  (law@cygnus.com)
5118
5119         * pa.c (struct defer_plab): Renamed to struct deferred_plabel.
5120         Remove "symbol" field and replace with "name" field.
5121         (output_function_epilogue): Don't output deferred plabels here.
5122         (output_deferred_labels): New function.  Output them here instead.
5123         (output_call): Rewrite long call support.
5124         * pa.h (ASM_FILE_END): Define.
5125         (LEGITIMATE_CONSTANT_P): Never accept a function_label_operand.
5126         * pa.md (HIGH and LO_SUM of function address): Remove patterns.
5127
5128 Fri Jun  6 16:09:04 1997  Mike Stump  <mrs@cygnus.com>
5129
5130         * libgcc2.c (__eh_ffetmnpc): Add support for machines that cannot
5131         access globals after throw's epilogue when -fno-sjlj-exceptions is
5132         used.
5133         * rs6000.c (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
5134         * mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
5135         (INITIAL_ELIMINATION_OFFSET): Fix RETURN_ADDRESS_POINTER_REGNUM
5136         for 64 bit words, with 32 bit pointers and variable endianness.
5137
5138 Fri Jun  6 17:27:58 1997  Mike Meissner  <meissner@cygnus.com>
5139
5140         * regclass.c (allocate_reg_info): Fix off by one error.
5141
5142 Fri Jun  6 17:17:41 1997  Doug Evans  <dje@cygnus.com>
5143
5144         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET): Fix setting of scan_rs_.
5145         (EXECUTE_IF_SET_AND_RESET_IN_REG_SET): Likewise.
5146         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
5147         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
5148
5149 Fri Jun  6 15:42:59 1997  Stan Cox  <coxs@dg-rtp.dg.com>
5150
5151         * i386.c (notice_cc_update): Set CC_FCOMI is this is a float compare.
5152
5153 Fri Jun  6 15:12:38 1997  Jim Wilson  <wilson@cygnus.com>
5154
5155         * basic-block.h (REG_SET_TO_HARD_REG_SET): Fix typo.
5156
5157         * sched.c (update_flow_info): When add extra REG_DEAD note for original
5158         dest, handle case where last insn both uses and sets dest.
5159
5160 Thu Jun  5 22:19:36 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
5161
5162         * fixinc.irix: Add declaration of __vfork to unistd.h.
5163
5164         * i960/vx960-coff.h (CPP_SPEC): Always define CPU, even if they
5165         use -ansi; the VxWorks headers assume it's always present.
5166         * sparc/vxsparc.h (CPP_SPEC): Define, adding the CPU definition to
5167         what came from sparc.h.
5168         (CPP_PREDEFINES): Don't define it here.
5169
5170 Thu Jun  5 13:40:33 1997  Mike Meissner  <meissner@cygnus.com>
5171
5172         * basic-block.c (OBSTACK_ALLOC_REG_SET): Rename from
5173         OBALLOC_REG_SET.  Add obstack pointer parameter.
5174
5175         * flow.c (function_obstack): Add declaration.
5176         (life_analysis): Don't allocate the space to hold to vector of
5177         regsets here.
5178         (init_regset_vector): Add pointer parameter and delete space
5179         paramter.  Use OBSTACK_ALLOC_REG_SET to allocate.  Change callers.
5180         (propagate_block): Use ALLOCA_REG_SET instead of bare alloca.
5181
5182         * sched.c (schedule_block): Fix typo in yesterday's changes.
5183         * reorg.c (mark_target_live_regs): Ditto.
5184
5185 Thu Jun  5 09:44:49 1997  Jeffrey A Law  (law@cygnus.com)
5186
5187         * sh.c (trap_exit, sp_switch): New variables.
5188         (print_operand, case '@'): If trap_exit is nonzero, then use
5189         a trapa instead of an rte/rts to exit the current function.
5190         (sh_expand_prologue): Switch stacks at function entry as needed.
5191         (sh_expand_epilogue): Similarly at function exit.
5192         (function_epilogue): Clear trap_exit and sp_switch too.
5193         (sh_valid_machine_decl_attribute): New function.
5194         * sh.h (VALID_MACHINE_DECL_ATTRIBUTE): Define.
5195         (sp_switch): Declare.
5196         * sh.md (sp_switch_1, sp_switch_2): New named patterns.
5197
5198 Wed Jun  4 18:11:14 1997  Michael Meissner  <meissner@cygnus.com>
5199
5200         * basic-block.h (REGSET_ELT_BITS): Make this explicitly unsigned, so
5201         that division and modulus of REGSET_ELT_BITS uses a pure shift.
5202         (*_REG_SET): New macros to abstract the register set interface.
5203
5204         * caller-save.c (save_call_clobbered_regs): Use new *_REG_SET
5205         macros.
5206         * flow.c (life_analysis,propagate_block,insn_dead_p): Ditto.
5207         (regno_uninitialized,regno_clobbered_at_setjmp,mark_set_1): Ditto.
5208         (mark_used_regs,dump_flow_info,global_conflicts): Ditto.
5209         global.c (mark_elimination): Ditto.
5210         * reorg.c (mark_target_live_regs): Ditto.
5211         * sched.c (sched_{analyze_{1,insn},note_set}): Ditto.
5212         (birthing_insn_p,attach_deaths,unlink_notes,schedule_block): Ditto.
5213
5214         * sched.c (sometimes structure): Delete offset, bit fields, replace
5215         with regno.
5216         (new_sometimes_live): Take regno argument, not offset and bit.
5217         Change all callers.
5218
5219 Tue Jun  3 19:18:36 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
5220
5221         * fixincludes: Fix AIX NULL macro use of void*.
5222
5223 Tue Jun  3 15:21:04 1997  Jason Merrill  <jason@yorick.cygnus.com>
5224
5225         * sparc.h (ASM_OUTPUT_MI_THUNK): Handle -fpic.
5226
5227 Mon Jun  2 16:53:53 1997  Michael Meissner  <meissner@cygnus.com>
5228
5229         * loop.c (n_times_{set,used}): Make type int, not short.
5230         (scan_loop): n_times{set,used} are now int pointers.
5231
5232         * sched.c (sched_reg_n_deaths): Remove unused variable.
5233         (struct sometimes): Make fields int sized, not short.
5234         (schedule_insns): Don't set sched_reg_n_deaths, nobody uses it.
5235
5236         * regclass.c (allocate_reg_info): Allocate space for reg_renumber,
5237         but don't set unless new argument RENUMBER_P is set.  If this is first
5238         call for function and we need to grow space, use free/xmalloc instead
5239         of realloc since we will be initializing the whole array.  If number
5240         of registers is < 0, just free up space.
5241         (reg_scan): Update allocate_reg_info call.
5242         * regs.h (allocate_reg_info): Change prototype.
5243         * flow.c (allocate_for_life_analysis): Update allocate_reg_info call.
5244         * local-alloc.c (local_alloc): Call allocate_reg_info to allocate
5245         and initialize the reg_renumber array.
5246         * stupid.c (stupid_life_analysis): Likewise.
5247
5248 Mon Jun  2 14:50:06 1997  Dave Miller  <davem@jenolan.rutgers.edu>
5249
5250         * sparc.md (v9 eq/ne cond move patterns): Add early clobber
5251         constraint to destination.
5252
5253 Fri May 30 11:00:44 1997  Michael Meissner  <meissner@cygnus.com>
5254
5255         * regs.h (reg_info): New structure to group the arrays indexed by
5256         register number created by reg_scan and flow_analysis that are
5257         globally visiable.
5258         (reg_n_info): Pointer to the register information array.
5259         (reg_n_{refs,sets,deaths,calls_crossed}): Delete variables.
5260         (reg_changes_size): Likewise.
5261         (REG_N_{REFS,SETS,DEATHS,CALLS_CROSSED}): New macros to reference
5262         reg_n_info.
5263         (REG_{CHANGES_SIZE,{FIRST,LAST,LAST_NOTE}_UID}): Likewise.
5264         (allocate_reg_info): Add declaration.
5265
5266         * basic-block.h (reg_basic_block): Delete.
5267         (REG_BASIC_BLOCK): Use reg_n_info structure.
5268
5269         * caller-save.c: Change all references to the above arrays to use
5270         the corresponding macro to access the reg_n_info array.
5271         * combine.c, cse.c, flow.c, global.c, jump.c, local-alloc.c: Likewise.
5272         * loop.c, regclass.c, reload1.c, sched.c, stupid.c, unroll.c: Likewise.
5273
5274         * regclass.c (allocate_reg_info): New function to allocate the
5275         reg_info array and initialize the appropriate fields.
5276         (reg_scan): Call it.
5277         * flow.c (allocate_for_life_analysis): Call allocate_reg_info to do
5278         the actual allocation.
5279
5280 Thu May 29 15:42:59 1997  Stan Cox  <coxs@dg-rtp.dg.com>
5281
5282         * i386.md (movsfcc_1, movdfcc_1, movxfcc_1): Use singlemove_string
5283         for float conditional move when destination and operands all differ.
5284         
5285         * i386.h (ASM_OUTPUT_REG_{PUSH,POP}): add %% before register name.
5286
5287         * go32.h (ASM_OUTPUT_ALIGN): Use .p2align, not byte alignments. 
5288
5289 Wed May 28 20:44:00 1997  Mike Stump  <mrs@cygnus.com>
5290
5291         * except.c (push_eh_entry): Eliminate start of exception region
5292         label, as it isn't used.  Rename end_label to outer_context.
5293         (expand_eh_region_start_for_decl): Likewise.
5294         (expand_leftover_cleanups): Likewise.
5295         (expand_start_all_catch): Likewise.
5296         * except.h (eh_entry): Likewise.
5297         * except.c (expand_eh_region_end): Likewise.  Jump around the nop
5298         that we insert, so that we can optimize it away, if it is unused,
5299         also so that flow analysis can tell if we fall through to the end
5300         of a function or not so that it can know if a function that returns
5301         a value, in fact does or not.
5302
5303 Wed May 28 10:50:09 1997  Jeffrey A Law  (law@cygnus.com)
5304
5305         * pa.md (jump): Handle out of range unconditional jump
5306         when not optimizing.
5307
5308 Thu May 22 00:57:07 1997  Jeffrey A Law  (law@cygnus.com)
5309
5310         * reload1.c (reload_cse_record_set): Ignore values for SREG if
5311         their mode is narrower than DEST_MODE.
5312
5313         * pa.h (DFMODE_RETURN_STRING): Define.
5314         (SFMODE_RETURN_STRING): Likewise.
5315         (ASM_DECLARE_FUNCTION_NAME): Use them.
5316
5317 Wed May 21 23:32:02 1997  Jeffrey A Law  (law@cygnus.com)
5318
5319         * mn10300.md (reload_insi): Handle SUBREG properly.
5320
5321 Tue May 20 22:32:13 1997  Jason Merrill  <jason@yorick.cygnus.com>
5322
5323         * dwarf2out.c (dwarf2out_def_cfa): Set cfa_reg at the top.
5324
5325 Tue May 20 16:57:50 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
5326
5327         * cplus-dem.c (do_type): Handle `J'.
5328         (demangle_fund_type): Print "complex" for it.
5329
5330 Mon May 19 21:01:53 1997  Jim Wilson  <wilson@cygnus.com>
5331
5332         * m68k.c (output_move_qimode): Add coldfire support.
5333         * m68k.h (PUSH_ROUNDING): Add coldfire support.
5334         * m68k.md (scc{,0}_di, seq, sne, sgt, sgtu, slt, sltu, sge, sgeu,
5335         sle, sleu): Add coldfire support.
5336
5337 Mon May 19 17:53:34 1997  Mike Meissner  <meissner@cygnus.com>
5338
5339         * rs6000.c: (rs6000_pic_func_labelno): New variable.
5340         (rs6000_output_load_toc_table): Use it.
5341         (output_prolog): Store current value.
5342
5343 Sun May 18 16:32:08 1997  Michael Meissner  <meissner@cygnus.com>
5344
5345         * dbxcoff.h (ASM_OUTPUT_SOURCE_LINE): Use macros
5346         ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL to create/output line
5347         number label.
5348
5349 Sun May 18 13:55:12 1997  John Vickers (john@rhizik.demon.co.uk)
5350
5351         * m68k.h (TARGET_SWITCHES): Add new target name, cpu32.
5352
5353 Sun May 18 13:50:10 1997  Pat Rankin  <rankin@eql.caltech.edu>
5354
5355         * cccp.c (VMS_write, VMS_read): Delete.
5356         (safe_write): If MAX_WRITE_LEN is defined, limit
5357         incremental write attempts to that amount.
5358         (safe_read): Analogous situation for MAX_READ_LEN.
5359         * cpplib.c (safe_read): Likewise.
5360         * vax/xm-vms.h (MAX_WRITE_LEN, MAX_READ_LEN): Define.
5361
5362         * vax/xm-vms.h (get_dynamic_handler_chain_libfunc): New macro.
5363         (protect_cleanup_actions_with_terminate): New macro.
5364
5365 Sun May 18 08:50:25 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5366
5367         * m68k/linux.h (ASM_COMMENT_START): Define.
5368         * m68k/linux-aout.h (ASM_COMMENT_START): Define.
5369
5370         * reload1.c (reload_cse_regno_equal_p): Check for value using more
5371         than one register on a big endian machine.
5372
5373 Sun May 18 08:39:59 1997  Vince Del Vecchio  <vdelvecc@spd.analog.com>
5374
5375         * loop.c (maybe_eliminate_biv_1): In (set (cc0) <biv>) case,
5376         swap compare operands when mult_val < 0 in one additional place.
5377
5378 Sun May 18 08:33:30 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5379
5380         * dwarf2out.c (ASM_COMMENT_START): Add default definition.
5381
5382         * Makefile.in (maintainer-claean): Delete configure.
5383
5384 Sun May 18 08:31:59 1997  Scott Christley <scottc@net-community.com>
5385
5386         * configure.in: New file.
5387         * Makefile.in: Change to utilize autoconf variables.
5388         * configure: Now an output file.
5389
5390 Sun May 18 07:48:31 1997  J.T. Conklin  <jtc@netbsd.org>
5391
5392         * m68k.md (mov[qhs]i,movstrict[qs]i, mulsi3): Use 'Q' constraint
5393         for TARGET_5200.
5394         * m68k.h (EXTRA_CONSTRAINT): New macro. 
5395
5396         * m68k.h (TARGET_SWITCHES): Add 68020-60.
5397         Mask out bits which indicate a particular processor when a different
5398         processor is selected.
5399         (MASK_68040_ALSO): Remove.
5400         (MASK_68040): Change to be a single bit.
5401
5402         * m68k.h (TARGET_ALIGN_INT, MASK_ALIGN_INT): New macros.
5403         (BIGGEST_ALIGNMENT): Determine according to TARGET_ALIGN_INT.
5404         (TARGET_SWITCHES): Add align-int and no-align-int.
5405
5406         * m68k.md (mov[qhs]i}): Add pair of constraints which allow
5407         offsetable memory addresses to be moved to the same for TARGET_5200.
5408
5409         * m68k.c (output_move_strict{hi,qi}): New functions.
5410         * m68k.h (output_move_strict{hi,qi}): Declare.
5411         * m68k.md (movstrict*): Changed into define_expands.
5412         Split insns into m68k and coldfire specific versions with appropriate
5413         constraints.
5414
5415 Sun May 18 07:26:40 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
5416
5417         * libgcc2.c (atexit): Cast malloc and realloc calls.
5418
5419 Sat May 17 16:26:51 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
5420
5421         * final.c (profile_function): Call function_section, not
5422         text_section.
5423
5424 Sat May 17 16:01:00 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
5425
5426         * cse.c (notreg_cost): New function, extracted from COST macro.
5427         (COST): Use notreg_cost.
5428
5429 Sat May 17 15:13:23 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5430
5431         * cse.c (cse_insn): Don't record a SRC that's a MEM and the same
5432         as a REG_EQUIV note if DEST is set more than once.
5433
5434 Fri May 16 14:50:57 1997  Jeffrey A Law  (law@cygnus.com)
5435
5436         * pa.c (output_move_double): Handle loading a general register
5437         from a scaled indexed memory address.
5438         * pa.md (movdf, movdi): Allow scaled loads into general registers.
5439
5440 Fri May 16 13:31:08 1997  Mike Stump  <mrs@cygnus.com>
5441
5442         * rs6000.c (rs6000_stack_info): Only do eabi setup for "main",
5443         when main is the global main, not some nested routine that
5444         happens to be called main.
5445
5446 Thu May 15 17:19:50 1997  Mike Stump  <mrs@cygnus.com>
5447
5448         * except.c (expand_start_all_catch): If the machine needs to
5449         perform any actions at the start of an expcetion handler that
5450         hasn't already been done, use gen_exception_receiver to emit it.
5451         (expand_leftover_cleanups): Likewise.
5452         * alpha.md (exception_receiver): Use it.
5453         * pa.h (exception_receiver): Use it.
5454
5455 Thu May 15 08:36:59 1997  Jeffrey A Law  (law@cygnus.com)
5456
5457         * dbxout.c (dbxout_function_end): Don't subtract one from
5458         the end of function scoping stab.
5459
5460 Wed May 14 23:27:09 1997  Jeffrey A Law  (law@cygnus.com)
5461
5462         * mn10300.md (adddi3, subdi3): Remove expanders and patterns.
5463
5464 Wed May 14 18:51:35 1997  Mike Stump  <mrs@cygnus.com>
5465
5466         * function.c (expand_function_end): Make sure we finish off any
5467         leftover exception handlers.
5468
5469 Tue May 13 14:07:01 1997  Mike Stump  <mrs@cygnus.com>
5470
5471         * expr.c (expand_builtin_setjmp): Remove setting of
5472         current_function_has_nonlocal_goto, as this isn't a goto.
5473
5474 Tue May 13 14:47:40 1997  Richard Earnshaw (rearnsha@cambridge.arm.com)
5475
5476         * arm.h (CPP_SPEC): Fix typo invoking cpp_endian.
5477         * arm/t-semi (LIB2FUNCS_EXTRA): Build fp-bit.c when compiling
5478         with -msoft-float.
5479         * arm.c: Add prototypes for all static functions.
5480         (output_multi_immediate, int_log2): Make static.
5481
5482         * arm.h (*_SPEC): Remove all references to mle/mbe.
5483         * arm/coff.h (MULTILIB_DEFAULTS): Likewise.
5484         * arm/t-bare (MULTILIB_OPTIONS): Change options mbe/mle to mbig-endian
5485         and mlittle-endian.
5486         (MULTILIB_MATCHES): Nothing matches that matters.
5487
5488 Mon May 12 20:42:20 1997  Mike Stump  <mrs@cygnus.com>
5489
5490         * except.c (expand_start_all_catch): If need nonlocal_goto_receiver,
5491         add one at the start of exception handler.
5492         (expand_leftover_cleanups): Likewise.
5493
5494 Mon May 12 17:36:28 1997  Jeffrey A Law  (law@cygnus.com)
5495
5496         * mips.c (move_operand): Accept any general operand after reload
5497         has started.
5498
5499 Fri May  9 14:29:33 1997  Jeffrey A Law  (law@cygnus.com)
5500
5501         * mn10300.md (udivmodhi4, divmodhi4): Remove expander, give
5502         corresponding pattern [u]divmodhir4 name.  Clear MDR register
5503         in the udivmodhi4 pattern itself.
5504         (clear_mdr): Delete pattern.
5505
5506 Thu May  8 18:20:30 1997 Richard Earnshaw (rearnshaw@cambridge.arm.com)
5507
5508         * arm/aout.h (ASM_OUTPUT_LONG_DOUBLE): Delete call to 
5509         arm_increase_location.
5510         (ASM_OUTPUT_{DOUBLE,FLOAT,INT,SHORT,CHAR,BYTE,ASCII,SKIP}): Likewise.
5511         (ASM_OUTPUT_ALIGN): Delete all code refering to arm_text_location.
5512
5513         * arm.c (arm_increase_location, get_prologue_size): Delete.
5514         (arm_naked_function_p): Add declaration.
5515         (arm_pic_register): Define.
5516         (all_procs): Delete entries for arm{60,620,70,7d,7di,700i,710c}; add
5517         entries for arm{7m,7500fe,8}, strongarm and strongarm110.
5518         (arm_override_options): Rework so that configure can properly set
5519         the default processor type. Add a warning that PIC code is not yet 
5520         supported.
5521         (legitimate_pic_operand_p, legitimize_pic_address): New functions.
5522         (is_pic, arm_finalize_pic): New functions.
5523         (arm_adjust_cost): New function.
5524         (const_pool_offset, arm_backwards_branch, short_branch): Delete.
5525         (arm_insn_not_targeted): Delete.
5526         (add_constant): If generating AOF syntax, then handle pic specially.
5527         (output_ascii_pseudo_op): Delete calls to arm_increase_location.
5528         (function_really_clobbers_lr): Calls followed by a barrier don't
5529         clobber the link register.
5530         (output_func_prologue): Handle AOF syntax pic code.
5531         (output_func_epilogue): Handle cases where lr_save_eliminated is set.
5532         Delete call to arm_increase_location.
5533         (arm_asm_output_label): Simplify, since we no-longer need to cache the
5534         label's address.
5535         (aof_pic_entry): New function to keep track of pic symbols.
5536         (aof_dump_pic_table): New function.
5537
5538         * arm.h (TARGET_CPU_arm*, TARGET_CPU_strongarm*, TARGET_CPU_generic):
5539         define.
5540         (CPP_ARCH_DEFAULT_SPEC): Set up based on setting of TARGET_CPU_DEFAULT.
5541         (CPP_SPEC): Split up into sub-rule calls.
5542         (CPP_CPU_SPEC): Add default definition.
5543         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC): Add definitions.
5544         (CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC): Add definitions.
5545         (CPP_ENDIAN_SPEC, CPP_ENDIAN_DEFAULT_SPEC): Add definitions.
5546         (CC1_SPEC): Map legacy -m[236] onto -mcpu=.. and -mapcs-{26,32} as
5547         appropriate. Similarly for -mbe and -mle to -m{big,little}-endian.
5548         (EXTRA_SPECS): Define.
5549         (enum processor_type): New types for arm8 and strongarm.
5550         (CONDITIONAL_REGISTER_USAGE): Handle flag_pic.
5551         (LEGITIMIZE_ADDRESS): Likewise.
5552         (ADJUST_COST): Define.
5553         (PIC_OFFSET_TABLE_REGNUM): Define.
5554         (FINALIZE_PIC): Define.
5555         (LEGITIMATE_PIC_OPERAND_P): Define.
5556         (OUTPUT_INT_ADDR_CONST): Define.
5557         (ASM_OUTPUT_MI_THUNK): Delete calls to arm_increase_location.
5558         (MASK_RETURN_ADDR): Use TARGET_APCS_32 not TARGET_6.
5559
5560         * arm.md (attr cpu): Add new cpu types for arm8 and strongarm.
5561         (attr ldsched): New attribute, set if processor has a load_delay slot.
5562         (function_unit core): Rework to handle load delay slots.
5563         (function_unit loader): New function unit.
5564         (movsi): Handle pic.
5565         (pic_load_addr): New expand.
5566         (*pic_load_addr_based_insn, pic_add_dot_plus_eight): New patterns.
5567         (peepholes to cause flow to return to a label after a function call):
5568         Delete, these have been disabled for a while now.
5569
5570         * arm/riscix.h (CPP_SPEC): Rewrite using new sub-components.
5571         (SUBTARGET_CPU_DEFAULT): Set to TARGET_CPU_arm2.
5572         * arm/riscix1-1.h (CPP_SPEC): Rewrite using new sub-components.
5573         (SUBTARGET_CPU_DEFAULT): Set to TARGET_CPU_arm2.
5574         * arm/semi.h: (CPP_SPEC): Delete.
5575         (PROCESSOR_DEFAULT): Delete.
5576         (CPP_APCS_PC_DEFAULT_SPEC): Define.
5577         * arm/semiaof.h (CPP_SPEC): Delete.
5578         (CPP_APCS_PC_DEFAULT_SPEC): Define.
5579         * arm/t-semi (LIBGCC1_TEST): Don't build it.
5580         (MULTILIB_{OPTIONS,DIRNAMES,EXCEPTIONS}): Build a suitable set of
5581         cross libraries.
5582         (LIBGCC): Set to stmp-multilib.
5583         (INSTALL_LIBGCC): Set to install-multilib.
5584
5585 Thu May  8 15:20:46 1997  Stan Cox  <coxs@dg-rtp.dg.com>
5586
5587         * i386.c (output_float_compare): For pentiumpro use fcomip
5588         followed by a float stack pop for "compare;pop;pop" cases.
5589
5590 Thu May  8 13:20:20 1997  Chris Torek  <torek@elf.bsdi.com>
5591
5592         * fold-const.c (fold, truth_andor): Disable optimization for 
5593         side effects on RHS.
5594
5595 Wed May  7 15:43:57 1997  Mike Stump  <mrs@cygnus.com>
5596
5597         * except.c (start_dynamic_handler): Fix so we can use __builtin_setjmp,
5598         and default to using __builtin_setjmp instead of setjmp.
5599         * expr.c (expand_builtin_setjmp): New routine, split out from
5600         existing inline code from expand_builtin.
5601         (expand_builtin): Split out code into expand_builtin_setjmp.
5602         * expr.h (expand_builtin_setjmp): Add declaration.
5603         * libgcc2.c (__sjthrow): Default to using __builtin_setjmp instead
5604         of setjmp.
5605         (__sjpopnthrow): Likewise.
5606         * optabs.c (init_optabs): Likewise.
5607
5608 Wed May  7 18:01:24 1997  Samuel Figueroa  <Samuel_Figueroa@next.com>
5609
5610         * rs6000.md (insv): Only combine insert with shift if
5611         remaining source bits >= destination field size.
5612
5613 Tue May  6 15:48:52 1997  Jason Merrill  <jason@gerbil.cygnus.com>
5614
5615         * dwarf2out.c (dwarf2out_begin_prologue): Increment
5616         current_funcdef_number here.
5617         (dwarf2out_end_epilogue): Not here.
5618
5619 Mon May  5 18:52:32 1997  Jeffrey A Law  (law@cygnus.com)
5620
5621         * h8300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV.
5622         (shift_one, shift_two): Set CC_NO_CARRY as needed.  Remove
5623         references to CC_OVERFLOW_0.
5624         (emit_a_shift): Similarly.
5625         * h8300.h (CC_OVERFLOW_0): Remove.
5626         * h8300.md: Use set_zn and set_znv for cc0 tracking.
5627         (bCC): Restore the comparison is CC_OVERFLOW_UNUSABLE is set and
5628         the comparison needs the overflow bits.
5629
5630         * mn10300.c (notice_update_cc): Use CC_SET_ZN and CC_SET_ZNV.
5631         * mn10300.h (CC_NO_CARRY): Define.
5632         * mn10300.md: Use "set_zn" and "set_znv" to more accurately
5633         describe cc0 status.
5634
5635 Fri May  2 17:00:33 1997  Jason Merrill  <jason@yorick.cygnus.com>
5636
5637         * dwarf2out.c: Reorganize, moving .debug_frame support to the top
5638         of the file, and compile it if INCOMING_RETURN_ADDR_RTX is defined
5639         even if DWARF2_DEBUGGING_INFO isn't.
5640         (EH_FRAME_SECTION): New macro.
5641         (output_call_frame_info): Handle .eh_frame variant.
5642         (dwarf2out_def_cfa): Update cfa_*{reg,offset}.
5643         (dwarf2out_frame_debug): Move cfa_*{reg,offset} to file scope.
5644         (dwarf2out_end_epilogue): Increment current_funcdef_number here.
5645         (dwarf2out_decl): Not here.
5646         (dwarf2out_frame_init, dwarf2out_frame_finish): New fns.
5647         (dwarf2out_init, dwarf2out_finish): Call them.
5648         (output_die): Add missing 'case 8:'
5649         (dwarf2out_decl): Revert other context_die = NULL change.
5650         (add_bound_info): Restore default case.
5651
5652 Fri May  2 15:30:16 1997  Doug Evans  <dje@seba.cygnus.com>
5653
5654         * m32r.h (LIT_NAME_P): New macro.
5655         (SMALL_NAME_P): Use it.
5656         (ASM_OUTPUT_ALIGNED_COMMON): Don't output to scommon if -msdata=none.
5657         * m32r.c (addr24_operand): Handle literals.
5658         (m32r_output_function_prologue): Use IMMEDIATE_PREFIX.
5659         (m32r_output_function_epilogue): Likewise.  Use shorter add insn if
5660         able.
5661
5662 Fri May  2 14:40:44 1997  David Edelsohn  <edelsohn@mhpcc.edu>
5663
5664         * rs6000.h (RS6000_ALIGN): Macro renamed from ALIGN.
5665         * rs6000.c (rs6000_stack_info): Use it.
5666
5667 Fri May  2 14:15:54 1997  Ian Lance Taylor  <ian@cygnus.com>
5668
5669         * reload1.c (reload_cse_noop_set_p): When checking the values
5670         equivalent to sreg, make sure the mode is right.
5671
5672 Fri May  2 12:53:03 1997  Jeffrey A Law  (law@cygnus.com)
5673
5674         * reload1.c (reload_cse_invalidate_regno): Properly set
5675         the mode for invalidate_regno_rtx.
5676
5677 Thu May  1 14:57:35 1997  Jeffrey A Law  (law@cygnus.com)
5678
5679         * pa.md (call_internal_symref): Fix typo.
5680
5681 Thu May  1 14:44:17 1997  Jim Wilson  <wilson@cygnus.com>
5682
5683         * mips.c (mips_asm_file_start): Use new macro TARGET_FILE_SWITCHING.
5684         (mips_asm_file_end): Likewise.
5685         * mips.h (TARGET_FILE_SWITCHING): Define.
5686         (NO_DBX_FUNCTION_END): Define.
5687
5688 Thu May  1 09:08:40 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5689
5690         * m68k.c (output_addsi3): Replace "\\;" by "\n\t" in
5691         assembler templates.
5692
5693 Thu May  1 09:00:42 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5694
5695         * integrate.c (subst_constants, case SUBREG): Cancel changes once
5696         done with result.
5697
5698 Wed Apr 30 19:45:56 1997  Jim Wilson  <wilson@cygnus.com>
5699
5700         * mips.c (override_options): Set mips_split_addresses only if
5701         TARGET_SPLIT_ADDRESSES is set.
5702         * mips.h (MASK_SPLIT_ADDR, TARGET_SPLIT_ADDRESSES): New macros.
5703         (TARGET_SWITCHES): Add -msplit-addresses, -mno-split-addresses.
5704         * configure (mips*-*-ecoff*, mips*-*-elf*): Set MASK_SPLIT_ADDR
5705         bit in target_cpu_default2.
5706
5707         * flags.h (current_function_is_thunk): Add extern to declaration.
5708
5709         * dbxout.c (dbxout_function): Test NO_DBX_FUNCTION_END at run time
5710         instead of compile time.
5711
5712         * unroll.c (set_dominates_use): In second loop, add check for copy_end.
5713
5714         * mips.md (paradoxical_extendhidi2, paradoxical_extendqidi2): New
5715         patterns.
5716
5717 Wed Apr 30 02:23:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
5718
5719         * output.h (named_section): Add reloc argument.
5720         (DECL_READONLY_SECTION): New macro.
5721         * varasm.c (named_section): Add reloc argument, pass it to
5722         ASM_OUTPUT_SECTION_NAME.
5723         (UNIQUE_SECTION, UNIQUE_SECTION_P): Provide defaults.
5724         (function_section): Pass reloc argument to named_section.
5725         (variable_section, exception_section): Likewise.
5726         (output_constant_def_contents): Likewise.
5727         (assemble_start_function): Use UNIQUE_SECTION_P.  UNIQUE_SECTION is
5728         now a statement.
5729         (assemble_variable): Likewise.
5730         * mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Add reloc arg,
5731         use DECL_READONLY_SECTION.
5732         * psos.h, ptx4.h, a29k.h, alpha/elf.h, arm/coff.h, h8300.h: Likewise.
5733         * i386/go32.h, i386/sco5.h, m68k/coff.h, mips/elf64.h: Likewise.
5734         * mips/netbsd.h, pa.h, rs6000/sysv4.h, sh.h, sparc/sysv4.h: Likewise.
5735         * config/svr4.h (SELECT_SECTION): Use DECL_READONLY_SECTION.
5736         (ASM_OUTPUT_SECTION_NAME): Likewise, add reloc argument.
5737         (MAKE_DECL_ONE_ONLY): Just set DECL_WEAK.
5738         (UNIQUE_SECTION, UNIQUE_SECTION_P): Define.
5739         * i386/cygwin32.h (UNIQUE_SECTION_P): Define.
5740         (SUPPORTS_ONE_ONLY): Define.
5741         (MAKE_DECL_ONE_ONLY): Lose.
5742         (ASM_OUTPUT_SECTION_NAME): Add reloc arg, use DECL_READONLY_SECTION.
5743         * i386/winnt.c (i386_pe_unique_section): Add reloc arg, 
5744         use DECL_READONLY_SECTION.
5745
5746         * mips/iris6.h (CTORS_SECTION_ASM_OP): Change aligment based on ABI.
5747         (DTORS_SECTION_ASM_OP): Likewise.
5748
5749 Tue Apr 29 16:08:07 1997  Jeffrey A Law  (law@cygnus.com)
5750
5751         * pa/lib1funcs.asm (divnorm, modnorm, exitdiv): Fix code to
5752         negate SImode values.
5753
5754 Tue Apr 29 12:54:14 1997  Mike Stump  <mrs@cygnus.com>
5755
5756         * except.c (expand_eh_region_start_tree): Add DECL argument so we
5757         can better track why the region was made for error reporting.
5758         * except.h (expand_eh_region_start_tree): Likewise.
5759         * tree.h (expand_dhc_cleanup): Likewise.
5760         (expand_dcc_cleanup): Likewise.
5761         * except.c (expand_eh_region_start_for_decl): New routine.
5762         * except.h (expand_eh_region_start_for_decl): Likewise.
5763         * stmt.c (expand_decl_cleanup): Add DECL to call of
5764         expand_eh_region_start_tree.
5765         (expand_dcc_cleanup): Likewise.
5766         (expand_dhc_cleanup): Likewise.
5767         (expand_start_case): Switches introduce conditional contexts.
5768         (expand_start_case_dummy): Likewise.
5769         (expand_start_case_dummy): Likewise.
5770         (expand_end_case): Likewise.
5771
5772 Tue Apr 29 11:45:09 1997  Jason Merrill  <jason@yorick.cygnus.com>
5773
5774         * dwarf2out.c (dwarf2out_decl): Undo earlier change.
5775         (constant_size): Likewise.
5776         (gen_subprogram_die): Handle NULL context_die.
5777
5778         * mips/iris6.h (ASM_OUTPUT_CONSTRUCTOR): Fix for -mabi=64.
5779         (ASM_OUTPUT_DESTRUCTOR): Likewise.
5780
5781 Mon Apr 28 09:10:19 1997  Jeffrey A Law  (law@cygnus.com)
5782
5783         * h8300.c (push_order, pop_order): Add missing initializer entries.
5784
5785 Fri Apr 25 19:39:43 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
5786
5787         * h8300.c (output_adds_subs): Check for adding 0.
5788
5789 Fri Apr 25 14:52:31 1997  Jim Wilson  <wilson@cygnus.com>
5790
5791         * configure (i[3456]86-*-freebsdelf*, i[3456]86-*-freebsd*): Use
5792         t-freebsd instead of x-freebsd.
5793         * i386/t-freebsd: Renamed from x-freebsd.
5794
5795 Fri Apr 25 12:16:20 1997  Stan Cox  <coxs@dg-rtp.dg.com>
5796
5797         * go32.h (DBX_*): Use definitions from config/dbxcoff.h instead.
5798
5799 Fri Apr 25 11:55:54 1997  Jason Merrill  <jason@yorick.cygnus.com>
5800
5801         * i386/cygwin32.h (MULTIPLE_SYMBOL_SPACES): Define.
5802
5803 Thu Apr 24 18:32:56 1997  Jason Merrill  <jason@yorick.cygnus.com>
5804
5805         * i386/winnt.c (i386_pe_unique_section): New fn.
5806         * i386/cygwin32.h (UNIQUE_SECTION): Define.
5807         (MAKE_DECL_ONE_ONLY): Define.
5808         (ASM_OUTPUT_SECTION_NAME): Support DECL_ONE_ONLY.
5809
5810         * c-decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
5811
5812 Thu Apr 24 17:11:23 1997  Jim Wilson  <wilson@cygnus.com>
5813
5814         * m68k.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Add
5815         TARGET_5200 support.
5816
5817 Thu Apr 24 16:39:25 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5818
5819         * stmt.c (pushcase_range): Check for null range first.
5820
5821 Wed Apr 23 23:06:28 1997  Ian Lance Taylor  <ian@cygnus.com>
5822
5823         * reload1.c (reload_cse_record_set): Use push_operand to check for
5824         changes to the stack pointer.
5825
5826 Wed Apr 23 19:56:01 1997  Jason Merrill  <jason@yorick.cygnus.com>
5827
5828         * calls.c (expand_call): If we're in a thunk, pass through invisible
5829         references instead of making a copy.
5830         * flags.h: Add current_function_is_thunk.
5831         * function.c: Likewise.
5832         (init_function_start): Initialize it.
5833         (push_function_context_to): Save it.
5834         (pop_function_context_from): Restore it.
5835         * function.h (struct function): Add is_thunk.
5836
5837 Wed Apr 23 17:47:25 1997  Jeffrey A Law  (law@cygnus.com)
5838
5839         * mn10300.c (secondary_reload_class): Handle more cases where we
5840         need secondary reloads.
5841         (impossible_plus_operand): Accept anything that involves addition
5842         of the stack pointer.
5843         * mn10300.md (reload_insi): Always load the stack pointer into
5844         the destination (which is always an address register).
5845         * mn10300.h (STORE_FLAG_VALUE): Remove definition.
5846         * xm-mn10300.h: Declare malloc, realloc, calloc and free.
5847
5848 Wed Apr 23 14:28:30 1997  Mike Stump  <mrs@cygnus.com>
5849
5850         * expr.h (sjthrow_libfunc): Add support for setjmp/longjmp based
5851         exception handling.
5852         ({sjpopnthrow,terminate,setjmp,longjmp}_libfunc): Likewise.
5853         (get_dynamic_handler_chain_libfunc): Likewise.
5854         * expr.c (expand_expr, case TRY_CATCH_EXPR): Likewise.
5855         (expand_expr, case POPD{C,H}C_EXPR): Likewise.
5856         * stmt.c (mark_block_as_eh_region): Likewise.
5857         (mark_block_as_not_eh_region): Likewise.
5858         (is_eh_region, conditional_contex, expand_start_bindings): Likewise.
5859         (expand_end_bindings, expand_{decl,dcc,dhc}_cleanup): Likewise.
5860         (expand_cleanups): Likewise.
5861         * tree.h (mark_block_as_eh_region): Likewise.
5862         (mark_block_as_not_eh_region, is_eh_region): Likewise.
5863         conditional_context, expand_dhc_cleanup): Likewise.
5864         * except.c (exception_via_longjmp): Likewise.
5865         (protect_cleanup_actions_with_terminate): Likewise.
5866         (current_function_d{h,c}c, add_partial_entry): Likewise.
5867         (get_dynamic_{handler,cleanup}_chain): Likewise.
5868         (start_dynamic_{cleanup, handler}): Likewise.
5869         (expand_eh_region_start{,_tree}, expand_eh_region_end): Likewise.
5870         (emit_throw, expand_leftover_cleanups): Likewise.
5871         (expand_{start,end}_all_catch, protect_with_terminate): Likewise.
5872         ({start,end}_eh_unwinder, init_eh_for_function): Likewise.
5873         ({save,restore}_eh_status, exception_optimize): Likewise.
5874         * optabs.c ({sjthrow,sjpopnthrow,terminate,setjmp}_libfunc): Likewise.
5875         ({longjmp,get_dynamic_handler_chain}_libfunc): Likewise.
5876         (init_optabs): Likewise.
5877         * except.h: Likewise.
5878         * libgcc2.c (__default_terminate): Likewise.
5879         (__terminate, __get_dynamic_handler_chain, __sjthrow): Likewise.
5880         (__sjpopnthrow): Likewise.
5881         * toplev.c (f_options): Likewise.
5882         * tree.def (TRY_CATCH_EXPR, POPDHC_EXPR, POPDCC_EXPR): Likewise.
5883         * pa.h (JMP_BUF_SIZE): Define.
5884         * sparc.h (JMP_BUF_SIZE): Define.
5885
5886         * expr.h (cleanups_this_call): Transform uses of cleanups_this_call
5887         into uses of the cleanups managed by the block code
5888         (expand_start_bindings and friends).  Remove defer_cleanups_to and
5889         expand_cleanups_to, and use start_cleanup_deferal and
5890         end_cleanup_deferal instead.  Add exception_region,
5891         target_temp_slot_level, conditional_code,
5892         last_unconditional_cleanup and cleanup_ptr to struct nesting to
5893         facilitate conditional cleanups.
5894         * expr.c (cleanups_this_call, init_expr): Likewise.
5895         ({save,restore}_expr_status, store_expr): Likewise.
5896         (expand_expr, {defer,expand}_cleanups_to): Likewise.
5897         (do_jump, case TRUTH_{AND,OR}IF_EXPR): Likewise.
5898         (do_jump, case COND_EXPR): Likewise.
5899         * stmt.c (struct nesting): Likewise.
5900         (expand_return, expand_start_bindings, expand_end_bindings): Likewise.
5901         (expand_cleanups, {start,end}_cleanup_deferal): Likewise.       
5902         * tree.h (start_cleanup_deferal): Likewise.
5903         (end_cleanup_deferal): Likewise.
5904         * calls.c (expand_call): Likewise.
5905         * function.h (struct function): Likewise.
5906         * except.c (asynchronous_exceptions): Support
5907         -fasynchronous_exceptions.
5908         (can_throw): Likewise.
5909         * toplev.c (f_options): Likewise.
5910
5911         * flags.h (flag_short_temps): Remove support for short temps.
5912         * calls.c (expand_call): Likewise.
5913         * toplev.c (flag_short_temps): Likewise.
5914
5915         * stmt.c (expand_start_target_temps): Add for convenience.
5916         (expand_end_target_temps): Likewise.
5917         * except.c (jumpif{,not}_rtx): Likewise.
5918
5919         * stmt.c: Remove all traces of empty_cleanup_list.
5920
5921 Wed Apr 23 17:26:40 1997  Ian Lance Taylor  <ian@cygnus.com>
5922
5923         * reload1.c (reload_cse_mem_conflict_p): Don't assume that a
5924         SUBREG can not conflict with a MEM.
5925
5926 Wed Apr 23 09:48:58 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
5927
5928         * 1750a.md (cmphi): Fixed when next CC user is unsigned.
5929         (mov[hq]i-[23]): New patterns for mem-indirect moves.
5930         (movhf,movtqf): Corrected.
5931         * 1750a.c (memop_valid): Memory indirection now valid.
5932         (nonindirect_operand): Remove.
5933         (print_operand): Fix the 'J' output modifier.
5934         * 1750a.h (FRAME_POINTER_REQUIRED): Not required.
5935         (INITIAL_FRAME_POINTER_OFFSET,FIX_FRAME_POINTER_ADDRESS): Undefine.
5936         (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Honor -fomit-frame-pointer.
5937         (ELIMINABLE_REGS,CAN_ELIMINATE,INITIAL_ELIMINATION_OFFSET): Defined.
5938         (PREFERRED_RELOAD_CLASS): Corrected.
5939         (CONST_COSTS,ADDRESS_COST,REGISTER_MOVE_COST,MEMORY_MOVE_COST):
5940         Slight adjustments.
5941         (ASM_APP_ON,ASM_APP_OFF): Corrected.
5942         * ms1750.inc (DUCR.M,DUC.M): Defined.
5943
5944 Wed Apr 23 09:41:35 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5945
5946         * reload.c (push_reload): Fix last arg of call to find_dummy_reload.
5947
5948 Wed Apr 23 09:29:14 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5949
5950         * configure (i[3456]86-next-*, m68k-next-nextstep{2,3}*):
5951         Remove out_file and add extra_objs.
5952         * config/nextstep.c: Add includes for config.h, stdio.h, and flags.h.
5953         * {i386,m68k}/t-next (nextstep.o): New rule.
5954         * m68k/next.h: Remove include of machmode.h.
5955         * {i386,m68k}/next.c: Files deleted.
5956
5957 Tue Apr 22 20:45:29 1997  Jason Merrill  <jason@yorick.cygnus.com>
5958
5959         * sparc.h (DBX_CONTIN_LENGTH): Shrink to 1000.
5960
5961 Tue Apr 22 18:21:20 1997  Jim Wilson  <wilson@cygnus.com>
5962
5963         * dwarf2out.c (gen_variable_dir):  Add test for DW_AT_declaration to
5964         the old_die if statement, and delete assertion for it.
5965         (decl_ultimate_origin): Remove last change.
5966
5967 Tue Apr 22 10:22:27 1997  Jeffrey A Law  (law@cygnus.com)
5968
5969         * mn10300.c (expand_prologue): End the current sequence before
5970         counting the tst insns in the current function.  Start a new
5971         one before emitting any prologue instructions.
5972
5973         * mn10300.h (REGISTER_MOVE_COST): Bump up cost of moves in the
5974         same class.
5975
5976         * mn10300.md (untyped_call): New expander.
5977
5978 Mon Apr 21 16:30:21 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5979
5980         * cse.c (fold_rtx, case PLUS): When seeing if negative of constant
5981         is around, make sure not dealing with largest negative.
5982
5983 Mon Apr 21 13:57:53 1997  Jim Wilson  <wilson@cygnus.com>
5984
5985         * mips/t-ecoff: Set TARGET_LIBGCC2_CFLAGS instead of LIBGCC2_CFLAGS.
5986
5987         * m68k.c (output_addsi3): New function.  From addsi3 pattern.
5988         * m68k.h (output_addsi3): Add declaration.
5989         * m68k.md (movqi+2): Add address registers.
5990         (movxf+1): Disable for TARGET_5200.
5991         (movxf+2): New pattern for TARGET_5200.
5992         (addsi3): Add define_expand.  Move code to output_addsi3.
5993         (addsi3_internal): Renamed from addsi3.  Disable for TARGET_5200.
5994         (addsi3_5200): New pattern for TARGET_5200.
5995
5996 Sun Apr 20 10:45:35 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5997
5998         * fold-const.c (operand_equal_p): Constants are not equal if there
5999         has been an overflow.
6000
6001         * toplev.c (compile_file): Shorten "branch-probabilities" in
6002         output of times.
6003
6004         * alpha/vms.h (MOD[SD]I3_LIBCALL): Call ots$rem, not ots$mod.
6005         (DWARF2_DEBUGGING_INFO): Define.
6006
6007         * alpha.c (alpha_need_linkage): Call get_identifier.
6008
6009         * rs6000.c (rs6000_output_load_toc_table): New function.
6010         (output_prolog): Call it instead of doing it directly.
6011         * rs6000.md (nonlocal_goto_receiver): New pattern.
6012
6013         * dwarf2out.c: Major cleanup; mostly reformatting.
6014         Include expr.h.
6015         Undefine inline ifndef __GNUC__; never define to include static.
6016         Add "static" to header of all inlined functions.
6017         Add declarations for all static functions, with prototypes.
6018         (addr_const_to_string): Use HOST_WIDE_INT_PRINT_* macros.
6019         (add_AT_*, new_{die,loc_descr,cfi): Don't check for xmalloc
6020         returning zero.
6021         (modified_type_die): Add missing parm on recursive call.
6022         ({reg,based}_loc_descriptor): Add missing arg to call to new_loc_descr.
6023         (add_const_value_attribute): Use REAL_VALUE_TYPE for fp calculations.
6024         (output_call_frame_info): Add missing arg to output_cfi call.
6025         (dwarf2out_def_cfa): Local variable OLD_REG must be unsigned long.
6026         * Makefile.in (dwarf2out.o): Includes expr.h.
6027         
6028         * dwarf2out.c: Cast first arg in all calls to bzero to char *.
6029         (decl_ultimate_origin): Return NULL if equal to decl.
6030         (constant_size): Never return more than 4.
6031         (value_format, case 8): New case.
6032         (dwarf2out_frame_debug): Use HARD_FRAME_POINTER_REGNUM.
6033         (based_loc_descr): Likewise.
6034         (add_bound_info): Delete default case.
6035         Add cases for CONVERT_EXPR and NON_LVALUE_EXPR; treat like NOP_EXPR.
6036         Change NOP_EXPR to to recursive call.
6037         (add_type_attribute): Ignore unnamed subtype of integral or FP.
6038         (gen_subprogram_die): Use reg_loc_descriptor.
6039         (dwarf2out_decl): Ignore nested functions.
6040
6041         * fix-header.c, protoize.c, gcov.c: Use symbolic codes for exit.
6042
6043         * final.c (profile_function): Only call ASM_OUTPUT_REG_{PUSH,POP}
6044         if defined.
6045
6046         * expr.c ({move,clear}_by_pieces_1, expand_assignment): Ensure
6047         we have unshared rtx before changing flags.
6048         (store_{constructor,field}): Likewise.
6049         (expand_expr, case COMPONENT_REF): Likewise.
6050         (store_expr): Check if TEMP and TARGET are same with rtx_equal_p.
6051
6052         * emit-rtl.c (change_address, init_emit): Delete forward references.
6053         (rtl_obstack, stack_depth, max_stack_depth): Delete extern decls.
6054
6055 Fri Apr 18 18:25:52 1997  Jim Wilson  <wilson@cygnus.com>
6056
6057         * function.c (instantiate_decls): For DECL_INCOMING_RTL, use max
6058         of type size and mode size in instantiate_decl call.
6059
6060         * fixincludes (sys/lc_core.h): Fix OSF1/4.x namespace pollution.
6061
6062 Wed Apr 16 19:36:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
6063
6064         * dwarf2out.c (add_bound_info): Use a DIE instead of a location
6065         expression for variable bounds.  Trust a MEM rtx even when
6066         optimizing.
6067         (DWARF_FRAME_RETURN_COLUMN): Default to FIRST_PSEUDO_REGISTER.
6068
6069         * expr.c (expand_expr, case RTL_EXPR): If there is no sequence,
6070         don't set it to const0_rtx.
6071         * tree.c (array_type_nelts): Don't return any SAVE_EXPRs.
6072
6073 Mon Apr 14 18:12:57 1997  David Edelsohn  <edelsohn@mhpcc.edu>
6074
6075         * rs6000.h (RS6000_ITRUNC, RS6000_UITRUNC): Prepend underscores.
6076         (RS6000_MCOUNT): New macro.
6077         (ASM_FILE_START): Use RS6000_MCOUNT.
6078         * rs6000.c (output_function_profiler): Use RS6000_MCOUNT.
6079         * rs6000/aix31.h (RS6000_{ITRUNC,UITRUNC,MCOUNT}): New macros.
6080
6081 Mon Apr 14 14:37:27 1997  Jeffrey A Law  (law@cygnus.com)
6082
6083         * mn10300.c (can_use_return_insn): Include outgoing argument
6084         area in size computation.
6085         (expand_prologue): Likewise.  No longer diddle with sequences.
6086         Put register saves just before outgoing argument area.
6087         (expand_epilogue): Similarly.
6088         (impossible_plus_operand): New function.
6089         * mn10300.h (FRAME_POINTER_REQUIRED): Never require a frame pointer.
6090         (ACCUMULATE_OUTGOING_ARGS, OUTGOING_REG_PARM_STACK_SPACE): Define.
6091         (impossible_plus_operand): Declare.
6092         * mn10300.md (reload_insi): New expander to handle pathological
6093         reload cases.
6094         (addsi3): Fix CC status.
6095
6096         * mn10300.h (FUNCTION_VALUE): Return addresses in $a0.
6097         (FUNCTION_VALUE_REGNO_P): Corresponding changes.
6098         * mn10300.md (call_value_internal): Allow output to be in an
6099         address register.
6100
6101         * calls.c (emit_library_call): Handle saving of stack slots when
6102         ACCUMULATE_OUTGOING_ARGS is defined.
6103         (emit_library_call_value): Likewise.
6104
6105 Mon Apr 14 14:48:15 1997  Jim Wilson  <wilson@cygnus.com>
6106
6107         * sh.md (xtrct_left, xtrct_right): New patterns.
6108
6109         * combine.c (get_last_value_validate): New argument insn.
6110         Add check for memory reference clobbered by later store.
6111         (record_value_for_reg, get_last_values): Pass in new argument.
6112
6113 Mon Apr 14 14:03:18 1997  Mike Meissner  <meissner@cygnus.com>
6114
6115         * configure (powerpc --with-cpu=x): Add embedded powerpcs and 604e.
6116
6117         * rs6000.c (rs6000_override_options): Recognize -mcpu=801, -mcpu=823,
6118         and -mcpu=604e.
6119
6120 Sun Apr 13 18:43:16 1997  Ian Lance Taylor  <ian@cygnus.com>
6121
6122         * reload1.c (invalidate_regno_rtx): New static variable.
6123         (reload_cse_invalidate_regno): Check whether any earlier registers
6124         have a multi-register value which includes the register we are
6125         invalidating.
6126         (reload_cse_regs): Initialize invalidate_regno_rtx.
6127
6128         * reload1.c (reload_cse_record_set): When setting reg_values for a
6129         copy from one register to another, use gen_lowpart_common to
6130         adjust the value correctly if the mode changes.
6131
6132 Sun Apr 13 17:24:48 1997  Doug Evans  <dje@cygnus.com>
6133
6134         * expr.c (move_block_from_reg): Try using integral mov operation first.
6135
6136         * calls.c (expand_call): When copying unaligned values into a register,
6137         zero out the register first rather than emitting a clobber.
6138
6139         * integrate.c (copy_rtx_and_substitute): If FRAME_GROWS_DOWNWARD
6140         and regno == VIRTUAL_STACK_VARS_REGNUM, round size of stack slot up
6141         before calling assign_stack_temp.
6142
6143 Sun Apr 13 15:29:38 1997  Ulrich Drepper  <drepper@cygnus.com>
6144
6145         * enquire.c (fake_f_rep): Add missing element name in cast.
6146
6147 Sun Apr 13 15:20:05 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
6148
6149         * stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
6150         Fix sign bug in last change.
6151
6152 Sun Apr 13 15:03:38 1997  J.T. Conklin  <jtc@netbsd.org>
6153         
6154         * m68k.md (movstricthi): Remove extraneous comparisons.
6155
6156         * configure (*-*-netbsd): tmake_file now t-netbsd; delete xmake_file.
6157         * config/t-netbsd: New file.
6158         * config/x-netbsd: Removed.
6159
6160 Sun Apr 13 14:51:25 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
6161
6162         * cse.c (canon_reg, cse_insn): Don't examine insn_n_dups if
6163         recog_memoized fails to find a match.
6164
6165 Sun Apr 13 14:17:26 1997  Ian Lance Taylor  <ian@cygnus.com>
6166
6167         * reload1.c (reload_cse_noop_set_p): Add insn parameter.  Change
6168         all callers.  If deleting the instruction, remove any earlier
6169         REG_DEAD note for DREG.
6170         (reload_cse_simplify_set): If simplifying, remove any earlier
6171         REG_DEAD note for the new source register.
6172
6173 Sun Apr 13 14:12:08 1997  Pat Rankin  <rankin@eql.caltech.edu>
6174
6175         * libgcc2 (L_bb, L_exit): Use 0 rather than NULL for null pointers.
6176
6177 Sun Apr 13 12:53:03 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6178
6179         * m68k/linux.h (ASM_SPEC): Define.
6180         (STRUCT_VALUE_REGNUM, STATIC_CHAIN_REGNUM, INITIALIZE_TRAMPOLINE):
6181         Remove definitions, undoing the change of Mar 20 1996. 
6182
6183         * m68k.c (output_move_qimode): Optimize pushing one byte if source
6184         operand does not use stack pointer.
6185
6186         * m68k.md (rotl[shq]i3, rotl[hq]i3+1): Don't directly modify operand.
6187
6188         * m68k.md (tstdi): Add missing parallel around the pattern.
6189
6190 Sun Apr 13 12:51:00 1997  Paul Eggert  <eggert@twinsun.com>
6191
6192         * cccp.c, cpplib.c (do_include): Diagnose #import and
6193         #include_next if pedantic and if not in a system header.
6194         (do_warning): #warning now causes an error if -pedantic-errors
6195         is given; this is needed since #warning isn't ANSI.
6196
6197         * toplev.c (lang_options): Add -Wundef, -Wno-undef.
6198         * c-decl.c (c_decode_option): Ignore -Wundef, -Wno-undef.
6199
6200         * cccp.c, cexp.y (warn_undef): New variable.
6201         * cpplib.h (struct cpp_options): New member warn_undef.
6202         (CPP_WARN_UNDEF): New macro.
6203
6204         * cccp.c (main), cpplib.c (cpp_handle_options): Set warn_undef
6205         from -Wundef and -Wno-undef.
6206
6207         * cppexp.c (cpp_lex) New arg skip_evaluation.
6208         (cpp_parse_expr): Pass skip_evaluation to cpp_lex.
6209         Abort if cpp_lex returns NAME.
6210
6211         * cexp.y (exp), cppexp.c (cpp_lex): Optionally warn about undefined
6212         identifiers that evaluate to 0.
6213
6214 Sun Apr 13 11:43:16 1997  Joel Sherrill  <joel@OARcorp.com>
6215
6216         * configure (hppa1.1-*-rtems*): New target.
6217         * mips/rtems.h: New file.
6218
6219 Sun Apr 13 09:48:26 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6220
6221         * gcov.c (print_usage, open_files): Use FATAL_EXIT_CODE.
6222         * collect2.c (fatal_perror, fatal, collect_wait): Likewise.
6223
6224         * sparc.c (eligible_for_delay_slot): Clean up and make to agree
6225         precisely with patterns in MD file.
6226         * sparc.md (*return_addsi): Change condition to exclude both ints.
6227         (*return_adddi): Likewise.
6228         (*return_subsi): New pattern.
6229
6230         * recog.c (validate_replace_rtx_1, case MINUS): New case.
6231         
6232 Sun Apr 13 08:20:24 1997  Thomas Bushnell  <thomas@gnu.ai.mit.edu>
6233
6234         * i386/gnu.h (TARGET_VERSION): Redefine.
6235
6236 Sun Apr 13 08:15:31 1997  Bernd Schmidt  <crux@Pool.Informatik.RWTH-Aachen.DE>
6237
6238         * c-typeck.c (lookup_field): Don't recurse unless FIELD is
6239         a RECORD_TYPE or UNION_TYPE.
6240
6241         * final.c (profile_function): Save the static chain register
6242         around the call to the profiler function.
6243
6244         * loop.c (invariant_p, case REG): Pointers into frame are not
6245         invariants if function has nonlocal gotos.
6246         * reload1.c (reload): If function has nonlocal label, mark all
6247         caller-saved regs as used.
6248
6249 Fri Apr 11 16:49:06 1997  Doug Evans  <dje@seba.cygnus.com>
6250
6251         * m32r.h (REG_ALLOC_ORDER): Restore to original setting.
6252
6253         * m32r.h (UPPER16_P): Fix calculation.
6254         * m32r.c (two_insn_const_operand): New function.
6255         (m32r_print_operand): Handle 'X'.
6256         * m32r.md (movsi): Tweak.
6257         (*movsi_insn): Output hex value of constants too.
6258         (movsi define_split): Add.
6259         (andsi3,orsi3,xorsi3): Output hex value of constants too.
6260
6261 Thu Apr 10 18:39:33 1997  Jim Wilson  <wilson@cygnus.com>
6262
6263         * sh.md (sne): Modified to use negc instead of xor.
6264         (sne+1): New define_split for new sne pattern.
6265         * sh.c (output_stack_adjust): Reorganize code for readability.
6266         If size is negative, negate and subtract it instead of adding it.
6267
6268 Wed Apr  9 13:51:07 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
6269
6270         * sh.c (output_stack_adjust): When splitting an adjustment into two
6271         parts, make sure the stack is aligned at all times.
6272
6273 Tue Apr  8 12:34:38 1997  Jeffrey A Law  (law@cygnus.com)
6274
6275         * mn10300.h (RETURN_ADDR_RTX): Define.
6276
6277 Mon Apr  7 19:19:57 1997  Jeffrey A Law  (law@cygnus.com)
6278
6279         * mn10300.c (count_tst_insns): New function.
6280         (expand_prologue): Load zero into data and/or address registers
6281         if any are free and the function has optimizable tst insns.
6282         (output_tst): If a suitable register is known to have the
6283         value zero, use it instead of searching for a suitable register.
6284         * mn10300.h (zero_dreg, zero_areg): Declare.
6285         (FRAME_POINTER_NEEDED): Frame pointers are not needed if the
6286         outgoing argument size is zero.
6287         * mn10300.md (movXX): Optimize loading zero into an address
6288         register if possible.  Optimize loading a DF/DI mode value
6289         into an address register from a constant memory address.
6290         (addsi3): Provide alternative which doesn't require a matching
6291         inout operand.
6292         (return): Optimize consecutive return instructions.
6293
6294 Mon Apr  7 17:30:35 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
6295
6296         * mips/iris5.h (SUBTARGET_CC1_SPEC): Define.
6297         (LINK_SPEC, STARTFILE_SPEC): Support -static.
6298         * mips/iris6.h (SUBTARGET_CC1_SPEC): Define.
6299         (STARTFILE_SPEC, LINK_SPEC): Support -static.
6300         * mips.h: (SUBTARGET_CC1_SPEC): Define.
6301         (CC1_SPEC): Add subtarget_cc1_spec.
6302         (EXTRA_SPECS): Add subtarget_cc1_spec.
6303
6304 Sun Apr  6 12:24:53 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
6305
6306         * arm.md (incscc): Use a match_operand with cc_register to match
6307         the condition code register.
6308         (decscc, *condbranch, *condbranch_reversed, *mov_scc): Likewise.
6309         (*mov_negscc, *mov_notscc, *cond_return): Likewise.
6310         (*cond_return_inverted, *ior_scc, *cond_move): Likewise.
6311         (insv): New expand.
6312         (andsi_notsi_si): Renamed from *andsi_notsi_si.
6313         (andsi_not_shiftsi_si): New insn.
6314         (*minmax_arithsi): Don't match this insn if operand1 is an
6315         eliminable register.
6316         ({sin,cos}*): Delete, since the ARM always emulates these its
6317         faster to call a library function.
6318         (movsicc, *movsicc_insn): Make operand0 an s_register_operand,
6319         and operand3 an arm_not_operand.  Use cc_register to match the
6320         condition code register.
6321         (mov[sd]fcc*): Make operand[0,2] s_register_operands, and operand3
6322         the nonmemory_operand.  Use cc_register to match the condition
6323         code register.
6324         (*ifcompare_plus_move): Move before *ifcompare_arith_move.  Just do
6325         a split for the output.
6326         (*ifcompare_move_plus): Similarly, but relative
6327         to *ifcompare_move_arith.
6328         (*if_plus_move, *if_move_plus): New patterns.
6329         (*ifcompare_arith_arith): Simplify the alternatives down to just one,
6330         and split the insn before output.
6331         (*if_arith_arith, *if_arith_move, *if_move_arith): New patterns.
6332         (*ifcompare_move_not, *ifcompare_not_move): Simplify and split the
6333         insn before output.
6334         (*if_move_not, *if_not_move): New patterns.
6335         (*ifcompare_shift_move, *ifcompare_move_shift): Simplify and split the
6336         insn before output.
6337         (*if_shift_move, *if_move_shift): New patterns.
6338         (*ifcompare_shift_shift): Simplify and split the insn before output.
6339         (*if_shift_shift): New pattern.
6340         (*ifcompare_not_arith, *ifcompare_arith_not): Simplify and split the
6341         insn before output.
6342         (*if_not_arith, *if_arith_not): New patterns.
6343         (*ifcompare_neg_move, *ifcompare_move_neg): Simplify and split the
6344         insn before output.
6345         (*if_neg_move, *if_move_neg): New patterns.
6346
6347 Sat Apr  5 20:17:43 1997  Michael Meissner  <meissner@cygnus.com>
6348
6349         * rs6000/sol-ci.asm (_environ): Don't make _envrion a common
6350         variable, the lastest assembler doesn't let common variables also
6351         be a weak symbol.
6352
6353 Fri Apr  4 18:30:12 1997  Jim Wilson  <wilson@cygnus.com>
6354
6355         * rs6000.md (adddi3): Use non_short_cint_operand instead of
6356         non_add_cint_operand.
6357
6358 Thu Apr  3 15:08:39 1997  Jeffrey A Law  (law@cygnus.com)
6359
6360         * mn10300.c (can_use_return_insn): Add size of fixed stack space
6361         for function calls into the size of the frame.
6362         (expand_prologue, expand_epilogue): Likewise.
6363         (initial_offset): Corresponding changes..
6364         * mn10300.h (OUTGOING_REG_PARM_STACK_SPACE): No longer define.
6365         (STACK_POINTER_OFFSET): Define.
6366         * mn10300.md (call, call_value expanders): Don't adjust the stack
6367         pointer here anymore.
6368
6369         * mn10300.md (ashlsi3): Remove some alternatives which are no longer
6370         needed or desired.
6371
6372 Thu Apr  3 15:06:53 1997  Jim Wilson  <wilson@cygnus.com>
6373
6374         * local-alloc.c (no_conflict_p): Reject sequences with foreign insns.
6375
6376         * combine.c (move_deaths): Handle partial REG_DEAD note for
6377         multi-reg hard register.
6378
6379         * function.c (expand_function_start): Emit queue after expanding
6380         each dynamic parameter type.
6381
6382         * mips.c (mips_move_2words): Add SIGN_EXTEND support for SYMBOL_REF,
6383         LABEL_REF, and CONST operands.
6384
6385         * dwarf2out.c: Delete comment referring to README.DWARF.
6386
6387 Wed Apr  2 17:21:23 1997  Jim Wilson  <wilson@cygnus.com>
6388
6389         * rs6000.md (ashrdi3_power): Mark alternative 0 as early_clobber
6390         output.
6391
6392         * rs6000.md (abssi3_nopower define_split): Switch operands of MINUS.
6393         (nabssi3_nopower define_split): Likewise.
6394
6395 Tue Apr  1 19:30:01 1997  Mike Stump  <mrs@cygnus.com>
6396         
6397         * libgcc2.c (find_exception_table): Fix to logic to deal with
6398         functions that are in their own section, such as template
6399         instantiations, that cause overlapping EH tables.
6400
6401 Tue Apr  1 17:16:22 1997  Jeffrey A Law  (law@cygnus.com)
6402
6403         * Makefile.in (USER_H): Add va-mn10300.h
6404
6405         * ginclude/stdarg.h: Include va-mn10300.h.
6406         * ginclude/varargs.h: Likewise.
6407         * ginclude/va-mn10300.h: New file.
6408         * mn10300.c (expand_prologue): If current_function_varargs is nonzero,
6409         flush d0/d1 back into stack.
6410         (mn10300_builtin_saveregs): New function.
6411         (function_arg, function_arg_partial_nregs): New functions.
6412         (initial_offset): Tweak now that the RP save area is allocated
6413         and deallocated around each call again.
6414         * mn10300.h (FIRST_PARM_OFFSET): Now 4.
6415         (FRAME_POINTER_REQUIRED): Require frame pointer for all non-leaf fcns.
6416         (REG_PARM_STACK_SPACE): Now 8 bytes.
6417         (FUNCTION_ARG_REGNO_P): Update for new parameter passing conventions.
6418         (CUMULATIVE_ARGS, INIT_CUMULATIVE_ARGS): Likewise.
6419         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise.
6420         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
6421         (TRAMPOLINE_TEMPLATE): Don't clobber d0 anymore.
6422         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
6423         (EXPAND_BUILTIN_SAVEREGS): Define.
6424         * mn10300.md (call, call_value patterns): Allocate and deallocate
6425         stack slot for return pointer around each call.
6426
6427         * mn10300.h (RTX_COSTS): Refine.
6428         (CASE_VALUES_THRESHHOLD, NO_FUNCTION_CSE): Likewise.
6429         * mn10300.c (output_tst): New function.
6430         * mn10300.md (movdi, movdf): Improve code to load constants into regs.
6431         (tst insns): Use output_tst to optimize some cases.  Add versions to
6432         encourage more zero extensions instead of sign extensions of HImode
6433         and QImode values.
6434         (divsi3, udivsi3): Remove patterns.  Replaced by...
6435         (divmodsi4, udivmodsi4): New expanders/patterns.
6436         (andsi3): Optimize "and" operations with certain constants.
6437
6438 Tue Apr  1 09:14:29 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
6439
6440         * sh.h: (ADJUST_COSTS): Define.
6441
6442 Fri Mar 28 17:46:13 1997  Jim Wilson  <wilson@cygnus.com>
6443
6444         * Makefile.in (LANGUAGES): Add gcov.
6445         (OBJS): Add profile.o.
6446         (STAGESTUFF): Add gcov.
6447         (profile.o, gcov.o, gcov): Add rules to build them.
6448         (install-common): Install gcov.
6449         * combine.c (distribute_notes): Handle REG_BR_PROB and REG_EXEC_COUNT
6450         REG_NOTES.
6451         * sparc.h (OVERRIDE_OPTIONS): Check profile_arc_flag.
6452         * final.c (LONG_TYPE_SIZE): Define.
6453         (count_instrumented_arcs): New variable.
6454         (end_final, profile_after_prologue, leaf_function_p): Add support
6455         for profile_arc_flag.
6456         (add_bb): Only call CC_STATUS_INIT if HAVE_cc0.
6457         * flags.h (profile_arc_flag, flag_test_coverage,
6458         flag_branch_probabilities): Declare.
6459         * function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER
6460         for last line of function.
6461         * integrate.c (expand_inline_function): Output
6462         NOTE_REPEATED_LINE_NUMBER after inlined call.
6463         * jump.c (jump_optimize, follow_jumps, mark_jump_label): Disable some
6464         optimizations when flag_test_coverage and there is a line number note
6465         in the way.
6466         (invert_jump): Add REG_BR_PROB when flag_branch_probabililties.
6467         * libgcc2.c (__bb_exit_func): Support gcov style output.
6468         * reorg.c (mostly_true_jump): Use REG_BR_PROB notes when
6469         flag_branch_probabilities.
6470         * rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER.
6471         (reg_note_name): Add REG_BR_PROB and REG_EXEC_COUNT.
6472         * rtl.h (enum reg_note): Add REG_BR_PROB and REG_EXEC_COUNT.
6473         (REG_BR_PROB_BASE): Define.
6474         (NOTE_REPEATED_LINE_NUMBER): Define.
6475         * sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB
6476         notes.
6477         * toplev.c (branch_prob_dump, profile_arc_flag, flag_test_coverage,
6478         flag_branch_probabilities, branch_prob_dump_file, branch_prob_time):
6479         New variables.
6480         (f_options): Add profile-arcs, test-coverage, and
6481         branch-probabilities.
6482         (compile_file): Set branch_prob_time.  Pass flag_test_coverage to
6483         init_emit_once.  Handle branch_prob_dump.  Call init_branch_prob.
6484         Call end_branch_prob. Call output_func_start_profiler.
6485         (rest_of_compilation): Handle branch_prob_dump.  Call new
6486         branch_prob pass.
6487         (main): Set branch_prob_dump.
6488         * gcov.c, profile.c, gcov-io.h, gcov.texi: New files.
6489
6490 Thu Mar 27 16:52:52 1997  Stan Cox  <coxs@dg-rtp.dg.com>
6491
6492         * i386.h (CPP_CPU_DEFAULT): Define if TARGET_CPU_DEFAULT is not set.
6493         * i386.h (STACK_BOUNDARY): Define to always be 32.
6494
6495         From J"orn Rennecke <amylaar@cygnus.co.uk>
6496         * i386.md: (zero_extendhisi2+[12]): Use true_regnum instead of
6497         REGNO for operand 0.  
6498         (zero_extendqisi2+3): Use reg_overlap_mentioned_p instead of REGNO
6499         comparison; use true_regnum instead of REGNO for rtx generation.
6500
6501 Wed Mar 26 12:34:21 1997  Ian Lance Taylor  <ian@cygnus.com>
6502
6503         * reload1.c (reload): Call reload_cse_regs.
6504         (reg_values): New static variable.
6505         (reload_cse_invalidate_regno): New static function.
6506         (reload_cse_mem_conflict_p): New static function.
6507         (reload_cse_invalidate_mem): New static function.
6508         (reload_cse_invalidate_rtx): New static function.
6509         (reload_cse_regs): New static function.
6510         (reload_cse_regno_equal_p): New static function.
6511         (reload_cse_noop_set_p): New static function.
6512         (reload_cse_simplify_set): New static function.
6513         (reload_cse_check_clobbered): New static variable.
6514         (reload_cse_check_src): New static variable.
6515         (reload_cse_check_clobber): New static function.
6516         (reload_cse_record_set): New static function.
6517
6518 Wed Mar 26 07:34:06 1997  Ulrich Drepper  <drepper@cygnus.com>
6519
6520         * ginclude/stdarg.h (__va_copy): New definition.
6521
6522 Tue Mar 25 13:43:36 1997  Michael Meissner  <meissner@cygnus.com>
6523
6524         * gcc.c (init_spec): If -v, print out that the default spec values
6525         were being used.  Fix prototype to reflect no arguments.
6526         (set_spec): If specs has not been set, set it up with the default
6527         specs.
6528         (read_specs): Move to later in the file so that startfile_prefixes
6529         has been declared.  Process "%include <file>" to include another
6530         specs file, aborting if the file can't be found.  Process
6531         "%include_noerr <file>: to include another specs file, giving no
6532         error if the file can't be found.  Process "%rename var1 var2" to
6533         rename a specs variable.  Take new argument that indicates whether
6534         we are processing the main file.  Only process % commands if this
6535         is not the main specs file.  Change callers.
6536         (main): Do not call init_spec if a specs file was found.
6537         (set_spec,read_specs,do_spec_1): If DEBUG_SPECS is defined, print
6538         debug information.
6539         
6540 Tue Mar 25 14:43:58 1997  Doug Evans  <dje@cygnus.com>
6541
6542         * expr.c (emit_push_insn): Delete emission of CLOBBER
6543         when doing partial push, no longer necessary.
6544
6545         * c-decl.c (grokdeclarator): Pedwarn qualified void function return
6546         type.
6547
6548 Tue Mar 25 14:28:15 1997  Richard Earnshaw (rearnsha@armltd.co.uk)
6549
6550         * reload.c (find_dummy_reload): New parameter earlyclobber.  If set
6551         then don't use IN for the reload if it also appears elsewhere in
6552         the insn.  All callers changed.
6553
6554 Tue Mar 25 13:20:18 1997  J.T. Conklin  <jtc@cygnus.com>
6555
6556         * m68k/lb1sf68.asm (udivsi3): Fix hunk from previous patch that
6557         did not apply correctly.
6558
6559         * m68k.md (tablejump): Use extl to explicitly sign extend
6560         index registeron TARGET_5200.
6561         * m68k/{apollo68.h,coff.h,linux.h,mot3300.h,pbb.h}
6562         (ASM_RETURN_CASE_JUMP): Likewise.
6563
6564         * m68k.md (mulsi3): Changed into define_expand.  Split insn into
6565         m68k and coldfire specific versions with appropriate constraints.
6566
6567         * m68k.md (movqi): Disable use of address registers for 
6568         TARGET_5200.
6569
6570         * m68k/lb1sf68.asm (__modsi3, __umodsi3): Use mulsl instruction
6571         instead of __mulsi3 function call on the coldfire.
6572
6573         * m68k.md (bne0_di): Fix typo in last change.
6574
6575         * m68k.md (xorsi3_5200): Correct constraints.
6576
6577         * m68k.c (output_move_{si,hi,qi}mode): New functions.
6578         * m68k.h (output_move_{si,hi,qi}mode): Declare.
6579
6580         * m68k.md (move{si,hi,qi,di}): Changed into define_expands.  Split
6581         insns into m68k and coldfire specific versions with appropriate
6582         constraints.
6583
6584 Tue Mar 25 12:18:41 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6585
6586         * Makefile.in (GCC_PASSES): Revert previous change; use cc1$(exeext).
6587
6588 Mon Mar 24 16:12:20 1997  Doug Evans  <dje@cygnus.com>
6589
6590         * m32r/*: New files.
6591         * config.sub: Add m32r.
6592         * configure: Add m32r.
6593         * longlong.h: Add m32r support.
6594         * ginclude/{stdarg.h,varargs.h}: Add m32r support.
6595         * ginclude/va-m32r.h: New file.
6596
6597 Mon Mar 24 15:53:15 1997  Joel Sherrill <joel@OARcorp.com>
6598
6599         * rs6000/rtems.h: Change to a near clone of the powerpc-eabi target.
6600         * configure (powerpc*-*-rtems): Move before GNU/Linux configuration.
6601
6602 Mon Mar 24 14:26:37 1997  Gavin Koch  <gavin@cygnus.com>
6603
6604         * ginclude/va-mips.h:  For little endian, eabi, objects
6605         less than __va_reg_size are passed in registers.
6606
6607 Fri Mar 21 00:48:02 1997  Jeffrey A Law  (law@cygnus.com)
6608
6609         * mn10300.c (print_operand): Handle 'N'.
6610
6611         * mn10300.c (expand_epilogue): Correctly handle functions
6612         with large frames, but no callee register saves.
6613
6614         * mn1300.md (movdf, movdi): Handle overlapping moves.
6615
6616         * pa.c (compute_movstrsi_length): Handle residuals correctly.
6617
6618 Thu Mar 20 13:53:30 1997  Michael Meissner  <meissner@cygnus.com>
6619
6620         * rs6000.c (easy_fp_constant): If -mrelocatable, consider all fp
6621         constants to be hard.
6622
6623 Mon Mar 20 13:53:30 1997  Jim Wilson  <wilson@cygnus.com>
6624  
6625         * rs6000.md (movdf/movsf define_splits): Add SUBREG support.
6626  
6627         * rs6000.c (fp_reg_or_mem_operand): Delete.
6628         * rs6000.h (PREDICATE_CODES): Remove fp_reg_or_mem_operand.
6629         (fp_reg_or_mem_operand): Delete declaration.
6630         * rs6000.md (movsf_hardfloat): Use nonimmediate_operand instead
6631         of fp_reg_or_mem_operand.
6632
6633 Thu Mar 20 08:52:27 1997  Jeffrey A Law  (law@cygnus.com)
6634
6635         * mn10300.md (cmpsi): Handle comparing a register with
6636         itself by adding zero to the reg.  Z bit for such an insn is
6637         inverted.
6638         * mn10300.c (notice_update_cc): Handle CC_INVERT.
6639
6640         * pa.c (emit_move_sequence): Don't lose for a secondary reload
6641         to the SAR register if the input is a MEM with an offset that won't
6642         fit in 14bits.
6643
6644 Wed Mar 19 17:10:44 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6645
6646         * m68k/linux.h (ASM_OUTPUT_MI_THUNK): Define.
6647
6648 Wed Mar 19 16:59:34 1997  Paul Eggert  <eggert@twinsun.com>
6649
6650         * cccp.c, cpplib.c (do_error, do_warning): Fix memory leak.
6651
6652         * cccp.c (output_line_directive): Do not output negative line
6653         numbers when analyzing directives like `#line 0'.
6654
6655         * cexp.y (parse_number, yylex), cccp.c (rescan), cpplib.c
6656         (cpp_get_token): Unless -lang-c89 is specified, allow C9X-style
6657         hexadecimal floating-point numbers as preprocessor numbers.
6658         * cccp.c (c89): New decl.
6659         (main): Set it to 1 if -lang-c89.
6660         * cpplib.h (struct cpp_options): New member c89.
6661         (CPP_C89): New macro.
6662         * cpplib.c (unsafe_chars): `p' is unsafe before `-' or `+', since it
6663         might generate a C9X-style hexadecimal floating-point number.
6664         (cpp_handle_options): Set c89 option to 1 if -lang-c89.
6665
6666 Tue Mar 18 17:05:57 1997  Stan Cox  <coxs@dg-rtp.dg.com>
6667
6668         * i386.h (STACK_BOUNDARY): Determine according to TARGET_ALIGN_DOUBLE.
6669         
6670         * i386.c (override_options) Make the default alignment 4 for 486,
6671         otherwise 2.
6672         
6673         * i386/freebsd-elf.h (CPP_SPEC): Remove TARGET_CPU_DEFAULT reference.
6674         * i386/linux{,-aout,-oldld}.h (CPP_SPEC): Likewise.
6675         
6676         * i386/go32.h (DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
6677         NO_STAB_H, ASM_FILE_START, DBX_BLOCKS_FUNCTION_RELATIVE,
6678         DBX_FUNCTION_FIRST, DBX_OUTPUT_MAIN_SOURCE_FILE_END,
6679         ASM_OUTPUT_SOURCE_LINE): Added to support stabs.
6680         (ASM_OUTPUT_SECTION_NAME): Support section attribute.
6681
6682 Tue Mar 18 16:12:28 1997  Jim Wilson  <wilson@cygnus.com>
6683
6684         * final.c (shorten_branches): Split all insns before computing insn
6685         lengths.
6686         (final_scan_insn, case default): If HAVE_ATTR_length defined, call
6687         abort for any insn that has a '#' output template.
6688
6689         * expr.c (emit_group_load): Call operand_subword instead of creating
6690         an explicit SUBREG.
6691
6692         * reload1.c (reload_reg_free_before_p, case
6693         RELOAD_FOR_OPERAND_ADDRESS): Conflicts with RELOAD_FOR_OPADDR_ADDR
6694         reloads.
6695
6696         * configure (alpha-dec-osf[23456789]*): Use install-headers-cpio
6697         for osf4.
6698
6699         * gcc.c (init_spec): Delete parameter.  Always initialize extra_specs.
6700         (process_command, main): Change all callers.
6701
6702         * combine.c (if_then_else_cond): Call copy_rtx to prevent sharing.
6703
6704 Tue Mar 18 14:59:12 1997  Ian Lance Taylor  <ian@cygnus.com>
6705
6706         * function.c (assign_parms): Add a REG_EQUIV note to the
6707         instruction which copies a parameter into a pseudo-register
6708         whenever there is an associated stack slot, even if the parameter
6709         actually arrived in a register.
6710
6711 Tue Mar 18 14:24:48 1997  Doug Evans  <dje@cygnus.com>
6712
6713         * configure (alpha-dec-osf[23]): Separate osf[23] case.
6714         * alpha.h (LIB_SPEC): -lprof1 requires -lpdf for OSF 4.
6715         * alpha/osf2or3.h: New file.
6716
6717 Tue Mar 18 11:32:10 1997  Jeffrey A Law  (law@cygnus.com)
6718
6719         * m68k.c (m68k_last_compare_had_fp_operands): New variable.
6720         * m68k.h (m68k_last_compare_had_fp_operands): Declare it.
6721         * m68k.md (tst*, cmp*): Turn into define_expand/define_insn pairs.
6722         Keep track of whether test/compare has fp operands.
6723         (seq, sne, sgt, slt, sge, sle): Turn into define_expand/define_insn
6724         pairs.  Make expanders FAIL if TARGET_68060 and last comparison/test
6725         had fp operands.
6726
6727 Tue Mar 18 04:29:29 1997  Richard Earnshaw <rearnsha@armltd.co.uk>
6728
6729         * arm.md (movhi): Handle generation of large constants during
6730         and after reload.
6731
6732 Mon Mar 17 17:30:24 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
6733
6734         * gmicro.h (RETURN_POPS_ARGS): Make sure FUNDECL is non-nil
6735         before we try to use it.
6736         * m68k.h (RETURN_POPS_ARGS): Likewise.
6737         * ns32k.h (RETURN_POPS_ARGS): Likewise.
6738         * pyr.h (RETURN_POPS_ARGS): Likewise.
6739
6740 Mon Mar 17 17:13:44 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
6741
6742         * stor-layout.c (layout_record, PCC_BITFIELD_TYPE_MATTERS):
6743         Only add padding if a bit field would otherwise span more units
6744         of alignment than its base type.
6745
6746 Mon Mar 17 17:03:55 1997  J.T. Conklin  <jtc@cygnus.com>
6747
6748         * m68k.md (beq0_di, bne0_di, bge0_di, blt0_di): Use cmpw #0
6749         instead of tstl when testing address registers on the 68000.
6750         
6751         * m68k/lb1sf68.asm: Fix prologues/epilogues to deal with the lack
6752         of predecrement/postincrement addressing modes in the coldfire
6753         moveml instruction.
6754
6755 Mon Mar 17 17:00:14 1997  Scott Christley <scottc@net-community.com>
6756
6757         * Fix long standing bug where first method call for a class could
6758         result in a garbled stack or produce an incorrect return value.
6759         * objc/sendmsg.c (__objc_block_return): Remove function.
6760         (__objc_word_return, __objc_double_return): Remove functions.
6761         (__objc_get_forward_imp): New function.
6762         (__objc_init_dispatch_tables): Install zero instead of
6763         __objc_init_install_dtable.
6764         (__objc_init_install_dtable): No longer call the method but
6765         allow objc_msg_lookup return it for normal execution.
6766         (obj_msg_lookup): Differentiate between when a method isn't
6767         implemented and when the dispatch table needs to be installed.
6768         Return the IMP when the dispatch table is installed versus
6769         having __objc_init_install_dtable call it.
6770         (get_imp): Install dispatch table if needed and return IMP
6771         from the newly installed dispatch table.
6772         (__objc_responds_to): Install dispatch table if needed before
6773         checking if method is implemented.
6774
6775 Mon Mar 17 16:29:38 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6776
6777         * tree.c (build_{index,range}_type): Ensure expressions for min
6778         and max value are in same obstack as type.
6779
6780 Mon Mar 17 15:44:18 1997  Pat Rankin  <rankin@eql.caltech.edu>
6781
6782         * cccp.c [#if VMS] (O_RDONLY, O_WRONLY): Delete (redundant).
6783         (BSTRING): Delete (obsolete; usage occurs prior to definition).
6784         (do_include): Handle old VAX C style includes better.
6785
6786 Mon Mar 17 13:46:47 1997  Paul Eggert  <eggert@twinsun.com>
6787
6788         * cexp.y, cppexp.c (parse_number): Invalid integer constants are
6789         errors if pedantic.
6790         * cexp.y (yylex): Invalid multibyte characters are errors if pedantic.
6791         * cppexp.c (cpp_lex): Likewise.
6792         * cppexp.c (cpp_parse_escape): Character constants that do not fit are
6793         errors if pedantic.
6794
6795         * c-parse.in (expr_no_commas): Do not store temporary
6796         skip_evaluation increments on yacc value stack.
6797
6798 Sun Mar 16 19:54:49 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6799
6800         * expr.c (expand_expr, case PLACEHOLDER_EXPR): Refine which
6801         object is picked.
6802
6803 Sun Mar 16 15:45:45 1997  Jeffrey A Law  (law@cygnus.com)
6804
6805         * loop.c (strength_reduce): Adjust BENEFIT appropriately if an
6806         autoincrement memory reference will eliminate add insns.
6807
6808 Sun Mar 16 08:41:40 1997  Scott Christley <scottc@net-community.com>
6809
6810         * i386.md (untyped_call): Re-enable code.
6811         * objc/sendmsg.c (__objc_block_return): New function.
6812         (__objc_word_return, __objc_double_return): New functions.
6813         (__objc_init_install_dtable): Call appropriate return function
6814         based upon method type.
6815         * objc/thr-pthreads.c: Correct include path.
6816
6817 Sat Mar 15 07:58:33 1997  Scott Christley <scottc@net-community.com>
6818
6819         * objc-act.c (OBJC_VERSION): Increment version.
6820         * objc/init.c (OBJC_VERSION): Likewise.
6821
6822 Sat Mar 15 07:58:00 1997  Ovidiu Predescu <ovidiu@net-community.com>
6823
6824         * Implement +load.
6825         * objc/init.c (objc_send_load, __objc_send_load): New functions.
6826         (__objc_send_message_in_list): New function.
6827         (__objc_force_linking): New function.
6828         (__objc_exec_class): Don't call _objc_load_callback here.
6829         * objc/linking.m: New file.
6830         * objc/sendmsg.c (class_add_method_list): Check for the +load method
6831         when adding a methods list to a class.
6832         * objc/Makefile (OBJC_O): Add linking.m.
6833
6834         * Allow methods defined in categories to override methods that are
6835         defined in the class implementation.
6836         * objc/sendmsg.c (__objc_install_methods_in_dtable): New function.
6837         (class_add_method_list): Don't check anymore for duplicate methods.
6838
6839         * config/nextstep.h (INCLUDE_DEFAULTS): Define to something useful
6840         when cross-compiling.
6841
6842         * The static instances list moved from the objc_module struct to 
6843         objc_symtab struct, at the end of defs array. This now allows the NeXT
6844         gdb to work with binaries generated for the GNU ObjC runtime.
6845         * objc-act.c (build_objc_symtab_template): Make sure
6846         defs in objc_symtab is a NULL terminated array.
6847         (init_def_list): Attach statics to end of def list.
6848         (init_objc_symtab): Take statics list into account.
6849         (init_module_descriptor, build_module_descriptor): Don't add statics.
6850         (generate_static_references): Indicate that statics are used.
6851         (finish_objc): Process statics in the beginning.
6852         * objc/objc-api.h (objc_module): Eliminate statics variable.
6853         * objc/init.c (__objc_exec_class): Access statics from their
6854         new place in the defs variable.
6855
6856 Sat Mar 15 07:29:15 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
6857
6858         * reload.c: Include expr.h.
6859         (find_reloads_address, find_reloads_address_1): New argument INSN.
6860         (find_reloads_address_1): Reload inside of p{re,ost}_{in,de}c
6861         instead of entire p{re,ost}_{in,de}c where appropriate.
6862         * Makefile.in (reload.o): Added expr.h to dependencies list.
6863
6864 Sat Mar 15 07:17:12 1997  Richard Henderson  <rth@tamu.edu>
6865
6866         * reload.h (eliminate_regs): Add STORING arg.
6867         * reload1.c (eliminate_regs): Likewise.
6868         (eliminate_regs, case SET): Pass that we are storing to recursive call.
6869         (eliminate_regs, case SUBREG): If storing and same number of words,
6870         use larger mode.
6871         * caller-save.c, dbxout.c, dwarfout.c, dwarf2out.c, reload.c, sdbout.c:
6872         Change all calls to eliminate_regs.
6873
6874 Fri Mar 14 14:18:49 1997  Ian Lance Taylor  <ian@cygnus.com>
6875
6876         * cplus-dem.c: Add prototypes for all static functions.
6877         (mystrstr): Make static.  Make arguments and result const.
6878         (cplus_match): Remove; not used.
6879
6880 Fri Mar 14 10:15:35 1997  Jeffrey A Law  (law@cygnus.com)
6881
6882         * mn10300.c (const_costs): Remove unused function.
6883         * mn10300.h (CONST_COSTS): Rework to generate better code.
6884
6885         * mn10300.c (print_operand): Handle 'H' and 'L' output
6886         modifers for high/low part of a 64bit value.
6887         * mn10300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Handle 'G'
6888         (LEGITIMATE_CONSTANT_P): Allow any constant.
6889         * mn10300.md (movdi, movdf): Implement.
6890         (adddi3, subdi3): New expanders and patterns.
6891
6892         * mn10300.c (print_operand): Handle 'A' modifier for an
6893         address which can't be simple register indirect.
6894         * mn10300.h (EXTRA_CONSTRAINT): Handle 'R' for bit ops.
6895         * mn10300.md: Add patterns to test, set and clear bitfields.
6896
6897         * mn10300.c (can_use_return_insn): New function.
6898         (expand_epilogue): Emit a RETURN insn if possible.
6899         * mn10300.md (return): New pattern.
6900
6901         * mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'N'.
6902         * mn10300.md (andsi3): Catch "and 255,dn" and "and 65535,dn"
6903         which were not turned into zero_extend patterns.
6904
6905         * mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Handle symbolic
6906         constant as an index/base too.
6907
6908         * mn10300.md (movsi): Allow SP to be loaded/saved with
6909         reg+d8 addresses.
6910
6911         * mn10300.md (cmpsi): Allow second operand to be a constant.
6912         (subsi3): Likewise.
6913
6914         * mn10300.md (sign extension patterns): Fix thinko when
6915         extending from memory.
6916
6917         * mn10300.md (tst peepholes): Add peepholes for test/branch
6918         based on N bit being set/clear and the data value being tested dies.
6919
6920 Tue Mar 11 17:07:51 1997  Jeffrey A Law  (law@cygnus.com)
6921
6922         * mn10300.c (expand_prologue): Rework so that eliminating
6923         the frame pointer produces faster/smaller code.
6924         (expand_epilogue): Likewise.
6925         (initial_offset): New function for argument pointer and frame pointer
6926         elimination.
6927         * mn10300.h (FIRST_PSEUDO_REGISTER): Bump to 10.
6928         (FIXED_REGISTERS): Add argument pointer register, it's a fake fixed
6929         register.
6930         (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Corresponding changes.
6931         (REGNO_REG_CLASS, REG_CLASS_CONTENTS): Likewise.
6932         (REG_OK_FOR_BASE_P, REGISTER_NAMES): Likewise.
6933         (reg_class, REG_CLASS_NAMES): Delete unwanted DATA_OR_SP_REGS class.
6934         (PREFERRED_OUTPUT_RELOAD_CLASS): Define.
6935         (FIRST_PARM_OFFSET): No longer include register save area in
6936         computation.
6937         (STACK_POINTER_REGNUM): Is now register 9.
6938         (ARG_POINTER_REGNUM): Is now register 8.
6939         (FRAME_POINTER_REQUIRED): Refine.
6940         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Define.
6941         (CAN_DEUG_WITHOUT_FP): Define.
6942         * mn10300.md (return_internal): Break into two patterns.
6943         
6944         * mn10300.h (CONST_OK_FOR_LETTER_P): Handle 'M' too.
6945         (REGISTER_MOVE_COST): Fix errors and refine.
6946
6947         * mn10300.c (notice_update_cc): SET_ZN_C0 insns leave the
6948         overflow bit in an unuseable state.  Rename CC_SET to CC_TST.
6949         * mn10300.md (cc attributes): "set" is gone, replaced by
6950         "tst".  Update attributes on various insns.
6951
6952         * mn10300.md: Improve sign and zero extension instructions.
6953         (ashlsi3): Improve.  Handle address registers too.
6954         (add peephole): Combine two consecutive adjustments of a register
6955         into a single adjustment.
6956
6957 Tue Mar 11 17:18:40 1997  Brendan Kehoe  <brendan@melange.gnu.ai.mit.edu>
6958
6959         * cplus-dem.c (gnu_special): Call demangled_fund_type for other
6960         __t* symbols.
6961
6962 Mon Mar 10 16:10:34 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6963
6964         * emit-rtl.c (subreg_lowpart_p): Return 0 if SUBREG_REG is VOIDmode.
6965         * combine.c (simplify_rtx, case SUBREG): Fix direction of test when
6966         calling operand_subword; use inline code intead of subreg_lowpart_p.
6967
6968 Fri Mar  7 09:22:28 1997  Jeffrey A Law  (law@cygnus.com)
6969
6970         * mn10300.c (expand_{pro,epi}logue): Rework to avoid
6971         unnecessary "add" operations.
6972         (expand_epilogue): Likewise.
6973         * mn10300.h (STARTING_FRAME_OFFSET): Is zero after the last
6974         round of prologue/epilogue changes.
6975         (FIRST_PARM_OFFSET): Is now 16 (-4 for REG_PARM_STACK_SPACE + 20 for
6976         register save area).
6977         (REG_PARM_STACK_SPACE): Define as 4 bytes.
6978         (OUTGOING_REG_PARM_STACK_SPACE): Define so caller allocates it.
6979         * mn10300.md (call{,_value} expander): Don't emit insns to adjust the
6980         stack here anymore.
6981
6982         * mn10300.md (bCC patterns): Just use "bCC target".
6983
6984 Tue Mar  4 13:21:41 1997  Jim Wilson  <wilson@cygnus.com>
6985
6986         * rs6000.md (movsi): Don't emit a USE insn for LABEL_REFs.
6987
6988 Thu Mar  6 16:29:13 1997  Jim Wilson  <wilson@cygnus.com>
6989
6990         * dwarf2out.c (modified_type_die): Initialize item_type to NULL.
6991         Move equate_type_number_to_die call before use of sub_die, and move
6992         recursive modified_type_die calls on item_type after it.
6993
6994         * dwarfout.c (root_type_1, write_modifier_bytes_1): New functions.
6995         (root_type): Call root_type_1.
6996         (write_modifier_bytes): Call write_modifier_bytes_1.
6997         (output_type, case POINTER_TYPE): Set TREE_ASM_WRITTEN before
6998         recursive call.
6999
7000 Wed Mar  5 14:30:49 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>
7001
7002         Partially undo Jan 11 changes (nor takes only register ops):
7003         * mips.md (*norsi3_const, *nordi3_const): Delete bogus patterns.
7004         * mips.c (complemented_arith_operand): Delete function.
7005         (print_operand): Don't handle `e' for CONST_INT.
7006         * mips.h (PREDICATE_CODES): Delete complemented_arith_operand.
7007
7008 Tue Mar  4 16:38:13 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
7009
7010         * i386.c (i386_return_pops_args): Make sure FUNDECL is non-nil
7011         before we try to use it.
7012         * i386/{isc,next,sco,sco5,scodbx}.h (RETURN_POPS_ARGS): Likewise.
7013
7014 Mon Mar  3 20:17:54 1997  Gavin Koch  <gavin@cygnus.com>
7015
7016         * ginclude/va-mips.h: __mips_single_float should have
7017         the same effect on vararg lists as __mips_soft_float.
7018
7019 Mon Mar  3 18:12:01 1997  Michael Meissner  <meissner@cygnus.com>
7020
7021         * rs6000.h (DBX_CONTIN_LENGTH): Undo 2/26 change.
7022
7023 Mon Mar  3 13:08:20 1997  Jeffrey A Law  (law@cygnus.com)
7024
7025         * combine.c (simplify_rtx): Do nothing with (truncate:mode) if
7026         mode is a partial integer mode.
7027
7028 Sun Mar  2 17:41:18 1997  Ulrich Drepper  <drepper@cygnus.com>
7029
7030         * ginclude/varargs.h: Add definition of __va_copy.
7031         * va-alpha.h, va-clipper.h, va-h8300.h, va-i860.h: Likewise.
7032         * va-i960.h, va-m88k.h, va-mips.h, va-pa.h, va-ppc.h: Likewise.
7033         * va-sh.h, va-sparc.h, va-spur.h: Likewise.
7034
7035 Sun Mar  2 13:25:49 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7036
7037         * c-typeck.c (process_init_element): Warn and truncate if upper
7038         bound of index is out of range.
7039
7040 Fri Feb 28 16:08:47 1997  Michael Meissner  <meissner@cygnus.com>
7041
7042         * rs6000/sol-c0.c (_start): Disable loading up r13 and r2 with the
7043         SDA base registers for now.
7044
7045         * rs6000.md (movsi): Emit a USE insn when putting the
7046         label of constants into the TOC, so that the constant is still
7047         emitted when expensive optimizations are used.
7048
7049 Thu Feb 27 17:54:42 1997  Karl Heuer  <kwzh@gnu.ai.mit.edu>
7050
7051         * fixinc.ptx: Fix sed expression looking for <sys/types.h> in pwd.h.
7052
7053 Thu Feb 27 12:11:16 1997  Dennis Glatting  <dennis.glatting@plaintalk.bellevue.wa.us>
7054
7055         * fixincludes: Remove more cases of __const__ from math.h on NeXT.
7056
7057 Wed Feb 26 14:52:27 1997  Michael Meissner  <meissner@cygnus.com>
7058
7059         * reload.c (debug_reload): Remove extra argument to fprintf.
7060         * rs6000.c (output_toc): Make fprintf calls type correct.
7061
7062         * rs6000.h (DBX_CONTIN_LENGTH): Define as 4000 to avoid AIX
7063         assembler line limit.
7064
7065 Mon Feb 24 17:56:17 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
7066
7067         * fixincludes: Fix need of prototypes for C++ in rpc/xdr.h on SunOS4.
7068
7069 Mon Feb 24 17:33:57 1997  Michael Meissner  <meissner@cygnus.com>
7070
7071         * rs6000/xm-sysv4.h (HAVE_STRERROR): Define.
7072
7073 Sun Feb 23 17:18:28 1997  Jim Wilson  <wilson@cygnus.com>
7074
7075         * rs6000.md (floatsidf2_loadaddr): Correct syntax for cau instruction.
7076         (load_multiple, store_multiple): Call change_address instead of
7077         creating MEM from scratch.
7078
7079 Thu Feb 20 16:39:15 1997  Jim Wilson  <wilson@cygnus.com>
7080
7081         * unroll.c (unroll_loop): Add check for naive loop that ends with
7082         conditional branch that does not branch back to loop start.
7083
7084         * reload1.c (reload): Move assign_stack_local call into main loop.
7085
7086 Thu Feb 20 11:40:46 1997  Jeffrey A Law  (law@cygnus.com)
7087
7088         * pa.md (zero extension patterns): Turn into define_expand and
7089         define_insn pair.
7090
7091 Wed Feb 19 17:05:38 1997  Jeffrey A Law  (law@cygnus.com)
7092
7093         * pa.c (emit_move_sequence): Don't copy 0.0 (double precision)
7094         directly to memory, go through a reg if reload hasn't started.
7095         * pa.md (main movdf pattern): Don't allow 0.0 (double precision)
7096         to be copied directly to memory.
7097
7098         * pa/pa-hpux10.h (MD_EXEC_PREFIX): Define appropriately for hpux10.
7099         (MD_STARTFILE_PREFIX): Similarly.
7100
7101         * pa.h (ASM_OUTPUT_SECTION_NAME): Surround the section name
7102         with '$' if not using GAS.
7103
7104 Wed Feb 19 16:43:47 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
7105
7106         * sched.c (schedule_insns): If there was no first scheduling pass,
7107         split instructions after reload.
7108         (update_flow_info): Tolerate some idiosyncrasies after reload.
7109
7110 Wed Feb 19 11:13:51 1997  Jeffrey A Law  (law@cygnus.com)
7111
7112         * combine.c (find_split_point): Don't turn a SIGN_EXTEND into
7113         a series of shifts if either mode is a partial integer mode.
7114
7115 Mon Feb 17 08:06:02 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7116
7117         * rs6000.c ({,non_}short_cint_operand): Use (unsigned HOST_WIDE_INT).
7118         (non_add_cint_operand, includes_rshift_p): Likewise.
7119         * rs6000.h (CONST_OK_FOR_LETTER_P): Likewise.
7120         (LEGITIMATE_ADDRESS_INTEGER_P, LEGITIMIZE_ADDRESS): Likewise.
7121
7122 Sun Feb 16 07:55:19 1997  J"orn Rennecke  (amylaar@cygnus.co.uk)
7123
7124         * libgcc2.c (__negdi2, __lshrdi3, __ashldi3, __ashrdi3, __ffsdi2):
7125         Use ANSI style definition with full prototype.
7126         (__muldi3, __udiv_w_sdiv, __udivmoddi4, __divdi3, __moddi3) : Likewise.
7127         (__udivmoddi4, __udivdi3, __cmpdi2, __ucmpdi2) : Likewise.
7128         (__fixunstfdi, __fixtfdi, __fixunsxfdi, __fixxfdi) : Likewise.
7129         (__fixunsdfdi, __fixdfdi, __floatdixf, __floatditf) : Likewise.
7130         (__floatdidf, __floatdisf, __fixunsxfsi, __fixunsdfsi) : Likewise.
7131         (__gcc_bcmp, __eprintf, gopen, gclose, __bb_init_file) : Likewise.
7132         (__bb_init_trace_func, __clear_cache, mprotect) : Likewise.
7133         (__enable_execute_stack, cacheflush, exit) : Likewise.
7134         (find_exception_table, __find_first_exception_table_match) : Likewise.
7135
7136 Sun Feb 16 07:52:02 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
7137
7138         * 1750a.md (mulqihi3): Corrected.
7139         (tst{hf,tqf}): Simplified.
7140         (movqi): Removed redundant alternative.
7141         (addqi-3,addqi-2,addqi-1): Set/Reset Bit patterns by C. Nettleton.
7142         (many patterns): Introduced operand output modifiers d,t,b,B,w.
7143         * 1750a.c (print_operand): New operand output modifiers d,t,b,B,w.
7144         (simple_memory_operand): Removed.
7145         (one_bit_set_p, which_bit): Added from C. Nettleton's m1750 config.
7146
7147 Sun Feb 16 07:43:37 1997  Paul Eggert  <eggert@twinsun.com>
7148
7149         * cccp.c (special_symbol): Don't treat "L" in "L'...'" as identifier.
7150         (check_macro_name, collect_expansion, rescan): Likewise.
7151         * cpplib.c (special_symbol, check_macro_name, collect_expansion):
7152         Likewise.
7153
7154         * cexp.y (parse_c_expression): Don't check for null lexptr
7155         or *lexptr == 0.  If yyparse returns nonzero value, abort.
7156
7157         * cexp.y (yylex): Use is_space, not is_hor_space, to find keyword end.
7158         (is_space): New decl.
7159         (is_hor_space): Removed.
7160         * cccp.c (is_space): Now external.
7161         (is_hor_space): Now static.
7162
7163 Sun Feb 16 04:55:11 1997  Jason Merrill  <jason@yorick.cygnus.com>
7164
7165         * toplev.c, tree.h (decl_printable_name): Change arguments.
7166         * c-common.c (declare_function_name): Reflect above change.
7167         * final.c (final_start_function): Likewise.
7168         * function.c (init_function_start): Likewise.
7169         * toplev.c (decl_name): Likewise.
7170         (announce_function): Likewise.
7171         (v_message_with_decl): Likewise.
7172         * dwarf2out.c (dwarf2_name): New fn, uses decl_printable_name.
7173         (add_pubname): Use it.
7174         (add_name_and_src_coords_attributes): Use it, add 
7175         DW_AT_MIPS_linkage_name if appropriate.
7176         (output_aranges): Use DW_AT_MIPS_linkage_name if present.
7177
7178 Sat Feb 15 18:45:30 1997  J.T. Conklin  <jtc@cygnus.com>
7179
7180         * m68k.md (cmpsi): Added insn with appropriate constraints for
7181         TARGET_5200; changed condition of existing insn to !TARGET_5200.
7182
7183 Sat Feb 15 18:26:50 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
7184
7185         * m68k/hp320.h (PRINT_OPERAND_FLOAT): Removed.
7186         (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined.
7187         (PRINT_OPERAND): Turned off: use default.
7188         * m68k/news.h (PRINT_OPERAND): Turned off: use default.
7189         (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}_OPERAND): Defined.
7190         * m68k/tower-as.h (PRINT_OPERAND): Turned off: use default.
7191         (ASM_OUTPUT_{FLOAT,DOUBLE}_OPERAND): Defined.
7192         * m68k/crds.h (PRINT_OPERAND): Turned off: use default.
7193         (ASM_OUTPUT_{FLOAT,DOUBLE}_OPERAND): Defined.
7194         (SGS_NO_LI,STRUCTURE_SIZE_BOUNDARY,IMMEDIATE_PREFIX): Defined.
7195         (NEED_PROBE): Defined instead of HAVE_probe and gen_probe.
7196         (FUNCTION_{PRO,EPI}LOGUE): Do not access FPA registers.
7197         * m68k.c (output_function_prologue): Add CRDS and MOTOROLA probe code.
7198         (print_operand): Do not output '.' if CRDS.
7199
7200         * gcc.c (set_spec): Fix comment-in-comment typo.
7201         
7202 Sat Feb 15 17:54:23 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
7203
7204         * Makefile.in (COMPILERS): Moved before GCC_PASSES.
7205         (GCC_PASSES): Use $(COMPILERS) instead of cc1$(exeext).
7206
7207 Sat Feb 15 17:25:44 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7208
7209         * gcc.c (process_command): Allocate space for terminating null.
7210
7211 Sat Feb 15 17:21:34 1997  Pat Rankin  <rankin@eql.caltech.edu>
7212
7213         * vax.h (FUNCTION_PROLOGUE): Adjust size by STARTING_FRAME_OFFSET.
7214         * vax/vms.h (FUNCTION_PROLOGUE): Delete.
7215
7216 Sat Feb 15 08:48:14 1997  Douglas B. Rupp  (rupp@gnat.com)
7217
7218         * configure: Fix setting of CC in no-symlink case.
7219
7220 Sat Feb 15 08:42:17 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
7221
7222         * expmed.c (expand_divmod): Prefer divmod in same mode over div
7223         in wider mode.
7224
7225 Sat Feb 15 08:27:50 1997  J"orn Rennecke  (amylaar@cygnus.co.uk)
7226
7227         * fold-const.c (fold): Don't assume a nonexplicit constant cannot
7228         equal an explicit one.
7229
7230         * i386.md (zero_extendqi[hs]i2+3): Ensure operating on REG.
7231
7232 Sat Feb 15 08:11:04 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7233
7234         * configure (i[3456]86-*-solaris2*): Correct tm.h filename in
7235         stabs case.
7236
7237         * a29k.h (STORE_FLAG_VALUE): Write so works on both 32 and 64-bit host.
7238
7239 Fri Feb 14 16:03:37 1997  Robert Lipe  <robertl@dgii.com>
7240
7241         * i386/t-sco5 (libgcc{1,2}-elf.a): correct target dependencies.
7242
7243 Fri Feb 14 16:00:23 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
7244
7245         * config/svr4.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Set 
7246         current-section variable to text.
7247
7248 Wed Feb 12 16:07:34 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
7249
7250         * fixinc.irix: New file.
7251         * configure (mips-sgi-irix[56]): Set fixincludes to fixinc.irix.
7252
7253 Wed Feb 12 15:40:20 1997  Jim Wilson  <wilson@cygnus.com>
7254
7255         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): New macro.
7256         (LIBGCC2_CFLAGS): Use it.
7257
7258         * dwarfout.c (output_type): Do early exit only if TYPE_CONTEXT is NULL
7259         or if TYPE_CONTEXT is another type (e.g. a nested type).
7260
7261 Tue Feb 11 15:53:51 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
7262
7263         * sh.c (calc_live_regs): Exclude RETURN_ADDRESS_POINTER_REGNUM.
7264         Need not save MACL/MACH when not live or in leaf function.
7265
7266 Mon Feb 10 14:46:32 1997  Jeffrey A Law  (law@cygnus.com)
7267
7268         * stmt.c (group_case_nodes): Recognize more opportunities to
7269         group case nodes.
7270
7271 Sun Feb  9 14:05:48 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7272
7273         * function.c (assign_stack_temp): Clear MEM flags from reuse.
7274
7275 Sat Feb  8 17:37:47 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7276
7277         * local-alloc.c (update_equiv_regs): Fix error in last change.
7278
7279 Fri Feb  7 12:42:34 1997  Mike Stump  <mrs@cygnus.com>
7280
7281         * pa.h (RETURN_ADDR_RTX): Fix to ignore export stubs.
7282         * pa.c (return_addr_rtx): Define.
7283
7284 Fri Feb  7 13:56:56 1997  Doug Evans  <dje@cygnus.com>
7285
7286         * cse.c (invalidate_from_clobbers): Delete unnecessary test for
7287         (clobber nil).
7288
7289         * toplev.c (main): Delete redundant settings of flag_no_inline
7290         and warn_inline if not optimizating.
7291
7292 Fri Feb  7 10:45:02 1997  Jeffrey A Law  (law@cygnus.com)
7293
7294         * Makefile.in (stmp-multilib-sub): Add missing "else true"
7295         clauses to work around make bug on some systems.
7296
7297 Fri Feb  7 08:19:43 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7298
7299         * fold-const.c (const_binop): Don't call size_int if low < 0.
7300
7301         * function.c (instantiate_virtual_regs_1, case USE, CLOBBER):
7302         Fix error in last change.
7303
7304 Thu Feb  6 17:09:17 1997  Mike Stump  <mrs@cygnus.com>
7305
7306         * except.c (find_exception_handler_labels): Initialize label array
7307         with zeroes.
7308
7309 Wed Feb  5 22:11:55 1997  Jeffrey A Law  (law@cygnus.com)
7310
7311         * pa.md (post_ldwm): Fix typos.
7312
7313 Wed Feb  5 15:57:42 1997  Doug Evans  <dje@cygnus.com>
7314
7315         * m68k/vxm68k.h (WCHAR_TYPE,WCHAR_TYPE_SIZE,SIZE_TYPE): Fix.
7316         (PTRDIFF_TYPE): Define.
7317
7318 Wed Feb  5 11:19:13 1997  Ian Lance Taylor  <ian@cygnus.com>
7319
7320         * reload1.c (alter_reg): Don't ask assign_stack_local to round up
7321         to a multiple of BIGGEST_ALIGNMENT, unless a register appears in a
7322         paradoxical subreg.
7323
7324 Tue Feb  4 19:29:40 1997  Jim Wilson  <wilson@cygnus.com>
7325
7326         * reload.c (find_reloads_address_1, case POST_INC): Don't use
7327         ADDR_TYPE here.
7328
7329 Tue Feb  4 12:33:45 1997  Jeffrey A Law  (law@cygnus.com)
7330
7331         * flow.c (life_analysis): Delete obvious no-op moves
7332         which use SUBREGs.
7333
7334 Mon Feb  3 20:00:35 1997  Jim Wilson  <wilson@cygnus.com>
7335
7336         * jump.c (find_cross_jump): Don't allow old-style and volatile asms
7337         to match.
7338
7339 Mon Feb  3 15:51:31 1997  Doug Evans  <dje@cygnus.com>
7340
7341         * sparc/sol2.h (ASM_SHORT,ASM_LONG): Set to .uahalf/.uaword.
7342         * sparc/sysv4.h (ASM_LONG): Define.
7343         (ASM_OUTPUT_{FLOAT,DOUBLE,LONG_DOUBLE}): Use ASM_LONG.
7344
7345 Mon Feb  3 13:01:46 1997  Ian Lance Taylor  <ian@cygnus.com>
7346
7347         * reload.h (enum reload_type): Add RELOAD_FOR_INPADDR_ADDRESS and
7348         RELOAD_FOR_OUTADDR_ADDRESS.
7349         * reload.c (ADDR_TYPE): New macro.
7350         (push_secondary_reload): Check for new reload types.
7351         (combine_reloads): Likewise.
7352         (find_reloads): Likewise.  Convert INPADDR_ADDRESS and
7353         OUTADDR_ADDRESS to OPADDR_ADDR.  Check OPADDR_ADDR when looking
7354         for merges.
7355         (find_reloads_address): When reloading an address, use the
7356         ADDR_TYPE macro to get the type of the new reload.
7357         (find_reloads_address_1): Likewise.
7358         (reload_when_needed_name): Add new reload types.
7359         * reload1.c (reload): Add in_addr_addr and out_addr_addr fields to
7360         insn_needs struct.  Use them for new reload types, and when
7361         computing in_max and out_max.
7362         (reg_used_in_inpaddr_addr): New static array.
7363         (reg_used_in_outaddr_addr): New static array.
7364         (mark_reload_reg_in_use): Handle new reload types.
7365         (clear_reload_reg_in_use, reload_reg_free_p): Likewise.
7366         (reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise.
7367         (reloads_conflict, merge_assigned_reloads): Likewise.
7368         (emit_reload_insns): Likewise.
7369         (choose_reload_regs): Save arrays for new reload types.
7370
7371 Sun Feb  2 19:43:17 1997  Scott Christley <scottc@net-community.com>
7372
7373         * objc/selector.c (__sel_register_typed_name): Eliminate compiler
7374         warnings with explicit cast.
7375
7376         * Add condition mutex support to the objc runtime.
7377         * objc/thr-mach.c (objc_condition_{,de}allocate): New functions.
7378         (objc_condition_{wait,broadcast,signal}): New functions.
7379         * objc/thr-pthreads.c (objc_condition_{,de}allocate): New functions.
7380         (objc_condition_{wait,broadcast,signal}): New functions.
7381         * objc/thr-solaris.c (objc_condition_{,de}allocate): New functions.
7382         (objc_condition_{wait,broadcast,signal}): New functions.
7383         * objc/thr.h: Prototypes for new functions.
7384
7385         * objc/init.c (__objc_runtime_mutex): Eliminate leading underscore
7386         from name of objc mutex and thread structures.
7387         * objc/runtime.h: Likewise.
7388         * objc/thr-{decosf1,irix,mach,os2,posix,pthreads,single}.c: Likewise.
7389         * objc/thr-{solaris,win32}.c: Likewise.
7390         * objc/thr.{c,h}: Likewise.
7391
7392         * Major reorganization of objc error handling.
7393         * objc/Object.m (-error:): Call objc_error function instead of
7394         using function pointer.
7395         * objc/archive.c: Replace call to abort or __objc_fatal functions
7396         with call to objc_error function throughout the complete file.
7397         * objc/class.c (objc_get_class): Replace call to abort function
7398         with call to objc_error function.
7399         * objc/encoding.c (objc_sizeof_type, objc_alignof_type): Replace
7400         call to abort function with call to objc_error function.
7401         (objc_skip_typespec): Likewise.
7402         * objc/init.c (init_check_module_version): Replace call to
7403         abort function with call to objc_error function.
7404         * objc/misc.c (objc_verror): New function.
7405         (objc_fatal): Remove function.
7406         (objc_set_error_handler): New function.
7407         (_objc_error_handler): New global variable.
7408         (__alpha__): Remove unneeded code.
7409         (objc_error): Allow user specified error handler function to
7410         trap and handle the objc error.  Added an error code parameter
7411         which indicates the specific error that occured.
7412         (objc_malloc, objc_atomic_malloc): Replace call to objc_fatal
7413         function with call to objc_error function.
7414         (objc_valloc, objc_realloc, objc_calloc): Likewise.
7415         * objc/objc-api.h: Declare error handling functions and typedef
7416         for user specified error handler function.  Define error codes
7417         used by the runtime library.
7418         * objc/runtime.h: Remove error handling declarations.
7419         * objc/sendmsg.c (__objc_forward): Replace call to abort function
7420         with call to objc_error function.
7421         
7422 Sun Feb  2 19:42:52 1997  Thomas Baier <baier@ci.tuwien.ac.at>
7423
7424         * objc/hash.c (hash_delete): Step through the hash nodes
7425         versus using hash_next to increase efficiency.
7426         * objc/archive.c (__objc_finish_read_root_object): Use hash
7427         table instead of list.
7428
7429 Sun Feb  2 08:25:05 1997  Ovidiu Predescu  <ovidiu@net-community.com>
7430
7431         * objc-act.c (encode_aggregate_within): New function.
7432         (encode_aggregate): Generates encodings for unions similar 
7433         to those for structs except surrounded by parenthesis instead
7434         of braces.
7435
7436 Sun Feb  2 07:15:54 1997  Mat Hostetter  (mat@lcs.mit.edu)
7437
7438         * c-decl.c (start_function): Fix improper installation of last change.
7439
7440 Sun Feb  2 06:50:55 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7441
7442         * m68k.c (output_scc_di): Add missing CC_STATUS_INIT.
7443
7444 Sun Feb  2 06:39:55 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7445
7446         * c-typeck.c (process_init_element): When popping levels, don't
7447         blow up if constructor_max_index not set due to previous error.
7448
7449         * combine.c (find_split_point, case SET): Fix error in last change.
7450
7451 Sun Feb  2 06:28:56 1997  Paul Eggert  <eggert@twinsun.com>
7452
7453         * cccp.c (rescan): Insert a space after `.' as well,
7454         to prevent accidental token-pasting (e.g. `.x' -> `.10').
7455
7456 Sun Feb  2 06:08:14 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
7457
7458         * 1750a.c (modregno_adjust): Fixed case when reg_renumber invalid.
7459
7460 Sat Feb  1 19:11:08 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
7461
7462         * m68k.md (movqi): Enable use of clr and st insns on TARGET_5200.
7463         * m68k.c (output_move_simode_const): Likewise.
7464
7465 Sat Feb  1 18:54:00 1997  Douglas B. Rupp  (rupp@gnat.com)
7466
7467         * gcc.c (process_command): Fix improper use of strncpy.
7468
7469 Fri Jan 31 15:35:08 1997  Mike Stump  <mrs@cygnus.com>
7470
7471         * libgcc2.c: Remove extern for malloc and realloc.
7472
7473 Fri Jan 31 17:08:11 1997  Ian Lance Taylor  <ian@cygnus.com>
7474
7475         * local-alloc.c (update_equiv_regs): If register which is equivalent
7476         to some value is only used in one place, and we can't substitute value
7477         for use, move register assignment to just before use.
7478
7479 Fri Jan 31 15:57:25 1997  Stan Cox  <coxs@dg-rtp.dg.com>
7480
7481         * i386.md (idiv,imul,fpmul): Added new functional units for pentiumpro.
7482
7483         * i386.c (pentiumpro_cost): Added new cost structure for pentiumpro.
7484         (override_options): Set ix86_cost to appropriate cost structure.
7485
7486 Thu Jan 30 09:34:26 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
7487
7488         * m68k.md (stack adjust peepholes): Use lea instead of
7489         add.w when adding 16 bit constants on all but TARGET_68040.
7490
7491 Thu Jan 30 08:58:08 1997  Ralf Baechle  <ralf@waldorf-gmbh.de>
7492
7493         * function.c (TRAMPOLINE_ALIGNMENT): Provide default.
7494         (expand_function_end): Use TRAMPOLINE_ALIGNMENT instead
7495         of FUNCTION_BOUNDARY.
7496         * varasm.c (TRAMPOLINE_ALIGNMENT): Provide default.
7497         (assemble_trampoline_template): Use TRAMPOLINE_ALIGNMENT instead
7498         of FUNCTION_BOUNDARY.
7499
7500 Wed Jan 29 18:16:02 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
7501
7502         * sh.h (REG_CLASS_CONTENTS): Add rap to GENERAL_REGS and its
7503         superclasses.
7504
7505         * sh.md (movsi_i, movsi_ie, movhi_i, movhi+1): Use type pcload for
7506         immediate operands where appropriate.
7507         (movsf_ie+1): Fail when loading anything but a MEM into
7508         a floating point reguister.
7509
7510 Wed Jan 29 16:00:31 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7511
7512         * varasm.c (force_const_mem): Set MARK instead of clearing it.
7513         (output_constant_pool): Only mark constant pool if -O.
7514         Check mark flag unconditionally.
7515         (mark_constant_pool): Start by clearing all mark flags.
7516
7517         * tree.c (copy_node): Clear TREE_ASM_WRITTEN.
7518
7519         * flow.c (regno_uninitialized): Return 0 if reg is used for args.
7520
7521 Wed Jan 29 15:23:59 1997  Ian Lance Taylor  <ian@cygnus.com>
7522
7523         * combine.c (try_combine): Clear reg_n_refs if i2dest is not
7524         mentioned in newi2pat.
7525
7526 Tue Jan 28 16:00:23 1997  Stan Cox  (coxs@dg-rtp.dg.com)
7527
7528         From Robert Lipe <robertl@dgii.com> 
7529         * i386/sco5.h (SCO_DEFAULT_ASM_COFF): Remove bytecode stuff.
7530         (ASM_OUTPUT_ASCII): Use .ascii in both ELF and COFF modes.
7531         (ASM_OUTPUT_SECTION_NAME): Handle alternate sections for COFF.
7532         The OpenServer 5.0.0 assembler gives an error for section
7533         names over 6 characters long, so we catch the "obvious" case
7534         and shorten it.
7535
7536         * m88k.h (ASM_OUTPUT_SECTION_NAME): Undefine; fails
7537         for exception sections.  The 88k ABI specifies 'section'
7538         instead of '.section'.
7539
7540 Mon Jan 27 13:32:46 1997  J"orn Rennecke <amylaar@cygnus.co.uk>
7541
7542         * sh.c (shl_and_kind): Fix typo.
7543         * sh.md (and_shl_scratch): Fix typo for length 8.
7544
7545 Mon Jan 27 08:56:03 1997  Jeffrey A Law  (law@cygnus.com)
7546
7547         * fixincludes (sys/time.h): Fix incorrect forward structure
7548         declaration on hpux10.20.
7549
7550 Mon Jan 27 09:05:35 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7551
7552         * combine.c (simplify_rtx): Don't do anything with if_then_else_cond
7553         result if both one arm and the input are a comparison.
7554         (simplify_{rtx,if_then_else,logical,shift_const}): Don't
7555         test STORE_FLAG_VALUE with #if; properly test for just sign bit.
7556         (num_sign_bit_copies, if_then_else_cond): Likewise.
7557         * expmed.c (emit_store_flag): Properly test for STORE_FLAG_VALUE
7558         of just sign bit.
7559         * fold-const.c (fold): Don't make COND_EXPR when both expr and
7560         one part are comparisons.
7561         * a29k.h (STORE_FLAG_VALUE): Make negative.
7562
7563 Fri Jan 24 16:42:26 1997  Ian Lance Taylor  <ian@cygnus.com>
7564
7565         * varasm.c (struct pool_constant): Add mark field.
7566         (force_const_mem): Clear mark field in new constant pool entry.
7567         (output_constant_pool): Call mark_constant_pool.
7568         (mark_constant_pool, mark_constants): New static functions.
7569
7570 Thu Jan 23 15:04:17 1997  Ian Lance Taylor  <ian@cygnus.com>
7571
7572         * cse.c (COST): Get the right cost for a SUBREG of a register when
7573         truncation is free.
7574
7575 Thu Jan 23 11:19:40 1997  Mike Stump  <mrs@cygnus.com>
7576
7577         * Makefile.in (objc-headers): Don't try and install the headers if
7578         the objc directory has been removed.
7579
7580 Wed Jan 22 13:26:25 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
7581
7582         * i960.c (process_pragma): Call ungetc on the last character
7583         that was read by the while loop, to make sure the parser sees it.
7584
7585 Tue Jan 21 17:20:30 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
7586
7587         * rs6000.c (output_toc): Move STRIP_NAME_ENCODING to common
7588         code, so the test for vt's works with -mminimal-toc.
7589
7590 Tue Jan 21 16:03:35 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7591
7592         * function.c (mark_all_temps_used): Set KEEP as well.
7593
7594 Tue Jan 21 12:16:15 1997  Doug Evans  <dje@seba.cygnus.com>
7595
7596         * stor-layout.c (layout_record): Correct test for whether field spans
7597         its unit of alignment in case where field_size == type_align.
7598
7599 Mon Jan 20 20:27:54 1997  Ian Lance Taylor  <ian@cygnus.com>
7600
7601         * mips.md (probe): Comment out.
7602
7603 Sun Jan 19 20:54:45 1997  John F. Carr  <jfc@mit.edu>
7604
7605         * integrate.c (expand_inline_function): Handle a PARALLEL containing
7606         a RETURN the same as a RETURN.
7607
7608 Sun Jan 19 20:35:28 1997  Pat Rankin  <rankin@eql.caltech.edu>
7609
7610         * vmsconfig.com: Change all hardcoded references of "vax" to
7611         use variable expansion instead.
7612         (arch_indx, arch): New variables.
7613
7614         * vax.c (not_qsort):  Don't declare alloca.
7615         * vax/xm-vms.h: Declare alloca here.
7616         Do most of the VAX C-specific set up for DEC C.
7617         #if DEC C, undefine QSORT_WORKAROUND and qsort.
7618         * make-gcc.com, make-cccp.com, make-cc1.com:  Support building
7619         with GNU C vs VAX C vs DEC C from the DCL command line.
7620
7621 Sun Jan 19 17:20:50 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
7622
7623         * 1750a.md (movh[if]-1): Corrected.
7624         (movtqf-1): Deleted.
7625         * 1750a.c (add_1_to_mem): Deleted.
7626         (output_operand_address): Added output modifier 'A'.
7627
7628 Sun Jan 19 17:17:54 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>
7629
7630         * m68k.md (ashrdi_const, ashrdi3): Allow 31 as shift count.
7631
7632         * m68k.h (CONST_OK_FOR_LETTER_P): Recognize 'N', 'O' and 'P'.
7633         * m68k.md (rotl[shq]i3, strict_low_part rotl): Allow 'N', 'O'
7634         or 'P' operands.
7635
7636 Sun Jan 19 17:09:17 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7637
7638         * m68k.md (addsi3): Fix previous change: {add,sub}qw should
7639         be {add,sub}ql. For other uses of {add,sub}q don't check for address
7640         register and always use {add,sub}ql.
7641
7642 Sun Jan 19 15:05:42 1997  Peter Seebach  <seebs@solon.com>
7643
7644         * c-decl.c (start_decl): Add code for -Wmain.
7645         (c_decode_option): Add -fhosted, -ffreestanding, and -Wmain.
7646         * toplev.c (lang_options): Likewise.
7647         * c-tree.h (warn_main, flag_hosted): New variables.
7648
7649 Sun Jan 19 14:35:41 1997  Alex Garthwaite  (alex@samwise.cis.upenn.edu)
7650
7651         * fixinc.svr4: Fix problems with symlinks to ".".
7652
7653 Sun Jan 19 14:21:46 1997  Craig Burley  <burley@gnu.ai.mit.edu>
7654
7655         * loop.c (check_final_value): Handle insns with no luid's.
7656
7657 Sun Jan 19 08:57:26 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7658
7659         * alpha.md (arg_home): Add CLOBBER of MEM and USE of arg regs.
7660         * vms.h (SETUP_INCOMING_VARARGS): Delete duplicate definition.
7661
7662         * toplev.c (set_float_handler): Set up signal catcher on first call
7663         in case a front end has disabled it.
7664
7665         * cccp.c, cexp.y: #define __attribute__ to be null if 
7666         compiling with GCC older than 2.7, not 2.6.
7667
7668         * toplev.c (main): If PREFERRED_DEBUGGING_TYPE used and set
7669         to NO_DEBUG, say debugging not supported.
7670         * mips/sni-svr4.h (PREFERRED_DEBUGGING_TYPE): Undefine.
7671
7672         * i386/xm-cygwin32.h (DIR_SEPARATOR): Define.
7673
7674         * explow.c (convert_memory_address, case SYMBOL_REF):
7675         Copy CONSTANT_POOL_ADDRESS_P.
7676         * integrate.c (save_constants): Make (address (const ..)) to record
7677         both modes.
7678         (copy_for_inline, copy_rtx_and_substitute, restore_constants): Use
7679         both modes when restoring constant pool entry for ADDRESS.
7680
7681         * alpha.h (MINIMUM_ATOMIC_ALIGNMENT): New macro.
7682
7683         * function.c (instantiate_virtual_regs_1, case USE, case CLOBBER):
7684         Properly handle case of shared MEM whose replacement is not valid.
7685
7686 Sat Jan 18 14:08:31 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7687
7688         * tree.c (get_unwidened): Don't crash if FIELD_DECL not layed out.
7689
7690         * varasm.c (const_hash): Treat NON_LVALUE_EXPR like CONVERT_EXPR.
7691         (compare_constant_1, copy_constant, bc_assemble_integer): Likewise.
7692         (const_hash, compare_constant_1): Use switch, not if-then-else.
7693
7694 Fri Jan 17 17:10:20 1997  Ian Lance Taylor  <ian@cygnus.com>
7695
7696         * mips.h (STACK_POINTER_OFFSET): Don't define.
7697
7698 Thu Jan 16 14:51:03 1997  Bob Manson  <manson@charmed.cygnus.com>
7699
7700         * cplus-dem.c: Fix indenting; note that this file also lives in
7701         libiberty.
7702         (do_type, case 'M'): Check for a template as well as a class.
7703
7704 Thu Jan 16 15:08:26 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
7705
7706         * gcc.c (cross_compile): Change to be a char * like all of the
7707         other specs.
7708         (process_command): Change how cross_compile is tested.
7709         (main): Likewise.
7710         (struct spec_list): Merge with the format used by EXTRA_SPECS.
7711         Add name length field to speed up repeated calls to strcmp.  Add
7712         flag to say spec was allocated.  Add pointer to char * so that
7713         static spec fields can be updated.
7714         (extra_specs): Use struct spec_list as type.
7715         (static_specs): Static list of predefined specs.
7716         (init_specs): New function, initialize the specs list.  Link in
7717         the default specs and any specs defined via EXTRA_SPECS.
7718         (set_spec): No longer special case predefined specs.
7719         (process_command,validate_all_switches): Ditto.
7720         (process_command): Call init_specs for -dumpspecs.
7721         (do_spec_1): Use name length field to avoid calling strncmp when
7722         it is going to fail.
7723         (main): Call init_spec.  Don't handle EXTRA_SPECS here.
7724
7725 Thu Jan 16 17:07:54 1997  Eddie C. Dost  <ecd@skynet.be>
7726
7727         * configure: Add sparc-linux{,aout} support.
7728         * ginclude/va-sparc.h: Likewise.
7729         * sparc/linux.h: New file.
7730         * sparc/linux-aout.h: New file.
7731         * sparc/xm-linux.h: New file.
7732
7733 Thu Jan 16 16:19:13 1997  Jim Wilson  <wilson@cygnus.com>
7734
7735         * configure (sparc-*-aout*): Add libgloss.h to tm_file.
7736         (sparclite-*-coff*): Change "= to =".
7737
7738 Thu Jan 16 12:53:15 CST 1997  Joel Sherrill <joel@OARcorp.com>
7739
7740         * rs6000/rtems.h: Change from being sysv4 based to being eabi based.
7741
7742 Thu Jan 16 13:40:51 1997  Jim Wilson  <wilson@cygnus.com>
7743
7744         * mips.h (LINKER_ENDIAN_SPEC): Define.
7745         (LINK_SPEC): Add linker_endian_spec.
7746         (EXTRA_SPECS): Add linker_endian_spec.
7747
7748 Thu Jan 16 08:02:13 1997  Jeffrey A Law  (law@cygnus.com)
7749
7750         * mn10300.md (bCC, inverted bCC): Use bCC .+X instead of bCC 0f.
7751
7752 Wed Jan 15 14:06:28 1997  Ian Lance Taylor  <ian@cygnus.com>
7753
7754         * reload.h (reload_address_base_reg_class): Declare.
7755         (reload_address_index_reg_class): Declare.
7756         * reload1.c (reload_address_base_reg_class): Define.
7757         (reload_address_index_reg_class): Define.
7758         (init_reload): Initialize reload_address_{base,index}_reg_class.
7759         * reload.c (find_reloads_address): Use
7760         reload_address_base_reg_class rather than BASE_REG_CLASS.  Use
7761         reload_address_index_reg_class rather than INDEX_REG_CLASS.
7762         (find_reloads_address_1): Likewise.
7763
7764 Tue Jan 14 15:26:33 1997  Ian Lance Taylor  <ian@cygnus.com>
7765
7766         * reload.c (REGNO_MODE_OK_FOR_BASE_P): Define if not defined.
7767         (REG_MODE_OK_FOR_BASE_P): Define if not defined.
7768         (find_reloads_address): Use REG[NO]_MODE_OK_FOR_BASE_P rather than
7769         REG[NO]_OK_FOR_BASE_P.
7770         (find_reloads_address_1): Likewise.
7771         Add mode parameter; change all callers.
7772
7773         * reload1.c (eliminate_regs_in_insn): Handle more cases when
7774         eliminating the frame pointer to the hard frame pointer.
7775
7776         * varasm.c (force_const_mem): Copy a CONST_INT rtx like a CONST rtx.
7777
7778         * varasm.c (assemble_end_function): Call
7779         output_after_function_constants.
7780         (after_function_constants): New static variable.
7781         (output_after_function_constants): New static function.
7782         (output_constant_def): Check CONSTANT_AFTER_FUNCTION_P.
7783
7784 Mon Jan 13 16:44:40 1997  David Edelsohn  <edelsohn@mhpcc.edu>
7785
7786         * rs6000/aix41.h (CPP_PREDEFINES): Add -D_AIX41.
7787
7788 Sun Jan 12 20:54:01 1997  Jim Wilson  <wilson@cygnus.com>
7789
7790         * libgloss.h (LINK_SPEC): Delete.
7791         (STARTFILE_SPEC): Delete spurious newline.
7792
7793 Sat Jan 11 00:13:03 1997  Torbjorn Granlund  <tege@quiet.matematik.su.se>
7794
7795         * mips.md (norsi3, nordi3): Use canonical RTL.  Prepend `*' to pattern
7796         name.  Don't match immediates.
7797         (norsi3_const, nordi3_const): New patterns.
7798         (anddi3, iordi3, xordi3): Test TARGET_64BIT, not mips_isa
7799         in length attribute calculation.
7800         * mips.c (complemented_arith_operand): New function.
7801         (print_operand): Handle `e' for CONST_INT.
7802         * mips.h (PREDICATE_CODES): Add complemented_arith_operand.
7803         
7804 Fri Jan 10 14:11:53 1997  David Edelsohn  <edelsohn@mhpcc.edu>
7805
7806         * rs6000/aix41.h (SUBTARGET_SWITCHES): Add threads and pe.
7807         (CPP_SPEC): Add mpe and mthreads cases.
7808         (LIB_SPEC): Add mpe and mthreads cases to variant from rs6000.h.
7809         (STARTFILE_SPEC): Add mpe and mthreads support.
7810
7811 Fri Jan 10 07:12:26 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7812
7813         * i386/cygwin32.h (LINK_SPEC): New definition.
7814
7815         * Makefile.in (FLAGS_TO_PASS): Add STAGE_PREFIX, set by configure.
7816         * configure: Initialize exeext.
7817         Update STAGE_PREFIX in Makefile.
7818
7819         * dwarfout.c (dwarfout_line): Push to LINE_SECTION after calling
7820         lookup_filename.
7821
7822 Thu Jan 9 12:06:04 1997  Jim Wilson  <wilson@cygnus.com>
7823
7824         * i386.md (addsidi3_2): Add & to operand 0 of alternative 5.
7825
7826 Thu Jan 9 12:06:04 1997  Stan Cox  <coxs@dg-rtp.dg.com>
7827
7828         From Linus Torvalds and Mat Hostetter:
7829         * i386.c (i386_sext16_if_const): Added to sign extend HImode constant.
7830         (i386_aligned_reg_p): Added to tell if an rtx is aligned.
7831         (i386_cc_probably_useless_p): Don't trust cc bits.
7832         * i386.h (TARGET_ZERO_EXTEND_WITH_AND): Don't do this for p6.
7833         * i386.md (cmpsf_ccfpeq+2): Use SImode test instruction.
7834         (movhi+1): Use movz instead of mov on p6.
7835         (addsi3): Add 128 by subtracting -128.
7836         (zero_extendhisi2): Use SImode move if aligned.
7837         ({add,sub,and,ior,xor}hi3): Likewise.
7838
7839 Tue Jan  7 16:58:27 1997  Jason Merrill  <jason@yorick.cygnus.com>
7840
7841         * c-parse.in (extension): New rule for __extension__.
7842         (extdef, unary_expr, decl, component_decl): Use it.
7843
7844 Mon Jan  6 15:44:37 1997  Oliver Kellogg  (oliver.kellogg@space.otn.dasa.de)
7845
7846         * 1750a.c: Now includes regs.h.
7847         ({movcnt,mod}_regno_adjust): Corrected typos.
7848         * 1750a.md (movhi): Corrected case of moving constant to memory.
7849
7850 Mon Jan  6 08:00:57 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7851
7852         * mips.h: Delete redundant definitions of compiler and library fns.
7853
7854         * dwarfout.c (type_attribute): Ignore any subtype for now.
7855
7856         * fold-const.c (operand_equal_p): Rework to consider two
7857         expressions that have embedded identical SAVE_EXPRs as
7858         equivalent; also handle some more cases.
7859
7860 Sun Jan  5 23:54:34 1997  Jeffrey A Law  (law@cygnus.com)
7861
7862         * pa.md (pic_load_label): Fix test for using just an
7863         ldo rather than an addil;ldo sequence to load the label's
7864         address.
7865
7866 Sun Jan  5 07:26:47 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7867
7868         * expr.c (expand_expr, case COMPONENT_REF): Fix error in last
7869         change: don't suppress conversion if just EXPAND_SUM.
7870
7871 Sat Jan  4 18:44:01 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7872
7873         * tree.h (struct tree_decl): saved_insns.i is HOST_WIDE_INT.
7874
7875         * fold-const.c (const_binop): Rework to only make constants in
7876         one place; always use size_int if small enough and of sizetype.
7877         (size_int): Call force_fit_type.
7878         (fold): Avoid ever changing type of input tree.
7879
7880         * expr.c (get_inner_reference): Fix type error.
7881         (expand_expr, case COMPONENT_REF): Don't convert if modifier
7882         is EXPAND_CONST_ADDRESS, EXPAND_SUM, or EXPAND_INITIALIZER.
7883         * tree.c (staticp, case COMPONENT_REF, BIT_FIELD_REF): Not
7884         static if bitfield.
7885
7886         * expr.c (expand_expr, case COMPONENT_REF):  If taking value
7887         from a CONSTRUCTOR, must mask/sign-extend if bitfield.
7888         (expand_builtin, case BUILT_IN_LONGJMP): Pass type, not IDENTIFIER,
7889         to second arg of RETURN_POPS_ARGS.
7890
7891         * expr.c (expand_expr, case COND_EXPR): Add additional cases
7892         to "singleton" cases.
7893         * tree.c (integer_pow2): Mask value to width of type.
7894         (tree_log2): New function.
7895
7896         * expmed.c (store_fixed_bit_field): If not SLOW_UNALIGNED_ACCESS,
7897         treat everything as maximally aligned.
7898
7899         * combine.c (find_split_point, case SET): If SET_SRC is NE and
7900         STORE_FLAG_VALUE is -1, see if we can convert into NEG of shift.
7901         (force_to_mode, case NE): Make condition stricter.
7902
7903         * calls.c (emit_library_call_value): Remove redundant check for
7904         outmode != VOIDmode.
7905
7906 Sat Jan  4 08:12:16 1997  J.T. Conklin  <jtc@rhino.cygnus.com>
7907
7908         * Optimizations from John Vickers (john@rhizik.demon.co.uk):
7909         * m68k.c (output_function_{pro,epi}logue): Use addq/subq when
7910         adjusting stack pointer by small displacements.
7911         * m68k.md (addsi3, addhi3): Use two addqw (or subqw) insns when
7912         adding (or subtracting) small integer constants (8 < N <= 16) to
7913         both address and data registers.
7914
7915 Sat Jan  4 07:06:07 1997  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
7916
7917         * loop.c (basic_induction_var): Return 0 if SUBREG is not a
7918         promoted variable.
7919
7920 Sat Jan  4 06:22:36 1997  Doug Rupp  (rupp@gnat.com)
7921
7922         * alpha.c (vmskrunch): Try to not chop trailing uppercase letters.
7923         * alpha/vms.h (ENDFILE_SPEC): Use "gnu", not "gnu_cc".
7924
7925         * cccp.c (PRINTF_PROTO): Use __printf__ in __attribute__, not printf.
7926         * cexp.y (PRINTF_PROTO): Likewise.
7927
7928 Fri Jan  3 09:01:00 1997  Craig Burley  <burley@gnu.ai.mit.edu>
7929
7930         * alpha.md (cmov): Fix operand numbers in case involving DF target,
7931         DF comparison, and SF source.
7932
7933 Fri Jan  3 08:19:46 1997  Paul Eggert  <eggert@twinsun.com>
7934
7935         * cpplib.c (macroexpand): Delete any no-reexpansion marker following
7936         identifier at beginning of an argu concatenated with what precedes it.
7937
7938 Fri Jan  3 07:59:21 1997  Ken Rose  (rose@netcom.com)
7939
7940         * reorg.c (fill_slots_from_thread): Skip moved insn in all three cases.
7941
7942 Fri Jan  3 07:51:44 1997  Bob Manson  <manson@cygnus.com>
7943
7944         * function.c ({push,pop}_function_context_to): Save and restore
7945         current_function_args_info.
7946         * function.h (struct function): New field args_info.
7947
7948 Fri Jan  3 06:55:09 1997  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
7949
7950         * jump.c (rtx_equal_for_thread_p): Return 0 for floating-point.
7951
7952         * reload.c (find_reloads): If replaced a PLUS or MULT with a
7953         simple operand, start over again.
7954
7955         * va-alpha.h: Check for __VMS__, not VMS.
7956
7957 Thu Jan  2 08:52:51 1997  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7958
7959         * configure: Finish restoring change of default of objc threads to
7960         "single" for Linux-based GNU systems.
7961
7962 Mon Dec 30 17:03:46 1996  Jeffrey A Law  (law@cygnus.com)
7963
7964         * pa.c (fmpy_operands): Remove.  No longer needed.
7965         (combinable_add, combinable_copy, combinable_fmpy): Likewise.
7966         (combinable_fadd, combineable_fsub): Likewise.
7967         (pa_reorg): Call pa_combine_instructions.
7968         (pa_combine_instructions): Combine instructions to make things
7969         like fmpyadd and fmpysub.
7970         (pa_can_combine_p): Helper function for pa_combine_instructions.
7971         * pa.md (pa_combine_type): New attribute.  Set it appropriately
7972         for various insns.
7973         (define_delays): Use a separate define_delay for unconditional
7974         branches.
7975         (fmpyadd, fmpysub peepholes): Remove, no longer needed.
7976         (fmpyadd, fmpysub insns): Add variant with fadd/fsub first,
7977         then the fmpy.
7978
7979 Mon Dec 30 14:43:51 1996  Jim Wilson  <wilson@cygnus.com>
7980
7981         * reg-stack.c (subst_stack_regs_pat): Set src_note explicitly, instead
7982         of using invalid aggregate initialization.
7983
7984         * print-tree.c (print_node): Don't try to print nonexistent
7985         TYPE_ATTRIBUTES field of a decl node.
7986
7987 Mon Dec 30 10:30:25 1996  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
7988
7989         * config.sub: Handle hiuxmpp as system type.
7990
7991 Thu Dec 26 13:33:27 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
7992
7993         * rs6000.md (init_v4_pic): Explicitly set the length.
7994
7995 Mon Dec 23 19:39:38 1996  Jim Wilson  <wilson@cygnus.com>
7996
7997         * mips.h (FUNCTION_ARG_REGNO_P): Correct for TARGET_SOFT_FLOAT and
7998         TARGET_FLOAT64 cases.
7999
8000         * integrate.c (function_cannot_inline_p): Reject function with
8001         PARALLEL result.
8002         (expand_inline_function): Abort if function result not handled.
8003
8004 Sat Dec 21 04:02:46 1996  Jason Merrill  <jason@gerbil.cygnus.com>
8005
8006         * mips.c (save_restore_insns): Mark large frame setup insns
8007         as frame-related.
8008         (mips_expand_prologue): Likewise.
8009
8010         * dwarf2out.c (dwarf2out_frame_debug): Support MIPS large frames.
8011         (add_bound_info): Use default lower bounds.
8012         Handle simple variable bounds with a DIE ref.
8013         Don't generate a NULL loc descr.
8014         (add_subscript_info): Always add lower bound.
8015         (gen_formal_parameter_die): Always equate_decl_number_to_die.
8016         (gen_variable_die): Likewise.  Don't use the old die for automatic
8017         variables.
8018
8019 Wed Dec 18 10:23:46 1996  Jeffrey A Law  (law@cygnus.com)
8020
8021         * mn10300.c (notice_update_cc): Enable this code.
8022         * mn10300.h (CC_OVERFLOW_UNUSABLE): Define.
8023         * mn10300.md (tstsi): Use "set_zn_c0" instead of "set" for cc status.
8024         (addsi3 pattern): Break "inc" into two different alternatives
8025         since "inc dn" sets cc0, but "inc an" does not.
8026         (multiply and divide patterns): Fix cc status.
8027         (bCC, inverted bCC): Restore any comparison which needs the
8028         overflow bits when CC_OVERFLOW_UNUSABLE is set.
8029         (zero and sign extensions): Fix cc status.
8030         (movm_store): Likewise.
8031
8032 Tue Dec 17 15:02:44 1996  Jim Wilson  <wilson@cygnus.com>
8033
8034         * sched.c (update_flow_info): When add REG_DEAD notes for dest of
8035         last insn, add check for global_regs.
8036
8037 Tue Dec 17 11:07:26 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
8038
8039         * rs6000/win-nt.h (HAS_INIT_SECTION): Delete, so that __main is
8040         called from main.
8041
8042 Mon Dec 16 15:28:44 1996  Jim Wilson  <wilson@cygnus.com>
8043
8044         * combine.c (nonzero_bits): Ifdef out calls to num_sign_bit_copies.
8045         Add dummy define/undef for num_sign_bit_copies.
8046
8047         * dwarfout.c (location_or_const_value_attribute, case CONCAT): Add.
8048
8049         * combine.c (simplify_comparison): Use mode_width as shift count
8050         only if it is less than or equal to HOST_BITS_PER_WIDE_INT.
8051
8052 Mon Dec 16 10:10:11 1996  Jeffrey A Law  (law@cygnus.com)
8053
8054         * mn10300.c (expand_epilogue): Restore registers in the
8055         "ret" instruction instead of a separate movm instruction.
8056         Support possible stack deallocation in "ret" instruction too.
8057         * mn10300.md (return_internal): Use "ret" instead of "rets";
8058         restore registers and deallocate stack as needed.
8059         (load_movm): Delete unused pattern.
8060
8061         * mn10300.h (SMALL_REGISTER_CLASSES): Define.
8062
8063 Fri Dec 13 14:46:54 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
8064
8065         * sh.md (dect): Rewrite pattern so that it can be combined.
8066
8067 Fri Dec 13 13:14:51 1996  Ian Lance Taylor  <ian@cygnus.com>
8068
8069         * varasm.c (output_constant_pool): If ASM_OUTPUT_POOL_EPILOGUE is
8070         defined, call it.
8071
8072 Thu Dec 12 20:04:55 1996  Jason Merrill  <jason@yorick.cygnus.com>
8073
8074         * rtl.h (RTX_FRAME_RELATED_P): New macro.
8075         (struct rtx_def): Add frame_related bitfield.
8076         * final.c (final_scan_insn): Call dwarf2out_frame_debug.  
8077         Don't call dwarf2out_begin_function.
8078         (final): Initialize dwarf2out_frame_debug.
8079         * dwarf2out.c (dwarf2out_begin_function): Remove.
8080         (dwarf2out_init): Use INCOMING_RETURN_ADDR_RTX.
8081         (DWARF_CIE_DATA_ALIGNMENT): Generalize.
8082         (DWARF_FRAME_REGNUM): Don't add 1.
8083         (decode_cfi_rtl): Lose.
8084         (dwarf2out_def_cfa): Now takes reg and offset directly.
8085         (reg_save): Likewise.
8086         (dwarf2out_reg_save): Now takes offset.
8087         (initial_return_save): Grok INCOMING_RETURN_ADDR_RTX.
8088         Replaces dwarf2out_return_save.
8089         (dwarf2out_cfi_label): New fn.
8090         (add_fde_cfi): Use it.
8091         (dwarf2out_frame_debug): New fn.
8092         * mips.h (DWARF_FRAME_REGNUM): Tweak r31.
8093         (INCOMING_RETURN_ADDR_RTX): Define.
8094         * mips.c (mips_expand_prologue): Set RTX_FRAME_RELATED_P as needed.
8095         (save_restore_insns): Likewise.
8096         * i386.c (ix86_expand_prologue): Likewise.
8097         * i386.h (INCOMING_RETURN_ADDR_RTX): Define.
8098         (DWARF_FRAME_RETURN_COLUMN): Define.
8099
8100         * dwarf2out.c (add_AT_long_long): Renamed from add_AT_double fo
8101         clarity.
8102         (print_die): Adjust.
8103         (add_AT_float): New fn.
8104         (add_const_value_attribute): Support fp values.
8105         (size_of_die): Use blocks for long_long and fp values.
8106         (value_format, output_die): Likewise.
8107         (output_loc_operands): Don't support DW_OP_const8?.
8108
8109 Thu Dec 12 19:49:09 1996  Ian Lance Taylor  <ian@cygnus.com>
8110
8111         * varasm.c (CONSTANT_POOL_BEFORE_FUNCTION): Define if not
8112         defined.
8113         (assemble_start_function): Check CONSTANT_POOL_BEFORE_FUNCTION
8114         to decide whether to call output_constant_pool.
8115         (assemble_end_function): Likewise.
8116
8117         * calls.c: Check SMALL_REGISTER_CLASSES at run time, not just
8118         compile time.
8119         * combine.c, cse.c, function.c, jump.c, local-alloc.c: Likewise.
8120         * loop.c, reload.c, reload1.c: Likewise.
8121         * dsp16xx.h (SMALL_REGISTER_CLASSES): Define with value.
8122         * h8300.h (SMALL_REGISTER_CLASSES): Likewise.
8123         * i386.h (SMALL_REGISTER_CLASSES): Likewise.
8124         * pdp11.h (SMALL_REGISTER_CLASSES): Likewise.
8125         * sh.h (SMALL_REGISTER_CLASSES): Likewise.
8126
8127 Thu Dec 12 15:25:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
8128
8129         * rs6000.md (sysv call insns): If flag_pic add @plt suffix.
8130
8131         * rs6000.md (fix_truncdfsi2_store): Fix offsets > 32k.
8132
8133         * rs6000/t-ppccomm: New file for common parts of embedded and
8134         System V target Makefile support.
8135
8136         * rs6000/t-ppcos: New file for System V OS target Makefile
8137         support.
8138
8139         * rs6000/t-solaris: Delete, merge into rs6000/t-ppcos.
8140
8141         * rs6000/t-{ppc,ppcgas}: Only keep the multilib specific parts,
8142         moving the rest to rs6000/t-ppccomm.
8143
8144         * configure (powerpc*-*-*): For embedded and System V
8145         configurations, add rs6000/t-ppccomm.
8146         For GNU/Linux and Solaris, use t-ppcos.
8147
8148         * ginclude/ppc-asm.h (cr*, f*): Add new macros for register names.
8149
8150         * rs6000/sol-c0.c (_start): Fix uninitialized data bug.
8151
8152         * rs6000.md (init_v4_pic): Add @local to call.
8153         (icbi,dcbst,sync,isync): Delete PowerPC cache control insns.
8154
8155         * rs6000/sysv4.h (ASM_SPEC): On explicit -mcall-solaris, pass
8156         -msolaris to the assembler.
8157
8158         * rs6000.c (rs6000_sync_trampoline): Delete.
8159         (rs6000_trampoline_template): Aix & System V don't need template now.
8160         (rs6000_initialize_trampoline): For System V, call the function
8161         __trampoline_setup to set up the trampoline.
8162
8163         * rs6000.h (TRAMPOLINE_TEMPLATE): Delete here.
8164         * rs6000/win-nt.h (TRAMPOLINE_TEMPLATE): Add it here.
8165
8166         * rs6000/tramp.asm: New file, setup trampolines properly on System
8167         V systems, properly flushing the caches.
8168
8169 Thu Dec 12 10:53:10 1996  Jeffrey A Law  (law@cygnus.com)
8170
8171         * reorg.c (fill_slots_from_thread): Don't call eligible_for_delay
8172         with an insn with asm operands.
8173
8174         * expmed.c (emit_store_flag_force): Fix typos/thinkos.
8175
8176 Thu Dec 12 08:09:20 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
8177
8178         * i386.c (i386_return_pops_args): Libcalls ignore TARGET_RTD.
8179
8180 Thu Dec 12 07:56:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8181
8182         * tree.h (maybe_get_identifier): New declaration.
8183
8184         * calls.c (emit_library_call): Don't pass VOIDmode to type_for_mode.
8185
8186         * va-alpha.h: Add definitions for VMS; they differ from Unix.
8187
8188         * Makefile.in (stamp-objlist): Handle first character of object 
8189         file being a digit.
8190
8191         * 1750a.h (function_arg, {movcnt,mod}_regno_adjust): Add decls.
8192         (branch_or_jump): Likewise.
8193         (FUNCTION_ARG): Remove cast of function_arg result to rtx.
8194         * 1750a.md: Remove unneeded casts to char *.
8195
8196 Thu Dec 12 05:55:27 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
8197
8198         * arm.c (arm_gen_constant, case [IX]OR): Don't invert constant if
8199         loading into temporary.
8200
8201 Wed Dec 11 18:57:21 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
8202
8203         * toplev.c (rest_of_compilation): Make sure unwinder RTL is saved.
8204
8205         * collect2.c (write_c_file): Wrap the ctor/dtor lists and fns
8206         with `extern "C" { ... }'.
8207
8208 Wed Dec 11 17:46:48 1996  John F. Carr  <jfc@mit.edu>
8209
8210         * tree.h (tree_decl): Reorder field declarations to reduce size
8211         on 64 bit machines.
8212
8213         * combine.c (try_combine): When splitting an insn, check for the
8214         new I2 setting a SUBREG.
8215
8216 Wed Dec 11 17:00:47 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8217
8218         * alpha.c (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of
8219         using "%ld".
8220         (output_prolog): Don't print useless comment for VMS.
8221
8222         * alpha.c (output_prolog): SIZE is now HOST_WIDE_INT.
8223         * alpha.md (mov[hq]i unnamed): Split up for TARGET_BYTE_OPS and not.
8224
8225         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): Don't call
8226         fixup_memory_subreg if no longer SUBREG of MEM.
8227
8228 Wed Dec 11 14:10:48 1996  Jeffrey A Law  (law@cygnus.com)
8229
8230         * mn10300.c: New file for Matsushita MN10300 port.
8231         * mn10300.h, mn10300.md, t-mn10300, xm-mn10300.h: Likewise.
8232         * config.sub: Recognize mn10300 as a basic machine type.
8233         * configure: Similarly.
8234         * ginclude/stdarg.h: mn10300 is little endian.
8235         * ginclude/varargs.h: Likewise.
8236
8237 Wed Dec 11 09:09:10 1996  Nagai Takayuki <nagai@ics.es.osaka-u.ac.jp>
8238
8239         * libgcc2.c (cacheflush): Add SONY NEWS-OS 4.2 version.
8240
8241 Wed Dec 11 09:01:39 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
8242
8243         * calls.c (emit_library_call, emit_library_call_value):
8244         Don't pass an identifier node as function type for
8245         library functions, but rather build a function type that
8246         has a return type with the correct mode.
8247         * i386.c (i386_return_pops_args): Don't test for IDENTIFIER_NODE.
8248         * i386/isc.h (obsolete RETURN_POPS_ARGS): Test first argument
8249         for IDENTIFIER_NODE.
8250         * i386/next.h (RETURN_POPS_ARGS): Likewise.
8251         * i386/sco.h (RETURN_POPS_ARGS): Likewise.
8252         * i386/sco5.h (RETURN_POPS_ARGS): Likewise.
8253         * i386/scodbx.h (RETURN_POPS_ARGS): Likewise.
8254         * m68k.h (RETURN_POPS_ARGS): Likewise.
8255         * ns32k.h (RETURN_POPS_ARGS): Likewise.
8256         * pyr.h (RETURN_POPS_ARGS): Likewise.
8257         * gmicro.h (RETURN_POPS_ARGS): Likewise; fix typo.
8258
8259 Tue Dec 10 17:36:47 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
8260
8261         * Add optimizations from John Vickers (john@rhizik.demon.co.uk)
8262         * m68k.h (TARGET_CPU32): New macro.
8263         * m68k.md (add[hs]i3): Only use two addq.w or subq.w instructions
8264         when adding or subtracting constants 8 < N < 16 on TARGET_CPU32.
8265         Use lea instead of add.w when adding 16 bit constants to address
8266         registers on all but TARGET_68040.
8267         * m68k.c (output_function_{pro,epi}logue): Use lea instead of add.w
8268         when adjusting stack pointer on all but TARGET_68040.
8269         
8270 Tue Dec 10 15:55:23 1996  Ian Lance Taylor  <ian@cygnus.com>
8271
8272         * optabs.c (emit_unop_insn): Treat ZERO_EXTEND like SIGN_EXTEND.
8273
8274 Tue Dec 10 13:47:24 1996  Joern Rennecke <amylaar@cygnus.co.uk>
8275
8276         * combine.c (combinable_i3pat): Bring back to sync with can_combine_p.
8277
8278         * sh.h (ADJUST_INSN_LENGTH): Don't break from loop when LOOP_BEG found.
8279         Calculate padding in new variable pad.
8280
8281 Mon Dec  9 18:00:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
8282
8283         * dwarf2out.c (output_uleb128): Output value in human-readable comment.
8284         (output_sleb128): Likewise.
8285         (various): Adjust.
8286         (output_call_frame_info): Only output info if it's interesting.
8287         (add_src_coords_attributes): New fn.
8288         (add_name_and_src_coords_attributes): Split out from here.
8289         (gen_enumeration_type_die): Add src coordinates.
8290         (gen_struct_or_union_type_die): Likewise.
8291         (dwarf2out_finish): Call output_call_frame_info for all targets.
8292
8293 Thu Dec  5 11:25:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
8294
8295         * dwarf2out.c (add_pure_or_virtual_attribute): Only add 
8296         AT_containing_type if -g2 or higher.
8297
8298         * dwarf2out.c (gen_struct_or_union_type_die): Make sure that
8299         the type for AT_containing_type has been generated.
8300         (gen_decl_die): Likewise.
8301
8302         * dwarf2out.c (type_tag): Check DECL_IGNORED_P.
8303         (add_pure_or_virtual_attribute): Check DECL_VINDEX instead.
8304         (scope_die_for): Likewise.
8305         * dwarfout.c (type_tag): Likewise.
8306
8307 Wed Dec  4 22:51:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
8308
8309         * dwarf2out.c (decode_cfi_rtl): Support getting a CONST_INT.
8310         (dwarf2out_begin_function): Adjust.
8311         (reg_save): Divide offset by the alignment.
8312         (output_cfi): Support having more than one advance_loc.
8313         (output_call_frame_info): Re-initialize current_label.
8314         (dwarf2out_begin_prologue): Initialize current_label to NULL.
8315         (lookup_cfa, lookup_cfa_1): New fns.
8316         (dwarf2out_def_cfa): Call lookup_cfa.
8317         (dwarf2out_finish): Don't generate CIE CFIs.
8318         (dwarf2out_init): Generate them here.
8319         (DWARF_FRAME_RETURN_COLUMN): Use PC_REGNUM.
8320
8321         (add_pure_or_virtual_attribute): Note virtual context.
8322         (gen_formal_parameter_die): Return the die.
8323         (gen_formal_types_die): Set AT_artificial on `this'.
8324         (gen_subprogram_die): Add AT_accessibility.
8325         (gen_variable_die): Likewise.
8326         (gen_field_die): Likewise.  Don't generate location attribute for
8327         union members.
8328         (gen_struct_or_union_type_die): Note where our vtable lives.
8329         (gen_decl_die): Handle anonymous union fields.
8330         (dwarf2out_decl): Always output `bool'.
8331
8332 Mon Dec  2 03:55:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
8333
8334         * final.c (final_end_function): Don't call dwarf2out_end_function.
8335
8336         * dwarf2out.c (output_line_info): Emit special opcodes for each line
8337         entry, even if the line number doesn't change.
8338         (pend_type, output_pending_types_for_scope): New fns.
8339         (gen_struct_or_union_type_die): Use them to defer generating member
8340         dies if we're in the middle of some other context.
8341         (gen_type_die): Still put nested types in the right place.
8342         (dwarf2out_decl): Call output_pending_types_for_scope.
8343
8344         * dwarf2out.c (dw_fde_struct): Replace end_prologue, begin_epilogue
8345         with current_label.
8346         (DWARF_CIE_INSN_SIZE, DWARF_CIE_SIZE): Remove.
8347         (DWARF_CIE_HEADER_SIZE): The size without the initial insns.
8348         (size_of_cfi): Revert.
8349         (decode_cfi_rtl, add_fde_cfi, dwarf2out_def_cfa, reg_save,
8350         dwarf2out_reg_save, dwarf2out_return_save): New fns.
8351         (dwarf2out_begin_function): Use them to generate CFIs.
8352         (dwarf2out_finish): Use them to generate E CFIs.  
8353         Don't set next_fde_offset.
8354         (calc_fde_sizes): Initialize cie_size.
8355         (output_call_frame_info): Don't generate CIE CFIs.
8356         (dwarf2out_end_function): Remove.
8357
8358         * tree.c (maybe_get_identifier): New fn.
8359         * varasm.c (assemble_name): Use it instead of get_identifier.
8360
8361 Fri Nov 29 15:13:39 1996  Stan Cox  <coxs@dg-rtp.dg.com>
8362
8363         * jump.c (jump_optimize): Don't move initialization if there is a
8364         label between it and the jump for if (foo) bar++ to bar += (foo !=0)
8365         
8366 Wed Nov 27 16:21:14 1996  Stan Cox  <coxs@dg-rtp.dg.com>
8367         
8368         * Remove change of Oct 4.
8369         * i386.h (outer_function_chain): Remove.
8370         (current_function_calls_alloca): Remove.
8371         (rtx_equal_function_value_matters): Remove.
8372         (N_REGS_USED, N_ALLOCATABLE_REGISTERS): Remove.
8373         * i386.md (adddi3_1, subdi3_1): Remove.
8374         (adddi3, subdi3): Revert.
8375         (movsf, movsf_mem, movsf_normal, movdf, movdf_mem, movdf_mem+1):
8376         Likewise. 
8377         (movxf, movxf_mem, movxf_mem+1, addsidi3_1, addsidi3_2): Likewise.
8378         (adddi3_1, subsidi3, subdi3_1): Likewise.
8379         (addsidi3_1, addsidi3_2, subsidi3): Likewise.
8380         (addsidi3_1, addsidi3_2, adddi3, subsidi3): Disable the problem
8381         reload alternatives. 
8382         
8383 Wed Nov 27 16:21:14 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
8384
8385         * i386.md (ashldi3_non_const_int, ashrdi3_non_const_int):
8386         Use a hidden branch to handle shifts > 32 bit.
8387         (lshrdi3_non_const_int): Likewise.
8388         (floatdixf2): Don't use unnecessary XFmode operation.
8389
8390 Wed Nov 27 15:23:41 1996  Jason Merrill  <jason@yorick.cygnus.com>
8391
8392         * varasm.c (assemble_variable): Don't emit DWARF.
8393
8394         * toplev.c (rest_of_type_compilation): Don't emit DWARF.
8395         (main): Just let -gdwarf mean DWARF v1; remove -gdwarf-1.
8396
8397         * dwarfout.c (decl_class_context): New fn.
8398         (output_global_subroutine_die): Fix declaration case.
8399         (output_global_variable_die): Likewise.
8400         (output_type): Note when we are in a class defn.  If we're a nested
8401         type and our context hasn't been written, do that.  Do early exit
8402         for nested types.
8403         (output_decl): Output the class context for fns and vars.
8404         Don't emit detailed parm info for a fn declaration.
8405         Use TYPE_DECL_IS_STUB, is_redundant_typedef.
8406         (type_ok_for_scope): Support emitting nested types later.
8407         (is_redundant_typedef): New fn.
8408         (TYPE_DECL_IS_STUB): New macro.
8409         (output_compile_unit_die): Check use_gnu_debug_info_extensions.
8410         (output_local_subroutine_die, output_global_subroutine_die,
8411         dwarfout_begin_function, dwarfout_end_function, dwarfout_line,
8412         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Likewise.
8413
8414         * dwarf2out.c (decl_class_context): Static.
8415         (lookup_type_die): Use TYPE_SYMTAB_POINTER.
8416         (equate_type_number_to_die): Likewise.
8417         (gen_subprogram_die): If we're in class context, it's a decl.
8418         (gen_variable_die): Likewise.
8419         (gen_decl_die): Output the containing type.
8420         (dwarf2out_init): Lose type_die_table code.
8421
8422 Wed Nov 27 08:30:54 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
8423
8424         * Makefile.in (DRIVER_DEFINES): New macro, with the macro
8425         definitions for the driver.
8426         (gcc.o): Make rule use $(DRIVER_DEFINES).
8427         * gcc.c (process_command) [LANG_SPECIFIC_DRIVER]: Call
8428         lang_specific_driver, passing along the addr of FATAL for errors
8429         along with our ARGC and ARGV.
8430
8431 Wed Nov 27 08:21:13 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
8432
8433         * m68k.md (iorsi_zexthi_ashl16): New pattern.
8434         (ashrsi_16): New name for old unnamed pattern.
8435
8436         * objc/misc.c (stdlib.h): Define __USE_FIXED_PROTOTYPES__ before
8437         including stdlib.h.
8438
8439 Wed Nov 27 08:17:34 1996  Joern Rennecke <amylaar@cygnus.co.uk>
8440
8441         * i386.md (decrement_and_branch_until_zero+[3-8]): Add missing
8442         CC_STATUS_INIT.
8443         (decrement_and_branch_until_zero+[5-8]): Delete redundant assignment.
8444
8445 Wed Nov 27 07:56:27 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
8446
8447         * m68k.md ({and,ior,xor}si3_internal): Removed !TARGET_5200 from
8448         conditionals now that entire insn is disabled when !TARGET_5200.
8449         
8450 Wed Nov 27 07:52:32 1996  Oliver Kellogg  <kellogg@space.otn.dasa.de>
8451
8452         * 1750a.md (movhi pattern):  Fixed MEM to MEM move problem.
8453
8454 Tue Nov 26 14:50:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8455
8456         * expr.c (move_by_pieces): Abort only if length positive at end.
8457         * function.c (frame_offset, get_frame_size): Make HOST_WIDE_INT.
8458         * function.h (struct function): Make frame_offset be HOST_WIDE_INT.
8459         (get_frame_size): Add definition.
8460         * reload1.c (reload): Make starting_frame_size be HOST_WIDE_INT.
8461
8462 Mon Nov 25 16:55:14 1996  Jason Merrill  <jason@yorick.cygnus.com>
8463
8464         * dwarf2out.c (dwarf2out_finish): Don't emit call frame info
8465         for non-MIPS targets.
8466         (is_redundant_typedef): New fn.
8467         (modified_type_die): Refer to typedef DIEs where appropriate.
8468         (gen_typedef_die): Support DECL_ORIGINAL_TYPE.
8469         (gen_type_die): Likewise.  Use is_redundant_typedef.
8470         (gen_subprogram_die): Don't force a spec DIE for local class methods.
8471
8472 Mon Nov 25 15:09:12 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8473
8474         * gcc.c (handle_braces): Rework last change.
8475
8476 Mon Nov 25 13:49:51 1996  Jim Wilson  <wilson@cygnus.com>
8477
8478         * configure (build_exeext, exeext): New variables.  Use sed to insert
8479         build_exeext value into Makefile exeext rule.
8480         (*-*-cygwin32): Set exeext.
8481         * i386/x-cygwin32 (exeext): Delete.
8482         * rs6000/x-cygwin32 (exeext): Delete.
8483
8484         * dwarf.h (enum dwarf_location_atom): Add OP_MULT.
8485         * dwarfout.c (output_mem_loc_descriptor, case MULT): Add.
8486         * dwarfout2.c (mem_loc_descriptor, case MULT): Add.
8487
8488         * dwarfout.c (dwarf_fund_type_name, case FT_unsigned_int64): Fix typo.
8489
8490 Sun Nov 24 21:42:01 1996  J.T. Conklin  <jtc@rhino.cygnus.com>
8491
8492         * m68k.md (andsi3): Changed into define_expand.
8493         (andsi3_internal): Rename from old andsi3, changed condition
8494         to !TARGET_5200.
8495         (andsi2_5200): New insn.
8496         (iorsi3): Change into define_expand.
8497         (iorsi2_internal): Rename from old iorsi3, changed condition 
8498         to !TARGET_5200.
8499         (iorsi2_5200): New insn.
8500         (xorsi3): Change into define_expand.
8501         (xorsi2_internal): Rename from old xorsi3, changed condition 
8502         to !TARGET_5200.
8503         (xorsi2_5200): New insn.
8504
8505 Sun Nov 24 21:31:32 1996  John F. Carr  <jfc@mit.edu>
8506
8507         * i386.h (N_ALLOCATABLE_REGISTERS): Remove extra backslash at
8508         end of macro definition.
8509
8510         * cpplib.c (LOCAL_INCLUDE_DIR): Remove default definition.
8511         (include_defaults_array): Do not use LOCAL_INCLUDE_DIR or
8512         TOOL_INCLUDE_DIR if they are not defined.
8513         * cccp.c: Likewise.
8514
8515         * Makefile.in (cppmain.o): New rule.
8516
8517 Sun Nov 24 19:14:50 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
8518
8519         * fold-const.c (merge_ranges): In (+,-) case, if lower bounds are
8520         the same the result is always false.
8521
8522 Sun Nov 24 18:48:31 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8523
8524         * c-typeck.c (build_indirect_ref): Don't give warning for
8525         dereferencing void * if evaluation is being skipped.
8526
8527         * c-decl.c (poplevel): Don't call output_inline_function if
8528         DECL_SAVED_INSNS is not set.
8529
8530         * gcc.c (give_switch): Add new arg, INCLUDE_BLANKS.
8531         (handle_braces): All callers changed.
8532         Add support for new construct: %{S*^}.
8533
8534 Sun Nov 24 18:44:48 1996  Paul Eggert  <eggert@twinsun.com>
8535
8536         * c-parse.in (unary_expr, expr_no_commas): Increment skip_evaluation
8537         when analyzing an expression that is known not to be evaluated.
8538         (sizeof, alignof): New rules.
8539         * c-tree.h (skip_evaluation): New variable.
8540         * c-common.c (skip_evaluation): Likewise.
8541         (overflow_warning, unsigned_conversion_warning): Don't warn about
8542         potential runtime errors when skipping evaluation.
8543         * c-typeck.c (build_binary_op): Likewise.
8544         (build_conditional_expr): op1 now always nonnull.
8545
8546 Sun Nov 24 17:06:58 1996  Bernd Schmidt  (crux@Pool.Informatik.RWTH-Aachen.DE)
8547
8548         * toplev.c (rest_of_compilation): Call regscan before each
8549         jump threading pass.
8550
8551 Sun Nov 24 16:37:18 1996  Dave Love  <d.love@dl.ac.uk>
8552
8553         * configure (objc_thread_file): Set conditionally in each case so
8554         may be overidden with `--enable-objcthreads=posix'.
8555         Change GNU/Linux default to `single'.
8556
8557 Fri Nov 22 17:53:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
8558
8559         * varasm.c (assemble_variable): Output DWARF in the third case, too.
8560
8561         * dwarf2out.c (decls_for_scope): Only add DIEs with no parents to
8562         our scope.
8563         (gen_subroutine_type_die): Parm types go under the fn type DIE.
8564
8565         * Makefile.in ($(T)crt{begin,end}.o): Move CRTSTUFF_T_CFLAGS after 
8566         general flags.
8567
8568         * mips/t-iris6 (CRTSTUFF_T_CFLAGS): Define.
8569         * mips.c (compute_frame_size): Fix fp_save_offset.
8570
8571         * dwarf2out.c (new_die): If we get a NULL parent, inc limbo_die_count.
8572         (decls_for_scope): Decrement limbo_die_count as appropriate.
8573         (dwarf2out_finish): Check for good limbo_die_count.
8574         (size_of_cfi): If regno too big for DW_CFA_offset, use offset_extended
8575         instead.
8576         (output_call_frame_info): Add disabled code for specifying ABI.
8577         (dwarf2out_begin_function): Note all saved regs.
8578
8579         * dwarf2out.c (gen_subprogram_die): Have a DIE for each fn at
8580         toplevel.
8581         (scope_die_for): Only use the NULL for fns and tags.
8582
8583 Tue Nov 21 15:53:51 1996  Joern Rennecke <amylaar@cygnus.co.uk>
8584
8585         * sh.c (output_stack_adjust): New argument TEMP.  Changed all callers. 
8586         If the adjust cannot be done with one, but can be done with two 
8587         CONST_OK_FOR_I constants, do it that way.
8588
8589 Thu Nov 21 14:25:55 1996  Ian Lance Taylor  <ian@cygnus.com>
8590
8591         * fixincludes: Include <stdio.h> in <assert.h> even if not C++ if
8592         stderr needs to be defined.
8593
8594 Wed Nov 20 15:38:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
8595
8596         * toplev.c (rest_of_type_compilation): Do output function-scope tags
8597         for DWARF 2.
8598         * c-decl.c (pushtag): Set TYPE_CONTEXT on the tag.
8599         * toplev.c, varasm.c: s/dwarf2out_file_scope_decl/dwarf2out_decl/g.
8600         * dwarf2out.c (add_prototyped_attribute): Use a value of 1.
8601         (gen_subprogram_die): Support AT_static_link.
8602         (dwarf2out_decl): Rename from dwarf2out_file_scope_decl.
8603         Give nested fns and tags a die_parent of NULL.
8604         (decls_for_scope): Fix the die_parent for nested fns and tags.
8605         (scope_die_for): If we get a context of NULL, just return it.
8606
8607 Tue Nov 19 18:21:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
8608
8609         * dwarf2out.c (gen_subprogram_die): Support block extern decls.
8610         (gen_variable_die): Likewise.
8611         (gen_decl_die): Emit block extern function decls.
8612
8613         * c-decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
8614
8615 Tue Nov 19 16:50:32 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
8616
8617         * configure (powerpc*-{sysv,elf,eabi{,aix,sim}}): Set
8618         extra_headers to ppc-asm.h.
8619         (powerpc*-{linux,solaris,rtems,vxworks}): Likewise.
8620         (powerpc*-{winnt,pe,cygwin32}): Likewise.
8621
8622         * rs6000/t-{ppc,ppcgas,solaris,winnt} (EXTRA_HEADERS): Don't set here.
8623
8624 Mon Nov 18 14:51:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
8625
8626         * dwarf2out.c (DWARF_CIE_INSN_SIZE): New macro.
8627         (DWARF_CIE_HEADER_SIZE): Use it.
8628         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): New macros.
8629         (output_call_frame_info, dwarf2out_begin_function): Use them.  
8630         For the MIPS, output the first CFA insn in the CIE.
8631         * dwarf2.h (enum dwarf_call_reg_usage): Lose.
8632         (dwarf_macinfo_record_type): Fix spelling.
8633         * mips/mips.h (DWARF_FRAME_REGNUM, DWARF_FRAME_RETURN_COLUMN): Define.
8634
8635         * dwarf2out.c (base_type_die): Just generate the DIEs as needed,
8636         rather than building up some table.
8637         (init_base_type_table): Lose.
8638         (add_subscript_info): Use add_type_attribute.  Don't give an upper
8639         bound for an array of unknown size.
8640         (gen_unspecified_parameters_die): Remove DWARF-1 kludge.
8641         (dwarf2out_init): Lose call to init_base_type_table.
8642         (is_c_family, is_fortran): New fns.
8643         (gen_compile_unit_die): Recognize GNU F77.
8644         (gen_array_type_die): Use AT_declaration for an array of unknown size.
8645         (modified_type_die): Take TYPE_MAIN_VARIANT before passing it
8646         to build_type_variant, so we ignore named variants.
8647         (dwarf2out_file_scope_decl): Don't generate DIEs for built-in structs,
8648         either; they will be emitted if they are used.
8649         From wilson:
8650         (gen_array_type_die): Force the element type out first on IRIX 6.
8651
8652 Sun Nov 17 20:23:11 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8653
8654         * expr.c (get_inner_reference): Fix error in previous change.
8655
8656 Sat Nov 16 06:08:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8657
8658         * emit-rtl.c (operand_subword): Avoid confusion if sizeof (float)
8659         is less than a full word.
8660
8661         * alpha.h (MASK_BYTE_OPS): Now define as 1024.
8662         * alpha/vms.h (TARGET_DEFAULT): Use symbolic values.
8663
8664         * expr.c (get_inner_reference): Add new arg PALIGNMENT and compute it.
8665         (expand_assignment, do_jump): Pass new arg to get_inner_reference.
8666         (expand_expr, case COMPONENT_REF): Likewise.
8667         * fold-const.c (optimize_bit_field_compare, decode_field_reference):
8668         Likewise.
8669         * tree.h (get_inner_reference): Add new arg.
8670
8671         * Add support for Alpha/VMS, mostly from
8672         Klaus Kaempf (kkaempf@progis.de)
8673         * configure (alpha-dec-vms*): New target.
8674         * alpha.c (override_options): Handle VAX format floating-point.
8675         (print_operand, case ',', '-'): New cases.
8676         (alpha_builtin_saveregs): Handle VMS convention.
8677         (alpha_sa_{mask,size}, alpha_pv_save_size, alpha_using_fp):
8678         New versions for VMS.
8679         (output_{pro,epi}logue, function_arg): Likewise.
8680         (direct_return): Never true on VMS.
8681         (check_float_value): Return 0 for VMS.
8682         (vmskrunch, alpha_{need,write}_linkage): New function.
8683         * alpha.h ({MASK,TARGET}_{OPEN_VMS,FLOAT_VAX}): New macros.
8684         (TARGET_SWITCHES): Add float-vax and float-ieee.
8685         ({FUNCTION,LIBCALL}_VALUE, FUNCTION_VALUE_REGNO_P): R1 and R33
8686         are also return registers.
8687         (ASM_OUTPUT_DOUBLE): Support both floating-point formats.
8688         (PRINT_OPERAND_FUNCT_VALID_P): Add ',' and '-'.
8689         * alpha.md ({div,mod}[sd]i3): Only for VMS.
8690         (fp operations): Add modifiers for multiple floating-point formats.
8691         (call patterns): Handle new calling sequence for VMS.
8692         (tablejump): Make new pattern for VMS.
8693         (nonlocal_goto_receiver, arg_home): New patterns.
8694         * alpha/t-vms, alpha/vms.h, alpha/xm-vms.h: New files.
8695
8696 Fri Nov 15 17:38:20 1996  Doug Evans  <dje@seba.cygnus.com>
8697
8698         * sdbout.c (current_file): New global.
8699         (PUT_SDB_SRC_FILE): New PUT_SDB_FOO macro.
8700         (sdbout_init): Initialize current_file ifdef MIPS_DEBUGGING_INFO.
8701         (sdbout_{start_new,resume_previous}_source_file): New functions.
8702         * toplev.c (debug_{start,end}_source_file): Call them if SDB_DEBUG.
8703         * mips.h (PUT_SDB_SRC_FILE): Define.
8704
8705 Fri Nov 15 16:11:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
8706
8707         * dwarfout.c (dwarfout_line): Don't emit line number info for
8708         functions outside of .text.
8709
8710 Fri Nov 15 15:52:42 1996  Stan Cox  <coxs@dg-rtp.dg.com>
8711
8712         * i386/386bsd.h (COMMENT_BEGIN): Delete.
8713         * i386/freebsd.h (COMMENT_BEGIN): Likewise.
8714         * i386/netbsd.h (COMMENT_BEGIN): Likewise.
8715         * i386/unix.h (COMMENT_BEGIN): Likewise.
8716
8717 Fri Nov 15 13:22:42 1996  Jim Wilson  <wilson@cygnus.com>
8718
8719         * fold-const.c (unextend): Rewrite type conversions to avoid overflow.
8720
8721 Fri Nov 15 12:11:28 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8722
8723         * combine.c (try_combine): Properly copy an rtvec.
8724         * emit-rtl.c (gen_rtvec_vv): New function.
8725         (copy_rtx_if_shared): Call it.
8726         * integrate.c (copy_for_inline): Likewise.
8727         * reload1.c (eliminate_regs): Likewise.
8728         * rtl.h (gen_rtvec_vv): Declare.
8729         * genattrtab.c (simplify_cond): Make TESTS an array of rtunions.
8730         * genextract.c (main): Use loop, not bcopy, to set recog_operands
8731         from an rtvec.
8732         * rtl.c (rtvec_alloc): Clear rtwint instead of rtvec.
8733
8734         * machmode.h (HOST_PTR_PRINTF): Handle char * wider than long.
8735         (HOST_WIDE_INT_PRINT_{DEC,UNSIGNED,HEX,DOUBLE_HEX}): New macros.
8736         * final.c (asm_fprintf): Use "ll" prefix for a long long HOST_WIDE_INT.
8737         (output_{asm_insn,addr_const}): Use HOST_WIDE_INT_PRINT_*.
8738         * print-tree.c (print_node{,_brief}, case INTEGER_CST): Likewise.
8739         * print-rtl.c (print_rtx, case 'w'): Use HOST_WIDE_INT_PRINT_DEC.
8740
8741         * unroll.c (iteration_info): Fix code so that it knows iteration_var
8742         is a HOST_WIDE_INT, not a long.
8743
8744         * fold-const.c (operand_equal_p): Do comparison with REAL_VALUES_EQUAL.
8745         (make_range): Properly decide when to get TREE_TYPE of arg0.
8746         Handle EXP being an INTEGER_CST at end.
8747         (fold_range_test): Handle return of 0 from make_range.
8748         (fold, case TRUTH_AND_EXPR): Handle first arg of 0.
8749         (fold, case TRUTH_OR_EXPR): Handle first arg of 1.
8750
8751         * c-common.c (decl_attributes, case A_ALIAS): Add missing parens.
8752
8753 Fri Nov 15 06:37:54 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
8754
8755         * fold-const.c (range_binop): Set SNG1 to zero if ARG1 is a
8756         not a lower or upper bound.
8757
8758 Thu Nov 14 23:08:25 1996  Jason Merrill  <jason@yorick.cygnus.com>
8759
8760         * flags.h (debug_info_type): Add DWARF2_DEBUG.
8761         * toplev.c (main): Support DWARF2_DEBUG.  Add -gdwarf-1, -gdwarf-2
8762         options.  Check debug level after choosing type.
8763         (debug_{start,end}_source_file, debug_{define,undef}): New functions.
8764         (compile_file): Support dwarf2 separately from dwarf1. 
8765         (rest_of_type_compilation, rest_of_compilation): Likewise.
8766         * final.c (final_start_function): Likewise.
8767         (final_end_function, final_scan_insn, output_source_line): Likewise.
8768         * varasm.c (assemble_variable): Likewise.
8769         * dwarfout.c: Don't check DWARF_VERSION.
8770         * dwarf2out.c: s/dwarfout/dwarf2out/g.  Check DWARF2_DEBUGGING_INFO.
8771         * c-lex.c (check_newline): Use debug_* instead of calling *out
8772         functions directly.
8773         * svr4.h (DWARF2_DEBUGGING_INFO): Define.
8774         * mips/iris6.h (PREFERRED_DEBUGGING_TYPE): DWARF2_DEBUG.
8775         (DWARF2_DEBUGGING_INFO): Define instead of DWARF_DEBUGGING_INFO.
8776         (LINK_SPEC): Pass -w through.
8777         * mips.h (PREFERRED_DEBUGGING_TYPE): Don't check `len'.
8778
8779 Thu Nov 14 17:25:47 1996  Jeffrey A Law  (law@cygnus.com)
8780
8781         * h8300.c (dosize): Don't clobber static chain reg if needed by
8782         current function.
8783
8784 Wed Nov 13 17:05:19 1996  Jason Merrill  <jason@yorick.cygnus.com>
8785
8786         * Makefile.in (stage?-start): Keep a copy of EXTRA_MULTILIB_PARTS
8787         in the build directory.
8788
8789 Tue Nov 12 23:17:17 1996  Jeffrey A Law  (law@cygnus.com)
8790
8791         * pa.c (print_operand, case 'Y'): Fix comparisons to handle
8792         NaNs properly in all cases.
8793
8794 Tue Nov 12 18:47:24 1996  Jim Wilson  <wilson@cygnus.com>
8795
8796         * expr.c (emit_group_store): For REG case, call gen_lowpart if
8797         modes are different.
8798
8799 Tue Nov 12 18:24:40 1996  Doug Rupp  (rupp@gnat.com)
8800
8801         * gcc.c (exit): If VMS, define as __posix_exit.
8802         (option_map): Add define-macro and undefine-macro.
8803
8804 Tue Nov 12 17:55:10 1996  Torbjorn Granlund  <tege@tege.pdc.kth.se>
8805
8806         * alpha.c (input_operand): If TARGET_BYTE_OPS accept HImode and QImode.
8807         * alpha.h (MASK_BYTE_OPS): New define.
8808         (TARGET_BYTE_OPS): New define.
8809         (TARGET_SWITCHES): Handle -mbyte.
8810         (LOAD_EXTEND_OP): When MODE is not SImode, return ZERO_EXTEND.
8811         * alpha.md (zero_extendqidi2): Handle TARGET_BYTE_OPS.
8812         (zero_extend{hidi,qisi,hisi}2): Likewise.
8813         (extendqisi2): Use extendqidi2x if TARGET_BYTE_OPS.
8814         (extendqidi2): Likewise.
8815         (extendqidi2x): New pattern.
8816         (extendhisi2): Use extendhidi2x if TARGET_BYTE_OPS.
8817         (extendhidi2): Likewise.
8818         (extendhidi2x): New pattern.
8819         (movhi): Handle TARGET_BYTE_OPS.
8820         (movhi matcher): Output ldwu and stw.
8821         (movqi): Handle TARGET_BYTE_OPS.
8822         (movqi matcher): Output ldbu and stb.
8823
8824 Tue Nov 12 16:53:37 1996  Rob Savoye  <rob@chinadoll.cygnus.com>
8825
8826         * configure (hppa1.1-pro*, i960-*-coff*,m68k-*-aout*): Add libgloss.h.
8827         (m68k-*-coff*, mips*-*-elf*, sparc*-*-aout*, sparc*-*-coff*): Likewise.
8828         * config/libgloss.h: New file.
8829
8830 Tue Nov 12 16:21:45 1996  Joern Rennecke <amylaar@cygnus.com>
8831
8832         * jump.c (jump_optimize): Fix bug in Sep 23 change.
8833
8834 Tue Nov 12 16:15:31 1996  Andrew Cagney  (cagney@tpgi.com.au)
8835
8836         * global.c (prune_references): Add missing symmetic CONFLICTP call.
8837
8838 Tue Nov 12 14:34:40 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
8839
8840         * m68k.c (output_function_{pro,epi}logue): Save and restore
8841         fp-registers only if TARGET_68881.
8842
8843         * m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Prefix labels with "L%".
8844         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_CASE_LABEL): Likewise.
8845         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
8846
8847         * m68k/mot3300.h (TARGET_DEFAULT): Use MASK_68040_ALSO, not MASK_68040.
8848         * m68k/next.h, m68k/ccur-GAS.h (TARGET_DEFAULT): Likewise.
8849
8850         * fixproto (std_files): Add sys/socket.h.
8851
8852         * m68k.md (movqi): Emit 'st' for INTVAL & 255 == 255, not INTVAL == -1.
8853         (seq,sne,sgt,sgtu,slt,sltu,sge,sgeu,sle,sleu): Allow "m" as operand 0.
8854
8855 Tue Nov 12 14:17:45 1996  Paul Eggert  <eggert@twinsun.com>
8856
8857         * c-decl.c (grokdeclarator): Generate a warning if -Wimplicit,
8858         unless a warning was already generated by -Wreturn-type.
8859
8860 Tue Nov 12 14:11:02 1996  Pat Rankin  <rankin@eql.caltech.edu>
8861
8862         * Make qsort callback routines conform to the ANSI/ISO standard.
8863         * c-decl.c (field_decl_cmp): Use `const void *' arguments.
8864         * global.c (allocno_compare): Likewise.
8865         * reload1.c (hard_reg_use_compare, compare_spill_regs): Likewise.
8866         (reload_reg_class_lower): Likewise.
8867         * stupid.c (stupid_reg_compare): Likewise.
8868         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
8869         (QTY_CMP_PRI, QTY_CMP_SUGG): New macros.
8870         (qty_compare_1, qty_sugg_compare_1): Use them.
8871
8872 Tue Nov 12 13:20:25 1996  Jim Wilson  <wilson@cygnus.com>
8873
8874         * fold-const.c (merge_ranges): In (+,-) case, treat subset specially
8875         if lower bounds are the same.
8876
8877 Tue Nov 12 13:10:01 1996  J.T. Conklin  <jtc@cygnus.com>
8878
8879         * m68k.md (addsi3): If TARGET_5200, use the lea insn to add small
8880         constants to address registers.
8881         (negsi2): Change into define_expand.
8882         (negsi2_internal): Rename from old negsi2, changed condition
8883         to !TARGET_5200.
8884         (negsi2_5200): New insn.
8885         (one_cmplsi2): Change into define_expand.
8886         (one_cmplsi2_internal): Rename from old one_cmplsi2, changed
8887         condition to !TARGET_5200.
8888         (one_cmplsi2_5200): New insn.
8889         (negdi2_5200): Corrected constraints.
8890         (one_cmpldi2): Changed condition to !TARGET_5200.
8891
8892         * m68k.c (m68k_align_loops_string, m68k_align_jumps_string): New vars.
8893         (m68k_align_funcs_string, m68k_align_loops): Likewise.
8894         (m68k_align_jumps, m68k_align_funcs): Likewise.
8895         (override_options): New function.
8896         * m68k.h (TARGET_OPTIONS): Added alignment options.
8897         (MAX_CODE_ALIGN, ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE):
8898         New macros.
8899         (FUNCTION_BOUNDARY): Use value derrived from  m68k_align_funcs
8900         instead of constant.
8901  
8902         * m68k.c (output_function_{pro,epi}logue): Fix typo in last change.
8903
8904 Tue Nov 12 09:26:51 1996  Torbjorn Granlund  <tege@wombat.gnu.ai.mit.edu>
8905
8906         * i386.md (parallel inc/dec and branch-if-zero/nonzero): Use `+' in
8907         constraint.
8908
8909 Mon Nov 11 15:12:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
8910
8911         * libgcc2.c: Also define WEAK_ALIAS if ASM_OUTPUT_WEAK_ALIAS.
8912         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Define.
8913         * varasm.c (assemble_alias): Use ASM_OUTPUT_WEAK_ALIAS.
8914
8915         * dwarf2out.c (TYPE_USED_FOR_FUNCTION): Lose.
8916         (gen_compile_unit_die): Only append -g with -g2 or better.
8917         (scope_die_for): Don't emit any type info with -g1.
8918         (gen_subprogram_die): Likewise.
8919         (gen_decl_die): Likewise.
8920         (dwarfout_file_scope_decl): Likewise.
8921         (dwarfout_init): Likewise.
8922
8923         * mips/iris6.h (TYPE_ASM_OP): Define.
8924         (SIZE_ASM_OP): Define.
8925         (ASM_WEAKEN_LABEL): Define.
8926         (BSS_SECTION_ASM_OP): Define.
8927         (ASM_OUTPUT_ALIGNED_LOCAL): Don't use ASM_DECLARE_OBJECT_NAME.
8928         (ASM_OUTPUT_ALIGNED_BSS): Define.
8929         (ASM_DECLARE_OBJECT_NAME): Redefine to emit .size directive.
8930         (ASM_FINISH_DECLARE_OBJECT): Define.
8931         (ASM_OUTPUT_DEF): Don't define.
8932
8933 Fri Nov  8 20:38:51 1996  Jim Wilson  <wilson@cygnus.com>
8934
8935         * function.c (expand_function_end): Handle BLKmode structures returned
8936         in registers.
8937
8938 Fri Nov  8 20:27:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
8939
8940         * stor-layout.c (layout_record): Check for VAR_DECL instead 
8941         of TREE_STATIC.
8942
8943         * varasm.c (assemble_variable): Do write out DWARF for 
8944         record-scope variables.
8945         * toplev.c (rest_of_type_compilation): Do write out DWARF for
8946         record-scope types.
8947
8948         * dwarf2out.c (gen_enumeration_type_die): Set TREE_ASM_WRITTEN on a
8949         complete enum type.
8950         (gen_struct_or_union_type_die): Don't recurse between nested classes.
8951         (gen_type_die): Write out nested classes by writing out their context.
8952
8953 Fri Nov  8 17:40:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8954
8955         * emit-rtl.c (change_address): If MEMREF isn't changing,
8956         return the old one.
8957
8958         * expr.c (expand_assignment): Remove bogus resetting of alignment
8959         to inner alignment.
8960         (expand_expr, case COMPONENT_REF): Likewise.
8961
8962 Fri Nov  8 16:31:31 1996  Stan Cox  <coxs@dg-rtp.dg.com>
8963
8964         * reg-stack.c (compare_for_stack_reg, subst_stack_regs_pat): 
8965         Add support for float conditional move.
8966
8967 Thu Nov  7 07:46:07 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
8968
8969         * stor-layout.c (layout_record): Treat constant size as variable if
8970         it overflows.
8971         * fold-const.c (const_binop, case *_DIV_EXPR): Don't do special
8972         sizetype case if a constant overflows.
8973         (size_binop): Use integer_{zero,one}p instead of explicit test.
8974         * tree.c (integer_{zero,one,all_ones,pow2}p, real_{zero,one,two}p):
8975         Return 0 if TREE_CONSTANT_OVERFLOW.
8976
8977 Wed Nov  6 17:53:33 1996  Torbjorn Granlund  <tege@wombat.gnu.ai.mit.edu>
8978
8979         * i386.md (parallel inc and branch-if-zero/nonzero): Add two
8980         new pattern variants.  Change incrementing pattern to use incl/jnz.
8981
8982 Wed Nov  6 09:46:10 1996  Stan Cox  <coxs@dg-rtp.dg.com>
8983
8984         * i386.c (override_options): Set defaults for -march and -mcpu.
8985         (output_float_compare): Use cc_status.flags to mark if this
8986         comparison can be done with fcomi.
8987         (output_fp_cc0_set): A conditional move may be in a PARALLEL.
8988
8989         * i386.h (CC_FCOMI): Define
8990
8991         * i386.md (sgt,sgtu,sge,sle,bgt,blt,bge,ble): Use CC_FCOMI
8992         (movsicc_1,movhicc_1): Use correct size suffix.
8993         (movsfcc_1,movdfcc_1): Cleanup default move case.
8994
8995 Wed Nov  6 09:46:10 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
8996
8997         * i386.h (HARD_REGNO_MODE_OK): If long double isn't XFmode, can't
8998         allow XFmode.
8999
9000 Tue Nov  5 22:49:56 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
9001
9002         * sh.md (define_split for and_shl_scratch):
9003         Use rtx_equal_p on the operands to find out which alternative is used.
9004         * sh.c (gen_shl_and): Try to generate shorter constant for and.
9005
9006 Mon Nov  4 19:13:52 1996  Jason Merrill  <jason@yorick.cygnus.com>
9007
9008         * dwarf2out.c: Clean up unused variables.
9009         Use ASM_{GENERATE,OUTPUT}_INTERNAL_LABEL, shorten label names.
9010         (loc_descriptor): Use reg_loc_descriptor.
9011         (TYPE_DECL_IS_STUB): New macro.
9012         (gen_decl_die): Use it.
9013         (dwarfout_file_scope_decl): Use it.
9014
9015 Mon Nov  4 10:23:46 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9016
9017         * ginclude/va-ppc.h (__va_regsave_t,va_start,va_end): Wrap macro
9018         and structures inside #ifndef __VA_PPC_H__ to allow reinclusion.
9019
9020         * rs6000.h (LEGITIMATE_SMALL_DATA_P): Don't allow -fpic or TARGET_TOC.
9021         (LEGITIMATE_LO_SUM_ADDRESS_P, LEGITIMIZE_ADDRESS): Likewise.
9022
9023         * rs6000.md (movsi): Don't call elf_{high,low} if -fpic.
9024
9025         * rs6000/cygwin32.h (STARTFILE_SPEC): Eliminate empty %{}.
9026
9027 Sun Nov  3 15:56:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9028
9029         * rs6000/sysv4.h (TARGET_TOC): Plain -fpic does not require a TOC.
9030         ({MINIMAL_TOC,CONST}_SECTION_ASM_OP): -fpic should be treated like
9031         -mrelocatable in these cases.
9032         (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
9033         (ASM_OUTPUT_ALIGNED_LOCAL): Use sdata_section, not sbss_section.
9034
9035 Fri Nov  1 19:57:13 1996  Jason Merrill  <jason@yorick.cygnus.com>
9036
9037         * dwarf2out.c (based_loc_descr): Use DBX_REGISTER_NUMBER.  The 
9038         "frame base" is just the frame or stack reg without an offset.
9039         (gen_subprogram_die): Likewise.
9040         (dwarfout_begin_function): Use DBX_REGISTER_NUMBER.
9041
9042 Fri Nov  1 09:50:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9043
9044         * fold-const.c (make_range): Don't merge unsigned case with range
9045         containing upper bound; instead merge just with zero and convert
9046         a range with no upper bound to opposite one with no lower bound.
9047         (merge_ranges): In (+,-) case, don't treat subset specially if
9048         the upper bounds are the same; fix typo in others case here.
9049
9050 Thu Oct 31 20:12:13 1996  Jeffrey A Law  (law@cygnus.com)
9051
9052         * fold-const.c (make_range, case PLUS_EXPR): Correct
9053         normalization of an unsigned range that wraps around zero.
9054
9055 Thu Oct 31 21:06:37 1996  Jason Merrill  <jason@yorick.cygnus.com>
9056
9057         * mips/t-iris6 (EXTRA_MULTILIB_PARTS): Define.
9058         (EXTRA_PARTS): Don't define.
9059
9060         * dwarf2out.c (gen_struct_or_union_type_die): Use AT_specification
9061         for nested types defined outside their containing class.  Lose 
9062         is_complete.
9063         (gen_enumeration_type_die): Lose is_complete.
9064         (gen_type_die): Lose is_complete.
9065         (add_name_and_src_coords_attributes): Tweak.
9066         (gen_subroutine_type_die): Use scope_die_for.
9067         (gen_ptr_to_mbr_type_die): Likewise.
9068         (gen_subprogram_die): Support AT_artificial.
9069         (gen_variable_die): Likewise.
9070         (dwarfout_file_scope_decl): Lose finalizing.
9071
9072 Thu Oct 31 18:43:18 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9073
9074         * pa.c (emit_move_sequence): Refine previous change.
9075
9076 Thu Oct 31 13:25:32 1996  Jim Wilson  <wilson@cygnus.com>
9077
9078         * crtstuff.c: Put HAS_INIT_SECTION ifdefs around Irix6 support.
9079
9080         * tree.c (decl_function_context): Handle QUAL_UNION_TYPE.
9081
9082         * calls.c (expand_call): Disable special handling for const calls
9083         that return a PARALLEL rtx.
9084         * expr.c (expand_expr, case CONSTRUCTOR): Don't use a PARALLEL
9085         target.
9086
9087 Thu Oct 31 11:45:00 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9088
9089         * rs6000/t-{ppcgas,ppc,solaris} (EXTRA_MULTILIB_PARTS): Add
9090         {e,s}crt{i,n,0}.o.
9091         ({stmp,install}-crt): Delete, no longer used.
9092         ({,INSTALL_}LIBGCC): Remove {stmp,install}-crt rule.
9093
9094 Thu Oct 31 02:49:58 1996  Torbjorn Granlund  <tege@nada.kth.se>
9095
9096         * i386.md (parallel inc and branch-if-zero/nonzero):
9097         Check for -1, not zero.
9098
9099 Wed Oct 30 15:50:49 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9100
9101         * fold-const.c (range_binop): Strip NOPs from result and
9102         verify it's an INTEGER_CST.
9103         (make_range, case BIT_NOT_EXPR): Fix typo in constant for PLUS_EXPR.
9104
9105         * stor-layout.c (layout_record): Use HOST_WIDE_INT for size.
9106
9107         * stmt.c (expand_asm_operands): Disallow matching constraints
9108         on output and validate the numbers on inputs.
9109
9110 Tue Oct 29 16:21:59 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9111
9112         * gcc.c (process_command,main): Process -specs=file and -specs
9113         file after reading the main specs file to allow the user to
9114         override the default.
9115         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add specs to list.
9116         (option_map): Likewise.
9117
9118 Tue Oct 29 15:49:18 1996  Jason Merrill  <jason@yorick.cygnus.com>
9119
9120         * Makefile.in (stmp-multilib): Pass $flags to s-m-sub in 
9121         MULTILIB_CFLAGS.
9122         (stmp-multilib-sub): Build EXTRA_MULTILIB_PARTS.
9123         ($(T)crt*.o): Add $(T), lose stamp-crt rule, use MULTILIB_CFLAGS.
9124         (install-multilib): Install EXTRA_MULTILIB_PARTS.
9125
9126 Mon Oct 28 20:09:39 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
9127
9128         * sh.md (shl_sext_ext): Don't accept simple left/right shift variant.
9129         * sh.c (EXT_SHIFT_SIGNED): New macro.
9130         (shl_sext_kind, gen_shl_sext): try left shift - sign extend -
9131         left shift - arithmetic right shift in case 2.
9132
9133 Mon Oct 28 14:55:42 1996  Jim Wilson  <wilson@cygnus.com>
9134
9135         * configure (sh-*-*): Set float_format to sh.
9136         * config/float-sh.h: New file.
9137
9138 Mon Oct 28 14:26:08 1996  Ian Lance Taylor  <ian@cygnus.com>
9139
9140         * mips/mips.h (RTX_COSTS): Add cases for SIGN_EXTEND and ZERO_EXTEND.
9141
9142         * m68k/lb1sf68.asm: Change # to IMM in udivsi3 __mcf5200__.
9143
9144         * combine.c (simplify_rtx): Add some optimizations for TRUNCATE.
9145         (expand_compound_operation): Add some optimizations for ZERO_EXTEND.
9146
9147 Mon Oct 28 14:11:20 1996  Gavin Koch  <gavin@cygnus.com>
9148         
9149         * varasm.c (make_decl_rtl,assemble_variable):
9150         Allow named sections for uninitialized variables.
9151
9152 Mon Oct 28 13:08:51 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9153
9154         * pa.c (emit_move_sequence): If reload in progress, replace
9155         reference to pseudo with reference to corresponding MEM.
9156
9157         * c-typeck.c ({un,}signed_type): If can't do anything, call
9158         signed_or_unsigned_type.
9159         (signed_or_unsigned_type): If already right signedness, return.
9160
9161 Mon Oct 28 13:05:26 1996  Stephen Williams (steve@icarus.com)
9162
9163         * i960.h: Add specification for -Jx types.
9164         * i960/t-960bare: Include multilib support for Jx types.
9165
9166 Mon Oct 28 10:06:00 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9167
9168         * rs6000/t-{ppc{,gas},solaris} (install-crt): Depend on
9169         installdirs, not install-dir.
9170
9171         * rs6000/sysv4.h (TARGET_TOC): -fpic does not use a TOC area.
9172
9173 Mon Oct 28 09:07:42 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
9174
9175         * reload1.c (delete_output_reload): Don't use delete_insn
9176         when deleting all stores into a replaced pseudo.
9177
9178         * sh.md (movsf_ieq, movsf_ie): Merged the former into the latter.
9179         Changed matching define_split appropriately.
9180         (movsf): Changed appropriately.
9181         (reload_insf) Define.
9182         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
9183
9184 Mon Oct 28 08:38:23 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
9185
9186         * dsp16xx.h (ASM_OUTPUT_BYTE): Adjust definition to actual type of
9187         VALUE, which is HOST_WIDE_INT.
9188
9189 Mon Oct 28 07:36:07 1996  Ulrich Drepper  <drepper@cygnus.com>
9190
9191         * ginclude/stddef.h: Make sure file is processed if some of the
9192         known __need_* macros is defined.
9193
9194 Sun Oct 27 21:37:59 1996  J.T. Conklin  <jtc@cygnus.com>
9195
9196         * m68k.c (output_function_prologue): Adjust SP then use movmel with
9197         plain address indirect mode for TARGET_5200.
9198         (output_function_epilogue): Disable moveml and use several movel's
9199         instead for TARGET_5200.
9200         (output_function_{pro,epi}logue): Use lea instruction to adjust
9201         stack pointer for short displacements for TARGET_5200.
9202
9203 Sun Oct 27 15:27:45 1996  Jeffrey A Law  (law@cygnus.com)
9204
9205         * fold-const.c (merge_ranges): Fix thinko/typo.
9206
9207 Sat Oct 26 22:07:04 1996  Ian Lance Taylor  <ian@cygnus.com>
9208
9209         * expr.c (convert_modes): Before returning a const_double for a
9210         large unsigned value, zero extend an integer value if necessary.
9211
9212 Sat Oct 26 15:24:55 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
9213
9214         * m68k/x-mot3300 (XCFLAGS): Disable native assembler's jump
9215         optimization for expr.o and cp/decl.o.
9216
9217 Sat Oct 26 14:04:09 1996  Ben Harris  <bjh21@cam.ac.uk>
9218
9219         * m68k.c (output_function_prologue): Add REGISTER_PREFIX to stack
9220         probe instruction.
9221
9222 Sat Oct 26 13:59:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9223
9224         * explow.c (allocate_dynamic_stack_space): Delete reference to
9225         nonexistant macro ALLOCATE_OUTGOING_ARGS.
9226
9227         * next.h (CPP_PREDEFINES): Add -D_NEXT_SOURCE.
9228
9229 Sat Oct 26 13:50:49 1996  Mark Mitchell  (mitchell@centerline.com)
9230
9231         * configure (i486-ncr-sysv4*): Use i386/sysv4gdb if stabs and gas.
9232
9233 Sat Oct 26 12:20:35 1996  John F. Carr  <jfc@mit.edu>
9234
9235         * configure: Support --with-cpu=* for SPARC.  Or target default
9236         values instead of adding them.
9237         * sparc.c (cpu_default): Add entries for v8 and supersparc.
9238         * sparc.h: Define TARGET_CPU values for v8 and supersparc.
9239
9240 Sat Oct 26 11:38:01 1996  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
9241
9242         * collect2.c (dump_file): Call fclose for opened files.
9243
9244 Sat Oct 26 11:29:29 1996  J"orn Rennecke  (amylaar@cygnus.co.uk)
9245
9246         * jump.c (jump_optimize): Fix second error in last change.
9247
9248         * svr3.h: Fix typo which makes comment text be non-comment.
9249
9250 Fri Oct 25 16:18:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9251
9252         * rs6000/t-winnt (LIBGCC1): Don't build libgcc1.
9253         (EXTRA_PARTS): Build crti.o, crtn.o.
9254         (stmp-crt): Remove old multilib support.
9255
9256 Thu Oct 24 15:09:14 1996  Jim Wilson  <wilson@cygnus.com>
9257
9258         * fold-const.c (make_range, case PLUS_EXPR): Normalize an unsigned
9259         range that wraps around 0.
9260
9261 Thu Oct 24 14:37:17 1996  Ian Lance Taylor  <ian@cygnus.com>
9262
9263         * mips.md: Change predicates for 64 bit arithmetic operations
9264         so that they accept sign extended registers as operands.
9265         (extendsidi2): Accept hi or lo as input.
9266         * mips.c (movdi_operand, se_register_operand,
9267         se_reg_or_0_operand, se_uns_arith_operand, se_arith_operand,
9268         se_nonmemory_operand, se_nonimmediate_operand): New functions.
9269         (mips_move_2words): Handle a SIGN_EXTEND source.
9270         (print_operand): Handle a SIGN_EXTEND operand.
9271         (mips_secondary_reload_class): Handle a SIGN_EXTEND rtx.
9272         * mips.h: Declare new mips.c functions.
9273         (PREDICATE_CODES): Add new functions.
9274
9275 Thu Oct 24 07:41:14 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9276
9277         * fold-const.c (make_range, comparison cases): When making range
9278         for unsigned to merge in, use full range.
9279
9280         * stor-layout.c (GET_MODE_ALIGNMENT): Delete definition; duplicate.
9281
9282 Thu Oct 24 07:28:53 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
9283
9284         * reload1.c (emit_reload_insns): Check for second_reloadreg
9285         in SECONDARY_OUTPUT_RELOAD_CLASS / PRESERVE_DEATH_INFO_REGNO_P case.
9286
9287 Wed Oct 23 14:27:43 1996  Mike Stump  <mrs@cygnus.com>
9288
9289         * crtstuff.c (__do_global_dtors_aux): Allow finalization code to
9290         be run more than once.
9291         * libgcc2.c (__do_global_dtors): Ditto.
9292         
9293 Wed Oct 23 20:42:23 1996  Joern Rennecke <amylaar@cygnus.co.uk>
9294
9295         * sh.c (dump_table): handle SFmode and DFmode.
9296         (broken_move): handle simple PARALLEL.
9297         (machine_dependent_reorg, pc-relative move generation): Likewise.
9298         * sh.h (CONST_DOUBLE_OK_FOR_LETTER_P): always true for 'F' .
9299         (LEGITIMATE_CONSTANT_P): accept SFmode and DFmode.
9300         * sh.md (movdf_k, movsf_i, movsf_ie): new alternative for
9301         pc-relative load.
9302         (movsf_ieq): new define_insn with matching define_split.
9303         (movsf): use it where appropriate.
9304         (consttable_sf, consttable_df): new define_insns.
9305
9306 Wed Oct 23 17:48:32 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9307
9308         * svr4.h (MAKE_DECL_ONE_ONLY): Fix typo in use of macro parameter.
9309
9310 Wed Oct 23 17:46:13 1996  Pat Rankin  <rankin@eql.caltech.edu>
9311
9312         * cexp.y (yylex): Cast string literal to U_CHAR* for lookup() call.
9313
9314 Wed Oct 23 14:50:04 1996  Jason Merrill  <jason@yorick.cygnus.com>
9315
9316         * stmt.c (expand_return): Expand cleanups.  Make sure we get pseudo
9317         and provide target in non-BLKmode case.  Get proper return type of fn.
9318
9319 Wed Oct 23 14:16:06 1996  Ian Lance Taylor  <ian@cygnus.com>
9320
9321         * reload.c (find_reloads): Handle any unary operator.
9322         * recog.c (constrain_operands): Likewise.
9323
9324         * mips.md: Remove extendsidi2 define_expand. 
9325         Rename extendsidi2_internal define_insn to extendsidi2, and add a
9326         register to register case.
9327
9328 Wed Oct 23 14:08:31 1996  Jim Wilson  <wilson@cygnus.com>
9329
9330         * a29k.c (a29k_makes_calls): New global variable.
9331         (compute_regstack_size, a29k_compute_reg_names): New functions.
9332         (output_prolog): Much code moved to two new functions.
9333         Use a29k_makes_calls instead of makes_calls.
9334         * a29k.h (ASM_DECLARE_FUNCTION_NAME): Call a29k_compute_reg_names.
9335
9336         * calls.c (expand_call): In target code, move PARALLEL case above
9337         target != case.
9338
9339         * mips.c (block_move_load_store, block_move_sequence): Delete.
9340         (block_move_loop): New parameter orig_dest.  Call change_address to
9341         create new MEM instead of gen_rtx.
9342         (expand_block_move): New local orig_dest.  Pass it to block_move_loop.
9343         Call change_address to create new MEM instead of gen_rtx.
9344
9345 Wed Oct 23 10:30:32 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
9346
9347         * loop.c (combine_givs): When combining a DEST_REG giv with its
9348         only use, always set the benefit of the combined giv to that of
9349         the DEST_REG giv.
9350
9351         * emit-rtl (gen_lowpart_common): When converting a floating
9352         point value into an integer, use WORD as (first) word.
9353
9354         * combine.c (can_combine_p): When SMALL_REGISTER_CLASSES is defined,
9355         avoid substituting a return register into I3.
9356
9357         * optabs.c (emit_libcall_block): Before adding an REG_EQUAL note,
9358         check that it will really apply to a single instruction.
9359         (expand_binop, expand_fix): Likewise.
9360
9361 Wed Oct 23 10:20:52 1996  Stephen L Moshier  (moshier@world.std.com)
9362
9363         * real.c (exact_real_inverse): New function, if REAL_ARITHMETIC.
9364         * fold-const.c (exact_real_inverse): Likewise, if no REAL_ARITHMETIC.
9365         (fold, case RDIV_EXPR): Turn divide by constant into multiplication
9366         by the reciprocal, if optimizing and result is exact.
9367         * real.h (exact_real_inverse): Declare.
9368
9369 Wed Oct 23 00:12:52 1996  Torbjorn Granlund  <tege@nada.kth.se>
9370
9371         * expr.h (emit_store_flag_force): Declare.
9372
9373 Tue Oct 22 18:32:20 1996  Jim Wilson  <wilson@cygnus.com>
9374
9375         * unroll.c (unroll_loop): Always reject loops with unbalanced blocks.
9376
9377 Tue Oct 22 18:27:06 1996  Ian Lance Taylor  <ian@cygnus.com>
9378
9379         * config/fp-bit.c (float_to_usi): Correct thinko: avoid negative shift.
9380         (df_to_sf): Remember any discarded nonzero bits in the low order
9381         guard bit.
9382
9383         * ginclude/va-mips.h: Add support for -mips1 and -msoft-float when
9384         using -mabi=eabi.
9385         * mips/abi64.h (SETUP_INCOMING_VARARGS): When MIPS EABI, handle
9386         TARGET_SINGLE_FLOAT or ! TARGET_FLOAT64 correctly when saving
9387         floating point registers to the stack.
9388         * mips/mips.c (mips_function_value): If TARGET_SINGLE_FLOAT, use
9389         GP_RETURN for floating point types larger than 4 bytes.
9390
9391 Tue Oct 22 09:43:49 1996  Geoffrey Noer  <noer@cygnus.com>
9392
9393         * rs6000/cygwin32.h (LIB_SPEC): Add -lkernel32 all of the time,
9394         and {user,gdi,comdlg}32 if -mwindows.
9395
9396 Tue Oct 22 05:24:05 1996  Jason Merrill  <jason@yorick.cygnus.com>
9397
9398         * dwarf2out.c (scope_die_for): Don't skip lexical blocks.
9399         (gen_lexical_block_die): Call push_decl_scope.
9400         (gen_subprogram_die): Never refer to the function symbol.
9401         (dwarfout_begin_prologue): Likewise.
9402
9403 Mon Oct 21 20:22:49 1996  Torbjorn Granlund  <tege@nada.kth.se>
9404
9405         * expmed.c (emit_store_flag_force): New function.
9406         * optabs.c (expand_binop): Use it.
9407         
9408         * expr.c (do_store_flag): Don't check if target is 0 in code
9409         emitting store flag as compare-branch.
9410
9411 Mon Oct 21 17:58:33 1996  Ian Lance Taylor  <ian@cygnus.com>
9412
9413         * mips.c (override_options): Correct typo (MASK_64BIT should
9414         have been TARGET_64BIT).
9415
9416 Mon Oct 21 13:58:54 1996  Jim Wilson  <wilson@cygnus.com>
9417
9418         * unroll.c (loop_comparison_code): New static variable.
9419         (unroll_loop): Add check for loop_comparison_code
9420         (loop_iterations): Set loop_comparison_code.
9421
9422         * sh.c (gen_shl_sext): Add missing parameter to shl_sext_kind call.
9423
9424         * mips.h (INITIAL_FRAME_POINTER_OFFSET): Delete.
9425
9426         * loop.c (strength_reduce): Add check for ! bl->reversed to
9427         auto_inc_opt code.
9428
9429 Mon Oct 21 12:28:15 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
9430
9431         * jump.c (jump_optimize): Fix bug in Oct. 14 change.
9432
9433 Mon Oct 21 07:59:16 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9434
9435         * expr.c (store_expr): Disable optimization of using convert
9436         if exp's type is a subtype.
9437
9438         * c-typeck.c (build_array_ref): If -Wchar-subscripts, also warn
9439         in case when pointer is being indexed.
9440
9441 Mon Oct 21 07:39:31 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
9442
9443         * jump.c (jump_optimize): Use emit_store_flag even if branches
9444         are cheap, if the store is even cheaper.
9445
9446 Sun Oct 20 20:01:09 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9447
9448         * reload1.c (reload_reg_free_p, reloads_conflict): RELOAD_OTHER
9449         and RELOAD_FOR_OTHER_ADDRESS conflict.
9450
9451         * i386.md (ffs[sh]i2): Add missing CC_STATUS_INIT.
9452
9453 Fri Oct 18 13:32:13 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9454
9455         * rs6000.md (float conversion insns): Generate correct code
9456         if the bit 15 of rs6000_fpmem_offset is non-zero.
9457
9458 Thu Oct 17 23:22:03 1996  Jason Merrill  <jason@yorick.cygnus.com>
9459
9460         * dwarfout.c (data_member_location_attribute): Support binfos.
9461         (output_inheritance_die): New fn.
9462         (output_type): Use it.
9463
9464         * dwarf2out.c (value_format): Split out from...
9465         (output_value_format): Here.
9466         (build_abbrev_table): Use value_format.
9467         (size_of_locs): New fn.
9468         (size_of_die): Don't assume a loc needs a 2-byte length.
9469         (value_format, output_die): Likewise.
9470
9471 Thu Oct 17 14:46:14 1996  Ian Lance Taylor  <ian@cygnus.com>
9472
9473         * mips.c (override_options): In 64 bit EABI mode, set TARGET_LONG64.
9474
9475 Thu Oct 17 11:34:51 1996  Bob Manson  <manson@cygnus.com>
9476
9477         * expr.c (do_jump): Conditionalize cleanups for the COND_EXPR case,
9478         similarly to the way TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR are
9479         handled.
9480
9481 Thu Oct 17 01:20:16 1996  Jim Wilson  <wilson@cygnus.com>
9482
9483         * m68k.h (MASK_68040_ALSO): New macro.
9484         (TARGET_SWITCHES): Option -m68020-40 includes MASK_68040_ALSO.
9485
9486 Wed Oct 16 16:25:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
9487
9488         * dwarf2out.c (scope_die_for): Also support decls, add asserts.
9489         (modified_type_die): Modified types all go under comp_unit_die.
9490         (add_type_attribute): Just pass context_die through.
9491         (various): Revert useless lookup_type_die change.
9492         (gen_subprogram_die): Use scope_die_for.  Call push_decl_scope.
9493         (gen_inlined_subroutine_die): Call push_decl_scope.
9494         (gen_struct_or_union_type_die): Likewise.
9495         (gen_decl_die): Don't call push_decl_scope.
9496
9497         * mips/iris6.h (*_SPEC): Replace enumeration of !mabi= with !mabi*.
9498         (ASM_OUTPUT_{CON,DE}STRUCTOR): Enable.
9499         (STARTFILE_SPEC): Support -mips4, -shared.
9500         (ENDFILE_SPEC): Likewise.
9501         (LIB_SPEC): Support -shared, avoid warning 84.
9502         (LIBGCC_SPEC): Define.
9503         (LINK_SPEC): Support -shared, remove -woff 84.
9504         * mips/t-iris6 (EXTRA_PARTS): Add crtstuff.
9505         * crtstuff.c: Support Irix 6.
9506         * configure: Don't use collect2 for Irix 6.
9507         * libgcc2.c (__main): Don't use any of this stuff if HAS_INIT_SECTION.
9508
9509 Wed Oct 16 11:46:37 1996  Mike Stump  <mrs@cygnus.com>
9510
9511         * elxsi.h (CHECK_FLOAT_VALUE): Removed.
9512
9513 Wed Oct 16 14:19:38 1996  Jim Wilson  <wilson@cygnus.com>
9514
9515         * iris6.h (CPP_PREDEFINES): Add -D_LONGLONG.
9516         (CPP_SPECS): Remove -D_LONGLONG.
9517
9518 Wed Oct 16 03:34:42 1996  Torbjorn Granlund  <tege@nada.kth.se>
9519
9520         * i386.md (parallel inc/dec and branch-if-zero/nonzero): New patterns.
9521
9522 Tue Oct 15 22:28:11 1996  Ian Lance Taylor  <ian@cygnus.com>
9523
9524         * mips.h (enum mips_abi_type): Add ABI_EABI.
9525         (CPP_SPEC): Define __mips_soft_float if -msoft-float, and
9526         __mips_eabi if -mabi=eabi.
9527         (INITIAL_ELIMINATION_OFFSET, CUMULATIVE_ARGS,
9528         GO_IF_LEGITIMATE_ADDRESS, CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT,
9529         LEGITIMIZE_ADDRESS): Add support for MIPS EABI.
9530         * mips/abi64.h (STACK_BOUNDARY, MIPS_STACK_ALIGN,
9531         FUNCTION_ARG_PADDING, RETURN_IN_MEMORY, SETUP_INCOMING_VARARGS):
9532         Add support for MIPS EABI.
9533         (FUNCTION_ARG_PASS_BY_REFERENCE): Define.
9534         (FUNCTION_ARG_CALLEE_COPIES): Define.
9535         * mips.c (mips_const_double_ok, function_arg_advance,
9536         function_arg, function_arg_partial_nregs, override_options,
9537         compute_frame_size): Add support for MIPS EABI.
9538         (function_arg_pass_by_reference): New function.
9539         * ginclude/va-mips.h: Add support for MIPS EABI.
9540
9541 Tue Oct 15 19:10:08 1996  Jason Merrill  <jason@yorick.cygnus.com>
9542
9543         * toplev.c (rest_of_type_compilation): Don't write out
9544         DWARF for function-scope types yet.
9545         (compile_file): Do send vars with no RTL to the DWARF code.
9546
9547 Tue Oct 15 17:54:43 1996  Doug Evans  <dje@cygnus.com>
9548
9549         * loop.c (strength_reduce): Avoid taking PATTERN of a label.
9550
9551 Tue Oct 15 16:52:33 1996  Ian Lance Taylor  <ian@cygnus.com>
9552
9553         * mips/iris6.h: (SUBTARGET_CPP_SIZE_SPEC): Define.
9554         (SUBTARGET_CPP_SPEC): Remove definitions of __SIZE_TYPE__ and
9555         __PTRDIFF_TYPE__, now in SUBTARGET_CPP_SIZE_SPEC.
9556
9557 Tue Oct 15 11:19:17 1996  Lee Iverson  <leei@Canada.AI.SRI.COM>
9558
9559         * mips.h (CPP_SPEC): Restore -D_LANGUAGE_C for Objective C.
9560
9561 Mon Oct 14 18:03:35 1996  Jason Merrill  <jason@yorick.cygnus.com>
9562
9563         * dwarf2out.c (gen_decl_die): Do generate dies for classes with -g1.
9564         (dwarfout_file_scope_decl): Likewise.
9565
9566 Mon Oct 14 16:31:44 1996  Joern Rennecke <amylaar@cygnus.co.uk>
9567
9568         * jump.c (jump_optimize): Check for if (...) { x = a; goto l; } x = b;
9569
9570 Mon Oct 14 14:19:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
9571
9572         * dwarf2out.c (modified_type_die): Don't bother with AT_address_class.
9573         (add_data_member_location_attribute): Handle getting a binfo.
9574         (add_location_or_const_value_attribute): Handle a decl with no RTL.
9575         (add_pure_or_virtual_attribute): Add AT_vtable_elem_location.
9576         (add_name_and_src_coords_attributes): Only use DECL_ASSEMBLER_NAME 
9577         for staticp things.
9578         (gen_subprogram_die): Set up AT_inline for abstract decls.
9579         (gen_inheritance_die): New fn.
9580         (gen_member_die): Also emit info for base classes.
9581
9582 Sat Oct 12 00:07:00 1996  Doug Evans  <dje@cygnus.com>
9583
9584         * fold-const.c (make_range): Handle NULL operand 0 like in BIND_EXPRs.
9585
9586 Fri Oct 11 15:42:22 1996  Jason Merrill  <jason@yorick.cygnus.com>
9587
9588         * toplev.c (rest_of_compilation): If we did a
9589         save_for_inline_copying, reset DECL_ABSTRACT_ORIGIN for the
9590         function when we're done.
9591
9592         * toplev.c (main): DWARF works with C++ now.
9593
9594         * dwarf2out.c (gen_subprogram_die): Disable MIPS_AT_has_inline
9595         support for now.
9596
9597 Fri Oct 11 14:31:10 1996  Torbjorn Granlund  <tege@nada.kth.se>
9598
9599         * dwarfout.c: (output_bound_representation): Fix typo in prototype.
9600
9601 Fri Oct 11 12:19:21 1996  Ian Lance Taylor  <ian@cygnus.com>
9602
9603         * mips.h ({,SUBTARGET_}MIPS_AS_ASM_SPEC): Define.
9604         ({GAS,TARGET,SUBTARGET}_ASM_SPEC): Define.
9605         (SUBTARGET_ASM_{OPTIMIZING,DEBUGGING}_SPEC): Define.
9606         (ASM_SPEC): Rewrite to use above specs.
9607         (SUBTARGET_CPP{,_SIZE}_SPEC): Define.
9608         (CPP_SPEC): Use above specs.  Don't define _LANGUAGE_C if C++ or
9609         Objective C.
9610         ({,SUBTARGET_}EXTRA_SPECS): Define.
9611         * mips/dec-bsd.h ({CPP,ASM}_SPEC): Don't define.
9612         * mips/dec-osf1.h (CPP_SPEC): Don't define.
9613         (SUBTARGET_CPP_SIZE_SPEC): Define.
9614         * mips/elf64.h (CPP_SPEC): Don't define.
9615         (SUBTARGET_CPP_SPEC): Define.
9616         * mips/gnu.h (TARGET_DEFAULT): Define.
9617         (ASM_SPEC): Don't define.
9618         * mips/iris3.h (CPP_SPEC): Don't define.
9619         (SUBTARGET_CPP_SPEC): Define.
9620         * mips/iris4loser.h (ASM_SPEC): Don't define.
9621         (SUBTARGET_MIPS_AS_ASM_SPEC): Define.
9622         (SUBTARGET_ASM_OPTIMIZING_SPEC): Define.
9623         * mips/iris5.h (CPP_SPEC): Don't define.
9624         (SUBTARGET_CPP_SPEC): Define.
9625         * mips/iris6.h ({CPP,ASM}_SPEC): Don't define.
9626         (SUBTARGET_{CPP,ASM,MIPS_AS_ASM,ASM_DEBUGGING}_SPEC): Define.
9627         * mips/netbsd.h ({CPP,ASM}_SPEC): Don't define.
9628         (SUBTARGET_CPP_SPEC): Define.
9629         * mips/osfrose.h ({CPP,ASM,ASM_FINAL}_SPEC): Don't define.
9630         (SUBTARGET_CPP{,_SIZE}_SPEC): Define.
9631         * mips/sni-svr4.h (CPP_SPEC): Don't define.
9632         (SUBTARGET_CPP_SIZE_SPEC): Define.
9633
9634 Thu Oct 10 17:58:49 1996  Jason Merrill  <jason@yorick.cygnus.com>
9635
9636         * mips/iris6.h (ASM_OUTPUT_SECTION_NAME): Define.
9637         (DWARF_OFFSET_SIZE): Define.
9638
9639         * dwarf2out.c (most everywhere): Support SGI/MIPS -mabi=64 by fixing
9640         code which assumed pointers are 4 bytes long, parameterizing many
9641         sizes on DWARF_OFFSET_SIZE and using DELTA instead of DELTA4,
9642         DATA instead of DATA4, FORM_ref instead of FORM_ref4.
9643         (DWARF_ROUND, UNALIGNED_DOUBLE_INT_ASM_OP): New macros.
9644         (UNALIGNED_WORD_ASM_OP, ASM_OUTPUT_DWARF_DELTA): Likewise.
9645         (ASM_OUTPUT_DWARF_DATA, DW_FORM_data, DW_FORM_ref): New macros.
9646         (gen_variable_die): Only equate_decl_number_to_die if
9647         decl is TREE_STATIC.
9648         (get_AT): Fix thinko.
9649
9650         * dwarf2out.c (constant_size): New fn.
9651         (size_of_die): Use it instead of assuming 4 bytes.
9652         (output_value_format, output_die): Likewise.
9653         (build_abbrev_table): Need new abbrev if size of constant differs.
9654         (dwarf_attr_name): Add new SGI/MIPS extensions.
9655         (gen_subprogram_die): Support DW_AT_MIPS_has_inlines.
9656         (gen_inlined_subroutine_die): Likewise.
9657
9658 Thu Oct 10 16:38:58 1996  Ian Lance Taylor  <ian@cygnus.com>
9659
9660         * mips.md (mov[sd]fcc): Use register_operand, not reg_or_0_operand,
9661         for source predicates.
9662
9663 Thu Oct 10 15:19:38 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9664
9665         * rs6000.md (floatsidf2_load): For large stack frames, do not
9666         generate an illegal memory reference.
9667         (movdi, movdf define_splits): Fix code so that it works for either
9668         big or little endian hosts generating code for either big or
9669         little endian targets.
9670
9671         (from Jim Wilson)
9672         * rs6000.c (rs6000_save_toc_p): Delete global variable.
9673         (rs6000_{save,restore}_machine_status): Do not save/restore it.
9674         (rs6000_init_expanders): Do not initialize it.
9675         (rs6000_stack_info): Always create TOC save space.
9676
9677         * rs6000.md (NT indirect call insns): Do not set
9678         rs6000_save_toc_p.
9679
9680         * rs6000.h (rs6000_save_toc_p): Delete declaration.
9681
9682 Wed Oct  9 18:06:54 1996  Ian Lance Taylor  <ian@cygnus.com>
9683
9684         * mips.h (EMPTY_FIELD_BOUNDARY): Define as 32.
9685         * mips/abi64.h (EMPTY_FIELD_BOUNDARY): Don't define.
9686
9687         * mips/abi64.h (TARGET_DEFAULT, TARGET_LONG64, CPP_PREDEFINES,
9688         CPP_SPEC): Move from here...
9689         * mips/iris6.h: ...to here.
9690
9691 Wed Oct  9 16:43:51 1996  Jim Wilson  <wilson@cygnus.com>
9692
9693         * configure (i[3456]86-dg-dgux): Use install-headers-cpio.
9694
9695         * expr.c (store_constructor): Delete unnecessary increment.
9696
9697 Wed Oct  9 16:29:22 1996  Gavin Koch <gavin@cetus.cygnus.com>
9698
9699         * cccp.c (do_include): Treat ENOTDIR like ENOENT when an open fails.
9700
9701 Wed Oct  9 16:26:57 1996  Paul Eggert  <eggert@twinsun.com>
9702
9703         * gcc.c (default_compilers): -ansi no longer implies -$ to cpp.
9704         * c-lex.c (yylex): Treat `$' just like `_', except issue a
9705         diagnostic if !dollars_in_ident or if pedantic.
9706         * c-decl.c (dollars_in_ident): DOLLARS_IN_IDENTIFIERS is now Boolean.
9707         (c_decode_option): -fdollars-in-identifiers is now independent
9708         of -ansi, of -traditional, and of DOLLARS_IN_IDENTIFIERS.
9709         * cexp.y (initialize_random_junk): Ignore DOLLARS_IN_IDENTIFIERS.
9710         * cccp.c (dollars_in_ident): Remove; replaced by is_idchar['$'].
9711         (main): Initialize is_idchar and is_idstart directly when given -$.
9712         Ignore DOLLARS_IN_IDENTIFIERS.
9713         (rescan): Diagnose $ in identifier if pedantic.
9714         (initialize_char_syntax): Assume $ is allowed in identifier;
9715         `main' will change this if -$ is given.
9716         * cpplib.h (DOLLARS_IN_IDENTIFIERS): Remove.
9717         * cpplib.c (cpp_options_init): Ignore DOLLARS_IN_IDENTIFIERS.
9718         (parse_name): Diagnose $ in identifier if pedantic.
9719         (cpp_handle_options): -traditional no longer messes with
9720         dollars_in_ident.
9721         * i386/dgux.h, m68k/apollo68.h (DOLLARS_IN_IDENTIFIERS): Remove.
9722         * m88k.h, mips.h, nextstep.h, pa.h (DOLLARS_IN_IDENTIFIERS): Remove.
9723         * vax/ultrix.h, vax/vms.h (DOLLARS_IN_IDENTIFIERS): Remove.
9724         * convex.h (OVERRIDE_OPTIONS): Don't need to set
9725         dollars_in_ident any more, since -ansi doesn't change it.
9726
9727 Wed Oct  9 07:35:47 1996  Doug Evans  <dje@cygnus.com>
9728
9729         * Allow prefix attributes in more places.
9730         * c-parse.in: Update number of shift/reduce conflicts.
9731         ({typed_declspecs,reserved_declspecs,declmods}_no_prefix_attr): New.
9732         (current_declspecs): Initialize to NULL_TREE.
9733         (fndef): Pass current_declspecs, not $1, to start_function.
9734         (old_style_parm_decls): Renamed from xdecls.
9735         (datadecl, declmods): Add references to new rules.
9736         (setspecs): Call split_specs_attrs.
9737         (absdcl1): Remove case with setattrs.
9738         * c-common.c (split_specs_attrs): New function.
9739
9740 Wed Oct  9 05:48:43 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9741
9742         * sdbout.c: Include defaults.h.
9743         * Makefile.in (sdbout.o): Make dependency list match included files.
9744
9745         * fold-const.c (range_test): Function deleted.
9746         (range_binop, make_range, build_range_check): New functions.
9747         (merge_ranges, fold_range_test): Likewise.
9748         (fold_truthop): No longer call range_test.
9749         (fold, case TRUTH_{AND,OR}{,IF}_EXPR): Call fold_range_test.
9750
9751 Tue Oct  8 22:03:32 1996  Torbjorn Granlund  <tege@nada.kth.se>
9752
9753         * configure: Set cpu_type for pyramid.
9754
9755 Tue Oct  8 21:54:04 1996  Jason Merrill  <jason@yorick.cygnus.com>
9756
9757         * final.c (final_start_function): Call dwarfout_begin_prologue.
9758
9759         * dwarf2out.c (pubname_*, arange_*): New data for .debug_pubnames
9760         and .debug_aranges sections.
9761         (add_pubname): New fn.
9762         (size_of_pubnames): Reimplement.
9763         (output_pubnames): Likewise.
9764         (add_arange): New fn.
9765         (size_of_aranges): Include function sections.
9766         (output_aranges): Likewise.
9767         (gen_variable_die): Call add_pubname.
9768         (add_name_and_src_coords_attributes): Use DECL_ASSEMBLER_NAME for now.
9769         (decl_start_label): Renamed from function_start_label.
9770         (gen_subprogram_die): If weak or one_only, use a local label for 
9771         AT_low_pc.  Call add_pubname and add_arange.
9772         (dwarfout_begin_prologue): New fn.  Start up FDE here. 
9773         (dwarfout_begin_function): Not here.
9774         (get_AT): Split out.  Look in specification and abstract_origin DIEs.
9775         (get_AT_low_pc, get_AT_string, get_AT_flag, get_AT_unsigned, 
9776         get_AT_hi_pc): Use it.
9777         (dwarfout_finish): Variables can produce pubnames, too.
9778
9779 Tue Oct  8 19:35:40 1996  Torbjorn Granlund  <tege@nada.kth.se>
9780
9781         * m88k/dgux.h (CPP_SPEC): Avoid newline in the string.
9782
9783         * final.c (final): Update insn_current_address before calling
9784         final_scan_insn.
9785
9786 Tue Oct  8 17:52:02 1996  Jim Wilson  <wilson@cygnus.com>
9787
9788         * unroll.c (unroll_loops): Set local_regno only if set_dominates_use
9789         returns true.
9790         (set_dominates_use): New function.
9791
9792 Tue Oct  8 16:01:37 1996  Doug Evans  <dje@cygnus.com>
9793
9794         * c-typeck.c (decl_constant_value): Delete test for ! TREE_PUBLIC.
9795
9796 Tue Oct  8 10:36:44 1996  Jeffrey A Law  (law@cygnus.com)
9797
9798         * pa.c (hppa_legitimize_address): Remove test code accidentally left
9799         in during last change.
9800
9801 Mon Oct  7 19:55:02 1996  Jim Wilson  <wilson@cygnus.com>
9802
9803         * sched.c (schedule_block): Before scheduling, add code to make all
9804         call used regs not fixed or global live when we see a CALL_INSN.
9805         During scheduling, change existing code to use same test.
9806
9807         * varasm.c (bss_section): Delete unused parameters.
9808
9809 Mon Oct  7 16:24:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
9810
9811         * dwarf2.h: Add new SGI/MIPS attributes.
9812
9813         * dwarf2out.c (*_separate_line_info_*): Parallel line number
9814         information for functions defined in sections other than .text.
9815         (size_of_line_info): Support it.
9816         (output_line_info, dwarfout_line): Likewise.
9817         (gen_compile_unit_die): Don't add high/low_pc or stmt_list
9818         attributes here.
9819         (dwarfout_finish): Add them here if appropriate.
9820         (remove_AT): Free removed attribute properly.
9821         (gen_type_die): Don't assume a nested type is complete.
9822         (dwarfout_finish): Don't emit line info if it would be empty.
9823
9824         * dwarfout.c (output_block): Don't emit a DIE for a body block.
9825         (output_decls_for_scope): Don't increment next_block_number for the
9826         outer block.
9827         (output_decl): Start from the outer block, not
9828         the first inner block since there can be more than one in C++.
9829         (type_tag): Handle C++ TYPE_NAME.
9830         (output_type): Fix handling of TYPE_METHODS.
9831         (output_decl): Don't output a DIE for artificial typedefs.
9832
9833 Mon Oct  7 15:47:29 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9834
9835         * rs6000.md (movdi define_splits): Fix previous change to work
9836         on both little and big endian hosts.
9837
9838 Sun Oct  6 16:52:34 1996  Jeffrey A Law  (law@cygnus.com)
9839
9840         * pa.h (combinable_fsub): Don't return without a value.
9841
9842 Sun Oct  6 14:05:39 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
9843
9844         * rs6000.md (mov{df,di} define_splits): Use split_double to
9845         properly split CONST_DOUBLEs.
9846         (movdi): Likewise.
9847
9848 Sat Oct  5 08:43:14 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9849
9850         * i386/cygwin32.h (LIB_SPEC): Add support for -mwindows.
9851         Always pass -lkernel32.
9852         (LIBGCC_SPEC): Don't delete.
9853         (STARTFILE_SPEC): Remove always-true conditionalization.
9854         (LONG_DOUBLE_TYPE_SIZE): Use default.
9855
9856 Fri Oct  4 17:22:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
9857
9858         * toplev.c (rest_of_type_compilation): Don't emit DWARF for member
9859         types of a type we haven't emitted yet.
9860         (compile_file): Still emit DWARF for pending tagged types.
9861
9862         * final.c (final_scan_insn): Do emit DWARF labels for level 1 blocks.
9863
9864         * dwarf2out.c (gen_subprogram_die): Start from the outer block, not
9865         the first inner block since there can be more than one in C++.
9866         (gen_lexical_block_die): Keep track of the block depth.
9867         (gen_block_die): Don't emit a DIE for a body block.
9868         (gen_inlined_subroutine_die): Don't emit anything for an
9869         abstract instance.
9870         (decls_for_scope): Don't increment next_block_number for the
9871         outer block.
9872
9873 Fri Oct  4 15:27:55 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
9874
9875         * sh.h (PRESERVE_DEATH_INFO_REGNO_P): Define.
9876
9877         * sh.c (sfunc_uses_reg): New function.
9878         (noncall_uses_reg, machine_dependent_reorg, final_prescan_insn):
9879         Handle special functions like function calls for purposes of relaxing.
9880         (noncall_uses_reg): Added some missing cases of registers
9881         being used in non-call instructions.
9882
9883 Fri Oct  4 10:51:40 1996  Jason Merrill  <jason@yorick.cygnus.com>
9884
9885         * dwarf2out.c: Tear out backchaining brain damage.
9886         (remove_AT, remove_children): New functions.
9887         (modified_type_die): Call gen_type_die instead of backchaining.
9888         (gen_subprogram_die): Don't generate a new specification DIE for 
9889         member functions defined in the class; use the declaration DIE instead.
9890         (gen_struct_or_union_type_die): Support DW_AT_declaration.
9891         (gen_type_die): Don't set TREE_ASM_WRITTEN on incomplete structs.
9892         (gen_decl_die): Revert previous change; it's much simpler to emit 
9893         the class from rest_of_type_compilation.
9894
9895 Fri Oct  4 09:54:21 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
9896
9897         * Make sure we have enough registers for the insns we recognize.
9898         * i386.h (flag_omit_frame_pointer, outer_function_chain): Declare.
9899         (current_function_calls_alloca): Likewise
9900         (rtx_equal_function_value_matters): Likewise
9901         (N_REGS_USED, N_ALLOCATABLE_REGISTERS): Define.
9902
9903         * i386.md (adddi3_1, subdi3_1): Insns renamed from adddi3 and subdi3;
9904         added missing earlyclobbers.
9905         (adddi3_1): Removed duplicates from commutativity.
9906         (adddi3, subdi3): New define_expands.
9907         (movsf, movsf_mem, movsf_normal, movdf, movdf_mem , movdf_mem+1): Take
9908         number of used vs. available registers into account.
9909         (movxf, movxf_mem, movxf_mem+1, addsidi3_1, addsidi3_2): Likewise.
9910         (adddi3_1, subsidi3, subdi3_1): Likewise.
9911         (addsidi3_1, addsidi3_2, subsidi3): Need no generate function.
9912
9913         * i386.c (asm_output_function_prefix): Don't use
9914         ASM_DECLARE_FUNCTION_NAME if it is not defined.
9915
9916 Fri Oct  4 07:01:55 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
9917
9918         * stor-layout.c (layout_decl): Don't turn off DECL_BIT_FIELD
9919         if DECL's alignment is less than its type.
9920
9921 Thu Oct  3 19:42:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
9922
9923         * toplev.c (rest_of_type_compilation): Also do this for DWARF.
9924         (compile_file): Don't try to write out DWARF for vars with no RTL.
9925
9926 Thu Oct  3 18:31:28 1996  Doug Evans  <dje@cygnus.com>
9927
9928         * ginclude/{stdarg.h,varargs.h}: Use #include "", not #include <>.
9929
9930 Wed Oct  2 17:29:53 1996  Ian Lance Taylor  <ian@cygnus.com>
9931
9932         * fixincludes: Add a hack to the big sed script to work around a
9933         bug in the sed implementation on HP/UX 10.20.
9934
9935 Wed Oct  2 16:53:56 1996  Jason Merrill  <jason@yorick.cygnus.com>
9936
9937         * dwarf2out.c (modified_type_die): Don't generate redundant DIEs.
9938         (gen_{array,pointer,reference,ptr_to_mbr}_type_die): Likewise.
9939         (gen_{subroutine,string,set}_type_die): Likewise.
9940
9941         * dwarf2out.c: Undo text_end_label, add_src_coords changes.
9942         (addr_const_to_string): Fix typos.
9943         (decl_class_context, get_AT_unsigned): New functions.
9944         (gen_subprogram_die): Only emit src coords info for a specification
9945         if they changed.
9946         (gen_variable_die): Support DW_AT_declaration and DW_AT_specification.
9947         (gen_decl_die): Avoid generating redundant DIEs for member functions
9948         and variables.
9949
9950 Wed Oct  2 11:22:50 1996  Jeffrey A Law  (law@cygnus.com)
9951
9952         * pa.h (EXTRA_CONSTRAINT): Loosen conditions for match of
9953         'Q' and 'T' while reload is running.
9954         * pa.c (hppa_legitimize_address): Rework to generate more
9955         indexed and scaled indexed addressing.
9956         * pa.md (scaled indexed store): Add define_splits to undo
9957         pessimizations created by hppa_legitimize_address for integer stores.
9958
9959         * pa.c (remove_useless_addtr_insns): New function.
9960         (pa_reorg): Delete code to remove useless add,tr insns.
9961         Instead call remove_useless_addtr_insns.
9962         (output_function_prologue): Call remove_useless_addtr_insns
9963         to catch any add,tr insns created by reorg.
9964
9965         * pa.c (secondary_reload_class): Remove duplicate/useless code.
9966
9967         * pa.h (PARSE_LDD_OUTPUT): Handle output from hpux10.20 "chatr".
9968
9969 Tue Oct  1 17:23:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
9970
9971         * dwarf2out.c (text_end_label): New static.
9972         (size_of_line_info): The final entry is smaller.
9973         (output_aranges): Use TEXT_SECTION instead of TEXT_BEGIN_LABEL and
9974         text_end_label instead of TEXT_END_LABEL.
9975         (gen_compile_unit_die): Likewise.
9976         (output_line_info): Likewise.  Use a fixed advance for the last entry.
9977         (dwarfout_init): Don't output starting labels.
9978         (dwarfout_finish): Set up text_end_label.  Don't output ending labels.
9979
9980         (add_pure_or_virtual_attribute): Don't say pure virtual for now.
9981         (type_tag): Handle C++ TYPE_NAME.
9982         (gen_formal_parameter_die): Support DW_AT_artificial.
9983         (gen_formal_types_die): Do emit the type for 'this'.
9984         (gen_member_die): Fix handling of TYPE_METHODS.
9985         (gen_decl_die): Do output a DIE for member function declarations.
9986         Don't output a DIE for artificial typedefs.
9987
9988         (add_member_attribute): Remove, not in DWARF-II.
9989         (gen_array_type_die): Remove ref to add_member_attribute.
9990         (gen_set_type_die, gen_entry_point_die, gen_enumeration_type_die,
9991         gen_subprogram_die, gen_variable_die, gen_field_die,
9992         gen_pointer_type_die, gen_reference_type_die, gen_ptr_to_mbr_type_die,
9993         gen_string_type_die, gen_struct_or_union_type_die,
9994         gen_subroutine_type_die, gen_typedef_die): Likewise.
9995
9996         (get_AT_flag): New fn.
9997         (add_src_coords_attributes): Split out...
9998         (add_name_and_src_coords_attributes): From here.
9999         (gen_subprogram_die): Support DW_AT_declaration and 
10000         DW_AT_specification. 
10001
10002         (gen_compile_unit_die): Don't emit full pathname for source file; 
10003         comment claimed that SGI required it, but they don't emit it either.
10004         Append -g to producer rather than replacing it.
10005
10006 Tue Oct  1 14:19:23 1996  Jim Wilson  <wilson@cygnus.com>
10007
10008         * gcc.c (used_arg): When call xmalloc for mswitches, pass 1 if
10009         n_switches is zero.
10010
10011 Mon Sep 30 17:46:26 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
10012
10013         * sh.c (gen_shl_and, gen_shl_sext): Use gen_lowpart to
10014         generate rtx in the appropriate mode for zero/sign-extension.
10015         Don't generate a zero bit shift.
10016         (gen_shl_sext) Directly use gen_ashift instead of gen_ashrsi3.
10017
10018 Mon Sep 30 17:17:56 1996  Ian Lance Taylor  <ian@cygnus.com>
10019
10020         * fixinc.svr4: In math.h, redefine exception to __math_exception
10021         for C++, to avoid conflict with <exception>.
10022         * fixincludes: Likewise.
10023         Fix check for class in math.h to not match fp_class.
10024
10025 Mon Sep 30 17:15:19 1996  Jim Wilson  <wilson@cygnus.com>
10026
10027         * iris6.h (ASM_SPEC): Add -w.
10028         (STARTFILE_SPEC): Add mips3 to n32 pathnames.
10029         Add -L/usr/lib32/mips for n32 cases.
10030         (ENDFILE_SPEC): Add mips3 to n32 pathnames.
10031
10032 Mon Sep 30 13:20:31 1996  Ian Lance Taylor  <ian@cygnus.com>
10033
10034         * genopinit.c (gen_insn): Look through the modes in reverse order,
10035         to avoid stopping early on CC when EXTRA_CC_MODES is used.
10036
10037         * fixincludes: Add extern "C" to <sys/mman.h> on HP/UX.
10038
10039 Sun Sep 29 12:39:18 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10040
10041         * c-typeck.c (pointer_diff): Do not do default conversions when
10042         doing the minus expression, in case restype is a short type.
10043
10044 Sun Sep 29 11:22:10 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10045
10046         * tree.c (build_complex): Add new argument, TYPE.
10047         * tree.h (build_complex): Likewise.
10048         * c-lex.c (yylex): Add new arg, TYPE, to call to build_complex.
10049         * fold-const.c (const_binop): Likewise.
10050         (fold, case CONJ_EXPR, COMPLEX_EXPR): Likewise.
10051         * varasm.c (copy_constant, case COMPLEX_CST): Likewise.
10052         * expr.c (expand_expr, case COMPONENT_REF): Don't try to directly
10053         load a complex.
10054         * recog.c (register_operand): Don't reject subreg of complex mode.
10055         * emit-rtl.c (mark_user_reg): New function.
10056         * function.c (assign_parms): Use it.
10057         * stmt.c (expand_decl): Likewise, and simplify code.
10058
10059         * tree.c (contains_placeholder): Return 1 for PLACEHOLDER_EXPR.
10060
10061         * expr.c (store_expr): memset/bzero gets ptr_mode, not Pmode.
10062
10063         * stmt.c (expand_asm_operands): Fix errors in previous patches.
10064
10065         * x-linux: Simplify, but ensure headers aren't changed.
10066
10067         * getpwd.c: No longer include direct.h for _WIN32.
10068
10069         * configure (i[3456]86-*-isc*): Remove bogus echo.
10070         (m68k-apple-aux*): a-ux.h renamed from aux.h.
10071         (CC): Escape "$" char in "no-symlink" case for bash/cygwin32 bug.
10072
10073         * Makefile.in (installdirs): Renamed from install-dir.
10074         Create $(prefix) and $(exec_prefix) if doesn't exist.
10075         (install-float): Reflect new name for installdirs.
10076         (install-{common,info,man,libgcc,multilib,libobjc}): Likewise.
10077         (install-{include-dir,assert-h,collect2}): Likewise.
10078
10079         * reload1.c (gen_reload): Handle SUBREG in PLUS specially too.
10080         Change calls to emit_move_insn to recursive calls.
10081
10082         * stmt.c (fixup_gotos): When running undefined labels, if no cleanup
10083         actions for this block, don't clear BEFORE_JUMP.
10084
10085 Fri Sep 27 13:48:21 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10086
10087         * c-decl.c (init_decl_processing): Create short int types before
10088         creating size_t in case a machine description needs to use
10089         unsigned short for size_t.
10090
10091 Fri Sep 27 12:28:54 1996  Stan Cox  <coxs@dg-rtp.dg.com>
10092
10093         * gcc.c (do_spec_1): Allow -A in %[Spec].
10094         
10095         * i386.h (CPP_CPU_SPEC): New. Added for defining the submodel.
10096
10097         * i386.c (asm_output_function_prefix, function_prologue,
10098         ix86_expand_prologue): Make the routine that sets the GOT (when pic
10099         is enabled) a function, to assist debugging.
10100
10101         * i386.md (gen_prologue_get_pc): Call the function created above.
10102         (divdf3): Added. 
10103         
10104         * i386/dgux.h (CPP_PREDEFINES, CPP_SPEC): Reference CPP_CPU_SPEC.
10105         Use svr4 assembler directive .backalign instead of .align.  
10106         (align to x bytes if it takes no more than y bytes to do so.)
10107
10108         * i386/{aix386ng.h,dgux.h} (CPP_SPEC): Use %[cpp_cpu].
10109         * i386/{freebsd-elf,gas,isc,linux-aout}.h: Likewise.
10110         * i386/{linux-oldld,linux,osfelf,osfrose,sco,sco4}.h: Likewise.
10111         * i386/{sco4dbx,sco5,sol2,sysv3}.h: Likewise.
10112
10113 Thu Sep 26 17:58:34 1996  Torbjorn Granlund  <tege@matematik.su.se>
10114
10115         * m68k.md (mulsidi3 matcher): Change predicate const_int_operand
10116         to const_sint32_operand.  Get rid of bogus range condition.
10117
10118 Thu Sep 26 17:12:00 1996  Jim Wilson  <wilson@cygnus.com>
10119
10120         * Makefile.in (stmp-int-hdrs): Don't cd to srcdir before copying
10121         header files to objdir.
10122
10123 Wed Sep 25 21:22:57 1996  Jeffrey A Law  (law@cygnus.com)
10124
10125         * h8300.h (FIRST_PSEUDO_REGISTER, ARG_POINTER_REGNUM): Bump up by one.
10126         (FIXED_REGISTERS): Add entry for MAC register.
10127         (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
10128         (HARD_REGNO_NREGS): Handle MAC register.
10129         (HARD_REGNO_MODE_OK, REGNO_OK_FOR_BASE_P, REGISTER_NAMES): Likewise.
10130         (enum reg_class): New MAC_REGS register class.
10131         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Corresponding changes.
10132         (REG_CLASS_FROM_LETTER): Likewise.
10133         (REGISTER_MOVE_COST): Make copies to/from MAC register expenseive.
10134         (CONDITIONAL_REGISTER_USAGE): Define.
10135         * h8300.md (movsi_h8300hs): Renamed from movsi_h8300h.
10136         Handle moves to/from the MAC register.
10137         (mac): Two new patterns to use the mac instruction.
10138
10139         * h8300.c (notice_update_cc): Fix CC_SET case.
10140         (restore_compare_p): Remove unused function.
10141         * h8300.md: Handle "set" vs "set_zn_c0" correctly.
10142         (bCC patterns): No longer need to call restore_compare_p.
10143
10144         * h8300.c (get_shift_alg): Fix HImode ASHIFTRT by 13 or 14 bits.
10145
10146 Wed Sep 25 18:52:19 1996  Joern Rennecke <amylaar@cygnus.co.uk> 
10147
10148         * sh.md (insv): New pattern.
10149
10150 Wed Sep 25 16:47:26 1996  Doug Evans  <dje@seba.cygnus.com>
10151
10152         * sparc/t-sunos41 (MULTILIB_{OPTIONS,DIRNAMES,MATCHES}): Create
10153         multilib versions of -fpic and -fPIC.
10154         (TARGET_LIBGCC2_CFLAGS): Comment out.
10155
10156         * sparc.c (print_operand): Handle new codes H/L.
10157         * sparc.md (lo_sum_di_sp32): Add little endian support.
10158         (adddi3_sp32,subdi3_sp32,mulsidi3_sp32,const_mulsidi3): Likewise.
10159         (umulsidi3_sp32,const_umulsidi3,smacdi,umacdi,anddi3_sp32): Likewise.
10160         (iordi3_sp32,xordi3_sp32,negdi2_sp32): Likewise.
10161
10162 Wed Sep 25 15:32:35 1996  Jim Wilson  <wilson@cygnus.com>
10163
10164         * expmed.c (store_bit_field): Don't make flag_force_mem disable insv
10165         for memory operands.
10166         
10167         * function.c (instantiate_decl): Always store addr back into x.
10168
10169 Tue Sep 24 19:37:00 1996  Jim Wilson  <wilson@cygnus.com>
10170
10171         * reload.c (push_secondary_reload): Do strip paradoxical SUBREG
10172         even if reload_class is CLASS_CANNOT_CHANGE_SIZE.  Change reload_mode
10173         to mode in SECONDARY_MEMORY_NEEDED and get_secondary_mem calls.
10174
10175         * reload1.c (emit_reload_insns): For output part of RELOAD_OTHER,
10176         emit after RELOAD_FOR_OUTPUT, in reverse order of reload number,
10177         but not separately.
10178
10179 Tue Sep 24 18:13:07 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10180
10181         * expr.c (emit_group_load): Allow target to be smaller than source.
10182
10183 Tue Sep 24 17:40:39 1996  Doug Evans  <dje@cygnus.com>
10184
10185         * m68k/a-ux.h: Renamed from aux.h because of MSDOS.
10186
10187 Tue Sep 24 08:33:53 1996  David S. Miller  (davem@caip.rutgers.edu)
10188
10189         * tree.c (copy_node): Fix error in last change.
10190
10191 Tue Sep 24 08:29:03 1996  James G. Smith  <jsmith@cygnus.co.uk>
10192
10193         * gcc.c (used_arg): Fix multilib_matches parsing to not corrupt
10194         entry parameter.
10195
10196 Tue Sep 24 08:22:18 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
10197
10198         * loop.c (get_condition): Use rtx_equal_p to compare rtx.
10199
10200 Tue Sep 24 08:14:01 1996  Christian Iseli  <Christian.Iseli@lslsun.epfl.ch>
10201
10202         * integrate.c (expand_inline_function): Avoid creating paradoxical
10203         subreg wider than BITS_PER_WORD as inlined function result.
10204
10205 Tue Sep 24 08:00:15 1996  Paul Eggert  <eggert@twinsun.com>
10206
10207         * cccp.c (struct directive, directive_table, handle_directive):
10208         pass_thru now 1 for #define and 2 for #pragma.
10209         (handle_directive): When deciding whether to suppress comment at end
10210         of directive, ignore tabs and spaces after comment.  Remove redundant
10211         limit test.  With -dD -C, copy comment when isolating definition.
10212         (skip_to_end_of_comment): With -C, don't copy newline at end
10213         of C++ comment.
10214
10215         * fixinc.ptx, fixinc.svr4, fixincludes: Insert newlines just before
10216         end of 'sed' command strings if last 'sed' command is 'a' or 'i'.
10217
10218 Tue Sep 24 07:28:58 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10219
10220         * toplev.c (PREFERRED_DEBUGGING_TYPE): If no debugging formats are
10221         supported, set to NO_DEBUG.
10222         (main): Don't do setting of PREFERRED_DEBUGGING_TYPE here.
10223
10224 Mon Sep 23 22:45:15 1996  Sean McNeil  <sean@mcneil.com>
10225
10226         * rs6000/vxppc.h, sparc/vxsim.h: New files.
10227         * configure (powerpc-*-vxworks*, sparc-*-vxsim*): New targets.
10228         * objc/objc.h (BOOL): Define BOOL as int for VxWorks.
10229
10230 Mon Sep 23 21:23:27 1996  Klaus K"ampf  (kkaempf@progis.de)
10231
10232         * explow.c (promote_mode, case REFERENCE_TYPE): New case.
10233
10234 Mon Sep 23 21:15:43 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10235
10236         * c-decl.c (finish_struct): Check PCC_BITFIELD_TYPE_MATTERS value.
10237
10238         * dbxout.c (dbxout_symbol): Fix forgotten case in last change:
10239         check DECL_ARTIFICIAL also when using the short cut way.
10240
10241 Mon Sep 23 15:55:24 1996  David S. Miller  (davem@caip.rutgers.edu)
10242
10243         * tree.c (copy_node): Abort if don't know size of node.
10244
10245         * tree.c (build1): Clean up initialization of OBSTACK.
10246
10247 Mon Sep 23 15:35:33 1996  Jason Merrill  <jason@yorick.cygnus.com>
10248
10249         * Makefile.in (stmp-multilib): Depend on $(LANG_LIB2FUNCS).
10250
10251         * dbxout.c (dbxout_function): Don't check DECL_SECTION_NAME before
10252         calling dbxout_function_end.
10253
10254 Mon Sep 23 14:41:12 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
10255
10256         * combine.c (can_combine_p): Even if SMALL_REGISTER_CLASSES,
10257         know lifetime not extended if all_adjacent set.
10258
10259         * stmt.c (expand_asm_operands): Handle '+' constraint.
10260         * cse.c (fold_rtx): Fold inside ASM_OPERANDS.
10261
10262         * expr.c (expand_increment): If postincrement for MEM can't use add
10263         directly, load address in reg and enqueue increment and store of reg.
10264
10265         * loop.c (check_dbra_loop): Don't assume label must be second part of
10266         if_then_else in condjump.
10267
10268         * jump.c (jump_optimize): In no-nop move deletion, don't test
10269         PRESERVE_DEATH_INFO_REGNO_P; instead test if optimization is performed.
10270         Check for REG_UNUSED note on to-be deleted insn before searching for
10271         preceding instruction to delete note from.
10272         If PRESERVE_DEATH_INFO_REGNO_P is true for SREG, replace INSN with USE.
10273
10274         * reload1.c (reload): Initialize the previous_offset fields
10275         in reg_eliminate before calling setup_save_areas.
10276
10277         * reload1.c (emit_reload_insns): Declare and set this_reload_insn.
10278
10279         * expr.c (var_rtx): New function.
10280         (expand_expr, case COND_EXPR): Also use target if same as singleton.
10281
10282 Mon Sep 23 14:22:34 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10283
10284         * recog.c (constrain_operands): Don't test clobbered constraints.
10285
10286         * reload1.c (emit_reload_insns): For output part of RELOAD_OTHER,
10287         put in front of anything previous for that output, but not separately.
10288
10289 Sun Sep 22 21:06:46 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10290
10291         * c-common.c (decl_attribtes, case A_SECTION): Allow for static
10292         local variable.
10293
10294 Sun Sep 22 11:30:27 1996  Christian Iseli  (christian.iseli@di.epfl.ch)
10295
10296         * expr.c (convert_move): Replace explicit checks for FP extend ops
10297         with use of can_extend_p.
10298         Add missing tests for FP trunc operations.
10299
10300 Sun Sep 22 11:20:02 1996  Pat Rankin  <rankin@eql.caltech.edu>
10301
10302         * dwarfout.c (DWARF_VERSION): Define as 1 if not already defined.
10303         * dwarf2out.c (DWARF_VERSION): Likewise.
10304
10305 Sun Sep 22 11:12:20 1996  Joern Rennecke <amylaar@cygnus.co.uk>
10306
10307         * c-decl.c (pushdecl): Check new declaration actually conflicts before
10308         warning about implicit external vs. static declarations.
10309
10310         * loop.c (combine_givs): Improve combining DEST_REG giv with only use.
10311
10312 Sun Sep 22 10:50:03 1996  Scott Christley <scottc@net-community.com>
10313
10314         * Create consistent mechanism for memory allocation and release
10315         so that garbage collection routines can be easily subsititued
10316         for the ANSI standard malloc, realloc, free, etc.
10317         * objc/archive.c: Replace use of __objc_xmalloc and free 
10318         with objc_malloc and objc_free.
10319         * objc/hash.c: Replace use of __objc_xcalloc and free
10320         with objc_calloc and objc_free.
10321         * objc/init.c: Replace use of free with objc_free.
10322         * objc/misc.c (objc_malloc): Renamed from __objc_xmalloc.
10323         (objc_realloc): Renamed from __objc_realloc.
10324         (objc_atomic_malloc, objc_valloc): New functions.
10325         (objc_calloc): Renamed from __objc_calloc.
10326         (objc_free): New function.
10327         * objc/objc-api.h (_objc_malloc): New function pointer.
10328         (_objc_atomic_malloc, _objc_valloc): Likewise.
10329         (_objc_realloc, _objc_calloc, _objc_free): Likewise
10330         * objc/objc-list.h: Replace use of __obj_xmalloc and free
10331         with objc_malloc and objc_free.
10332         * objc/objects.c: Likewise.
10333         * objc/sarray.c: Replace use of __objc_xmalloc and free
10334         with objc_malloc and objc_free.
10335         * objc/sarray.h (__objc_xmalloc, __objc_xrealloc): Delete.
10336         * objc/selector.c: Replace use of __objc_xcalloc, __objc_xrealloc,
10337         and __objc_xmalloc with objc_calloc, objc_realloc, and objc_malloc.
10338         * objc/thr-decosf1.c: Replace use of __objc_xmalloc and free
10339         with objc_malloc and objc_free.
10340         * objc/thr-irix.c, objc/thr-mach.c, objc/thr-os2.c: Likewise.
10341         * objc/thr-posix.c, objc/thr-pthreads, objc/thr-single: Likewise.
10342         * objc/thr-solaris.c, objc/thr-win32.c, objc/thr.c: Likewise.
10343
10344 Sun Sep 22 05:26:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
10345
10346         * configure: Set up LANG_LIB2FUNCS and LANG_EXTRA_HEADERS.
10347         * Makefile.in (libgcc2.a): Include LANG_LIB2FUNCS.
10348         (USER_H): Add LANG_EXTRA_HEADERS.
10349         (LANG_LIB2FUNCS): New macro.
10350         (LANG_EXTRA_HEADERS): New macro.
10351         (stmp-int-hdrs): Don't hardwire ginclude.
10352         (stamp-objlist): Don't depend on Makefile.
10353
10354 Sat Sep 21 18:00:10 1996  Stephen L Moshier  (moshier@world.std.com)
10355
10356         * alpha.md (alpha_swapped_comparison_operator pattern): Fix asm
10357         operand typo in last change.
10358
10359 Sat Sep 21 07:11:51 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
10360
10361         * defaults.h (ASM_OUTPUT_LABELREF): Provide default definition
10362         if not already defined.
10363         * 1750a.h (USER_LABEL_PREFIX): Define instead of ASM_OUTPUT_LABELREF.
10364         * a29k.h, alpha.h, convex.h, dsp16xx.h, elxsi.h, fx80.h: Likewise.
10365         * gmicro.h, h8300.h, i386/sun386.h, i860.h, i960.h, ns32k.h: Likewise.
10366         * pdp11.h, pyr.h, romp.h, sh.h, sparc.h, spur.h, tahoe.h: Likewise.
10367         * vax.h, we32k.h: Likewise.
10368         * i386/att.h (USER_LABEL_PREFIX): Redefine, not ASM_OUTPUT_LABELREF.
10369         * i386/bsd.h, i386/lynx.h, i386/sco5.h, i860/fx2800.h: Likewise.
10370         * m68k/3b1.h, m68k/mot3300.h, m68k/tower-as.h, m68k/tower.h: Likewise.
10371         * ptx4.h, sparc/pbd.h, svr3.h, svr4.h: Likewise.
10372         * i386/osfrose.h, m88k.h (USER_LABEL_PREFIX): Redefine.
10373         * nextstep.h (USER_LABEL_PREFIX): Redefine.
10374         (ASM_OUTPUT_LABELREF) Use USER_LABEL_PREFIX.
10375         * arm/aout.h, mips.h (ASM_OUTPUT_LABELREF): Delete.
10376         * rs6000/lynx.h (USER_LABEL_PREFIX): Undefine.
10377         * rs6000.h, rs6000/win-nt.h (USER_LABEL_PREFIX): Define.
10378
10379 Thu Sep 19 00:05:53 1996  Jason Merrill  <jason@yorick.cygnus.com>
10380
10381         * configure: Move i[3456]86-*-gnu* case after linux and don't
10382         treat linux-gnu like other gnu systems.
10383
10384 Wed Sep 18 20:51:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
10385
10386         * cplus-dem.c (demangle_template): Fix handling of address args.
10387         (gnu_special): Handle type_info stuff.
10388
10389 Wed Sep 18 17:57:55 1996  Patrik Lantto (patrik@opq.se)
10390
10391         * jump.c (jump_optimize): Insert conditional move after jump
10392         insn instead of before. 
10393
10394 Wed Sep 18 17:33:36 1996  Richard Henderson  <rth@tamu.edu>
10395
10396         * alpha.h (PREDICATE_CODES): Add alpha_swapped_comparison_operator.
10397         * alpha.c (alpha_swapped_comparison_operator): New function.
10398         (print_operand): Support unsigned codes for %D, %c, and %d.
10399         * alpha.md: Add pattern for b%c with swapped comparisons with 0.
10400         Delete three unnamed cmp patterns that are strict subsets of it.
10401
10402         * alpha.c (alpha_emit_set_long_const): Save one instruction
10403         when -O2 and high word == low word.
10404
10405 Tue Sep 17 22:46:15 1996  Jason Merrill  <jason@yorick.cygnus.com>
10406
10407         * i386/unix.h (ASM_OUTPUT_MI_THUNK): Handle functions
10408         returning an aggregate.
10409
10410         * varasm.c (supports_one_only): New function.
10411         (make_decl_one_only): Likewise.
10412         * svr4.h (MAKE_DECL_ONE_ONLY): Define.
10413         * tree.h (DECL_ONE_ONLY): New macro.
10414
10415         * varasm.c (assemble_variable): Fix setting of
10416         first_global_object_name.
10417         (assemble_start_function): Likewise.
10418
10419 Tue Sep 17 19:42:39 1996  Doug Evans  <dje@wabamun.cygnus.com>
10420
10421         * i386/t-cygwin32 (winnt.o): Compile properly.
10422
10423 Tue Sep 17 15:47:20 1996  Ian Lance Taylor  <ian@cygnus.com>
10424
10425         * Add support for R5000, and finish MIPS4 support.
10426         * mips.h (enum processor_type): Add PROCESSOR_R5000.
10427         (gen_conditional_move): Declare.
10428         (CONDITIONAL_REGISTER_USAGE): Mark ST_REGS as fixed if not
10429         HARD_FLOAT, or if mips_isa < 4.
10430         (FIRST_PSEUDO_REGISTER): Change to 76.
10431         (FIXED_REGISTERS): Add condition code registers.
10432         (CALL_USED_REGISTERS): Likewise.
10433         (ST_REG_LAST): Change to 74.
10434         (RAP_REG_NUM): Change to 75.
10435         (ST_REG_P): Look for any condition code register.
10436         (REG_CLASS_CONTENTS): Update for new condition code registers.
10437         (RTX_COSTS): Add cases for R5000.
10438         (REGISTER_MOVE_COST): Add cases for condition code registers.
10439         (PREDICATE_CODES): Add "const_float_1_operand".
10440         (EXTRA_CC_{MODES,NAME}, SELECT_CC_MODE): Remove.
10441         (REGISTER_NAMES): Add entries for new condition code registers.
10442         (DEBUG_REGISTER_NAMES): Likewise.
10443         (ADDITIONAL_REGISTER_NAMES): Remove FPSW_REGNUM.
10444         * mips.md (cpu attribute): Add R5000.
10445         (function units): Add cases for the R5000.
10446         ({madd,msub,nmadd,nmsub}.d): Only available if TARGET_DOUBLE_FLOAT.
10447         (recip.d, recip.s, rsqrt.d, rsqrt.s): New define_insn patterns.
10448         (movcc): New pattern to move condition code values.
10449         (reload_incc, reload_out_cc): New define_expand patterns.
10450         (lwxc1, ldxc1, swxc1, sdxc1): Several new define_insn patterns.
10451         (various): Replace CC_FP with CC.
10452         (branch_fp_ne, branch_fp_eq): Match any condition code register.
10453         (branch_fp_ne_rev, branch_fp_eq_rev): Remove.
10454         (seq_df, slt_df, sle_df): Match any condition code register.
10455         (sgt_df, sge_df, seq_sf, slt_sf, sle_sf, sgt_sf, sge_sf): Likewise.
10456         (sne_df, sne_sf): Remove.
10457         (FP conditional moves): Match any condition code register.
10458         Require TARGET_HARD_FLOAT and, if appropriate, TARGET_DOUBLE_FLOAT.
10459         (movsicc): Just call gen_conditional_move.
10460         (movdicc, movsfcc, movdfcc): New define_expand patterns.
10461         * mips.c (mips_reg_names): Add condition code registers.
10462         (mips_sw_reg_names, mips_regno_to_class): Likewise.
10463         (const_float_1_operand): New function.
10464         (mips_move_1word): Treat CCmode as SImode.  Handle move from
10465         ST_REG to GR_REG if mips_isa >= 4.  Only permit move from GR_REG
10466         to ST_REG is mips_isa < 4.
10467         (gen_conditional_branch): Rewrite.  Just use CCmode, not extra
10468         condition modes.
10469         (gen_conditional_move): New function.
10470         (override_options): Recognize vr5000.  Look for just CCmode, not
10471         extra condition modes.  If mips_isa >= 4, permit CCmode in GR_REGS
10472         and FP_REGS.
10473         (print_operand): Handle %Z.
10474         (mips_secondary_reload_class): Require a data register to copy a
10475         value out of a condition code register.  Require a floating point
10476         register to copy a value into a condition code register.
10477
10478 Tue Sep 17 15:10:29 1996  Joern Rennecke <amylaar@cygnus.co.uk>
10479
10480         * sh.md: New define_splits to recombine output from LEGITIMIZE_ADDRESS.
10481         * sh.h (LEGITIMIZE_ADDRESS): Typo fixes (x -> X).
10482
10483 Mon Sep 16 23:00:35 1996  Jim Wilson  <wilson@cygnus.com>
10484
10485         * configure (build_broken_install): Renamed from host_broken_install.
10486         Set from build not host.
10487         (build_install_headers): Renamed from host_install_headers.  Set from
10488         build not host.
10489
10490 Mon Sep 16 22:38:55 1996  Stu Grossman  (grossman@critters.cygnus.com)
10491
10492         * configure (m68k-*-coff*): Use dbx debug format by default.
10493         * gcc.c (link_command_spec): Move -T to end of link command line.
10494         * m68k/m68kemb.h (LINK_SPEC, SUBTARTGET_SWITCHES): Delete.
10495         (LIB_SPEC): Define to just -lc.
10496         (STARTFILE_SPEC): Define to empty.
10497
10498 Mon Sep 16 13:12:27 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
10499
10500         * sh.c (ext_shift_insns, ext_shift_amounts): New arrays.
10501         (gen_ashift_hi, gen_shifty_hi_op, shl_and_kind): New functions.
10502         (rtx_equal_function_value_matters): Declare.
10503         (shl_and_length, shl_and_src_length, gen_shl_and): New functions.
10504         (shl_sext_kind, shl_sext_length, gen_shl_sext): Likewise.
10505         * sh.md (ashlhi3_k, lshrhi3_m): New patterns.
10506         (lshrhi3, shl_sext_ext, shl_sext_sub):
10507         New insn patterns with matching define_split.
10508         (and_shl_scratch): Likewise, but also with unnamed variants.
10509
10510 Sat Sep 14 17:05:07 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10511
10512         * gcc.c (convert_filename): Don't start looking for '.' until
10513         after last directory separator.
10514
10515         * i386.md (clrstrsi): Correct check for constant size.
10516
10517         * Based on code by sac@cygnus.com.
10518         * i386/cygwin32.h (CHECK_STACK_LIMIT): Make consistent with MD file.
10519         * i386.c ({function,ix86_expand}_prologue): Use __alloca to allocate
10520         stack if desired and beyond CHECK_STACK_LIMIT in size.
10521         * i386.h ({MASK,TARGET}_STACK_PROBE): New macros.
10522         (TARGET_SWITCHES): Add -mstack-arg-probe.
10523         * i386.md (allocate_stack{,_worker}): New patterns.
10524
10525 Fri Sep 13 18:23:18 1996  Joel Sherrill <joel@OARcorp.com>
10526
10527         * sparc/lb1spc.asm (.div, .rem): Fixed typo so sign is returned
10528         correctly.  TOPBITS was 2 and should have been 4.
10529
10530 Thu Sep 12 21:51:56 1996  Jim Wilson  <wilson@cygnus.com>
10531
10532         * mips.md (call_value_multiple_internal0): Change from define_insn to
10533         define_expand.
10534
10535 Thu Sep 12 19:22:14 1996  Doug Evans  <dje@seba.cygnus.com>
10536
10537         * sparc.md (move_pic_label_si): Operand one is label_ref now.
10538         * sparc.c (emit_move_sequence): Pass label_ref to
10539         gen_move_pic_label_si to not lose flags.
10540
10541 Wed Sep 11 12:10:08 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10542
10543         * Makefile.in (GCC_PASSES): Add $(exeext) to names.
10544         (FLAGS_TO_PASS): Add CLIB.
10545         (c-pragma.o): Add dependencies on except.h, function.h, defaults.h.
10546
10547 Tue Sep 10 22:25:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10548
10549         * configure (i[3456]86-*-cygwin32): Use xm-cygwin32.h and xm-i386.h.
10550         Set fixincludes to Makefile.in and objc_thread_file to win32.
10551         * i386/xm-cywin32.h: Don't include xm-i386.h.
10552         * i386/x-cygwin32, rs6000/x-cygwin32 (STMP_FIXPROTO, exeext): New defs.
10553
10554         * gcc.c (HAVE_EXECUTABLE_SUFFIX): New macro.
10555         (convert_filename): New function.
10556         (process_command, case 'o'): Call it.
10557         (process_command, default case): Likewise; delete old code.
10558
10559 Tue Sep 10 21:08:43 1996  Torbjorn Granlund  <tege@albert.gnu.ai.mit.edu>
10560
10561         * i386.md (decrement_and_branch_until_zero matcher): Fix typo.
10562
10563 Tue Sep 10 19:04:19 1996  Jim Wilson  <wilson@cygnus.com>
10564
10565         * mips.c (mips_move_2words): Rewrite 32 bit shifts as 16 bit shifts.
10566
10567 Tue Sep 10 10:39:07 1996  Jeffrey A Law  (law@cygnus.com)
10568         
10569         * pa/pa-gas.h (DBX_DEBUGGING_INFO): Remove all #define
10570         and #undef statements related to debugging information.
10571         * pa/pa-hpux.h, pa-hpux7.h: Likewise
10572         * pa.c (override_options): Disable "-g" and issue a warning
10573         if it's used when !TARGET_GAS.
10574
10575 Mon Sep  9 17:57:49 1996  Doug Evans  <dje@wabamun.cygnus.com>
10576
10577         * sparc.h ({MASK,TARGET}_FPU_SET): Define.
10578         (TARGET_SWITCHES): Record if -m{,no-}fpu passed.
10579         * sparc.c (sparc_override_options): Don't clobber explicit
10580         -m{,no-}fpu setting with cpu default.
10581
10582 Mon Sep  9 15:57:57 1996  Joel Sherrill  <joel@OARcorp.com>
10583
10584         * configure (mips64orion-*-rtems*): New target.
10585         * mips/rtems64.h: New file.
10586
10587 Sat Sep  7 22:07:53 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10588
10589         * expr.c (store_field): If storing a record on big endian targets,
10590         set up so we store the high-order bits.
10591         (expand_expr, case COMPONENT_REF): Likewise for loads.
10592
10593 Thu Sep  5 14:59:47 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
10594
10595         * sh.h (LEGITIMIZE_ADDRESS): Define nonempty.
10596
10597 Thu Sep  5 10:43:36 1996  Jeffrey A Law  (law@cygnus.com)
10598
10599         * pa.md (mov{si,di,sf}): Handle 'R' constraints as needed.
10600
10601 Wed Sep  4 17:13:28 1996  Bob Manson  <manson@charmed.cygnus.com>
10602
10603         * except.c: (add_partial_entry): New routine.
10604         (expand_start_try_stmts): Moved from cp/except.c.
10605         (expand_start_all_catch): Move functionality of expand_end_try_stmts
10606         here.
10607
10608 Wed Sep  4 12:30:02 1996  Mike Stump  <mrs@cygnus.com>
10609
10610         * except.c (emit_unwinder): Ensure CLOBBER and USE insns come last,
10611         if present.
10612
10613 Tue Sep  3 12:01:43 1996  Ian Lance Taylor  <ian@cygnus.com>
10614
10615         * configure (sh-*-elf*): New target.
10616         * sh/elf.h: New file.
10617
10618 Fri Aug 30 17:52:26 1996  Jim Wilson  <wilson@cygnus.com>
10619
10620         * dwarf2out.c (gen_formal_types_die): Delete extra argument from
10621         gen_type_die call.
10622
10623 Fri Aug 30 15:40:40 1996  James G. Smith  <jsmith@cygnus.co.uk>
10624
10625         * mips/elf64.h: Allow MULTILIB_DEFAULTS to be defined
10626         before this file is included.
10627
10628 Fri Aug 30 15:00:06 1996  Stan Cox  <coxs@dg-rtp.dg.com>
10629
10630         * i386.md: (movsicc,movhicc): Allow reload from memory.
10631         
10632         * i386.c (override_options): Don't thread the prologue if profiling.
10633
10634 Fri Aug 30 15:00:06 1996  James Hawtin  <cgjwh@sunrise.co.uk>
10635         
10636         * i386/t-sol2 (gcrt1.o): Added for profiling Solaris 2
10637         * i386/sol2.h (STARTFILE_SPEC): New.
10638         * i386/gmon-sol2.c, i386/sol2-gc1.asm: New files.
10639         
10640 Thu Aug 29 22:08:03 1996  Jim Wilson  <wilson@cygnus.com>
10641
10642         * except.c (add_eh_table_entry): Multiply realloc size by sizeof int.
10643
10644 Thu Aug 29 15:15:31 1996  Jeffrey A Law  (law@cygnus.com)
10645
10646         * pa.md (fcmp patterns): Don't try to eliminate useless add,tr
10647         insns here.
10648         * pa.c (pa_reorg): Do elimination of useless add,tr insns here instead.
10649         (print_operand, case 'y'): Remove this code.
10650
10651 Wed Aug 28 16:19:34 1996  Doug Evans  <dje@cygnus.com>
10652
10653         * toplev.c (print_single_switch): Ultrix fprintf returns 0 for success.
10654
10655         * toplev.c (main): Rewrite -g parsing.
10656
10657 Mon Aug 26 16:15:49 1996  Fred Fish  <fnf@cygnus.com>
10658
10659         * Makefile.in (objc-parse.y): Fix typo in name of temp file.
10660
10661 Mon Aug 26 14:08:37 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10662
10663         * function.c (mark_all_temps_used): Fix error in last change.
10664
10665 Sun Aug 25 22:27:19 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10666
10667         * function.c (mark_all_temps_used): New function.
10668
10669 Fri Aug 23 11:34:57 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10670
10671         * rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Fixes to make -fPIC
10672         really the same as -mrelocatable.
10673         (ASM_SPEC): Pass -K PIC to the assembler if -fpic/-fPIC.
10674
10675         * rs6000/sol2.h (ASM_CPU_SPEC): Remove passing -K PIC to the
10676         assembler if -fpic/-fPIC.
10677
10678         * bi-{arity,opcode,opname}.c (fancy_abort): Define, so that
10679         -Dabort=fancy_abort works again.
10680
10681 Thu Aug 22 11:39:34 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10682
10683         * rs6000/t-ppcgas ({stmp,install}-crt): Only build and install the
10684         eabi ecrt[in].o object files in eabi multilib directories, only
10685         build and install the solaris scrt[in0].o object files in solaris
10686         directories.
10687         (MULTILIB_MATCHES): Remove matches for solaris, linux to other
10688         switches.
10689
10690 Tue Aug 20 18:49:55 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10691
10692         * rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): If -mrelocatable or
10693         -mrelocatable-lib, don't make read-only sections.
10694
10695 Mon Aug 19 18:42:13 1996  Doug Evans  <dje@cygnus.com>
10696
10697         * sparc.h ({MASK,TARGET}_LITTLE_ENDIAN): Define.
10698         (LIBGCC2_WORDS_BIG_ENDIAN): Add little endian support.
10699         * sparc/sp64-elf.h ({CPP,ASM,LINK}_SPEC): Add little endian support.
10700         (SUBTARGET_SWITCHES): Recognize -m{big,little}-endian.
10701         ({BYTES,WORDS}_BIG_ENDIAN): Likewise.
10702         * sparc/splet.h (SUBTARGET_SWITCHES): Recognize -m{big,little}-endian.
10703         ({CPP,ASM,LINK}_SPEC): Add little endian support.
10704         ({BYTES,WORDS}_BIG_ENDIAN): Likewise.
10705         * sparc/t-splet (MULTILIB_{OPTIONS,DIRNAMES}): Likewise.
10706
10707         * sparc/lynx-ng.h (CPP_SPEC): Use %(cpp_cpu).
10708
10709 Sat Aug 17 15:23:39 1996  Geoffrey Noer  <noer@cygnus.com>
10710
10711         * i386/cygwin32.h (CPP_PREDEFINES): Define _WIN32, not WIN32.
10712         Define only __CYGWIN32__, not CYGWIN32 or __CYGWIN32.
10713         * rs6000/cygwin32.h (CPP_PREDEFINES): Likewise.
10714         * cccp.c (absolute_filename): Drive specifiers make the pathname
10715         absolute in cygwin32.
10716         * choose-temp.c: Delete !defined(_WIN32) condition when including
10717         sys/file.h (NO_SYS_FILE_H is still used).
10718         * gcc.c: Change ifndef _WIN32 to ifndef NO_SYS_FILE_H when deciding
10719         whether to include sys/file.h.
10720         (execute): -pipe is supported for cygwin32.
10721         * getopt.c: Change win32 test from WIN32 to _WIN32.
10722         * pexecute.c: Update test for win32 (&& ! cygwin32).
10723         * protoize.c: Likewise.
10724         (kill): Delete decl.
10725         * toplev.c: Update test for win32 (&& ! cygwin32).
10726         * ginclude/stdarg.h: Change __WIN32__ to _WIN32.
10727         * ginclude/varargs.h: Likewise.
10728         * ginclude/va-ppc.h: Likewise.
10729
10730 Fri Aug 16 16:02:09 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10731
10732         * rs6000.c (rs6000_got_register): Make sure pic_offset_table_rtx
10733         allocated, even if current_function_uses_pic_offset_table set.
10734
10735 Fri Aug 16 15:56:04 1996  J. Kean Johnston  <hug@netcom.com>
10736
10737         * i386/sco5.h (CLASS_LIKELY_SPILLED_P): Deleted.
10738         (STARTFILE_SPEC): Insert crtbegin.o in correct place, and correct
10739         versions of values-X?.o.
10740         (SWITCH_TAKES_ARG): Extend DEFAULT_SWITCH_TAKES_ARG, not replace.
10741         (CPP_SPEC): Add -Di386, and correctly include extra directories.
10742         Define HAVE_ATEXIT in ELF mode for global destructors.
10743
10744 Thu Aug 15 16:42:44 1996  Doug Evans  <dje@cygnus.com>
10745
10746         * sparc.c (label_ref_operand): New function.
10747         (emit_move_sequence): Pass label_ref to gen_move_label_di to not
10748         lose flags.
10749         * sparc.md (move_label_di): Operand one is label_ref now.
10750         * genattrtab.c (write_test_expr): Allow label_ref in match_dup.
10751
10752         * sys-protos.h (gethostid): Make return type `int' ifdef __alpha__.
10753         * gen-protos.c: Delete support for SYS_PROTO_OVERRIDES.
10754         * alpha.h (SYS_PROTO_OVERRIDES): Delete.
10755
10756 Thu Aug 15 17:36:09 1996  Mike Stump  <mrs@cygnus.com>
10757
10758         * libgcc2.c (__throw): New routine.
10759         (__eh_pc): New data object for exception handling.
10760
10761         * except.c (eh_saved_pc): New object so we can call
10762         assemble_external.
10763         (expand_internal_throw_indirect): Call assemble_external for __eh_pc.
10764         (end_eh_unwinder): Likewise.
10765         (init_eh): Initialize eh_saved_pc.
10766
10767 Thu Aug 15 13:02:42 1996  Mike Stump  <mrs@cygnus.com>
10768
10769         * arm.h (RETURN_ADDR_RTX): Define.
10770
10771         * expr.c (expand_builtin_return_addr): Fix order of parameters.
10772
10773 Wed Aug 14 19:48:00 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
10774
10775         * stmt.c (expand_return): In code for doing scc with jumps,
10776         stick to default handling if we have corresponding scc pattern.
10777
10778 Wed Aug 14 10:31:28 1996  Jeffrey A Law  (law@cygnus.com)
10779
10780         * pa.c (override_options): Treat TARGET_FAST_INDIRECT_CALLS
10781         just like TARGET_NO_SPACE_REGS.
10782         (output_millicode_call): Likewise.
10783         * pa.h (TARGET_FAST_INDIRECT_CALLS): Define.
10784         (TARGET_SWITCHES): Add "fast-indirect-calls".
10785         * pa.md (TARGET_FAST_INDIRECT_CALLS): Treat just like
10786         TARGET_NO_SPACE_REGS in various call/millicode call patterns.
10787
10788         * pa.c (print_operand): Use the right comparison operator
10789         for reversed EQ and NE comparisons.
10790
10791         * pa.h (OUTPUT_MI_THUNK): Define.
10792
10793 Wed Aug 14 11:40:49 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10794
10795         * ginclude/va-ppc.h: Add Windows NT support.
10796         * ginclude/{varargs,stdarg}.h: For PowerPC Windows NT, include
10797         va-ppc.h, instead of using the default handling.
10798
10799 Tue Aug 13 18:30:10 1996  Ian Lance Taylor  <ian@cygnus.com>
10800
10801         * fixincludes: Remove duplicate volatile from sig_atomic_t in AIX
10802         sys/signal.h
10803
10804 Tue Aug 13 16:51:37 1996  Jim Wilson  <wilson@cygnus.com>
10805
10806         * i960-coff.h (LIB_SPEC): Undef.
10807
10808         * sh.h (PROFILE_BEFORE_PROLOGUE): Define.
10809
10810 Tue Aug 13 11:36:02 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10811
10812         * gcc.c (set_spec,process_command): Dump and load the compiler
10813         version number in the specs file.
10814
10815         * rs6000.c (output_toc): Fix last change, so that it doesn't use
10816         an uninitialized variable if -mminimal-toc.
10817         (output_prolog): Increment probe_labelno after last use.
10818
10819         * rs6000/t-ppcgas (MULTILIB_*): Build far fewer multilib
10820         libraries.  Build all libraries with -mrelocatable-lib and
10821         -mno-eabi.  Build special GNU/Linux and Solaris libraries.
10822         * rs6000/eabi{,aix,le}.h (MULTILIB_DEFAULTS): Adapt to changes in
10823         t-ppcgas.
10824         * rs6000/(linux,sol2,sysv4,sysv4le).h (MULTILIB_DEFAULTS): Likewise.
10825
10826 Tue Aug 13 11:36:02 1996  Jeffrey A Law  (law@cygnus.com)
10827
10828         * rs6000.c (handle_mac_pragma): Initialize "psize".
10829
10830 Mon Aug 12 18:14:35 1996  Jim Wilson  <wilson@cygnus.com>
10831
10832         * gcc.c (used_arg): Initialize cnt to zero.
10833
10834 Mon Aug 12 14:03:16 1996  Jim Wilson  <wilson@cygnus.com>
10835
10836         From Mike Stump:
10837         * sh.c (regno_reg_class): Change entry 23 from NO_REGS to GENERAL_REGS.
10838         (initial_elimination_offset): New variable live_regs_mask.  Add
10839         code to handle RETURN_ADDRESS_POINTER_REGNUM.
10840         * sh.h (RAP_REG, RETURN_ADDRESS_POINTER_REGNUM): Define.
10841         (ELIMINABLE_REGS): Add RETURN_ADDRESS_POINTER_REGNUM support.
10842         (RETURN_ADDR_RTX): Define.
10843         (REGISTER_NAMES): Add rap.
10844
10845         * iris5.h (DOLLARS_IN_IDENTIFIERS): Undefine.
10846
10847         * m68kemb.h (LIB_SPEC): Always emit -lc.
10848
10849 Mon Aug 12 12:30:25 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10850
10851         * rs6000.c (rs6000_got_register): Test variable
10852         current_function_uses_pic_offset_table to see whether or not a GOT
10853         register has been created already.
10854
10855         * Makefile.in (multilib.h): Move to stamp-mlib.
10856         (stamp-mlib): Use move-if-change to conditionally update
10857         multilib.h.  Pass MULTILIB_EXTRA_OPTS to genmultilib.
10858         (STAGESTUFF): Add stamp-mlib.
10859         (mostlyclean): Delete tmp-mlib.h.
10860
10861         * genmultilib: Take fifth argument for options to all multilib builds.
10862         Restructure output so we pass synonym switches and extra arguments
10863         separately, and not exponentially slow down genmultilib.
10864
10865         * gcc.c (toplevel): Rearrange multilib support so we support passing
10866         synonyms separately from normal switches.  Add support for passing
10867         additional switches for all multilib builds.  Dump and restore value
10868         of MULTILIB_DEFAULTS.
10869         (setspec, process_command, main): Likewise.
10870         (used_arg,default_arg,print_multilib_info): Likewise.
10871
10872 Mon Aug 12 07:46:47 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
10873
10874         * expr.c (expand_builtin, case BUILT_IN_SETJMP): Add test
10875         and call for nonlocal_goto_receiver pattern.
10876         * stmt.c (expand_end_bindings): Likewise.
10877
10878         * stmt.c (expand_asm_operands): Fix off-by-one error when
10879         scanning constraints.
10880
10881 Sun Aug 11 22:48:02 1996  Jason Merrill  <jason@yorick.cygnus.com>
10882
10883         * expr.c (store_expr): Handle COND_EXPR cleanups like expand_expr.
10884
10885 Sun Aug 11 22:42:36 1996  J"orn Rennecke  <amylaar@cygnus.co.uk>
10886
10887         * optabs.c (expand_abs): When OP0 and TARGET are the same
10888         pseudo register, it is safe to use TARGET.
10889
10890         * local-alloc.c (reg_equiv_replace): New variable.
10891         (update_equiv_regs): Set reg_equiv_replacement for all REG_EQUIV
10892         notes encountered or generated.
10893
10894 Sun Aug 11 22:27:14 1996  Scott Christley <scottc@net-community.com>
10895
10896         * objc/hash.c (hash_is_key_in_hash): Function somehow got lost.
10897
10898 Sun Aug 11 21:43:15 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10899
10900         * ginclude/stddef.h (__need_wint_t): Move #undef to right place.
10901
10902 Sun Aug 11 17:46:22 1996  J"orn Rennecke <amylaar@cygnus.co.uk>
10903
10904         * c-decl.c (finish_struct): If pedantic, also warn if struct/union
10905         has no named members.
10906
10907 Sun Aug 11 17:32:52 1996  Joel Sherrill <joel@OARcorp.com>
10908
10909         * i386/rtems.h: Renamed from i386/i386-rtems.h
10910         * i960/rtems.h: Renamed from i960/i960-rtems.h
10911         * m68k/rtems.h: Renamed from m68k/m68k-rtems.h
10912         * rs6000/rtems.h: Renamed from rs6000/powerpc-rtems.h
10913         * sparc/rtems.h: Renamed from sparc/sparc-rtems.h
10914         * config/t-rtems: New file.
10915         * configure (i386-*-rtems*): Added t-rtems to tmake_file.
10916         Renamed i386/i386-rtems.h to i386/rtems.h.
10917         (i960-*-rtems*): Added t-rtems to tmake_file.
10918         Renamed i960/i960-rtems.h to i960/rtems.h.
10919         Added original tm.h file and dbxcoff.h.
10920         (m68k-*-rtems*): Added t-rtems to tmake_file.
10921         Renamed m68k/m68k-rtems.h to m68k/rtems.h.
10922         (powerpc-*-rtems*): Added t-rtems to tmake_file.
10923         Renamed rs6000/powerpc-rtems.h to rs6000/rtems.h.
10924         (sparc-*-rtems*): Added t-rtems to tmake_file.
10925         Renamed sparc/sparc-rtems.h to sparc/rtems.h.
10926
10927 Fri Aug  9 16:05:13 1996  Stan Cox  <coxs@dg-rtp.dg.com>
10928
10929         * i386.md: (untyped_call) Avoid SIGFPE.
10930
10931         * i386.c (output_float_compare): Don't try to initialize
10932         aggregate local variable; use assignment statements instead.
10933
10934         * i386.h (RTX_COSTS): rtx_cost should pass two parameters.
10935         
10936         * i386/go32.h (ASM_OUTPUT_SECTION_NAME): New.
10937
10938 Fri Aug  9 16:00:11 1996  Jim Wilson  <wilson@cygnus.com>
10939
10940         * winnt.c (gen_stdcall_suffix): Round parameter size to PARM_BOUNDARY.
10941
10942 Thu Aug  8 17:42:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10943
10944         * rs6000.c (output_toc): If we are emitting a reference to a
10945         vtable, don't put in the section name, just use the symbol.
10946
10947 Wed Aug  7 19:03:36 1996  Jim Wilson  <wilson@cygnus.com>
10948
10949         * sh.md (casesi_jump): New pattern.
10950         (casesi): Generate RTL to match it.
10951
10952 Wed Aug  7 14:10:07 1996  Jason Merrill  <jason@yorick.cygnus.com>
10953
10954         * ginclude/stddef.h (NULL): Use __null for G++.
10955
10956 Tue Aug  6 17:37:53 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
10957
10958         * rs6000/sysv4.h (STACK_BOUNDARY): Always define as 64.
10959         (ABI_STACK_BOUNDARY): Define as 64/128 based on the -mno-eabi
10960         switch.
10961
10962         * rs6000.c (rs6000_stack_info): Use ABI_STACK_BOUNDARY, not
10963         STACK_BOUNDARY.  Define ABI_STACK_BOUNDARY as STACK_BOUNDARY #ifndef.
10964
10965 Tue Aug  6 14:29:43 1996  Doug Evans  <dje@fallis.cygnus.com>
10966
10967         * gen-protos.c (overrides): New static local.
10968         (add_hash,parse_fn_proto): New static functions.
10969         (main): Add prototypes from SYS_PROTO_OVERRIDES to hash table before
10970         parsing sys-protos.h.  Reserve entry 0 in std_protos.
10971         * alpha.h (SYS_PROTO_OVERRIDES): Define.
10972
10973 Mon Aug  5 16:53:36 1996  Doug Evans  <dje@fallis.cygnus.com>
10974
10975         * sparc/t-splet (MULTILIB_OPTIONS): Add mbroken-saverestore.
10976         (MULTILIB_DIRNAMES): Add brknsave.
10977
10978         * stor-layout.c (layout_record): Correct overflow test for 0 sized
10979         fields.
10980
10981 Mon Aug  5 16:12:19 1996  Jim Wilson  <wilson@cygnus.com>
10982
10983         * alpha.c (alpha_output_filename): When emitting stabs, don't
10984         disable them if using GNU as.
10985         (alpha_output_lineno): Likewise, when not using GNU as.
10986
10987         * sh.c (arith_reg_operand): Reject SUBREG of an invalid hard reg.
10988
10989         * sparc/lite.h (aoutos.h): Don't include it.
10990         * configure (sparclite-*-aout*): Add aoutos.h to tm_file.
10991
10992 Sat Aug  3 23:13:55 1996  Jeffrey A Law  (law@cygnus.com)
10993
10994         * combine.c (rtx_equal_for_field_assignment_p): Check for
10995         get_last_value returning (CLOBBER (CONST_INT 0)).
10996
10997 Sat Aug  3 20:19:14 1996  Jim Wilson  <wilson@cygnus.com>
10998
10999         * i960.md (subsi3+1): Handle case where first operand is constant
11000         but second operand is not.
11001
11002         * m68k/vxm68k.h (WCHAR_TYPE_SIZE): Undef, then define to 16.
11003
11004 Fri Aug  2 15:46:19 1996  Jeffrey A Law  (law@cygnus.com)
11005
11006         * pa/pa-hpux.h (LINK_SPEC): Don't link in PA1.1 specific
11007         libraries when creating shared libraries.
11008         * pa/pa-hpux9.h, pa/pa-hpux10.h: Likewise.
11009
11010 Fri Aug  2 13:36:42 1996  Stan Cox  <coxs@dg-rtp.dg.com>
11011
11012         * i386.c (output_float_compare): fcomi should be followed by the
11013         correct conditional jump instead of fcom/pfstsw/and/jne
11014         (override_options): Added -mbranch-cost to set BRANCH_COST.
11015         
11016         * i386.md (sgt+1,slt+1,sge+1,sle+1,bgt+1,blt+1,bge+1,ble+1,bleu+4)
11017         Added TARGET_CMOVE check for fcomi.
11018         (movsicc_1+1,movhicc_1+1): Added to handle the general case.
11019         
11020         * i386.h (i386_branch_cost, i386_branch_cost_string): Added.
11021
11022 Fri Aug  2 11:53:55 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
11023
11024         * sparc/vxsparc.h (CPP_PREDEFINES): Add `-DCPU=SPARC'.
11025
11026 Thu Aug  1 23:56:01 1996  Jeffrey A Law  (law@cygnus.com)
11027
11028         * pa.h (ASM_OUTPUT_INT): Remove all hacks for exception table.
11029
11030 Thu Aug  1 10:08:14 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
11031
11032         * m68k.h (RTX_COSTS, case PLUS): Get operand order right.
11033
11034 Wed Jul 31 15:06:46 1996  Doug Evans  <dje@cygnus.com>
11035
11036         * sparc.md (negtf2,abstf2): Fix v9 case.
11037
11038 Wed Jul 31 09:49:25 1996  Jeffrey A Law  (law@cygnus.com)
11039
11040         * pa.h (ASM_OUTPUT_INT): Use an 'E%' prefix for items in
11041         the exception table if TARGET_GAS && ! TARGET_PORTABLE_RUNTIME.
11042
11043 Tue Jul 30 15:37:31 1996  Jim Wilson  <wilson@cygnus.com>
11044
11045         * i386/cygwin32.h (dbxcoff.h): Include.
11046         (DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
11047         Move definitions before include of dbxcoff.h.
11048         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_MAIN_SOURCE_FILE_END): Delete.
11049         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_FUNCTION_FIRST): Delete.
11050
11051 Tue Jul 30 15:03:53 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
11052
11053         * i960.md (eq reg (const_int 0)): New pattern.
11054
11055 Tue Jul 30 11:15:44 1996  Jeffrey A Law  (law@cygnus.com)
11056
11057         * pa.h (RETURN_ADDR_RTX): Offset is -20 from the frame, not +20!
11058
11059 Mon Jul 29 12:16:17 1996  Jeffrey A Law  (law@cygnus.com)
11060
11061         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix thinko in last change.
11062
11063 Fri Jul 26 18:19:47 1996  Doug Evans  <dje@cygnus.com>
11064
11065         * dwarfout.c (output_bound_representation): Fix typo.
11066
11067 Thu Jul 25 16:00:10 1996  Mike Stump  <mrs@cygnus.com>
11068
11069         * expr.c (do_jump, case TRUTH_ORIF_EXPR): Ensure end of an
11070         exception region comes after its start.
11071         (do_jump, case TRUTH_ANDIF_EXPR): Likewise.
11072
11073 Thu Jul 25 13:36:42 1996  Stan Cox  <coxs@equinox>
11074
11075         * i386.c (output_float_compare): Added support for Pentium Pro
11076         fcomi instruction which sets EFLAGS instead of FPU Status Word.
11077
11078 Wed Jul 24 21:48:08 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11079
11080         * cse.c (canon_hash, cse_insn): MEM is not unchanging if it is
11081         in the frame (since the temp slot might be reused).
11082
11083 Wed Jul 24 17:34:06 1996  J"orn Rennecke (amylaar@cygnus.com)
11084
11085         * sh.md (branch_true, branch_false, inverse_branch_true): Express
11086         tests of the T bit as comparisons against zero, rather than one.
11087         (inverse_branch_false, beq, bne, bgt, blt, ble, bge, bgtu): Likewise.
11088         (bltu, bgeu, bleu, casesi): Likewise.
11089
11090 Wed Jul 24 15:58:06 1996  Stan Cox  <coxs@dg-rtp.dg.com>
11091
11092         * i386.md: (mov{sf,df,xf}cc{,_1}): New patterns for P6 FP cmove.
11093         * i386.c (put_condition_code, print_operand, output_fp_cc0_set):
11094         Support fcmov suffixes.
11095
11096 Wed Jul 24 10:53:38 1996  Jeffrey A Law  (law@cygnus.com)
11097
11098         * pa.c (move_operand): Relax "mode" test.  Allow scaled
11099         indexed addressing modes.
11100         (output_fp_move_double): Tweak output strings to work with updated
11101         'F' and 'M' output modifiers.
11102         (print_operand): Collapse 'F' and 'M' into a single hunk of code.
11103         For auto-increment modes output "s,ma" and "s,mb".
11104         For scaled indexing modes output "x,s"
11105         For other addresses, output nothing for 'M' and "s" for 'F'.
11106         * pa.h (EXTRA_CONSTRAINT): Don't accept scaled indexed addresses
11107         for 'Q' and 'T'.  Do accept scaled indexed addresses for 'R'.
11108         (GO_IF_LEGITIMATE_ADDRESS): Accept scaled indexed addresses
11109         for SFmode and DFmode.
11110         * pa.md: Remove all scaled indexed load patterns.
11111         (movsi patterns): Accept scaled indexed addresses in some
11112         cases.  Update output strings for updated 'M' and 'F' output modifiers.
11113         (movhi, movqi, movsf, movdf, movdi patterns): Likewise.
11114
11115 Tue Jul 23 23:10:41 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11116
11117         * tree.h (struct tree_int_cst): Add field for TREE_CST_RTL.
11118         * varasm.c (decode_addr_const, output_constant_def): AllowINTEGER_CST.
11119
11120 Tue Jul 23 16:42:09 1996  Jim Wilson  <wilson@cygnus.com>
11121
11122         * sh.c (reg_unused_after): Handle JUMP_INSN inside a sequence.
11123
11124 Tue Jul 23 16:33:25 1996  Mike Stump  <mrs@cygnus.com>
11125
11126         * Make exception handling work better when optimizations are on.
11127         * except.c, except.h: New files.
11128         * Makefile.in (OBJS): Add except.o.
11129         (except.o): Add.
11130         (stmt.o, final.o): Add except.h.
11131         * rtl.c (note_insn_name): Add NOTE_INSN_EH_REGION_{BEG,END}.
11132         * rtl.h: Likewise.
11133         * arm.h (MASK_RETURN_ADDR): Define.
11134         * pa.h (MASK_RETURN_ADDR, RETURN_ADDR_RTX): New macros.
11135         * sparc.h (DOESNT_NEED_UNWINDER): Define if not doing a flat function.
11136         * mips.h (RETURN_ADDR_RTX): Improve.
11137         * vax.h (RETURN_ADDR_RTX): Improve.
11138         * toplev.c (rest_of_compilation): Use find_handler_labels.
11139         (main, interim_eh{,_hook}): Remove interim_eh_hook support.
11140         (flag_exceptions): New flag; also add to table.
11141         (compile_file): Emit the exception table in the backend now.
11142         * final.c (final_scan_insn): Support ASM_OUTPUT_EH_REGION_{BEG,END}.
11143         (final_scan_insn): Redo handler labels, implement
11144         NOTE_INSN_EH_REGION_BEG and NOTE_INSN_EH_REGION_END and use them
11145         instead of CODE_LABELs.
11146         (final): Add call to check_handler_labels.
11147         * libgcc2.c (L_eh): Add support for EH_TABLE_LOOKUP.
11148         * sparc.md (return): Add a reference to the return address register.
11149         * flow.c (find_basic_blocks): Add support for handler_labels.
11150         * loop.c (find_and_verify_loops): Likewise.
11151         * jump.c (jump_optimize): Likewise.
11152         Add call to check_handler_labels.  Add call to exception_optimize.
11153         * sched.c (sched_analyze): Smuggle exception region notes around.
11154         (unlink_notes, reemit_notes, schedule_block): Likewise.
11155         (sched_analyze): Add extra element since we remove two at a time.
11156         * integrate.c (save_for_inline_copying): Add support for exception
11157         regions.
11158         (expand_inline_function): Likewise.
11159         (function_cannot_inline_p): Don't inline functions that have EH
11160         regions before NOTE_INSN_FUNCTION_BEG.
11161         (finish_inline): Use FIRST_FUNCTION_INSN, not NEXT_INSN.
11162         * function.c (expand_start_all_catch): New function.
11163         * function.h: Add exception handling support information.
11164         * expr.c (expand_expr, {defer,expand}_cleanups_to, do_jump): Transform
11165         interim_eh_hook into calls to expand_ehregion_{start,end}.
11166         * stmt.c (expand_{decl_cleanup,cleanups}): Likewise.
11167         (init_stmt_for_function): Call init_eh.
11168         (save_stmt_status): Call save_eh_status.
11169         (restore_stmt_status): Call restore_eh_status.
11170         * expr.h (throw_libfunc): Add.
11171         * optabs.c (throw_libfunc): Initialize.
11172         * print-rtl.c (print_rtx): Add support for exception regions.
11173         * rs6000.c (EXCEPTION_SECTION): Define.
11174         * output.h (exception_section): Declare.
11175         * varasm.c (exception_section): Define.
11176         * i386.c, i960.c, rs6000.c: Include except.h for function.h.
11177         * c-pragma.c, emit-rtl.c, expr.c, final.c, flow.c: Include except.h.
11178         * function.c, integrate.c, jump.c, loop.c, objc-act.c: Likewise.
11179         * stmt.c, stor-layout.c, toplev.c, tree.c, varasm.c: Likewise.
11180         
11181 Tue Jul 23 12:32:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11182
11183         * rs6000.c (rs6000_replace_regno): Set pic_offset_table_rtx so
11184         that other phases will use the PIC register instead of the
11185         placeholder.
11186
11187         * rs6000.md (movsi_got*): Eliminate -fPIC code, keep -fpic code.
11188         (movsi): Only call movsi_got if -fpic, not -fPIC.
11189
11190         * sysv4.h (OVERRIDE_OPTIONS): Improve error messages.  Always set
11191         -msdata=data by default, even if -fpic/-fPIC/-mrelocatable.  Treat
11192         -fPIC the same as -mrelocatable-lib and vica versa.
11193
11194         * t-ppcgas: (MULTILIB_*): Use -mreloctable-lib, instead of
11195         -mrelocatable.  Map Solaris into mcall-sysv-noeabi case.  Build
11196         -mrelocatable-lib libraries under non-eabi case.  When linking, if
11197         -fpic, -fPIC, or -shared, link in the -mrelocatable-lib libraries.
11198
11199 Mon Jul 22 19:34:20 1996  Jim Wilson  <wilson@cygnus.com>
11200
11201         * iris6.h (ASM_SPEC): Change {% to %{.
11202
11203         * dwarf2out.c (output_call_frame_info): Change FDE CIE offset to
11204         be section name rather than 0.
11205         (gen_subprogram_die): Only emit DW_AT_external if origin is NULL.
11206         Only call equate_decl_number_to_die if origin is NULL.
11207         (dwarfout_begin_function): In code that computes offset of frame
11208         pointer, change 4 to UNITS_PER_WORD.
11209
11210         * combine.c (undo_all): Clear previous_undos field.
11211
11212 Mon Jul 22 19:10:45 1996  Ian Lance Taylor  <ian@cygnus.com>
11213
11214         * configure: Don't change target_alias to target in Makefile.
11215
11216 Sat Jul 20 09:28:38 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11217
11218         * dwarfout.c (output_bound_representation): Treat default case
11219         as variable bounds, then look inside for SAVE_EXPR.
11220
11221         * mips.h (INITIALIZE_TRAMPOLINE): Use `_flush_cache'; flush data
11222         cache too.
11223
11224 Sat Jul 20 09:24:13 1996  Marco Walther  (Marco.Walther@mch.sni.de).
11225
11226         * configure (mips-sni-sysv4): New target.
11227         * mips/sni-gas.h, mips/sni-svr4.h, mips/x-sni-svr4: New files.
11228
11229 Fri Jul 19 17:44:13 1996  Stan Coxs  <coxs@dg-rtp.dg.com>
11230
11231         * i386.md: (leave): Clobbers esp and ebp.
11232
11233         * i386.h: (TARGET_USE_Q_REG): Support inline strlen on PentiumPro
11234
11235 Fri Jul 19 15:56:18 1996  Ian Lance Taylor  <ian@cygnus.com>
11236
11237         * m68k/t-m68kbare (MULTILIB_OPTIONS): Add m5200.
11238         (MULTILIB_EXCEPTIONS): Define.
11239         * m68k/lb1sf68.asm: Add MCF5200 support.
11240         * m68k.md (adddi_sexthishl32): Set condition to !TARGET_5200.
11241         (subdi_sexthishl32, ashrdi3, ashrhi3): Likewise.
11242         (negdi2): Change into define_expand.
11243         (negdi2_internal): Rename from old negdi2; condition now !TARGET_5200.
11244         (negdi2_5200): New insn.
11245         * m68k.c (output_function_prologue): Don't use add.w if TARGET_5200.
11246         (output_function_epilogue): Likewise.
11247
11248         * m68k.md (movqi): Remove complex cases which move between address reg
11249         and memory; rely on secondary reloads instead.
11250
11251 Fri Jul 19 12:22:50 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
11252
11253         * fixproto (std_files): Add utime.h.
11254
11255 Fri Jul 19 10:59:46 1996  Jeffrey A Law  (law@cygnus.com)
11256
11257         * m68k/m68kemb.h: Remove '\' at EOF.
11258
11259 Fri Jul 19 09:59:00 1996  Joel Sherrill <joel@OARcorp.com>
11260
11261         * m68k/coff.h (STARTFILE_SPEC): Add #undef before definition.
11262
11263 Fri Jul 19 09:44:45 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
11264
11265         * m68k.h (LEGITIMATE_INDEX_P): Coldfire does not have scale
11266         by 8 addressing modes.
11267
11268         * m68k-none.h: Use MASK_* macros instead of explicit constants.
11269
11270 Fri Jul 19 09:08:53 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
11271
11272         * m68k.md (negdi2): Undo last change: don't apply neg to address regs.
11273
11274 Fri Jul 19 09:03:01 1996  Robert Wilhelm  (rwilhelm@Physik.TU-Muenchen.DE)
11275
11276         * toplev.c (main): Correct typo in error message.
11277
11278 Thu Jul 18 20:29:33 1996  Jim Wilson  <wilson@cygnus.com>
11279
11280         * Makefile.in (OBJS): Add dwarf2out.o.
11281         (dwarf2out.o): New rule.
11282         * dwarf2.h, dwarf2out.c: New files.
11283         * dwarfout.c: Check DWARF_VERSION macro.
11284
11285         * mips/iris6.h (DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
11286         Move after header files are included.
11287         (iris5.h): Include instead of iris5gas.h.
11288         (MACHINE_TYPE): Change 5.x to 6.x.
11289         (DEBUG_SECTION, LINE_SECTION): Add debug_ to name, fix attributes.
11290         (SFNAMES_SECTION, SRCINFO_SECTION, MACINFO_SECTION, PUBNAMES_SECTION,
11291         ARANGES_SECTION): Fix attributes.
11292         (DWARF_VERSION, MIPS_DEBUGGING_INFO, ASM_DECLARE_FUNCTION_NAME,
11293         ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED,
11294         FRAME_SECTION, ABBREV_SECTION): Define.
11295         (DBX_DEBUGGING_INFO, SDB_DEBUGGING_INFO, MIPS_DEBUGGING_INFO,
11296         DWARF_DEBUGGING_INFO, PREFERRED_DEBUGGING_INFO): Delete undefs at
11297         end of file.
11298         * mips.c (function_{pro,epi}logue): Use FUNCTION_NAME_ALREADY_DECLARED.
11299
11300 Thu Jul 18 19:24:19 1996  David Mosberger-Tang  <davidm@azstarnet.com>
11301
11302         * alpha/elf.h (INT_ASM_OP): Change from ".long" to ".quad".
11303
11304 Thu Jul 18 19:20:58 1996  Ulrich Drepper  <drepper@myware.rz.uni-karlsruhe.de>
11305
11306         * stddef.h: Undefine __need_wint_t.
11307
11308 Thu Jul 18 19:06:35 1996  J.T. Conklin  <jtc@hippo.cygnus.com>
11309
11310         * longlong.h (mc680x0): Define umul_ppmm, udiv_qrnnd, sdiv_qrnnd
11311         for the '020, '030, '040, and '332.  Define count_leading_zeros
11312         for the '020, '030, '040, and '060.
11313
11314         * m68k.md: Add TARGET_5200 to conditions which determine whether
11315         the extbl instruction is emitted.
11316         (mulsi3): Enable pattern with TARGET_5200.
11317
11318         * m68k.md (add patterns): Don't use two addqw instructions when
11319         adding small (8 < N <= 16) integers to address registers on 68040.
11320
11321 Thu Jul 18 18:06:15 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11322
11323         * configure: Write target_alias in Makefile.
11324         (i[3456]86-*-sco3.2v4*): Set truncate_target.
11325         * Makefile.in (target_alias): New and used for all current uses
11326         of `target'.
11327
11328 Thu Jul 18 17:46:02 1996  Dave Love  <d.love@dl.ac.uk>
11329
11330         * gcc.c (default_compilers): Extra Fortran extensions.
11331
11332 Wed Jul 17 10:28:10 1996  Torbjorn Granlund  <tege@spiff.gnu.ai.mit.edu>
11333
11334         * expmed.c (expand_mult_highpart): Revert last change.
11335
11336 Tue Jul 16 12:51:59 1996  Doug Evans  <dje@cygnus.com>
11337
11338         * sparc/sparc-rtems.h: #include "sparc/sparc-aout.h" -> sparc/aout.h.
11339
11340 Mon Jul 15 14:42:06 1996  Jim Wilson  <wilson@cygnus.com>
11341
11342         * mips/iris6.h (LINK_SPEC): Add -woff 84.
11343
11344 Fri Jul 12 17:34:01 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11345
11346         * rs6000/eabi.asm (__eabi): Convert pointers in the Global Offset
11347         Table if -mrelocatable.  Move loops into separate subroutines for
11348         ease of debugging.  Reorganize code somewhat.
11349
11350         * rs6000/rs6000.c (small_data_operand): Allow small data under
11351         Solaris.
11352
11353         * rs6000/sol-c0.c (_start): Initialize r13 to point to the small
11354         data operand.
11355
11356         * rs6000/sol-c{i,n}.asm (_init, _fini): Enable shared library
11357         support.
11358
11359         * rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
11360         -msdata=data, even if -fpic or -mrelocatable.  Allow -mrelocatable
11361         and -mno-eabi.
11362         (CPP_SYSV_SPEC): If -fpic, define __PIC__ and __pic__ to 1.  If
11363         -fPIC, define them to 2.
11364         (CPP_ENDIAN_SPEC): Push definition of macros for specific endian
11365         targets to new specs.
11366         (CPP_ENDIAN_DEFAULT_SPEC): Define to use CPP_ENDIAN_BIG_SPEC.
11367         (CPP_ENDIAN_{LITTLE,BIG,SOLARIS}_SPEC): New specs for little
11368         endian mode, big endian mode, and Solaris, which can't define
11369         _LITTLE_ENDIAN.  Define __LITTLE_ENDIAN__ in all cases for little
11370         endian systems.  Define __BIG_ENDIAN__ in all cases for big endian
11371         systems.
11372         (SUBTARGET_EXTRA_SPECS): Add new specs.
11373
11374         * rs6000/{eabile,sysv4le}.h (CPP_ENDIAN_DEFAULT_SPEC): Define to
11375         use CPP_ENDIAN_LITTLE_SPEC.
11376
11377         * rs6000/sol2.h (CPP_ENDIAN_LITTLE_SPEC): Define as
11378         CPP_ENDIAN_SOLARIS_SPEC so that _LITTLE_ENDIAN is not define.
11379
11380 Fri Jul 12 17:34:01 1996  David Edelsohn  <edelsohn@mhpcc.edu>
11381
11382         * rs6000.c (function_arg): Add IBM AIX XL compiler broken FP arg
11383         passing compatibility mode.
11384         * rs6000.h (TARGET_XL_CALL): Define default.
11385         * aix3newas.h (TARGET_XL_CALL, SUBTARGET_SWITCHES): Define.
11386         * aix41.h (TARGET_XL_CALL, SUBTARGET_SWITCHES): Define.
11387
11388 Fri Jul 12 15:04:43 1996  Doug Evans  <dje@cygnus.com>
11389
11390         * arm.h (ASM_OUTPUT_MI_THUNK): Handle fns returning structures.
11391
11392         * ptx4.h ({ASM,LINK}_SPEC): %{V} %{v:%{!V:-V}} -> %{v:-V}.
11393         * svr4.h ({ASM,LINK}_SPEC): Likewise.
11394         * dsp16xx/dsp16xx.h ({ASM,LINK}_SPEC): Likewise.
11395         * i386/dgux.h (LINK_SPEC): Likewise.
11396         * i386/sol2.h (LINK_SPEC): Likewise.
11397         * m88k/dgux.h ({LINK,ASM_CPU}_SPEC): Likewise.
11398         * sparc/sol2.h ({ASM,LINK}_SPEC): Likewise.
11399         * sparc/sp64-elf.h ({ASM,LINK}_SPEC): Likewise.
11400         * sparc/sysv4.h (ASM_SPEC): Likewise.
11401
11402 Thu Jul 11 17:29:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11403
11404         * rs6000.h (GOT_TOC_REGNUM): New macro for r2, which is used as a
11405         marker for the GOT/TOC register to be allocated later.
11406         (MACHINE_DEPENDENT_REORG): Call rs6000_reorg.
11407         (rs6000_reorg): Add declaration.
11408
11409         * rs6000.c (rs6000_got_register): Return REG 2, not a pseudo
11410         register in order to work with inlined functions.
11411         (rs6000_replace_regno): New function to replace a register with a
11412         new pseudo register.
11413         (rs6000_finalize_pic): Loop through all insns, replacing any
11414         GOT_TOC_REGNUM registers with new pseudo register, and adding
11415         initialization of GOT register if it was created.
11416         (rs6000_reorg): New function to check whether the GOT_TOC register
11417         marker was removed.
11418
11419 Thu Jul 11 10:12:50 1996  Jeffrey A Law  (law@cygnus.com)
11420
11421         * h8300.h (OK_FOR_U): If generating H8/S code, accept
11422         SYMBOL_REF and SYMBOL_REF + CONST_INT.
11423
11424         * h8300.c ({shift,rotate}_one): Emit tabs between opcode and
11425         operands to be consistent with the rest of the compiler.
11426         (shift_two, rotate_two): Define.
11427         (get_shift_alg): Accept new argument "assembler2_p" for
11428         rotate/shift by two insns.  All callers changed.  Rework
11429         to generate more efficient code on the H8/300, H8/300H, and H8/S.
11430         Try to simplify somewhat.
11431         (emit_a_shift): Use shift-by-two insns when they're available.
11432         Emit tabs between opcode and operands to be consistent with
11433         the rest of the compiler.
11434
11435 Wed Jul 10 19:32:17 1996  Jim Wilson  <wilson@cygnus.com>
11436
11437         * mips/iris6.h (ASM_SPEC): Correct typos in Jun 18 change.
11438
11439 Wed Jul 10 18:56:38 1996  Ian Lance Taylor  <ian@cygnus.com>
11440
11441         * sh.c (machine_dependent_reorg): When looking for instruction that
11442         sets register in LOG_LINKS, skip link if REG_NOTE_KIND is not zero.
11443
11444 Wed Jul 10 15:02:18 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11445
11446         * rs6000.c (rs6000_got_register): New function to return a pseudo
11447         register to hold the pic register.  Abort if reload is in progress
11448         or done.
11449         (num_insns_constant): Allow SFmode and DFmode.
11450
11451         * rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Redo 'G' so that it
11452         means a constant that takes exactly two insns.
11453         (rs6000_got_register): Add declaration.
11454
11455         * rs6000.md (movsi_got): Move setup of pic register to
11456         rs6000_got_register.
11457         (movsf): If -msoft-float, don't force constants to memory.
11458         (mov{sf,df} insns): If soft floating point, allow any constant to
11459         be loaded.  Add define_splits that allow the 604 to use both
11460         integer units for loading constants.  Make sure insn length is
11461         correct.
11462
11463 Tue Jul  9 17:05:10 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11464
11465         * rs6000.c (easy_fp_constant): All FP constants are considered
11466         hard for -fpic and hardware floating point, so that the GOT
11467         register is created.
11468
11469 Tue Jul  9 15:21:27 1996  Jim Wilson  <wilson@cygnus.com>
11470
11471         * x-iris6 (FIXPROTO_DEFINES): Add -D_SGI_SOURCE.
11472
11473 Mon Jul  8 18:00:33 1996  Jim Wilson  <wilson@cygnus.com>
11474
11475         * sh.h (enum reg_class): Add new class GENERAL_FP_REGS.
11476         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
11477
11478         * cse.c (note_mem_written): Varying structure memory access with
11479         AND address can alias scalars.
11480         * sched.c ({true,anti,output}_dependence): Likewise.
11481
11482         * sh.c (calc_live_regs): For pragma_interrupt case, exclude call
11483         clobbered regs that are fixed, explicitly add MACH_REG and MACL_REG.
11484
11485         * calls.c (expand_call): For assign_stack_temp call in PARALLEL case,
11486         get mode from type instead of using BLKmode.
11487         * function.c (aggregate_value_p): If hard_function_value returns
11488         a non-REG, then return 0.
11489
11490         * mips.c (function_arg): Add explicit checks for FIELD_DECLs.
11491         (mips_function_value): Add explicit checks for FIELD_DECLs, and save
11492         them in the array FIELDS.  When returning structure with 1 float field,
11493         enclose it in a PARALLEL and set the PARALLEL mode correctly.
11494         * mips.md (call_value): Call gen_call_value_multiple_internal0
11495         only if there are multiple return values.  Strip the PARALLEL off
11496         if there there is only one return value.
11497
11498 Mon Jul  8 16:27:33 1996  Jeffrey A. Law  <law@cygnus.com>
11499
11500         * First cut at support for the H8/S.
11501         * h8300.c (h8300_init_once): Handle the H8/S (treat it
11502         like the H8/300H).
11503         (dosize, adds_subs_operand, one_insn_adds_subs_operand): Likewise.
11504         (output_adds_subs, const_costs, print_operand): Likewise.
11505         (output_simode_bld, h8300_adjust_insn_length): Likewise.
11506         (push_order, pop_order): Reverse.
11507         (function_prologue): Try to use ldm.l and stm.l insns
11508         on the H8/S.  Minor cleanups.
11509         (function_epilogue): Likewise.
11510         (asm_file_start): Emit ".h8300s" when compiling for the H8/S.
11511         * h8300/h8300.h (CPP_SPEC): Handle the H8/S.
11512         (TARGET_H8300S): New target.
11513         (TARGET_SWITCHES): Add "-ms" and "-mno-s".
11514         (BITS_PER_WORD): Handle the H8/S (treat it like the H8/300H).
11515         (UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY): Likewise.
11516         (BIGGEST_ALIGNMENT, BIGGEST_FIELD_ALIGNMENT): Likewise.
11517         (INITIALIZE_TRAMPOLINE, MOVE_MAX, Pmode): Likewise.
11518         * h8300.md: Handle H8/S just like H8/300H
11519         throughout the entire file.
11520         * t-h8300 (MULTILIB_OPTIONS): Build "-ms" libraries too.
11521         (MULTILIB_DIRNAMES): Put H8/S libraries in "h8300s" directory.
11522         * h8300/lib1funcs.asm: Emit ".h8300s" pseudo-op when generating
11523         h8300s object files.  Otherwise treat the H8/S just like the H8/300H.
11524         * ginclude/stdarg.h: Handle the H8/S.
11525         * ginclude/varargs.h: Likewise.
11526
11527 Mon Jul  8 14:50:58 1996  Doug Evans  <dje@cygnus.com>
11528
11529         * sparc/sol2.h (LINK_SPEC): Don't pass `-z text' if
11530         -shared -mimpure-text.
11531
11532 Sun Jul  7 18:03:46 1996  Torbjorn Granlund  <tege@noisy.tmg.se>
11533
11534         * m68k/lb1sf68.asm (__udivsi3): Use faster tstw instead of btst.
11535
11536 Thu Jul  4 11:44:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11537
11538         * expr.c (get_inner_reference): Delete using alternate mode for
11539         bitfield; we don't make bitfields anymore if not needed.
11540
11541 Wed Jul  3 18:23:17 1996  Stephen L Moshier  (moshier@world.std.com)
11542
11543         * c-common.c (record_function_format): Define as static.
11544         
11545         * collect2.c (at SUNOS4_SHARED_LIBRARIES): Fix reference to unistd.h.
11546
11547 Wed Jul  3 17:35:20 1996  Gavin Koch  <gavin@cygnus.com>
11548
11549         * c-typeck.c (default_conversion): Add bitfield promotions.
11550                 
11551 Wed Jul  3 17:09:22 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11552
11553         * gcc.c (default_compilers): Add null entries for languages we
11554         heard of.
11555         (main): If found one of those entries, say compiler not installed.
11556
11557 Wed Jul  3 12:52:53 1996  Jeffrey A. Law  <law@cygnus.com>
11558
11559         * pa.c (fmpy_operands): Define.
11560         (combinable_{fmpy,add,fsub}): New function.
11561         * pa.md (parallel_addb, parallel_movb): New patterns.
11562         (fmpyadd, fmpysub): New patterns.
11563
11564         * pa.c (fmpy{add,sub}operands): Tighten checks.  Allow SFmode.
11565
11566 Tue Jul  2 18:57:15 1996  Jeffrey A. Law  <law@cygnus.com>
11567
11568         * pa.c (ireg_or_int5_operand): New function.
11569         (output_parallel_movb, output_parallel_addb): Likewise.
11570         (combinable_copy, combinable_add, following_call): Likewise.
11571         (pa_adjust_insn_length): Handle parallel unconditional branches.
11572         (output_movb): Handle case were destination is %sar.
11573         * pa.h: Declare new functions.
11574         * pa.md (parallel_branch): New "type" attribute.
11575         (delay slot descriptions): Don't allow "parallel_branches" in
11576         delay slots.  Fill "parallel_branches" like "branch" insns.
11577         (movb patterns): Handle %sar as destination register.
11578
11579         * expr.c (compare): If function pointers need canonicalization
11580         before comparisons, canonicalize them.
11581         (do_store_flag): Do not use an sCC insn for a function pointer
11582         comparison if function pointers need canonicalization before
11583         comparing.
11584
11585 Tue Jul  2 17:56:37 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11586
11587         * rs6000/sysv4.h ({START,END}FILE_LINUX_SPEC): If -mnewlib is not
11588         used, use the crtbegin/crtend that 2.7.2 used.
11589
11590 Sat Jun 29 07:10:02 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11591
11592         * rs6000.h (INIT_EXPANDERS): Define, call rs6000_init_expanders.
11593         (RS6000_VARARGS_OFFSET): fpmem area no longer next to outgoing
11594         argument area.
11595         (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Likewise.
11596         (frame_pointer_needed): Add external declaration.
11597         (rs6000_{save,restore}_machine_status): Ditto.
11598         (rs6000_init_expanders): Likewise.
11599
11600         * rs6000.c (rs6000_{save,restore}_machine_status): New functions
11601         to save and restore the globals needed on a per function basis.
11602         (rs6000_init_expanders): Initialize globals needed on a per
11603         function basis, and set up so the above save/restore functions are
11604         called when processing nested functions.
11605         (output_epilog): Don't initialize per function globals here.
11606         (rs6000_stack_info): Change where fpmem save area is to below local
11607         variables, and not just below the outgoing argument area.
11608
11609         * rs6000.md (floatsidf2*, fix_truncdfsi2*): Rewrite conversion
11610         routines to track new location of the fpmem save area.  Allocate a
11611         new base register temp for the routines in case the stack frame is
11612         more than 32k in size.
11613
11614 Sat Jun 29 05:44:37 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11615
11616         * explow.c (convert_memory_address, case PLUS): Fix error in
11617         last change.
11618
11619 Fri Jun 28 23:30:48 1996  Jeffrey A. Law  <law@cygnus.com>
11620
11621         * reload1.c (choose_reload_regs): Properly mark spill registers
11622         as in use for inherited reloads.
11623
11624 Fri Jun 28 18:37:20 1996  Stephen L Moshier  <moshier@world.std.com>
11625
11626         * objc/sarray.c (ifdef __alpha__): Don't declare `free'.
11627         * objc/thr-decosf1.c (objc_thread_id): Use pthread_getunique_np
11628         to obtain a thread ID value.
11629         (objc_mutex_allocate): Cast mutex->owner to _objc_thread_t.
11630         (objc_mutex_{deallocate,unlock}): Likewise.
11631         (objc_mutex_{try,un,}lock):  Declare thread_id as _objc_thread_t.
11632
11633         * real.c (asctoeg): `0.0eX' is zero, regardless of the exponent X.
11634
11635 Fri Jun 28 18:33:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11636
11637         * vax.md (rotl): Remove extraneous `$'.
11638
11639         * combine.c (previous_num_undos): Deleted variable.
11640         (MAX_UNDO): Deleted macro.
11641         (struct undo): New field, next.
11642         (struct undobuf): Deleted num_undos and undo.
11643         New fields undos, frees, and previous_undos.
11644         (SUBST, SUBST_INT): Rework to allocate memory and chain undo entries.
11645         (combine_instructions): Initialize undobuf.{undos,previous_undos},
11646         not undobuf.num_undo and previous_num_undos.
11647         (try_combine): Likewise.
11648         (undo_all, gen_rtx_combine): Rework to use new data structures.
11649
11650 Fri Jun 28 16:48:25 1996  Scott Christley <scottc@net-community.com>
11651
11652         * objc/sendmsg.c (__objc_block_forward): New function.
11653         (get_imp, objc_msg_lookup): Use different forwarding function
11654         when the returning a floating point value.
11655
11656 Fri Jun 28 16:25:25 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
11657
11658         * configure: Allow multiple makefile frags.
11659         (i[3456]86-*-linux*oldld*): Add i386/t-crtstuff as target frag.
11660         (i[3456]86-*-linux*aout*, i[3456]86-*-linux*): Likewise.
11661         (m68k-*-linux*aout*): Add t-linux-aout as target frag.
11662         (m68k-*-linux*): Add t-linux as target frag.
11663         * Makefile.in (Makefile): xmake_file and tmake_file now already
11664         contain the $(srcdir)/config prefix.
11665
11666         * config/t-linux (BOOT_CFLAGS): Removed, no longer necessary.
11667         (CRTSTUFF_T_CFLAGS): Don't define.
11668         (CRTSTUFF_T_CFLAGS_S): Define this instead.
11669         * config/t-linux-aout (BOOT_CFLAGS): Removed.
11670         * m68k/t-linux: Remove variables now in t-linux.
11671
11672 Fri Jun 28 15:06:05 1996  John F. Carr  <jfc@mit.edu>
11673
11674         * alpha.c (alpha_emit_conditional_move): Emit correct code when
11675         incoming comparison code is NE.
11676
11677 Fri Jun 28 14:35:45 1996  J.T. Conklin  <jtc@hippo.cygnus.com>
11678
11679         * c-decl.c (init_decl_processing): Register __builtin_memset 
11680         and memset as builtin functions.
11681         * expr.c (expand_builtin, case BUILTIN_MEMSET): Open code memset
11682         where val == 0.
11683
11684 Fri Jun 28 14:10:03 1996  Richard Henderson  <rth@tamu.edu>
11685
11686         * alpha/linux.h (FUNCTION_PROFILER): _mcount has non-standard linkage.
11687         * alpha/elf.h (LINK_SPEC): Bring emulation name into sync
11688         with Cygnus snapshot.
11689
11690         * alpha.h ({MASK,TARGET}_BUILD_CONSTANTS): New macros.
11691         (TARGET_SWITCHES): New target option build-constants.
11692         * alpha.c (alpha_emit_set_long_const): New function.
11693         * alpha.md (movdi): Call it.
11694         * expmed.c (expand_mult_highpart): Use op1 not wide_op1 in
11695         expansion of mul_highpart.
11696         
11697         * alpha.c (output_{pro,epi}log): Flag_inhibit_size_directive
11698         should supress .ent, .end, and accompanying directives.
11699         (alpha_output_lineno): Fix polarity on GAS test.
11700         * alpha.h (NO_DBX_FUNCTION_END): New macro.
11701         * dbxout.c (dbxout_function): Respect NO_DBX_FUNCTION_END.
11702         * alpha/elf.h: New file.
11703         * alpha/linux.h (INITIALIZE_TRAMPOLINE): New definition.
11704         * alpha/xm-linux.h (HAVE_STRERROR): Define.
11705         * configure (alpha*-linux*ecoff*): New target, was alpha-*-linux*.
11706         (alpha-*-linux*): Use elf.h.
11707         * crtstuff.c (init_dummy): Only i386-linux (at most)
11708         needs ___brk_addr hack.
11709         
11710 Thu Jun 27 20:23:30 1996  Jon Buller  (jonb@metronet.com)
11711
11712         * ns32k.c (split_di): New; from i386.c.
11713         * ns32k.md (adddi3, subdi3, negdi3): New patterns.
11714
11715 Thu Jun 27 19:42:50 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11716
11717         * combine.c (force_to_mode, case NE): Fix typo and logical error.
11718         (simplify_comparison): Don't swap args if op1 is CONST_INT.
11719
11720 Thu Jun 27 18:49:35 1996  Jim Wilson  <wilson@cygnus.com>
11721
11722         * expmed.c (extract_bit_field): Check TRULY_NOOP_TRUNCATION before
11723         making a SUBREG of a REG.
11724
11725 Thu Jun 27 11:03:59 1996  Ian Lance Taylor  <ian@cygnus.com>
11726
11727         * mips.h (CC1_SPEC): Put spaces between the -mips* cases.
11728         * mips/osfrose.h (CC1_SPEC): Likewise.
11729
11730         * sh.c (output_branch): Don't call ADJUST_INSN_LENGTH if insn is
11731         inside sequence.
11732
11733 Wed Jun 26 19:09:43 1996  Jeffrey A. Law  <law@cygnus.com>
11734
11735         * pa.h (CMP_PSI): Delete.
11736         (FUNCTION_POINTER_COMPARISON_MODE): Likewise.
11737         * pa.md (cmppsi): Delete expander.
11738         (canonicalize_funcptr_for_compare): Renamed from plabel_dereference,
11739         turned into an expander + anonymous pattern.
11740
11741 Tue Jun 25 22:36:11 1996  Doug Evans  <dje@seba.cygnus.com>
11742
11743         * gcc.c (PEXECUTE_VERBOSE): Define.
11744         (execute): Pass PEXECUTE_VERBOSE to pexecute if -v.
11745
11746 Tue Jun 25 12:23:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11747
11748         * rs6000.h (FINALIZE_PIC): Define to call rs6000_finalize_pic.
11749         (rs6000_finalize_pic): Add declaration.
11750         (svr4_traceback): Delete unused declaration.
11751
11752         * rs6000.md (movsi_got): Don't emit gen_init_v4_pic insn.
11753         (V.4 call insns): Do not use @plt for PIC calls.
11754
11755         * rs6000.c (print_operand_address): Handle LABEL_REF just like
11756         SYMBOL_REF.
11757         (rs6000_finalize_pic): Define, emit the gen_init_v4_pic insn
11758         before all other insns if needed for V.4 PIC calls.
11759
11760         * eabi-ci.asm (_GLOBAL_OFFSET_TABLE_): Do not provide a default
11761         definition, since it interferes with the linker generated version.
11762
11763 Tue Jun 25 01:17:50 1996  Jeffrey A. Law  <law@cygnsu.com>
11764
11765         * h8300.c (function_prologue): Update "monitor" prologues.
11766         (function_epilogue): Similarly.
11767
11768         * pa.h (PARSE_LDD_OUTPUT): Handle dynamic libraries that are
11769         loaded "statically".
11770
11771 Mon Jun 24 19:48:36 1996  Joel Sherrill  <joel@merlin.gcs.redstone.army.mil>
11772
11773         * configure ({i386,i960,m68k,powerpc,sparc}-rtems): New targets.
11774         * i386/go32-rtems.h, i386/i386-rtems.h: New files.
11775         * i960/i960-rtems.h: New file.
11776         * m68k/m68k-rtems.h: New file.
11777         * rs6000/powerpc-rtems.h: New file.
11778         * sparc/sparc-rtems.h: New file.
11779
11780 Mon Jun 24 23:09:22 1996  Paul Eggert  <eggert@twinsun.com>
11781
11782         * cccp.c: (create_definition): Diagnose `#define #' only once.
11783
11784 Mon Jun 24 11:42:58 1996  Jim Wilson  <wilson@cygnus.com>
11785
11786         * i386/cygwin32.h, rs6000/cygwin32.h (CPP_PREDEFINES): For consistency,
11787         change to define WIN32, WINNT, and CYGWIN32.
11788
11789 Mon Jun 24 10:46:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11790
11791         * rs6000.md (floatsidf2*): Move the xor of the argument into the
11792         define_insn, since it confuses inline function expands.
11793
11794 Fri Jun 21 20:40:17 1996  Jim Wilson  <wilson@cygnus.com>
11795
11796         * mips.md (call_internal1, call_value_internal1): Delete obsolete code.
11797         (call_internal2, call_value_internal2, call_value_multiple_internal2):
11798         Delete obsolete code.  Explicitly load SYMBOL_REF into register.
11799         (call_value): Change Pmode to SImode in gen_call_value_internal0 call.
11800
11801 Thu Jun 20 12:20:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11802
11803         * configure (*-aix*): If building a cross compiler, use t-xnewas
11804         instead of t-newas.
11805
11806         * rs6000.c (num_insns_constant_wide): Fix typo if HOST_WIDE_INT
11807         has more than 32 bits.
11808
11809 Wed Jun 19 17:50:33 1996  Richard Henderson  <richard@atheist.tamu.edu>
11810
11811         * combine.c (move_deaths): New parameter maybe_kill_insn.
11812         Don't move note if reg killed by maybe_kill_insn.
11813         (try_combine): Pass new arg to move_deaths.
11814         
11815 Wed Jun 19 10:44:47 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
11816
11817         * toplev.c (flag_keep_static_consts): Define.
11818         (f_options): Add "keep-static-consts" entry.
11819         (compile_file): Check it in addition to !optimize for emitting
11820         static const variables.
11821
11822 Tue Jun 18 23:37:20 1996  Doug Evans  <dje@cygnus.com>
11823
11824         * i386/cygwin32.h (ASM_OUTPUT_SOURCE_LINE): Local symbols begin with L.
11825
11826 Tue Jun 18 12:00:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
11827
11828         * varasm.c (asm_output_aligned_bss): Don't emit a skip of size 0.
11829
11830 Tue Jun 18 06:24:28 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11831
11832         * integrate.c (expand_inline_function): Add missing call to
11833         force_operand when getting structure_value_addr into reg.
11834
11835         * alpha.c (override_options): Allow EV4/5 or 21064/21164 for cpu.
11836         Clean up handling of floating-point options.
11837         * alpha.h (TARGET_SWITCHES): Have all -mieee options turn
11838         on MASK_IEEE_CONFORMANT.
11839         (TARGET_DEFAULT): Use symbolic value.
11840         * alpha.md: When not involving named pattern, update condition
11841         to include alpha_tp != ALPHA_TP_INSN.
11842         Don't do float_extend as part of other pattern when ALPHA_TP_INSN.
11843         (extendsfsd2): Split into two patterns, depending on 
11844         value of alpha_tp.
11845
11846         * mips/iris6.h (ASM_SPEC): Treat -o32 as -32 and -n64 same as -64.
11847         * mips.c (override_options): Likewise.  
11848
11849         * genattrtab.c (fatal): Declare A1 and A2 as char *.
11850
11851         * function.c (find_temp_slot_from_address): Check for overlap
11852         from BASE_OFFSET if X is PLUS of virtual_stack_vars_rtx and const.
11853
11854         * flow.c (flow_analysis): Fix typo in last change.
11855
11856         * expr.c (expand_builtin, case BUILT_IN_{SET,LONG}JMP): Properly
11857         handle case when ptr_mode != Pmode.
11858
11859         * combine.c (try_combine): Don't use split if dest of new I2
11860         is used between I2 and I3.
11861
11862         * c-typeck.c (pointer_int_sum): Convert integer to both signedness
11863         and precision of sizetype.
11864         * explow.c (convert_memory_address, case PLUS, MULT): Don't commute
11865         operation with extension if not adding small integer.
11866
11867         * Makefile.in (BOOT_LANGUAGES): New variable.
11868         (bootstrap): Use it to select languages for stage1.
11869         * configure (extra_host_objs): New variable.
11870         Separate files needed for target and host and concatenate list.
11871         (extra_gcc_objs): Use setting for host, not target.
11872         (objc_thread_file): Start with it as null, then don't include "thr-".
11873         Print name of file after others and in same format.
11874         (alpha-*-winnt*, i[3456]86-*-winnt): oldnames.o is in extra_host_objs.
11875         (all_boot_languages): New variable.
11876         Set from boot_language variable in config-lang.in.
11877         Defines value of BOOT_LANGUAGES in Makefile.
11878         (Makefile): Set target to the canonical form of target.
11879
11880 Mon Jun 17 22:37:07 1996  Mike Meissner  <meissner@rtl.cygnus.com>
11881
11882         * rs6000/win-nt.h (ASM_DECLARE_FUNCTION_NAME): Put function
11883         descriptor in .reldata, not .text.
11884
11885 Mon Jun 17 16:05:34 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
11886
11887         * ginclude/stddef.h (wint_t): Don't wrap with #ifndef __cplusplus.
11888
11889 Mon Jun 17 15:03:20 1996  Jim Wilson  <wilson@cygnus.com>
11890
11891         * mips.c (mips_split_addresses): New variable.
11892         (simple_memory_operand): Add comment about mode check.  Add check
11893         for LO_SUM.
11894         (call_insn_operand): OP is now an addresses instead of a MEM.
11895         (move_operand, mips_check_split): New functions.
11896         (mips_count_memory_refs): Add check for LO_SUM.
11897         (mips_move_1word): Add HIGH support.
11898         (mips_address_cost): Delete check for HIGH.
11899         (output_block_move): Handle LO_SUM addresses.
11900         (override_options): Set mips_split_addresses.
11901         (print_operand_address): Add LO_SUM support.
11902         * mips.h (mips_split_addresses, mips_check_split, move_operand):
11903         New declarations
11904         (GO_IF_LEGITIMATE_ADDRESS): Reject constant addresses when
11905         mips_split_addresses is TRUE.  Add LO_SUM support.
11906         (LEGITIMIZE_ADDRESS): Add LO_SUM support.
11907         (PREDICATE_CODES): Modify call_insn_operand support.  Add
11908         move_operand.
11909         * mips.md (memory): Change r4100/r4300 support.
11910         (imuldiv): Add r4300 support.
11911         (high, low): New patterns.
11912         (movsi, movdi): Add LO_SUM support.
11913         (movsi_internal1, movsi_internal2): Use move_operand instead of
11914         general_operand.
11915         (movstrsi_internal, movstrsi_internal2): Delete R constraint.
11916         (call, call_value): Pass address instead of MEM to call_insn_operand.
11917         Call gen_call_{value_}internal0 instead of internal1.
11918         (call_internal0, call_value_internal0, call_multiple_internal0):
11919         New patterns.
11920         (call_internal1, call_internal2, call_value_internal1,
11921         call_value_internal2, call_value_multiple_internal2): Add explicit
11922         MEM before target address.
11923
11924 Sun Jun 16 23:05:16 1996  Jeffrey A. Law  <law@cygnus.com>
11925
11926         * configure (hppa*-hp-hpux10*): Use new pa-hpux10 configuration file.
11927         (hppa*-hp-hpux*): Use hpux9 configuration files by default.
11928         * pa/pa-hpux10.h: New file.
11929         * pa/pa-ghpux9.h: Deleted.  No longer used.
11930
11931 Sat Jun 15 04:35:51 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
11932
11933         * i386/gnu.h (LINK_SPEC): Remove -rpath /lib/ option.
11934         Ignore -ibcs option.
11935
11936 Thu Jun 13 14:49:41 1996  Jim Wilson  <wilson@cygnus.com>
11937
11938         * gen-protos.c (main): Change argv[i] to argv[0][i].
11939
11940 Thu Jun 13 10:46:24 1996  Doug Evans  <dje@cygnus.com>
11941
11942         * gcc.c (pfatal_pexecute): Delete code to check errno < sys_nerr.
11943
11944 Wed Jun 12 21:47:10 1996  Eliot Dresselhaus  <dresselh@rft30.nas.nasa.gov>
11945
11946         * alpha.c (alpha_cpu, alpha_cpu_string): New variables.
11947         (override_options): Process -mcpu= value.
11948         (alpha_adjust_cost): Handle adjustments for EV5.
11949         * alpha.h (enum processor_type): New enum.
11950         (alpha_cpu, alpha_cpu_string): New declarations.
11951         (target_options): Add "cpu=".
11952         (RTX_COSTS): Adjust values for EV5.
11953         * alpha.md: Add scheduling rules for EV5.
11954
11955 Tue Jun 11 17:51:03 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
11956
11957         * c-common.c (check_format_info): Change text of message about use
11958         of `0' with precision.
11959
11960 Tue Jun 11 15:14:10 1996  Stan Cox  <coxs@dg-rtp.dg.com>
11961
11962         * i386.h (TARGET_SCHEDULE_PROLOGUE): New. Allows prologue to
11963         be emitted as asm or rtl.
11964
11965         * i386.c (function_prologue): Emit prologue as asm.
11966         (override_options): Don't emit rtl for prologue if -fpic.
11967
11968 Tue Jun 11 14:41:01 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11969
11970         * rs6000/eabi.asm (__eabi): Fix normal code so that it properly
11971         loads up r2/r13 if needed again.
11972
11973         * rs6000/sysv4.h (CPP_ENDIAN_SPEC): Call cpp_endian_default, not
11974         cpp_endian_default_spec.
11975
11976 Mon Jun 10 15:10:56 1996  Jeffrey A. Law  <law@cygnus.com>
11977
11978         * local-alloc.c (update_equiv_regs): Ignore insns that read or
11979         write registers that are likely to be spilled.
11980
11981         * pa.h (cmp_type): Add CMP_PSI.
11982         (FUNCTION_POINTER_COMPARISON_MODE): Define.
11983         * pa.md (cmppsi): New expander.
11984         (plabel_dereference): New pattern
11985
11986 Mon Jun 10 14:56:14 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
11987
11988         * rs6000/sol2.h (SKIP_ASM_OP): Delete, Solaris accepts .space,
11989         like rest of PowerPC V4 ports.
11990
11991         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Emit .lcomm if not
11992         using the .sbss area.  If using the .sbss area, put out
11993         appropriate .size directive.
11994
11995 Mon Jun 10 14:53:38 1996  Doug Evans  <dje@cygnus.com>
11996
11997         * Move fork/exec/wait handling into file of its own.
11998         * pexecute.c: New file.
11999         * Makefile.in (pexecute.o): Add rule.
12000         (xgcc): Link in pexecute.o.
12001         (protoize,unprotoize): Likewise.
12002         * gcc.c (_WIN32): Don't include process.h or declare spawnv{,p}.
12003         (pexecute,pwait): Add prototypes.
12004         (PEXECUTE_{FIRST,LAST,SEARCH}): Define.
12005         (execv,execvp): Delete decls.
12006         (perror_exec): Delete.
12007         (pfatal_pexecute): New function.
12008         (pexecute support): Delete.
12009         (execute): -pipe not supported if _WIN32 or OS2.
12010         Update call to pexecute.  Fatal error if pexecute fails.  Call pwait.
12011         * protoize.c: Include gansidecl.h.
12012         (my_execvp): Delete.
12013         (choose_temp_base,pexecute,pwait): Declare.
12014         (PEXECUTE_{FIRST,LAST,SEARCH}): Define.
12015         (execvp): Delete decl.
12016         (usage): Fix typo.
12017         (gen_aux_info_file): Rewrite to use pexecute/pwait.
12018
12019         * gcc.c (do_spec_1): Allow leading text in version string.
12020         Delete support for default minor number = 0.
12021
12022 Mon Jun 10 11:49:53 1996  Scott Christley <scottc@net-community.com>
12023
12024         * objc/Makefile (libobjc.a): Don't delete the library.
12025
12026         * objc/thr.h (objc_set_thread_callback): New function.
12027         (objc_thread_callback): Typedef for the hook function.
12028         * objc/thr.c (__objc_thread_detach_function): Clear thread storage.
12029         Call the thread hook function when first becoming multi-threaded.
12030         (objc_set_thread_callback): New function.
12031
12032         * objc/selector.c (__sel_register_typed_name): Additional parameter
12033         that indicates whether name and type parameters are constant or not.
12034         * objc/runtime.h (__sel_register_typed_name): Likewise.
12035         * objc/init.c (__sel_register_typed_name): Likewise.
12036
12037         * objc/init.c (__objc_init_protocols): Need to unlock mutex.
12038
12039 Mon Jun 10 11:44:44 1996  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12040
12041         * sparc/t-sol2 (gmon.o): Depend on stmp-int-hdrs.
12042         (crt1.o, crti.o, crtn.o, gcrt1.o): Depend on $(GCC_PASSES).
12043
12044 Mon Jun 10 11:29:46 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12045
12046         * flow.c (flow_analysis, find_basic_blocks): Ignore
12047         nonlocal_label_list for CALL_INSN that has a REG_RETVAL.
12048
12049         * c-common.c (decl_attributes, case A_T_UNION): Don't look at fields
12050         of union if there aren't any.
12051
12052 Sat Jun  8 22:13:33 1996  Stan Cox <coxs@dg-rtp.dg.com>
12053
12054         * i386.c (ix86_expand_prologue): Keep pic register load ahead
12055         of reference which may use a pic register.
12056
12057 Sat Jun  8 22:13:33 1996  Jim Wilson <wilson@cygnus.com>
12058
12059         * i386.md (strlensi_unroll4, strlensi_unroll5): Use + not =& for
12060         constraint for input/output operand 2.
12061
12062 Sat Jun  8 22:13:33 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
12063
12064         * i386.h (CONST_COSTS): Even integer constants have a cost.
12065         (RTX_COSTS): Take costs of subexpressions into account.
12066         If a multiply is actually a shift, use the cost of the shift.
12067         * i386/unix.h (SHIFT_DOUBLE_OMITS_COUNT): New macro.
12068         * i386/{gas, next, seq-gas}.h (SHIFT_DOUBLE_OMITS_COUNT): Redefine
12069         as zero.
12070         * i386.c (print_operand): new letter 's'.
12071
12072 Sat Jun  8 15:13:33 1996  Jim Wilson  <wilson@cygnus.com>
12073
12074         * mips.c (override_options): Add vr4100 and vr4300 support.
12075         * mips.h (enum processor_type): Likewise.
12076         (MASK_4300_MUL_FIX, TARGET_4300_MUL_FIX): New macros.
12077         (TARGET_SWITCHES): Add -mfix4300 option.
12078         * mips.md (cpu, memory, imuldiv, adder, mult, divide): Add
12079         vr4100 and vr4300 support.
12080         (muldf3, mulsf3): Add vr4300 support.
12081         (muldf3_internal, muldf_r4300, mulsf3_internal, mulsf_r4300): New
12082         patterns.
12083
12084 Sat Jun  8 14:35:23 1996  David Edelsohn  <edelsohn@mhpcc.edu>
12085
12086         * toplev.c (main): Re-enable -gxcoff+.
12087
12088 Sat Jun  8 14:20:14 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
12089
12090         * m68k/lb1sf68.asm (__{eq,ne,gt,lt,ge,le}{df,sf}2): Removed
12091         extraneous comments, constants, labels, etc.
12092
12093         * m68k/altos3068.h (TARGET_DEFAULT): Use MASK_* macros
12094         instead of explicit constants in definitions or conditionals.
12095         * m68k/{apollo68, aux, ccur-GAS, dpx2, hp320, hp3bsd}.h: Likewise.
12096         * m68k/{hp3bsd44, isi-nfp, isi, linux-aout, linux}.h): Likewise.
12097         * m68k/{lynx-ng, lynx, m68k-none, m68k-psos, m68kv4}.h): Likewise.
12098         * m68k/{mot3300, netbsd, news, next, pbb, plexus, sun2o4}.h): Likewise.
12099         * m68k/{sun3, sun3n, tower}.h): Likewise.
12100
12101 Sat Jun  8 13:55:23 1996  Matthias Pfaller  (leo@marco.de)
12102
12103         * ns32k.md (define_insns for ffs[qhs]i2): Deleted.
12104         (define_expand for ffssi2): New pattern.
12105
12106 Sat Jun  8 13:44:14 1996  Stephen L Moshier  (moshier@world.std.com)
12107
12108         * reload.c (find_equiv_reg): Set need_stable_sp if GOAL is the
12109         stack pointer.
12110
12111 Sat Jun  8 13:36:05 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12112
12113         * function.c (fixup_var_refs_1, case SIGN_EXTEND): Handle
12114         paradoxical SUBREGs as first operand.
12115         (fixup_var_regs_1, case SET): Handle paradoxical SUBREGs as
12116         first operand of a ZERO_EXTRACT in SET_DEST.
12117
12118         * c-common.c (enum attrs): Add A_FORMAT_ARG.
12119         (init_attribute): Initialize it.
12120         (decl_attributes, case A_FORMAT): Clean up error messages.
12121         (decl_attributes, case A_FORMAT_ARG): New case.
12122         (struct international_format_info): New structure and typedef.
12123         (international_format_list): New variable.
12124         (record_international_format): New function.
12125         (init_format_info): Call it for gettext, dcgettext, and dcgettext.
12126         (check_format_info): See if format arg is call to
12127         internationalization function.
12128
12129 Fri Jun  7 20:04:40 1996  Jim Wilson  <wilson@cygnus.com>
12130
12131         * gcc.c (MULTILIB_SELECT): Delete definition.
12132         (multilib_select): Delete static initializer.
12133         (multilib_obstack, multilib_raw): New global variables.
12134         (multilib.h): Include inside multilib_raw definition.
12135         (main): Set multilib_select from multilib_raw.
12136         * genmultilib: Change output to be a sequence of short strings
12137         separated by commas rather than a single long macro definition.
12138
12139         * cse.c (simplify_binary_operation, case MULT): Check for case
12140         where width is larger than HOST_BITS_PER_WIDE_INT, and upper most
12141         bit is set.  We can not generate a simple shift in this case.
12142
12143         * gsyms.h (enum sdb_type): Add T_LNGDBL if EXTENDED_SDB_BASIC_TYPES.
12144         (enum sdb_masks): Add EXTENDED_SDB_BASIC_TYPES masks.
12145         * sdbout.c (gsyms.h): Include if CROSS_COMPILE is defined.
12146         (plain_type_1): Use TYPE_PRECISION instead of TYPE_SIZE.
12147         Add check for LONG_DOUBLE_TYPE_SIZE if EXTENDED_SDB_BASIC_TYPES.
12148         * i960.h (EXTENDED_SDB_BASIC_TYPES): Define.
12149         (PUT_SDB_TYPE): Delete now unnecessary shifting and masking.
12150
12151         * i960.h (i960_output_move_{double,quad}): Declare.
12152
12153 Fri Jun  7 19:22:09 1996  Scott Christley <scottc@net-community.com>
12154
12155         * Makefile.in (OBJC_THREAD_FILE): New variable.
12156         * configure (objc_thread_file): Set new variable to appropriate
12157         values based upon target operating system; default is `thr-single'.
12158         * objc/Makefile (OBJC_THREAD_FILE): Add target and dependency.
12159         (thr.o): Remove OS specific thread files as dependencies.
12160         * objc/thr-decosf1.c: Now compiles as a separate source file, so
12161         include appropriate Objective-C headers.
12162         * objc/thr-{mach,os2,posix,irix,single,solaris,win32}.c: Likewise.
12163         * objc/thr.c: Remove inclusion of source files.
12164         * objc/thr.h (__objc_thread_exit_status): Declare global variable.
12165         * objc/thr-pthreads.c: New file.
12166
12167 Fri Jun  7 19:04:04 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
12168
12169         * m68k.h (TARGET_SWITCHES): Treat -m68302 like -m68000 and -m68332
12170         like -m68020; remove -mno-68302 and -mno-68332.
12171
12172 Fri Jun  7 12:06:12 1996  Per Bothner  <bothner@deneb.cygnus.com>
12173
12174         * expr.c (safe_from_p):  Allow Chill-style variable-sized arrays.
12175
12176 Thu Jun  6 23:11:11 1996  Jeffrey A. Law  <law@cygnus.com>
12177
12178         * h8300.c (h8300_monitor_function_p): New function.
12179         (h8300_os_task_function_p): Likewise.
12180         (os_task, monitor): Variables to note if the current
12181         function is an os_task or monitor.
12182         (function_prologue): Set monitor and/or os_task as needed.  Handle
12183         os_task and monitor functions.
12184         (function_epilogue): Clear monitor and os_task.  Handle os_task and
12185         monitor functions.
12186         (h8300_valid_machine_decl_attribute): Accept "OS_Task" and
12187         "monitor".
12188
12189 Thu Jun  6 20:01:54 1996  Per Bothner  <bothner@cygnus.com>
12190
12191         * gen-protos.c (progname):  New variable (needed by cppalloc.c).
12192         (main):  Set progname.
12193
12194         * cpplib.h (struct parse_file):  Removed.
12195         (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, CPP_OUT_BUFFER):  New macros.
12196         * cpphash.c (cpp_lookup):  Change struct parse_file -> cpp_reader.
12197
12198         * cpplib.c (init_parse_option):  Renamed to cpp_options_init.
12199         (push_parse_file):  Renamed to ...
12200         (cpp_start_read):  Change to return 1 on success, 0 on failure.
12201         (init_parse_file):  Renamed to cpp_reader_init.
12202         * cppmain.c (main):  Use CPP_SET_WRITTEN and cpp_fatal.
12203         Use renamed function names, and return protocols.
12204         * fix-header.c (read_scan_file):  Likewise.
12205
12206         * cpperror.c (cpp_message):  Generalize for "fatal" errors.
12207         (cpp_fatal):  New function (just calls cpp_message).
12208         * cpplib.c (cpp_start_read, cpp_handle_options, cpp_finish,
12209         parse_goto_mark, parse_move_mark):  Use cpp_fatal rather than fatal.
12210
12211         * fix-header.c (check_macro_names):  Fix struct parse_file->cpp_reader.
12212         * cpplib.c (newline_fix):  Remove unused function.
12213
12214 Thu Jun  6 19:47:26 1996  Jim Wilson  <wilson@cygnus.com>
12215
12216         Changes to support parameters and return values in multiple
12217         non-contiguous locations.
12218         * calls.c (expand_call): Handle NIL in PARALLEL.  Handle PARALLEL
12219         parameter in REG.  Handle PARALLEL return value in VALREG.
12220         (emit_library_call, emit_library_call_value): Abort for PARALLEL.
12221         (store_one_arg): Delete code for handling EXPR_LIST.
12222         * expr.c (emit_group_load, emit_group_store): New functions.
12223         (use_group_regs): New function.
12224         (emit_push_insn): Handle PARALLEL parameter in REG.
12225         (expand_assignment): Handle PARALLEL to_rtx.
12226         (store_expr): Handle PARALLEL target.
12227         * expr.h (emit_group_load, emit_group_store, use_group_regs): New
12228         declarations.
12229         * function.c (assign_parms): Handle PARALLEL parameter in ENTRY_PARM.
12230         * stmt.c (expand_value_return): Handle PARALLEL return_reg.
12231
12232         * mips/abi64.h (TYPE_DEPENDENT_REG): Delete.
12233         * mips.c (function_arg): Return PARALLEL for structure with
12234         aligned double fields.
12235         (type_dependent_reg): Delete.
12236         (mips_function_value): Return PARALLEL for structure
12237         with two floating point fields.
12238         * mips/mips.md (call_value): Handle PARALLEL in operands[0].
12239         (call_value_multiple_internal2): New pattern.
12240         * pa.h (FUNCTION_ARG): General PARALLEL instead of EXPR_LIST.
12241         * rs6000.c (init_cumulative_args): Change EXPR_LIST to PARALLEL
12242         in comments.
12243         (function_arg): Generate PARALLEL instead of EXPR_LIST.
12244
12245 Thu Jun  6 18:21:27 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12246
12247         * function.c (assign_parms): Tighten up code that makes REG_EQUIV
12248         notes for parms.
12249
12250         * fold-const.c (fold): Don't do anything with evaluated SAVE_EXPR.
12251
12252 Thu Jun  6 17:54:07 1996  J.T. Conklin  <jtc@cygnus.com>
12253
12254         * m68k.h (TARGET_SWITCHES): Group all floating point options.
12255         When an fp option is selected, unset bits used for other mutually
12256         exclusive fp options.
12257         (OVERRIDE_OPTIONS): Remove special case for SUPPORT_SUN_FPA;
12258         bits used for 68881 and SKY are now cleared by TARGET_SWITCHES.
12259
12260         * m68k.md (movsi_const0, movhi): Favor clr with TARGET_5200.
12261         (add[qhs]3): Don't use two addqw/subqw insns to add small integers to
12262         an address register with TARGET_68060.
12263         (stack push peephole): Use moveq.l with TARGET_5200 (when appropriate).
12264
12265         * m68k.h (MASK_5200, TARGET_5200): New macros.
12266         (TARGET_SWITCHES): Add "m5200".
12267         (LEGITIMATE_INDEX_P): Add TARGET_5200 to conditional expression.
12268         * m68k.c (const_method): Do not synthesize long constants
12269         with byte or word operations with TARGET_5200.
12270         * m68k.md: Disable byte and word arithmetic, rotate, integer
12271         divide, dbcc, etc. insns for TARGET_5200.
12272         * m68k-none.h: (CPU_FPU_SPEC, CPP_SPEC, ASM_SPEC): Support m5200.
12273
12274 Thu Jun  6 17:32:32 1996  Paul Eggert  <eggert@twinsun.com>
12275
12276         * fixproto (subdirs): Work around Solaris 2.5
12277         /usr/xpgr/bin/sed problem with \+\+.
12278
12279 Thu Jun  6 15:06:27 1996  Jim Wilson  <wilson@cygnus.com>
12280
12281         * c-decl.c (grokdeclarator): Call pop_obstacks after creating
12282         TYPE_DECL.
12283
12284         * loop.c (strength_reduce): If HAVE_cc0 defined, disable auto_inc_opt
12285         if it would put an insn between a cc0 setter/user pair.
12286
12287 Thu Jun  6 13:06:54 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12288
12289         * rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): If __sun__ is
12290         defined, treat that as little endian.
12291
12292 Wed Jun  5 20:04:53 1996  Jim Wilson  <wilson@cygnus.com>
12293
12294         * i960.h (ROUND_TYPE_ALIGN): Add check for TYPE_PACKED.
12295
12296         * sh.h (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
12297         * sh.md (branch_true): Add comment about T-bit compares.
12298
12299 Tue Jun  4 23:08:34 1996  Per Bothner  <bothner@deneb.cygnus.com>
12300
12301         * cpplib.h, cpplib.c:  Remove support for !STATIC_BUFFERS.
12302         * cpplib.h:  Use unsigned char rather than U_CHAR.
12303         * cpplib.h (cpp_reader):  Add destructor #ifdef __cplusplus.
12304         (cpp_cleanup):  New prototype.
12305         * cpplib.c (special_symbol, do_once, do_include, cpp_get_token):
12306         Compare cpp_buffer against CPP_NULL_BUFFER, not NULL.
12307
12308         * cpplib.c (dump_special_to_buffer):  New function.
12309         (initialize_builtins):  Use it.
12310
12311 Wed Jun  5 19:10:22 1996  Jeffrey A. Law  <law@cygnus.com>
12312
12313         * pa/pa.h (TEXT_SPACE_P): Fix thinko in last change.
12314
12315 Wed Jun  5 16:25:51 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12316
12317         * rs6000.h (ASM_DEFAULT_SPEC): Default to "", not -mpwr.
12318
12319         * sysv4.h (SUBTARGET_SWITCHES): Add -mshlib.
12320         (LINK_PATH_SPEC): Add -compat-bsd support from Solaris.
12321         (LINK_SPEC): Eliminate %{b} and %{G}, since they conflict with GCC
12322         switches.  Defer shared library support to LINK_SHLIB_SPEC.  Defer
12323         target selection to LINK_TARGET_SPEC.
12324         (LINK_SHLIB_SPEC): Provide two different versions, depending on
12325         whether shared libraries are default or not.  Make shared
12326         libraries not default until linker is fixed.
12327         (LINK_OS_*_SPEC): New specs for OS specific linker switches.
12328         (SUBTARGET_EXTRA_SPECS): Add new specs.
12329
12330         * {sol2,sysv4}.h (LINK_SPEC): Move Solaris link into general link spec.
12331
12332         * {sysv4,sysv4le,eabile}.h (LINK_TARGET_SPEC): Only pass -oformat
12333         to the linker if the user is changing the default endian format.
12334
12335         * {sol2,linux,eabisim,eabilesim}.h (LINK_OS_DEFAULT_SPEC): Define
12336         to use the appropriate OS link spec.
12337
12338 Wed Jun  5 16:35:10 1996  Ian Lance Taylor  <ian@cygnus.com>
12339
12340         * ginclude/stddef.h: Fix typo: TYPE_ptrdiff_t to _TYPE_ptrdiff_t.
12341
12342 Wed Jun  5 15:52:57 1996  Per Bothner  <bothner@kalessin.cygnus.com>
12343
12344         * varasm.c (output_constructor):  Handle RANGE_EXPR in array index.
12345
12346 Wed Jun  5 13:45:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12347
12348         * sparc.md (*call_{address,symbolic}_struct_value_sp32): Allow
12349         operand 2 to be const0_rtx.
12350
12351 Tue Jun  4 16:43:44 1996  Jason Merrill  <jason@yorick.cygnus.com>
12352
12353         * varasm.c (make_decl_rtl): Don't update DECL_ASSEMBLER_NAME for
12354         local statics.
12355
12356         * c-decl.c (start_decl): Always set DECL_COMMON on statics.
12357         * varasm.c (assemble_variable): Only treat vars with DECL_COMMON
12358         as common.
12359
12360 Tue Jun  4 14:55:49 1996  Jeffrey A. Law  <law@cygnus.com>
12361
12362         * pa.c (reloc_needed): New function.
12363         * pa.h (TEXT_SPACE_P): Variables/constants with initializers
12364         requiring relocs never live in the text space.
12365
12366 Tue Jun  4 14:10:46 1996  Ian Lance Taylor  <ian@cygnus.com>
12367
12368         * sh.c (fp_zero_operand): Do not accept minus zero.
12369
12370         * sh.h (ASM_OUTPUT_LOOP_ALIGN): Define.
12371         (ASM_OUTPUT_ALIGN_CODE): Define.
12372         (ADJUST_INSN_LENGTH): Add in bytes that may be added by
12373         alignment.
12374         * sh.c (output_branch): Run ADJUST_INSN_LENGTH in reverse to get
12375         correct length.  Just call abort rather than returning "bad".
12376         (find_barrier): Adjust limits for possible alignment.
12377
12378 Tue Jun  4 09:35:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12379
12380         * rs6000/t-solaris: New target config file for PowerPC Solaris
12381         without gas.
12382
12383         * rs6000/t-ppc: Eliminate all multilib varients except for
12384         software floating point.
12385
12386         * configure (powerpcle-*-solaris*): If not --with-gnu-as, use
12387         t-solaris, not t-ppc.
12388
12389         * rs6000/sol2.h (MULTILIB_DEFAULTS): Add correct defaults for
12390         Solaris.
12391
12392         * rs6000/sysv4.h (ASM_OUTPUT_SECTION_NAME): Clone from svr4.h, omit
12393         @progbits, since Solaris assembler doesn't like it.
12394         (LIB_SOLARIS_SPEC): If -msolaris-cclib, add libabi.a.
12395         ({START,END}FILE_SOLARIS_SPEC): If -msolaris-cclib, use explicit
12396         pathnames for the Solaris compiler start/end files.
12397         (ASM_SPEC): Pass -mno-regnames to the assembler.
12398
12399 Mon Jun  3 19:40:10 1996  Jim Wilson  <wilson@cygnus.com>
12400
12401         * mips/abi64.h (CPP_SPEC): Make -mabi=n32 the default.
12402         * mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT, MULTILIB_DEFAULTS,
12403         ASM_SPEC, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): Likewise.
12404         * mips.md (tablejump_internal4+1): Fix typo in condition.
12405         * mips/x-iris6 (CC, OLDCC): Define to be `cc -32'.
12406
12407 Mon Jun  3 07:57:35 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12408
12409         * tree.def ([LR]SHIFT_EXPR): Remove `a' from printed names.
12410
12411         * sparc.md (call): Mask unimp operand to 12 bits, just like Sun.
12412
12413         * expr.c (store_field): Fix typo in last change; update TARGET addr.
12414
12415         * c-decl.c (start_struct): Set TYPE_PACKED from flag_pack_struct.
12416         (start_enum): Likewise but from flag_short_enums.
12417         (finish_enum): Test TYPE_PACKED, not flag_short_enums.
12418         * stor-layout.c (layout_decl): Test DECL_PACKED and TYPE_PACKED
12419         instead of flag_pack_struct.
12420         (layout_record): Likewise.
12421
12422 Sun Jun  2 19:41:14 1996  Jim Wilson  <wilson@cygnus.com>
12423
12424         * mips.md (tablejump_internal3, tablejump_internal4): New patterns.
12425         (tablejump): Use them for PIC code.
12426
12427 Fri May 31 17:26:53 1996  Stan Cox  <coxs@dg-rtp.dg.com>
12428
12429         * i386.c (ix86_expand_epilogue): Don't generate references to an
12430         exposed vacated stack.
12431         * i386.md (epilogue_set_stack_ptr): New.
12432
12433 Fri May 31 15:07:49 1996  Jim Wilson  <wilson@cygnus.com>
12434
12435         * mips/abi64.h: Add -mabi=n32 support.
12436         (ABI_64BIT): Delete.
12437         (TARGET_LONG64, CPP_SPEC, STACK_BOUNDARY, MIPS_STACK_ALIGN,
12438         GP_ARG_LAST, FP_ARG_LAST, SUBTARGET_CONDITIONAL_REGISTER_USAGE,
12439         MAX_ARGS_IN_REGISTER, FUNCTION_ARG_PADDING, RETURN_IN_MEMORY,
12440         SETUP_INCOMING_VARARGS): Modify.
12441         (REG_PARM_STACK_SPACE): Ifdef out.
12442         (TARGET_DEFAULT, SUBTARGET_TARGET_OPTIONS): Define.
12443         * mips/iris6.h: Add -mabi=n32 support.
12444         (TARGET_DEFAULT, ASM_OUTPUT_INTERNAL_LABEL,
12445         ASM_GENERATE_INTERNAL_LABEL): Delete.
12446         (MULTILIB_DEFAULTS, ASM_SPEC, EXTRA_SECTION_FUNCTIONS,
12447         ASM_OUTPUT_ALIGNED_LOCAL, STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
12448         Modify.
12449         (MIPS_ABI_DEFAULT, LOCAL_LABEL_PREFIX): Define.
12450         * mips.c: Add -mabi=n32 support.
12451         (mips_const_double_ok, mips_move_1word, mips_move_2words,
12452         function_arg, override_options, mips_asm_file_start,
12453         compute_frame_size, save_restore_insns, function_prologue,
12454         mips_expand_prologue, function_epilogue, mips_function_value): Modify.
12455         (mips_abi, mips_abi_string): Define
12456         * mips.h: Add -mabi=n32 support.
12457         (ABI_64BIT): Delete.
12458         (TARGET_OPTIONS, INITIAL_ELIMINATION_OFFSET, GO_IF_LEGITIMATE_ADDRESS,
12459         CONSTANT_ADDRESS_P, LEGITIMATE_CONSTANT_P, LEGITIMIZE_ADDRESS,
12460         ASM_OUTPUT_ADDR_DIFF_ELT): Modify.
12461         (enum mips_abi_type, SUBTARGET_TARGET_OPTIONS): Define.
12462         (mips_abi, mips_abi_string): Declare.
12463         * mips.md (jump, tablejump_internal1, tablejump_internal2): Add
12464         -mabi=n32 support.
12465         * mips/t-iris6 (MULTILIB_OPTIONS): Add -mabi=n32 support.
12466         * mips/xm-irix6.h (HOST_BITS_PER_LONG): Use _MIPS_SZLONG not 64.
12467         * ginclude/va-mips.h (va_start): Add -mabi=n32 support.
12468
12469 Fri May 31 14:45:30 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12470
12471         * rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -msolaris-cclib to use
12472         the Sun compiler's crt files instead of ours.
12473         ({START,END}FILE_SOLARIS_SPEC): If -msolaris-cclib, use the Sun
12474         compiler's crt files instead of ours.
12475         (SUBTARGET_OVERRIDE_OPTIONS): Don't set -msdata=data for Solaris.
12476         (SBSS_SECTION_ASM_OP): For Solaris, don't use @nobits.
12477         (CPP_OS_SOLARIS_SPEC): Remove -Asystem(unix) and -Asystem(svr4).
12478
12479         * rs6000/t-ppc{,gas} (MULTILIB*): Add Solaris specific multilibs.
12480
12481         * rs6000/eabi{,le}sim.h (*_DEFAULT_SPEC): Rather than using
12482         duplicate definitions, just use %(...) so that there is only one
12483         place in the specs file where the switches are defined.
12484         * rs6000/{linux,sol2}.h (*_DEFAULT_SPEC): Ditto.
12485
12486         * rs6000/sol2.h (CPP_PREDEFINES): Use the standard one in sysv4.h.
12487         (RS6000_ABI_NAME): Default is solaris.
12488         (ASM_OUTPUT_ALIGNED_LOCAL): Don't redefine.
12489
12490         * rs6000/sol-c{i.asm,n.asm,c0.c}: Provide more things that Solaris
12491         needs for program startup.
12492
12493 Thu May 30 21:57:34 1996  Mike Stump  <mrs@cygnus.com>
12494
12495         * tree.def (OFFSET_REF): Remove.
12496         * expr.c (expand_expr, case OFFSET_REF): Likewise.
12497         * tree.c (substitute_in_expr): Remove OFFSET_REF code.
12498
12499 Wed May 29 14:54:44 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12500
12501         * rs6000/eabi.asm (__eabi): If not -mrelocatable, don't assemble
12502         relocatable functions, so that it can be assembled with the
12503         Solaris assembler.
12504
12505         * rs6000/sysv4.h (CPP_SYSV_SPEC): Define _RELOCATABLE if
12506         -mrelocatable-lib as well as -mrelocatable.
12507
12508         * rs6000.c (rs6000_file_start): New function to print some more
12509         information to the asm file.
12510         * rs6000/{sysv4,win-nt,rs6000}.h (ASM_FILE_START): Call it.
12511
12512 Tue May 28 15:21:24 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12513
12514         * rs6000.h (FIRST_PSEUDO_REGISTER): Bump to 77.
12515         ({FIXED,CALL_USED}_REGISTERS): Add support for fpmem pseudo register.
12516         (REG_ALLOC_ORDER, HARD_REGNO_{NREGS,MODE_OK}): Likewise.
12517         (REGISTER_MOVE_COST, reg_class, REG_CLASS_{NAMES,CONTENTS}): Likewise.
12518         (REGNO_REG_CLASS, PREFERRED_RELOAD_CLASS): Likewise.
12519         (CLASS_{MAX_NREGS,CANNOT_CHANGE_SIZE,MAX_NREGS}): Likewise.
12520         (rs6000_stack, {,DEBUG_}REGISTER_NAMES): Ditto.
12521         (FPMEM_{REGNO_P,REGNUM}): New macros for fpmem register.
12522         (rs6000_fpmem_{offset,size}): New global variables.
12523         (RS6000_VARARGS_OFFSET): Fpmem temporary storage is located
12524         between outgoing arg area and varargs save area.
12525         (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Likewise.
12526         (PREDICATE_CODES): Add fpmem_operand.
12527         ({count_register,fpmem}_operand): Add declarations.
12528
12529         * rs6000.c ({rs6000,alt}_reg_names): Add support for fpmem 'register'.
12530         (rs6000_fpmem_{offset,size}): New global variables.
12531         (fpmem_operand): Return true for fpmem registers.
12532         (gpc_reg_operand): The fpmem register is not general purpose.
12533         (includes_rshift_p): Add casts to silence warnings from Solaris
12534         PowerPC host compiler.
12535         (print_operand): Add 'v' operand type for the upper 16 bits of
12536         signed constants, to placate the Solaris assembler.
12537         ({rs6000,debug}_stack_info): Add support for fpmem 'register'.
12538         (output_epilog): Likewise.
12539
12540         * rs6000.md (addsi3,movsi,movsf,movdi): Use %v for constants with
12541         the upper 16 bits, to get the sign correct for PowerPC Solaris.
12542         (float{,uns}sidf2,fix_truncdfsi2): Rewrite to use 'register' 76
12543         for the memory location used to convert between float and integer.
12544
12545         * sysv4.h (ASM_OUTPUT_{CON,DE}STRUCTOR): Use code laid down in
12546         .init and .fini for making constructors and destructors under
12547         Solaris.
12548         (ASM_SPEC): Do not pass -u to the assembler.
12549         (CC1_SPEC): -mrelocatable implies -meabi.
12550
12551         * sol2.h (RS6000_ABI_NAME): Default ABI is Solaris, not System V.4.
12552         (ASM_OUTPUT_ALIGNED_LOCAL): Don't define Solaris specific method.
12553
12554 Mon May 27 06:39:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12555
12556         * expr.c (expand_builtin, case BUILT_IN_{LONG,SET}JMP):
12557         Convert block address from ptr_mode to Pmode.
12558
12559 Sun May 26 20:05:43 1996  Doug Evans  <dje@cygnus.com>
12560
12561         * gcc.c (MSDOS pexecute): Call xmalloc, not malloc.
12562
12563 Sun May 26 08:31:54 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12564
12565         * configure (vax-*-{sysv}): tm_file and xm_file now list.
12566         (vax-*-ultrix): tm_file is now list.
12567         (we32k-att-sysv*): xm_file now list.
12568         * vax/xm-netbsd.h: Deleted.
12569         * vax/netbsd.h: No longer include vax.h and config/netbsd.h.
12570         * vax/ultrix.h, vax/vaxv.h: No longer include vax.h.
12571         * vax/xm-vaxv.h: No longer include xm-vax.h.
12572         * xm-we32k.h: No longer include xm-svr3.h.
12573
12574         * configure: Separately set target_cpu_default for two
12575         case statements and then combine if both set.
12576         (alpha-*-winnt3): tm_file and xm_file are now list.
12577         Set target_cpu_default to 64.
12578         * winnt/config-nt.bat: Make .h files properly for Alpha.
12579         * alpha.h (WINDOWS_NT): No longer defined and used.
12580         (MASK_WINDOWS_NT, TARGET_WINDOWS_NT): New macros.
12581         (ASM_OUTPUT_ADDR_DIFF_ELT): Use TARGET_WINDOWS_NT.
12582         * alpha.c (output_prolog): Test TARGET_WINDOWS_NT, not WINDOWS_NT.
12583         * alpha.md: Likewise.
12584         * alpha/config-nt.sed: Properly set tm_file and {build,host}_xm_file.
12585         * alpha/win-nt.h: Don't include alpha.h
12586         (WINDOWS_NT): No longer define.
12587         * alpha/xm-winnt.h: Don't include xm-alpha.h and winnt/xm-winnt.h.
12588
12589 Fri May 24 12:34:22 1996  Doug Evans  <dje@seba.cygnus.com>
12590
12591         * configure (cpu_type): Add case for arm.
12592         (sparclet-*-aout*): Delete extra_headers.
12593
12594         * varasm.c (asm_output_bss): New argument DECL.
12595         Use ASM_DECLARE_OBJECT_NAME if defined.
12596         (asm_output_aligned_bss): Likewise.
12597         (assemble_variable): Pass DECL to ASM_OUTPUT{,_ALIGNED}_BSS.
12598         * arm/aout.h (ASM_OUTPUT_ALIGNED_BSS): Update.
12599         * h8300.h (ASM_OUTPUT_BSS): Update.
12600         * i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update.
12601         * i386/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
12602         * m68k/coff.h (ASM_OUTPUT_ALIGNED_BSS): Update.
12603         * m68k/linux.h (ASM_OUTPUT_ALIGNED_BSS): Update.
12604         * m68k/m68k-aout.h (ASM_OUTPUT_BSS): Update.
12605         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
12606         * rs6000/win-nt.h (ASM_OUTPUT_ALIGNED_BSS): Update.
12607         * sparc/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Update.
12608
12609 Thu May 23 19:55:52 1996  Jim Wilson  <wilson@cygnus.com>
12610
12611         * combine.c (set_nonzero_bits_and_sign_copies): Set reg_sign_bit_copies
12612         to one not zero to indicate value is unknown.
12613
12614 Thu May 23 18:39:24 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
12615
12616         * config/netbsd.h (SWITCH_TAKES_ARG): Add -R.
12617         (LINK_SPEC): Add %{R*}.
12618
12619         * m68k/lb1sf68.asm: Construct exception masks at compile time
12620         instead of or'ing in bits at run time.
12621
12622 Thu May 23 15:53:06 1996  Ian Lance Taylor  <ian@cygnus.com>
12623
12624         * sh.md: Add new instruction types fp and fpdiv.  Set new
12625         instruction types where appropriate.  Add function unit fp.
12626         Claim that store instructions use function unit memory.
12627
12628 Thu May 23 00:36:19 1996  Jeffrey A. Law  <law@cygnus.com>
12629
12630         * h8300.h (CONSTANT_ADDRESS_P): Don't accept CONST or HIGH on H8/300H.
12631         * h8300.md: Use "m" rather than "o" constraint everywhere appropriate.
12632         Cleanup use of "i" and "n" constraints.
12633
12634 Wed May 22 17:43:37 1996  Jim Wilson  <wilson@cygnus.com>
12635
12636         * fixincludes (pthread.h): Add extern to __page_size* declarations
12637         for AIX 4.1.x.
12638
12639         * combine.c (nonzero_bits): Don't assume arg pointer has same
12640         alignment as stack pointer.
12641
12642 Wed May 22 16:09:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12643
12644         * rs6000/sysv4.h (LINK_START_DEFAULT_SPEC): Spell macro correctly.
12645         (LIB_DEFAULT_SPEC): Provide default version.
12646
12647 Wed May 22 11:23:57 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
12648
12649         * i386.md (return_pop_internal): new pattern.
12650         (pop): disable emitting of bogus move instruction.
12651         * i386.c (ix86_expand_epilogue): use gen_return_pop_internal to
12652         simultanously return and pop args; removed stray semicolon.
12653         * config/linux-aout.h, config/linux.h (SET_ASM_OP): Added for
12654         __attribute__ ((alias ())) support.
12655
12656 Wed May 22 08:06:42 1996  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu.edu>
12657
12658         * combine.c (init_reg_last_arrays, setup_incoming_promotions):
12659         Correct prototypes.
12660
12661 Tue May 21 13:42:17 1996  Jeffrey A. Law  <law@cygnus.com>
12662
12663         * h8300.md (div and mode patterns): Rewrite.
12664
12665         * pa.c (basereg_operand): Never accept a CONST_INT.
12666
12667 Tue May 21 12:26:40 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12668
12669         * pa/pa-hpux9.h, pa-osf.h (LINK_SPEC): Provide version for Snake.
12670
12671 Tue May 21 07:20:48 1996  Pat Rankin  <rankin@eql.caltech.edu>
12672
12673         * vax.h (TARGET_NAME): Define unless already defined.
12674         (TARGET_VERSION): Print TARGET_NAME.
12675         * vax/vms.h (TARGET_NAME): Always redefine.
12676         (TARGET_VERSION): Delete; retain vax.h definition.
12677
12678 Mon May 20 14:00:44 1996  Jim Wilson  <wilson@cygnus.com>
12679
12680         * sh.c (output_file_start): Delete misplaced semicolon.
12681
12682 Mon May 20 11:58:15 1996  Jeffrey A. Law  <law@cygnus.com>
12683
12684         * reorg.c (relax_delay_slots): Call update_block before
12685         redirecting a branch past a redundant insn.
12686
12687 Sun May 19 16:40:53 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
12688
12689         * Makefile.in (libobjc.a, sublibobjc.a): 'specs' added to
12690         dependencies.
12691
12692 Sun May 19 12:25:48 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12693
12694         * configure: Add new switch to provide default for cpu_type;
12695         delete numerous settings of it in main switch.
12696         (hppa): Reflect rerrangements below; use new configure features.
12697         * pa/pa-gas.h, pa/pa-pro-end.h: New files.
12698         * pa/pa1.h, pa/pa1-osf.h, pa/pa1-ghpux.h, pa/pa1-oldas.h: Deleted.
12699         * pa/pa1-ghpux9.h, pa/pa1-hpux9.h, pa/pa1-hpux.h: Deleted.
12700         * pa/pa1-ghiux.h, pa/pa1-hiux.h, pa/pa-ghpux.h: Deleted.
12701         * pa/pa-gux7.h, pa/pa-ghiux.h: Deleted.
12702         * pa/pa-hiux.h: No longer include pa-hpux.h.
12703         * pa/pa-hpux.h: No longer include pa.h.
12704         (TARGET_DEFAULT): Unset before setting.
12705         (LINK_SPEC): Provide option for pa1.
12706         * pa/pa-hpux7.h: No longer include pa.h.
12707         (HP_FP_ARG_DESCRIPTOR_REVERSED): Don't define here.
12708         * pa/pa-hpux9.h, pa/pa-oldas.h: No longer include pa-hpux.h.
12709         (TARGET_DEFAULT): Don't need to set here.
12710         * pa/pa-osf.h: No longer include pa.h.
12711         (TARGET_DEFAULT): Don't define; identical to default.
12712         * pa/pa-pro.h: No longer include pa.h.
12713         Move definitions after include to new file pa-pro-end.h.
12714         * pa.h (TARGET_SWITCHES): Include TARGET_CPU_DEFAULT.
12715         (TARGET_CPU_DEFAULT): Provide default value.
12716         (CPP_SPEC): Test TARGET_CPU_DEFAULT too.
12717
12718         * Makefile.in (function.o): Includes bc-emit.h.
12719         (reg-stack.o): Includes insn-flags.h.
12720         * expr.h (function_value): Deleted; no such function.
12721         (bc_build_calldesc, bc_runtime_type_code): New declarations.
12722         * c-decl.c: Add prototypes for all static functions.
12723         * c-iterate.c: Likewise.
12724         * dbxout.c: Likewise.
12725         (adspath): Delete; never used and has numerous parse errors.
12726         * dwarfout.c: If not GNUC, make `inline' null; otherwise, leave alone.
12727         Add `static' to inline functions.
12728         Add prototypes for static function.
12729         * expr.c (bc_runtime_type_code): Delete redundant declaration.
12730         * function.c: Include bc-emit.h.
12731         ({save,restore}_machine_status): Add prototype for args.
12732         (bc_runtime_type_code, bc_build_calldesc): Delete redundant decls.
12733         (bc_emit_trampoline, bc_end_function): Likewise.
12734         * reg-stack.c: Include insn-flags.h.
12735         Add prototypes for static functions.
12736         (gen_jump, gen_movdf, gen_movxf): Delete redundant declarations.
12737         (find_regno_note, emit_jump_insn_before, emit_label_after): Likewise.
12738         (swap_rtx_condition): Now static.
12739         * sdbout.c: Add prototypes for static functions.
12740         (sdbout_parms, sdbout_reg_parms): Delete extra parm to plain_type.
12741
12742 Sun May 19 11:50:10 1996  John Carr <jfc@mit.edu>
12743
12744         * alpha.c (alpha_emit_conditional_move): Compare to 0 in correct mode.
12745
12746 Sat May 18 20:17:27 1996  Jim Wilson  <wilson@cygnus.com>
12747
12748         * sh.c (prepare_move_operands): If source is r0, and dest is reg+reg
12749         MEM, then copy source to a pseudo-reg.
12750         * sh.md (untyped_call): New pattern.
12751
12752         * unroll.c (copy_loop_body): When update split DEST_ADDR giv,
12753         check to make sure it was split.
12754         (find_splittable_givs): Fix reversed test of verify_addresses result.
12755
12756 Sat May 18 10:26:04 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12757
12758         * tree.c (unsave_expr_now): Avoid use of NULL_RTX since no rtl.h.
12759
12760         * configure: Set cpu_default, tm_file, and xm_file early.
12761         Remove redundant settings of those, tmake_file, and xmake_file.
12762         Use ${tm_file} and ${xm_file} to refer to the main files.
12763         Sort some entries for consistency and reformat some others.
12764         (rs6000, powerpc): Remove bogus test on host == target.
12765         (alpha-*-linux): xm-linux.h no longer includes xm-alpha.
12766         (alpha-*-osf*): Remove redundant setting of target_cpu_default.
12767         (*-convex-*): Use target_cpu_default instead of separate .h files.
12768         (clipper-intergraph-clix*): clix.h no longer includes any files.
12769         (i860, i960, pdp11): Reflect removal of includes listed below.
12770         * alpha/xm-linux.h: No longer include xm-alpha.h.
12771         * clipper/clix.h: No longer include clipper.h and svr3.h.
12772         * convex.h: Provide a default for TARGET_DEFAULT.
12773         Take "or" of TARGET_DEFAULT and TARGET_CPU_DEFAULT everywhere.
12774         * convex/convex{1,2,32,34,38}.h: Deleted.
12775         * i860/bsd-gas.h: No longer include bsd.h.
12776         * i860/bsd.h: No longer include i860.h.
12777         * i860/fx2800.h: No longer include i860/sysv4.h.
12778         (OUTPUT_TDESC): No longer define.
12779         (ASM_FILE_END): Move redefinition to here.
12780         * i860/mach.h: No longer include i860.h.
12781         * i860/paragon.h, i860/sysv3.h: No longer include i860.h and svr3.h.
12782         * i860/sysv4.h: No longer include i860.h and svr4.h.
12783         (ASM_FILE_END): Delete redefinition from here.
12784         * i860/xm-fx2800.h: No longer include xm-i860.h.
12785         * i860/xm-paragon.h, i860/xm-sysv{3,4}.h: Deleted.
12786         * i960/i960-coff.h: No longer include i960.h and dbxcoff.h.
12787         * i960/vx960-coff.h: No longer include i960-coff.h.
12788         * i960/vx960.h: No longer include i960.h.
12789         * pdp11/2bsd.h: No longer include pdp11.h.
12790
12791         * i370/i370.h: Renamed from mvs.h.
12792         * i370/i370.c: Renamed from mvs370.c.
12793         * i370/t-i370: Renamed from t-mvs.
12794         * i370/xm-i370.h: Renamed from xm-mvs.h.
12795         * configure (i370-*-mvs*): Use default names for all files.
12796
12797         * c-parse.in: Update number of shift/reduce conflicts for objc.
12798
12799 Sat May 18 08:20:17 1996  Dennis Glatting  (dennisg@plaintalk.bellevue.wa.us)
12800
12801         * m68k/next.h (FINALIZE_TRAMPOLINE): Add missing backslashes.
12802
12803 Fri May 17 19:57:20 1996  Pat Rankin  <rankin@eql.caltech.edu>
12804
12805         * vax/xm-vms.h (dbxout_resume_previous_source_file): New macro.
12806
12807 Fri May 17 14:20:13 1996  Mike Stump  <mrs@cygnus.com>
12808
12809         * expr.c (expand_expr, cond TARGET_EXPR): Make TARGET_EXPRs
12810         redoable for UNSAVE_EXPR.
12811         * stmt.c (expand_decl_cleanup): Wrap the cleanup in an UNSAVE_EXPR
12812         to that we can redo it.
12813         * tree.c (unsave_expr_now): Handle TARGET_EXPRs fully now.
12814         * tree.def (TARGET_EXPR): Add a fourth field so that TARGET_EXPRs
12815         are redoable.
12816
12817         * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
12818         frontend to the backend where it belongs.
12819         * tree.c (unsave_expr{,_now}): Likewise.
12820         * tree.def (UNSAVE_EXPR): Likewise.
12821         * tree.h (unsave_expr{,_now}): Likewise.
12822
12823 Fri May 17 15:04:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12824
12825         * rs6000.md (lshrsi3 insns): Add special case code for shifting by
12826         0 to avoid bad code generated with no optimization.
12827
12828 Fri May 17 13:50:55 1996  Jason Merrill  <jason@yorick.cygnus.com>
12829
12830         * i386/unix.h (ASM_OUTPUT_MI_THUNK): Define.
12831         * i386/{att.h,bsd.h,sun386.h} (ASM_OUTPUT_MI_THUNK): Delete.
12832
12833 Fri May 17 13:34:28 1996  Ian Lance Taylor  <ian@cygnus.com>
12834
12835         * fp-bit.c (_fpdiv_parts): Correct sign handling when
12836         dividing zero or infinity by something.
12837
12838 Fri May 17 12:36:36 1996  Doug Evans  <dje@seba.cygnus.com>
12839
12840         Standardize option output in assembler files.
12841         * Makefile.in (toplev.o): Pass -DTARGET_NAME.
12842         * arm/aout.h (ASM_OUTPUT_OPTIONS): Delete.
12843         (ASM_FILE_START): Delete option output support.
12844         * arm.c (output_option, output_options, m_options): Delete.
12845         * m88k.c (output_file_start): Delete option output support.
12846         * m88k.h (ASM_COMMENT_START): Define.
12847         * mips.c (target_switches, print_options): Delete.
12848         (mips_asm_file_start): Put output of -G,Cpu,ISA here.
12849         * mips.h (ASM_COMMENT_START): Change from "\t\t#" to " #".
12850         * rs6000.c (output_option, m_options, output_options): Delete.
12851         * rs6000.h (ASM_OUTPUT_OPTIONS): Delete.
12852         (ASM_COMMENT_START): Define.
12853         (ASM_FILE_START): Delete option output support.
12854         * rs6000/sysv4.h (ASM_FILE_START): Likewise.
12855         * rs6000/win-nt.h (ASM_FILE_START): Likewise.  Delete duplicate.
12856         * sh.c (output_option, m_options, output_options): Delete.
12857         (output_file_start): Delete option output support.
12858         * sh.h (ASM_FILE_START): Likewise.
12859         (ASM_COMMENT_START): Define.
12860         * dwarfout.c (*): flag_verbose_asm renamed to flag_debug_asm.
12861         * flags.h (flag_debug_asm): Declare.
12862         * toplev.c (print_version): New function.
12863         (print_single_switch): New arguments pos, max, indent, sep, term.
12864         (print_switch_values): New arguments pos, max, indent, sep, term.
12865         Update call to print_single_switch.  Output options passed and
12866         options enabled.
12867         (MAX_LINE): New macro.
12868         (flag_debug_asm): Define.
12869         (compile_file): Output options to assembler file.
12870         (main): Recognize -dA.  Call print_version.  Update call to
12871         print_switch_values.
12872         (line_position): Deleted.
12873
12874 Fri May 17 10:50:44 1996  Stan Cox  (coxs@dg-rtp.dg.com)
12875
12876         * i386.c (function_prologue, ix86_expand_prologue,
12877         function_epilogue, ix86_expand_epilogue): Generate prologue and
12878         epilogue as RTL (prior to scheduling) instead of emitting asm.
12879         (override_options): If only -march is given, make it the default -mcpu.
12880         * i386.h (FUNCTION_BEGIN_EPILOGUE): Renamed from FUNCTION_EPILOGUE.
12881         * i386.md (return, return_internal, prologue, prologue_set_got,
12882         prologue_get_pc, epilogue, leave, pop): New patterns for emitting
12883         asm from prologue and epilogue RTL.
12884         * m88k/t-dgux (T_CFLAGS): Delete.
12885         * m88k/x-dgux (X_CFLAGS): New.
12886
12887 Fri May 17 09:54:23 1996  Jim Meyering  (meyering@asic.sc.ti.com)
12888
12889         * Makefile.in (stamp-crt{,S}): Use -o to avoid conflicts if
12890         both of these are built in parallel.
12891
12892 Fri May 17 08:55:19 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12893
12894         * expmed.c (store_split_bit_field): Don't assume the alignment
12895         of VALUE is the same as the record.
12896
12897         * configure: Write #define TARGET_CPU_DEFAULT into tm.h
12898         instead of defining MAYBE_TARGET_DEFAULT in Makefile.
12899         (alpha-*-linux): Set target_cpu_default to 4 and xmake_file to none.
12900         (alpha-*-osf*): Set target_cpu_default to 4 if --gas.
12901         * Makefile.in (gcc.o, toplev.o, $(out_object_file)):
12902         Remove MAYBE_TARGET_DEFAULT.
12903
12904         * combine.c (insn_cuid): New function.
12905         (INSN_CUID): Sometimes call it.
12906
12907 Fri May 17 08:12:37 1996  Scott Christley <scottc@net-community.com>
12908
12909         * objc/sendmsg.c (objc_get_uninstalled_dtable): New function.
12910         * objc/objc-api.h (objc_get_uninstalled_dtable): New declaration.
12911
12912         * objc/thr-os2.c, objc/thr-posix.c, objc/thr-mach.c: New files.
12913         * objc/THREADS.MACH: New file.
12914
12915         * objc/sendmsg.c (nil_method): Deleted from here.
12916         * objc/nil_method.c: New file.
12917         * Makefile (OBJC_O): Add dependency for nil_method.c.
12918
12919         * objc/hash.c (hash_is_key_in_hash): New function.
12920         * objc/hash.h: Include objc/objc.h here instead of in objc/hash.c
12921         to get BOOL typedef.
12922
12923 Fri May 17 08:01:48 1996  Doug Rupp  (rupp@gnat.com)
12924
12925         * msdos/configur.bat: If Ada subdirectory present, adjust Makefile.
12926
12927 Fri May 17 07:40:04 1996  Ulrich Drepper  (drepper@cygnus.com)
12928
12929         * stddef.h: If need_wint_t defined, nothing in this file is needed.
12930         (_WINT_T, __WINT__TYPE__, wint_t): Define under certain circumstances.
12931
12932 Thu May 16 18:53:25 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12933
12934         * fold-const.c (fold, case EQ_EXPR): When folding VAR++ = CONST,
12935         mask the new const if VAR is a bitfield reference; also for VAR--.
12936
12937 Thu May 16 18:29:03 1996  Doug Evans  <dje@seba.cygnus.com>
12938
12939         * varasm.c (function_section): Delete flag_function_sections support.
12940         (assemble_start_function): Put it here.  Use UNIQUE_SECTION if defined.
12941
12942 Wed May 15 13:35:11 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
12943
12944         * rs6000.{h,c,md} (rs6000_pic_register): Delete all uses, use
12945         pic_offset_table_rtx instead.
12946
12947         * rs6000.md (move_to_float): Rewrite so that it uses the register
12948         allocator to allocate the stack temp, instead of calling
12949         rs6000_stack_temp.
12950         (fix_truncdfsi2): Likewise.
12951
12952         * rs6000.c (rs6000_stack_temp): Delete, no longer used.
12953
12954 Wed May 15 10:39:27 1996  Jeffrey A. Law  <law@cygnus.com>
12955
12956         * h8300.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
12957
12958 Sat May 11 07:42:59 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12959
12960         * expr.c (store_field): Support BLKmode bitfield if aligned on
12961         byte boundary using emit_block_move.
12962         (expand_expr, case COMPONENT_REF): Likewise.
12963
12964 Fri May 10 18:33:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
12965
12966         * configure (alpha-*-linux): Reverse order in tm_file list.
12967         Delete xmake_file.
12968         * alpha/x-linux: Deleted.
12969         * alpha/linux.h (ASM_FINAL_SPEC): Add #undef.
12970         * alpha/xm-linux.h: Remove bogus trailing #endif.
12971
12972         * loop.c (maybe_eliminate_biv_1): Disable all but two cases
12973         of biv elimination with givs and restrict those two cases to
12974         an ADD_VAL that is an address.
12975
12976         * flow.c (mark_set_1, mark_used_regs): Clean up usages
12977         of ALL_NEEDED; change to SOME_NOT_NEEDED and set properly.
12978
12979 Fri May 10 11:37:38 1996  Jason Merrill  <jason@yorick.cygnus.com>
12980
12981         * toplev.c (compile_file): Don't warn about artificial functions
12982         declared static and not defined.
12983
12984 Thu May  9 22:03:28 1996  Doug Evans  <dje@cygnus.com>
12985
12986         * varasm.c (assemble_start_function): ASM_DECLARE_FUNCTION_NAME
12987         needn't consider bytecodes.
12988         (assemble_variable): ASM_DECLARE_OBJECT_NAME needn't
12989         consider bytecodes.
12990         * toplev.c (rest_of_decl_compilation): Likewise with
12991         ASM_FINISH_DECLARE_OBJECT.
12992         * arm/aof.h (ASM_DECLARE_{FUNCTION,OBJECT}_NAME): Delete bytecode
12993         support.
12994         * vax/vms.h (ASM_DECLARE_OBJECT_NAME): Likewise.
12995
12996 Thu May  9 19:36:13 1996  Jim Wilson  <wilson@cygnus.com>
12997
12998         * sh.h (SET_ASM_OP): Define.
12999
13000 Thu May  9 13:31:58 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
13001
13002         * rs6000/sysv4.h (SUBTARGET_{SWITCHES,OPTIONS}): Add support for
13003         finer grain control on -msdata, so that eabi people can specify to
13004         compile sdata code to only use r13 instead of r2/r13.  Make
13005         -mrelocatable-lib turn off -msdata, just like -m relocatable does.
13006         (SUBTARGET_OVERRIDE_OPTIONS): Ditto.
13007         (ENCODE_SECTION_INFO): Move to rs6000.c.
13008         (ASM_SPEC): -msdata=eabi sets -memb also.
13009         (CC1_SPEC): -mno-sdata gets converted to -msdata=none.
13010
13011         * rs6000.c (rs6000_sdata{,_name}): Add support for finer grain
13012         control on -msdata.
13013         (output_options, small_data_operand, print_operand): Likewise.
13014         (rs6000_select_section): Likewise.
13015         (rs6000_encode_section_info): Move here from sysv4.h, section
13016         names are stored as STRING nodes, not IDENTIFIER.
13017
13018 Wed May  8 21:04:49 1996  Doug Evans  <dje@cygnus.com>
13019
13020         * function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE.
13021         * pa.h (RETURN_IN_MEMORY): No longer test for TREE_ADDRESSABLE.
13022
13023 Tue May  7 13:42:57 1996  Jeffrey A. Law  <law@cygnus.com>
13024
13025         * h8300.c: Include obstack.h.
13026         (bit_memory_operand): New function.
13027         (print_operand): Append ":16" to a memory reference to
13028         the tiny data area.
13029         (h8300_tiny_data_p): New function.
13030         (h8300_valid_machine_decl_attribute): Accept "tiny_data".  Fix typo.
13031         (h8300_encode_label): New function.
13032         (h8300_adjust_insn_length): References to the tiny data section
13033         are two bytes shorter than normal accesses on the H8/300H.
13034         * h8300.h (OK_FOR_U): Fix thinko.
13035         (ENCODE_SECTION_INFO): Encode info for tiny data variables.
13036         (STRIP_NAME_ENCODING): Define.
13037         * h8300.md (movqi insn): Fix length for a constant load.
13038         (movstrictqi, movhi, movstricthi): Likewise.
13039         (memory btst patterns): Add register to the constraints to keep
13040         reload happy.
13041
13042         * h8300.h (OK_FOR_U): (const (plus (symbol_ref) (const_int)))
13043         is valid U operand if SYMBOL_REF_FLAG is set on SYMBOL_REF.
13044         * h8300.md (memory btst patterns): New patterns.
13045
13046         * h8300.c (h8300_eightbit_data_p): Renamed from h8300_tiny_data_p.
13047         (h8300_eightbit_data_p): Check for the "eightbit_data"
13048         attribute instead of "tiny_data".
13049         (h8300_valid_machine_decl_attribute): Likewise.
13050         * h8300.h (ENCODE_SECTION_INFO): Call h8300_eightbit_data_p
13051         instead of h8300_tiny_data_p.
13052
13053         * h8300.h (READONLY_DATA_SECTION): Define.
13054         (EXTRA_SECTIONS): Add in_readonly_data.
13055         (READONLY_DATA_SECTION_ASM_OP): Define.
13056         (EXTRA_SECTION_FUNCTINOS): Add readonly_data.
13057
13058 Tue May  7 09:26:24 1996  Jason Merrill  <jason@yorick.cygnus.com>
13059
13060         * varasm.c (make_decl_rtl): Update DECL_ASSEMBLER_NAME for local
13061         statics.  Remove reference to flag_no_common.
13062
13063 Mon May  6 21:38:36 1996  Paul Eggert  <eggert@twinsun.com>
13064
13065         * cpplib.c (skip_comment, handle_directive): Don't use uninit vars.
13066
13067 Mon May  6 18:47:36 1996  Doug Evans  <dje@cygnus.com>
13068
13069         * dbxout.c (dbxout_function): When deciding to call dbxout_function_end
13070         change test from flag_function_sections to DECL_SECTION_NAME != NULL.
13071
13072         * varasm.c (named_section): Accept any decl.
13073
13074 Mon May  6 16:41:08 1996  Stan Cox  (coxs@dg-rtp.dg.com)
13075
13076         * final.c (final_scan_insn): Modify conditional moves whose cc is
13077         nonstandard.
13078
13079         * c-common.c (decl_attributes): Chain multiple attributes correctly.
13080
13081 Mon May  6 15:41:43 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13082
13083         * stmt.c (expand_decl): Don't deduce alignment of SIZE from
13084         DECL_ALIGN; use TYPE_ALIGN instead.
13085
13086         * function.c (assign_parms): Set RTX_UNCHANGING_P in stack_parm
13087         if parm is read-only.
13088
13089         * c-common.c (truthvalue_conversion, case ADDR_EXPR): Don't
13090         treat address of external decl as always nonzero.
13091
13092 Mon May  6 11:33:57 1996  Jason Merrill  <jason@yorick.cygnus.com>
13093
13094         * c-decl.c (start_decl): Check -fno-common here.
13095         * varasm.c (assemble_variable): Instead of here.
13096         * final.c (end_final): Likewise.
13097         * c-common.c (init_attributes, decl_attributes): Add A_COMMON.
13098
13099 Mon May  6 11:12:39 1996  Mike Stump  <mrs@cygnus.com>
13100
13101         * expr.c (expand_increment): Add third parameter to know when to
13102         ignore the result value.
13103         (store_constructor): Likewise
13104         (expand_expr, case {PRE,POST}{INC,DEC}REMENT_EXPR): Likewise.
13105         * tree.c (stabilize_reference): Always ignore the first operand of
13106         COMPOUND_EXPRs.
13107
13108 Mon May  6 13:14:45 1996  Jim Wilson  <wilson@cygnus.com>
13109
13110         * sh.c (gen_shifty_op): Truncate VALUE to avoid out of bounds array
13111         access.
13112
13113         * expr.c (expand_expr, case INDIRECT_REF): Delete obsolete code
13114         to special case a SAVE_EXPR operand.
13115
13116 Mon May  6 10:00:12 1996  Pat Rankin  <rankin@eql.caltech.edu>
13117
13118         * vax.h (ASM_OUTPUT_MI_THUNK): Define.
13119
13120 Mon May  6 09:49:10 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
13121
13122         * m68k/linux.h: Use the new trampoline definition.
13123         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Deleted.
13124         (INITIALIZE_TRAMPOLINE): Changed.
13125         (FINALIZE_TRAMPOLINE, CLEAR_INSN_CACHE): New.
13126
13127 Mon May  6 09:43:55 1996  Patrick J. LoPresti  (patl@lcs.mit.edu)
13128
13129         * rtlanal.c (rtx_addr_varies_p): Scan operands of type `E'.
13130
13131 Mon May  6 09:04:40 1996  H.J. Lu  (hjl@gnu.ai.mit.edu)
13132
13133         * x-linux{,-aout} (BOOT_CFLAGS, STMP_FIXPROTO, STMP_FIXPROTO): Deleted.
13134         * config/t-linux (BOOT_CFLAGS, STMP_FIXPROTO, STMP_FIXPROTO): New,
13135         moved from x-linux.
13136         * t-linux-aout: New file.
13137         * configure (i[3456]86-*-linux*oldld*, i[3456]86-*-linux*aout*):
13138         Set tmake_file to t-linux-aout.
13139
13140 Sun May  5 22:13:22 1996  H.J. Lu  (hjl@gnu.ai.mit.edu)
13141
13142         * Makefile.in (gxx_include_dir): Change to $(prefix)/include/g++.
13143         (old_gxx_include_dir): New - defined as $(libdir)/g++-include.
13144         (cccp.o, cpplib.o): Also pass OLD_GPLUSPLUS_INCLUDE_DIR (set
13145         from $(old_gxx_include_dir)).
13146         * cccp.c (include_defaults_array): For C++, also search
13147         OLD_GPLUSPLUS_INCLUDE_DIR.
13148         * cpplib.c (default_include): Likewise.
13149         * configure: Remove no-longer-needed support for --gxx-include-dir.
13150
13151 Sun May  5 21:59:53 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
13152
13153         * c-lex.c (check_newline): Fix #pragma parsing; issue error message
13154         for directive that starts with `p' but isn't `pragma'.
13155
13156 Sun May  5 13:13:40 1996  Jeremy Bettis  <jeremy@hksys.com>
13157
13158         * objc/hash.c (hash_value_for_key): Prevent endless loop when 0 was
13159         stored in a hashtable.
13160
13161 Sun May  5 13:09:54 1996  Satoshi Adachi  (adachi@wisdom.aa.ap.titech.ac.jp)
13162
13163         * m68k/newsgas.h (SET_ASM_OP, ASM_WEAKEN_LABEL): Define.
13164
13165 Sun May  5 12:48:08 1996  Stephen L Moshier  (moshier@world.std.com)
13166
13167         * tree.c (build_real_from_int_cst): Remove spurious test for
13168          REAL_IS_NOT_DOUBLE.
13169
13170 Sat May  4 12:17:58 1996  Richard Earnshaw (rearnsha@armltd.co.uk)
13171
13172         * arm.h (ASM_OUTPUT_MI_THUNK): Moved here from aout.h.  Rewrite to be
13173         independent of the selected assembler, and to use optimal number of
13174         instructions.
13175         * arm/aout.h (ASM_OUTPUT_MI_THUNK): Delete.
13176
13177         * arm/aout.h (ASM_OUTPUT_OPTIONS): Define.
13178         (ASM_FILE_START): Call ASM_OUTPUT_OPTIONS.
13179         (BSS_SECTION_OP): Define.
13180         (ASM_OUTPUT_ALIGN): Don't output anything if byte alignment is wanted.
13181         (ASM_OUTPUT_ALIGNED_BSS): Define.
13182         * arm.h (target_cpu_name): Delete.
13183         (TARGET_SWITCHES): Delete "be" and "le".
13184         (TARGET_OPTIONS): Delete "cpu-", add "tune=".
13185         (struct arm_cpu_select): New struct.
13186         (PROCESSOR_DEFAULT, TARGET_CPU_DEFAULT): Define.
13187         (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Cmode.
13188         (CANONICALIZE_COMPARISON): Define.
13189         * arm.c (arm_select): Declare and initialize.
13190         (all_procs): Add arm7100.
13191         (arm_override_options): Parse arm_select structure to determine
13192         selected architecture and tuning parameters.
13193         (output_option, output_options): New functions.
13194         (arm_canonicalize_comparison): New function.
13195         (arm_gen_movstrqi): Don't add a writeback of the index registers for
13196         the last instructions.
13197         (arm_select_cc_mode): Detect case where mode is carry out of unsigned
13198         arithmetic.
13199         (output_lcomm_directive): Use bss_section (), and use alignment
13200         rather than rounding.
13201         (get_arm_condition_code): Handle CC_Cmode.
13202         (final_prescan_insn): Avoid boundary case where we would occasionally
13203         inline MAX_INSNS_SKIPPED+1 insns.  Allow call_insns to be inlined in
13204         APCS_32 mode if they are the last insn in the block.
13205         * arm.md (*addsi3_compareneg): Delete potentially unsafe insn.
13206         (*addsi3_compare_op[12]): New insns.
13207         (*compare_addsi2_op[01]): New insns.
13208         (*addsi3_carryin, *addsi3_carryin_alt[12]): New insns.
13209         (*cmp_ite1): Use arm_add_operand instead of arm_rhs_operand.
13210         * semi.h (PROCESSOR_DEFAULT): Default to PROCESSOR_ARM6.
13211
13212 Fri May  3 10:52:11 1996 1996  Stan Cox  (coxs@dg-rtp.dg.com)
13213
13214         * i386.md (movesicc, movehicc) Pentium Pro conditional move insns.
13215
13216         * i386.h (TARGET_PENTIUMPRO, TARGET_CMOVE, BRANCH_COST,
13217         ASM_OUTPUT_FUNCTION_PREFIX): New macros for conditional move.
13218
13219         * i386.c (asm_output_function_prefix, function_prologue): Setup
13220         pic on Pentium Pro so a return will match the call.
13221         (print_operand, put_condition_code): Output conditional move suffixes.
13222
13223 Fri May  3 10:52:11 1996  Jason Merrill  <jason@yorick.cygnus.com>
13224
13225         * i386/{att.h,gas.h,bsd.h,sub386.h} (ASM_OUTPUT_MI_THUNK): Define.
13226
13227 Wed May  1 17:54:51 1996  Doug Evans  <dje@cygnus.com>
13228
13229         * sparc.h (ASM_OUTPUT_MI_THUNK): Fix for sparc64, optimize.
13230
13231 Wed May  1 13:28:32 1996  Jason Merrill  <jason@yorick.cygnus.com>
13232
13233         * i386/linux.h (ASM_OUTPUT_ALIGNED_BSS): Define.
13234         * i386/sysv4.h: Likewise.
13235         * sparc/sysv4.h: Likewise.
13236
13237 Wed May  1 01:44:47 1996  Jeffrey A. Law  <law@cygnus.com>
13238
13239         * h8300.c (h8300_adjust_insn_length): Adjust the cost of
13240         shifts by small constant values.
13241         * h8300.md: Remove names from many patterns which don't need them.
13242         (compare insns): Don't underestimate lengths.
13243         (andqi3 expander): Remove constrains.
13244         (andhi3): Don't underestimate length.
13245         (andsi3): Don't underestimate length.  Improve code when upper
13246         or lower half of destination is being cleared.
13247         (indirect_jump_h8300, indirect_jump_h8300h): Simplify.
13248         (shift insns): Remove useless "I" constraint.
13249
13250         * h8300.md (bcs type): Remove "bcs" type attribute and all references.
13251         (bcs insns): Delete.  No longer needed.
13252         (setcc from bitfield): Rewrite to use zero_extract.  Provide
13253         QImode, HImode and SImode variants.
13254
13255 Tue Apr 30 18:13:09 1996  Jason Merrill  <jason@yorick.cygnus.com>
13256
13257         * svr4.h (SELECT_SECTION): If RELOC is true, put it in data.
13258
13259 Tue Apr 30 17:26:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
13260
13261         * fold-const.c (fold): Don't call convert to recreate tree nodes
13262         we already have.
13263
13264 Tue Apr 30 16:52:41 1996  Jeffrey A. Law  <law@cygnus.com>
13265
13266         * h8300.c (one_insn_adds_subs_operand): New function.
13267         (h8300_adjust_insn_length): New function.
13268         * h8300.h (ADJUST_INSN_LENGTH): Define.
13269         * h8300.md: Remove obsolete comments.
13270         (move patterns): Tweak constraints.
13271         (tst patterns): Use "register_operand" for predicate.
13272         (adds pattern): Use one_insn_adds_subs_operand to get length
13273         computation correct.
13274         (subs pattern): Similarly.
13275         (movstrhi): Remove unused expander.
13276         (fancy*, pxor, and-not patterns): Remove.  No longer needed.
13277
13278 Tue Apr 30 13:35:06 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
13279
13280         * rs6000/sol-c0.c (_start): Temporarily display calling
13281         __do_global_ctors, since the Solaris linker doesn't handle the
13282         relocations properly.
13283
13284 Mon Apr 29 13:03:12 1996  Doug Evans  <dje@cyguns.com>
13285
13286         * sparc/vxsparc.h: sparc-aout.h renamed to aout.h.
13287
13288 Mon Apr 29 00:35:15 1996  Jeffrey A. Law  <law@cygnus.com>
13289
13290         * h8300.c (names_small): Remove "BAD" postfix from %r7 byte registers.
13291         (rtx_equal_function_value_matters): Remove extra declaration.
13292         (output_simode_bld): New function.
13293         * h8300.h (NO_FUNCTION_CSE): Do define this.
13294         (reg_class): Remove LONG_REGS, SP_REG, SP_AND_G_REGS.
13295         (REG_CLASS_{NAMES,CONTENTS,FROM_LETTER}): Corresponding changes.
13296         (REGNO_REG_CLASS): Corresponding changes.
13297         (output_simode_bld): Declare.
13298         * h8300.md: Nuke comments for stuff which has been fixed.
13299         (all patterns): Remove references to register class "a" (SP_REGS)
13300         which no longer exists.
13301         (many patterns): Accept auto-inc auto-dec addresses in more cases.
13302         (zero_extendqisi2): New pattern for the H8/300.
13303         (zero_extendhisi2): Only use zero_extendhisi2_h8300 when not
13304         optimizing.
13305         (extendhisi2): Only use extendhisi2_h8300 when not optimizing.
13306         (extendqisi2): New pattern for the H8/300.
13307         (bitfield related patterns): Completely rewrite.
13308         (fancy_bclr, fancy_btst): Deleted.
13309         (addhi3 pattern for h8300): Handle case where we can't make matching
13310         constraints (works around hard to fix reload problem).
13311         (stack_pointer_manip): Delete.
13312         (and not patterns): New combiner patterns.
13313
13314         * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Make sure the
13315         final $CODE$ subspace is in the $TEXT$ space.
13316
13317 Sun Apr 28 14:52:21 1996  Jason Merrill  <jason@yorick.cygnus.com>
13318
13319         * svr4.h (ASM_OUTPUT_SECTION_NAME): If no decl is specified,
13320         make the section read/write data.
13321
13322 Sat Apr 27 10:28:59 1996  Michael Meissner  <meissner@wogglebug.tiac.net>
13323
13324         * rs6000/t-ppcgas (MULTILIB_EXCEPTIONS): Don't allow -mrelocatable
13325         and -mcall-sysv-noeabi.
13326
13327         * rs6000/sysv.h (SUBTARGET_OVERRIDE_OPTIONS): The -mcall-aix
13328         option sets -meabi.  Don't allow -mrelocatable without -meabi.
13329
13330 Fri Apr 26 16:10:46 1996  Doug Evans  <dje@cygnus.com>
13331
13332         * sparc.md (*smacsi,*smacdi,*umacdi): Fix constraint on
13333         operand 0.
13334
13335 Fri Apr 26 14:36:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
13336
13337         * i960/t-{960bare,vxworks960} (MULTILIB*): Add
13338         soft-float multilib support.
13339
13340 Fri Apr 26 06:38:56 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13341
13342         * stor-layout.c (layout_decl): Turn off DECL_BIT_FIELD for BLKmode
13343         that's properly aligned and a multiple of a byte.
13344
13345 Thu Apr 25 22:43:19 1996  Doug Evans  <dje@cygnus.com>
13346
13347         * i386/gas.h (ASM_OUTPUT_ALIGN): #if 0 out again.
13348         Undoes change of Apr. 9.
13349         * i386/go32.h (ASM_OUTPUT_ALIGN): Define.
13350
13351 Thu Apr 25 14:05:33 1996  Richard Kenner  (kennervlsi1.ultra.nyu.edu)
13352
13353         * calls.c (expand_call): In inlining case, if BEFORE_CALLS is
13354         zero, start looking at first insn (one more place).
13355
13356         * expr.c (expand_builtin, case BUILT_IN_SETJMP): CLOBBER the
13357         static chain after label at setjmp point.
13358
13359 Thu Apr 25 09:02:24 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
13360
13361         * rs6000.c (print_operand{,_address}): Correct compile error if
13362         TARGET_EABI is not defined.  Also, just call small_data_operand,
13363         without testing the ABI.
13364         (rs6000_select_section): Ditto.
13365
13366         * rs6000/sysv4.h (CC1_SPEC): For -mcall-solaris, don't pass
13367         -mno-main-init.
13368
13369 Wed Apr 24 18:26:48 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
13370
13371         * collect2.c (handler): Delete export_file when we get a signal.
13372
13373 Wed Apr 24 14:54:44 1996  Jeffrey A. Law  <law@cygnus.com>
13374
13375         * pa/pa1-ghpux.h (LINK_SPEC): Define.  Link in PA1.1 libraries
13376         by default.
13377         * pa/{pa1-ghpux9.h, pa1-hpux.h, pa1-hpux9.h}: Likewise.
13378
13379 Wed Apr 24 11:12:06 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
13380
13381         * configure (powerpc{,le}-*-eabi*): Use t-ppc{,gas}, instead of
13382         t-eabi{,gas}.
13383         (powerpc-*-linux,powerpcle-*-solaris): Add definitions.
13384         (MULTILIB_DIRNAMES): Pick shorter names for the multilib
13385         directories.
13386         (MULTILIB_*): Do not build -msdata versions of the library.  Build
13387         both system V and eabi versions of the libraries.
13388
13389         * rs6000/t-ppc{,gas} (MULTILIB*): Don't build -msdata versions of
13390         the libraries.  Split -mcall-sysv libraries into
13391         -mcall-sysv-{eabi,noeabi} varients.
13392         (LIB2FUNCS_EXTRA): Add eabi.S, eabi-ctors.c.
13393         (eabi.S): Use eabi.S, not eabi.s for eabi.asm.
13394         (crt files): Add support for Solaris crt files.
13395
13396         * rs6000/sol{2.h,-c0.c,-ci.asm,-cn.asm}: New files for Solaris.
13397
13398         * rs6000/linux.h: New file for Linux-based GNU system support.
13399
13400         * rs6000/eabi-ci.asm (ppc-asm.h): Include.
13401         (.got section): Correct attribute.
13402
13403         * rs6000/eabi-c{i,n}.asm (.init,.finit): Add support for System V
13404         style .init/.fini sections, that constructors and destructors
13405         place a bl <func> in the appropriate section.
13406
13407         * rs6000/eabi-ctors.c (__do_global_{c,d}tors): Call __init, and
13408         __fini to handle constructors/destructors in the .init, .fini
13409         sections.
13410
13411         * rs6000/{eabi,sysv}.h: Move most eabi configuration stuff from
13412         eabi.h to sysv.h.
13413
13414         * rs6000/sysv.h (TARGET_*): Convert -mcall-xxx from switch into option.
13415         Add -mcall-{solaris,linux,sysv-eabi,sysv-noeabi} options.
13416         Add -m{,no-}eabi options to control whether we adhere to
13417         the System V spec or the EABI spec.  Add -m{,no-}regnames to
13418         control whether registers are printed out as %r0 instead of 0.
13419         (SUBTARGET_OVERRIDE_OPTIONS): Add support for new -mcall options.
13420         (FP_ARG_MAX_REG): Use new macros for ABI conformance.
13421         (RS6000_REG_SAVE): Likewise.
13422         (STACK_BOUNDARY,BIGGEST_ALIGNMENT): If eabi, align to 8 byte
13423         boundary, otherwise 16 byte.
13424         (EXTRA_SECTIONS): Add .init, .fini sections.
13425         (*_SPEC): Reorganize so that the different targets all have sub
13426         specs that go in the specs file.  Add support for linux and
13427         Solaris targets.
13428
13429         * rs6000/{sysv4,eabi}*.h (*_SPECS): Only override the default
13430         spec, all other specs moved to sysv4.h.
13431         (RS6000_ABI_NAME): Use RS6000_ABI_NAME to set the default ABI
13432         name, not TARGET_DEFAULTS.
13433
13434         * rs6000/xm-sysv4.h (alloca): Properly declare alloca if compiler
13435         is not GCC.
13436         (DONT_DECLARE_SYS_SIGLIST): Define.
13437
13438         * rs6000.c (rs6000_abi_name): New global for getting the results
13439         of -mcall-xxx.
13440         (rs6000_reg_names): New global for holding the normal register names.
13441         (alt_reg_names): Alternate register names for -mregnames.
13442         (rs6000_override_options): If -mregnames, copy alt_reg_names into
13443         rs6000_reg_names.
13444         (input_operand): Recognize ABI_SOLARIS.
13445         (small_data_operand, init_cumulative_args): Likewise.
13446         (function_arg{,_boundary,_advance,_partial_nregs}): Likewise.
13447         (function_arg_pass_by_reference, setup_incoming_varargs): Likewise.
13448         ({rs6000,debug}_stack_info, output_{prolog,epilog}): Likewise.
13449         (print_operand): %$ prints '.' on Solaris, '$' elsewhere.
13450         (print_operand{,_address}): If not eabi, use @sdarel for small
13451         data references.
13452         (rs6000_stack_info): Only emit __eabi call if TARGET_EABI.
13453
13454         * rs6000.h (*_SPECS): Move the System V specs to svr4.h.
13455         (ABI_SOLARIS): New ABI, mostly like System V.
13456         (EXTRA_CONSTRAINT): Use ABI_SOLARIS like ABI_V4.
13457         (RETURN_ADDRESS_OFFSET, (LEGITIMATE_SMALL_DATA_P): Likewise.
13458         (RETURN_IN_MEMORY): On Solaris, small structures are returned in regs.
13459         (REGISTER_NAMES): Use rs6000_reg_names array, instead of string
13460         literals.
13461         (DEBUG_REGISTER_NAMES): Define.
13462         (ADDITIONAL_REGISTER_NAMES): Add sp, toc aliases.
13463         (PRINT_OPERAND_PUNCT_VALID_P): Recognize $ as a punctuation char.
13464
13465         * rs6000.md (got & call patterns): Use ABI_SOLARIS to mean the
13466         same as ABI_V4.
13467         (branch patterns): Use %$ for the current location, not just $.
13468
13469         * va-ppc.h: Add Solaris support.
13470
13471 Tue Apr 23 20:02:13 1996  Doug Evans  <dje@cygnus.com>
13472
13473         * sparc.c (output_function_prologue): In -mbroken-saverestore
13474         case, %sp = %fp - size.
13475         * sparc/t-splet (TARGET_LIBGCC2_CFLAGS): Delete.
13476         * sparc.md (isa attribute): Add sparclet.
13477         (*smacsi,*smacdi,*umacdi): Use match_operand, not match_dup
13478         for third arg.
13479         (*mulsidi3_sp32,const_mulsidi3,*umulsidi3_sp32,const_umulsidi3): Use
13480         smuld,umuld for sparclet.
13481
13482 Tue Apr 23 16:28:28 1996  Michael Meissner  <meissner@wombat.gnu.ai.mit.edu>
13483
13484         * m68k/m68kemb.h: Add {LINK,STARTFILE,LIB,SUBTARGET}_SPEC, so
13485         gcc will use libgloss for supported target boards {idp,mvme,bcc}.
13486
13487 Tue Apr 23 16:00:28 1996  Per Bothner  <bothner@cygnus.com>
13488
13489         * expr.c (store_constructor):  Fix test for missing array elements.
13490
13491 Tue Apr 23 11:21:09 1996  Stephen L Moshier  (moshier@world.std.com)
13492
13493         * i386/sco5.h (BSS_SECTION_ASM_OP): Use `data' directive.
13494         (ASM_OUTPUT_ALIGNED_LOCAL): Generate an `lcomm' directive.
13495         (TARGET_DEFAULT): Include TARGET_IEEE_FP.
13496         (CPP_PREDEFINES): Include Di386.
13497
13498 Mon Apr 22 12:00:46 1996  David Edelsohn  <edelsohn@mhpcc.edu>
13499
13500         * rs6000.h (BIGGEST_FIELD_ALIGNMENT): Delete.
13501         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Define.
13502         * sysv4.h (BIGGEST_FIELD_ALIGNMENT): Delete.
13503         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Undefine.
13504         * win-nt.h (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Undefine.
13505
13506 Sun Apr 21 17:52:36 1996  Jim Wilson  <wilson@cygnus.com>
13507
13508         * m68k/coff.h (ASM_OUTPUT_SECTION): Test DECL before
13509         dereferencing it.
13510
13511         * cse.c (cse_process_notes): Handle SUBREG like ZERO_EXTEND.
13512
13513 Sun Apr 21 12:57:12 1996  Doug Evans  <dje@cygnus.com>
13514
13515         * arm/aout.h (ASM_OUTPUT_MI_THUNK): Define.
13516
13517 Sun Apr 21 09:50:09 1996  Stephen L Moshier  (moshier@world.std.com)
13518
13519         * choose-temp.c: Include sys/types.h before sys/file.h for sco3.2v5.
13520
13521 Sun Apr 21 08:42:13 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13522
13523         * alpha.c (check_float_value): Cast args of bcopy to avoid warnings.
13524
13525 Sat Apr 20 21:22:21 1996  David Edelsohn  <edelsohn@mhpcc.edu>
13526
13527         * stor-layout.c (layout_record): Use ADJUST_FIELD_ALIGN to modify
13528         alignment of fields within records.
13529
13530 Sat Apr 20 19:55:33 1996  Niels Moller  <nisse@lysator.liu.se>
13531
13532         * c-parse.in (typespec): Made <SomeProtocol> equivalent
13533         to (id <SomeProtocol>).
13534         (non_empty_protocolrefs): New nonterminal.
13535
13536 Sat Apr 20 08:34:02 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
13537
13538         * stmt.c (check_for_full_enumeration_handling): Call case_tree2list
13539         before checking for case expressions not corresponding to enumerators.
13540         (mark_seen_cases): If SPARSENESS == 2, exploit AVL order.
13541         Else, convert tree to list.
13542         Set xlo to -1 if SPARSENESS == 1 search failed.
13543         (expand_end_case): Avoid calling case_tree2list on list.
13544
13545 Fri Apr 19 16:54:57 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
13546
13547         * rs6000/win-nt.h (BIGGEST_FIELD_ALIGNMENT): Set to 64, not
13548         32 that AIX uses.
13549
13550 Fri Apr 19 16:40:38 1996  Stan Cox  <coxs@dg-rtp.dg.com>
13551
13552         * i386.md (movqi): Handle QImode values in %si and %di.
13553
13554 Thu Apr 18 20:56:56 1996  Jim Wilson  <wilson@cygnus.com>
13555
13556         * sh.md (lshrsi3): Change gen_ashlsi3_d to gen_lshrsi3_d.
13557
13558 Thu Apr 18 15:49:28 1996  Per Bothner  <bothner@cygnus.com>
13559
13560         * sparc.h (ASM_OUTPUT_MI_THUNK): Define.
13561
13562 Thu Apr 18 15:19:26 1996  Jeffrey A. Law  <law@cygnus.com>
13563
13564         * h8300.md: Remove "type" attribute from all patterns except those
13565         which have varying length branches.  Eliminate obsolete "type"
13566         attributes.  Add "length" and "cc" attributes to insns without them;
13567         fix some length computations.  Remove patterns which are commented out.
13568
13569         * h8300.md (zero extension expanders and insns): Simplify, fix various
13570         length problems, provide optimized versions for the h8300 and h8300h.
13571         (sign extension expanders and insns): Likewise.  Make them
13572         nearly identical to zero_extension patterns and insns.
13573
13574 Wed Apr 17 18:50:16 1996  Jeffrey A. Law  <law@cygnus.com>
13575
13576         * pa.h (SELECT_SECTION): Define.  Never place a something
13577         into the read-only data section if it requires a reloc.
13578
13579         * pa.md (rotlsi3): Delete unnecessary and incorrect pattern.
13580
13581 Wed Apr 17 17:15:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
13582
13583         * rs6000.md (movdi): Never FAIL, even if operand[1] is not a
13584         general operand, due to being in volatile memory.
13585
13586 Wed Apr 17 15:20:10 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
13587
13588         * c-lex.c (check_newline): Rewrite to use tokens.
13589         (handle_sysv_pragma): Take a token instead of a character.
13590         * i960.c (process_pragma): Take the IDENTIFIER_POINTER tree
13591         node instead of a character.
13592         * sh.c (handle_pragma): Likewise.
13593         * config/nextstep.c (handle_pragma): Likewise.
13594         * h8300.c (handle_pragma): Likewise.
13595         * i960.h (HANDLE_PRAGMA): Expect/pass 2nd arg of NODE, not CH.
13596         * sh.h (HANDLE_PRAGMA): Likewise.
13597         * config/nextstep.h (HANDLE_PRAGMA): Likewise.
13598         * h8300.h (HANDLE_PRAGMA): Likewise.
13599
13600 Wed Apr 17 14:28:43 1996  Doug Evans  <dje@cygnus.com>
13601
13602         * choose-temp.c: Don't include sys/file.h ifdef NO_SYS_FILE_H.
13603         #include <stdio.h>.
13604         (choose_temp_base): Make tmp,usrtmp, static locals.
13605
13606 Wed Apr 17 08:41:02 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13607
13608         * alpha.c (alpha_emit_conditional_move): Fix some bugs in previous
13609         change and do some cleanup.
13610
13611 Tue Apr 16 18:53:05 1996  Jim Wilson  <wilson@cygnus.com>
13612
13613         * reload.c (push_reload): Add extra reload for inside of SUBREG if
13614         it is CONSTANT_P.
13615
13616         * expr.c (do_store_flag): Rewrite last change to avoid compiler
13617         warnings.
13618
13619         * reload.c (push_reload): When reuse an old reload, set the modes
13620         to be the larger of the old and new modes.
13621
13622         * i960/t-960bare (xp-bit.c): Fix typo in source file name.
13623
13624 Tue Apr 16 18:09:16 1996  Jeffrey A. Law  <law@cygnus.com>
13625
13626         * h8300.md (andhi3): If 2nd operand is a CONST_INT that meets 'J'
13627         constraint, then only two bytes are needed for this insn.  Improve
13628         code generated for the h8300h when both operands are registers.
13629         (iorhi3, xorhi3): Likewise.  Rework to be nearly identical to andhi3.
13630         (andsi3): If 2nd operand is a CONST_INT that meets the 'J'
13631         constraint, then only two bytes are need for this insn.
13632         Improve code generated for the h8300h regardless of the
13633         type of the 2nd operand.  Make this pattern work on the h8300 too.
13634         (iorsi3, xorsi3): Likewise.  Rework to be nearly identical to andsi3.
13635         (iorqi3_internal): Make this pattern look more like andqi3_internal.
13636         (one_cmplhi2, one_cmplsi2): Fix length computation for H8300H.
13637
13638 Tue Apr 16 17:43:25 1996  J"orn Rennecke (amylaar@meolyon.hanse.de)
13639
13640         * i386.md (addsidi3_2): Handle non-MEM overlap case.
13641
13642 Tue Apr 16 16:59:49 1996  Richard Henderson  <rth@tamu.edu>
13643
13644         * function.c (expand_function_end): Allow TRAMPOLINE_TEMPLATE
13645         to be omitted on systems for which it is not cost effective.
13646         * varasm.c (assemble_trampoline_template): No such function
13647         if no TRAMPOLINE_TEMPLATE.
13648         * m68k.h: Greatly simplify the run-time trampoline code:
13649         (TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): Delete define.
13650         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed.
13651         (TRAMPOLINE_ALIGN): No point aligning to cache line.
13652         (FINISH_INIT_TRAMPOLINE): New define.
13653         * m68k/next.h: Instead of redefining INITIALIZE_TRAMPOLINE,
13654         make use of the new FINISH_INIT_TRAMPOLINE.
13655         * m68k/{m68k.h,next.h,aux.h} (FINISH_INIT_TRAMPOLINE):
13656         Rename to FINALIZE_TRAMPOLINE.
13657         * m68k/{linux.h,m68kv4.h}: Override trampoline macros.
13658
13659 Tue Apr 16 16:02:50 1996  David Edelsohn  <edelsohn@mhpcc.edu>
13660
13661         * combine.c (make_field_assignment): Allow XOR in final case.
13662
13663 Tue Apr 16 11:33:53 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
13664
13665         * m68k.h (TARGET_SWITCHES): Don't remove MASK_68060 with -msoft-float.
13666
13667         * m68k.h (MULL_COST, MULW_COST, RTX_COSTS): Add costs for TARGET_68060.
13668         * m68k.md (ashlsi_16, lshrsi_16): Disable pattern for TARGET_68060;
13669         this special case is not faster for that cpu.
13670
13671 Tue Apr 16 10:54:55 1996  Eliot Dresselhaus  <dresselh@rft30.nas.nasa.gov>
13672
13673         * alpha.c (alpha_emit_conditional_move): New function.
13674         * alpha.h (alpha_emit_conditional_move): Declare it.
13675         * alpha.md (cmov* define_expands): Use it.
13676
13677 Tue Apr 16 09:06:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
13678
13679         * function.h (struct function): New field returns_pointer.
13680         * function.c (push_function_context_{to,from}): Save and restore
13681         current_function_returns_pointer.
13682
13683         * config/svr4.h (ENDFILE_SPEC): Add missing `%s'.
13684
13685         * configure (m68k-*-linux*aout*): Set tmake_file to m68k/t-linux-aout.
13686         (m68k-*-linux*): Set extra_parts.
13687         * m68k/t-linux (INSTALL_ASSERT_H): New definition.
13688         (CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): New definitions.
13689         * m68k/t-linux-aout: New file.
13690         * m68k/linux.h (LIB_SPEC): Deleted.
13691         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Define.
13692
13693         * m68k.h (TRAMPOLINE_ALIGNMENT): Specify alignment in bits, not bytes.
13694
13695 Tue Apr 16 08:53:17 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
13696
13697         * final.c (final_scan_insn): Allow removal of redundant test and
13698         compare instructions that use clobbers.
13699
13700 Tue Apr 16 06:22:00 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13701
13702         * c-decl.c (clear_limbo_values): New function.
13703         (pushdecl): Call it for function body blocks.
13704
13705         * objc/thr-decosf1.c (_objc_thread_id): Correct return type from
13706         int to _objc_thread_id.
13707
13708         * expr.c (expand_builtin, case BUILT_IN_LONGJMP): Make a decl
13709         for __dummy, so we can call make_function_rtl on it.
13710
13711         * expr.c (expand_assignment): Don't pre-evaluate RHS if a CALL_EXPR
13712         with a variable-size return.
13713
13714 Mon Apr 15 17:38:45 1996  Ian Lance Taylor  <ian@cygnus.com>
13715
13716         * fixincludes: Fix undefined VOIDFUNCPTR in VxWorks 5.2 <time.h>.
13717
13718 Mon Apr 15 15:12:16 1996  Jim Wilson  <wilson@cygnus.com>
13719
13720         * expr.c (do_store_flag): Before calling exact_log2, remove any
13721         sign extension bits.
13722
13723         * reload1.c (emit_reload_insns): Call reload_reg_reaches_end_p for
13724         every reg of multi-reg spill register.  Invalidate old info for multi
13725         reg spill registers when only part survives to the end.
13726
13727 Mon Apr 15 14:49:12 1996  Mike Stump  <mrs@cygnus.com>
13728
13729         * function.c (preserve_temp_slots): Only preserve temporaries that
13730         happen to be at the current level.
13731
13732 Mon Apr 15 14:08:12 1996  Doug Evans  <dje@canuck.cygnus.com>
13733
13734         * gansidecl.h: New file.
13735         * choose-temp.c: New file.
13736         * Makefile.in (xgcc): Depend on and link in choose-temp.o.
13737         (collect2): Likewise.
13738         (choose-temp.o): Add rule for.
13739         * collect2.c: #include "gansidecl.h".
13740         (const,PROTO): Delete.
13741         (P_tmpdir): Delete.
13742         (choose_temp_base): Declare as extern, delete internal copy.
13743         (main): Update call to choose_temp_base.
13744         * cpphash.c: #include "gansidecl.h".
13745         (NULL,const,volatile): Delete.
13746         * demangle.h: #include "gansidecl.h".
13747         (PROTO,PTR,const): Delete.
13748         * expr.h (const): Delete.
13749         * fix-header.c: #include "gansidecl.h".
13750         (const): Delete.
13751         * gcc.c: #include "gansidecl.h".
13752         (PROTO,VPROTO,PVPROTO,VPROTO,VA_START,NULL): Delete.
13753         (GENERIC_PTR,NULL_PTR,P_tmpdir): Delete.
13754         (choose_temp_base): Declare as extern, delete internal copy.
13755         (concat): Rewrite to take a variable number of arguments.
13756         (choose_temp_base_try,concat[346]): Delete.
13757         (translate_options,set_spec,process_command,do_spec_1,
13758         is_directory,main): Always use concat, not concat[346].  Pass
13759         NULL_PTR as trailing arg to concat.
13760         * genattr.c (main): Delete printing of "#define PROTO".
13761         * machmode.h: #include "gansidecl.h".
13762         (PROTO): Delete.
13763         (HAVE_MACHINE_MODES): Move definition to standard place.
13764         * recog.h: #include "gansidecl.h".
13765         (PROTO,const): Delete.
13766         * rtl.h: #include "gansidecl.h".
13767         (PROTO,VPROTO,PVPROTO,VPROTO,VA_START,STDIO_PROTO): Delete.
13768         (NULL,GENERIC_PTR,NULL_PTR): Delete.
13769         * tree.h: Likewise.
13770
13771 Mon Apr 15 08:49:20 1996  Tom May  (ftom@netcom.com)
13772
13773         * cse.c (invalidate_skipped_set): Ignore CLOBBER after calling
13774         note_mem_written, not before.
13775
13776 Mon Apr 15 08:22:03 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>
13777
13778         * m68k.md (tstdi): Optimized for "d" case.
13779         (movqi): Allow moving "i" into "a".
13780         (zero_extendsidi2): Alternatives merged.
13781         (extendplussidi): Fixed when operands 0 and 1 share a register.
13782         (adddi_sexthishl32): Constraints reordered for better reload.
13783         (adddi3,subdi_sexthishl32,subdi3,negdi2): Likewise.
13784         (ashldi_sexthi): Accept "m" as operand 0.
13785         (ashldi_const32): Alternatives merged.
13786         (ashift patterns): Output "lsl" instead of "asl".
13787         (beq0_di): If condition codes already set, output only branch insn.
13788         (bne0_di,bge0_di,blt0_di): Likewise.
13789         * m68k.c (notice_update_cc, case ASHIFT{,RT}, LSHIFTRT, ROTATE{,RT}):
13790         Don't set CC_NO_OVERFLOW.
13791         * m68k.h (TARGET_SWITCHES): Fix typo in "c68000" entry.
13792
13793 Mon Apr 15 08:06:17 1996  Stephen L Moshier  (moshier@world.std.com)
13794
13795         * real.c (eadd1): Check for overflow on X plus X.
13796
13797 Mon Apr 15 08:02:24 1996  J.T. Conklin  <jtc@cygnus.com>
13798
13799         * i386/netbsd.h (HAVE_SYSV_PRAGMA): Removed definition.
13800         * config/netbsd.h (HAVE_SYSV_PRAGMA): Define.
13801         (SET_ASM_OP): Define.
13802
13803 Mon Apr 15 07:28:54 1996  Fila Kolodny <fila@ibi.com>
13804
13805         * configure: Add definition for host= into Makefile.
13806         * build-make (CC): Pass -b $(host), not target.
13807
13808 Mon Apr 15 05:12:39 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13809
13810         * expr.c (bc_expand_increment): Change declaration to return void.
13811
13812         * toplev.c (max_label_num_after_reload): New variable.
13813         (rest_of_compilation): Set it.
13814         * reorg.c (find_dead_or_set_registers): Only kill spill regs after
13815         label made before jump2.
13816
13817         * combine.c (expand_field_assignment): Take SUBREG_WORD into
13818         account when have STRICT_LOW_PART.
13819         (make_extraction): Make a STRICT_LOW_PART at any low-order word.
13820
13821 Mon Apr 15 03:43:11 1996  Jeffrey A. Law  <law@cygnus.com>
13822
13823         * flags.h (flag_function_sections): Declare.
13824         * toplev.c (flag_function_sections): Define.
13825         (compile_file): Add warnings when -ffunction-sections is
13826         used with -g, or profiling.  Disable -ffunction-sections
13827         when profiling is used.  Add warning when -ffunction-sections
13828         is used on a target that doesn't support it.
13829         * varasm.c (named_section): Make a copy of the section name
13830         in case the original is in temporary storage.
13831         (function_section): Set DECL_SECTION_NAME for each function
13832         if flag_function_sections is on and the target supports it.
13833         * dbxout.c (dbxout_function_end): New function.
13834         (dbxout_function): Call dbxout_function_end if using extensions
13835         and flag_function_sections is on.
13836         * sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME): Prefix a function
13837         section's name with ".text%" when -ffunction-sections.
13838
13839 Sun Apr 14 19:37:43 1996  Doug Evans  <dje@cygnus.com>
13840
13841         * toplev.c (main): Delete redundant test for -p used with -fbytecode.
13842
13843 Sun Apr 14 19:01:59 1996  John F. Carr <jfc@mit.edu>
13844
13845         * c-decl.c (finish_enum): Don't crash if no type can represent all
13846         enumeration values.
13847
13848 Sun Apr 14 18:56:40 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
13849
13850         * m68k.md (ftruncdf2): Enable for m68060 systems.
13851
13852 Sun Apr 14 18:49:30 1996  David L. Reese  (david.reese@east.sun.com)
13853
13854         * fold-const.c (range_test):  Don't convert hi_cst or lo_cst
13855         to unsigned when folding signed range tests.
13856
13857 Sun Apr 14 08:56:27 1996  Stephen L Moshier  <moshier@world.std.com>
13858
13859         * real.h (ereal_from_{int,uint}): Add new arg, MODE.
13860         (REAL_VALUE_FROM{,_UNSIGNED}_INT): New arg, MODE.
13861         * real.c (ereal_from_{int,uint}): New arg, MODE.
13862         * cse.c (simplify_unary_operation): Add new arg to REAL_VALUE_FROM_INT.
13863         * fold-const.c (fold_convert): Likewise.
13864         * tree.c (real_value_from_int_cst): New arg, TYPE.
13865         Pass mode to REAL_VALUE_FROM_INT.
13866         (build_real_from_int_cst): Properly deal with truncation.
13867
13868 Sun Apr 14 08:21:29 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13869
13870         * combine.c (try_combine): When substituting in output of I2,
13871         ensure dest isn't clobbered in I2.
13872
13873         * combine.c (combine_instructions): In initial scan of insns,
13874         handle a REG_INC note's affect on sign bit copies and nonzero bits.
13875         (set_nonzero_bits_and_sign_copies): Treat a zero SET arg as a CLOBBER.
13876
13877 Sun Apr 14 07:52:28 1996  Manor Askenazi  <manor@santafe.edu>
13878
13879         * objc/encoding.c (objc_skip_typespec): Don't abort for _C_UNDEF.
13880
13881 Sat Apr 13 20:35:36 1996  Richard Henderson  (richard@atheist.tamu.edu)
13882
13883         * configure (m68k-apple-aux*): Rework to take advantange
13884         of list of tm.h files and support all four gas/gld options.
13885         * m68k/auxas.h, m68k/auxgas.h, m68k/auxgld.h, m68k/auxld.h: New files.
13886         * m68k/auxstd.h, m68k/auxgnu.h: Deleted.
13887
13888 Sat Apr 13 20:18:11 1996  Stephen L Moshier  <moshier@world.std.com>
13889
13890         * alpha.c (check_float_value): New function.
13891         * alpha.h (CHECK_FLOAT_VALUE): Define.
13892         (ASM_OUTPUT_FLOAT): Print the value in hex.
13893
13894 Sat Apr 13 15:08:45 1996  Doug Evans  <dje@canuck.cygnus.com>
13895
13896         * configure: New target arm{,el}-*-coff*.
13897         (cpu_default): Sort alphabetically.
13898         * arm/coff.h: New file.
13899         * arm/t-bare: New file.
13900         * arm/arm.c (use_return_insn): Don't use return for naked functions.
13901         (arm_valid_machine_decl_attribute): New function.
13902         (arm_naked_function_p): New function.
13903         (output_func_prologue): Naked functions don't have prologues.
13904         (arm_expand_prologue): Likewise.
13905         (output_func_epilogue): Likewise with epilogues.
13906
13907 Sat Apr 13 11:31:32 1996  Jeffrey A. Law  <law@cygnus.com>
13908
13909         * h8300.c (adds_subs_operand): Fix thinko in last change.
13910
13911         * h8300.md (subhi3): Turn into a define_expand.
13912         (subhi3 using adds_subs): New pattern.
13913         (H8300 subhi): Derived from old subhi pattern.  Simplified.
13914         (H8300H subhi): Likewise.
13915         (subsi using adds_subs): New pattern.  Only used on H8300H.
13916         (subsi_h8300): Allow "a" registers as destination.
13917         (subsi_h8300h): Allow "a" registers as destination.  Simplify.
13918
13919         * h8300.md (bcs_qiqi, bcs_hihi, bs_hiqi): Fix thinkos
13920         in last change.
13921
13922 Sat Apr 13 08:59:48 1996  Fila Kolodny <fila@ibi.com>
13923
13924         * i370/mvs.h (ASM_DECLARE_FUNCTION_NAME): Don't write anything to
13925         asm file, because everything is handled in FUNCTION_PROLOGUE.
13926
13927 Sat Apr 13 07:55:38 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13928
13929         * alpha.c (alpha_emit_set_const_1): Renamed from
13930         alpha_emit_set_const and static.
13931         Remove change of Nov 26; again use normal mechanism for SImode.
13932         (alpha_emit_set_const): New function.
13933
13934 Fri Apr 12 18:19:39 1996  Jeffrey A. Law  <law@cygnus.com>
13935
13936         * h8300.c (adds_subs_operand, output_adds_subs): New functions.
13937         * h8300.md (addhi3): Turn into a define_expand.
13938         (addhi3 using adds_subs): New pattern.
13939         (H8300 addhi): Derived from old addhi pattern.  Simplified.
13940         (H8300H addhi): Likewise.
13941         (addsi using adds_subs): New pattern.  Only used on H8300H.
13942         (addsi_h8300): Allow "a" registers as destination.
13943         (addsi_h8300h):  Simplify.  Allow "a" registers as destination.
13944
13945         * h8300.md (bcs): New attribute type.
13946         (default_length): Compute correct length for bcs insns.
13947         (bcs_qiqi, bcs_hihi, bs_hiqi): Use new type and update
13948         to account for correct length computation.
13949
13950         * h8300.md (movhi_internal): Demand at least one operand to be reg.
13951         (movsi_h8300{{,h}): Optimize loading certain constants.
13952
13953         * h8300.h (NO_FUNCTION_CSE): Comment out.
13954         (FUNCTION_ARG_REGNO_P): Properly define for TARGET_QUICKCALL.
13955         (RETURN_IN_MEMORY): Don't return small structs in regs.
13956
13957         * h8300.c (const_costs): -4 and 4 are cheap on the h8300h.
13958         (notice_update_cc): Remove references to "value2" field.
13959
13960         * h8300.c (dosize): Remove unused "fped" argument.  All callers
13961         changed.  Handle add/sub of 5-8 bytes efficiently on the h8300h.
13962
13963         * h8300.c (print_operand): Handle new 'R' case for accessing
13964         the 8-bit area.  Make code for 'Y' fall into code for 'R' when
13965         operand is not a register.  Update some comments.
13966         (h8300_tiny_data_p): New function.
13967         (h8300_valid_machine_decl_attribute): Handle "tiny_data" attribute.
13968         * h8300.h (OK_FOR_U): Handle memory references into 8-bit area.
13969         (ENCODE_SECTION_INFO): Mark SYMBOL_REFs which refer to 8-bit area.
13970         * h8300.md (many patterns): Use 'R' rather than 'X' for
13971         operands that may be memory accesses into the 8-bit area.
13972         (btst pattern): New pattern to set the cc0 (zbit) based on
13973         data in the 8-bit area.
13974
13975         * h8300.md (one_cmplsi2): Fix length computation for h8300h.
13976
13977 Fri Apr 12 14:34:39 1996  Doug Evans  <dje@cygnus.com>
13978
13979         * arm.md (*ldmsi,*stmsi): Use (mem (match_operand ...))
13980         to avoid using indirect_operand (reload problems).
13981         * arm/semi.h (CPP_PREDEFINES): Define __semi__ instead of semi.
13982         * arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Use LOCAL_LABEL_PREFIX.
13983         (ASM_OUTPUT_ADDR_{VEC,DIFF_ELT}): Likewise.
13984
13985 Fri Apr 12 09:43:30 1996  Jason Merrill  <jason@yorick.cygnus.com>
13986
13987         * dbxout.c (dbxout_typedefs): Don't emit incomplete types yet.
13988         (dbxout_symbol): Use DECL_ARTIFICIAL to recognize C++ implicit
13989         typedefs.
13990
13991 Thu Apr 11 21:56:26 1996  Doug Evans  <dje@cygnus.com>
13992
13993         * i386/t-winnt (winnt.o): Rewrite based on .c.o rule.
13994         (oldnames.o,spawnv.o): Add rules for.
13995
13996 Thu Apr 11 07:25:06 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
13997
13998         * calls.c (expand_call): In inlining case, if BEFORE_CALLS is
13999         zero, start looking at first insn.
14000
14001         * expr.c (preexpand_calls, case CALL_EXPR): Rework to properly
14002         avoid expanding functions returning variable size objects.
14003
14004         * integrate.c (expand_inline_function): When comparing types
14005         of formal and actual, use TYPE_MAIN_VARIANT.
14006
14007 Thu Apr 11 00:48:29 1996  Jeffrey A. Law  <law@cygnus.com>
14008
14009         * h8300/lib1funcs.asm (modnorm): New function(s).  Like divnorm,
14010         but gets the sign bit right for modulo operations.
14011         (__modhi3, modsi3): Use modnorm.
14012
14013         * h8300.c (dosize): On h8300h, do 4 byte adjusts using adds and subs.
14014         * h8300.h (LONG_LONG_TYPE_SIZE): Always make this 32bits.
14015         Reverses change from Apr 2, 1996.
14016
14017 Wed Apr 10 18:39:52 1996  Doug Evans  <dje@canuck.cygnus.com>
14018
14019         * sparc.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
14020         (FUNCTION_PROFILER): Use ASM_GENERATE_INTERNAL_LABEL instead.
14021
14022         * sparc.c (sparc_override_options): 90c701 renamed to tsc701.
14023         (eligible_for_epilogue_delay_slot): Don't allow anything if
14024         -mbroken-saverestore.
14025         (output_function_prologue): Only use trivial save's if
14026         -mbroken-saverestore.
14027         * sparc.h (CPP_SPEC): Handle -mcpu={sparclet,tsc701}.
14028         (ASM_SPEC): Likewise.
14029         ({MASK,TARGET}_BROKEN_SAVERESTORE): Define.
14030         (enum processor_type): 90C701 renamed to TSC701.
14031         * sparc.md (attr cpu): 90c701 renamed to tsc701.
14032         * sparc/splet.h (SUBTARGET_SWITCHES): Recognize -mbroken-saverestore.
14033
14034 Wed Apr 10 17:56:02 1996  Stan Cox  <coxs@dg-rtp.dg.com>
14035
14036         * m88k/dgux.h (EXTRA_SPECS): Define.
14037         (ASM_SPEC,CPP_SPEC,STARTFILE_SPEC): Use EXTRA_SPECS.
14038         * m88k/dguxbcs.h (ASM_SPEC,CPP_SPEC,STARTFILE_SPEC): Use EXTRA_SPECS.
14039         * m88k/m88k.c (output_ascii) Output literal HT.
14040
14041 Wed Apr 10 17:28:37 1996  James Carlson  (carlson@xylogics.com)
14042
14043         * configure: Work around AIX bug when defining SUBDIRS.
14044
14045 Wed Apr 10 17:22:42 1996  Paul Eggert  <eggert@twinsun.com>
14046
14047         * cexp.y (parse_number): Don't reject long long constants unless
14048         pedantic.
14049
14050 Wed Apr 10 17:19:56 1996  Stephen L. Moshier  (moshier@world.std.com)
14051
14052         * real.c (e64toe): Properly distinguish between NaN and infinity
14053         bit patterns for real-words-big-endian targets.
14054
14055 Wed Apr 10 17:17:26 1996  Richard Earnshaw  (rearnsha@armltd.co.uk)
14056
14057         * real.c (endian): Add two explicit casts.
14058         (e64toe): Support ARM extended precision fp format.
14059         Check negative infinities properly for NaNs.
14060         (toe64): Support ARM extended precision fp format.
14061
14062 Tue Apr  9 12:53:31 1996  Doug Evans  <dje@canuck.cygnus.com>
14063
14064         * i386/gas.h (ASM_OUTPUT_ALIGN): Define and use .balign.
14065
14066 Tue Apr  9 12:48:45 1996  Stephen L Moshier  (moshier@world.std.com)
14067
14068         * sparc.c (fp_zero_operand): Exclude -0.0.
14069
14070 Tue Apr  9 07:11:24 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
14071
14072         * alpha.c: Fix typo in last change.
14073
14074         * tree.c (substitute_in_expr): Don't return new expression if
14075         nothing changed.
14076         (substitute_in_type): Deleted, not used.
14077         * tree.h (substitute_in_type): Delete declaration.
14078
14079 Mon Apr  8 16:30:18 1996  Jeffrey A. Law  <law@cygnus.com>
14080
14081         * flow.c (find_auto_inc): Also make sure there aren't
14082         any sets of the incremented register between the memory
14083         reference and increment insn.
14084
14085 Mon Apr  8 15:41:14 1996  John Polstra  (jdp@polstra.com)
14086
14087         * configure (i[3456]86-*-freebsdelf*): New target.
14088         * i386/freebsd-elf.h: New file.
14089         * i386/x-freebsd (USER_H): New define; to null.
14090
14091 Mon Apr  8 14:44:41 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
14092
14093         * c-decl.c (finish_function): Always warn if main doesn't return int.
14094
14095 Mon Apr  8 13:01:37 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
14096
14097         * rs6000.c (got_operand): New function, returns true if the
14098         operand can go in V.4's GOT.
14099         (rs6000_pic_register): New variable.
14100         (output_epilog): Reset rs6000_pic_register.
14101
14102         * rs6000.h (rs6000_pic_register, got_operand, flag_pic): Add decls.
14103         (PREDICATE_CODES): Add got_operand.
14104
14105         * rs6000.md (movsi): Add support for V.4's -fpic and -FPIC.
14106         (init_v4_pic): Initialize the V4 pic register if needed.
14107         (call patterns): If -fpic/-fPIC, call function with @plt suffix.
14108
14109         * t-eabigas (MULTILIB_DIRNAMES): Remove errant pic directory.
14110
14111         * rs6000.c (output_prolog): Correctly store & restore the
14112         arguments to main in their correct save location, when calling the
14113         start function.
14114
14115 Mon Apr  8 13:01:37 1996  David Reese  <Dave.Reese@East.Sun.COM>
14116
14117         * rs6000.c (print_operand): Use reg_names to print registers.
14118
14119 Fri Apr  5 00:40:19 1996  Jeffrey A. Law  <law@cygnus.com>
14120
14121         * h8300.c (h8300_valid_machine_decl_attribute): Use underscores,
14122         not dashes in attributes.
14123         (h8300_funcvec_function_p): Corresponding changes.
14124         (h8300_interrupt_function_p): Likewise.
14125
14126         * pa.h (INIT_CUMULATIVE_INCOMING_ARGS): Initialize "indirect"
14127         field to zero.
14128
14129 Thu Apr  4 12:52:11 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
14130
14131         * loop.c (combine_givs): Use new macro GIV_SORT_CRITERION.
14132         New variable giv_array.  Loop over giv_array instead of following
14133         next_iv links.
14134         (giv_sort): New function.
14135         * sh.h (GIV_SORT_CRITERION):  Define.
14136
14137         * c-typeck.c (push_init_level): When output alignment for structure
14138         field, add check to verify it is the next field to be output.
14139
14140 Thu Apr  4 12:19:26 1996  David Mosberger-Tang  <davidm@AZStarNet.com>
14141
14142         * alpha.c: Don't include stamp.h for Linux-based GNU systems.
14143
14144 Thu Apr  4 12:17:08 1996  Richardg Kenner  (kenner@vlsi1.ultra.nyu.edu)
14145
14146         * objc/Makefile: Rename thread* to thr*.
14147         * objc/thread.c: Rename thread-* to thr-*.
14148         * objc/thr-decosf1.c: Renamed from thread-decosf1.c
14149         * objc/thr-irix.c: Renamed from thread-irix.c.
14150         * objc/thr-single.c: Renamed from thread-single.c.
14151         * objc/thr-solarius.c: Renamed from thread-solaris.c.
14152         * objc/thr-win32.c: Renamed from thread-win32.c.
14153         * objc/objc-api.h: Include thr.h, not thread.h.
14154         * objc/runtime.h, objc/sarray.h: Likewise.
14155
14156         * i386.md (ashldi3_const_int): Don't recognize if won't match
14157         constraint of operand 2.
14158
14159 Thu Apr  4 11:40:55 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
14160
14161         * config/fp-bit.c (EXTENDED_FLOAT_STUBS): If EXTENDED_FLOAT_STUBS
14162         is defined, define all of the XF/TF functions that might be
14163         generated that we don't have code for yet.
14164
14165         * i960/t-(vxworks960,960bare): (LIB2FUNCS_EXTRA): Make and
14166         compile xp-bits.c that defines EXTENDED_FLOAT_STUBS.
14167
14168         From: steve chamberlain  <sac@slash.cygnus.com>
14169         * i386/x-cygwin32 (LANGUAGES): Delete.
14170         * i386/xm-cygwin32.h (EXECUTABLE_SUFFIX): Set to .exe.
14171         * rs6000/xm-cygwin32.h (EXECUTABLE_SUFFIX): Set to .exe.
14172
14173 Wed Apr  3 14:10:16 1996  Jim Wilson  <wilson@chestnut.cygnus.com>
14174
14175         * expr.c (emit_push_insn): Clobber register only if it is non-zero.
14176
14177 Wed Apr  3 11:31:55 1996  Jeffrey A. Law  <law@cygnus.com>
14178
14179         * h8300.h (h8300_funcvec_function_p): Declaration moved here.
14180         * h8300.c (h8300_funcvec_function_p): Declaration removed from here.
14181         * h8300.md (tstqi): Tweak to work like other tstXX patterns.
14182         (cmphi): Turn into a define_expand.  Add two anonymous
14183         matterns to match the output of the cmphi expander.
14184         (cmpsi): Accept constants as the second input operand.
14185
14186 Tue Apr  2 13:52:30 1996  Jeffrey A. Law  <law@cygnus.com>
14187
14188         * h8300.md (movqi_internal): Remove useless alternative(s).  Fix
14189         lengths and simplify by reordering remaining alternatives.
14190         (movstrictqi, movhi_internal, movstricthi): Likewise.
14191         (movsi_h8300h, movsf_h8300h): Likewise.
14192
14193         * h8300/h8300.c (extra_pop): Remove unused variable.
14194         (current_function_anonymous_args): Likewise.
14195         (function_prologue): Remove incorrect varargs/stdarg
14196         related code.
14197         (function_epilogue): Likewise.
14198         (function_arg): Never pass unnamed arguments in registers.
14199         * h8300.h (LONG_LONG_TYPE_SIZE): Use 64bits when ints are 32bits.
14200         (SETUP_INCOMING_VARARGS): Remove definition.
14201
14202 Mon Apr  1 16:59:48 1996  Ian Lance Taylor  <ian@cygnus.com>
14203
14204         * fixincludes: Fix signal prototype on SunOS to avoid pedantic C++
14205         error.
14206
14207 Mon Apr  1 16:16:34 1996  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
14208
14209         * expr.c (get_inner_reference): When finding mode to access bitfield
14210         that ends up properly aligned, use mode class of its type unless
14211         type's mode was BLKmode.
14212
14213 Mon Apr  1 13:45:30 1996  Jeffrey A. Law  <law@cygnus.com>
14214
14215         * h8300.c (interrupt_handler): Renamed from pragma_interrupt.
14216         All references changed.
14217         (function_prologue): Set interrupt_handler if the current
14218         function has the "interrrupt-handler" attribute.
14219         (small_call_insn_operand): New function.
14220         (h8300_interrrupt_function_p): New function.
14221         (h8300_funcvec_function_p): New function.
14222         (h8300_valid_machine_decl_attribute): New function.
14223         * h8300.h (VALID_MACHINE_DECL_ATTRIBUTE): Define.
14224         * h8300.md (call insns): Handle calls through the
14225         function vector.  Indirect calls and calls through
14226         the function vector have a length of two bytes.
14227
14228 See ChangeLog.10 for earlier changes.
14229 \f
14230 Use a consistent time stamp format in ChangeLog entries.
14231 Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now.
14232
14233 Local Variables:
14234 add-log-time-format: current-time-string
14235 End: