]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
cce4a958
KG
1Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2
3 * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
4
2df8df36
JW
5Thu Dec 17 12:31:12 1998 Jim Wilson <wilson@cygnus.com>
6
7 * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
8 (ALL_CFLAGS): Delete SCHED_CFLAGS.
9
86147f48
R
10Thu Dec 17 08:27:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
11
12 * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
13
16b6e120
NC
14Wed Dec 16 17:30:35 1998 Nick Clifton <nickc@cygnus.com>
15
16 * toplev.c (main): Disable optimize_size if a specific
17 optimization level is requested. Always set optimization
18 level to 2 if -Os is specified.
19
05c32e16
DB
20Wed Dec 16 16:33:04 1998 Dave Brolley <brolley@cygnus.com>
21
22 * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
23 cpplib.
24 * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
25 initialize it using fname.
26
692b872e
ZW
271998-12-16 Zack Weinberg <zack@rabi.phys.columbia.edu>
28
29 * cpplib.c (do_include): Treat #include_next in the
30 primary source file as #include plus warning. Treat
31 #include_next in a file included by absolute path as an
32 error. fp == CPP_NULL_BUFFER is a fatal inconsistency.
33
36b8337d
KG
34Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
35
36 * cccp.c: Don't define MIN/MAX anymore.
37 * cpplib.c: Likewise.
38 * machmode.h: Likewise.
39 * system.h: Provide definitions for MIN/MAX.
40
2d234b4f
ZW
41Tue Dec 15 23:47:42 1998 Zack Weinberg <zack@rabi.phys.columbia.edu>
42
43 * fix-header.c: Don't define xstrdup here.
44
a07516d3
R
45Wed Dec 16 05:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
46
47 * loop.c (consec_sets_giv): New argument last_consec_insn.
48 (strength_reduce): Provide / use it.
49
35704c46
MH
50Wed Dec 16 17:24:07 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
51
52 * loop.h (loop_info): New field 'vtop'.
53 * loop.c (check_dbra_loop): Use loop_info->vtop rather than
54 scanning loop for vtop.
55 * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
56 (loop_iterations): Use them to determine if loop has a constant
57 number of iterations. Set loop_info->vtop. Don't subtract
58 common reg term from initial_value and final_value if have a
59 do-while loop.
60
9c907d54
JL
61Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com)
62
b884a51a
JL
63 * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
64
5ba52c2e
JL
65 * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
66
9c907d54
JL
67 * mn10200.md (abssf2, negsf2): New expanders.
68
69 * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
70
ddc54eaa
NC
71Tue Dec 15 11:55:30 1998 Nick Clifton <nickc@cygnus.com>
72
73 * integrate.c (copy_rtx_and_substitute): If a SUBREG is
74 replaced by a CONCAT whoes components do not have the same
75 mode as the original SUBREG, use a new SUBREG to restore the
76 mode.
77
78 * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
79 multiword complex values.
80
c49445e0
ZW
811998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
82
83 * cppalloc.c: Add xstrdup here.
84 * cpplib.h: Remove savestring prototype.
85 * cpplib.c: Remove savestring function. s/savestring/xstrdup/
86 throughout.
87 * cppfiles.c: s/savestring/xstrdup/ throughout.
88
941e09b6
ZW
891998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
90
91 * cpplib.c: Make all directive handlers read their own
92 arguments.
93 (struct directive): Remove last two arguments from FUNC
94 member prototype. Remove `command_reads_line' member
95 entirely.
96 (directive_table): Remove initializations of
97 command_reads_line flag. Pretty-print.
98 (eval_if_expression, do_define, do_line, do_include,
99 do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
100 do_else, do_elif, do_sccs, do_assert, do_unassert,
101 do_warning): Take only two args.
102
103 (cpp_define): Call do_define with two args and the text to
104 define stuffed into a buffer.
105 (make_assertion): Call do_assert with two args.
106 (handle_directive): Call do_line with two args. Call
107 kt->func with two args. Remove command_reads_line
108 processing.
109 (do_define, do_undef, do_error, do_warning, do_pragma,
110 do_sccs): Read the rest of the line here.
111 (do_ident): Gobble rest of line, as cccp does.
112 (cpp_undef): New function.
113 (cpp_start_read): Call cpp_undef instead of do_undef.
114
7061aa5a
ZW
1151998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu>
116
117 * cpphash.h (union hash_value): Remove `keydef' member, add a
118 `struct hashnode *aschain' member for #assert.
119
120 * cpplib.c (struct tokenlist_list, struct
121 assertion_hashnode): Delete structure definitions.
122 (assertion_install, assertion_lookup, delete_assertion,
123 check_assertion, compare_token_lists, reverse_token_list,
124 read_token_list, free_token_list): Delete functions.
125 (parse_assertion): New function.
126 (cpp_cleanup): Don't destroy the assertion_hashtable.
127
128 (do_assert): Gut and rewrite. #assert foo (bar) places
129 entries for `#foo' and `#foo(bar)' in the macro hash table,
130 type T_ASSERT. The value union's `aschain' member is used
131 to chain all answers for a given predicate together.
132 (do_unassert): Also rewritten. Take an un-asserted
133 answer off the chain from its predicate and call
134 delete_macro on the hashnode, or walk a predicate chain
135 calling delete_macro on all the entries.
136 (cpp_read_check_assertion): Simply call parse_assertion to
137 get the canonical assertion name, and look that up in the
138 hash table.
139
140 * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
141 Removed.
142
143 * cpphash.c (install): Use bcopy instead of an explicit loop
144 to copy the macro name.
145
146 * cppexp.c (cpp_lex): Convert the result of
147 cpp_read_check_assertion to a `struct operation' directly;
148 don't go through parse_number.
149
4b259e3f
R
150Tue Dec 15 18:27:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
151
152 * loop.h (struct induction): Delete times_used member.
153 * loop.c (n_times_set): Rename to set_in_loop. Changed all users.
154 (n_times_used): Rename to n_times_set. Changed all users.
155 (scan_loop): Free reg_single_usage before strength reduction.
156 (record_giv, combine_givs): Remove handling of times_used member.
157 (combine_givs_used_once): Rename to:
158 (combine_givs_used_by_other) . Changed all callers.
159
5f2f160c
JM
160Tue Dec 15 01:45:26 1998 Jason Merrill <jason@yorick.cygnus.com>
161
162 * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
163 instead of TREE_CODE_CLASS == 't'.
164 (gen_type_die): Likewise.
165 (scope_die_for): Ignore FUNCTION_TYPE "scopes".
166
c1c7db89
JW
167Mon Dec 14 16:23:27 1998 Jim Wilson <wilson@cygnus.com>
168
169 * real.c (endian): Disable last change unless
170 HOST_BITS_PER_WIDE_INT is greater than 32.
171
3167de5b
AM
172Mon Dec 14 17:13:36 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
173
174 * output.h (force_data_section): New prototype.
175 * varasm.c (force_data_section): New function to force the
176 data section, regardless of what in_section thinks.
177 * dwarf2out.c (output_call_frame_info): Call force_data_section
178 since varasm may not realize we've changes sections.
179
80599fd9
NC
180Mon Dec 14 14:09:34 1998 Nick Clifton <nickc@cygnus.com>
181
182 * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
183 after completeing reload.
184
185 * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
186 deleted after reload.
187
93e0dfe1
JL
188Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com)
189
190 * rtl.h (multiple_sets): Fix prototype.
191 * rtlanal.c (multiple_sets): Fix return type.
192
5d943c3c
JL
193Sun Dec 13 12:43:58 PST 1998 Jeff Law (law@cygnus.com)
194
195 * version.c: Bump for snapshot.
196
714d352f
JL
197Sun Dec 13 01:05:22 PST 1998 Jeff Law (law@cygnus.com)
198
199 * version.c: Bump for snapshot.
200
56485bee
MH
2011998-12-13 Manfred Hollstein <manfred@s-direktnet.de>
202
203 * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
204
404d95c4
R
205Sun Dec 13 00:24:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
206
213c4983
R
207 * rtl.h (recompute_reg_usage): Add second argument.
208 * flow.c (recompute_reg_usage): Likewise.
209 * toplev.c (rest_of_compilation): Supply second argument to
210 recompute_reg_usage.
211
404d95c4
R
212 * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
213 after reload.
214
941c63ac
JL
215Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com)
216
f08347a9
JL
217 * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
218 (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
219 (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
220 mcpu32 or m5200.
221
4566eb62
JL
222 * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
223
941c63ac
JL
224 * rtlanal.c (multiple_sets): New function.
225 * rtl.h (multiple_sets): Declare it.
226 * local-alloc.c (wipe_dead_reg): Use it.
227 * global.c (global_conflicts): Likewise.
228
8d4c79be
MM
229Sat Dec 12 22:13:02 1998 Mark Mitchell <mark@markmitchell.com>
230
231 * global.c (record_conflicts): Don't use an array of shorts to
232 store an array of ints.
233 (global_conflicts): Likewise.
234
f35cba21
RH
235Sat Dec 12 16:49:24 1998 Richard Henderson <rth@cygnus.com>
236
237 * alpha.c (alpha_expand_block_move): mode_for_size expects
238 bits, not bytes. Infer extra alignment from addressof.
239
a9aefc1e
MM
2401998-12-11 Michael Meissner <meissner@cygnus.com>
241
242 * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
243 .sbss section, not .sdata.
244
56adfa4a
MH
2451998-12-11 Manfred Hollstein <manfred@s-direktnet.de>
246
8eeae6f4
MH
247 * cccp.c: Do not #include <sys/stat.h> here; this is already done
248 by "system.h".
249 * collect2.c: Likewise.
250 * cpplib.h: Likewise.
251 * gcc.c: Likewise.
252 * gcov.c: Likewise.
253 * getpwd.c: Likewise.
254 * protoize.c: Likewise.
255 * toplev.c: Likewise.
256
56adfa4a
MH
257 * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
258 and don't try to define it here.
259 * Makefile.in (cppmain.o): Depend on machmode.h.
260 (cpplib.o): Likewise.
261 (cpperror.o): Likewise.
262 (cppexp.o): Likewise.
263 (cppfiles.o): Likewise.
264 (cpphash.o): Likewise.
265 (cppalloc.o): Likewise.
266 (fix-header.o): Likewise.
267 (scan-decls.o): Likewise.
268
157131d7
SC
269Fri Dec 11 11:02:49 1998 Stan Cox <scox@cygnus.com>
270
271 * sh.c (print_operand): lookup interrupt_handler attribute instead
272 of relying on static variable.
273 * (calc_live_regs): Likewise.
274 * (sh_pragma_insert_attributes): Create interrupt_handler
275 attribute if a pragma was specified
276 * (sh_valid_machine_decl_attribute): Don't set static flag.
277 * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
278
b0634509
R
279Fri Dec 11 12:56:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
280
281 * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
282 to determine if a register is live at a jump destination.
283 Everything is dead at a BARRIER.
284
737e7965
JW
285Thu Dec 10 16:02:06 1998 Jim Wilson <wilson@cygnus.com>
286
287 * cse.c (simplify_unary_operation): Sign-extend constants when
288 they have the most significant bit set for the target.
289 * real.c (endian): Sign-extend 32 bit output values on a 64 bit
290 host.
291 * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
292 HOST_WIDE_INT temporary before negating it.
293 * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
294
353f10d5
DB
295Thu Dec 10 15:05:59 1998 Dave Brolley <brolley@cygnus.com>
296
297 * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
298 #if USE_CPPLIB.
299
2edfd4ee
KG
300Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
301
302 * collect2.h: New header file for prototypes.
303
304 * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
305
306 * collect2.c: Include collect2.h.
307 * tlink.c: Likewise.
308
c9852047
JL
309Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com)
310
311 * flow.c: Update some comments.
312
5d7da2c6
DB
313Wed Dec 9 15:29:26 1998 Dave Brolley <brolley@cygnus.com>
314
315 * objc/objc-act.c (cpp_initialized): Removed.
316 (lang_init_options): Initialize cpplib.
317 (lang_decode_option): Move initialization of cpplib to
318 lang_init_options.
319 * c-lang.c: (parse_options,parse_in): Added.
320 (lang_init_options): Initialized cpplib here.
321 * c-decl.c (parse_options,cpp_initialized): Removed.
322 (c_decode_option): Move initialization of cpplib to
323 lang_init_options.
324
ed937a19
R
325Wed Dec 9 19:36:57 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
326
327 * reload1.c (reload_combine, reload_combine_note_store):
a0078b37 328 Make STORE_RUID always valid.
ed937a19
R
329 (reload_combine): Check if BASE is clobbered too early.
330
290b61f7
NC
331Wed Dec 9 09:53:58 1998 Nick Clifton <nickc@cygnus.com>
332
333 * reload.c (find_reloads): Display the insn that cannot be
334 reloaded.
335
bdf777e4
DB
336Wed Dec 9 12:15:26 1998 Dave Brolley <brolley@cygnus.com>
337
338 * cccp.c (create_definition): Fix end of bufer logic.
339
3b89e9d1
KG
340Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
341
342 * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
343 pointer parameters changed to use the PARAMS() macro.
344
0177de87
AM
345Wed Dec 9 09:12:40 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
346
347 * except.h (struct handler_info): Add handler_number field.
348 * except.c (gen_exception_label): EH labels no longer need to be
349 on the permanent obstack.
350 (get_new_handler): Set the label number field.
351 (output_exception_table_entry): Regenerate handler label reference
352 from the label number field.
353 (init_eh): Remove a blank line.
354 * integrate.c (get_label_from_map): Labels no longer need to be
355 on the permanent obstack.
356
7a3c92a5
JW
357Tue Dec 8 22:04:33 1998 Jim Wilson <wilson@cygnus.com>
358
359 * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
360 only when OUTER_CODE is SET.
361
5353610b
R
362Tue Dec 8 22:47:15 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
363
364 * loop.c (strength_reduce): If scan_start points to the loop exit
365 test, be wary of subversive use of gotos inside expression statements.
366 Don't set maybe_multiple for a backward jump that does not
367 include the label under consideration into its range.
368 * unroll.c (biv_total_increment): Make use of maybe_multiple field.
369
03d937fc
R
370Tue Dec 8 22:33:18 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
371
372 * explow.c (plus_constant_wide): Don't immediately return with
373 result of recursive call.
374
e6cfb550
AM
375Tue Dec 8 15:32:56 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
376
377 * eh-common.h (struct eh_context): Add table_index for rethrows.
378
379 * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
380 (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
381 processed when inlined or unrolled (ie duplicated in some way).
382
383 * rtl.c (reg_note_name): Add strings for new reg_note enums.
384
385 * expr.h (rethrow_libfunc): New library decl.
386
387 * optabs.c (rethrow_libfunc): Initialize.
388
389 * except.h (struct eh_entry): Add new field 'rethrow_label'.
390 (new_eh_region_entry): No longer exported from except.c.
391 (duplicate_handlers): Renamed to duplicate_eh_handlers and
392 different prototype.
393 (rethrow_symbol_map, rethrow_used): New exported functions.
394 (eh_region_from_symbol): New exported function.
395
396 * except.c (create_rethrow_ref): New function to create a single
397 SYMBOL_REF for a rethrow region.
398 (push_eh_entry): Initialize a rethrow ref.
399 (func_eh_entry): Add a rethrow_label field.
400 (new_eh_region_entry): Make static, and initialize the rethrow entry.
401 (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
402 (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
403 (rethrow_symbol_map): Given a label map, maps a rethrow symbol for
404 a region into an appropriate new symbol.
405 (rethrow_used): Indicate whether a rethrow symbol has been referenced.
406 (expand_eh_region_end): Don't issue jump around code for new-exceptions.
407 (end_catch_handler): Emit a barrier for new-exceptions since
408 control can never drop through the end of a catch block.
409 (expand_end_all_catch): new-exceptions never fall through a catch
410 block.
411 (expand_rethrow): use __rethrow routine for new exceptions.
412 (output_exception_table_entry): Generate rethrow labels, if needed.
413 (output_exception_table): Generate start and end rethrow labels.
414 (init_eh): Create rethrow symbols for beginning and end of table.
415 (scan_region): Don't eliminate EH regions which are the targets of
416 rethrows.
417
418 * flow.c (make_edges): Add different edges for rethrow calls,
419 identified by having the REG_EH_RETHROW reg label.
420 (delete_unreachable_blocks): Don't delete regions markers which are
421 the target of a rethrow.
422
423 * integrate.c (save_for_inline_eh_labelmap): New callback routine to
424 allow save_for_inline_copying to call duplicate_eh_handlers.
425 (save_for_inline_copying): Call duplicate_eh_handlers instead of
426 exposing internal details of exception regions.
427 (copy_for_inline): Check if SYMBOL_REFs need adjustment.
428 (expand_inline_function_eh_labelmap): New callback routine to
429 allow expand_inline_function to call duplicate_eh_handlers.
430 (expand_inline_function): Call duplicate_eh_handlers instead of
431 exposing internal details of exception regions.
432 (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
433 flag is set.
434
435 * libgcc2.c (find_exception_handler): Generalize to enable it to
436 pick up processing where it left off last time for a rethrow.
437 (__unwinding_cleanup): New function. debug hook which is called before
438 unwinding when __throw finds there is nothing but cleanups left.
439 (throw_helper): Common parts of __throw extracted out for reuse.
440 (__throw): Common parts moved to throw_helper.
441 (__rethrow): New function for performing rethrows.
442
122a860e
JL
443Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com)
444
445 * reload1.c (current_function_decl): Tweak declaration.
446
6271b191
RH
447Tue Dec 8 10:23:52 1998 Richard Henderson <rth@cygnus.com>
448
449 * c-decl.c (flag_isoc9x): Default off.
450 (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
451 * cccp.c (print_help, main): Likewise.
452 * gcc.c (default_compilers): Update for -std=gnu*.
453
dfb7c80f
JL
454Tue Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com)
455
d91d4a5c
JL
456 * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
457 * demangle.h: Deleted.
458
dfb7c80f
JL
459 * reload1.c (current_function_decl): Declare.
460
b4eadc3d
KG
461Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
462
463 * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
464
6785b077
KG
465Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
466
467 * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
468
54953b66
UD
4691998-12-08 Ulrich Drepper <drepper@cygnus.com>
470
471 * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
472 and fputs_unlocked.
473 * configure: Rebuilt.
474 * system.h: If the *_unlocked functions are available use them
475 instead of the locked counterparts by defining macros.
476 * config.in: Regenerated.
477
872936ad
MS
478Tue Dec 8 00:34:05 1998 Mike Stump <mrs@wrs.com>
479
480 * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
481 wrong and should only be used for dump related things, not
482 debugging information, instead main_input_filename should be used.
483 Also, reuse output_file_directive if possible.
484 * i386/aix386ng.h (ASM_FILE_START): Likewise.
485 * i386/isc.h (ASM_FILE_START): Likewise.
486 * i386/win-nt.h (ASM_FILE_START): Likewise.
487 * i386/sun386.h (ASM_FILE_START): Likewise.
488
11fa8909
RL
489Mon Dec 7 23:56:28 1998 Robert Lipe <robertl@dgii.com>
490
491 * configure.in (mips*-*-linux*): Handle big and little endian
492 systems.
493 * configure: Rebuilt.
494
fe77a034
MS
495Mon Dec 7 23:14:51 1998 Mike Stump <mrs@wrs.com>
496
497 * emit-rtl.c: Fix typo.
498
9becac0c
NS
499Mon Dec 7 23:07:38 1998 Nathan Sidwell <nathan@acm.org>
500
501 * reload1.c (eliminate_regs): Don't do anything, if we're not
502 generating code.
503
5f680ab6
DD
504Mon Dec 7 15:27:09 1998 DJ Delorie <dj@cygnus.com>
505
506 * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
507 Add comment.
508 * mips/mips.c (mips_select_section): Add comment.
509
c25d8793
MS
510Mon Dec 7 17:55:06 1998 Mike Stump <mrs@wrs.com>
511
512 * cccp.c (ignore_escape_flag): Add support for \ as `natural'
513 characters in file names in #line to be consistent with #include
514 handling. We support escape prcessing in the # 1 "..." version of
515 the command. See also support in cp/lex.c.
516 (handle_directive): Likewise.
517 (do_line): Likewise.
518
c50bca08
ZW
5191998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu>
520
521 * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
522 so it'll work on non-ASCII platforms. Always consider $ an
523 identifier character. Take no arguments.
524 (cpp_reader_init): Call initialize_char_syntax with no
525 arguments.
526 (cpp_start_read): Don't call initialize_char_syntax again.
527 Clear is_idchar['$'] and is_idstart['$'] if not
528 opts->dollars_in_ident.
529
530 * cpplib.h (struct cpp_reader): Replace void *data element by
531 cpp_options *opts. Rearrange elements to make gdb printout
532 less annoying (put buffer stack at end).
533 (CPP_OPTIONS): Get rid of now-unnecessary cast.
534
535 * cppmain.c: s/data/opts/ when initializing cpp_reader
536 structure.
537 * c-decl.c: Likewise.
538 * objc/objc-act.c: Likewise.
539 * fix-header.c: Likewise.
540
5411998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu>
f1a86df6
ZW
542
543 * cpplib.h (struct cpp_buffer): Replace dir and dlen members
544 with a struct file_name_list pointer.
545 (struct cpp_reader): Add pointer to chain of `actual
546 directory' include searchpath entries.
547 (struct file_name_list): Add *alloc pointer for the sake of
548 the actual-directory chain.
549
550 Move definition of HOST_WIDE_INT here.
551 (cpp_parse_escape): Change prototype to match changes in
552 cppexp.c.
553
554 * cppfiles.c (actual_directory): New function.
555 (finclude): Use it to initialize the buffer's actual_dir
556 entry.
557 (find_include_file): We don't need to fix up max_include_len
558 here.
559
560 * cpplib.c (do_include): Don't allocate a file_name_list on
561 the fly for current directory "" includes, use the one that's
562 been preallocated in pfile->buffer->actual_dir. Hoist out
563 duplicate code from the search_start selection logic.
564 (cpp_reader_init): Initialize pfile->actual_dirs.
565
566 Remove definition of HOST_WIDE_INT. Change calls
567 to cpp_parse_escape to match changes in cppexp.c (note
568 hardcoded MASK, which is safe since this is the source
569 character set).
570
571 * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
572 to handle wide character constants in #if directives. The
573 function now returns a HOST_WIDE_INT, and takes a third
574 argument which is a binary mask for all legal values (0x00ff
575 for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define
576 MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of
577 cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c]
578
93447205
DB
579Mon Dec 7 15:38:25 1998 Dave Brolley <brolley@cygnus.com>
580
581 * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
582
583Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
584
585 * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
586 * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
587 * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
588
1db9f6ce
NC
589Mon Dec 7 11:30:49 1998 Nick Clifton <nickc@cygnus.com>
590
591 * final.c (output_asm_name): Use tabs to seperate comments from
592 assembly text.
593
594 Include instruction lengths (if defined) in output.
595
eb6a3bc0
MH
596Mon Dec 7 10:53:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
597
598 * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
599 in the loop_info structure.
600
e6592fff
CM
601Mon Dec 7 11:04:40 1998 Catherine Moore <clm@cygnus.com>
602
603 * configure.in: (arm*-*-ecos-elf): New target.
604 * configure: Regenerated.
605 * config/arm/elf.h (ASM_WEAKEN_LABEL): Define.
606 * config/arm/ecos-elf.h: New file.
607 * config/arm/unknown-elf.h (TARGET_VERSION): Check
608 for redefinition.
609
1a953d0f
R
610Mon Dec 7 16:15:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
611
612 * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
613
8962b4b4
JL
614Sun Dec 6 04:19:45 PST 1998 Jeff Law (law@cygnus.com)
615
616 * version.c: Bump for snapshot.
617
5629b16c
MH
618Sun Dec 6 05:16:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
619
620 * loop.c (check_dbra_loop): New argument loop_info. Update fields
621 as needed.
622
01bdf1bc
JL
623Sun Dec 6 03:40:13 PST 1998 Jeff Law (law@cygnus.com)
624
625 * version.c: Bump for snapshot.
626
badcf916
AO
627Sun Dec 6 07:49:29 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
628
629 * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
630 compressed reports are ok and preferred over URLs
631
892d0a6d
AO
632Sun Dec 6 07:45:33 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
633
634 * invoke.texi (Warning Options): Soften the tone of -pedantic
635
cd2c4c54
L
636Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org)
637
638 * print-rtl.c (print_rtx): Add prototype.
639
640 * unroll.c (iteration_info): Make it static.
641
02e3377d
RH
642Sun Dec 6 01:19:46 1998 Richard Henderson <rth@cygnus.com>
643
644 * alias.c (memrefs_conflict_p): A second ANDed address
645 disables the aligned address optimization.
646
4bd75896
RH
647Sat Dec 5 18:48:25 1998 Richard Henderson <rth@cygnus.com>
648
649 * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
650 in -c << n case.
651
c78358d4
JM
652Sat Dec 5 15:14:52 1998 Jason Merrill <jason@yorick.cygnus.com>
653
654 * i960.h (BOOL_TYPE_SIZE): Define.
655
e868a840
MH
656Sun Dec 6 00:28:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
657
658 * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
659 from old valid_parallel_operands_4.
660 (valid_parallel_operands_4): Check that operands for 4 operand
661 parallel insns are valid, excluding load/store insns.
662 * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
663 * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
664 valid_parallel_load_store instead of valid_parallel_operands_4.
665 (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber,
666 *negqf2_movqf_clobber, *absqi2_movqi_clobber,
667 *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
668 *notqi_movqi_clobber): Use valid_parallel_operands_4.
669 (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
670 *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
671 *subqi3_movqi_clobber): Use valid_parallel_operands_5.
672
cd20cc86
MH
673Sat Dec 5 23:52:01 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
674
675 * config/c4x/c4x.c (iteration_info): Delete extern.
676
f62a15e3
BS
677Fri Dec 4 20:15:57 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
678
faa9eb19
BS
679 * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
680
f62a15e3
BS
681 * final.c (cleanup_subreg_operands): Delete some unused code.
682
683 * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
684 (struct insn_alternative): New structure definition.
685 (recog_op_alt): Declare variable.
686 (preprocess_constraints): Declare function.
687 * recog.c (recog_op_alt): New variable.
688 (extract_insn): Verify number of alternatives is in range.
689 (preprocess_constraints): New function.
690 * reg-stack.c: Include recog.h.
691 (constrain_asm_operands): Delete.
692 (get_asm_operand_lengths): Delete.
693 (get_asm_operand_n_inputs): New function.
694 (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
695 N_OUTPUTS args. All callers changed.
696 Compute number of inputs and outputs here by calling
697 get_asm_operand_n_inputs.
698 Instead of constrain_asm_operands, call extract_insn,
699 constrain_operands and preprocess_constaints. Use information
700 computed by these functions throughout.
701 (record_reg_life): Delete code that is unused due to changes in
702 record_asm_reg_life.
703 (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
704 N_INPUTS and N_OUTPUTS args. All callers changed.
705 Similar changes as in record_asm_reg_life.
706 (subst_stack_regs): Move n_operands declaration into the if statement
707 where it's used.
708 Delete code that is unused due to changes in subst_asm_stack_regs.
709 * stmt.c (expand_asm_operands): Verify number of alternatives is in
710 range.
711 * Makefile.in (reg-stack.o): Depend on recog.h.
712
2ec10ea9
JL
713Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com)
714
715 * except.c (set_exception_version_code): Argument is an "int".
716
16fb6b5e
JL
717Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com)
718
719 * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
720 * configure: Rebuilt.
721
18cae839
RL
722Fri Dec 4 01:29:28 1998 Robert Lipe <robertl@dgii.com>
723
724 * configure.in (mipsel-*-linux*): New target.
725 * mips/linux.h: New file, based on other Linux targets.
726
0fcff082
MS
727Thu Dec 3 11:19:50 1998 Mike Stump <mrs@wrs.com>
728
729 * gthr-vxworks.h (__ehdtor): Fix memory leak. The delete hook
730 runs in the context of the deleter, not the deletee, so we must
731 use taskVarGet to find the correct memory to free.
732 (__gthread_key_create): Initialize the task
733 variable subsystem so that the task variable is still active when
734 the delete hook is run.
735
9f643ff8
JL
7361998-12-03 Joseph S. Myers <jsm28@cam.ac.uk>
737
f4190acc
JM
738 * pdp11.h: Use optimize_size for space optimizations.
739 * pdp11.c: Likewise.
740 * pdp11.md: Likewise.
741
9f643ff8
JL
742 * pdp11.h (TARGET_40_PLUS): Fix typo.
743
744Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com)
745
746 * local-alloc.c (block_alloc): Slightly retune heuristic to widen
747 qty lifetimes.
748
39cec1ac
MH
749Thu Dec 3 22:30:18 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
750
751 * alias.c (addr_side_effect_eval): New function.
752 (memrefs_conflict_p): Use it.
753 * rtl.h (addr_side_effect_eval): Prototype it.
754
a6a715ca
JM
7551998-12-02 Joseph S. Myers <jsm28@cam.ac.uk>
756
757 * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
758
226592de
JW
759Wed Dec 2 11:23:07 1998 Jim Wilson <wilson@cygnus.com>
760
761 * reload.c (find_reloads): When force const to memory, put result
762 in substed_operand not *recog_operand_loc.
763
1747054f
UD
7641998-12-02 Ulrich Drepper <drepper@cygnus.com>
765
766 * c-lex.c: Fix indentation from last patch.
767 Remove trailing whitespace.
768 * real.c: Likewise.
769
2536e1ee
JL
770Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com)
771
772 * flow.c (delete_block): Call set_last_insn after we have reset
773 NEXT_INSN (kept_tail).
774
b151501e
JL
775Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com)
776
777 * mips.md (trap_if): Use "$0" for the value zero.
778
6f4d7222
UD
779Tue Dec 1 20:49:49 1998 Ulrich Drepper <drepper@cygnus.com>
780 Stephen L Moshier <moshier@world.std.com>
781 Richard Henderson <rth@cygnus.com>
782
783 * c-common.c (declare_function_name): Declare predefinied variable
784 `__func__'.
785
786 * c-decl.c (flag_isoc9x): Set to 1 by default.
787 (c_decode_option): Handle -std= option. Remove -flang-isoc9x.
788 (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
789
790 * c-parse.in: Allow constructors in ISO C 9x.
791 Rewrite designator list handling.
792 Allow [*] parameters.
793 Don't warn about comma at end of enum definition for ISO C 9x.
794
795 * cccp.c (c9x): New variable.
796 (rest_extension): New variable.
797 (print_help): Document new -std= option.
798 (main): Recognize -std= option. Set c9x appropriately.
799 (create_definition): Recognize ISO C 9x vararg macros.
800
801 * gcc.c (default_compilers): Adjust specs for -std options.
802 (option_map): Add --std.
803 (display_help): Document -std.
804
805 * toplev.c (documented_lang_options): Add -std and remove
806 -flang-isoc9x.
807
808 * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
809 or REAL_VALUE_HTOF based on base of the constants.
810 * fold-const.c (real_hex_to_f): New function. Replacement function
811 for hex FP conversion if REAL_ARITHMETIC is not defined.
812 * real.c (asctoeg): Add handling of hex FP constants.
813 * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
814 real_hex_to_f.
815
08c2951c
SC
816Tue Dec 1 16:45:49 1998 Stan Cox <scox@cygnus.com>
817
818 * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
819 -mcheck-range-division/-mcheck-zero-division checking. Avoid as macro
820 expansion. Use hi/lo as destination register.
821 (div_trap): New.
822 (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
823 umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
824 Avoid as macro expansion. Use hi/lo as destination register.
825
826 * mips.h (MASK_CHECK_RANGE_DIV): New.
827 (MASK_NO_CHECK_ZERO_DIV): New.
828 (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
829 (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
830 return address for leaf functions out of r31 to support
831 builtin_return_address.
832
1f5fb51f
HB
833Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
834
835 * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
836 NEXT_INSN(x) to check insn x.
837
45c85c4e
JL
838Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com)
839
e3f6ee23
JL
840 * flow.c (delete_block): Call set_last_insn if we end up deleting the
841 last insn in the rtl chain.
842
45c85c4e
JL
843 * reload1.c (reload): Do not set reload_completed or split insns
844 here. Instead...
845 * toplev.c (rest_of_compilation): Set reload_completed after
846 reload returns. Split insns after reload_cse has run.
847
df3ba30a
RH
848Tue Dec 1 11:55:04 1998 Richard Henderson <rth@cygnus.com>
849
850 * final.c (final_scan_insn): Abort if block_depth falls below 0.
851
bbc1b3f7
NC
852Tue Dec 1 10:23:16 1998 Nick Clifton <nickc@cygnus.com>
853
854 * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
855
856Tue Dec 1 10:22:18 1998 Nick Clifton <nickc@cygnus.com>
857
858 * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
859 use of user-label_prefix.
860
2b49ee39
R
861Tue Dec 1 17:58:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
862
78a2bc08
R
863 * reload1.c (emit_reload_insns): Clear spill_reg_store
864 when doing a new non-inherited reload from the same pseudo.
865
2b49ee39
R
866 * local-alloc.c (function_invariant_p): New function.
867 (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
868 to decide if an equivalence should be recorded.
869 * reload1.c (num_eliminable_invariants): New static variable.
870 (reload): Set it. Use function_invariant_p instead of CONSTANT_P
871 to decide if an equivalence should be recorded.
872 Unshare PLUS.
873 (calculate_needs_all_insns): Skip insns that only set an equivalence.
874 Take num_eliminable_invariants into account when deciding
875 if register elimination should be done.
876 (reload_as_needed): Take num_eliminable_invariants into account
877 when deciding if register elimination should be done.
878 (eliminate_regs): Handle non-constant reg_equiv_constant.
879 * rtl.h (function_invariant_p): Declare.
880
dfc00b38
JL
881Mon Nov 30 02:00:08 PST 1998 Jeff Law (law@cygnus.com)
882
883 * version.c: Bump for snapshot.
884
a8afb377
JL
885Mon Nov 30 00:42:59 PST 1998 Jeff Law (law@cygnus.com)
886
887 * version.c: Bump for snapshot.
888
9bbdf48e
JM
889Sun Nov 29 22:59:40 1998 Jason Merrill <jason@yorick.cygnus.com>
890
891 * except.c (add_new_handler): Complain about additional handlers
892 after one that catches everything.
893
66953094
JL
894Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com)
895
896 * configure.in (alpha*-*-netbsd): Fix typo.
897 * configure: Rebuilt.
898
2778b98d
KG
899Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
900
901 * system.h: Include libiberty.h.
902
903 * c-aux-info.c: Remove prototypes for concat/concat3. Change
904 function `concat' from fixed parameters to variable parameters,
905 as is done in libiberty. All callers of concat/concat3
906 changed to use the new `concat' with variable args.
907
908 * cccp.c: Remove things made redundant by libiberty.h and/or
909 conform to libiberty standards.
910 * cexp.y: Likewise.
911 * collect2.c: Likewise.
912 * config/1750a/1750a.h: Likewise.
913 * cppalloc.c: Likewise.
914 * cppexp.c: Likewise.
915 * cppfiles.c: Likewise.
916 * cpphash.c: Likewise.
917 * cpplib.c: Likewise.
918 * dyn-string.c: Likewise.
919 * fix-header.c: Likewise.
920 * gcc.c: Likewise.
921 * gcov.c: Likewise.
922 * genattr.c: Likewise.
923 * genattrtab.c: Likewise.
924 * gencheck.c: Likewise.
925 * gencodes.c: Likewise.
926 * genconfig.c: Likewise.
927 * genemit.c: Likewise.
928 * genextract.c: Likewise.
929 * genflags.c: Likewise.
930 * gengenrtl.c: Likewise.
931 * genopinit.c: Likewise.
932 * genoutput.c: Likewise.
933 * genpeep.c: Likewise.
934 * genrecog.c: Likewise.
935 * getpwd.c: Likewise.
936 * halfpic.c: Likewise.
937 * hash.c: Likewise.
938 * mips-tdump.c: Likewise. Wrap malloc/realloc/calloc prototypes
939 in NEED_DECLARATION_* macros.
940
941 * mips-tfile.c: Remove things made redundant by libiberty.h and/or
942 conform to libiberty standards.
943 (fatal): Fix const-ification of variable `format' in
944 !ANSI_PROTOTYPES case.
945
946 * prefix.c: Remove things made redundant by libiberty.h and/or
947 conform to libiberty standards.
948
949 * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
950 conflicting with function `spaces' from libiberty.
951
952 * profile.c: Remove things made redundant by libiberty.h and/or
953 conform to libiberty standards.
954 * protoize.c: Likewise.
955 * rtl.h: Likewise.
956 * scan.h: Likewise.
957 * tlink.c: Likewise.
958 * toplev.c: Likewise.
959 * toplev.h: Likewise.
960 * tree.h: Likewise.
961
21380ab0
KG
962Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
963
964 * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
965
6e863849
MH
966Thu Nov 26 23:45:37 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
967
968 * README.C4X: Updated URLs.
969 * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
970 (valid_parallel_operands_5): Remove unused variable.
971
d97860ae
MH
972Thu Nov 26 23:40:03 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
973
974 * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
975
71205e0b
MH
9761998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
977
978 * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
979 which can be configured.
980 (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
981 (Makefile): Pass actual LANGUAGES through the environment when
982 re-configuring.
983 (cstamp-h): Likewise.
984 (config.status): Likewise.
985
986 * configure.in (enable_languages): Add new configuration parameter
987 "--enable-languages=lang1,lang2,...".
988 (${srcdir}/*/config-lang.in): Change handling to configure only
989 those directories, that the user might have enabled; default to
990 "all" existing languages.
991 * configure: Regenerate.
992
a2e1a0bf
RH
993Thu Nov 26 00:19:19 1998 Richard Henderson <rth@cygnus.com>
994
995 * rtlanal.c (regs_set_between_p): New function.
996 * rtl.h (regs_set_between_p): Prototype it.
997 * jump.c (jump_optimize): Use it instead of modified_between_p
998 in the Sep 2 change.
999
83575957
ID
1000Wed Nov 25 23:32:02 1998 Ian Dall <Ian.Dall@dsto.defence.gov.au>
1001 Matthias Pfaller <leo@dachau.marco.de>
1002
1003 * invoke.texi (Option Summary, NS32K Options): add description
1004 of NS32K specific options.
1005
1006 * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
1007 fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
1008 fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
1009 negdf2, absdf2): Use l instead of f since the double class and
1010 float class are no longer the same.
1011 (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
1012 divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
1013 ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
1014 use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
1015 fixed.
1016 (cmpsi, cmphi, cmpqi): use general_operand instead of
1017 non_immediate_operand. Removes erroneous assumption that can't
1018 compare constants.
1019 (movsf, movsi, movhi, movqi,...): New register numbering scheme.
1020 (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
1021 constants.
1022 (movstrsi, movstrsi1, movstrsi2): completely new block move
1023 scheme.
1024 (...): Patterns to exploit multiply-add instructions.
1025 (udivmodsi4, udivmodsi_internal4, udivmodhi4,
1026 udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new
1027 patterns to exploit extended divide insns.
1028 (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi
1029 etc patterns.
1030
1031 * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
1032 float return values as well as simple scalar floats.
1033 (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
1034 support new flag to denote 32381 fpu.
1035 (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
1036 (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not
1037 compling for 32381.
1038 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1039 REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
1040 REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
1041 L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
1042 LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
1043 REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
1044 REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
1045 REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
1046 REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381
1047 fpu registers and special register classes for new 32381
1048 instructions dotf and polyf.
1049 (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
1050 be tieable.
1051 (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
1052 INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
1053 required.
1054 (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option.
1055 (MOVE_RATIO): Set to zero because of smart movstrsi implimentation.
1056 (REGISTER_MOVE_COST): move code to register_move_cost function for
1057 ease of coding and debugging.
1058 (CLASS_LIKELY_SPILLED_P): Under new register scheme class
1059 LONG_FLOAT_REGO is likely spilled but not caught by default
1060 definition.
1061 (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro
1062 instead of hard coded numbers in range check.
1063 (ASM_OUTPUT_LABELREF_AS_INT): delete since unused.
1064 (...): Add prototypes for functions in ns32k.c but disable because
1065 of problems when ns32k.h is included in machine independant files.
1066
1067 * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h".
1068 (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
1069 hard_regno_mode_ok, secondary_reload_class,
1070 print_operand, print_operand_address): new register scheme to
1071 include 32381 fpu registers and special register classes for new
1072 32381 instructions dotf and polyf.
1073 (gen_indexed_expr): Make static to keep namespace clean.
1074 (check_reg): remove since never called.
1075 (move_tail, expand_block_move): helper functions for "movstrsi"
1076 block move insn.
1077 (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
1078 Increase cost of moves which go via memory.
1079 * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
1080 (CPP_PREDEFINES): nolonger predefine "unix".
1081
1082 * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
1083 Remove erroneous %$. print_operand() can work out from the rtx is
1084 an immediate prefix is required.
1085
1086 * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
1087 VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
1088 SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
1089 convention.
1090 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
1091 pic operands.
1092
1093 * ns32k.c (symbolic_reference_mentioned_p, print_operand):
1094 Correct handling of pic operands.
1095 (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
1096 ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
1097 -mrtd calling convention.
1098
36696297
TT
1099Wed Nov 25 23:42:20 1998 Tom Tromey <tromey@cygnus.com>
1100
1101 * gcc.c (option_map): Recognize --output-class-directory.
1102
e96b4d7a
MH
1103Thu Nov 26 18:26:21 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1104
1105 * loop.h (precondition_loop_p): Added new mode argument.
1106 * unroll.c (precondition_loop_p): Likewise.
1107 (approx_final_value): Function deleted and subsumed
1108 into loop_iterations.
1109 (loop_find_equiv_value): New function.
1110 (loop_iterations): Use loop_find_equiv_value to find increments
1111 too large to be immediate constants. Also use it to find terms
1112 common to initial and final iteration values that can be removed.
1113
302670f3
MH
1114Thu Nov 26 18:05:04 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1115
1116 * loop.h (struct loop_info): Define new structure.
1117 (precondition_loop_p): Added prototype.
1118 (unroll_loop): Added new argument loop_info to prototype.
1119 (final_biv_value, final_giv_value): Added new argument n_iterations
1120 to prototype.
1121 * loop.c (strength_reduce): Declare new structure loop_iteration_info
1122 and new pointer loop_info.
1123 (loop_n_iterations): Replace global variable by element in
1124 loop_info structure.
1125 (check_final_value): New argument n_iterations.
1126 (insert_bct): New argument loop_info.
1127 (loop_unroll_factor): Replace global array by element in
1128 loop_info structure.
1129 (loop_optimize): Remove code to allocate and initialise
1130 loop_unroll_factor_array.
1131 * unroll.c (precondition_loop_p): No longer static since
1132 used by branch on count optimization.
1133 (precondition_loop_p, unroll_loop): New argument loop_info.
1134 (final_biv_value, final_giv_value, find_splittable_regs): New
1135 argument n_iterations.
1136 (loop_iteration_var, loop_initial_value, loop_increment,
1137 loop_final_value, loop_comparison_code, loop_unroll_factor):
1138 Replaced global variables by loop_info structure.
1139 (loop_unroll_factor): Replace global array by element in
1140 loop_info structure.
1141
a7060368
MH
1142Thu Nov 26 17:49:29 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1143
1144 * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
1145 when loop reversed.
1146
1147 * unroll.c (precondition_loop_p): Return loop_initial_value
1148 for initial_value instead of loop_iteration_var.
1149
959e0a76
MH
1150Thu Nov 26 17:15:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1151
1152 * config/c4x/c4x.md: Fix minor formatting problems. Update docs.
1153 (*b, *b_rev, *b_noov, *b_noov_rev, *db,
1154 decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
1155 to output the instruction sequences.
1156 (rpts): Delete.
1157 (rptb_top): Provide alternatives to use any register or memory
1158 for loop counter.
1159 (rptb_end): Emit use of operands rather than assigning them
1160 explicitly to the RS and RE registers.
1161
0fe69aba
MH
1162Thu Nov 26 16:37:59 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1163
1164 * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
1165 c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
1166 c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
1167 c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after,
1168 c4x_merge_notes, c4x_parallel_process,
1169 c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
1170 c4x_combine_parallel): Delete.
1171
1172Thu Nov 26 15:16:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1173
1174 * config/c4x/c4x.c: (c4x_override_options): For compatibility
1175 with old target options clear flag_branch_on_count_reg if
1176 -mno-rptb specified and set flag_argument_alias is -mno-aliases
1177 specified.
1178 (c4x_output_cbranch): Handle a sequence of insns rather than a
1179 single insn.
4271f003 1180 (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
0fe69aba 1181 has not been allocated as the loop counter.
4271f003
MH
1182 (c4x_address_conflict): Do not allow two volatile memory references.
1183 (valid_parallel_operands_4, valid_parallel_operands_5,
1184 valid_parallel_operands_6): Reject pattern if the register destination
1185 of the first set is used as part of an address in the second set.
0fe69aba 1186
2e3e9ead
MH
1187Thu Nov 26 14:56:32 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1188
1189 * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
1190 (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
1191 is no longer enabled if PARALLEL_MPY_FLAG set.
1192 (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
1193 (REG_CLASS_CONTENTS): Add braces around initializers.
1194 (HAVE_MULTIPLE_PACK): Define.
1195 (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with
1196 REAL_VALUE_TO_DECIMAL.
1197 (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with
1198 REAL_VALUE_TO_DECIMAL.
1199 (ar0_reg_operand): Add prototype.
1200 (ar0_mem_operand): Likewise.
1201 (ar1_reg_operand): Likewise.
1202 (ar1_mem_operand): Likewise.
1203 (ar2_reg_operand): Likewise.
1204 (ar2_mem_operand): Likewise.
1205 (ar3_reg_operand): Likewise.
1206 (ar3_mem_operand): Likewise.
1207 (ar4_reg_operand): Likewise.
1208 (ar4_mem_operand): Likewise.
1209 (ar5_reg_operand): Likewise.
1210 (ar5_mem_operand): Likewise.
1211 (ar6_reg_operand): Likewise.
1212 (ar6_mem_operand): Likewise.
1213 (ar7_reg_operand): Likewise.
1214 (ar7_mem_operand): Likewise.
1215 (ir0_reg_operand): Likewise.
1216 (ir0_mem_operand): Likewise.
1217 (ir1_reg_operand): Likewise.
1218 (ir1_mem_operand): Likewise.
1219 (group1_reg_operand): Likewise.
1220 (group1_mem_operand): Likewise.
1221 (ir1_reg_operand): Likewise.
1222 (arx_reg_operand): Likewise.
1223 (not_rc_reg): Likewise.
1224 (not_modify_reg): Likewise.
1225 (c4x_group1_reg_operand): Remove prototype.
1226 (c4x_group1_mem_operand): Likewise.
1227 (c4x_arx_reg_operand): Likewise.
1228
a46f03ea
SM
1229Wed Nov 25 19:02:55 1998 (Stephen L Moshier) <moshier@world.std.com>
1230
1231 * emit-rtl.c (gen_lowpart_common): Remove earlier change.
1232 * real.c (make_nan): Make SIGN arg actually specify the sign bit.
1233
f3ed04e7
MH
1234Thu Nov 26 14:12:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1235
1236 * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
1237 during reload.
1238
0e1bd737
R
1239Wed Nov 25 22:05:28 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1240
1241 * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
1242 unless FMOVD_WORKS is defined.
1243
910bc42d
R
1244Wed Nov 25 20:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1245
1246 * regclass.c (init_reg_sets): Move code that calculates tables
1247 dependent on reg_class_contents from here...
1248 (init_reg_sets_1): To here.
1249
0b3d776a
ZW
1250Wed Nov 25 14:54:46 1998 Zack Weinberg <zack@rabi.phys.columbia.edu>
1251
1252 * cpplib.h: Delete struct import_file. Add ihash element to
1253 struct cpp_buffer. Delete dont_repeat_files and
1254 import_hash_table elements from cpp_reader; change
1255 all_include_files to a hash table. Delete all foobar_include
1256 / last_foobar_include elements from struct cpp_options; put
1257 back four such: quote_include, bracket_include,
1258 system_include, after_include. Redo struct file_name_list
1259 completely. Add new structure type include_hash. Add
1260 prototypes for merge_include_chains and include_hash. Change
1261 prototypes for finclude, find_include_file, and
1262 append_include_chain to match changes below.
1263
1264 * cppfiles.c (simplify_pathname, include_hash,
1265 remap_filename, merge_include_chains): New functions.
1266 (add_import, lookup_import, open_include_file): Removed.
1267 (INO_T_EQ): Define this (copied from cccp.c).
1268 (hack_vms_include_specification): Remove all calls and #if 0
1269 out the definition. It was being called incorrectly and at
1270 the wrong times. Until a VMSie can look at this, it's better
1271 to not pretend to support it.
1272 (append_include_chain): Change calling convention; now takes
1273 only one directory at a time, and sets up the data structure
1274 itself.
1275 (redundant_include_p): Rewritten - this is now used for all
1276 include redundancy, whether by #ifndef, #import, or #pragma
1277 once. Looks up things in the include hash table.
1278 (file_cleanup): Decrement pfile->system_include_depth here if
1279 it's >0.
1280 (find_include_file): Calling convention changed; now passes
1281 around a struct include_hash instead of 3 separate parameters.
1282 Guts ripped out and replaced with new include_hash mechanism.
1283 (finclude): Calling convention changed as for
1284 find_include_file. Error exits pulled out-of-line. Reformat.
1285 (safe_read): Return a long, not an int.
1286 (deps_output): Don't recurse.
1287
1288 * cpplib.c (is_system_include): Deleted.
1289 (path_include): Fix up call to append_include_chain.
1290 (do_include): Fix up calls to find_include_file and finclude.
1291 Clean up dependency output a bit. Shorten obnoxiously lengthy
1292 #import warning message. Don't decrement
1293 pfile->system_include_depth here.
1294 (do_pragma): Understand the include_hash structure. Reformat.
1295 (do_endif): Correct handling of control macros. Understand
1296 the include_hash.
1297 (cpp_start_read): Fix up calls to finclude. Call
1298 merge_include_chains.
1299 (cpp_handle_option): Fix up calls to append_include_chain.
1300 Understand the four partial include chains.
1301 (cpp_finish): Add debugging code (#if 0-ed out) for the
1302 include_hash.
1303 (cpp_cleanup): Free the include_hash, not the import hash and
1304 the all_include and dont_repeat lists which no longer exist.
1305
f1db3576
JL
1306Wed Nov 25 11:26:19 1998 Jeffrey A Law (law@cygnus.com)
1307
1308 * toplev.c (no_new_pseudos): Define.
1309 (rest_of_compilation): Set no_new_pseudos as needed.
1310 * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
1311 if no_new_pseudos is set.
1312 * rtl.h (no_new_pseudos): Declare it.
1313 * reload1.c (reload): Update comments.
1314 * md.texi: Corresponding changes.
1315
1316Wed Nov 25 11:26:17 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1317
1318 * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
1319 (choose_reload_regs): Rename it here as well. When computing it,
1320 also merge in used hardregs.
1321
b12da25e
ZW
13221998-11-25 07:51 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
1323
1324 * gcc.c: Split out Objective-C specs to...
1325 * objc/lang-specs.h: here. (New file.) Make the specs cpplib
1326 aware.
1327
1328 * c-lex.c (init_parse): Always initialize the filename global.
1329 * objc/objc-act.c (lang_init): Always call check_newline at
1330 beginning of file.
1331
5828374f
GS
1332Wed Nov 25 00:48:29 1998 Graham <grahams@rcp.co.uk>
1333
1334 * reload1.c (reload): Remove unused variable.
1335 (reload_reg_free_for_value_p): Add missing parameter definition.
1336
1337 * jump.c (jump_optimize): Remove unused variable.
1338
940da324
JL
1339Wed Nov 25 00:07:11 1998 Jeffrey A Law (law@cygnus.com)
1340
0c3a267b
JL
1341 * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
1342
940da324
JL
1343 * cse.c (fold_rtx): Make autoincrement addressing mode tests be
1344 runtime selectable.
1345 * expr.c (move_by_pieces): Similarly.
1346 (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
1347 * flow.c (find_auto_inc): Similarly.
1348 (try_pre_increment): Similarly.
1349 * loop.c (strength_reduce): Similarly.
1350 * regclass.c (auto_inc_dec_reg_p): Similarly.
1351 * regmove.c (try_auto_increment): Similarly.
1352 (fixup_match_1): Similarly.
1353 * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
1354 (HAVE_PRE_DECREMENT): Similarly.
1355 (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
0c3a267b
JL
1356 * Corresponding changes to all target header files.
1357 * tm.texi: Update docs for autoinc addressing modes.
940da324 1358
d1be3be3
JW
1359Tue Nov 24 20:24:59 1998 Jim Wilson <wilson@cygnus.com>
1360
1361 * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
1362 * configure: Rebuild.
1363 * config/elfos.h: New file.
1364 * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
1365 config/m68k/t-m68kelf: New file.
1366
f6c2a93c
JL
1367Tue Nov 24 13:40:06 1998 Jeffrey A Law (law@cygnus.com)
1368
1369 * Makefile.in (HOST_AR): Define.
1370 (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
1371 (libcpp.a): Use the host tools explicitly.
1372 (STAGESTUFF): Add libcpp.a.
1373
6970d948
NC
1374Tue Nov 24 09:33:49 1998 Nick Clifton <nickc@cygnus.com>
1375
1376 * config/m32r/m32r.md (movstrsi_internal): Describe changes made
1377 to source and destination registers.
1378
d0b9a143
MS
1379Mon Nov 23 20:28:02 1998 Mike Stump <mrs@wrs.com>
1380
1381 * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
1382 The strategy we now use is to pre allocate the top_elt along
1383 with the EH context so that each thread has its own top_elt.
1384 This is necessary as the dynmanic cleanup chain is used on the
1385 top element of the stack and each thread MUST have its own.
1386 (eh_context_static): Likewise.
1387 (new_eh_context): Likewise.
1388 (__sjthrow): Likewise.
1389
8c8a9717
JM
1390Mon Nov 23 20:25:03 1998 Jason Merrill <jason@yorick.cygnus.com>
1391
1392 * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
1393 * i386.md (prologue_get_pc): Remove unused variable.
1394
b8a14125
GN
1395Mon Nov 23 17:05:40 1998 Geoffrey Noer <noer@cygnus.com>
1396
1397 * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
1398
735a0e33
UD
1399Mon Nov 23 16:40:00 1998 Ulrich Drepper <drepper@cygnus.com>
1400
1401 * Makefile.in (OBJS): Add graph.o
1402 (graph.o): New dependency list.
1403 * flags.h: Declare dump_for_graph and define graph_dump_types type.
1404 * print-rtl.c (dump_for_graph): Define new variable.
1405 (print_rtx): Rewrite to allow use in graph dumping functions.
1406 * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
1407 finish_graph_dump_file.
1408 Define graph_dump_format.
1409 (compile_file): If graph dumping is enabled also clear these files.
1410 Finish graph dump files.
1411 (rest_of_compilation): Also dump graph information if enabled.
1412 (main): Recognize -dv to enabled VCG based graph dumping.
1413 * graph.c: New file. Graph dumping functions.
1414
a05e22b8
RH
1415Mon Nov 23 16:39:04 1998 Richard Henderson <rth@cygnus.com>
1416
1417 * configure.in: Look for <sys/stat.h>.
1418 * system.h: Include it before substitute S_ISREG definitions.
1419
a53f72db
GRK
1420Mon Nov 23 17:40:37 1998 Gavin Romig-Koch <gavin@cygnus.com>
1421
1422 * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
1423 * config/mips/iris6.h: Same.
1424 * config/mips/mips.md: Same.
1425 * config/mips/mips.c: Same; also add "-mabi=o64" option.
1426 * config/mips/mips.h: Same; also define ABI_O64.
1427
c9a3de16
KG
1428Mon Nov 23 17:02:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1429
1430 * configure.in: Use AC_PREREQ(2.12.1).
1431
9855b854
MN
1432Mon Nov 23 10:16:38 1998 "Melissa O'Neill" <oneill@cs.sfu.ca>
1433
1434 * cccp.c (S_ISREG, S_ISDIR): Delete defines.
1435 * cpplib.c, gcc.c: Likewise.
1436 * system.h (S_ISREG, S_ISDIR): Define if not already defined.
1437
578db09b
RH
1438Mon Nov 23 09:53:44 1998 Richard Henderson <rth@cygnus.com>
1439
1440 * local-alloc.c (local_alloc): Use malloc not alloca for
1441 reg_qty, reg_offset, ref_next_in_qty.
1442
225e4f43
R
1443Mon Nov 23 16:46:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1444
193f66a9
JL
1445 * caller-save.c (insert_one_insn): Initialize the live_before and
1446 live_after register sets.
1447
225e4f43
R
1448 Add SH4 support:
1449
1450 * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
1451 (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
1452 * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
1453 (fp_reg_names, assembler_dialect): New variables.
1454 (print_operand_address): Handle SUBREGs.
1455 (print_operand): Added 'o' case.
1456 Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
1457 Name of FP registers depends on mode.
1458 (expand_block_move): Emit different code for SH4 hardware.
1459 (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
1460 (from_compare): Likewise.
1461 (add_constant): New argument last_value. Changed all callers.
1462 (find_barrier): Don't try HImode load for FPUL_REG.
1463 (machine_dependent_reorg): Likewise.
1464 (sfunc_uses_reg): A CLOBBER cannot be the address register use.
1465 (gen_far_branch): Emit a barrier after the new jump.
1466 (barrier_align): Don't trust instruction lengths before
1467 fixing up pcloads.
1468 (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
1469 Use auto-inc addressing for fp registers if doubles need to
1470 be loaded in two steps.
1471 Set sh_flag_remove_dead_before_cse.
1472 (push): Support for TARGET_FMOVD. Use gen_push_fpul for fpul.
1473 (pop): Support for TARGET_FMOVD. Use gen_pop_fpul for fpul.
1474 (calc_live_regs): Support for TARGET_FMOVD. Don't save FPSCR.
1475 Support for FIRST_XD_REG .. LAST_XD_REG.
1476 (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
1477 (sh_expand_epilogue): Likewise.
1478 (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
1479 (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
1480 (arith_reg_operand): FPUL_REG is OK for SH4.
1481 (fp_arith_reg_operand, fp_extended_operand) New functions.
1482 (tertiary_reload_operand, fpscr_operand): Likewise.
1483 (commutative_float_operator, noncommutative_float_operator): Likewise.
1484 (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
1485 (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
1486 (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
1487 (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
1488 * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
1489 (CONDITIONAL_REGISTER_USAGE): Likewise.
1490 (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
1491 (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
1492 (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
1493 (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
1494 (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
1495 to -1 and sh_flag_remove_dead_before_cse to 1.
1496 (ASSEMBLER_DIALECT): Define to assembler_dialect.
1497 (assembler_dialect, fp_reg_names): Declare.
1498 (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
1499 Hide names of registers that are not accessible.
1500 (CACHE_LOG): Take TARGET_CACHE32 into account.
1501 (LOOP_ALIGN): Take TARGET_HARWARD into account.
1502 (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
1503 (FIRST_PSEUDO_REGISTER: Now 49.
1504 (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
1505 (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
1506 (HARD_REGNO_MODE_OK): Update.
1507 (enum reg_class): Add DF_REGS and FPSCR_REGS.
1508 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
1509 (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
1510 (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
1511 (NPARM_REGS): Eight floating point parameter registers on SH4.
1512 (BASE_RETURN_VALUE_REG): SH4 also passes double values
1513 in floating point registers.
1514 (GET_SH_ARG_CLASS) Likewise.
1515 Complex float types are also returned in float registers.
1516 (BASE_ARG_REG): Complex float types are also passes in float registers.
1517 (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
1518 (LIBCALL_VALUE): Remove trailing semicolon.
1519 (ROUND_REG): Round when double precision value is passed in floating
1520 point register(s).
1521 (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
1522 passed on the stack.
1523 (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
1524 (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
1525 (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
1526 (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
1527 (MODE_DISP_OK_8): Not for SH4 DFmode.
1528 (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
1529 Allow indexed addressing for PSImode after reload.
1530 (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
1531 (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
1532 Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
1533 (DOUBLE_TYPE_SIZE): 64 for SH4.
1534 (RTX_COSTS): Add PLUS case.
1535 Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
1536 (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
1537 MAC_REGS, PR_REGS, DF_REGS.
1538 (REGISTER_NAMES): Use fp_reg_names.
1539 (enum processor_type): Add PROCESSOR_SH4.
1540 (sh_flag_remove_dead_before_cse): Declare.
1541 (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
1542 (PREDICATE_CODES): Add binary_float_operator,
1543 commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
1544 fpscr_operand, noncommutative_float_operator.
1545 (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
1546 (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
1547 * sh.md (attribute cpu): Add value sh4.
1548 (attrbutes fmovd, issues): Define.
1549 (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
1550 (function units memory, int, mpy, fp): Make dependent on issue rate.
1551 (function units issue, single_issue, load_si, load): Define.
1552 (function units load_store, fdiv, gp_fpul): Define.
1553 (attribute hit_stack): Provide proper default.
1554 (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
1555 (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
1556 (udivsi3, divsi3): Emit special patterns for SH4 hardware,
1557 (mulsi3_call): Now uses match_operand for function address.
1558 (mulsi3): Also emit code for SH1 case. Wrap result in REG_LIBCALL /
1559 REG_RETVAL notes.
1560 (push, pop, push_e, pop_e): Now define_expands.
1561 (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
1562 (movsi_ie): Added y/i alternative.
1563 (ic_invalidate_line_i, movdf_i4): New insns.
1564 (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
1565 (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
1566 (movdf): Add special code for SH4.
1567 (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
1568 (call_valuei, calli, call_value): Likewise.
1569 (movsf): Emit no-op move.
1570 (mov_nop, movsi_y): New insns.
1571 (blt, sge): generalize to handle DFmode.
1572 (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
1573 (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
1574 (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
1575 (fpu_switch0, fpu_switch1, movpsi): New expanders.
1576 (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
1577 (toggle_sz): New insn.
1578 (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
1579 (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
1580 (macsf3): Make use of fpscr visible. Disable for SH4.
1581 (floatsisf2): Make use of fpscr visible.
1582 (floatsisf2_i4): New insn.
1583 (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
1584 (ieee_ccmpeqsf_t): Likewise.
1585 (fix_truncsfsi2): Emit different code for SH4.
1586 (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
1587 (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
1588 (negsf2, sqrtsf2, abssf2): Now expanders.
1589 (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
1590 (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
1591 (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
1592 (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
1593 (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
1594 (fix_truncdfsi2_i4_2+1): New splitters.
1595 (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
1596 (extendsfdf2, truncdfsf2): New expanders.
1597 (truncdfsf2_i4): New insn.
1598 * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
1599 (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
1600 * float-sh.h: When testing for __SH3E__, also test for
1601 __SH4_SINGLE_ONLY__ .
1602 * va-sh.h (__va_freg): Define to float.
1603 (__va_greg, __fa_freg, __gnuc_va_list, va_start):
1604 Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
1605 (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
1606 (__PASS_AS_FLOAT): Use different definition for __SH4__ and
1607 __SH4_SINGLE__.
1608 (TARGET_SH4_P): Define.
1609 (va_arg): Use it.
1610
1611 * sh.md (movdf_k, movsf_i): Tweak the condition so that
1612 init_expr_once is satisfied about the existence of load / store insns.
1613
1614 * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
1615 change m constraint in source operand to mr / mf .
1616
1617 * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
1618
1619 * (__VA_REEF): Define.
1620 (__va_arg_sh1): Use it.
1621
1622 * va-sh.h (va_start, va_arg, va_copy): Add parenteses.
1623
668d9af5
JL
1624Sun Nov 22 21:34:02 1998 Jeffrey A Law (law@cygnus.com)
1625
1626 * i386/dgux.c (struct option): Add new "description field".
1627 * m88k/m88k.c (struct option): Likewise.
1628
e736f77a
JL
1629Sun Nov 22 16:07:57 PST 1998 Jeff Law (law@cygnus.com)
1630
1631 * version.c: Bump for snapshot.
1632
3d2f8eb6
BS
1633Sun Nov 22 13:40:02 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1634
1635 * regmove.c (regmove_profitable_p): Use return value of find_matches
1636 properly.
1637
57412d4f
JL
1638Sun Nov 22 02:47:37 PST 1998 Jeff Law (law@cygnus.com)
1639
1640 * version.c: Bump for snapshot.
1641
225a7e3d
JL
1642Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com)
1643
9969bb2c
JL
1644 * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
1645 without reload having been called earlier.
1646
2268cc52
JL
1647 * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
1648 addressing modes.
1649 (v850_reorg): Similarly.
1650
225a7e3d
JL
1651 * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
1652
18985c91
R
1653Sat Nov 21 02:18:38 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1654
1655 * loop.c (move_movables): Start of libcall might be new loop start.
1656
d25a233e
KG
1657Fri Nov 20 12:14:16 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1658
1659 * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
1660
ba716ac9
BS
1661Fri Nov 20 08:34:00 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1662
1663 * function.c (nonlocal_goto_handler_slots): Renamed from
1664 nonlocal_goto_handler_slot; now an EXPR_LIST chain.
1665 (push_function_context_to): Adjust for this change.
1666 (pop_function_context_from): Likewise.
1667 (init_function_start): Likewise.
1668 (expand_function_end): Likewise.
1669 * function.h (struct function): Likewise.
1670 * calls.c (expand_call): Likewise.
1671 * explow.c (allocate_dynamic_stack_space): Likewise.
1672 * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
1673 * stmt.c (declare_nonlocal_label): Make a new handler slot for each
1674 label.
1675 (expand_goto): When doing a nonlocal goto, find corresponding handler
1676 slot for it. Don't put the label address in the static chain register.
1677 (expand_end_bindings): Break out nonlocal goto handling code into
1678 three new functions.
1679 (expand_nl_handler_label, expand_nl_goto_receiver,
1680 expand_nl_goto_receivers): New static functions, broken out of
1681 expand_end_bindings and adapted to create one handler per nonlocal
1682 label.
1683 * function.c (delete_handlers): Delete insn if it references any of
1684 the nonlocal goto handler slots.
1685 * i960.md (nonlocal_goto): Comment out code that modifies
1686 static_chain_rtx.
1687 * sparc.md (nonlocal_goto): Likewise.
1688 (goto_handler_and_restore_v9): Comment out.
1689 (goto_handler_and_restore_v9_sp64): Comment out.
1690
e468780f 1691Thu Nov 19 23:44:38 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
c795bca9
BS
1692
1693 * expr.c (STACK_BYTES): Delete unused macro.
1694 * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
1695 (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
1696 (expand_call): Likewise.
1697 (emit_library_call): Likewise.
1698 (emit_library_call_value): Likewise.
1699 * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
1700 (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
1701 * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
1702 (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
1703 (allocate_dynamic_stack_space): Likewise.
1704 * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
1705 (STACK_BOUNDARY): Update description to reflect the new situation.
1706
9bce98db
JL
1707Thu Nov 19 22:20:51 1998 Jeffrey A Law (law@cygnus.com)
1708
9f5a2691
JL
1709 * reorg.c (relax_delay_slots): When optimizing for code size, if a
1710 return with a filled delay slot is followed by a return with an
1711 unfilled delay slot, delete the first return and reemit the insn
1712 that was previously in its delay slot.
1713
9bce98db
JL
1714 * i860.c (single_insn_src_p): Add missing parens.
1715 * ginclude/math-3300.h: Likewise.
1716
24deb20a
L
1717Thu Nov 19 20:55:59 1998 H.J. Lu (hjl@gnu.org)
1718
1719 * regclass.c (init_reg_sets_1): Add prototype.
1720 (init_reg_modes): Likewise.
1721
07be2a23
ZW
17221998-11-19 Zack Weinberg <zack@rabi.phys.columbia.edu>
1723
1724 * c-common.c: Change warning messages to say `comparison is
1725 always true' or `comparison is always false' instead of the
1726 confusing `is always 0', `is always 1'.
1727
39e4e1ef
PB
1728Thu Nov 19 19:05:49 1998 Per Bothner <bothner@cygnus.com>
1729
1730 * print-tree.c (print_node): After printing BLOCK or BIND_EXPR,
1731 break instead of return (which loses closing '>').
1732
90aec2cf
JL
1733Thu Nov 19 19:34:13 1998 Jeffrey A Law (law@cygnus.com)
1734
e3f159c2
JL
1735 * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
1736 standard 387 constants.
1737
90aec2cf
JL
1738 * i386.md (jump): Explicitly set "memory" attribute.
1739 (indirect_jump, prologue_set_stack_ptr): Likewise.
1740 (prologue_get_pc_and_set_got, pop): Likewise.
1741 (allocate_stack_worder, blockage, return_internal): Likewise.
1742 (return_pop_internal, nop): Likewise.
1743 (epilogue_set_stack_ptr, leave): Likewise.
1744
233ce013
NC
1745Thu Nov 19 15:42:54 1998 Nick Clifton <nickc@cygnus.com>
1746
1747 * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
1748
701d55e8
R
1749Thu Nov 19 23:20:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1750
53526817
JR
1751 * reload1.c (reload_reg_free_for_value_p):
1752 Early auto_inc reloads don't conflict with outputs.
701d55e8 1753
e9831ca0
KG
1754Thu Nov 19 12:58:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1755
1756 * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
1757 Instead call AC_HEADER_SYS_WAIT.
1758
1759 * collect2.c: Don't provide defaults for sys/wait.h macros.
1760 * gcc.c: Likewise.
1761 * protoize.c: Likewise. Also, don't include sys/wait.h.
1762
1763 * system.h: Include sys/wait.h and provide macro defaults.
1764
a76b6b40
MH
17651998-11-19 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1766
1767 * Makefile.in (mandir): Set to @mandir@.
1768 (man1dir): New variable to hold the former value of $(mandir).
1769 Replace all uses of $(mandir) by $(man1dir).
1770
10352226
JW
1771Wed Nov 18 16:31:28 1998 Jim Wilson <wilson@cygnus.com>
1772
ef18065c
JW
1773 * reload.c (find_reloads_address_part): If have a CONST_INT, create
1774 a new one before passing it to force_const_mem.
1775
10352226
JW
1776 * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
1777 find_reloads_address call.
1778
f3f2255a
R
1779Wed Nov 18 22:13:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1780
1781 * expr.c (store_expr): Don't generate load-store pair
1782 if TEMP is identical (according to ==) with TARGET.
1783
25963977
R
1784Tue Nov 17 22:25:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1785
1786 * reload1.c (reload_reg_free_for_value_p): When considered reload
1787 has an output, matching inputs are not sufficient to avoid conflict.
1788
a87ec9e6
MM
1789Tue Nov 17 11:51:16 1998 Mark Mitchell <mark@markmitchell.com>
1790
1791 * hash.h (hash_table_key): New type.
1792 (hash_entry): Change `string' field to generic `key'.
1793 (hash_table): Add `comp' and `hash' functions.
1794 (hash_table_init): Take them as input.
1795 (hash_table_init_n): Likewise.
1796 (hash_lookup): Modify for generic keys.
1797 (hash_newfunc): Likewise.
1798 (hash_traverse): Likewise.
1799 (string_hash): New function.
1800 (string_compare): Likewise.
1801 (string_copy): Likewise.
1802 * hash.c (hash_table_init_n): Modify for generic keys.
1803 (hash_table_init): Likewise.
1804 (hash_lookup): Likewise.
1805 (hash_newfunc): Likewise.
1806 (hash_traverse): Likewise.
1807 (string_hash): Split out from hash_lookup.
1808 (string_compare): New function.
1809 (string_copy): Split out from hash_lookup.
1810 * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
1811 tables.
1812 (symbol_hash_lookup): Likewise.
1813 (file_hash_newfunc): Likewise.
1814 (file_hash_lookup): Likewise.
1815 (demangled_hash_newfunc): Likewise.
1816 (demangled_hash_lookup): Likewise.
1817 (tlink_int): Likewise.
1818 (read_repo_file): Likewise.
1819 (recompile_files): Likewise.
1820 (demangle_new_symbols): Likewise.
1821 (scan_linker_output): Likewise.
1822
e398aa80
R
1823Tue Nov 17 17:13:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1824
1825 * flow.c (insn_dead_p): New argument NOTES. Changed all callers.
1826
efc97ef0
DE
1827Mon Nov 16 17:56:07 1998 David Edelsohn <edelsohn@mhpcc.edu>
1828
1829 * rs6000.c (output_mi_thunk): Improve test for local branch.
1830
1831Mon Nov 16 17:56:07 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1832
1833 * rs6000.c (output_mi_thunk): Correct test for aggregate values.
1834
dfe96118
R
1835Mon Nov 16 21:02:52 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1836
1837 * reload1.c (reload_reg_free_before_p): Delete.
1838 Changed all callers to use reload_reg_free_for_value_p instead.
1839 (reload_reg_free_for_value_p): Handle more reload types.
1840 A RELOAD_FOR_INPUT doesn't conflict with its
1841 RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
1842 Add special case for OUT == const0_rtx.
1843 Added ignore_address_reloads argument. Changed all callers.
1844
1f288b3f
JM
1845Mon Nov 16 02:22:29 1998 Jason Merrill <jason@yorick.cygnus.com>
1846
1847 * toplev.c (compile_file): Don't pedwarn about undefined static
1848 functions just because we passed -Wunused.
1849
de0dd934
R
1850Mon Nov 16 04:41:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1851
1852 * function.c (purge_addressof_1): Unshare rtl created by
1853 store_bit_field.
1854
8d1d76c1
R
1855Mon Nov 16 04:23:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1856
1857 * regmove.c (regmove_optimize): Don't do anything but
1858 optimize_reg_copy[123] when flag_regmove is not set.
1859
bd8dc165
RH
1860Sat Nov 14 15:05:07 1998 Richard Henderson <rth@cygnus.com>
1861
1862 * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
1863 value in paradoxical SImode result, rather than truncating midpoint.
1864
40b80dad
RH
1865Fri Nov 13 22:19:23 1998 Richard Henderson <rth@cygnus.com>
1866
1867 * alpha.c (reg_not_elim_operand): New.
1868 * alpha.h (PREDICATE_CODES): Add it.
1869 * alpha.md (s48addq, s48subq patterns): Use it as the predicate
1870 for the multiplicand.
1871
f99f88e0
DE
1872Fri Nov 13 22:50:37 1998 David Edelsohn <edelsohn@mhpcc.edu>
1873
1874 * rs6000.md (movsf): Remove explicit secondary-reload-like
1875 functionality. Only truncate SFmode store if in FPR.
1876 (movsf splitters): Combine const_double splitters.
1877 (movsf_hardfloat): Add GPR support.
1878
8c64be75
SC
1879Fri Nov 13 11:02:11 1998 Stan Cox <scox@cygnus.com>
1880
93d9a2eb
SC
1881 * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
1882 deprecate -mlive-g0 and -mbroken-saverestore.
1883 * t-splet (MULTILIB_OPTIONS): Likewise.
1884
8c64be75
SC
1885 * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
1886 in a leaf function. Clarify total_size/extra_size relationship.
1887
cae21ae8
GN
1888Thu Nov 12 19:20:57 1998 Geoffrey Noer <noer@cygnus.com>
1889
1890 * i386/cygwin32.asm: Delete.
1891 * i386/cygwin.asm: New file, renamed from cygwin32.asm.
1892 * i386/cygwin32.h: Delete.
1893 * i386/cygwin.h: New file, renamed from cygwin32.h.
1894 * i386/t-cygwin32: Delete.
1895 * i386/t-cygwin: New file, renamed from t-cygwin32. Include
1896 cygwin.asm instead of cygwin32.asm. Remove "32" from comment.
1897 * i386/x-cygwin32: Delete.
1898 * i386/x-cygwin: New file, renamed from x-cygwin32.
1899 * i386/xm-cygwin32: Delete.
1900 * i386/xm-cygwin: New file, renamed from xm-cygwin32. Use newly
1901 renamed cygwin_ funcs for path translations.
1902 * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
1903 * i386/winnt.c: Remove "32" from comment about cygwin.
1904 * i386/mingw32.h: Fix references to cygwin32.h in light of above.
1905 * rs6000/cygwin32.h: Delete.
1906 * rs6000/cygwin.h: New file, renamed from cygwin32.h. Add
1907 -D__CYGWIN__ to CPP_PREDEFINES.
1908 * rs6000/x-cygwin32: Delete.
1909 * rs6000/x-cygwin: New file, renamed from x-cygwin32.
1910 * rs6000/xm-cygwin32: Delete.
1911 * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
1912
1913 * configure.in: Check for cygwin* instead of cygwin32. Account
1914 for the rename of cygwin-related config files to lose the "32"s.
1915 * configure: Regenerate.
1916
1917 * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
1918 toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
1919
df37e3db
TT
1920Wed Nov 11 12:25:19 1998 Tom Tromey <tromey@cygnus.com>
1921
1922 * Makefile.in (JAVAGC): New macro.
1923 * configure: Rebuilt.
1924 * configure.in: Recognize --enable-java-gc argument. Subst
1925 `JAVAGC' variable.
1926
135eb61c
R
1927Thu Nov 12 03:32:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1928
1929 Handle equivalences that have been obscured by gcse:
1930
1931 * reload1.c (reload): Handle equivalences set up in multiple places.
1932 * local-alloc.c (reg_equiv_init_insns): New variable.
1933 (no_equiv): New function.
1934 (update_equiv_regs): Handle equivalences set up in multiple places.
1935 Don't ignore an insn just because its destination is likely to be
1936 spilled.
1937
2a55b8e8
JW
1938Wed Nov 11 13:46:13 1998 Jim Wilson <wilson@cygnus.com>
1939
1940 * except.c (expand_eh_return): Readd force_operand call lost in
1941 Sept 15 change.
1942
fbd2bdda
DE
1943Tue Nov 10 17:04:11 1998 David Edelsohn <edelsohn@mhpcc.edu>
1944
1945 * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
1946
3363316f
JL
19471998-11-09 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1948
1949 * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
1950
1951Mon Nov 9 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1952
1953 * regmove.c (regmove_optimize): Fix error in last change.
1954
a3bc83cc
AC
1955Mon Nov 9 16:37:52 1998 Andrew Cagney <cagney@b1.cygnus.com>
1956
1957 * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
1958 offset in the .mask pseudo to compensate for frame pointer adjustments.
1959 (mips16_fp_args, build_mips16_call_stub): For little endian, do not
1960 word swap arguments moved to/from FP registers.
1961 * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
1962
b8b2d50d
JL
1963Mon Nov 9 09:47:06 PST 1998 Jeff Law (law@cygnus.com)
1964
1965 * version.c: Bump for snapshot.
1966
57457ee0
JL
1967Mon Nov 9 02:14:14 PST 1998 Jeff Law (law@cygnus.com)
1968
1969 * version.c: Bump for snapshot.
1970
a3a24aa6
JL
1971Mon Nov 9 03:06:24 1998 Jeffrey A Law (law@cygnus.com)
1972
1973 * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
1974 times, then it can not be completely replaced.
1975
8cad673c
RH
1976Mon Nov 9 00:39:02 1998 Richard Henderson <rth@cygnus.com>
1977
1978 * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
1979
5148a72b
KG
1980Sun Nov 8 17:50:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1981
1982 * gansidecl.h: Prepend a "G" to the macro wrapping this file
1983 (to distinguish it from the macro wrapping ansidecl.h.)
1984 Include libiberty's ansidecl.h. Remove all redundant definitions.
1985 Define the PROTO() style macros in terms of the PARAMS() ones.
1986
1987
1988 * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
1989 __STDC__, when deciding whether to use ANSI variable args.
1990 (emit_library_call_value): Likewise.
1991
1992 * cccp.c (error): Likewise.
1993 (warning): Likewise.
1994 (error_with_line): Likewise.
1995 (warning_with_line): Likewise.
1996 (pedwarn): Likewise.
1997 (pedwarn_with_line): Likewise.
1998 (pedwarn_with_file_and_line): Likewise.
1999 (fatal): Likewise.
2000
2001 * cexp.y (error): Likewise.
2002 (pedwarn): Likewise.
2003 (warning): Likewise.
2004
2005 * collect2.c (fatal_perror): Likewise.
2006 (fatal): Likewise.
2007 (error): Likewise.
2008
2009 * combine.c (gen_rtx_combine): Likewise.
2010
2011 * cpperror.c (cpp_message): Likewise.
2012 (cpp_fatal): Likewise.
2013
2014 * cpplib.c (cpp_error): Likewise.
2015 (cpp_warning): Likewise.
2016 (cpp_pedwarn): Likewise.
2017 (cpp_error_with_line): Likewise.
2018 (cpp_warning_with_line): Likewise.
2019 (cpp_pedwarn_with_line): Likewise.
2020 (cpp_pedwarn_with_file_and_line): Likewise.
2021
2022 * cpplib.h: Don't define PARAMS() macro.
2023
2024 * demangle.h: Likewise.
2025
2026 * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
2027 when deciding whether to use ANSI variable args.
2028
2029 * emit-rtl.c (gen_rtx): Likewise.
2030 (gen_rtvec): Likewise.
2031
2032 * final.c (asm_fprintf): Likewise.
2033
2034 * fix-header.c (cpp_message): Likewise.
2035 (fatal): Likewise.
2036 (cpp_fatal): Likewise.
2037
2038 * gcc.c (concat): Likewise.
2039 (fatal): Likewise.
2040 (error): Likewise.
2041
2042 * genattr.c (fatal): Likewise.
2043
2044 * genattrtab.c (attr_rtx): Likewise.
2045 (attr_printf): Likewise.
2046 (fatal): Likewise.
2047
2048 * gencodes.c (fatal): Likewise.
2049
2050 * genconfig.c (fatal): Likewise.
2051
2052 * genemit.c (fatal): Likewise.
2053
2054 * genextract.c (fatal): Likewise.
2055
2056 * genflags.c (fatal): Likewise.
2057
2058 * genopinit.c (fatal): Likewise.
2059
2060 * genoutput.c (fatal): Likewise.
2061 (error): Likewise.
2062
2063 * genpeep.c (fatal): Likewise.
2064
2065 * genrecog.c (fatal): Likewise.
2066
2067 * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
2068 deciding whether to declare `tree_node' and `rtx_def'.
2069
2070 * hash.h: Don't define stuff we get from gansidecl.h.
2071
2072 * mips-tfile.c: Likewise. Define __proto() in terms of PARAMS().
2073 (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
2074 whether to use ANSI variable args.
2075 (error): Likewise.
2076
2077 * prefix.c (concat): Likewise.
2078
2079 * scan.h: Likewise.
2080
2081 * system.h: Likewise.
2082
2083 * toplev.c (error_with_file_and_line): Likewise.
2084 (error_with_decl): Likewise.
2085 (error_for_asm): Likewise.
2086 (error): Likewise.
2087 (fatal): Likewise.
2088 (warning_with_file_and_line): Likewise.
2089 (warning_with_decl): Likewise.
2090 (warning_for_asm): Likewise.
2091 (warning): Likewise.
2092 (pedwarn): Likewise.
2093 (pedwarn_with_decl): Likewise.
2094 (pedwarn_with_file_and_line): Likewise.
2095 (sorry): Likewise.
2096 (really_sorry): Likewise.
2097
2098 * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
2099 whether to declare `tree_node' and `rtx_def'.
2100
2101 * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
2102 deciding whether to use ANSI variable args.
2103 (build_nt): Likewise.
2104 (build_parse_node): Likewise.
2105
2fb04465
JL
2106Sun Nov 8 13:10:55 PST 1998 Jeff Law (law@cygnus.com)
2107
2108 * version.c: Bump for snapshot.
2109
4f44785e
KG
2110Sat Nov 7 23:34:01 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2111
2112 * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
2113
3d697b4c
DE
2114Sat Nov 7 22:26:19 1998 David Edelsohn <edelsohn@mhpcc.edu>
2115
2116 * collect2.c (main, case 'b'): Use else if.
2117
0056a9b5
KG
2118Sat Nov 7 15:35:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2119
2120 * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
2121 Arrange to include gansidecl.h in {ht}config.h & tm.h just
2122 before the config/ directory headers.
2123 (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
2124 gansidecl.h in the list of dependencies.
2125
2126 * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
2127 (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
2128 mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
2129 gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
2130 dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
2131 cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
2132 Likewise.
2133
2134 * cccp.c: Don't include gansidecl.h.
2135 * cexp.y: Likewise.
2136 * collect2.c: Likewise.
2137 * config/c4x/c4x.c: Likewise.
2138 * config/v850/v850.h: Likewise.
2139 * cppalloc.c: Likewise.
2140 * cpperror.c: Likewise.
2141 * cppexp.c: Likewise.
2142 * cppfiles.c: Likewise.
2143 * cpphash.c: Likewise.
2144 * cpplib.c: Likewise.
2145 * cppmain.c: Likewise.
2146 * cppulp.c: Likewise.
2147 * demangle.h: Likewise.
2148 * doprint.c: Likewise.
2149 * dyn-string.c: Likewise.
2150 * eh-common.h: Likewise.
2151 * fix-header.c: Likewise.
2152 * frame.c: Likewise.
2153 * gcc.c: Likewise.
2154 * gcov.c: Likewise.
2155 * gen-protos.c: Likewise.
2156 * gencheck.c: Likewise.
2157 * halfpic.h: Likewise.
2158 * hash.c: Likewise.
2159 * machmode.h: Likewise.
2160 * mbchar.c: Likewise.
2161 * prefix.c: Likewise.
2162 * protoize.c: Likewise.
2163 * recog.h: Likewise.
2164 * rtl.h: Likewise.
2165 * scan-decls.c: Likewise.
2166 * tree.h: Likewise.
2167 * varray.h: Likewise.
2168
35e2d030
RH
2169Sat Nov 7 11:37:53 1998 Richard Henderson <rth@cygnus.com>
2170
2171 * i386.md (call_value_pop): If we're not popping anything,
2172 defer to call_value.
2173 (call_pop): Likewise defer to call.
2174
da9b1f9c
RH
2175Sat Nov 7 02:49:56 1998 Richard Henderson <rth@cygnus.com>
2176
2177 * function.c (purge_addressof): Clear purge_addressof_replacements
2178 only after processing the whole function.
2179
8f5db3c1
JL
2180Sat Nov 7 00:54:55 1998 Jeffrey A Law (law@cygnus.com)
2181
2182 * reload1.c (reload): If we can not perform a particular elimination
2183 when we thought we could earlier, then we must always iterate through
2184 the loop at least one more time.
2185
80df65c9
RH
2186Fri Nov 6 19:37:33 1998 Richard Henderson <rth@cygnus.com>
2187
2188 * alpha.c (add_operand): Simplify the CONST_INT match.
2189 (sext_add_operand): Correct typo in comparison by using
2190 CONST_OK_FOR_LETTER_P.
2191 * alpha.md (s?addq): Use sext_add_operand to allow the negative
2192 constant alternatives to be generated.
2193 (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
2194 small constants, since the hw instructions do.
2195
d30e8ef0
BS
2196Fri Nov 6 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2197
2198 * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a
2199 previous insn to store directly into our reload register, make sure
2200 that if the source of the previous insn is a reload register, its
2201 spill_reg_store and spill_reg_stored_to values are cleared.
2202
955fc2e7
DE
2203Fri Nov 6 16:35:10 1998 David Edelsohn <edelsohn@mhpcc.edu>
2204
2205 * rs6000.md (floatunssidf2_internal splitter): Use base register
2206 operand, not hard-coded SP.
2207
ca76d13d
DM
2208Fri Nov 6 04:07:53 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
2209
2210 * jump.c (calculate_can_reach_end): Fix thinko.
2211
2cea37e5
JL
2212Fri Nov 6 00:16:04 1998 Jeffrey A Law (law@cygnus.com)
2213
0d87569a
JL
2214 * reorg.c (fill_simple_delay_slots): Fix typo.
2215
2cea37e5
JL
2216 * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
2217
724d568a
JH
2218Fri Nov 6 00:10:00 1998 Jan Hubicka (hubicka@freesoft.cz)
2219
2220 * i386.md (extendsidi2): Use # in the output template.
2221 (extendsidi splitters): New splitters.
2222
5ee26f85
NC
2223Thu Nov 5 11:13:27 1998 Nick Clifton <nickc@cygnus.com>
2224
2225 * configure.in: Use unknown-elf.h as tm_file for arm-elf
2226 configuarions.
2227 * configure: Regenerate.
2228
269ef46c
DM
2229Thu Nov 5 07:59:05 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
2230
2231 * jump.c (init_label_info, delete_barrier_successors,
2232 mark_all_labels, delete_unreferenced_labels,
2233 delete_noop_moves, calculate_can_reach_end): New functions broken
2234 out of jump_optimize.
2235 (jump_optimize): Use them.
2236
b37f006b
AM
2237Thu Nov 5 07:57:45 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
2238
2239 * except.c (expand_fixup_region_end): Make sure outer context labels
2240 are not issued in an inner context during cleanups.
2241
6c61c2bb
RH
2242Thu Nov 5 04:03:06 1998 Richard Henderson <rth@cygnus.com>
2243
2244 * alpha.md (addsi3, subsi3): No new temporaries once cse is
2245 no longer expected.
2246
8f5d6855
RH
2247Thu Nov 5 03:29:19 1998 Richard Henderson <rth@cygnus.com>
2248
2249 * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
2250 to expose this midpoint to CSE.
2251
4ba687c8
DM
2252Thu Nov 5 03:42:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
2253
2254 * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
2255
9da0e39b
AS
2256Thu Nov 5 10:53:01 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
2257
2258 * configure.in: Bring over gcc2 change of Nov 19 1997.
2259
444bf316
JL
2260Wed Nov 4 23:43:08 1998 Graham <grahams@rcp.co.uk>
2261
2262 * toplev.c (output_lang_identify): Make definition dependent on
2263 ASM_IDENTIFY_LANGUAGE.
2264
2265 * print-rtl.c (spaces): Make static.
2266
2267Wed Nov 4 22:16:36 1998 Hans-Peter Nilsson <hp@axis.se>
8fe1938e
HPN
2268
2269 * extend.texi: Clarify proper uses for register clobbers in asms.
2270
0eadeb15
BS
2271Wed Nov 4 22:16:36 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2272
2273 * recog.h (enum op_type): Define.
2274 (constrain_operands): Adjust prototype.
2275 (recog_op_type): Declare new variable.
2276 * recog.c (recog_op_type): New variable.
2277 (insn_invalid_p): Allow modifying an asm statement after reload.
2278 (extract_insn): Set up recog_op_type.
2279 (constrain_operands): Lose INSN_CODE_NUM arg. All callers changed.
2280 Don't compute operand types, use recog_op_type.
2281 Use the information computed by extract_insn instead of the previous
2282 method of finding it by insn code number.
2283 * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
2284 * reorg.c (fill_slots_from_thread): Likewise.
2285 * reload1.c (reload_as_needed): Likewise.
2286 (gen_reload): Likewise.
2287 (inc_for_reload): Likewise.
2288 (reload_cse_simplify_operands): Likewise.
2289 Use the information computed by extract_insn instead of the previous
2290 method of finding it by insn code number.
2291 * genattrtab.c (write_attr_case): Generate call to extract_insn, not
2292 insn_extract.
2293 * final.c (final_scan_insn): Use extract_insn, not insn_extract.
2294 (cleanup_operand_subregs): Use extract_insn, not insn_extract.
2295 Use the information computed by extract_insn instead of the previous
2296 method of finding it by insn code number.
2297 * regmove.c (find_matches): Likewise. Change meaning of the return
2298 value to be nonzero if the optimization can be performed, zero if
2299 not. All callers changed.
2300 Shorten some variable names to fix formatting problems.
2301 (regmove_optimize): Shorten some variable names to fix formatting
2302 problems.
2303 Use the information computed by extract_insn instead of the previous
2304 method of finding it by insn code number.
2305 * regclass.c (scan_one_insn): Likewise.
2306 (record_reg_classes): Don't compute operand types, use recog_op_type.
2307 * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
2308 recog_constraints instead.
2309
09d33be8
JL
2310Wed Nov 4 21:37:46 1998 Jeffrey A Law (law@cygnus.com)
2311
2312 * rtl.h (flow2_completed): Declare.
2313 * flow.c (flow2_completed): Definition.
2314 * toplev.c (rest_of_compilation): Set and clear flow2_completed
2315 as necessary.
2316
bfc5000a
JL
2317Wed Nov 4 19:15:37 1998 "Melissa O'Neill" <oneill@cs.sfu.ca>
2318
2319 * Makefile.in (libcpp.a): Ranlib libcpp.a
2320
2321 * cppulp.c (user_label_prefix): Initialize.
2322
2323Wed Nov 4 19:07:08 1998 John Wehle (john@feith.com)
2324
2325 * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
2326 at a RETURN if current_function_sp_is_unchanging is set.
2327
a93049de
HB
2328Wed Nov 4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2329
2330 * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
2331
040688bd
GN
2332Wed Nov 4 15:11:15 1998 Geoffrey Noer <noer@cygnus.com>
2333
2334 * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
2335 TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
2336 (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
2337 (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
2338 (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
2339 (CPP_SPEC): Handle -mno-cygwin option. Define __CYWIN__ in addition
2340 to __CYGWIN32__.
2341 (LIB_SPEC): Handle -mno-cyginw option.
2342 (LINK_SPEC): Handle -mdll.
2343
e0d7bb0d
R
2344Wed Nov 4 22:56:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
2345
2346 * reload.c (find_reloads): Fix test for usage by other reload
2347 to handle secondary reloads properly.
2348
590cf94d
KG
2349Wed Nov 4 17:25:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2350
2351 * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
2352 intermediate structure which has exactly the members provided by
2353 ELIMINABLE_REGS. Define NUM_ELIMINABLE_REGS in terms of the
2354 static intermediate structure.
2355
2356 (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
2357 from the intermediate structure. Do the same analogous fix in
2358 the case where ELIMINABLE_REGS is not defined.
2359
ab2e3386
JL
2360Tue Nov 3 20:50:03 1998 Jeffrey A Law (law@cygnus.com)
2361
2362 * pa.h (SELECT_SECTION): Fix thinko.
2363
eef906d6
JW
2364Tue Nov 3 17:51:36 1998 Jim Wilson <wilson@cygnus.com>
2365
2366 * dwarf2out.c (output_call_frame_info): Comments on last change.
2367
74641843
RE
2368Tue Nov 3 07:51:43 1998 Richard Earnshaw (rearnsha@arm.com)
2369
2370 * arm.c (add_constant): When taking the address of an item in the
2371 pool, get the mode of the item addressed.
2372
2373 * arm.c (final_prescan_insn case INSN): If an insn doesn't
2374 contain a SET or a PARALLEL, don't consider it for conditional
2375 execution.
2376
2377 Restore ABI compatibility for NetBSD.
2378 * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
2379 arm.h
2380 (RETURN_IN_MEMORY): Likewise.
2381
0ae9f65b
DE
2382Mon Nov 2 11:46:17 1998 Doug Evans <devans@canuck.cygnus.com>
2383
2384 * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
2385 (m32r_output_block_move): Rewrite bytes < 4 handling.
2386
c375c43b
KG
2387Mon Nov 2 10:10:35 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2388
2389 * configure.in: Call AC_FUNC_VFORK.
2390
2391 * collect2.c: Define VFORK_STRING as a printable string for
2392 error messages (either "vfork" or "fork".) If HAVE_VFORK_H is
2393 defined, include vfork.h. If VMS is defined, define vfork()
2394 appropriately. Remove vfork check on USG, we're using autoconf.
2395 (collect_execute): Pass VFORK_STRING to fatal_perror instead of
2396 checking locally what string to pass.
2397 (scan_prog_file): Likewise.
2398 (scan_libraries): Likewise.
2399
2400 * gcc.c: Remove vfork check on USG, we're using autoconf.
2401 Besides, no calls to vfork/fork occur in this file.
2402
2403 * protoize.c: Likewise.
2404
3ccc3a56
AO
2405Mon Nov 2 07:52:28 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
2406
2407 * configure.in (DEFAULT_LINKER): renamed from LD
2408 (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
2409 (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
2410 * configure: rebuilt
2411
5dd21ded
AO
2412Mon Nov 2 01:48:10 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
2413
2414 * BUGS: fix the regexp for `more' to find the appropriate node.
2415 Reported by Joerg Pietschmann <joerg_pietschmann@zkb.ch>
2416
2417 * BUGS: added link to the WWW FAQ
2418
44ba27b4
JL
2419Sun Nov 1 18:27:15 PST 1998 Jeff Law (law@cygnus.com)
2420
2421 * version.c: Bump for snapshot.
2422
6d8cf409
JL
2423Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com)
2424
2425 * From Christian Gafton:
2426 * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
2427 * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
2428 * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
2429
43d8a6c7
MM
2430Sat Oct 31 21:42:39 1998 Mark Mitchell <mark@markmitchell.com>
2431
2432 * c-common.c (c_get_alias_set): Allow all type-punning through
2433 unions. Don't get confused about the type of a bit-field, despite
2434 the antics of build_modify_expr.
2435
abf0be7c
JPR
2436Sat Oct 31 22:35:29 1998 Jean-Pierre Radley <jpr@jpr.com>
2437
2438 * fixinc.sco: Paramaterize #include_next values.
2439 * fixinc/fixinc.sco: Likewise.
2440
27ff8c00
JL
2441Sat Oct 31 20:39:35 1998 Jeffrey A Law (law@cygnus.com)
2442
2443 * toplev.c (rest_of_compilation): No longer set reload_completed.
2444 * reload1.c (reload): Set it here. Perform instruction splitting
2445 after reload has completed if we will be running the scheduler
2446 again.
2447
18f3f864
JL
2448Sat Oct 31 12:30:02 1998 Jeffrey A Law (law@cygnus.com)
2449
2450 * jump.c (jump_optimize): Initialize mappings from INSN_UID to
2451 EH region if exceptions are enabled and we're performing cross
2452 jump optimizations.
2453 (find_cross_jump): Exit loop if the insns are in different EH regions.
2454
21af493b
MM
2455Sat Oct 31 10:02:48 1998 Mark Mitchell <mark@markmitchell.com>
2456
2457 * dwarf2out.c (output_call_frame_info): Use
2458 ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
2459
bf39dde3
KG
2460Sat Oct 31 10:23:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2461
2462 Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
2463 * c-common.c (check_format_info): Don't check for the 'x'
2464 format character twice, instead check for 'x' and 'X'
2465
09bedf80
JL
2466Fri Oct 30 14:50:25 1998 Jeffrey A Law (law@cygnus.com)
2467
2468 * configure.in (assembler features): Also make gas is configured if
2469 we find it in the souce tree.
2470
6093f019
RH
2471Fri Oct 30 13:23:20 1998 Richard Henderson <rth@cygnus.com>
2472
2473 * i386.c (i386_comp_type_attributes): Compare whether the
2474 attributes are defined, not their tree nodes.
2475
de82584d
AO
2476Fri Oct 30 11:39:47 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
2477
2478 * configure.in (gxx_include_dir): bitten by autoconf quoting
2479 characters :-(
2480 * configure: rebuilt
2481
d65ae058
AS
2482Fri Oct 30 10:43:29 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
2483
2484 * configure.in: Ignore non-absolute value in $AS.
2485
8b83b2a7
PJ
2486Fri Oct 30 00:54:25 1998 Peter Jakubek <pjak@snafu.de>
2487
2488 * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
2489
dedcc399
ME
2490Fri Oct 30 00:42:34 1998 Mark Elbrecht <snowball3@usa.net>
2491
2492 * configure.in (msdosdjgpp): Set exeext and target_alias.
2493
00f9f1bc
BS
2494Thu Oct 29 23:55:43 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2495
421382ac
BS
2496 * flow.c (XNMALLOC): New macro.
2497 (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
2498 static variables.
2499 (add_edge, add_edge_to_label): New static functions.
2500 (free_bb_memory): New function.
2501 (flow_delete_insn): Delete function.
2502 (basic_block_drops_in): Delete variable.
2503 (find_basic_blocks): Allocate and initialize basic_block_head,
2504 basic_block_succ. Don't allocate basic_block_drops_in.
2505 Call free_bb_memory at the beginning.
2506 (find_basic_blocks_1): Don't do multiple passes.
2507 Delete code to compute basic_block_drops_in.
2508 After calling make_edges, mark blocks reached by current block live.
2509 Update test for unreachable live blocks.
2510 (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers
2511 changed.
2512 Simplify to call add_edge_to_label when a LABEL_REF is found.
2513 (make_edges): Simplify to call add_edge_to_label instead of
2514 mark_label_ref most of the time.
2515 Compute here whether control drops into the next block.
2516 (delete_unreachable_blocks): Return void. All callers changed.
2517 Delete unreachable blocks in reverse order.
2518 After deleting all unreachable blocks, renumber the remaining ones
2519 and update n_basic_blocks.
2520 (delete_block): Speed up deletion a bit.
2521 Don't set basic_block_drops_in for deleted blocks.
2522 (free_basic_block_vars): Don't free basic_block_drops_in.
2523 (life_analysis_1): Update to use new edge representation.
2524 (dump_flow_info): Delete code to print basic block info; call
2525 dump_bb_data instead.
2526 (compute_preds_succs): Delete code to recompute basic_block_drops_in
2527 and uid_block_number.
2528 Simply copy the previously computed cfg.
2529 (dump_bb_data): New arg LIVE_INFO. All callers changed.
2530 Print register lifetime information if LIVE_INFO is nonzero.
2531 * basic-block.h (dump_bb_data): Adjust prototype.
2532 * gcse.c (gcse_main): Update call to dump_bb_data.
2533 * rtl.h (free_bb_memory): Declare.
2534 * toplev.c (rest_of_compilation): Call free_bb_memory.
2535
6467c05f
JL
2536 * reload1.c (struct elim_table): Delete MAX_OFFSET member.
2537 (update_eliminable_offsets): Don't compute it.
2538 (set_initial_elim_offsets): Don't initialize it.
2539 Break out some code into set_initial_label_offsets so the rest of
2540 this function can be called from reload_as_needed.
2541 Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
2542 ELIMINABLE_REGS isn't.
2543 (set_initial_label_offsets): New function, broken out of
2544 set_initial_elim_offsets.
2545 (set_offsets_for_label): New function, broken out of set_label_offsets
2546 and reload_as_needed.
2547 (reload): Call the two new functions.
2548 (reload_as_needed): Call set_initial_elim_offsets instead of
2549 duplicating the code. Likewise for set_offsets_for_label.
2550
00f9f1bc
BS
2551 * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
2552 (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
2553 any hard reg, reg_reloaded_dead contains valid data.
2554
afcfe58c
MM
2555Thu Oct 29 22:30:54 1998 Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
2556
f3196f46 2557 * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
afcfe58c
MM
2558 "stdcall" and "cdecl" attributes.
2559
faff4ab8
JW
2560Thu Oct 29 19:05:17 1998 Jim Wilson <wilson@cygnus.com>
2561
2562 * sched.c (update_flow_info): Add code to ! found_orig_dest case to
2563 handle deleted no-op moves of hard registers.
2564 * haifa-sched.c (update_flow_info): Likewise.
2565
839366dd
JL
2566Thu Oct 29 18:07:47 1998 Jeffrey A Law (law@cygnus.com)
2567
2568 * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
2569 of the sequences to reload the HILO register which do not actually
2570 reference HILO.
2571
1e280035
JW
2572Thu Oct 29 12:39:35 1998 Jim Wilson <wilson@cygnus.com>
2573
2574 * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
2575
0fc1434b
AM
2576Thu Oct 29 14:10:22 EST 1998 Andrew MacLeod <amacleod@cygnus.com>
2577
2578 * except.c (emit_eh_context): Make the EH context register stay alive
2579 at -O0 so stupid.c doesn't get confused.
2580
e526eeec
HB
25811998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2582
2583 * emit-rtl.c (try_split): Do not try to split a BARRIER.
2584
bb62e19a
JH
2585Thu Oct 29 01:33:54 1998 Jan Hubicka <hubicka@freesoft.cz>
2586 Jeffrey A Law (law@cygnus.com)
2587
2588 * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
2589 (zero_extendsidi2): Use # in output template and handle completely by
2590 splits.
2591 (zero_extend splitters): New define_splits.
2592 (ashiftrt_32): New pattern.
2593
e2c31432
JM
2594Wed Oct 28 22:58:35 1998 Jason Merrill <jason@yorick.cygnus.com>
2595
2596 * tree.c (append_random_chars): New fn.
2597 (get_file_function_name_long): Use it.
2598
19283265
RH
2599Wed Oct 28 22:27:05 1998 Richard Henderson <rth@cygnus.com>
2600
2601 * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
2602 (LIBCPP_OBJS): New. Add cppulp.o.
2603 (cppmain, fix-header): Depend on and use libcpp.a.
2604 * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
2605 of the individual object files.
2606 * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
2607 last.
2608
2609 * cccp.c (user_label_prefix): New.
2610 (main): Set it off -f*leading-underscore.
2611 (special_symbol): Use it.
2612 * cpplib.c (special_symbol): Likewise.
2613 (cpp_handle_option): Handle -f*leading-underscore.
2614 * cppulp.c: New file.
2615
2616 * output.h (user_label_prefix): Declare it.
2617 * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
2618 * toplev.c (f_options, main): Handle -f*leading-underscore.
2619
2620 * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
2621 referencing USER_LABEL_PREFIX directly.
2622 * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
2623 * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
2624 * final.c (asm_fprintf): Use user_label_prefix instead.
2625 * arm/thumb.c (thumb_print_operand): Likewise.
2626
2627 * gcc.c (default_compilers): Pass -f*leading-underscore on to
2628 cpp wherever appropriate.
2629
79a9696b
RL
2630Wed Oct 28 23:09:25 1998 Robert Lipe <robertl@dgii.com>
2631
2632 * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
2633 specific compiler switches.
2634
5916476f
JL
2635Wed Oct 28 21:05:53 1998 Jeffrey A Law (law@cygnus.com)
2636
2637 * Makefile.in (c-common.o): Depend on c-pragma.h. Use $(RTL_H) instead
2638 of rtl.h.
2639
829245be
KG
2640Wed Oct 28 20:52:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2641
2642 * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
2643 structure which has exactly the members provided by EXTRA_SPECS.
2644 Xmalloc() the real `extra_specs', and initialize it from this
2645 intermediate structure.
2646
2647 * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
2648
2649 * mips.h (EXTRA_SPECS): Likewise.
2650
2651 * sparc.h (EXTRA_SPECS): Likewise.
2652
b5bd3b3c
AS
2653Wed Oct 28 16:46:07 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
2654
2655 * function.c (purge_addressof_1): Instead of aborting when a
2656 bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
2657 work just put the ADDRESSOF on stack. Otherwise remember all such
2658 successfull replacements, so that exactly the same replacements
2659 can be made on the REG_NOTEs. Remove the special case for CALL
2660 insns again.
2661 (purge_addressof_replacements): New variable.
2662 (purge_addressof): Clear it at end.
2663
add7091b
ZW
26641998-10-28 16:10 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
2665
2666 * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
2667 (lang_init): Call check_newline always.
2668 * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
2669 cpp_start_read, set yy_cur and yy_lim to read from
2670 parse_in.token_buffer, so that we'll see the first #line
2671 directive.
2672 * cpplib.c (cpp_start_read): finclude the main input file
2673 before processing -include/-imacros. Process -imacros and
2674 -include separately, and handle -include by stacking a
2675 buffer for the file in question as if it'd been #included.
2676 * toplev.c (documented_lang_options) Recognize -H when
2677 USE_CPPLIB is on.
2678
26791998-10-28 16:09 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
2680
2681 * cpplib.c: Merge do_once into do_pragma. Break file handling
2682 code out of do_include.
2683 Move append_include_chain, deps_output,
2684 file_cleanup, redundant_include_p, import_hash,
2685 lookup_import, add_import, read_filename_string, read_name_map,
2686 open_include_file, finclude, safe_read to cppfiles.c.
2687 Move prototypes for deps_output, append_include_chain,
2688 finclude to cpplib.h. Move definition of struct
2689 file_name_list there also.
2690
2691 * cppfiles.c: New file. Contains all the above functions
2692 broken out of cpplib.c; also hack_vms_include_specification
2693 from cccp.c and find_include_file, a new function broken out of
2694 do_include.
2695
2696 * Makefile.in (cppmain): Depend on cppfiles.o.
2697 (fix-header): Likewise.
2698 (cppfiles.o): New target.
2699 * configure.in (--enable-c-cpplib): Add cppfiles.o to
2700 extra_c_objs. Add ../cppfiles.o to extra_cxx_objs.
2701
0a4be913
JW
2702Wed Oct 28 14:06:49 1998 Jim Wilson <wilson@cygnus.com>
2703
2704 * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
2705 if pending_types is non-zero.
2706 (dwarfout_finish): Verify pending_types is zero before finishing.
2707
2b28d92e
NC
2708Wed Oct 28 10:29:09 1998 Nick Clifton <nickc@cygnus.com>
2709
2710 * expr.c (convert_move): Use shifts to perform the move if a
2711 suitable extend pattern cannot be found. Code written by
2712 Richard Henderson <rth@cygnus.com>.
2713
8f142c0b
BS
2714Wed Oct 28 03:59:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2715
ed396e68
BS
2716 * regclass.c (renumber, regno_allocated): New static variables, moved
2717 out of allocate_reg_info.
2718 (allocate_reg_info): Move these two variables outside the function.
2719 Move code to free memory into new function free_reg_info.
2720 (free_reg_info): New function, broken out of allocate_reg_info.
2721 * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
2722 * rtl.h (allocate_reg_info): Don't declare.
2723 (free_reg_info): Declare.
2724
8f142c0b
BS
2725 * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment.
2726
a554186c
JM
2727Wed Oct 28 02:38:12 1998 Jason Merrill <jason@yorick.cygnus.com>
2728
2729 * toplev.c (compile_file): Temporarily revert last change.
2730
b58c9a79
JM
2731Wed Oct 28 00:00:35 1998 Jason Merrill <jason@yorick.cygnus.com>
2732
2733 * c-typeck.c (convert_for_assignment): Parenthesize.
2734
2eb6dac7
AS
27351998-10-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
2736
2737 * reload1.c (delete_output_reload): Avoid ambigous else.
2738
0304f787
JL
2739Wed Oct 28 00:10:35 1998 Jeffrey A Law (law@cygnus.com)
2740
e0c6d139
JL
2741 * toplev.c (compile_file): Call allocate_reg_info to free register
2742 table memory.
2743 * rtl.h (allocate_reg_info): Declare.
2744
c75d5284
JL
2745 * PROJECTS: Remove entry for local spilling.
2746
0304f787
JL
2747 * final.c (cleanup_subreg_operands): New function.
2748 (final_scan_insn): Use it.
2749 (alter_subreg): Clear the "used" field when we turn a SUBREG into
2750 a REG.
2751 * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
2752 operands when reload has finished.
2753 * reload.h (cleanup_subreg_operands): Declare..
2754 * flow.c (life_analysis_1): No longer delete CLOBBER insns after
2755 reload. Handled in reload itself.
2756
03acd8f8
BS
2757Tue Oct 27 23:32:34 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2758
c47f5ea5
BS
2759 * reload1.c (verify_initial_offsets): New function.
2760 (reload): Call it after reload_as_needed. Also verify that the frame
2761 size stays constant during reload_as_needed.
2762 * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
2763
03acd8f8
BS
2764 * reload.h (struct insn_chain): Add need_operand_change element.
2765 * reload1.c (new_insn_chain): Clear it.
2766 (calculate_needs_all_insns): Set it; don't overload need_reload.
2767 (reload_as_needed): Use it.
2768
2769 * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
2770 reload_address_base_reg_class throughout. Similar for INDEX_REG_CLASS
2771 and reload_address_index_reg_class.
2772 (find_reloads_address_1): Likewise.
2773 * reload.h (reload_address_base_reg_class,
2774 reload_address_index_reg_class): Don't declare.
2775 * reload1.c (reg_old_renumber, pseudo_previous_regs,
2776 pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
2777 (used_spill_regs): Now static.
2778 (reload_address_base_reg_class, reload_address_index_reg_class,
2779 regs_explicitly_used, counted_for_groups, counted_for_nongroups,
2780 basic_block_needs, max_needs, group_size, group_mode, max_groups,
2781 max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
2782 forbidden_regs):
2783 Deleted variables.
2784 (init_reload): Delete code to compute base/index reg classes.
2785 (reload): Delete variable J.
2786 Delete code to manage basic_block_needs.
2787 Don't compute regs_explicitly_used.
2788 Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
2789 pseudo_previous_regs.
2790 Initialize bad_spill_regs_global.
2791 Don't call order_regs_for_reload here.
2792 Don't initialize spill_reg_order and n_spills.
2793 Don't forbid explicitly used regs to be used for spill regs.
2794 Change main loop to infinite loop, with explicit break statements.
2795 Make SOMETHING_CHANGED variable local to that loop.
2796 Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
2797 max_groups_insn, max_nongroups_insn, group_size, group_mode.
2798 Make sure spilled_speudos is cleared before calling spill_hard_reg or
2799 new_spill_reg.
2800 Don't call dump_needs.
2801 Delete code to reset potential_reload_regs.
2802 Delete code to terminate loop conditional on the global needs variables
2803 showing no further needs.
2804 (calculate_needs_all_insns): Return void. All callers changed.
2805 Initialize somehing_needs_elimination here, not in reload.
2806 Delete avoid_return_reg kludge.
2807 (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
2808 All callers changed.
2809 Initialize the group_mode and group_size elements of the arg CHAIN.
2810 Delete code to manage basic_block_needs.
2811 Operate on elements of CHAIN instead of global variables.
2812 Delete avoid_return_reg kludge.
2813 (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
2814 All callers changed.
2815 Operate on elements of CHAIN instead of global variables.
2816 Delete special SMALL_REGISTER_CLASSES code.
2817 Delete spill_failure code; now in new_spill_reg.
2818 (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
2819 All callers changed.
2820 Operate on elements of CHAIN instead of global variables.
2821 (maybe_mark_pseudo_spilled): New static function.
2822 (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
2823 All callers changed.
2824 Operate on elements of CHAIN instead of global variables.
2825 Call order_regs_for_reload here, not in reload.
2826 Initialize spill_reg_order and n_spills.
2827 Simplify test whether an asm insn is involved.
2828 Delete spill_failure code; now in new_spill_reg.
2829 Call maybe_mark_pseudo_spilled for everything marked as live in
2830 CHAIN. Merge CHAIN's used_spill_regs into the global variable
2831 used_spill_regs.
2832 (dump_needs): Take CHAIN arg. No longer static, to prevent the
2833 compiler from optimizing this function (now unused) away.
2834 Operate on elements of CHAIN instead of global variables.
2835 (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg. All callers
2836 changed.
2837 Operate on elements of CHAIN instead of global variables.
2838 (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
2839 take CHAIN arg. All callers changed.
2840 Operate on elements of CHAIN instead of global variables.
2841 (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
2842 CHAIN, NONGROUP args. Return void. All callers changed.
2843 Verify caller isn't trying to spill a pseudo.
2844 Simplify test for illegal reg, just use bad_spill_regs.
2845 Generate better error messages.
2846 Operate on elements of CHAIN instead of global variables.
2847 Mark spilled register in CHAIN's used_spill_regs element.
2848 Don't call spill_hard_reg.
2849 (spill_hard_reg): Lose GLOBAL arg, return void. All callers changed.
2850 Mark spilled hard regs in bad_spill_regs_global.
2851 Mark affected pseudos in spilled_pseudos, but don't spill them.
2852 (ior_hard_reg_set): New static function.
2853 (finish_spills): Return int. All callers changed.
2854 Compute spill_reg_order, n_spills and spill_regs here. Also update
2855 regs_ever_live for regs used as spills.
2856 For every pseudo in spilled_pseudos, spill it and mark the previous
2857 hard reg it had in pseudo_previous_regs. Compute which hard regs
2858 arseudo): New static function.
2859 (order_regs_for_reload): Take CHAIN arg. All callers changed.
2860 Initialize bad_spill_regs from bad_spill_regs_global, then merge any
2861 hard registers explicitly used across the current insn into the set.
2862 Compute hard_reg_n_uses taking only pseudos live across this insn
2863 into account.
2864 Tweak sorting of potential_reload_regs.
2865 (compare_spill_regs): Delete function.
2866 (reload_as_needed): Don't sort the spill_regs array, it's computed
2867 in proper order in finish_spills.
2868 Delete avoid_return_reg kludge.
2869 Delete code to manage basic_block_needs.
2870 (allocate_reload_reg): Minor speed/readability tweaks.
2871 Operate on elements of CHAIN instead of global variables.
2872 (choose_reload_regs): Lose AVOID_RETURN_REG arg. All callers changed.
2873 Delete avoid_return_reg kludge.
2874 Initialize reload_reg_used from CHAIN's used_spill_regs element.
2875 Delete unused label FAIL.
2876 (reload_combine): Replce reload_address_index_reg_class with
2877 INDEX_REGS.
2878 Don't use used_spill_regs to determine information about lifetime of
2879 hard regs.
2880
844642e6
NC
2881Tue Oct 27 13:15:02 1998 Nick Clifton <nickc@cygnus.com>
2882
2883 * toplev.c (display_help): Ignore empty target specific
2884 options, and if -W is also specified on the command line then
2885 display undocumented options.
2a5307b1
NC
2886
2887 * config/arm/arm.c: Updated with changes in devo sources.
2888 * config/arm/arm.h: Updated with changes in devo sources.
2889 * config/arm/lib1funcs.asm: Updated with changes in devo sources.
2890 * config/arm/lib1thumb.asm: Add ELF support.
2891
f5e04914 2892Tue Oct 27 16:11:43 1998 David Edelsohn <edelsohn@mhpcc.edu>
3d697b4c 2893
f5e04914
DE
2894 * collect2.c (aix64_flag): New variable.
2895 (main, case 'b'): Parse it.
2896 (GCC_CHECK_HDR): object magic number must match mode.
2897 (scan_prog_file): Only check for shared object if valid header.
2898 Print debugging if header/mode mismatch.
2899
2900Tue Oct 27 10:15:02 1998 Nick Clifton <nickc@cygnus.com>
b355a481
NC
2901
2902 Added support for arm-elf-linux configuration, submitted by Philip
2903 Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
2904 code developed by Catherine Moore <clm@cygnus.com>. The following
2905 files are affected:
2906
2907 * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
2908 targets.
2909
2910 * configure: Regenerated.
2911
2912 * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
2913 USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX. Make other macro
2914 definitions conditional on their not having been already defined.
2915
2916 * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
2917 and .type directives, and add "(PLT)" qualification to function
2918 calls.
2919
2920 * config/arm/linux.h: Deleted. This file is now superceeded by
2921 either linux-elf.h or linux-aout.h.
2922
2923 * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
2924 (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
2925 support).
2926 Move definitions from old linux.h file here.
2927
2928 * config/arm/elf.h: New file. Generic ARM/ELF support.
2929
2930 * config/arm/linux-aout.h: New file. Support for Linux with a.out.
2931
2932 * config/arm/linux-elf.h: New file. Support for Linux with ELF.
2933
2934 * config/arm/linux-elf26.h: New file. Support for Linux with ELF
2935 using the 26bit APCS.
2936
2937 * config/arm/unknown-elf.h: New file. Support for OS'es other
2938 than Linux with ELF.
2939
2940 * config/arm/t-arm-elf: New file. makefile fragment for arm-elf
2941 builds.
2942
2943 * config/arm/coff.h: Include aout.h for basic assembler macros.
2944 Add support for -mstructure_size_boundary=<n> command line option.
2945
2946 * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
2947 command line option. Make macro definitions conditional on their
2948 not having been already defined.
2949
2950 * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
2951 command line option.
2952
2953
f5e04914 2954Tue Oct 27 08:56:46 1998 Andrew MacLeod <amacleod@cygnus.com>
74153f8e
AM
2955
2956 * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
2957 has been changed to not include a newline. Use this macro instead.
2958 (output_enumeral_list, const_value_attribute, name_attribute,
2959 comp_dir_attribute, prototyped_attribute, producer_attribute,
2960 inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
2961 dwarfout_file_scope_decl, generate_new_sfname_entry,
2962 generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
2963 ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
2964
4f4b3679
RH
2965Mon Oct 26 13:35:02 1998 Richard Henderson <rth@cygnus.com>
2966
2967 * combine.c (subst): Process the inputs to a parallel asm_operands
2968 only once.
2969
3fbd5c2c
RH
2970Mon Oct 26 13:32:31 1998 Richard Henderson <rth@cygnus.com>
2971
2972 * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
2973
26f63a77
JL
2974Mon Oct 26 12:53:14 1998 Jeffrey A Law (law@cygnus.com)
2975
2976 * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
2977
ff08e6b5
JL
2978Mon Oct 26 00:36:58 PST 1998 Jeff Law (law@cygnus.com)
2979
2980 * version.c: Bump for snapshot.
2981
e17f9bc0
JM
2982Sun Oct 25 23:36:52 1998 Jason Merrill <jason@yorick.cygnus.com>
2983
2984 * stmt.c (expand_fixup): Set fixup->before_jump to a
2985 NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
2986
7f7f8214
KG
2987Sun Oct 25 15:49:57 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2988
2989 * Makefile.in (recog.o): Depend on toplev.h.
2990 (insn-emit.o): Depend on recog.h.
2991 (insn-peep.o): Depend on recog.h and insn-config.h.
2992
2993 * combine.c (simplify_set): Remove unused variable `scratches'.
2994
2995 * final.c (final_scan_insn): Wrap declaration of variables `vlen'
2996 and `idx' in macro conditional controlling their use.
2997
2998 * genemit.c (main): Make the generated output file include
2999 recog.h. Don't have it declare `insn_operand_constraint', since
3000 we get it from recog.h.
3001
3002 * genpeep.c (main): Make the generated output file include
3003 insn-config.h and recog.h.
3004
3005 * recog.c: Include toplev.h.
3006 (extract_insn): Remove unused variable `p'.
3007
3008 * regclass.c (fix_register): Add missing braces around initializer
3009 for `what_option'.
3010 (allocate_reg_info): Move variable `i' into the scope where it is
3011 used. Change its type to `size_t'.
3012
9ff16ff2
BS
3013Sun Oct 25 13:10:15 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3014
3015 * reload.c (push_reload): When merging reloads, make sure
3016 that reload_in_reg and reload_in are from the same reload in
3017 all cases.
3018
de3a0967
MK
3019Sun Oct 25 12:07:00 1998 Mumit Khan <khan@xraylith.wisc.edu>
3020
3021 * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
3022 * i386/mingw32.h (CPP_PREDEFINES): Likewise.
3023
8c368ee2
DE
3024Fri Oct 23 23:42:03 1998 David Edelsohn <edelsohn@mhpcc.edu>
3025
3026 * loop.c (loop_has_tablejump): New variable.
3027 (prescan_loop): Scan for it.
3028 (insert_bct): Replace explicit scan with use of it.
3029 * regclass.c (regclass): Restore loop variable j.
3030 (record_reg_classes): Deterine op_types modifiers and initialize
3031 classes[i] before matching constraints. Handle matching
3032 constraints 5-9.
3033
ca3bf2b5
JW
3034Fri Oct 23 13:55:48 1998 Jim Wilson <wilson@cygnus.com>
3035
3036 * m32r/m32r.c (gen_split_move_double): Call alter_subreg. Delete
3037 subreg support.
3038
e1ba7da7
KG
3039Fri Oct 23 16:19:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3040
3041 * mips.h (EXTRA_SPECS): Add missing initializers.
3042
df4f7565
KG
3043Fri Oct 23 16:08:39 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3044
3045 * sparc.h (EXTRA_SPECS): Add missing initializers.
3046 (sparc_defer_case_vector): Provide a prototype.
3047
3048 * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
3049 comparing it to the result of a pointer subtraction.
3050
d1e6b55b
KG
3051Fri Oct 23 15:34:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3052
3053 * alpha.c (override_options): Use ISDIGIT(), not isdigit(). Cast
3054 the argument to (unsigned char).
3055
3056 * alpha.h (EXTRA_SPECS): Add missing initializers.
3057 (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
3058 format specifier.
3059
c4214310
JL
3060Fri Oct 23 13:12:35 1998 Jeffrey A Law (law@cygnus.com)
3061
b590bbfd
JL
3062 * flow.c (life_analysis_1): Enable "rescan" code after reload.
3063 (propagate_block): Delete dead code after reload.
3064
a1ef0af4
JL
3065 * sched.c (update_flow_info): Revert Oct 19, 1998 change. Brings
3066 back Oct 15, 1998 change.
3067 * haifa-sched.c (update_flow_info): Likewise.
7b16da78
JL
3068 * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
3069
c4214310
JL
3070 * mn10200.md (truncated shift): Accept constant inputs too.
3071
abef8789
RE
3072Fri Oct 23 04:06:57 1998 Richard Earnshaw (rearnsha@arm.com)
3073
3074 * machmode.h (mode_mask_array): No longer const.
3075 * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
3076
ccb5954f
ML
3077