OSDN Git Service

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