]>
Commit | Line | Data |
---|---|---|
861bb6c1 JL |
1 | Sun Mar 31 05:10:10 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) |
2 | ||
3 | * stor-layout.c (layout_decl): Don't make a bitfield an integral mode | |
4 | if the mode of the field type is not MODE_INT. | |
5 | ||
6 | * sched.c (schedule_block): CALL_INSNs don't affect fixed regs. | |
7 | ||
8 | * flow.c (propagate_block): CALL_INSNs don't kill fixed regs. | |
9 | ||
10 | Sat Mar 30 03:32:48 1996 Torbjorn Granlund <tege@noisy.tmg.se> | |
11 | ||
12 | * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Move some code | |
13 | to avoid shifting by a too large count. | |
14 | ||
15 | Fri Mar 29 15:45:51 1996 Doug Evans <dje@cygnus.com> | |
16 | ||
17 | * configure (i[3456]86-*-sunos5*): Delete, config.sub converts | |
18 | sunos5 to solaris2. | |
19 | (sparc-*-sunos5*): Likewise. | |
20 | (sparc64-*-{solaris2*,sunos5*}): Delete. Stick with sparc-*-solaris2*. | |
21 | ||
22 | * sparc.h (FUNCTION_PROFILER): Save/restore %g2 around mcount call. | |
23 | ||
24 | Fri Mar 29 14:20:31 1996 Stan Cox <coxs@dg-rtp.dg.com> | |
25 | ||
26 | * i386.c (notice_update_cc): Clear cc_status if ref modified MEM. | |
27 | ||
28 | Fri Mar 29 09:37:52 1996 Jeffrey A. Law <law@cygnus.com> | |
29 | ||
30 | * calls.c (expand_call): Remove current_call_is_indirect nonsense. | |
31 | Add additional argument to INIT_CUMULATIVE_ARGS. | |
32 | (emit_library_call): Likewise. | |
33 | (emit_library_call_value): Likewise. | |
34 | * expr.c (expand_builtin): Likewise. | |
35 | * function.c (assign_parms): Likewise. | |
36 | * config/pa/pa.h (hppa_args): New field "indirect". | |
37 | (INIT_CUMULATIVE_ARGS): Initialize "indirect" field. | |
38 | (FUNCTION_ARG): Check "indirect" field, rather than | |
39 | "current_call_is_indirect". | |
40 | * a29k.h (INIT_CUMULATIVE_ARGS):New arg, INDIRECT. | |
41 | * alpha.h (INIT_CUMULATIVE_ARGS): Likewise. | |
42 | * arm.h (INIT_CUMULATIVE_ARGS): Likewise. | |
43 | * clipper.h (INIT_CUMULATIVE_ARGS): Likewise. | |
44 | * convex.h (INIT_CUMULATIVE_ARGS): Likewise. | |
45 | * dsp16xx.h (INIT_CUMULATIVE_ARGS): Likewise. | |
46 | * elxsi.h (INIT_CUMULATIVE_ARGS): Likewise. | |
47 | * fx80.h (INIT_CUMULATIVE_ARGS): Likewise. | |
48 | * gmicro.h (INIT_CUMULATIVE_ARGS): Likewise. | |
49 | * h8300.h (INIT_CUMULATIVE_ARGS): Likewise. | |
50 | * i370/mvs.h (INIT_CUMULATIVE_ARGS): Likewise. | |
51 | * i386.h (INIT_CUMULATIVE_ARGS): Likewise. | |
52 | * i860.h (INIT_CUMULATIVE_ARGS): Likewise. | |
53 | * i960.h (INIT_CUMULATIVE_ARGS): Likewise. | |
54 | * m68k.h (INIT_CUMULATIVE_ARGS): Likewise. | |
55 | * m68k/mot3300.h (INIT_CUMULATIVE_ARGS): Likewise. | |
56 | * m88k.h (INIT_CUMULATIVE_ARGS): Likewise. | |
57 | * mips.h (INIT_CUMULATIVE_ARGS): Likewise. | |
58 | * ns32k.h (INIT_CUMULATIVE_ARGS): Likewise. | |
59 | * pdp11.h (INIT_CUMULATIVE_ARGS): Likewise. | |
60 | * pyr.h (INIT_CUMULATIVE_ARGS): Likewise. | |
61 | * romp.h (INIT_CUMULATIVE_ARGS): Likewise. | |
62 | * rs6000.h (INIT_CUMULATIVE_ARGS): Likewise. | |
63 | * sh.h (INIT_CUMULATIVE_ARGS): Likewise. | |
64 | * sparc.h (INIT_CUMULATIVE_ARGS): Likewise. | |
65 | * spur.h (INIT_CUMULATIVE_ARGS): Likewise. | |
66 | * tahoe.h (INIT_CUMULATIVE_ARGS): Likewise. | |
67 | * vax.h (INIT_CUMULATIVE_ARGS): Likewise. | |
68 | * we32k.h (INIT_CUMULATIVE_ARGS): Likewise. | |
69 | * mips.c (mips_expand_prologue): Add extra arg to | |
70 | INIT_CUMULATIVE_ARGS call. | |
71 | ||
72 | Thu Mar 28 18:45:49 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
73 | ||
74 | * alpha.c (summarize_insn): Fix three "off-by-one" bugs in loop bounds. | |
75 | ||
76 | Thu Mar 28 16:50:10 1996 Doug Evans <dje@cygnus.com> | |
77 | ||
78 | * ginclude/inl-sparc.h: Deleted. | |
79 | ||
80 | Thu Mar 28 12:07:31 1996 Jeffrey A. Law <law@cygnus.com> | |
81 | ||
82 | * ginclude/va-h8300.h (va_arg): Don't assume sizeof (int) == 4. | |
83 | ||
84 | * pa.c (hppa_legitimize_address): Don't lose for | |
85 | (plus (plus (mult (A) (shadd_const)) (B)) (C)) if | |
86 | B + C isn't a valid address for indexing. | |
87 | (basereg_operand): Only accept base registers after | |
88 | cse has completed. Don't accept the frame pointer if | |
89 | it's likely to be eliminated. | |
90 | * pa.md (unscaled indexing patterns): Add variants with | |
91 | basereg and index register reversed. | |
92 | (HImode and QImode loads): Add zero extended variants. | |
93 | ||
94 | Wed Mar 27 07:45:27 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
95 | ||
96 | * expmed.c (negate_rtx): Fix typo in previous change. | |
97 | ||
98 | Tue Mar 26 13:50:43 1996 Jim Wilson <wilson@mole.gnu.ai.mit.edu> | |
99 | ||
100 | * calls.c (expand_call): In convert_to_mode call, use word_mode | |
101 | not SImode. | |
102 | ||
103 | Tue Mar 26 13:44:34 1996 Doug Evans <dje@canuck.cygnus.com> | |
104 | ||
105 | * configure: Delete unnecessary special handling of --with-cpu. | |
106 | ||
107 | Tue Mar 26 10:41:57 1996 Jeffrey A. Law <law@cygnus.com> | |
108 | ||
109 | * expr.c (emit_push_insn): When doing a partial push, emit | |
110 | a CLOBBER so that flow doesn't think the entire register | |
111 | is live. | |
112 | ||
113 | Tue Mar 26 10:00:52 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
114 | ||
115 | * alpha.c (summarize_insn, default case): Properly use format_ptr. | |
116 | ||
117 | Tue Mar 26 09:51:09 1996 Philippe De Muyter (phdm@info.ucl.ac.be) | |
118 | ||
119 | * m68k.h (output_move_simode_const): New extern declaration. | |
120 | * m68k.c (output_move_simode_const): New function. | |
121 | (singlemove_string): Call it. | |
122 | * m68k.md (fullword move): Likewise. | |
123 | ||
124 | Tue Mar 26 05:43:06 1996 Torbjorn Granlund <tege@noisy.tmg.se> | |
125 | ||
126 | * vax.md (insv matcher): Call CC_STATUS_INIT. | |
127 | * vax.h (NOTICE_UPDATE_CC): Handle ZERO_EXTRACT destination. | |
128 | ||
129 | Mon Mar 25 19:18:08 1996 Jason Merrill <jason@yorick.cygnus.com> | |
130 | ||
131 | * function.c (expand_function_start): Don't set up context_display | |
132 | unless current_function_needs_context. | |
133 | ||
134 | Mon Mar 25 18:48:18 1996 Philippe De Muyter <phdm@info.ucl.ac.be> | |
135 | ||
136 | * fold-const.c (fold, case BIT_IOR_EXPR): Recognize rotates | |
137 | with variable count. | |
138 | ||
139 | Mon Mar 25 18:05:28 1996 Jim Wilson <wilson@cygnus.com> | |
140 | ||
141 | * Makefile.in (libgcc1-test): Undo Feb 12 change. | |
142 | ||
143 | Mon Mar 25 08:09:59 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
144 | ||
145 | * objc/thread-single.c (objc_mutex_unlock): Properly declare thread_id. | |
146 | ||
147 | Mon Mar 25 08:02:50 1996 Philippe De Muyter <phdm@info.ucl.ac.be> | |
148 | ||
149 | * configure (m68k-motorola-sysv*): Fixed indentation. | |
150 | ||
151 | Sun Mar 24 08:16:42 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
152 | ||
153 | * expmed.c (negate_rtx): Don't try to negate a constant ourself; | |
154 | instead call simplify_unary_operation. | |
155 | ||
156 | Sun Mar 24 07:29:06 1996 Richard Henderson <rth@tamu.edu> | |
157 | ||
158 | * gcc.c (process_command): Instead of hardcoding non-empty | |
159 | switches_need_spaces to turn on "o" and "L", make the string | |
160 | contain the switches that need the spaces. | |
161 | * m68k/ccur-GAS.h (SWITCHES_NEED_SPACES): Change definition | |
162 | correspondingly. | |
163 | ||
164 | Sat Mar 23 18:34:44 1996 Harry Dolan <dolan@ssd.intel.com> | |
165 | ||
166 | * i860/paragon.h (LIB_SPEC): Always output -lmach. | |
167 | ||
168 | Sat Mar 23 18:25:39 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
169 | ||
170 | * c-typeck.c (set_init_index): Check for use outside an array | |
171 | initializer. | |
172 | ||
173 | * defaults.h (ASM_OUTPUT_ADDR_DIFF_ELT): Delete. | |
174 | * pdp11.h (ASM_OUTPUT_ADDR_DIFF_ELT): Don't define. | |
175 | ||
176 | Sat Mar 23 15:55:35 1996 Doug Evans <dje@canuck.cygnus.com> | |
177 | ||
178 | * combine.c (make_extraction): In BITS_BIG_ENDIAN correction of POS, | |
179 | need to treat MEM and REG differently. | |
180 | ||
181 | * sparc.h (SPARC_SIMM{10,11,13}_P): Define. | |
182 | (SMALL_INT): Use SPARC_SIMM13_P. | |
183 | (CONST_OK_FOR_LETTER_P): Support new letters L,M. | |
184 | * sparc.c (arith11_operand): Use SPARC_SIMM11_P. | |
185 | (arith10_operand): Use SPARC_SIMM10_P. | |
186 | * sparc.md (*mov{qi,hi,si,di}_cc_sp64): Fix constraints. | |
187 | (*mov{qi,hi,si,di}_cc_reg_sp64): Likewise. | |
188 | ||
189 | Sat Mar 23 07:47:19 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> | |
190 | ||
191 | * m68k/linux.h (TRAMPOLINE_TEMPLATE): Correct first instruction. | |
192 | * m68k/m68kv4.h (TRAMPOLINE_TEMPLATE): Likewise. | |
193 | ||
194 | Sat Mar 23 07:06:55 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
195 | ||
196 | * bc-emit.c (bc_emit_instruction): Add missing va_end call. | |
197 | ||
198 | * c-typeck.c (build_array_ref): Give error if subscripting a function. | |
199 | ||
200 | Fri Mar 22 09:11:45 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
201 | ||
202 | * local-alloc.c (optimize_reg_copy_1): Only update reg_live_length | |
203 | if it is non-negative. | |
204 | ||
205 | Thu Mar 21 14:42:26 1996 Doug Evans <dje@cygnus.com> | |
206 | ||
207 | * sparc/splet.h (STARTFILE_SPEC,LINK_SPEC): Define. | |
208 | ||
209 | Wed Mar 20 17:23:18 1996 Jim Wilson <wilson@cygnus.com> | |
210 | ||
211 | * cse.c (note_mem_written): Delete obsolete code for handling | |
212 | (mem (scratch)). | |
213 | ||
214 | * mips.c (mips_expand_prologue): In initialization of fnargs, delete | |
215 | special treatment of METHOD_TYPE. | |
216 | ||
217 | Wed Mar 20 17:07:45 1996 Doug Evans <dje@cygnus.com> | |
218 | ||
219 | * sparc/sol2.h (ASM_CPU_SPEC): Recognize -mcpu=v8plus, not v9. | |
220 | Fix typo in ultrasparc entry. | |
221 | * sparc/sparc.h (CPP_CPU_SPEC): Add v8plus entry. | |
222 | (ASM_CPU_SPEC): Likewise. | |
223 | ||
224 | * sparc/sparc.c (fcc_reg_operand): Ensure correct mode. | |
225 | (icc_or_fcc_reg_operand): Likewise. | |
226 | (gen_v9_scc): IF_THEN_ELSE must have a mode. | |
227 | (print_operand): New operand code `x' for all condition codes. | |
228 | New operand codes `c,d' for reversed conditional moves. | |
229 | * sparc/sparc.md (movqicc,movhicc): New named patterns. | |
230 | (movdicc): if_then_else must have a mode. | |
231 | (movsicc,movsfcc,movdfcc,movtfcc): Likewise. | |
232 | Change condition to TARGET_V9, not TARGET_ARCH64. | |
233 | Fail if DImode compare and ! TARGET_ARCH64. | |
234 | (conditional move matchers): Rewrite. | |
235 | ||
236 | Wed Mar 20 16:12:29 1996 Stan Cox <coxs@wombat.gnu.ai.mit.edu> | |
237 | ||
238 | * i386.h (HARD_REGNO_MODE_OK): Relax QImode constraint to | |
239 | avoid a reload problem. | |
240 | ||
241 | Wed Mar 20 13:12:22 1996 Jeffrey A. Law <law@cygnus.com> | |
242 | ||
243 | * pa.c (hppa_legitimize_address): Don't lose for x[n-const] | |
244 | when n-const will not be shifted. Don't pessimize code for | |
245 | x[n-const] when const is small. | |
246 | ||
247 | Wed Mar 20 11:42:32 1996 Markus Theissinger <Markus.Theissinger@gmd.de> | |
248 | ||
249 | * m68k/sun3.h (LIB_SPEC): Don't link /usr/lib/bb_link.o with `gcc -a'. | |
250 | (__bb_init_func): Deleted. | |
251 | (BLOCK_PROFILER_CODE): Don't set macro to nothing. | |
252 | ||
253 | * m68k/xm-sun3.h: New file. | |
254 | * configure (m68k-sun-sunos*): Use it. | |
255 | ||
256 | * xm-linux.h (HAVE_POPEN): New define. | |
257 | ||
258 | Wed Mar 20 11:28:37 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> | |
259 | ||
260 | * m68k/linux.h (ASM_SPEC): Deleted. | |
261 | (STRUCT_VALUE_REGNUM): Redefine as register a0. | |
262 | (STATIC_CHAIN_REGNUM): Redefine as register a1. | |
263 | (TRAMPOLINE_TEMPLATE): Redefine to use the right register. | |
264 | ||
265 | Wed Mar 20 08:04:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
266 | ||
267 | * libgcc2.c (__dummy): New function. | |
268 | * Makefile.in (LIB2FUNCS): Add __dummy. | |
269 | * expr.c (expand_builtin, case BUILT_IN_SETJMP): Call "setjmp" | |
270 | pattern, if any. | |
271 | Call dummy function pointed to by static chain pointer. | |
272 | (expand_builtin, case BUILT_IN_LONJMP): Ignore second expression. | |
273 | Set address of __dummy into static chain pointer. | |
274 | Copy the label to return to into a pseudo earlier. | |
275 | ||
276 | * stupid.c (last_setjmp_suid, regs_crosses_setjmp): New variables. | |
277 | (stupid_life_analysis, stupid_mark_refs): Use them to track which | |
278 | regs are live over a setjmp; don't allocate such regs. | |
279 | ||
280 | Tue Mar 19 22:02:07 1996 Jason Merrill <jason@yorick.cygnus.com> | |
281 | ||
282 | * cplus-dem.c (demangle_template): Fix for non-mangled pointer | |
283 | arguments. | |
284 | ||
285 | Tue Mar 19 13:54:06 1996 Jeffrey A. Law <law@wombat.gnu.ai.mit.edu> | |
286 | ||
287 | * pa.c (compute_frame_size): Update comments to reflect reality. | |
288 | (hppa_expand_prologue): Don't save registers which aren't | |
289 | used, even if it creates holes. Partially undoes changes from | |
290 | early March. | |
291 | (hppa_expand_epilogue): Likewise. | |
292 | ||
293 | Tue Mar 19 08:25:17 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
294 | ||
295 | * stmt.c (struct case_node): New member balance. | |
296 | (add_case_node): New function. | |
297 | (pushcase, pushcase_range): Use it. | |
298 | (case_tree2list): New function. | |
299 | (expand_end_case): Use it. | |
300 | ||
301 | Tue Mar 19 07:44:22 1996 Stephen L Moshier (moshier@world.std.com) | |
302 | ||
303 | * regstack.c (move_for_stack_reg): Avoid stack overflow while | |
304 | storing XFmode from fp reg to memory. | |
305 | ||
306 | Tue Mar 19 07:38:03 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
307 | ||
308 | * m68k.h (MASK_*): New macros. | |
309 | (OVERRIDE_OPTIONS): Use them. | |
310 | (TARGET_SWITCHES): Likewise. | |
311 | Treat -m68332 like -m68000. | |
312 | ||
313 | Mon Mar 18 20:04:13 1996 Richard Earnshaw (rearnsha@armltd.co.uk) | |
314 | ||
315 | * expmed.c (emit_store_flag): If expanding (GE X 0) will need two | |
316 | insns, don't use subtarget for the result of the first insn. | |
317 | Move a likely constant to the start of a condition. | |
318 | ||
319 | Mon Mar 18 19:48:14 1996 Philippe De Muyter <phdm@info.ucl.ac.be> | |
320 | ||
321 | * m68k.h (CONST_OK_FOR_LETTER_VALUE): New constraint 'M'. | |
322 | * m68k.c (output_function_epilogue): Restore registers using sp+ | |
323 | instead of fp(n) in leaf functions. | |
324 | (USE_MOVQ, use_movq): Function replaced by macro. | |
325 | * m68k.md (pushexthisi_const, movsi_const0): New names. | |
326 | (andsi3, iorsi3): Allow only 'M', not 'K' constants, if dest is 'd'. | |
327 | ||
328 | Mon Mar 18 19:33:20 1996 Fila Kolodny <fila@ibi.com> | |
329 | ||
330 | * i370/t-mvs: New file. | |
331 | * configure (i370-*-mvs*): Use it. | |
332 | * i370/mvs.h (FUNCTION_PROLOGUE): LE/370 takes 120 bytes for DSA. | |
333 | Have only one copy of timestamp and PPA2 per object module. | |
334 | Only have unnamed CSECT to match IBM C. | |
335 | ||
336 | Mon Mar 18 19:26:21 1996 Paul Russell (Rusty.Russell@adelaide.maptek.com.au) | |
337 | ||
338 | * combine.c (simplify_if_then_else): Allow for case that | |
339 | condition might no longer be a condition. | |
340 | ||
341 | Mon Mar 18 19:14:42 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
342 | ||
343 | * c-typeck.c (build_conditional_expr): If OP1 is null, set | |
344 | both OP1 and ORIG_OP1 to IFEXP. | |
345 | ||
346 | * c-iterate.c (iterator_loop_epilogue): Don't clear DECL_RTL | |
347 | for a static decl. | |
348 | ||
349 | Mon Mar 18 08:02:25 1996 Stephen L Moshier <moshier@world.std.com> | |
350 | ||
351 | * alpha.c (summarize_insn, case SUBREG, CONST_*): New cases. | |
352 | ||
353 | Sun Mar 17 16:55:00 1996 Doug Evans <dje@cygnus.com> | |
354 | ||
355 | * combine.c (find_split_point): Handle NULL return from | |
356 | make_extraction. | |
357 | (make_field_assignment): Likewise. | |
358 | ||
359 | Sat Mar 16 18:56:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
360 | ||
361 | * tree.c (substitute_in_expr, case COMPONENT_REF): Ignore | |
362 | if inner PLACEHOLDER_EXPR has not yet been initialized. | |
363 | ||
364 | * i386.c (standard_80386_constant_p): -0.0 is not 0.0. | |
365 | * i386.md (insv): Restore missing end of comment. | |
366 | ||
367 | * combine.c (make_extraction): Correct typo in force_to_mode | |
368 | call in previous change. | |
369 | Return 0 if pos+len out of range of want desired mode. | |
370 | ||
371 | Sat Mar 16 16:20:43 1996 David Mosberger-Tang <davidm@azstarnet.com> | |
372 | ||
373 | * alpha.md (trap): New attribute. | |
374 | Modify patterns for all floating-point trap generating instructions. | |
375 | * alpha.h (CPP_SPEC): Added -mieee and -mieee-with-inexact. | |
376 | (alpha_trap_precision, alpha_fp_rounding_mode, alpha_fp_trap_mode): | |
377 | New enum types. | |
378 | (target_flags, alpha_tp, alpha_fprm, alpha_fptm): New external vars. | |
379 | (alpha_fprm_string, alpha_fptm_string, alpha_tp_string): Likewise. | |
380 | (TARGET_IEEE{,_WITH_INEXACT,_CONFORMANT}): New macros. | |
381 | (MASK_IEEE{,_WITH_INEXACT,_CONFORMANT}): Likewise. | |
382 | (MASK_FP, MASK_FPREGS, | |
383 | (TARGET_SWITCHES): Added "ieee-conformant", "ieee", and | |
384 | "ieee-with-inexact"; use MASK symbols. | |
385 | (TARGET_OPTIONS): New macro. | |
386 | (OVERRIDE_OPTIONS, FINAL_PRESCAN_{INSN,LABEL}): New macros. | |
387 | (PRINT_OPERAND_PUNCT_VALID_P): Allow operand codes for FP insns. | |
388 | (CC1_SPEC): New macro. | |
389 | * alpha.c (alpha_tp, alpha_fprm, alpha_fptm): New variables. | |
390 | (alpha_tp_string, alpha_fprm_string, alpha_fptm_string | |
391 | (trap_pending): Likewise. | |
392 | (override_options, summarize_insn, final_prescan_insn): New functions. | |
393 | (print_operand): Handle cases '&', '\'', ')', and '+'. | |
394 | (output_prolog): Emit ".eflag 48" if TARGET_IEEE_CONFORMANT. | |
395 | (output_epilog): Call final_prescan_insn before emitting epilog. | |
396 | ||
397 | * final.c (final_scan_insn, case CODE_LABEL): Invoke | |
398 | FINAL_PRESCAN_INSN if FINAL_SCAN_LABEL is defined. | |
399 | ||
400 | * alpha/{linux.h,x-linux,xm-linux.h}: New files. | |
401 | * configure (alpha-*-linux*): New case. | |
402 | * alpha.c (output_prolog): Set alpha_function_needs_gp if profiling | |
403 | and TARGET_PROFILING_NEEDS_GP defined. | |
404 | ||
405 | Thu Mar 14 22:28:20 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
406 | ||
407 | * rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Fix last change. | |
408 | * aix41.h (LINK_SPEC): add -bnoentry if shared and no explicit entry. | |
409 | ||
410 | Thu Mar 14 12:47:33 1996 Jim Wilson <wilson@cygnus.com> | |
411 | ||
412 | * mips.h (ASM_OUTPUT_DOUBLE_INT): Use 'X' if CONST_INT and | |
413 | HOST_BITS_PER_WIDE_INT == 64. | |
414 | ||
415 | * mips.c (mips_expand_prologue): Change TYPE_NEEDS_CONSTRUCTING to | |
416 | TREE_ADDRESSABLE; | |
417 | ||
418 | Thu Mar 14 11:21:37 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
419 | ||
420 | * rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): For 32-bit mode, | |
421 | allow TImode variables with int offsets, so that structures | |
422 | greater than 8 bytes and less than or equal to 16 bytes can be | |
423 | instantiated correctly. | |
424 | ||
425 | * rs6000.c (rs6000_valid_type_attribute_p): Add exception | |
426 | attribute for Windows NT. | |
427 | ||
428 | * win-nt.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete, merge into | |
429 | ASM_DECLARE_FUNCTION_NAME. | |
430 | (ASM_DECLARE_FUNCTION_NAME): Add support for exception attribute | |
431 | setting fields 3 & 4 of the structured exception handling table. | |
432 | ||
433 | Thu Mar 14 01:53:19 1996 Jeffrey A. Law <law@cygnus.com> | |
434 | ||
435 | * pa.h (ASM_DECLARE_FUNCTION_NAME): Change TYPE_NEEDS_CONSTRUCTING | |
436 | to TREE_ADDRESSABLE. From Jim Wilson. | |
437 | ||
438 | Wed Mar 13 13:40:32 1996 Jim Wilson <wilson@chestnut.cygnus.com> | |
439 | ||
440 | * c-tree.h (warn_sign_compare): Add extern to declaration. | |
441 | ||
442 | Wed Mar 13 13:37:00 1996 Doug Evans <dje@cygnus.com> | |
443 | ||
444 | * configure: Use cross-make and build-make if building | |
445 | cross compiler with cross compiler. | |
446 | ||
447 | Wed Mar 13 12:00:34 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
448 | ||
449 | * i386/cygwin32.h (ASM_OUTPUT_ALIGN): Correct defination. | |
450 | ||
451 | * rs6000/{win-nt,cygwin32}.h (STARTFILE_SPEC): Add crti.o before | |
452 | all objects. | |
453 | (ENDFILE_SPEC): Add crtn.o after all objects. | |
454 | ||
455 | * configure (powerpcle-*-cygwin32): Use t-winnt, not t-cygin32 | |
456 | * rs6000/t-cygwin32: Delete, no longer used. | |
457 | ||
458 | * rs6000/t-winnt ({,INSTALL_}LIBGCC): Build and install crti.o and | |
459 | crtn.o. | |
460 | ||
461 | * rs6000/win-nt.h (EXTRA_SECTION_FUNCTIONS): Add ctors_section and | |
462 | dtors_section. | |
463 | (INVOKE__main): Define, so that __main is called. | |
464 | (ASM_OUTPUT_{CONSTRUCTOR,DESTRUCTOR}): Define to put pointers to | |
465 | the constructor/destructor in the appropriate section. | |
466 | ||
467 | * nt-c{i,n}.asm: New files to be linked before/after all of the users' | |
468 | objects. | |
469 | ||
470 | Wed Mar 13 00:42:17 1996 Per Bothner <bothner@cygnus.com> | |
471 | ||
472 | * dbxout.c (dbxout_type): Better "variant" handling to ignore | |
473 | const/volatile but not typedef names. Improves Feb 12 change. | |
474 | ||
475 | Tue Mar 12 17:25:14 1996 David Mosberger-Tang <davidm@azstarnet.com> | |
476 | ||
477 | * glimits.h (__LONG_MAX__): On Alpha, use 64 bit value. | |
478 | ||
479 | Tue Mar 12 15:07:49 1996 Torbjorn Granlund <tege@tmg.se> | |
480 | ||
481 | * m68k.c (valid_dbcc_comparison_p): Don't test cc_prev_status here. | |
482 | (flags_in_68881): New function. | |
483 | * m68k.md (dbra peepholes): Use flags_in_68881. | |
484 | ||
485 | Tue Mar 12 13:54:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
486 | ||
487 | * sparc.md (nonlocal_goto): Emit barrier after jump. | |
488 | (setjmp{,_64,_32}): New patterns. | |
489 | ||
490 | Tue Mar 12 12:43:27 1996 Jim Wilson <wilson@cygnus.com> | |
491 | ||
492 | * i960/i960.h (ROUND_TPE_SIZE): Return round_up result instead of | |
493 | COMPUTED. | |
494 | ||
495 | * expr.c (expand_expr, case COMPONENT_REF): For unaligned object in | |
496 | an aligned union, delete check for EXPAND_SUM. | |
497 | ||
498 | * expr.h (clear_storage): Add comment terminator. | |
499 | ||
500 | Mon Mar 11 19:07:50 1996 Jeffrey A. Law <law@cygnus.com> | |
501 | ||
502 | * recog.c (constrain_operands, case 'V'): Don't call | |
503 | offsettable_memref_p before reload has completed. | |
504 | ||
505 | Mon Mar 11 16:06:13 1996 Doug Evans <dje@cygnus.com> | |
506 | ||
507 | * h8300/h8300.h (SP_AND_G_REGS): Renamed from SP_AND_G_REG. | |
508 | (CC_DONE_CBIT): Delete. | |
509 | (CC_OVERFLOW_0,CC_OVERFLOW_UNUSABLE,CC_NO_CARRY): Define. | |
510 | * h8300/h8300.c (cond_string): Delete CC_DONE_CBIT handling. | |
511 | (notice_update_cc): Delete CC_CBIT, CC_WHOOPS. Add CC_SET_ZN_C0. | |
512 | (restore_compare_p): New function. | |
513 | (shift_one): Use shll instead of shal so overflow bit is usable. | |
514 | Set cc_valid bits to cc_status.flags values. | |
515 | (emit_a_shift): Set cc_status.flags. | |
516 | * h8300/h8300.md (attr cc): Delete whoops,cbit. Add set_zn_c0. | |
517 | (all patterns) Update cc attr setting. | |
518 | (tstqi,tsthi,tstsi): Delete CC_DONE_CBIT handling. | |
519 | (addhi3,subhi3): Change define_expand to define_insn. | |
520 | (branch_true,branch_false): Check if compare needs to be restored. | |
521 | ||
522 | Mon Mar 11 13:55:23 1996 Michael Meissner <meissner@cygnus.com> | |
523 | ||
524 | * rs6000.h (CONST_DOUBLE_OK_FOR_LETTER_P): Add 'H' for movdi | |
525 | patterns in 32 bit that generate 3 instructions. | |
526 | (num_insns_constant): Add declaration. | |
527 | ||
528 | * rs6000.c (num_insns_constant{,_wide}) Functions to determine the | |
529 | number of insns it takes to generate an integer constant. | |
530 | (easy_fp_constant): Allow DImode in easy constants. Use | |
531 | num_insns_constant_wide. | |
532 | (input_operand): Allow any CONST_{INT,DOUBLE}'s for {SI,DI}mode. | |
533 | ||
534 | * rs6000.md (movdi): Generate a normal movdi using a CONST_DOUBLE | |
535 | for 32 bit mode rather than using SUBREG's. For 64 bit mode, | |
536 | break large integer constants into smaller pieces. Add various | |
537 | define_splits to handle loading the various DImode constants. | |
538 | ||
539 | Mon Mar 11 06:54:19 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
540 | ||
541 | * combine.c (make_extraction): Use proper mode for INNER in all cases. | |
542 | (simplify_comparison, case ZERO_EXTRACT): For bits big endian and | |
543 | no extzv, use BITS_PER_WORD. | |
544 | * fx80.md, gmicro.md, i386.md, m68k.md, tahoe.md, vax.md: | |
545 | Use proper modes and predicates for {sign,zero}_extract. | |
546 | ||
547 | Sun Mar 10 06:23:52 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
548 | ||
549 | * emit-rtl.c (free_insn): New variable. | |
550 | (init_emit, restore_emit_status): Clear it. | |
551 | (gen_sequence): Store insn in free_insn when sequence length is 1. | |
552 | (make_insn_raw): Use free_insn if available and still in the | |
553 | rtl generation phase. | |
554 | ||
555 | Fri Mar 8 15:37:31 1996 Mike Stump <mrs@cygnus.com> | |
556 | ||
557 | * expr.c (expand_expr, case TARGET_EXPR): Delay putting the cleanup | |
558 | on the cleanup chain until after the subexpression has been expanded. | |
559 | ||
560 | Fri Mar 8 16:14:51 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
561 | ||
562 | * i386.c (ix86_binary_operator_ok): one memory operand is OK. | |
563 | This is independent of commutativity. | |
564 | ||
565 | Fri Mar 8 14:07:43 1996 Jim Wilson <wilson@cygnus.com> | |
566 | ||
567 | * expr.c (store_constructor_field): Call store_field if bitpos is | |
568 | nonzero and target is not a MEM. | |
569 | ||
570 | * jump.c (jump_optimize): When handle a USE insn before an | |
571 | unconditional jump, disable the optimization if the USE is the | |
572 | only insn in the loop. | |
573 | ||
574 | * sh.c (reg_unused_after): Return 0 if see a JUMP_INSN. | |
575 | ||
576 | Fri Mar 8 12:08:36 1996 Doug Evans <dje@cygnus.com> | |
577 | ||
578 | * sparc/lynx.h (CPP_SPEC): Use %(cpp_cpu). | |
579 | ||
580 | * sparc/sparc.md (move_pic_label_si,move_label_di): Rewrite length | |
581 | attr calcs to be more conservative. | |
582 | ||
583 | Thu Mar 7 19:14:21 1996 Doug Evans <dje@cygnus.com> | |
584 | ||
585 | * sparc/t-splet: New file. | |
586 | * sparc/splet.h: New file. | |
587 | * configure (sparclet-*-aout*): Use them. | |
588 | ||
589 | * sparc/sparc.h (MASK_LIVE_G0,TARGET_LIVE_G0): Define. | |
590 | (FIRST_PSEUDO_REGISTER): Add 1 for %icc (now 101). | |
591 | (FIXED_REGISTERS,CALL_USED_REGISTERS): Update. | |
592 | (FIXED_REGISTERS): %g0 is fixed by default. | |
593 | (SPARC_{FIRST,LAST}_V9_FCC_REG): Define. | |
594 | (SPARC_{ICC,FCC}_REG): Define. | |
595 | (CONDITIONAL_REGISTER_USAGE): Don't fix %fcc0 if v8. | |
596 | (REG_CLASS_CONTENTS): Reg 0 is an int reg, reg 100 is %icc. | |
597 | (REGNO_REG_CLASS): Rewrite to use global `sparc_regno_reg_class'. | |
598 | (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Add %icc. | |
599 | (REG_CLASS_FROM_LETTER): Handle 'c' for FPCC_REGS in non-v9 case. | |
600 | (REGNO_OK_FOR_{BASE,INDEX}_P): Treat %g0 as a normal reg. | |
601 | (REG_OK_FOR_{BASE,INDEX}_P,EXTRA_CONSTRAINT): Likewise. | |
602 | (REGISTER_NAMES): Add %icc. | |
603 | (ADDITIONAL_REGISTER_NAMES): Use SPARC_ICC_REG. | |
604 | * sparc/sparc.c (leaf_reg_remap): Add %icc=100. | |
605 | (reg_or_0_operand): Don't allow 0 if TARGET_LIVE_G0. | |
606 | (fcc_reg_operand): Renamed from ccfp_reg_operand. | |
607 | Use SPARC_FCC_REG. Don't treat reg 0 as an fcc reg. Don't match | |
608 | modes if `mode' argument is VOIDmode. | |
609 | (icc_or_fcc_reg_operand): New function. | |
610 | (gen_compare_reg): Use SPARC_FCC_REG for v8 fp compares. | |
611 | Use SPARC_ICC_REG for int compares. | |
612 | (eligible_for_epilogue_delay): Don't allow anything if TARGET_LIVE_G0. | |
613 | Delete unnecessary test for %g0. | |
614 | (emit_move_sequence): Don't emit (set (mem) (const_int 0)) if | |
615 | TARGET_LIVE_G0. | |
616 | (output_scc_insn): Label moved to operand 3. Condition code reg | |
617 | moved to operand 2. | |
618 | (sparc_mode_class): Enum C_MODE renamed to CC_MODE. | |
619 | (hard_32bit_mode_classes): Set reg 0 to S_MODES. Add entry for %icc. | |
620 | (hard_64bit_mode_classes): Set reg 0 to D_MODES. Add entry for %icc. | |
621 | (sparc_regno_reg_class): New global. | |
622 | (sparc_init_modes): Initialize it. | |
623 | (output_cbranch): Delete fp_cond_reg argument. | |
624 | (print_operand, MEM op): Don't print "%g0+" if TARGET_LIVE_G0. | |
625 | (sparc_flat_eligible_for_epilogue_delay): Don't allow anything if | |
626 | TARGET_LIVE_G0. | |
627 | * sparc/sparc.md (live_g0): New attribute. | |
628 | (*): Integer condition code register is now reg 100. | |
629 | Use SPARC_ICC_REG instead of hardcoding reg 100 where possible. | |
630 | Non-v9 floating point condition code register is now reg 96. | |
631 | (*cmp{sf,df,tf}_{fpe,fp}_sp{32,64}): Combine v9/non-v9 cases. | |
632 | (*{normal,inverted}_{,fp,fpe}_branch): Update call to output_cbranch. | |
633 | (*mov{qi,hi,si}_insn): Don't use if TARGET_LIVE_G0. | |
634 | (*mov{qi,hi,si}_insn_liveg0): New patterns. | |
635 | (*mov{si,di,sf,df,tf}_ccfp{,e}_sp64): ccfp_reg_operand renamed to | |
636 | fcc_reg_operand. | |
637 | (*negdi2_sp32,negsi2,one_cmplsi2,ffssi2): Ensure %%g0 is 0 if | |
638 | TARGET_LIVE_G0. | |
639 | (*one_cmpldi2_sp32): Move operand 1 to rs1 and use 0 as rs2. | |
640 | (patterns that use %g0 in rs2): Use 0 immediate value instead. | |
641 | (patterns that read %g0): Don't use if TARGET_LIVE_G0. | |
642 | ||
643 | Thu Mar 7 15:39:16 1996 Jim Wilson <wilson@chestnut.cygnus.com> | |
644 | ||
645 | * sh.h (PASS_IN_REG_P): Change < to <=. | |
646 | * va-sh.h (va_start): Change __SH3E___ to __SH3E__. | |
647 | (va_arg): Add little-endian SH3E support. Fix big-endian version | |
648 | to work for arguments smaller than the word size. | |
649 | ||
650 | Thu Mar 7 10:37:37 1996 Jeffrey A. Law <law@cygnus.com> | |
651 | ||
652 | * lib2funcs.asm: Remove entry/exit routines. Move them into... | |
653 | * ee.asm: New file. Entry/exit code. | |
654 | * ee_fp.asm: New file. Entry/exit code with frame pointer. | |
655 | * t-pa: Corresponding changes. | |
656 | * t-pro: Corresponding changes. | |
657 | ||
658 | * pa.c: Fix misc small typos/thinkos in recent changes. | |
659 | ||
660 | Wed Mar 6 17:36:03 1996 Jason Merrill <jason@yorick.cygnus.com> | |
661 | ||
662 | * cplus-dem.c (demangle_template): Fix for address-of-extern arguments. | |
663 | ||
664 | Wed Mar 6 15:12:55 1996 Jeffrey A. Law <law@cygnus.com> | |
665 | ||
666 | * t-pro (dp-bit rule): Fix typo. | |
667 | ||
668 | * lib2funcs.asm (__outline_prologue): Remove frame pointer | |
669 | support. | |
670 | (__outline_prologue_fp): Out of line prologue with frame pointer. | |
671 | (__outline_epilogue, outline_epilogue_fp): Similarly. | |
672 | * pa.c (compute_frame_size): Allocate enough space to avoid holes | |
673 | in the callee register saves. Remove some special handling of %r3. | |
674 | (hppa_expand_prologue): Don't do an out of line prologue/epilogue | |
675 | if it would take more insns than an inline prologue/epilogue. | |
676 | Don't leave holes in the callee register save set. | |
677 | (hppa_expand_prologue): Corresponding changes. Pass stack size | |
678 | to out of line epilogue code. | |
679 | * pa.h (FRAME_POINTER_REQUIRED): Revert last change. | |
680 | * pa.md (outline_prologue_call): Handle outline prologues which | |
681 | don't need frame pointers. | |
682 | (outline_epilogue_call): Similarly. | |
683 | * t-pro: Reenable multilib code. Build a set of libraries that | |
684 | optimize for space. | |
685 | ||
686 | Wed Mar 6 14:28:14 1996 Jim Wilson <wilson@chestnut.cygnus.com> | |
687 | ||
688 | * Makefile.in (USER_H): Add ginclude/va-sh.h. | |
689 | * ginclude/stdarg.h, ginclude/varargs.h: Use va-sh.h. | |
690 | * ginclude/va-sh.h: New file. | |
691 | ||
692 | * sh.h (PASS_IN_REG_P): Fix typo in last change. | |
693 | ||
694 | Wed Mar 6 11:42:06 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
695 | ||
696 | * rs6000.h (enum processor_type): Remove PROCESSOR_PPC602. | |
697 | (RTX_COSTS): Remove PROCESSOR_PPC602. PPC603 MULT cost depends | |
698 | on constant and domain. | |
699 | * rs6000.c (processor_target_table): 602 uses PROCESSOR_PPC603. | |
700 | (get_issue_rate): Remove CPU_PPC602. | |
701 | * rs6000.md (function units): Remove PPC602. Add store and | |
702 | fpstore type attribute values. Update patterns. | |
703 | ||
704 | Tue Mar 5 18:43:43 1996 Richard Henderson <rth@tamu.edu> | |
705 | ||
706 | * m68k/coff.h (ASM_OUTPUT_SECTION_NAME): New define. | |
707 | ||
708 | * m68k/{aux-crt1.c,aux-crt[2n].asm}: New files. | |
709 | * m68k/{aux-exit.c,aux-low.gld,aux-mcount.c}: More new files. | |
710 | * m68k/{aux.h,auxgnu.h,auxstd.h}: Even more new files. | |
711 | * m68k/{t-aux,xm-aux.h}: The rest of the new files. | |
712 | * m68k/sgs.h (ASM_OUTPUT_CASE_END): Add missing semicolon. | |
713 | (switch_table_difference_label_flag): Make extern. | |
714 | * fixincludes (sys/param.h): Fix c89 __asm statements. | |
715 | * configure (m68k-apple-aux*): New target. | |
716 | ||
717 | Tue Mar 5 17:38:19 1996 Doug Evans <dje@cygnus.com> | |
718 | ||
719 | * sparc.md (*mov{qi,hi,si}_insn): Simplify length attribute. | |
720 | (*movsi_insn): Use fpload/fpstore attributes for fp loads/stores. | |
721 | %r1 -> %1 for fpstore alternative. | |
722 | (*movsf_insn,*movsf_no_f_insn): %r1 -> %1. | |
723 | ||
724 | Tue Mar 5 17:19:17 1996 Jason Merrill <jason@yorick.cygnus.com> | |
725 | ||
726 | * expr.c (expand_expr, case *_DECL): If we make a non-local | |
727 | reference from a function with DECL_NO_STATIC_CHAIN set, abort. | |
728 | (expand_expr, case ADDR_EXPR): We don't need a trampoline for a | |
729 | function with DECL_NO_STATIC_CHAIN set. | |
730 | * function.c (lookup_static_chain): If we're checking on a function | |
731 | that doesn't need a static chain, return 0. | |
732 | (init_function_start): We don't need context if DECL_NO_STATIC_CHAIN | |
733 | is set. | |
734 | * tree.c (staticp): Check DECL_NO_STATIC_CHAIN on nested functions. | |
735 | ||
736 | Tue Mar 5 15:04:29 1996 Jim Wilson <wilson@chestnut.cygnus.com> | |
737 | ||
738 | * sh.md (push_e, pop_e): Add TARGET_SH3E to condition. | |
739 | * sh.h (JUMP_TABLES_IN_TEXT_SECTION): Define. | |
740 | * sh.c (find_barrier): Set si_limit to 1018 instead of 1020, and | |
741 | hi_limit to 510 instead of 512. | |
742 | ||
743 | Tue Mar 5 13:39:44 1996 Doug Evans <dje@cygnus.com> | |
744 | ||
745 | * loop.c (init_loop): Use pseudo reg in add_cost computation | |
746 | so cost doesn't vary depending on whether reg 0 happens to be | |
747 | fixed or not. | |
748 | ||
749 | Tue Mar 5 09:32:24 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
750 | ||
751 | * reg-stack.c (record_label_references): Check for undefined label. | |
752 | ||
753 | Tue Mar 5 09:22:20 1996 Scott Christley (scottc@net-community.com) | |
754 | ||
755 | * objc/objc-api.h, objc/runtime.h: Include objc/thread.h. | |
756 | * objc/class.c (__objc_init_class_tables): Surround sarray access | |
757 | with mutex lock/unlock. | |
758 | (__objc_add_class_to_hash, objc_lookup_class): Likewise. | |
759 | (objc_get_class, objc_get_next_class): Likewise. | |
760 | (__objc_resolve_class_links, class_pose_as): Likewise. | |
761 | * objc/init.c (__objc_runtime_mutux, __objc_runtime_thread_alive): | |
762 | New variables. | |
763 | (objc_init_statics, __objc_init_protocols): Surround sarray access | |
764 | with mutex lock/unlock | |
765 | (__objc_exec_class): Likewise. | |
766 | Initialization for thread-safe global variables. | |
767 | Declarations for thread-safe functions and global variables | |
768 | * objc/sendmsg.c (get_imp, __objc_responds_to): | |
769 | Surround sarray access with mutex lock/unlock. | |
770 | (__objc_init_install_dtable): Likewise. | |
771 | (__objc_update_dispatch_table_for_class): Likewise. | |
772 | (__objc_print_dtable_stats): Likewise. | |
773 | * objc/selector.c (sel_get_typed_uid, sel_get_any_typed_uid): Likewise. | |
774 | (sel_get_any_uid, sel_get_name, sel_register_name): Likewise. | |
775 | (sel_register_typed_name): Likewise. | |
776 | * objc/sarray.h (union sversion): New. | |
777 | (struct sarray): Maintain multiple versions. | |
778 | (sarray_remove_garbage): Add prototype. | |
779 | * objc/sarray.c (sarray_{remove,free}_garbage): New functions. | |
780 | (sarray_at_put, sarray_new, sarray_lazy_copy): | |
781 | Modify/copy sarray structure/data in a thread-safe manner | |
782 | (sarray_{realloc,free}): Reallocate/free sarray structure/data in a | |
783 | thread-safe manner. | |
784 | ||
785 | * objc/THREADS, objc/thread.c, objc/thread.h: New files. | |
786 | * objc/thread-{decosf1,irix,solaris,win32,single}.c: New files. | |
787 | * objc/objc-list.h: Renamed from objc/list.h. | |
788 | * objc/Makefile: Changes to compile new files and name renaming. | |
789 | * objc/makefile.dos: Likewise. | |
790 | ||
791 | Tue Mar 5 07:51:31 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
792 | ||
793 | * bc-emit.c, bc-optab.c (free): Delete declaration of library function. | |
794 | ||
795 | * c-decl.c (duplicate_decl): If making decl non-external, copy | |
796 | context from old to new. | |
797 | ||
798 | Tue Mar 5 02:27:35 1996 Jeffrey A. Law <law@cygnus.com | |
799 | ||
800 | * lib2funcs.asm (__outline_prologue): New "function". | |
801 | (__outline_epilogue): New "function". | |
802 | * pa.h (TARGET_SPACE): Define. | |
803 | (target_flags): Add -mspace and -mno-space. Enable/disable | |
804 | space saving optimizations. | |
805 | (FRAME_POINTER_REQUIRED): Frame pointers are always required | |
806 | when generating out of line prologues and epilogues. | |
807 | * pa.c (compute_frame_size): Handle out of line prologues/epilogues. | |
808 | (hppa_expand_prologue): If optimizing for space, emit an out of | |
809 | line prologue. | |
810 | (hppa_expand_epilogue): Similarly. | |
811 | (override_options): Optimizing for space is not compatable with | |
812 | either profiling or PIC code generation. | |
813 | * pa.md (outline_prologue_call): New pattern. | |
814 | (outline_epilogue_call): Likewise. | |
815 | ||
816 | Tue Mar 5 02:17:32 1996 Doug Evans <dje@cygnus.com> | |
817 | ||
818 | * sparc.md (*cmp{si,di}_insn): %r0 -> %0. | |
819 | (DFmode move define_split): Ensure registers not extended v9 fp regs. | |
820 | (*mov{sf,df,tf}_cc_reg_sp64): %r3 -> %3. | |
821 | ||
822 | Mon Mar 4 18:46:37 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de> | |
823 | ||
824 | * Makefile.in (CRT0STUFF_T_CFLAGS): New macro. | |
825 | (stamp-crt0, crt0.o, mcrt0.o): New goals. | |
826 | (STAGESTUFF): stamp-crt0 added. | |
827 | ||
828 | * collect2.c (main): Check new define DEFAULT_A_OUT_NAME. | |
829 | ||
830 | * m68k.c (print_operand): Emit .l as scale factor #ifdef MOTOROLA. | |
831 | * m68k/mot3300-crt0.S, m68k/mot3300Mcrt0.S: New files. | |
832 | * m68k/mot3300g.h: Deleted. | |
833 | * m68k/mot3300.h (FUNCTION_PROFILER): Emit label references | |
834 | corresponding to those generated by ASM_OUTPUT_INTERNAL_LABEL. | |
835 | (MOTOROLA, MOTOROLA_BSR, ...): Define #ifndef USE_GAS. | |
836 | (ASM_SPEC): Define properly #ifdef USE_GAS. | |
837 | (LIB_SPEC): -L/usr/lib/libp deleted. | |
838 | (STARTFILE_SPEC): -L/usr/lib/libp added. | |
839 | (DEFAULT_A_OUT_NAME): Define. | |
840 | (LINK_SPEC): Pass -v if GNU ld is used. | |
841 | (LOCAL_LABEL_PREFIX): Local labels start with .L using GAS, else L%. | |
842 | (USER_LABEL_PREFIX): Undefine. | |
843 | (FUNCTION_PROFILER): Call asm_fprintf instead of normal fprintf. | |
844 | (ASM_APP_ON, ASM_FILE_START): GAS supports it. | |
845 | (CTORS_.../DTORS_...): Define if GNU ld is used. | |
846 | (ASM_FILE_START): Define properly for Motorola and GNU as syntax. | |
847 | (TARGET_VERSION): Re-define only #ifndef USE_GAS. | |
848 | (CALL_USED_REGISTERS): Deleted. | |
849 | (GLOBAL_ASM_OP): Re-define only #ifndef USE_GAS. | |
850 | (ASM_{LONG,SHORT,CHAR,BYTE,BYTE_OP}): New macros. | |
851 | (ASM_OUTPUT_{DOUBLE,LONG_DOUBLE,FLOAT,INT,SHORT}): Use them. | |
852 | (ASM_OUTPUT_{CHAR,BYTE,ASCII,FLOAT_OPERAND,DOUBLE_OPERAND}): Likewise. | |
853 | (ALIGN_ASM_OP, SKIP_ASM_OP): New macros. | |
854 | (ASM_OUTPUT_{ALIGN,SKIP}): Use them. | |
855 | (ASM_OUTPUT_SOURCE_FILENAME): Define only if not using GNU as. | |
856 | (ASM_{GENERATE,OUTPUT}_INTERAL_LABEL): Provide proper definitions for | |
857 | Motorola and GNU as syntax. | |
858 | (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Changed for portability between | |
859 | Motorola and GNU as syntax. | |
860 | (ASM_OUTPUT_{CASE_LABEL,OPCODE}): Define only if not using GNU as. | |
861 | (ASM_OUTPUT_CASE_FETCH, ASM_RETURN_CASE_JUMP): New macros. | |
862 | (ASM_OUTPUT_{COMMON,LOCAL}): Proper defns for Motorola and gas syntax. | |
863 | (SDB_...): Define only for Motorola as. | |
864 | (ALT_LIBM): New define to tell g++.c about an alternative name for | |
865 | `-lm'. | |
866 | (MATH_LIBRARY, NEED_ATEXIT, HAVE_ATEXIT, EXIT_BODY): New macros. | |
867 | * m68k/t-mot3300, m68k/t-mot3300-{gald,gas,gld}: New files. | |
868 | * m68k/x-mot3300-gas: New file. | |
869 | * m68k/xm-mot3300.h (USG): Set to 1. | |
870 | * configure (m68k-motorola-sysv*): Keep track of new different | |
871 | combinations (--with-gnu-...), and provide proper definitions for | |
872 | tm_file, xmake_file, tmake_file, use_collect2, and extra_parts. | |
873 | ||
874 | * gbl-ctors.h (HAVE_ATEXIT): Define if NEED_ATEXIT is defined. | |
875 | (atexit): Use `int atexit' prototype also if NEED_ATEXIT is defined. | |
876 | (on_exit): According to man on_exit on the Sun it returns int not void. | |
877 | * libgcc2.c (L_bb/atexit, onexit): Declarations replaced by | |
878 | #include'ing "gbl-ctors.h". | |
879 | (L_exit/atexit): New function. | |
880 | (L_exit/exit): Call any registered functions. | |
881 | ||
882 | Mon Mar 4 18:03:38 1996 Bryan Ford (baford@cs.utah.edu) | |
883 | ||
884 | * configure (i[3456]86-moss-msdos*): New target. | |
885 | * i386/moss.h: New file. | |
886 | ||
887 | Mon Mar 4 17:38:50 1996 Jim Wilson <wilson@cygnus.com> | |
888 | ||
889 | * sh.h (PASS_IN_REG_P): Don't reject BLKmode for SH3e. | |
890 | For SH3e, do reject parameter that won't fit entirely in registers. | |
891 | ||
892 | * sh.md (mulhisi3-2, mulhisi3-1, mulsidi3_i, umulsidi3_i, | |
893 | smulsi3_highpart, umulsi3_highpart): Renames operands 1/2 to 0/1. | |
894 | (mulsidi3, umulsidi3): Add support for TARGET_LITTLE_ENDIAN. | |
895 | ||
896 | * sh.c (machine_dependent_reorg): In TARGET_RELAX code, when scan | |
897 | forward from LINK, fail if pass a CODE_LABEL before finding INSN. | |
898 | Fail if SCAN not INSN is a JUMP_INSN. | |
899 | ||
900 | Mon Mar 4 11:27:10 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
901 | ||
902 | * rs6000.h (CALL_LONG): Change CALL_xx values from an enumeration | |
903 | to bitmasks. Add CALL_LONG to support longcall attributes. | |
904 | (rs6000_args): Call_cookie field is now an int. | |
905 | (rs6000_longcall_ref): Add declaration. | |
906 | ||
907 | * rs6000.c (init_cumulative_args): Add support for longcall | |
908 | attributes to always call through a pointer. | |
909 | (function_arg): Ditto. | |
910 | (rs6000_valid_type_attribute_p): Ditto. | |
911 | (rs6000_longcall_ref): New function for long calls. | |
912 | ||
913 | * rs6000.md (call insns): Add support for longcall attributes. | |
914 | ||
915 | Mon Mar 4 08:42:14 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
916 | ||
917 | * real.c (significand_size): Don't test the modes, but their sizes. | |
918 | ||
919 | * dwarfout.c (xstrdup): Moved from here. | |
920 | * toplev.c (xstrdup): New function. | |
921 | * tree.h (xstrdup): Declare. | |
922 | * bc-emit.c (bc_xstrdup): Delete. | |
923 | * expr.c (bc_strdup): Delete. | |
924 | (bc_load_externaddr_id): Use xstrdup instead of bc_xstrdup. | |
925 | * function.c (bc_expand_function_start): Likewise. | |
926 | * 1750a.c (strdup): Delete. | |
927 | (float_label): Use xstrdup instead of strdup. | |
928 | * 1750a.h (xstrdup): Declare instead of instead of strdup. | |
929 | (ASM_OUTPUT_LABEL): Use xstrdup instead of strdup. | |
930 | (FIX_FRAME_POINTER_ADDRESS): Don't use DEPTH in string. | |
931 | ||
932 | Mon Mar 4 08:23:23 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
933 | ||
934 | * xm-we32k.h (NO_WAIT_H): Deleted. | |
935 | ||
936 | * collect2.c: Never include wait.h. | |
937 | ||
938 | Sat Mar 2 22:43:07 1996 Torbjorn Granlund <tege@spiff.gnu.ai.mit.edu> | |
939 | ||
940 | * configure (code for making links): Work around sh bug on FreeBSD. | |
941 | ||
942 | Sat Mar 2 13:40:29 1996 Jeffrey A. Law <law@cygnus.com> | |
943 | ||
944 | * h8300.h (BIGGEST_FIELD_ALIGNMENT): Replace uses of | |
945 | TARGET_ALIGN_STRUCT_300 with TARGET_ALIGN_300. | |
946 | (BIGGEST_ALIGNMENT): Likewise. | |
947 | ||
948 | Sat Mar 2 08:04:50 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
949 | ||
950 | * calls.c (expand_call): If passing by invisible ref, not const. | |
951 | ||
952 | * sparc.c (SKIP_CALLERS_UNIMP_P): Make agree with test used in call. | |
953 | ||
954 | * expr.c (do_jump, case COMPOUND_EXPR): Call preserve_temp_slots. | |
955 | ||
956 | * fold-const.c (fold, case *_DIV_EXPR): Ignore SAVE_EXPR if has RTL. | |
957 | ||
958 | Fri Mar 1 17:59:17 1996 Jeffrey A. Law <law@cygnus.com> | |
959 | ||
960 | * optabs.c (emit_cmp_insn): Immediately copy the return | |
961 | value from the library call into a pseudo register. | |
962 | (emit_float_lib_cmp): Likewise. | |
963 | ||
964 | Fri Mar 1 14:37:40 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
965 | ||
966 | * rs6000/sysv4.h (BSS_SECTION_ASM_OP): Define. | |
967 | (*_SECTION_ASM_OP): Change tab after .section into a space. | |
968 | (ASM_OUTPUT_INT): Ditto. | |
969 | (ASM_OUTPUT_ALIGNED_LOCAL): Rewrite to use bss_section. | |
970 | (ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and | |
971 | ASM_OUTPUT_ALIGNED_LOCAL. | |
972 | ||
973 | * rs6000/win-nt.h (BSS_SECTION_ASM_OP): Define. | |
974 | (ASM_OUTPUT_ALIGNED_LOCAL): Define. | |
975 | (ASM_OUTPUT_LOCAL): Don't define any more. | |
976 | (ASM_OUTPUT_ALIGNED_BSS): Define to use ASM_GLOBALIZE_LABEL and | |
977 | ASM_OUTPUT_ALIGNED_LOCAL. | |
978 | ||
979 | Thu Feb 29 17:33:12 1996 Jim Wilson <wilson@chestnut.cygnus.com> | |
980 | ||
981 | * c-typeck.c (push_init_level): When output padding to align structure | |
982 | field, set constructor_unfilled_fields. | |
983 | ||
984 | * dbxout.c (dbxout_type, case METHOD_TYPE): Add CHARS (1) call | |
985 | after emitting second '#' character. | |
986 | ||
987 | Thu Feb 29 13:59:27 1996 Doug Evans <dje@charmed.cygnus.com> | |
988 | ||
989 | * h8300/h8300.h (ASM_OUTPUT_BSS): Define. | |
990 | * m68k/coff.h (BSS_SECTION_ASM_OP): Define. | |
991 | (ASM_OUTPUT_ALIGNED_BSS): Define. | |
992 | * m68k/m68k-aout.h (BSS_SECTION_ASM_OP): Define. | |
993 | (ASM_OUTPUT_BSS): Define. | |
994 | ||
995 | Thu Feb 29 13:39:39 1996 Per Bothner <bothner@cygnus.com> | |
996 | ||
997 | * varasm.c (compare_constant_1): For a SET_TYPE CONSTRUCTOR, | |
998 | first extract and compare the set length. | |
999 | ||
1000 | * varasm.c (record_constant_1): For SET_TYPE CONSTRUCTOR, | |
1001 | permanent_obstack.next_free is *end* of available space. | |
1002 | ||
1003 | Thu Feb 29 13:14:14 1996 Jeffrey A. Law <law@cygnus.com> | |
1004 | ||
1005 | * pa.h (TARGET_SWITCHES): Add new flags "-mlong-load-store" and | |
1006 | "-mno-long-load-store". | |
1007 | (TARGET_LONG_LOAD_STORE): Define. | |
1008 | * pa.md (symbolic high part): Handle TARGET_LONG_LOAD_STORE. | |
1009 | ||
1010 | Thu Feb 29 11:39:30 1996 Stan Cox <coxs@dg-rtp.dg.com> | |
1011 | ||
1012 | * i386/i386.md (cmpxf*): XF compare cannot have mem operands. | |
1013 | (casesi expand): Put (minus:SI..) into subsi3 format. | |
1014 | * i386/i386.c (i386_return_pops_args): Cleanup extra argument | |
1015 | used as address of a returned structure. | |
1016 | ||
1017 | Wed Feb 28 22:24:28 1996 Doug Evans <dje@cygnus.com> | |
1018 | ||
1019 | * varasm.c (enum in_section): Define in_bss if BSS_SECTION_ASM_OP | |
1020 | is defined. | |
1021 | (bss_section,asm_output_bss,asm_output_aligned_bss): New functions. | |
1022 | (assemble_variable): Delete redundant test for too large an object. | |
1023 | Rewrite test for uninitialized variables. Use new macros | |
1024 | ASM_OUTPUT{,_ALIGNED}_BSS if defined to output global uninitialized | |
1025 | but not common variables. | |
1026 | * bytecode.h (BC_OUTPUT_BSS): Define. | |
1027 | * lynx.h (EXTRA_SECTIONS): Delete in_bss. | |
1028 | (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. | |
1029 | * svr3.h (EXTRA_SECTIONS): Likewise. | |
1030 | (BSS_SECTION_FUNCTION): Delete. | |
1031 | * convex/convex.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. | |
1032 | * dsp16xx/dsp16xx.h (EXTRA_SECTIONS): Delete in_bss. | |
1033 | (EXTRA_SECTION_FUNCTIONS): Delete bss_section. | |
1034 | * gmicro/gmicro.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. | |
1035 | * i386/aix386ng.h (EXTRA_SECTION_FUNCTIONS): Delete | |
1036 | BSS_SECTION_FUNCTION. | |
1037 | * i386/att.h (BSS_SECTION_FUNCTION): Delete. | |
1038 | * i386/sco5.h (EXTRA_SECTIONS): Delete in_bss. | |
1039 | (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. | |
1040 | (BSS_SECTION_FUNCTION): Delete. | |
1041 | * i386/seq-sysv3.h (BSS_SECTION_FUNCTION): Delete. | |
1042 | * i386/svr3gas.h (EXTRA_SECTIONS): Delete in_bss. | |
1043 | (EXTRA_SECTION_FUNCTIONS): Delete BSS_SECTION_FUNCTION. | |
1044 | (BSS_SECTION_FUNCTION): Delete. | |
1045 | * i860/paragon.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Undef. | |
1046 | * m68k/crds.h (EXTRA_SECTIONS,EXTRA_SECTIONS_FUNCTIONS): Delete. | |
1047 | (BSS_SECTION_ASM_OP): Define. | |
1048 | * m68k/m68k.h (BC_OUTPUT_BSS): Define. | |
1049 | * mips/iris6.h (EXTRA_SECTIONS): Delete in_bss. | |
1050 | * pa/pa.h (EXTRA_SECTIONS): Delete in_bss. | |
1051 | (EXTRA_SECTION_FUNCTIONS): Delete bss_section. | |
1052 | * sparc/litecoff.h (EXTRA_SECTIONS): Delete in_bss. | |
1053 | ||
1054 | Wed Feb 28 14:12:25 1996 Jim Wilson <wilson@chestnut.cygnus.com> | |
1055 | ||
1056 | * sh.h (FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): Include FP | |
1057 | registers only when TARGET_SH3E. | |
1058 | (PASS_IN_REG_P): Exclude BLKmode only when ! TARGET_SH3E. | |
1059 | ||
1060 | Wed Feb 28 12:03:26 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1061 | ||
1062 | * rs6000.c (rs6000_trampoline_{template,size}): Change the Windows | |
1063 | NT trampoline template so that it doesn't require making the stack | |
1064 | executable. Add support for 64 bit systems. | |
1065 | (rs6000_initialize_trampoline): Ditto. | |
1066 | ||
1067 | Tue Feb 27 16:42:00 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
1068 | ||
1069 | * rs6000.c (print_operand): New code 'H'. | |
1070 | * rs6000.md (insv, extzv): Add DImode patterns. Use 'h' | |
1071 | consistently for masking SImode shifts. | |
1072 | (rotldi3, ashldi3, lshrdi3, ashrdi3): Use 'H'. | |
1073 | (movsf split): Generate CONST_INT instead of SUBREG. | |
1074 | ||
1075 | Tue Feb 27 15:02:17 1996 Doug Evans <dje@cygnus.com> | |
1076 | ||
1077 | * sh/sh.h (HANDLE_PRAGMA): Delete `return'. | |
1078 | ||
1079 | Tue Feb 27 08:18:12 1996 Richard Earnshaw (rearnsha@armltd.co.uk) | |
1080 | ||
1081 | * arm.c (aof_text_section): Remove pseudo read-only hack. Doesn't | |
1082 | take a parameter any more. | |
1083 | * arm/aof.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove | |
1084 | readonly data sections. | |
1085 | (READONLYDATA_SECTION, READONLY_DATA_SECTION): Delete. | |
1086 | ||
1087 | * arm.h (enum arm_cond_code): New enum. | |
1088 | (ARM_INVERSE_CONDITION_CODE): Moved here from arm.c. | |
1089 | (SELECT_CC_MODE): Call arm_select_cc_mode to do the work. | |
1090 | (PREDICATE_CODES): Add dominant_cc_register; delete | |
1091 | reversible_cc_register. | |
1092 | * arm.c (arm_current_cc): Now an enum. | |
1093 | (ARM_INVERSE_CONDITION_CODE): Moved to arm.h | |
1094 | (revsersible_cc_register): Delete. | |
1095 | (dominant_cc_register): New function. | |
1096 | (select_dominance_cc_mode): New function. | |
1097 | (arm_select_cc_mode): New function. | |
1098 | (output_return_instruction): New parameter REVERSE, used to | |
1099 | reverse the condition of a conditional return. All callers | |
1100 | changed. | |
1101 | (arm_print_operand case 'D'): Only suppress condition printing | |
1102 | if the operand is a NULL pointer. | |
1103 | (get_arm_condition_code): Now a static function returning | |
1104 | enum arm_cond_code. Handle dominance expressions. Return enum | |
1105 | values rather than integers. | |
1106 | * arm.md (*addsi3_compare0_scratch): New insn. | |
1107 | (*movsi_compare0, *cmpsi_insn, *cmpsi_shiftsi): Make sure the | |
1108 | compare has mode CC. | |
1109 | (cmp{si,sf,df,xf} expands): Just provide sufficient information | |
1110 | to allow the parameters to be matched properly. | |
1111 | (*cmpsi_negsi): Delete (of dubious validity). | |
1112 | (*cmpsi_shiftsi_swp): New pattern. | |
1113 | (*condbranch_reversed): No longer needs to check REVERSIBLE_CC_MODE. | |
1114 | (mov{si,sf,df}cc, *mov{si,sf,df}{,_hard,_soft}_insn): The mode of the | |
1115 | IF_THEN_ELSE must be appropriate to the target (not void). | |
1116 | (*and_scc): Match cc_register, not reversible_cc_register. | |
1117 | (*ior_compare_compare): Delete. | |
1118 | (split for ior_compare_compare + condjump): Delete. | |
1119 | (*impossible_cond_compare): Delete. | |
1120 | (*condition_compare_ior): Delete. | |
1121 | (*cond_move): Mode for the IF_THEN_ELSE must be SImode. | |
1122 | (*and_scc_scc): Delete. | |
1123 | (split for and_scc_scc + condjump): Delete. | |
1124 | (*impossible_cond_branch_and): Delete. | |
1125 | (*cmp_ite0, *cmp_ite1): New patterns. | |
1126 | (if_compare_not): Should be an anonymous pattern. | |
1127 | (Peephole for move and compare): Compare mode must be mode CCmode. | |
1128 | (Split pattern for comparing shifted reg then branch): Delete. | |
1129 | (*loadqi_compare): Delete, replaced with a split pattern to do | |
1130 | the same thing. | |
1131 | (*cond_move_not): Match cc_register, not reversible_cc_register. | |
1132 | ||
1133 | * arm.c ({load,store}_multiple_sequence): New functions. | |
1134 | (emit_{ldm,stm}_seq): New functions. | |
1135 | * arm.md (load/store multiple peepholes): Rewrite using the above | |
1136 | functions. | |
1137 | (all patterns taking immediate_operand): If the code later assumes | |
1138 | this is a CONST_INT, then match const_int_operand instead. | |
1139 | ||
1140 | Mon Feb 26 17:26:13 1996 Doug Evans <dje@cygnus.com> | |
1141 | ||
1142 | * sparc/sparc.md: Add sparclet scheduling parameters. | |
1143 | (compare define_insn's): Move closer to compare define_expand's. | |
1144 | (32 bit multiply patterns): Use for TARGET_SPARCLET. | |
1145 | (*smacsi,*smacdi,*umacdi): Multiply/accumulate patterns for the | |
1146 | sparclet. | |
1147 | ||
1148 | Sat Feb 24 19:13:29 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
1149 | ||
1150 | * rs6000.md (movsf split): Fix typo in last patch. | |
1151 | ||
1152 | Sat Feb 24 10:02:55 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1153 | ||
1154 | * toplev.c (fatal_insn): Flush stdout/stderr. | |
1155 | ||
1156 | Sat Feb 24 02:03:28 1996 Jeffrey A. Law <law@cygnus.com> | |
1157 | ||
1158 | * pa.md (abssi2): Rework to avoid matching constraints. | |
1159 | ||
1160 | Fri Feb 23 11:21:43 1996 Jeffrey A. Law <law@cygnus.com> | |
1161 | ||
1162 | * pa.c (override_options): Warn if both PIC code generation and | |
1163 | profiling are requested. | |
1164 | ||
1165 | Fri Feb 23 08:47:38 1996 Richard Kenner (kenner at vlsi1) | |
1166 | ||
1167 | * expr.c (expand_builtin, case BUILT_IN_SETJMP): Set CONST_CALL_P | |
1168 | on NOTE_INSN_SETJMP instead of emitting USE insns for call-saved regs. | |
1169 | * reload1.c (reload): For special CONST_CALL_P NOTE_INSN_SETJMP, | |
1170 | mark all call-saved regs as used. | |
1171 | * sched.c (sched_analyze): Record NOTE_INSN_SETJMP if no | |
1172 | CALL_INSN as prev; preserve CONST_CALL_P bit. | |
1173 | (reemit_notes): Restore CONST_CALL_P. | |
1174 | ||
1175 | Thu Feb 22 17:45:12 1996 Doug Evans <dje@cygnus.com> | |
1176 | ||
1177 | * configure (sparclet-*-aout*): Set extra_headers. | |
1178 | * ginclude/inl-sparc.h: New file. | |
1179 | ||
1180 | Wed Feb 21 20:39:53 1996 Doug Evans <dje@cygnus.com> | |
1181 | ||
1182 | * configure (sparc64-*-solaris2*): Merge with sparc-*-solaris2*. | |
1183 | * sparc/sparc.h (enum processor_type): Declare. | |
1184 | (sparc_cpu_attr): Define. | |
1185 | (TARGET_OPTIONS): Add -mtune=. | |
1186 | (sparc_select): Declare. | |
1187 | (sparc_cpu_string): Delete. | |
1188 | (FIRST_PSEUDO_REGISTER): Set to 100. | |
1189 | ({FIXED,CALL_USED}_REGISTERS): Merge !v9/v9 cases. | |
1190 | (CONDITIONAL_REGISTER_USAGE): Mark %g5 as fixed if !v9. | |
1191 | Mark %g1 as fixed if v9. Fix v9-only regs if !v9. | |
1192 | Mark fp{16..47} as call-saved if v9. | |
1193 | (enum reg_class): Merge !v9/v9 cases. | |
1194 | (REG_CLASS_NAMES,REG_CLASS_CONTENTS,REGNO_REG_CLASS): Likewise. | |
1195 | (REG_ALLOC_ORDER,REG_LEAF_ALLOC_ORDER,LEAF_REGISTERS): Likewise. | |
1196 | (FP_REG_CLASS_P,SPARC_REGISTER_NAMES): Likewise. | |
1197 | (REG_CLASS_FROM_LETTER): Test TARGET_V9 at runtime. | |
1198 | * sparc/sparc.c (sparc_cpu_string): Delete. | |
1199 | (sparc_select): New global. | |
1200 | (sparc_override_options): Handle -mtune=xxx. | |
1201 | * sparc/sparc.md (cpu attr): Add sparc{lite,let} implementations. | |
1202 | * sparc/sp64-sol2.h: Deleted. | |
1203 | ||
1204 | * arm/arm.md (consttable_end): Delete call to text_section. | |
1205 | (align_4): Delete call to readonly_data_section. | |
1206 | ||
1207 | Wed Feb 21 14:29:06 1996 Ian Lance Taylor <ian@cygnus.com> | |
1208 | ||
1209 | * cplus-dem.c (demangle_template): Initialize is_bool. Correctly | |
1210 | handle 0 as a pointer value parameter. | |
1211 | ||
1212 | Wed Feb 21 14:13:29 1996 Jason Merrill <jason@yorick.cygnus.com> | |
1213 | ||
1214 | * tree.c (decl_function_context): Do decl_function_context right for | |
1215 | function-local classes. | |
1216 | ||
1217 | Wed Feb 21 12:42:52 1996 Jeffrey A. Law <law@cygnus.com> | |
1218 | ||
1219 | * c-typeck.c (initializer_constant_valid_p): Don't dereference | |
1220 | a null pointer on partial structure initialization. | |
1221 | ||
1222 | Wed Feb 21 11:49:58 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
1223 | ||
1224 | * rs6000/rs6000.h (ASM_OUTPUT_EXTERNAL): Append section info | |
1225 | even when verbatim symbol prefix '*' present. | |
1226 | * rs6000/aix3newas.h (ASM_OUTPUT_EXTERNAL): Same. | |
1227 | * rs6000/aix41.h (ASM_OUTPUT_EXTERNAL): Same. | |
1228 | * rs6000/powerpc.h (ASM_OUTPUT_EXTERNAL): Same. | |
1229 | * rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Same. | |
1230 | ||
1231 | Wed Feb 21 03:55:32 1996 Paul Eggert <eggert@twinsun.com> | |
1232 | ||
1233 | * cccp.c (validate_else): Don't loop given `#endif /'. | |
1234 | Handle multiple adjacent backslash-newlines correctly. | |
1235 | Accept a new parameter LIMIT to specify end of input; | |
1236 | this prevents confusion when the input contains '\0' characters. | |
1237 | ||
1238 | (collect_expansion): Fix off-by-1 error when searching for `*/' | |
1239 | at end of a comment used for traditional token concatenation. | |
1240 | ||
1241 | (macarg1): Fix off-by-1 error when skipping past `*/' | |
1242 | at end of comment. | |
1243 | ||
1244 | Tue Feb 20 16:12:31 1996 Doug Evans <dje@cygnus.com> | |
1245 | ||
1246 | * hard-reg-set.h (twice unrolled GO_IF_HARD_REG_EQUAL): Add missing \. | |
1247 | ||
1248 | Tue Feb 20 14:21:16 1996 Jeffrey A. Law <law@cygnus.com> | |
1249 | ||
1250 | * pa.h (DBX_CONTIN_LENGTH): Define to 4000 characters. | |
1251 | ||
1252 | * pa.c (hppa_expand_epilogue): Always emit a blockage insn | |
1253 | before cutting back the stack. | |
1254 | ||
1255 | Mon Feb 19 19:42:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com> | |
1256 | ||
1257 | * sparc/sparc.h (TARGET_SWITCHES): Add -m{,no-}impure-text. | |
1258 | (MASK_IMPURE_TEXT, TARGET_IMPURE_TEXT): Define. | |
1259 | (LINK_SPEC): Only add `-assert pure-text' if -mimpure-text wasn't used. | |
1260 | ||
1261 | Mon Feb 19 19:20:15 1996 Doug Evans <dje@canuck.cygnus.com> | |
1262 | ||
1263 | * configure (sparc-aout): sparc-aout.h renamed to aout.h. | |
1264 | (sparclet-aout): Likewise. | |
1265 | (sparclite-*-aout*): Renamed from sparclite-*-*. | |
1266 | Don't set use_collect2. | |
1267 | (target_cpu_default): Set to TARGET_CPU_<cpu> for sparc. | |
1268 | ||
1269 | * sparc/sparc.h (TARGET_CPU_sparc{,let,lite,64}): Define. | |
1270 | ({CPP,ASM}_DEFAULT_SPEC): Set from TARGET_CPU_foo. | |
1271 | (SPARC_ARCH64 CPP_PREDEFINES): Define __arch64__. | |
1272 | (CPP_SPEC): Add %(cpp_cpu). | |
1273 | (CPP_CPU_SPEC): Define. | |
1274 | (CC1_SPEC): Convert -m<cpu> to -mcpu=<cpu>. | |
1275 | (ASM_SPEC): Add %(asm_cpu). | |
1276 | (ASM_CPU_SPEC): Define. | |
1277 | (EXTRA_SPECS,SUBTARGET_EXTRA_SPECS): Define. | |
1278 | (OVERRIDE_OPTIONS): Call SUBTARGET_OVERRIDE_OPTIONS after | |
1279 | sparc_override_options. | |
1280 | ({MASK,TARGET}_SUPERSPARC): Delete. | |
1281 | ({MASK,TARGET}_SPARCLET): Define. | |
1282 | (MASK_ISA): Renamed from MASK_CPUS. | |
1283 | (TARGET_SWITCHES): Delete no-{v8,sparclite}. | |
1284 | (sparc_cpu,sparc_cpu_string): Declare. | |
1285 | ({SUB,}TARGET_OPTIONS): Define. | |
1286 | (FIXED_REGISTERS): Add definitions for sparc64 in 32 bit mode. | |
1287 | (CONDITIONAL_REGISTER_USAGE): Don't set fixed_regs[234] if sparc64. | |
1288 | Don't set call_used_regs[48..80] for sparc64 in 32 bit mode. | |
1289 | Don't clobber fixed_regs[234] if -ffixed- was passed. | |
1290 | (ADJUST_COST): Change test for supersparc. | |
1291 | * sparc/sparc.c (sparc_cpu_string,sparc_cpu): New globals. | |
1292 | (sparc_override_options): Set ISA and CPU from sparc_cpu_string. | |
1293 | Delete tests for v9 only switches if not v9. | |
1294 | Error if -mcpu=v9 and v9 support not compiled in. | |
1295 | * sparc/sol2.h (CPP_SPEC): Use %(cpp_cpu). | |
1296 | (ASM_SPEC): Likewise. | |
1297 | (ASM_{DEFAULT,CPU}_SPEC): Use Solaris syntax for sparc64. | |
1298 | * sparc/sysv4.h (ASM_SPEC): Add %(asm_cpu). | |
1299 | * sparc/t-sparcbare (MULTILIB_*): -mv8 renamed to -mcpu=v8. | |
1300 | * sparc/t-sparclite (MULTILIB_*): Delete msoft-float and mno-flat, | |
1301 | they're the defaults. Add -mcpu=f934 as synonym for -mfpu. | |
1302 | * ginclude/va-sparc.h (__arch64__): Renamed from __sparc_v9__. | |
1303 | ||
1304 | * sparc/lite.h: #include aoutos.h. | |
1305 | (TARGET_DEFAULT): Use MASK_FOO values. | |
1306 | * sparc/sp64-aout.h: #include aoutos.h. | |
1307 | (TARGET_DEFAULT): Add MASK_APP_REGS. | |
1308 | (JUMP_TABLES_IN_TEXT_SECTION,READONLY_DATA_SECTION): Delete. | |
1309 | * sparc/sp64-elf.h (TARGET_DEFAULT): Add MASK_APP_REGS. | |
1310 | (CPP_PREDEFINES): Define __arch64__. | |
1311 | * sparc/sp64-sol2.h (TARGET_DEFAULT, SUBTARGET_SWITCHES): Delete. | |
1312 | (ASM_SPEC): Delete. | |
1313 | ||
1314 | * sparc/sparc.h ({MASK,TARGET}_FRW): Delete. | |
1315 | (FRAME_POINTER_REQUIRED,INITIAL_FRAME_POINTER_OFFSET, | |
1316 | BASE_{INCOMING_ARG,OUTGOING_VALUE}_REG,INCOMING_REGNO,OUTGOING_REGNO, | |
1317 | FUNCTION_{PROLOGUE,EPILOGUE},DELAY_SLOTS_FOR_EPILOGUE): TARGET_FRW | |
1318 | renamed to TARGET_FLAT. | |
1319 | ||
1320 | * sparc/sparc.md (cpu attr): Add all cpu variants. | |
1321 | (negtf2,negdf2,abstf2,absdf2): Use isa attr, not arch attr, in | |
1322 | determining insn lengths. | |
1323 | ||
1324 | * sparc/aout.h: Renamed from sparc-aout.h. | |
1325 | (CPP_PREDEFINES): Delete __GCC_NEW_VARARGS__. | |
1326 | Add -Acpu(sparc) -Amachine(sparc). | |
1327 | ||
1328 | Mon Feb 19 17:49:08 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
1329 | ||
1330 | * rs6000.md (movsf split): Use SUBREG not operand_subword. | |
1331 | (movdf split): operand_subword TARGET_32BIT and new split using | |
1332 | SUBREG for TARGET_64BIT. | |
1333 | * rs6000.c (easy_fp_constant): Rewrite to not use operand_subword. | |
1334 | (input_operand): Remove final add_operand test made irrelevant by | |
1335 | Dec. 8 change. | |
1336 | (output_toc): Handle DImode values. | |
1337 | ||
1338 | Mon Feb 19 13:38:00 1996 Lee Iverson <leei@Canada.AI.SRI.COM> | |
1339 | ||
1340 | * i386/sol2.h (SWITCH_TAKES_ARG): Restore -R. | |
1341 | * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. | |
1342 | ||
1343 | Mon Feb 19 08:19:00 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1344 | ||
1345 | * hard-reg-set.h (HARD_REG macros): If there are more than | |
1346 | HOST_BITS_PER_WIDE_INT hard registers and less than or equal to | |
1347 | 4*HOST_BITS_PER_WIDE_INT hard registers, unroll the loops by hand. | |
1348 | ||
1349 | Mon Feb 19 07:35:07 1996 Torbjorn Granlund <tege@tmg.se> | |
1350 | ||
1351 | * rs6000.md (not:SI with assign and compare): Fix typo. | |
1352 | * (not:DI with assign and compare): Likewise. | |
1353 | ||
1354 | Mon Feb 19 07:17:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1355 | ||
1356 | * sparc.md (nonlocal_goto): No longer need USE of %o0. | |
1357 | (goto_handler_and_restore): Show uses %o0. | |
1358 | ||
1359 | * combine.c (force_to_mode, case IOR): Fix typo in commuting | |
1360 | IOR and LSHIFTRT. | |
1361 | ||
1362 | * alpha.c (call_operand): If in REG, only reg 27 valid. | |
1363 | ||
1364 | Mon Feb 19 06:57:34 1996 Richard Earnshaw (rearnsha@armltd.co.uk) | |
1365 | ||
1366 | * emit-rtl.c (operand_subword): For 32-bit targets, return | |
1367 | the appropriate subword of extended precision CONST_DOUBLEs. | |
1368 | ||
1369 | * arm.c (offsettable_memory_operand): New function. | |
1370 | (alignable_memory_operand): New function. | |
1371 | (gen_rotated_half_load): New function. | |
1372 | (get_arm_condition_code): Extract the mode of the comparison and | |
1373 | use it to generate the correct return value. | |
1374 | * arm.h (EXTRA_CC_MODES, EXTRA_CC_NAMES): Add CC_Zmode. | |
1375 | (SELECT_CC_MODE): return CC_Zmode if the operand is QImode. Allow LT | |
1376 | and GE comparisons in CC_NOOVmode. | |
1377 | (PREDICATE_CODES): add offsettable_memory_operand and | |
1378 | alignable_memory_operand. | |
1379 | * arm.md (*zeroextract[qs]i_compare0_scratch): Use const_int_operand | |
1380 | for operands 1 and 2. | |
1381 | (split patterns for aligned memory half-word operations): New patterns. | |
1382 | (movhi): Handle memory accesses where the alignment is known in a more | |
1383 | efficient manner. | |
1384 | (*compareqi_eq0): Use CC_Zmode. | |
1385 | ||
1386 | Mon Feb 19 05:34:08 1996 Jason Merrill <jason@phydeaux.cygnus.com> | |
1387 | ||
1388 | * toplev.c (lang_options): Add -W{no-,}sign-compare. | |
1389 | ||
1390 | * c-tree.h: Declare warn_sign_compare. | |
1391 | ||
1392 | * c-typeck.c (build_binary_op): Check warn_sign_compare rather | |
1393 | than extra_warnings to decide whether to warn about comparison of | |
1394 | signed and unsigned. | |
1395 | ||
1396 | * c-decl.c (c_decode_option): Handle warn_sign_compare. -Wall | |
1397 | implies -Wsign-compare. | |
1398 | ||
1399 | Sun Feb 18 21:13:44 1996 Pat Rankin (rankin@eql.caltech.edu) | |
1400 | ||
1401 | * c-lex.c (yylex, case '0'..'9','.'): For cases '0' and '1', | |
1402 | check for single digit constant before resorting to general | |
1403 | number processing. | |
1404 | ||
1405 | Sun Feb 18 19:29:44 1996 J.T. Conklin <jtc@netbsd.org> | |
1406 | ||
1407 | * m68k.h (TARGET_68060): New macro. | |
1408 | (TARGET_SWITCHES): Add -m68060. | |
1409 | * m68k.md (const_umulsi3_highpart): Disable for TARGET_M68060. | |
1410 | (ftruncdf2, ftruncsf2, muldf3, mulsidi3): Likewise. | |
1411 | (smulsi3_highpart, umulsi3_highpart, umulsidi3): Likewise. | |
1412 | ||
1413 | * {m68k,ns32k,sparc}/netbsd.h (DBX_NO_XREFS): Removed. | |
1414 | ||
1415 | Sun Feb 18 13:29:56 1996 Charles M. Hannum (mycroft@netbsd.org) | |
1416 | ||
1417 | * c-common.c (check_format_info): Warn about `L' if -pedantic. | |
1418 | ||
1419 | Fri Feb 16 20:13:23 1996 Paul Eggert <eggert@twinsun.com> | |
1420 | ||
1421 | * c-typeck.c (convert_for_assignment): | |
1422 | Bring back conversion to union without a cast, | |
1423 | undoing the Jan 16 change, but with the following differences: | |
1424 | ||
1425 | - The union must have the transparent_union attribute. | |
1426 | - The conversion must be for a function argument. | |
1427 | - Warn consistently about such conversions if pedantic. | |
1428 | - Do not warn about an assignment incompatibility for one union member | |
1429 | if another union member is compatible with no warning. | |
1430 | ||
1431 | Fri Feb 16 12:06:21 1996 Stan Cox <coxs@spiff.gnu.ai.mit.edu> | |
1432 | ||
1433 | * i386.c (ix86_*_binary_operator*): Allow CONST_INT as operand1 | |
1434 | of MINUS. | |
1435 | * i386/dgux.h (OPTIMIZATION_OPTIONS): Call optimization_options. | |
1436 | ||
1437 | Fri Feb 16 08:39:47 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1438 | ||
1439 | * configure: Change stdout report when have multiple files in | |
1440 | tm_file, host_xm_file, or build_xm_file. | |
1441 | (a29k-*-bsd): Use both a29k.h and unix.h. | |
1442 | (a29k-*-udi): Rename a29k-udi.h to udi.h; | |
1443 | use a29k.h, dbxcoff.h, and it. | |
1444 | (a29k-*-vxworks): Use a29k.h, dbxcoff.h, a29k/udi.h, and a29k/vx29k.h. | |
1445 | (alpha-dec-osf[23456789]*): Use alpha.h, not osf2.h. | |
1446 | (alpha-dec-osf1.2): Use alpha.h and alpha/osf12.h. | |
1447 | (alpha-*-osf*): Add explicit assignment of tm_file. | |
1448 | * a29k/udi.h: Renamed from a29k-udi.h. | |
1449 | Don't include a29k.h or dbxcoff.h. | |
1450 | * a29k/unix.h: Don't include a29k.h. | |
1451 | * a29k/vx29k.h: Don't include a29k-udi.h. | |
1452 | * alpha.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int. | |
1453 | * alpha/osf2.h: Deleted. | |
1454 | * alpha/osf12.h: Don't include alpha.h. | |
1455 | (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int. | |
1456 | * alpha/win-nt.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use short unsigned int. | |
1457 | ||
1458 | Thu Feb 15 18:26:04 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1459 | ||
1460 | * rs6000/ntstack.asm (__allocate_stack): Round up length to 16 | |
1461 | byte boundary. | |
1462 | ||
1463 | * rs6000.md (allocate_stack): On Windows NT, call set_sp to | |
1464 | indicate to CSE that the stack pointer changes with the call to | |
1465 | __allocate_stack. | |
1466 | (set_sp): New pattern. | |
1467 | ||
1468 | Thu Feb 15 16:49:15 1996 Jim Wilson <wilson@cygnus.com> | |
1469 | ||
1470 | * integrate.c (save_for_inline_copying): Allocate reg_map with size | |
1471 | based on regno_pointer_flag_length instead of max_reg+1. | |
1472 | ||
1473 | Thu Feb 15 07:48:34 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1474 | ||
1475 | * fixincludes (rpc/types.h): Remove spurious "ls" command. | |
1476 | ||
1477 | * reload1.c (eliminate_regs, case USE): If using a register that | |
1478 | is source of elimination, show can't be eliminated. | |
1479 | ||
1480 | * expr.c (expand_builtin, case BUILT_IN_SETJMP): Shows clobbers FP | |
1481 | and all caller-save registers. | |
1482 | Set current_function_has_nonlocal_goto. | |
1483 | ||
1484 | Wed Feb 14 13:51:55 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
1485 | ||
1486 | * rs6000.md (fix_truncdfsi2): Use SUBREG not operand_subword. | |
1487 | (movdi): Test HOST_BITS_PER_WIDE_INT at build time. | |
1488 | * collect2.c (scan_libraries): Append '/' to import path if missing. | |
1489 | ||
1490 | Wed Feb 14 09:01:55 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1491 | ||
1492 | * rs6000.md (movdi): Use HOST_WIDE_INT, not long long. | |
1493 | ||
1494 | Tue Feb 13 19:36:21 1996 Per Bothner <bothner@cygnus.com> | |
1495 | ||
1496 | * expr.c (store_constructor): Fix flow control thinko (merge error). | |
1497 | * expr.c (store_constructor): Pass correct value to recursive call. | |
1498 | ||
1499 | Wed Jan 31 11:34:45 1996 Mike Stump <mrs@cygnus.com> | |
1500 | ||
1501 | * expr.c (expand_expr, case TARGET_EXPR): We must always store | |
1502 | into the allocated slot for TAREGT_EXPRs. | |
1503 | ||
1504 | Tue Feb 13 18:27:05 1996 Philippe De Muyter <phdm@info.ucl.ac.be> | |
1505 | ||
1506 | * configure (powerpc-ibm-aix3): Look for 3.2.x, not 3.2x. | |
1507 | ||
1508 | * fixincludes (memory.h): Fix it also on sysV68. | |
1509 | ||
1510 | Tue Feb 13 17:59:03 1996 Lee Iverson <leei@Canada.AI.SRI.COM> | |
1511 | ||
1512 | * gcc.c (DEFAULT_SWITCH_TAKES_ARG): New macro, from SWITCH_TAKES_ARG. | |
1513 | (SWITCH_TAKES_ARG): Use it. | |
1514 | * i386/{osfrose,sol2}.h (SWITCH_TAKES_ARG): Likewise. | |
1515 | * mips/{gnu,mips}.h (SWITCH_TAKES_ARG): Likewise. | |
1516 | * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. | |
1517 | * config/svr4.h (SWITCH_TAKES_ARG): Likewise. | |
1518 | ||
1519 | Tue Feb 13 17:43:46 1996 Jim Wilson <wilson@cygnus.com> | |
1520 | ||
1521 | * integrate.c (save_constants_in_decl_trees): New function. | |
1522 | (save_for_inline_copying, save_for_inline_nocopy): Call it. | |
1523 | ||
1524 | Tue Feb 13 17:40:27 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
1525 | ||
1526 | * expr.c (convert_move): Fix typo in extendqfh2 case. | |
1527 | ||
1528 | * reload1.c (reload): Make some non-group code no longer | |
1529 | conditional on SMALL_REGISTER_CLASSES. | |
1530 | ||
1531 | Tue Feb 13 17:30:45 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
1532 | ||
1533 | * pdp11.c: #include flags.h | |
1534 | (output_function_prologue, function_epilogue): Remove declarations | |
1535 | of call_used_regs and frame_pointer_needed. | |
1536 | ||
1537 | * c-common.c (overflow_warning): Fix typo in warning message. | |
1538 | ||
1539 | * c-decl.c (finish_decl): TREE_ASM_WRITTEN says if duplicate_decls | |
1540 | modified declaration to match an outside file scope declaration. | |
1541 | ||
1542 | * stmt.c (expand_end_case): Don't use ADDR_DIFF_VEC for PIC if | |
1543 | ASM_OUTPUT_ADDR_DIFF_ELT is not defined. | |
1544 | * a29k.h, romp.h (ASM_OUTPUT_ADDR_DIFF_ELT): Remove. | |
1545 | ||
1546 | Tue Feb 13 13:36:36 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1547 | ||
1548 | * rs6000/cygwin32.h (CPP_PREDEFINES): Do not define PPC, just | |
1549 | define __PPC__. Also define _ARCH_PPC to be compatible with the | |
1550 | other rs6000/powerpc ports. | |
1551 | * rs6000/win-nt.h (CPP_PREDEFINES): Ditto. | |
1552 | ||
1553 | * rs6000/cygwin32.h (LIBGCC_SPEC): Don't define, always link in. | |
1554 | (SDB_DEBUGGING_INFO): Undef. | |
1555 | (DBX_DEBUGGING_INFO): Define. | |
1556 | (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG. | |
1557 | ||
1558 | * rs6000/t-{cygwin32,winnt} (MULTILIB*): Remove multilib support. | |
1559 | ||
1560 | * rs6000/x-cygwin32 (LANGUAGES): Delete, don't override. | |
1561 | ||
1562 | * rs6000/ntstack.asm: New file to provide __allocate_stack, which | |
1563 | guarantees all pages in a dynamically allocated stack frame are | |
1564 | touched in order, so that the stack is properly grown. | |
1565 | ||
1566 | * rs6000/cgywin32.asm: Delete unused file. | |
1567 | ||
1568 | * rs6000/t-{cygwin32,winnt} (LIB2FUNCS_EXTRA): Add ntstack.S | |
1569 | to libgcc2 build. | |
1570 | ||
1571 | * rs6000.md (allocate_stack): For NT, call __allocate_stack to | |
1572 | bump the stack if the size is large or variable. | |
1573 | ||
1574 | * libgcc1-test.c (mainCRTStartup,__start): New startup functions | |
1575 | to silence more linkers. | |
1576 | ||
1577 | Tue Feb 13 13:30:53 1996 Jim Wilson <wilson@cygnus.com> | |
1578 | ||
1579 | * expr.c (store_constructor_field): Only call change_address if | |
1580 | bitpos is nonzero. | |
1581 | ||
1582 | Tue Feb 13 08:21:01 1996 Fila Kolodny <fila@ibi.com> | |
1583 | ||
1584 | * i370/mvs.h (CPP_SPEC): Add '-trigraphs' because IBM's h files | |
1585 | contain them. | |
1586 | ||
1587 | Tue Feb 13 08:17:52 1996 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> | |
1588 | ||
1589 | * c-typeck.c (quality_type prototype): Typo, rename as | |
1590 | qualify_type. | |
1591 | (build_binary_op): Fix precedence errors. | |
1592 | * combine.c (force_to_mode, num_sign_bit_copies, simplify_comparison): | |
1593 | Fix precedence errors. | |
1594 | * emit-rtl.c (gen_lowpart): Could return without a value. | |
1595 | * jump.c (jump_optimize): Fix potential infinite loop. | |
1596 | * reg-stack.c (record_reg_life_pat): Fix precedence error. | |
1597 | * reload1.c (emit_reload_insns): Fix precedence errors. | |
1598 | * stmt.c (bc_pushcase): Fix precedence error. | |
1599 | ||
1600 | Mon Feb 12 23:14:02 1996 Jason Merrill <jason@yorick.cygnus.com> | |
1601 | ||
1602 | * toplev.c (rest_of_compilation): Also set RTX_INTEGRATED_P when | |
1603 | we aren't going to emit the inline just yet. | |
1604 | ||
1605 | Mon Feb 12 21:31:02 1996 Jim Wilson <wilson@cygnus.com> | |
1606 | ||
1607 | * rtl.h (INLINE_REGNO_POINTER_FLAG, INLINE_REGNO_POINTER_ALIGN): | |
1608 | Add one to array index. | |
1609 | ||
1610 | Mon Feb 12 20:55:39 1996 H.J. Lu (hjl@gnu.ai.mit.edu) | |
1611 | ||
1612 | * configure (i[345]86-*-linux*): Set tmake_file t-linux. | |
1613 | Add crtbeginS.o and crtendS.o to extra_parts. | |
1614 | * i386/linux.h (CC1, LIB_SPEC): Deleted. | |
1615 | * config/linux.h (STARTFILE_SPEC): Add crtbeginS.o if -shared. | |
1616 | (CC1_SPEC): New. | |
1617 | (LIB_SPEC): Remove %{mieee-fp:-lieee}; use -lc_p for -profile. | |
1618 | * config/t-linux: New file. | |
1619 | ||
1620 | Mon Feb 12 20:42:11 1996 Randy Smith <randys@camaro.osf.org> | |
1621 | ||
1622 | * i386/x-osfrose (XCFLAGS{,_NODEBUG}): Remove $(SHLIB). | |
1623 | (XCFLAGS): New variable. | |
1624 | (libdir, mandir, bindir): Delete. | |
1625 | * i386/t-osf: New file. | |
1626 | * i860/paragon.h (STARTFILE_SPEC): Make gcc find crt0.o, not loader. | |
1627 | (LIB_SPEC): Remove /usr/lib. | |
1628 | * Makefile.in (TCFLAGS): New variable. | |
1629 | (GCC_CFLAGS): Add $(TCFLAGS). | |
1630 | (LIBGCC2_CFLAGS): Add -D for __GCC_FLOAT_NOT_NEEDED. | |
1631 | (libgcc1-test): Remove -nostdlib. | |
1632 | (float.h-cross): Don't give error #ifdef __GCC_FLOAT_NOT_NEEDED. | |
1633 | * enquire.c: Define __GCC_FLOAT_NOT_NEEEDED. | |
1634 | * configure (i[3456]86-*-osfrose): Add t-osf as tmake_file. | |
1635 | ||
1636 | Mon Feb 12 18:43:54 1996 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) | |
1637 | ||
1638 | * 1750a.c (add_1_to_mem): Corrected. | |
1639 | ||
1640 | Mon Feb 12 18:23:35 1996 Doug Evans <dje@cygnus.com> | |
1641 | ||
1642 | * configure (sparclet-*-aout*): New configuration. | |
1643 | ||
1644 | Mon Feb 12 14:43:50 1996 Per Bothner <bothner@cygnus.com> | |
1645 | ||
1646 | Changes to distinguish typedef from original type in debug output. | |
1647 | * tree.h (DECL_ORIGINAL_TYPE): New macro. | |
1648 | * tree.c (copy_node): Zero out type.symtab union. | |
1649 | * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE for typedef origin. | |
1650 | * dbxout,c (dbxout_type): Don't canonicalize typedef type to base. | |
1651 | ||
1652 | Mon Feb 12 12:01:16 1996 Richard Earnshaw (rearnsha@armltd.co.uk) | |
1653 | ||
1654 | * arm/arm.h: (CPP_SPEC): Define __ARMEB__, __ARMEL__, and | |
1655 | __ARMWEL__ depending on the endian flags passed to the compiler. | |
1656 | (ARM_FLAG_LITTLE_WORDS): Define. | |
1657 | (TARGET_SWITCHES): Add option -mwords-little-endian. | |
1658 | (TARGET_LITTLE_WORDS): Define. | |
1659 | (WORDS_BIG_ENDIAN): Select based on the endian switches. | |
1660 | (LIBGCC2_WORDS_BIG_ENDIAN): Define based on run-time endian | |
1661 | defines. | |
1662 | * arm/arm.c (output_move_double): Cope with both word-endian | |
1663 | alternatives. Remove extraneous parameters from calls to | |
1664 | output_mov_immediate. | |
1665 | (arm_print_operand): New print code 'Q' for the least significant | |
1666 | register of a DImode operand. Make code 'R' always print the | |
1667 | most significant register, rather than the highest numbered. | |
1668 | * arm/arm.md (all DImode output patterns): Use print code | |
1669 | 'Q' to access the least significant word. Make sure the | |
1670 | patterns are fully aware of the word endianness. | |
1671 | ||
1672 | * arm/semi.h (CPP_SPEC): Define __ARMEB__, __ARMEL__, and | |
1673 | __ARMWEL__ depending on the endian flags passed to the compiler. | |
1674 | (LINK_SPEC): Pass -EB to the linker if compiling for big-endian | |
1675 | mode. | |
1676 | (ASM_SPEC): Likewise for the assembler. | |
1677 | * arm/semiaof.h (CPP_SPEC): Define __ARMEB__, __ARMEL__, and | |
1678 | __ARMWEL__ depending on the endian flags passed to the compiler. | |
1679 | ||
1680 | Mon Feb 12 10:15:29 1996 Ian Lance Taylor <ian@cygnus.com> | |
1681 | ||
1682 | * configure: Permit tm_file and xm_file to be a list of header | |
1683 | file names, rather than just a single file. For many targets, | |
1684 | handle --with-stabs by adding dbx.h to tm_file, rather than using | |
1685 | a different tm_file. | |
1686 | * dbx.h: New file. | |
1687 | * alpha/gdb-osf2.h: Remove. | |
1688 | * alpha/gdb-osf12.h: Remove. | |
1689 | * alpha/gdb.h: Remove. | |
1690 | * i386/sysv4gdb.h: Remove. | |
1691 | * mips/iris5gdb.h: Remove. | |
1692 | * mips/iris4gl.h: Remove. | |
1693 | * mips/iris4gdb.h: Remove. | |
1694 | * mips/iris3gdb.h: Remove. | |
1695 | * mips/dec-gosf1.h: Remove. | |
1696 | * mips/news4-gdb.h: Remove. | |
1697 | * mips/news5-gdb.h: Remove. | |
1698 | * mips/svr4-t-gdb.h: Remove. | |
1699 | * mips/ultrix-gdb.h: Remove. | |
1700 | * mips/bsd-5-gdb.h: Remove. | |
1701 | * mips/bsd-4-gdb.h: Remove. | |
1702 | * mips/svr4-5-gdb.h: Remove. | |
1703 | * mips/svr4-4-gdb.h: Remove. | |
1704 | * mips/svr3-5-gdb.h: Remove. | |
1705 | * mips/svr3-4-gdb.h: Remove. | |
1706 | * mips/mips-5-gdb.h: Remove. | |
1707 | * mips/ecoffl-gdb.h: Remove. | |
1708 | * mips/ecoff-gdb.h: Remove. | |
1709 | * mips/mips-4-gdb.h: Remove. | |
1710 | ||
1711 | Mon Feb 12 07:22:20 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1712 | ||
1713 | * integrate.c (save_for_inline_copying): Put virtual regs into | |
1714 | new regno_reg_rtx copy. | |
1715 | ||
1716 | Sun Feb 11 18:53:12 1996 Torbjorn Granlund <tege@noisy.tmg.se> | |
1717 | ||
1718 | * i386.md: Delete spurious integer subtract patterns. | |
1719 | Delete % from subtract operand constraints. | |
1720 | ||
1721 | Sun Feb 11 19:17:24 1996 Jeffrey A. Law <law@cygnus.com> | |
1722 | ||
1723 | * m68k.md (movqi): Call CC_STATUS_INIT when loading to/from | |
1724 | an address register via a data register. | |
1725 | ||
1726 | Sun Feb 11 08:44:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1727 | ||
1728 | * c-common.c (check_format_info): Handle missing type in format | |
1729 | when terminated by a new `%'. | |
1730 | ||
1731 | Sat Feb 10 15:14:22 1996 J.T. Conklin <jtc@rtl.cygnus.com> | |
1732 | ||
1733 | * cross-make (STMP_FIXPROTO): Moved from here to build-make. | |
1734 | * build-make (STMP_FIXPROTO): Moved here from cross-make. | |
1735 | ||
1736 | Sat Feb 10 08:39:05 1996 Oliver Kellogg (oliver.kellogg@space.otn.dasa.de) | |
1737 | ||
1738 | * 1750a.md (movstrqi): Corrected. | |
1739 | (zero_extendqihi2): Taken out, let GCC synthesize. | |
1740 | (movhi-1): Added insn to move HImode small constant to memory. | |
1741 | (movhf-1): Added insn to move HFmode zero to memory. | |
1742 | (movtqf-1): Added insn to move TQFmode zero to memory. | |
1743 | (numerous insns): Taken out B (Base Reg with Index) mode. | |
1744 | ||
1745 | * 1750a.c (movcnt_regno_adjust): Corrected. | |
1746 | (mov_memory_operand, zero_operand): Added. | |
1747 | (b_mode_operand): Corrected. | |
1748 | (simple_memory_operand, add_1_to_mem): Added. | |
1749 | (print_operand_address): Corrected case of 'Q' output modifier. | |
1750 | ||
1751 | * 1750a.h (REG_ALLOC_ORDER): Changed back to natural order. | |
1752 | (CONST_DOUBLE_OK_FOR_LETTER_P): Added letter 'G'. | |
1753 | (EXIT_IGNORE_STACK): Set to 0. | |
1754 | (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Use corresponding REGNO_OK. | |
1755 | (MOVE_MAX, MOVE_RATIO): Defined. | |
1756 | ||
1757 | Sat Feb 10 08:28:12 1996 Martin Anantharaman <martin@goofy.imech.uni-duisburg.de> | |
1758 | ||
1759 | * configure (m68k-*-psos*): New configuration. | |
1760 | * psos.h: New file. | |
1761 | * m68k/m68k-psos.h: New file. | |
1762 | ||
1763 | Sat Feb 10 08:07:52 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1764 | ||
1765 | * sched.c (flush_pending_lists): Add new arg, ONLY_WRITE. | |
1766 | (sched_analyze_{1,2,insn}): Add new arg to flush_pending_lists. | |
1767 | (sched_analyze): Always flush pending write list for call, even const. | |
1768 | ||
1769 | * integrate.c (save_for_inline_copying): Put reg_map in function's | |
1770 | maybepermanent obstack instead of using alloca; set regno_reg_rtx | |
1771 | to it; delete recently-added copying of this later. | |
1772 | ||
1773 | Sat Feb 10 00:49:58 1996 Doug Evans <dje@cygnus.com> | |
1774 | ||
1775 | * sched.c (add_dependence): Add test for next != CODE_LABEL. | |
1776 | ||
1777 | Fri Feb 9 16:10:04 1996 Stan Cox (coxs@dg-rtp.dg.com) | |
1778 | ||
1779 | * i386.md (fp, integer): Added function units for pentium. | |
1780 | (cmp*,mov*,add*,sub*,mul*,div*,extend*,trunc*,and*,ior*,xor*,neg*, | |
1781 | abs*,sqrt*,sin*,cos*,not*,ash*,lsh*,rot*,sub): Tightened constraints, | |
1782 | added attribute support, and made changes for new `binary' and | |
1783 | `unary' functions. | |
1784 | ||
1785 | * i386.c (processor_costs): New variable. | |
1786 | (optimization_options, ix86_expand_binary_operator, | |
1787 | ix86_binary_operator_ok, ix86_expand_unary_operator, | |
1788 | ix86_unary_operator_ok, is_mul, is_div, copy_all_rtx, rewrite_address, | |
1789 | last_to_set_cc, doesnt_st_condition_code, sets_condition_code, | |
1790 | str_immediate_operand, is_fp_insn, is_fp_dest, is_fp_store, | |
1791 | agi_dependent, reg_mentioned_in_mem): New functions. | |
1792 | ||
1793 | * i386/i386.h (OPTIMIZATION_OPTIONS, ALIGN_DFmode, IS_STACK_MODE, | |
1794 | IX86_EXPAND_BINARY_OPERATOR): New macros. | |
1795 | (RTX_COSTS, REGISTER_MOVE_COST, ADJUST_BLOCKAGE) Changed for pentium. | |
1796 | ||
1797 | Fri Feb 9 14:47:27 1996 Doug Evans <dje@cygnus.com> | |
1798 | ||
1799 | * sparc.c (sp64_medium_pic_operand): New function. | |
1800 | (move_pic_label): Delete. | |
1801 | (legitimize_pic_address): Simplify using some named patterns. | |
1802 | (finalize_pic): Add preliminary sparc64 support. | |
1803 | (emit_move_sequence): Reorganize. | |
1804 | * sparc.md (pic_lo_sum_si,pic_sethi_si,get_pc_sp32,get_pc_sp64, | |
1805 | move_pic_label_si,move_label_di,sethi_di_sp64): Make named patterns. | |
1806 | (sethi_di_sp64_const,sethi_di_medium_pic): New anonymous patterns. | |
1807 | (move_pic_label_si,move_label_di): Optimize for near labels. | |
1808 | (tablejump): Use for TARGET_MEDANY. | |
1809 | (casesi): Delete. | |
1810 | ||
1811 | Fri Feb 9 13:48:45 1996 Jim Wilson <wilson@cygnus.com> | |
1812 | ||
1813 | * mips.md (probe+2, probe+4): New conditional move patterns. | |
1814 | (movsicc): Don't truncate comparison if it is DImode. | |
1815 | ||
1816 | * sh.h (CPP_SPEC): Add defines for -m1, -m2, and -m3. | |
1817 | ||
1818 | Fri Feb 9 09:11:28 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1819 | ||
1820 | * toplev.c (rest_of_compilation): Set RTX_INTEGRATED_P in | |
1821 | INLINE_HEADER iff function is inlineable. | |
1822 | * calls.c (expand_call): Test RTX_INTEGRATED_P in DECL_SAVED_INSNS. | |
1823 | ||
1824 | Thu Feb 8 01:11:15 1996 Jeffrey A. Law <law@cygnus.com> | |
1825 | ||
1826 | * pa.md (floatunssisf2 expander): Don't use "general_operand". | |
1827 | (floatunssidf2 expander): Likewise. | |
1828 | ||
1829 | Wed Feb 7 16:59:31 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1830 | ||
1831 | * rs6000/{sysv4,win-nt,netware,cygwin32}.h ({ASM,LINK}_SPEC): | |
1832 | Don't use %{V} for either linker or assembler. | |
1833 | ||
1834 | Tue Feb 6 17:22:29 1996 Per Bothner <bothner@cygnus.com> | |
1835 | ||
1836 | * dbxout.c (dbxout_range_type): Emit non-range INTEGER_TYPE | |
1837 | as a sub-range of itself (so gdb can tell the difference). | |
1838 | ||
1839 | Tue Feb 6 17:01:44 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
1840 | ||
1841 | * rs6000.md (addsi3 and adddi3 split): Use cleaner computation | |
1842 | and portable HOST_WIDE_INT. | |
1843 | (iordi3 split): Use HOST_WIDE_INT. | |
1844 | (movdi): Add TARGET_64BIT support and generate 64 bit constants. | |
1845 | (movdi matcher, TARGET_POWERPC64): Add immediate constraint handled | |
1846 | by new define_split. | |
1847 | (allocate_stack): Use TARGET_32BIT. | |
1848 | (tablejump): Add TARGET_64BIT support using ... | |
1849 | (tablejumpsi): Rename original tablejump pattern. | |
1850 | (tablejumpdi): New pattern. | |
1851 | ||
1852 | Tue Feb 6 15:29:22 1996 Per Bothner <bothner@cygnus.com> | |
1853 | ||
1854 | * stor-layout.c (layout_type): Use same code to layout CHAR_TYPE | |
1855 | as for INTEGER_TYPE (instead of hard-wiring in QImode). | |
1856 | ||
1857 | Tue Feb 6 15:13:38 1996 Jeffrey A. Law <law@cygnus.com> | |
1858 | ||
1859 | * pa.md (various patterns): Avoid using "general operand" in | |
1860 | define_insn patterns. | |
1861 | ||
1862 | Sun Feb 4 21:37:05 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1863 | ||
1864 | * rs6000/eabi{,sim}.h (LINK_START_SPEC): Bump the default start address | |
1865 | for the simulator to 0x10000074 so that we don't waste a page in the | |
1866 | linked file. | |
1867 | ||
1868 | Fri Feb 2 19:44:10 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
1869 | ||
1870 | * rs6000/eabi-c{i,n}.asm (.sdata2, .sbss2): Put these in the | |
1871 | read-only section, not read-write. | |
1872 | ||
1873 | * libgcc2.c (__unwind_function, rs6000/powerpc): Use _ARCH_PPC | |
1874 | being defined to indicate to use PowerPC mnemonics. | |
1875 | ||
1876 | * config/rs6000/t-cygwin32 (MULTILIB*): Add software floating | |
1877 | point support. | |
1878 | ||
1879 | Thu Feb 1 09:10:02 1996 Steve Chamberlain <sac@slash.cygnus.com> | |
1880 | ||
1881 | * config/{i386,rs6000}/cygwin32.{asm,h}: New templates. | |
1882 | * config/{i386,rs6000}/{t,x}-cygwin32: Ditto. | |
1883 | * config/{i386,rs6000}/xm-cygwin32.h: Ditto. | |
1884 | * configure.in (powerpcle-*-cygwin32, i[3456]86-*-cygwin32): New. | |
1885 | ||
1886 | Fri Feb 2 17:42:40 1996 Paul Eggert <eggert@twinsun.com> | |
1887 | ||
1888 | * c-decl.c (finish_struct): | |
1889 | Fix typo in transparent union warning that led to core dump. | |
1890 | ||
1891 | * c-parse.in (stmt): Warn about `goto *expr;' if pedantic. | |
1892 | (label): Warn about `case expr ... expr:' if pedantic. | |
1893 | ||
1894 | Fri Feb 2 11:05:27 1996 Doug Evans <dje@cygnus.com> | |
1895 | ||
1896 | * h8300/h8300.h (TARGET_ALIGN_300): Renamed from | |
1897 | TARGET_ALIGN_STRUCT_300. | |
1898 | (TARGET_SWITCHES): Rename -malign-struct-300 to -malign-300. | |
1899 | (BIGGEST_ALIGNMENT): Use TARGET_ALIGN_300. | |
1900 | ||
1901 | Fri Feb 2 08:25:49 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1902 | ||
1903 | * flow.c (jmp_uses_reg_or_mem): Renamed from uses_reg_or_mem. | |
1904 | Don't look into condition of an IF_THEN_ELSE; also make faster. | |
1905 | (find_basic_blocks): Use new name. | |
1906 | ||
1907 | Fri Feb 2 06:49:56 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
1908 | ||
1909 | * reload.c (debug_reload): Fix typo for reload_noncombine. | |
1910 | ||
1911 | Thu Feb 1 21:49:02 1996 Jeffrey A. Law <law@cygnus.com> | |
1912 | ||
1913 | * pa-pro.h (TARGET_DEFAULT): Turn on TARGET_SOFT_FLOAT by | |
1914 | default for all pro targets. | |
1915 | * t-pro: Delete all multilib references. | |
1916 | ||
1917 | Thu Feb 1 17:50:02 1996 Doug Evans <dje@cygnus.com> | |
1918 | ||
1919 | * c-lex.c (check_newline): Return result of HANDLE_PRAGMA. | |
1920 | * h8300/h8300.h (HANDLE_PRAGMA): Pass result back to caller. | |
1921 | * i960/i960.h (HANDLE_PRAGMA): Likewise. | |
1922 | * sh/sh.h (HANDLE_PRAGMA): Likewise. | |
1923 | * nextstep.h (HANDLE_PRAGMA): Likewise. | |
1924 | ||
1925 | Wed Jan 31 19:26:03 1996 Doug Evans <dje@cygnus.com> | |
1926 | ||
1927 | * m68k/m68k-none.h: Rewrite to use EXTRA_SPECS. | |
1928 | * m68k/vxm68k.h (CPP_SPEC): Delete. | |
1929 | (SUBTARGET_EXTRA_SPECS): Define. | |
1930 | ||
1931 | Wed Jan 31 15:10:59 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
1932 | ||
1933 | * rs6000.c (output_epilog): Fix PPC64 typos and use TARGET_32BIT. | |
1934 | (output_prolog): Same. | |
1935 | (rs6000_trampoline_template, rs6000_trampoline_size): Use TARGET_32BIT. | |
1936 | * rs6000.md (movdf TARGET_POWERPC64 matcher): Fix std typo. | |
1937 | (movdi TARGET_POWERPC64 matcher): Same. | |
1938 | ||
1939 | Wed Jan 31 09:46:11 1996 Richard Earnshaw (rearnshaw@armltd.co.uk) | |
1940 | ||
1941 | * regs.h (regno_pointer_align, REGNO_POINTER_ALIGN): Delete from | |
1942 | here... | |
1943 | * rtl.h (regno_pointer_align, REGNO_POINTER_ALIGN): ... and put | |
1944 | them here. | |
1945 | ||
1946 | Wed Jan 31 08:26:12 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) | |
1947 | ||
1948 | * m68k/linux.h (STRICT_ALIGNMENT): Define to zero. | |
1949 | (LEGITIMATE_PIC_OPERAND_P): Match definition from m68kv4.h. | |
1950 | ||
1951 | * m68k.h (TRAMPOLINE_{TEMPLATE,SIZE}): Avoid need for helper function. | |
1952 | (INITIALIZE_TRAMPOLINE): Likewise. | |
1953 | (TRAMPOLINE_ALIGNMENT): Renamed from TRAMPOLINE_ALIGN. | |
1954 | * m68k/next.h (INITIALIZE_TRAMPOLINE): Adjusted accordingly. | |
1955 | ||
1956 | * m68kv4.h (STATIC_CHAIN_REGNUM): Redefine to use register a1. | |
1957 | (TRAMPOLINE_TEMPLATE): Likewise. | |
1958 | ||
1959 | * m68k/linux.h, m68kv4.h (LIBCALL_VALUE): Return XFmode value in fp0. | |
1960 | * m68k.c (init_68881_table): Use SFmode for the first six | |
1961 | constants and DFmode for the seventh. | |
1962 | ||
1963 | * m68k.md (movqi): Use moveq if possible. | |
1964 | ||
1965 | Wed Jan 31 08:18:15 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1966 | ||
1967 | * expr.c (expand_builtin, case BUILT_IN_NEXT_ARG): Strip off | |
1968 | INDIRECT_REF when checking second arg. | |
1969 | ||
1970 | * calls.c (struct arg_data, expand_call): Test STRICT_ALIGN with #if. | |
1971 | ||
1972 | Wed Jan 31 07:47:56 1996 Tim Wright (timw@sequent.com) | |
1973 | ||
1974 | * configure (i[345]-sequent-sysv*): Change to sysv3*; add i686. | |
1975 | (i[3456]86-sequent-ptx4*, i[3456]86-sequent-sysv4*): New cases. | |
1976 | * fixinc.ptx (sys/mc_param.h): Remove embedded asm. | |
1977 | * fixinc.svr4 (__STDC__): Add one more case. | |
1978 | * i386/ptx4-i.h, ptx4.h: New files. | |
1979 | ||
1980 | Wed Jan 31 07:15:23 1996 Philippe De Muyter (phdm@info.ucl.ac.be) | |
1981 | ||
1982 | * m68k.h (MACHINE_STATE_{SAVE,RESTORE}): Allow MOTOROLA syntax. | |
1983 | ||
1984 | * m68k.md ({adddi,subdi}_sexthishl32): 'a' and 'd' versions merged | |
1985 | and fixed; do not generate 'add/sub a,m'. | |
1986 | ||
1987 | * gcc.c (warn_std_ptr): Initialize with 0 instead of NULL_PTR. | |
1988 | ||
1989 | Tue Jan 30 13:29:05 1996 Ian Lance Taylor <ian@cygnus.com> | |
1990 | ||
1991 | * dbxout.c: Don't include <string.h>. Don't compare strchr result | |
1992 | to NULL. | |
1993 | ||
1994 | * config/svr4.h (ASM_FINAL_SPEC): Use %|, not ${pipe:-}. | |
1995 | ||
1996 | Tue Jan 30 06:48:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
1997 | ||
1998 | * combine.c (nonzero_bits, case REG): Ignore REG_POINTER_ALIGNMENT. | |
1999 | Restore old code for SP, but use it for all pointers to | |
2000 | defined locations in the frame. | |
2001 | ||
2002 | Mon Jan 29 11:25:28 1996 Ian Lance Taylor <ian@cygnus.com> | |
2003 | ||
2004 | * dbxout.c (dbxout_type_methods): Don't use #ifndef inside call to | |
2005 | strchr. | |
2006 | ||
2007 | Sun Jan 28 14:44:09 1996 Doug Evans <dje@cygnus.com> | |
2008 | ||
2009 | * config/dbxcoff.h (*): #undef first. | |
2010 | ||
2011 | Sat Jan 27 21:46:16 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
2012 | ||
2013 | * rs6000.c (rs6000_sync_trampoline): Add cmpdi to 64bit case. | |
2014 | (rs6000_initialize_trampoline): CSE of Pmode to pmode. | |
2015 | * rs6000.md (movdf): Handle move between FPR and 64 bit GPR. | |
2016 | (movdi matcher): Handle SPR move to itself and add "mr." combiner. | |
2017 | ||
2018 | Sat Jan 27 10:06:31 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2019 | ||
2020 | * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Redefine, put small | |
2021 | data items in .sbss if -msdata. | |
2022 | (SWITCH_TAKES_ARG): Add 'B', 'b', and 'V'. | |
2023 | ||
2024 | Sat Jan 27 07:59:25 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
2025 | ||
2026 | * tree.h (enum built_in_function): Add BUILT_IN_{SET,LONG}JMP. | |
2027 | * expr.c: Include hard-reg-set.h. | |
2028 | (arg_pointer_save_area): New declaration. | |
2029 | (expand_builtin, case BUILT_IN_{SET,LONG}JMP): New cases. | |
2030 | * Makefile.in (expr.o): Includes hard-reg-set.h. | |
2031 | * c-decl.c (init_decl_processing): Add definitions for | |
2032 | __builtin_setjmp and __builtin_longjmp. | |
2033 | * cccp.c (initialize_builtins): Add def of __HAVE_BUILTIN_SETJMP__. | |
2034 | ||
2035 | * expr.c (expand_expr, case COMPONENT_REF): Pass EXPAND_INITIALIZER | |
2036 | to recursive call. | |
2037 | ||
2038 | Fri Jan 26 17:24:07 1996 Doug Evans <dje@cygnus.com> | |
2039 | ||
2040 | * sparc.h (sparc_arch_type): Delete. | |
2041 | ({,TARGET_}MASK_DEPRECATED_V8_INSNS): Define. | |
2042 | (ARCH64_SWITCHES): Renamed from V9_SWITCHES. | |
2043 | * sparc.c (sparc_arch_type): Delete. | |
2044 | (sparc_init_modes): Likewise. | |
2045 | (output_move_quad): Don't use ldq/stq unless TARGET_HARD_QUAD. | |
2046 | * sparc/sp64-sol2.h (TARGET_DEFAULT): Add MASK_DEPRECATED_V8_INSNS. | |
2047 | (SUBTARGET_SWITCHES): Add -m{no-,}deprecated-v8-insns. | |
2048 | * sparc.md (arch attribute): Rewrite. | |
2049 | (isa): New attribute. | |
2050 | (32 bit multiply/divide patterns): Use if TARGET_DEPRECATED_V8_INSNS. | |
2051 | (32 bit divide patterns): V9 doesn't require delay after y reg write. | |
2052 | ||
2053 | Fri Jan 26 12:08:43 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
2054 | ||
2055 | * rs6000.h (TARGET_32BIT): Define. | |
2056 | (BITS_PER_WORD, UNITS_PER_WORD): Invert so 32bit expected case. | |
2057 | (LONG_TYPE_SIZE, POINTER_BOUNDARY, PARM_BOUNDARY): Likewise. | |
2058 | (RS6000_REG_SAVE, RS6000_SAVE_AREA, RS6000_VARARGS_SIZE): Likewise. | |
2059 | (RETURN_ADDRESS_OFFSET, CASE_VECTOR_MODE, MOVE_MAX): Likewise. | |
2060 | (Pmode, FUNCTION_MODE): Likewise. | |
2061 | (LEGITIMATE_OFFSET_ADDRESS_P): Handle TARGET_64BIT. | |
2062 | (GO_IF_LEGITIMATE_ADDRESS, LEGITIMIZE_ADDRESS): Likewise. | |
2063 | (GO_IF_MODE_DEPENDENT_ADDRESS): Same. | |
2064 | ||
2065 | Fri Jan 26 10:37:52 1996 Stan Coxs <coxs@dg-rtp.dg.com> | |
2066 | ||
2067 | * m88k.md (umulsidi3): Added for the 88110 | |
2068 | ||
2069 | Fri Jan 26 09:35:42 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2070 | ||
2071 | * rs6000/sysv4.h (STRIP_NAME_ENCODING): Deal with names that have | |
2072 | both @ and * prefix characters. | |
2073 | (ASM_OUTPUT_LABELREF): Ditto. | |
2074 | ||
2075 | Thu Jan 25 10:03:34 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2076 | ||
2077 | * rs6000.h (LEGITIMIZE_ADDRESS): Rewrite to use HOST_WIDE_INT, not | |
2078 | plain int. | |
2079 | (optimize,flag_expensive_optimizations): Provide declaration for | |
2080 | expander functions. | |
2081 | ||
2082 | * rs6000.md (movsi): Correct code in splitting an address into | |
2083 | load from the TOC, and add low/high integer parts. If expensive | |
2084 | optimizations, and reload hasn't started, use separate pseudo regs | |
2085 | for each step. | |
2086 | ||
2087 | * rs6000.c (small_data_operand): Don't use the function | |
2088 | eliminate_constant_term, unwind code directly. | |
2089 | (input_operand): SYMBOL_REF/CONST of small data operand is valid. | |
2090 | (print_{,address_}operand): Add @sda21(0) in appropriate cases for | |
2091 | small data. | |
2092 | %L, etc. so that if the item is in small memory, the appropriate | |
2093 | relocation is used. | |
2094 | (rs6000_select{,_rtx}_section): Don't put floating point constants | |
2095 | or small strings in .sdata2 since we can't tell from the pointer | |
2096 | whether it is in the small data area or not. | |
2097 | ||
2098 | * rs6000.h (EXTRA_CONSTRAINT): Add 'U' for small data references. | |
2099 | (LEGITIMATE_SMALL_DATA_P): Test explicitly for SYMBOL_REF or CONST | |
2100 | before calling small_data_operand. | |
2101 | ||
2102 | * rs6000.md (movsi): Handle the addresses of small data items. | |
2103 | ||
2104 | * rs6000/sysv4.h (g_switch_{value,set}): Add declarations. | |
2105 | (SDATA_DEFAULT_SIZE): Default to 8. | |
2106 | (SUBTARGET_OVERRIDE_OPTIONS): If -G was not set, set it to | |
2107 | SDATA_DEFAULT_SIZE. | |
2108 | (CC1_SPEC): Pass -G nn to the compilers. | |
2109 | (SWITCH_TAKES_ARG): Add -G nn support. | |
2110 | (LINK_SPEC): Pass -G nn to the linker. | |
2111 | ||
2112 | Thu Jan 25 09:16:34 1996 Doug Evans <dje@cygnus.com> | |
2113 | ||
2114 | * configure (sparc64-*-solaris2*): New target. | |
2115 | * sparc/sparc.h (SPARC_{V9,ARCH64}): Default value is 0. | |
2116 | (*): Replace SPARCV9 with SPARC_{V9,ARCH64}. | |
2117 | (MASK_CPUS): Define. | |
2118 | ({MASK,TARGET}_ENV32): Delete. | |
2119 | ({MASK,TARGET}_ARCH64,TARGET_ARCH32): Define. | |
2120 | (TARGET_SWITCHES): Reset cpu flags first for each variant. | |
2121 | (CONDITIONAL_REGISTER_USAGE): If 32 bit v9 system, unfix g1-g4, | |
2122 | fix g5, and make %f48-%f80 call used. | |
2123 | * sparc/sp64-aout.h (SPARC_{V9,ARCH64}): Define. | |
2124 | (TARGET_VERSION): Define. | |
2125 | (TARGET_DEFAULT): Add MASK_ARCH64, delete MASK_ENV32. | |
2126 | (JUMP_TABLES_IN_TEXT_SECTION): Define. | |
2127 | (READONLY_DATA_SECTION): Make text_section. | |
2128 | * sparc/sp64-elf.h (SPARC_{V9,ARCH64}): Define. | |
2129 | (TARGET_DEFAULT): Add MASK_ARCH64. | |
2130 | (ENDFILE_SPEC): No longer need to check for -nostartfiles. | |
2131 | (ASM_IDENTIFY_GCC): Define as empty. | |
2132 | * sparc/sp64-sol2.h: New file. | |
2133 | * sparc/sparc.c (*): Replace TARGET_V9 with TARGET_ARCH64. | |
2134 | (hard_32bit_mode_classes): Add v9 regs. | |
2135 | (gen_v9_scc): Handle 32 bit v9 case. Call v9_regcmp_p. | |
2136 | * sparc/sparc.md (*): Replace TARGET_V9 with TARGET_ARCH64 in places | |
2137 | requiring 64 bit environment. | |
2138 | (multf3_extend): Require TARGET_HARD_QUAD. | |
2139 | ||
2140 | Thu Jan 25 00:33:25 1996 Ian Lance Taylor <ian@cygnus.com> | |
2141 | ||
2142 | * config/dbxcoff.h (DBX_USE_BINCL): Define. | |
2143 | (DBX_CONTIN_LENGTH): Define if not defined. | |
2144 | ||
2145 | Wed Jan 24 18:00:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> | |
2146 | ||
2147 | * alpha.c (alpha_write_verstamp): Only emit MS_STAMP and LS_STAMP, | |
2148 | not the extra numbers. | |
2149 | ||
2150 | Wed Jan 24 15:18:15 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2151 | ||
2152 | * rs6000.c (init_cumulative_args): Rewrite to use DEFAULT_ABI | |
2153 | runtime tests, instead of V.4 #ifdefs. | |
2154 | (function_arg{,_advance,_partial_nregs,_pass_by_reference}): Ditto. | |
2155 | (setup_incoming_varargs): Ditto. | |
2156 | (init_cumulative_args): Set call_cookie field to CALL_NORMAL or | |
2157 | CALL_NT_DLLIMPORT. | |
2158 | (function_arg): Add support for DLL imports. | |
2159 | (rs6000_valid_{decl,type}_attribute_p): New functions for NT | |
2160 | attributes cdecl, stdcall, dllimport, and dllexport. | |
2161 | (rs6000_comp_type_attributes): New attribute support. | |
2162 | (rs6000_set_default_type_attributes): Ditto. | |
2163 | (rs6000_dll_import_ref): Ditto. | |
2164 | ||
2165 | * rs6000.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move here from sysv4.h. | |
2166 | * sysv4.h (FP_ARG_{AIX,SYSV}_MAX_REG): Move to rs6000.h. | |
2167 | ||
2168 | * rs6000.h (rs6000_call_cookie): New enum to describe the integer | |
2169 | that is the 2nd argument to call insns and 3rd argument to | |
2170 | call_value insns. Add support for NT DLL imports. | |
2171 | (rs6000_args): Add call_cookie field. | |
2172 | (VALID_MACHINE_{DECL,TYPE}_ATTRIBUTE): Define to call C functions. | |
2173 | ({COMP_TYPE,SET_DEFAULT_TYPE}_ATTRIBUTES): Ditto. | |
2174 | (rs6000_valid_{decl,type}_attribute_p): Add declarations. | |
2175 | (rs6000_comp_type_attributes): Ditto. | |
2176 | (rs6000_set_default_type_attributes): Ditto. | |
2177 | (rs6000_dll_import_ref): Ditto. | |
2178 | ||
2179 | * win-nt.h (ASM_DECLARE_FUNCTION_NAME): Add support for dllexport | |
2180 | attribute. | |
2181 | ||
2182 | * rs6000.md (call insns): Add support for NT dllimport functions, | |
2183 | and fix up NT indirect calls. Also correctly set the flag | |
2184 | rs6000_save_toc_p on NT indirect calls. | |
2185 | ||
2186 | * aix41.h (LINK_SPEC): Use new extra specs to avoid separate | |
2187 | versions for native and cross compilation. | |
2188 | * rs6000.h (LINK_SPEC): Ditto. | |
2189 | * sysv4.h (LINK_SPEC): Ditto. | |
2190 | ||
2191 | * rs6000.h (EXTRA_SPECS): Add link_syscalls, link_libg, link_path, | |
2192 | link_specs, and also allow target to define more with the macro | |
2193 | SUBTARGET_EXTRA_SPECS. | |
2194 | (LINK_{LIBG,SYSCALLS}_SPEC): Define as fixed pathnames if native | |
2195 | compilation, and currently nothing if cross compiling. | |
2196 | (LINK_START_SPEC): If not defined, define as empty. | |
2197 | * eabi{,sim}.h (LINK_START_SPEC): Add default -Ttext for | |
2198 | simulator. | |
2199 | ||
2200 | * eabi{aix,le}.h (MULTILIB_DEFAULTS): Add -mno-sdata default. | |
2201 | * sysv4{,le}.h (MULTILIB_DEFAULTS): Ditto. | |
2202 | ||
2203 | * rs6000.c (small_data_operand): New function to return true if | |
2204 | the operand lives in small data under eabi. | |
2205 | (rs6000_select{,_rtx}_section): New functions to determine whether | |
2206 | to put global and static items in the V.4/eabi small data areas if | |
2207 | -msdata. | |
2208 | ||
2209 | * rs6000.h (LEGITIMATE_SMALL_DATA_P): Call small_data_operand it | |
2210 | if V.4. | |
2211 | (GO_IF_LEGITIMATE_ADDRESS): If LEGITIMATE_SMALL_DATA_P, the item | |
2212 | is a valid address. | |
2213 | (ASM_OUTPUT_LABELREF): Use fputs, not fprintf. | |
2214 | (small_data_operand): Declare function. | |
2215 | ||
2216 | * sysv4.h (TARGET_SWITCHES): New switch -msdata to use V.4 and | |
2217 | eabi defined small data sections. | |
2218 | (SUBTARGET_OVERRIDE_OPTIONS): Don't allow -msdata and | |
2219 | -mrelocatable or -mcall-aix options. | |
2220 | (EXTRA_SECTION{S,_FUNCTIONS}): Add .sdata, .sdata2, and .sbss | |
2221 | sections. | |
2222 | (SELECT{,_RTX}_SECTION): Call (rs6000_select{,_rtx}_section). | |
2223 | (ASM_SPEC): The -msdata switch passes -memb to the assembler. | |
2224 | (ENCODE_SECTION_INFO): Prepend a '@' to the name, if the item | |
2225 | lives in a small data region. | |
2226 | (STRIP_NAME_ENCODING): Strip '@' in addition to '*'. | |
2227 | (ASM_OUTPUT_LABELREF): Strip a leading '@'. | |
2228 | ||
2229 | * t-{ppc,eabi}gas (MULTILIB*): Add support for libraries built | |
2230 | with/without -msdata. Drop support for -mcall-aixdesc libraries. | |
2231 | ||
2232 | Wed Jan 24 15:18:15 1996 Kim Knuttila <krk@cygnus.com> | |
2233 | ||
2234 | * config/rs6000/win-nt.h (LIB_SPEC): Change options to GNU ld style. | |
2235 | (From Jason Molenda) | |
2236 | ||
2237 | Wed Jan 24 14:32:48 1996 Jim Wilson <wilson@cygnus.com> | |
2238 | ||
2239 | * reload1.c (used_spill_regs): New variable. | |
2240 | (reload): Set it. | |
2241 | * reorg.c (find_dead_or_set_registers): New function. | |
2242 | (mark_target_live_regs): Delete loop looking forward from target | |
2243 | and instead call find_dead_or_set_registers. | |
2244 | (fix_reg_dead_note): New function. | |
2245 | (fill_slots_from_thread): Call it. | |
2246 | ||
2247 | * loop.c (scan_loop): Correct comment. | |
2248 | (strength_reduce): Correct comments. Don't set maybe_multiple when | |
2249 | pass branch to scan_start. Don't set not_every_iteration after | |
2250 | passing a CODE_LABEL, or after passing a branch out of the loop. | |
2251 | When outputting DEST_ADDR giv increments, put them next to the memory | |
2252 | address on machines with auto-increment addresses. | |
2253 | (record_biv): Set new field always_executed. | |
2254 | (record_giv): Set new fields always_executed and auto_inc_opt. | |
2255 | (maybe_eliminate_biv_1): Reject biv with auto_inc_opt optimization | |
2256 | in some cases. | |
2257 | * loop.h (struct induction): New fields always_executed and | |
2258 | auto_inc_opt. | |
2259 | ||
2260 | * c-typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not | |
2261 | POINTER_SIZE to agree with expr.c. | |
2262 | ||
2263 | Tue Jan 23 15:17:30 1996 Doug Evans <dje@cygnus.com> | |
2264 | ||
2265 | * sparc/sol2.h (ASM_OUTPUT_ALIGNED_LOCAL): Delete, use svr4.h's. | |
2266 | ||
2267 | Tue Jan 23 03:28:01 1996 Paul Eggert <eggert@twinsun.com> | |
2268 | ||
2269 | * cexp.y: Use preprocessor arithmetic instead of C arithmetic | |
2270 | to avoid warnings on some compilers. | |
2271 | (HOST_WIDE_INT_MASK): Remove. | |
2272 | (MAX_CHAR_TYPE_MASK, MAX_WCHAR_TYPE_MASK): New macros. | |
2273 | (yylex): Use them. | |
2274 | ||
2275 | Mon Jan 22 18:39:21 1996 Per Bothner <bothner@cygnus.com> | |
2276 | ||
2277 | * cppexp.c (cpp_parse_expr): Set HAVE_VALUE flag for unary | |
2278 | minus, even if skip_evaluation is true. | |
2279 | ||
2280 | Mon Jan 22 16:53:48 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
2281 | ||
2282 | * rs6000/rs6000.h (BIGGEST_ALIGNMENT): Increase to 64 always. | |
2283 | (BIGGEST_FIELD_ALIGNMENT): Define. | |
2284 | (GO_IF_LEGITIMATE_ADDRESS): Merge PRE_INC and PRE_DEC cases. | |
2285 | (LEGITIMIZE_ADDRESS): Use Pmode not SImode. | |
2286 | (CASE_VECTOR_MODE): Depend on TARGET_64BIT. | |
2287 | (ASM_OUTPUT_COMMON): Delete. | |
2288 | (ASM_OUTPUT_ALIGNED_COMMON): Define. | |
2289 | * rs6000/sysv4.h (BIGGEST_FIELD_ALIGNMENT): Undefine. | |
2290 | * rs6000/rs6000.md (adddi3, subdi3, negsi2): New PowerPC64 patterns. | |
2291 | (ashldi3, lshrdi3, ashrdi3, anddi3, iordi3, xordi3): Same. | |
2292 | (moddi3, cmpdi, tablejump matchers): Same. | |
2293 | (divdi3): Update PowerPC64 patterns. | |
2294 | * rs6000.c (rs6000_initialize_trampoline, case ABI_AIX): Use Pmode | |
2295 | not SImode. | |
2296 | ||
2297 | Sun Jan 21 23:33:24 1996 Ian Lance Taylor <ian@cygnus.com> | |
2298 | ||
2299 | * dbxout.c: Include <string.h> | |
2300 | ||
2301 | Fri Jan 19 17:17:00 1996 Per Bothner <bothner@kalessin.cygnus.com> | |
2302 | ||
2303 | * tree.h (CONSTRUCTOR_TARGET_CLEARED_P): Removed. | |
2304 | * expr.c (is_zeros_p, mostly_zeros_p): Handle SET_TYPE CONSTRUCTORs. | |
2305 | (store_constructor_field): New helper function. | |
2306 | (store_constructor): Take 'cleared' parameter. | |
2307 | (expand_expr): Fix store_constructor_call to pass 'cleared' of 0. | |
2308 | ||
2309 | * expr.c (store_constructor, SET_TYPE): Fix off-by-one-error. | |
2310 | Also, devide start byte by BITS_PER_UNIT before passing to memset. | |
2311 | (store_constructor): `continue' in wrong place. | |
2312 | ||
2313 | * expr.c (store_constructor): If storing into a range of array | |
2314 | elements, and the range is small, or the target it not memory, | |
2315 | unroll the loop (and use store_field, which handles REGs). | |
2316 | (store_constructor): Handle RANGE_EXPR in array index. | |
2317 | ||
2318 | Fri Jan 19 16:52:25 1996 Doug Evans <dje@charmed.cygnus.com> | |
2319 | ||
2320 | * svr4.h (SWITCH_TAKES_ARG): Add 'x'. | |
2321 | * sparc/sol2.h (SWITCH_TAKES_ARG): Likewise. | |
2322 | ||
2323 | Fri Jan 19 15:18:38 1996 Ian Lance Taylor <ian@cygnus.com> | |
2324 | ||
2325 | * dbxout.c (flag_minimal_debug): Initialize to 0 if both | |
2326 | NO_DOLLAR_IN_LABEL and NO_DOT_IN_LABEL are defined. | |
2327 | (dbxout_type_methods): If the mangled method name uses the special | |
2328 | C++ marker character, pass show_arg_types as 1 when calling | |
2329 | dbxout_type. | |
2330 | ||
2331 | Fri Jan 19 11:48:28 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2332 | ||
2333 | * rs6000/eabi-ci.asm (_SDA_BASE_): Move the default definition | |
2334 | from the .got section to the .sdata section. Do not add 32768. | |
2335 | (_SDA2_BASE_): Provide a default definition. | |
2336 | ||
2337 | * rs6000/eabi-cn.asm (.got.blrl): Don't define this section any | |
2338 | more, linker now directly creates the blrl instruction at | |
2339 | _GLOBAL_OFFSET_TABLE_-4. | |
2340 | ||
2341 | Fri Jan 19 05:12:31 1996 Richard Earnshaw <rearnsha@armltd.co.uk> | |
2342 | ||
2343 | * arm/lib1funcs.asm (__divsi3, __modsi3, __udivsi3, __umodsi3): | |
2344 | Replace with smaller, faster versions. | |
2345 | ||
2346 | Thu Jan 18 17:41:46 1996 Jim Wilson <wilson@cygnus.com> | |
2347 | ||
2348 | * sh.c (ctype.h): Delete. | |
2349 | (regno_reg_class, reg_class_from_letter): Add SH3e support. | |
2350 | (prepare_scc_operands, broken_move, push, pop, push_regs): Likewise. | |
2351 | (calc_live_regs, sh_expand_prologue, sh_expand_epilogue): Likewsie. | |
2352 | (initial_elimination_offset, arith_reg_operand): Likewise. | |
2353 | (sh_builtin_saveregs, fp_zero_operand, fp_one_operand): New functions. | |
2354 | (sh_function_arg, sh_function_arg_partial_nregs): Delete. | |
2355 | * sh.h (CPP_SPEC, CONDITIONAL_REGISTER_USAGE): Add SH3E support. | |
2356 | (TARGET_SWITCHES, OVERRIDE_OPTIONS, FIRST_PSEUDO_REGISTER): Likewise. | |
2357 | (FIXED_REGISTERS, CALL_USED_REGISTERS, HARD_REGNO_MODE_OK): Likweise. | |
2358 | (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. | |
2359 | (REG_ALLOC_ORDER, CONST_DOUBLE_OK_FOR_LETTER_P, NPARM_REGS): Likewise. | |
2360 | (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Likewise. | |
2361 | (FUNCTION_ARG_REGNO_P, CUMULATIVE_ARGS, ROUND_REG): Likewise. | |
2362 | (INIT_CUMULATIVE_ARGS, FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Likewise. | |
2363 | (FUNCTION_ARG_PARTIAL_NREGS, LEGITIMATE_CONSTANT_P): Likewise. | |
2364 | (MODE_DISP_OK_4, REGISTER_MOVE_COST, REGISTER_NAMES): Likewise. | |
2365 | (DBX_REGISTER_NUMBER, enum processor_type): Likewise. | |
2366 | (SH3E_BIT, TARGET_SH3E, FPUL_REG, FIRST_FP_REG, LAST_FP_REG): New. | |
2367 | (FIRST_FP_PARM_REG, FIRST_FP_RET_REG, BASE_RETURN_VALUE_REG): New. | |
2368 | (BASE_ARG_REG, enum sh_arg_class, struct sh_args): New. | |
2369 | (GET_SH_ARG_CLASS, PASS_IN_REG_P, sh_builtin_saveregs): New. | |
2370 | (EXPAND_BUILTIN_SAVEREGS, DOUBLE_TYPE_SIZE): New. | |
2371 | (TARGET_SWITCHES): Delete broken -m3l option. | |
2372 | * sh.md (cpu, movsi_i, movsf_i, blt, bge, sle, sge): Add SH3E support. | |
2373 | (push_e, pop_e, movsi_ie, movsf_ie, addsf3, subsf3): New patterns. | |
2374 | (mulsf3, macsf3, divsf3, floatsisf2, fix_truncsfsi2): New patterns. | |
2375 | (cmpgtsf_t, cmpqesf_t, cmpsf, negsf2, sqrtsf2, abssf2): New patterns. | |
2376 | (abssf2+9, abssf2+10): Add SH3e support to peepholes | |
2377 | (abssf2+11, abssf2+12): New peepholes for SH3e. | |
2378 | * t-sh (MULTILIB_OPTIONS): Add SH3E support. | |
2379 | (MULTILIB_DIRNAMES): Define to empty. | |
2380 | ||
2381 | Thu Jan 18 11:29:11 1996 Ian Lance Taylor <ian@cygnus.com> | |
2382 | ||
2383 | * cplus-dem.c (cplus_demangle_opname): Change type of opname | |
2384 | parameter to const char *. | |
2385 | (cplus_mangle_opname): Change return type and type of opname | |
2386 | parameter to const char *. Don't cast return value. | |
2387 | * demangle.h (cplus_demangle_opname): Update declaration. | |
2388 | (cplus_mangle_opname): Likewise. | |
2389 | ||
2390 | Thu Jan 18 10:07:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2391 | ||
2392 | * gcc.c (extra_specs): If EXTRA_SPECS is defined, define | |
2393 | extra_specs array to hold the extra specs the machine description | |
2394 | defines. | |
2395 | (set_spec): If EXTRA_SPECS is defined, handle the extra | |
2396 | specifications. | |
2397 | (process_command): Ditto. | |
2398 | (main): Ditto. | |
2399 | (validate_all_switches): Ditto. | |
2400 | ||
2401 | * rs6000/{rs6000.h,powerpc.h,aix41.h} ({CPP,ASM}_SPEC): Use common | |
2402 | specs with EXTRA_SPECS, only modifying things in the target that | |
2403 | needs to be modified, rather than having tons of mostly duplicate | |
2404 | definitions. | |
2405 | * rs6000/{sysv4{,le}.h,}netware.h,lynx.h,} ({CPP,ASM}_SPEC): Ditto. | |
2406 | * rs6000/eabi{le,aix}.h,aix3newas.h}} ({CPP,ASM}_SPEC): Ditto. | |
2407 | ||
2408 | Wed Jan 17 19:38:24 1996 Paul Eggert <eggert@twinsun.com> | |
2409 | ||
2410 | * cexp.y (HOST_WIDE_INT_MASK): Renamed from LONG_MASK; | |
2411 | use HOST_WIDE_INT. | |
2412 | (HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT): Put back. | |
2413 | (parse_c_expression, expression_value, parse_escape, left_shift, | |
2414 | right_shift, struct constant, exp, parse_number, yylex): | |
2415 | Replace `long' with `HOST_WIDE_INT'. | |
2416 | * cccp.c (PTR_INT_TYPE): Remove obsolete define to `long'. | |
2417 | (parse_escape, parse_c_expression, eval_if_expression, get_lintcmd, | |
2418 | do_line, do_if, do_elif): Replace `long' with `HOST_WIDE_INT'. | |
2419 | (trigraph_pcp): Don't assume a pointer difference fits in an int. | |
2420 | ||
2421 | Wed Jan 17 18:56:31 1996 Jim Wilson <wilson@cygnus.com> | |
2422 | ||
2423 | * expmed.c (extract_bit_field): For multi-word bitfield, clobber | |
2424 | target before storing to it. | |
2425 | ||
2426 | Wed Jan 17 14:19:34 1996 J.T. Conklin <jtc@slave.cygnus.com> | |
2427 | ||
2428 | * sparc/{t-sol2,t-sunos40,t-sunos41}: Define away LIBGCC1_TEST | |
2429 | so that cross compilers targeted at these systems will build. | |
2430 | ||
2431 | Wed Jan 17 09:51:58 1996 Doug Evans <dje@cygnus.com> | |
2432 | ||
2433 | * sparc.h (v9 INIT_CUMULATIVE_ARGS): Fix typos. | |
2434 | ||
2435 | * gcc.c (process_command): New local lang_n_files, and use | |
2436 | it in test of -c with -o. Move test of -save-temps. | |
2437 | Test for trailing NUL in -c. | |
2438 | ||
2439 | * i386/t-go32: New file. | |
2440 | * i386/xm-go32.h: New file. | |
2441 | * configure (i[345]86-*-go32*): Define xm_file and tmake_file. | |
2442 | ||
2443 | Wed Jan 17 07:47:43 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
2444 | ||
2445 | * cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Put back. | |
2446 | (pcfinclude): Use HOST_WIDE_INT for casting pointer to integer. | |
2447 | ||
2448 | Wed Jan 17 05:25:06 1996 Jeffrey A. Law <law@cygnus.com> | |
2449 | ||
2450 | * va-pa.h (__gnuc_va_list): Use a "void *". | |
2451 | ||
2452 | Tue Jan 16 18:45:23 1996 Per Bothner <bothner@cygnus.com> | |
2453 | ||
2454 | * cppexp.c (cpp_lex): Do cpp_pop_buffer after CPP_POP so retried | |
2455 | cpp_skip_hspace will actually work. | |
2456 | ||
2457 | * cppexp.c (SKIP_OPERAND): New macro. | |
2458 | (cpp_parse_expr): Suppress evaluation and diagnostics in | |
2459 | unevaluated subexpressions. | |
2460 | Corresponds to Eggert's Fri Jun 9 17:58:29 1995 change. | |
2461 | ||
2462 | Tue Jan 16 11:59:07 1996 Mike Stump <mrs@cygnus.com> | |
2463 | ||
2464 | * expr.c (expand_expr, case COND_EXPR): Make sure cleanups live on | |
2465 | the function_obstack as they are used by the exception handling code. | |
2466 | (defer_cleanups_to): Ditto. | |
2467 | (TRUTH_ANDIF_EXPR): Ditto. | |
2468 | (TRUTH_ORIF_EXPR): Ditto. | |
2469 | ||
2470 | Tue Jan 16 13:57:13 1996 Jim Wilson <wilson@cygnus.com> | |
2471 | ||
2472 | * cccp.c (new_include_prefix): Ignore ENOTDIR error from stat. | |
2473 | ||
2474 | Tue Jan 16 12:18:56 1996 Doug Evans <dje@cygnus.com> | |
2475 | ||
2476 | * i386/t-sol2 (crt[1in].o): Add missing -c. | |
2477 | * sparc/t-sol2 (crt[1in].o,gcrt1.o): Likewise. | |
2478 | Source files are assembler. | |
2479 | ||
2480 | * gcc.c (do_spec_1, case 'W'): Rename local `index' to `cur_index' to | |
2481 | avoid warning on solaris. | |
2482 | ||
2483 | Tue Jan 16 11:42:09 1996 Ian Lance Taylor <ian@cygnus.com> | |
2484 | ||
2485 | * config/dbxcoff.h: New file for stabs in COFF support. | |
2486 | * config/a29k/a29k-udi.h: Use dbxcoff.h. | |
2487 | * config/h8300/h8300.h: Likewise. | |
2488 | * config/i960/i960-coff.h: Likewise. | |
2489 | * config/m68k/coff.h: Likewise. | |
2490 | * config/m88k/m88k-coff.h: Likewise. | |
2491 | * config/sh/sh.h: Likewise. | |
2492 | * config/sparc/litecoff.h: Likewise. | |
2493 | ||
2494 | Tue Jan 16 08:21:45 1996 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se> | |
2495 | ||
2496 | * optabs.c (expand_fix): Don't copy TARGET to TO if same. | |
2497 | ||
2498 | * expr.c (emit_move_insn_1): Don't emit clobber when moving | |
2499 | by parts and source equals destination. | |
2500 | ||
2501 | Tue Jan 16 08:08:29 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
2502 | ||
2503 | * expmed.c (extract_bit_field): Don't abort if not MEM_IN_STRUCT_P. | |
2504 | ||
2505 | * local-alloc.c (memref_referenced_p, case REG): Fix last change. | |
2506 | ||
2507 | * fold-const.c (const_binop): Strip NOPS from both args. | |
2508 | ||
2509 | * regclass.c (regclass): Remove useless cast. | |
2510 | ||
2511 | Tue Jan 16 07:06:03 1996 Paul Eggert <eggert@twinsun.com> | |
2512 | ||
2513 | * cexp.y: General code cleanup in the style of 1995-04-01 change. | |
2514 | Add prototypes for static functions. | |
2515 | Add parentheses suggested by `gcc -Wparentheses'. | |
2516 | Use `long' uniformly, instead of long, int, HOST_WIDE_INT mess. | |
2517 | (struct constant): Use `signedp' flag (with sign bit) instead of | |
2518 | `unsignedp' flag; it's a little more convenient. | |
2519 | ||
2520 | (HAVE_STDLIB_H, STDC_HEADERS, LONG_MASK, __attribute__, PROTO, | |
2521 | VA_START, PRINTF_ALIST, PRINTF_DCL, PRINTF_PROTO, PRINTF_PROTO_1, | |
2522 | vfprintf, SIGNED, UNSIGNED): New symbols. | |
2523 | <stdlib.h>: Include if HAVE_STDLIB_H. | |
2524 | <string.h>: New include. | |
2525 | (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove. | |
2526 | (yylex, yyerror, expression_value, parse_number, | |
2527 | initialize_random_junk): Now static. | |
2528 | ||
2529 | (overflow_sum_sign): Renamed from possible_sum_sign, with an | |
2530 | extra arg SIGNEDP. | |
2531 | (parse_number): Inline strcmp when checking for "0x". | |
2532 | (yylex): Keep track of mask needed when decoding wide characters. | |
2533 | (parse_escape): New arg RESULT_MASK; use it instead of | |
2534 | assuming char width. | |
2535 | (yylex, parse_escape, parse_c_expression): Store all host | |
2536 | integers as long, not int or HOST_WIDE_INT. | |
2537 | (left_shift): No need to do signed left shifts separately. | |
2538 | ||
2539 | These changes are for the test program (if TEST_EXP_READER): | |
2540 | (pedantic, traditional): Allocate storage. | |
2541 | (main): Set pedantic, traditional, yydebug depending on args. | |
2542 | (is_hor_space, warning, lookup): Change types and implementation | |
2543 | to match rest of program. | |
2544 | (pedwarn, check_assertion, xmalloc): New functions. | |
2545 | ||
2546 | * cccp.c (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Remove. | |
2547 | (parse_escape, parse_c_expression, eval_if_expression): | |
2548 | Change return type to `long'; all callers changed. | |
2549 | (pcfinclude): Use `int', not HOST_WIDE_INT; any integral type will do. | |
2550 | ||
2551 | * cccp.c (skip_quoted_string): If pedantic and not pedantic_errors, | |
2552 | skipped multiline strings elicit a warning, not an error. | |
2553 | (rescan): Minor code reorg to keep it parallel with skip_quoted_string. | |
2554 | ||
2555 | * fold-const.c (left_shift_overflows): Remove; unused. | |
2556 | ||
2557 | * c-typeck.c (convert_for_assignment): Don't automatically convert | |
2558 | from a union member to the union. | |
2559 | ||
2560 | Tue Jan 16 06:26:00 1996 Stefan Vogel (stefan@ssw.de) | |
2561 | ||
2562 | * config/svr4.h (ASM_OUTPUT_SECTION_NAME): Define section attributes | |
2563 | only when a section is defined the first time. | |
2564 | ||
2565 | Tue Jan 16 06:03:27 1996 Thomas Graichen <graichen@omega.physik.fu-berlin.de> | |
2566 | ||
2567 | * i386/freebsd.h (ASM_WEAKEN_LABEL): Deleted; not supported. | |
2568 | ||
2569 | Mon Jan 15 20:59:49 1996 J. Kean Johnston <hug@netcom.com> | |
2570 | ||
2571 | * Makefile.in (LIBGCC2_CLFAGS): Add -DIN_LIBGCC2. | |
2572 | (libgcc1.a): Add -DIN_LIBGCC1. | |
2573 | (stamp-crtS): Remove -fpic, use CRTSTUFF_CFLAGS_S. | |
2574 | * config/t-libc-ok: Add CRTSTUFF_CFLAGS_S. | |
2575 | ||
2576 | * configure (i[3456]86-*-sco3.2v5*): New case. | |
2577 | * i386/sco5.h, i386/t-sco5, i386/x-sco5, i386/xm-sco5.h: New files. | |
2578 | * ginclude/stdarg.h, ginclude/varags.h: Add test for SCO Open Server 5. | |
2579 | ||
2580 | Mon Jan 15 20:44:13 1996 J.T. Conklin <jtc@netbsd.org> | |
2581 | ||
2582 | * m68k/netbsd.h (ASM_SPEC): New macro. | |
2583 | ||
2584 | Mon Jan 15 17:01:16 1996 Doug Evans <dje@cygnus.com> | |
2585 | ||
2586 | * c-lex.c (check_newline): Pass character after `#pragma' to | |
2587 | HANDLE_PRAGMA. Don't call get_directive_line if at end of line. | |
2588 | * c-common.c (get_directive_line): Watch for EOF. | |
2589 | * h8300/h8300.h (HANDLE_PRAGMA): New argument `c'. | |
2590 | Must issue `return' now. | |
2591 | * i960/i960.h (HANDLE_PRAGMA): Likewise. | |
2592 | * sh/sh.h (HANDLE_PRAGMA): Likewise. | |
2593 | * nextstep.h (HANDLE_PRAGMA): Likewise. | |
2594 | * h8300/h8300.c (handle_pragma): New argument `ch'. | |
2595 | Simplify pragma processing. Delete support for `#pragma section'. | |
2596 | * i960/i960.c (process_pragma): New argument `c'. Change result to | |
2597 | terminating character. | |
2598 | * nextstep.c (handle_pragma): Likewise. | |
2599 | * sh/sh.c (handle_pragma): Likewise. Also simplified. | |
2600 | ||
2601 | * sched.c (reemit_notes): Add prototype. | |
2602 | (sched_analyze_2): Reorganize comments. Call prev_nonnote_insn. | |
2603 | (sched_analyze): Add abort call. | |
2604 | (schedule_block): Call prev_nonnote_insn. | |
2605 | Move call of reemit_notes to after SCHED_GROUP_P scheduling. | |
2606 | Set `head' to `last'. | |
2607 | ||
2608 | Mon Jan 15 16:12:25 1996 Roland McGrath <roland@churchy.gnu.ai.mit.edu> | |
2609 | ||
2610 | * configure (*-*-gnu*): Use tmake_file=t-gnu. | |
2611 | * config/t-gnu (CRTSTUFF_T_CFLAGS): New file. | |
2612 | * configure (*-*-gnu*): Remove crtbeginS.o and crtendS.o frmo | |
2613 | $extra_parts. Use xmake_file=x-linux. | |
2614 | ||
2615 | Mon Jan 15 15:30:49 1996 Gran Uddeborg <gvran@uddeborg.pp.se> | |
2616 | ||
2617 | * i386/svr3{,z}.ifile: Allocate address areas for the "stab" | |
2618 | and "stabstr" sections. | |
2619 | ||
2620 | Mon Jan 15 14:39:14 1996 Paul Eggert <eggert@twinsun.com> | |
2621 | ||
2622 | * c-decl.c (finish_incomplete_decl): Warn if completing an | |
2623 | array that wasn't declared extern. Simplify test for whether | |
2624 | completion is needed. | |
2625 | ||
2626 | * cccp.c (do_xifdef): Warn about `#ifdef 0' if not traditional; | |
2627 | formerly the warning was issued if not pedantic. | |
2628 | ||
2629 | Mon Jan 15 13:24:12 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2630 | ||
2631 | * rs6000.md ({add,sub}di3): Make it work on little endian PowerPC | |
2632 | systems. | |
2633 | ||
2634 | * rs6000/eabi-c{i,n}.asm (.sbss2 section): Don't make .sbss2 a | |
2635 | .bss section just yet, because it confused the linker. | |
2636 | ||
2637 | Mon Jan 15 08:50:31 1996 Philippe De Muyter (phdm@info.ucl.ac.be) | |
2638 | ||
2639 | * m68k.md (pushdi): Allow "i" for operand 1. | |
2640 | (extendqidi2): Improve 68000 code generation. | |
2641 | (adddi_lshrdi_63): New pattern. | |
2642 | ||
2643 | Mon Jan 15 08:38:40 1996 H.J. Lu {hjl@gnu.ai.mit.edu) | |
2644 | ||
2645 | * configure (i[3456]86-*-linux*): Add extra_parts. | |
2646 | * i386/linux.h (LIB_SPEC): Remove %{mieee-fp:-lieee}. | |
2647 | Use -lc_p for -profile. | |
2648 | (CC1_SPEC): New macro. | |
2649 | * linux.h (STARTFILE_SPEC): Use crtbegin.o for both shared llibrary | |
2650 | and normal executable; use gcrt1.o for -profile. | |
2651 | (ENDFILE_SPEC): Use crtend.o for shared llibrary and normal executable. | |
2652 | * x-linux (INSTALL_ASSERT_H): Unset it. | |
2653 | * configure (i[3456]86-*-linux*oldld*): Set xmake_file to x-linux-aout. | |
2654 | (i[3456]86-*-linux*aout*): Likewise. | |
2655 | * x-linux-aout: New file, copied from config/x-linux. | |
2656 | ||
2657 | Mon Jan 15 07:41:05 1996 Dmitry K. Butskoy (buc@stu.spb.su) | |
2658 | ||
2659 | * varasm.c (in_data_section): New function. | |
2660 | ||
2661 | Mon Jan 15 07:37:13 1996 Andreas Schwab (schwab@issan.informatik.uni-dortmund.de) | |
2662 | ||
2663 | * c-typeck.c (build_c_cast): Don't warn about alignment when we | |
2664 | have an opaque type. | |
2665 | ||
2666 | Mon Jan 15 07:22:59 1996 Michel Delval (mfd@ccv.fr) | |
2667 | ||
2668 | * reload.c (find_equiv_reg): Apply single_set, not PATTERN, to WHERE. | |
2669 | ||
2670 | Mon Jan 15 07:02:21 1996 John F. Carr <jfc@mit.edu> | |
2671 | ||
2672 | * reorg.c (mark_referenced_resources, case TRAP_IF): Set volatil. | |
2673 | ||
2674 | Mon Jan 15 06:20:38 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
2675 | ||
2676 | * gcc.c (process_commands): Remove inadvertant fallthrough. | |
2677 | ||
2678 | * function.c ({,round_}trampoline_address): TRAMPOLINE_ALIGNMENT is | |
2679 | in bits, not bytes. | |
2680 | ||
2681 | * objc/archive.c (objc_{write,read}_type, case _C_STRUCT_B): Fix typo. | |
2682 | ||
2683 | * expr.c (expand_expr, case COMPONENT_REF): Don't make recursive | |
2684 | call on object with EXPAND_SUM. | |
2685 | ||
2686 | * stmt.c (save_expr_regs): Delete declaration; unused. | |
2687 | ||
2688 | Sun Jan 14 21:44:26 1996 Michael Meissner <meissner@wogglebug.tiac.net> | |
2689 | ||
2690 | * rs6000/eabi-ci.asm (__EXCEPT_START__): Provide label for start | |
2691 | of g++ exception pointers. | |
2692 | ||
2693 | * rs6000/eabi-cn.asm (__EXCEPT_END__): Provide label for end of | |
2694 | g++ exception pointers. | |
2695 | ||
2696 | * rs6000/eabi.asm (__eabi): Relocate exception pointers unless | |
2697 | they are NULL. | |
2698 | ||
2699 | * va-ppc.h (va_arg): Long longs are always passed in odd registers. | |
2700 | ||
2701 | * rs6000.c (function_arg_boundary): On V.4, long longs are always | |
2702 | passed in odd registers. | |
2703 | ||
2704 | * rs6000.md ({add,sub}di3): Remove restriction for POWER only, | |
2705 | since all of the instructions used are common to both | |
2706 | architectures. | |
2707 | ||
2708 | Sun Jan 14 20:34:03 1996 Jeffrey A. Law <law@cygnus.com> | |
2709 | ||
2710 | * expr.c (expand_assignment): Fix alignment parm in emit_block_move. | |
2711 | ||
2712 | Sun Jan 14 19:00:25 1996 Jim Wilson <wilson@cygnus.com> | |
2713 | ||
2714 | * sched.c (schedule_block): Copy RTX_INTEGRATE_P bit when create | |
2715 | a new note. | |
2716 | ||
2717 | * integrate.c (save_for_inline_copying, case NOTE): Copy | |
2718 | RTX_INTEGRATED_P bit. | |
2719 | ||
2720 | Sun Jan 14 17:57:52 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
2721 | ||
2722 | * stupid.c (stupid_find_reg): Don't try to allocate reg if live | |
2723 | over more than 5,000 insns. | |
2724 | ||
2725 | Sat Jan 13 23:09:07 1996 Jeffrey A. Law <law@cygnus.com> | |
2726 | ||
2727 | * pa.h (STACK_BOUNDARY): Bring back down to 64bits. | |
2728 | ||
2729 | * pa.md (pre_ldwm): Fix bug exposed by recent changes. | |
2730 | Simplify. | |
2731 | (pre_stwm, post_ldwm, post_stwm): Likewise. | |
2732 | (HImode and QImode variants): Likewise. | |
2733 | * pa.c (hppa_expand_prologue): Corresponding changes. | |
2734 | (hppa_expand_epilogue): Likewise. | |
2735 | ||
2736 | * pa.c (hppa_legitimize_address): Generate more indexing | |
2737 | address modes. | |
2738 | ||
2739 | Fri Jan 12 19:03:21 1996 Doug Evans <dje@cygnus.com> | |
2740 | ||
2741 | * sparc/sol2.h (COMMON_ASM_OP): Delete, use sysv4.h's. | |
2742 | ||
2743 | * sched.c (schedule_block): Maintain a valid chain so | |
2744 | emit_note_before works. | |
2745 | ||
2746 | Fri Jan 12 13:20:01 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2747 | ||
2748 | * rs6000/eabi{,-ci,-cn}.asm: Add support for V.4 .sbss/.sdata, and | |
2749 | eabi .sbss2/.sdata2 sections, loading up r13 and r2 respectively | |
2750 | if the sections were used, and we don't need to relocate the | |
2751 | pointers. | |
2752 | ||
2753 | Thu Jan 11 19:41:07 1996 Per Bothner <bothner@cygnus.edu> | |
2754 | ||
2755 | * sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use AGGREGATE_TYPE_P so | |
2756 | QUAL_UNION_TYPE and SET_TYPE are also passed by invisible reference. | |
2757 | * sparc.h (INIT_CUMULATIVE_ARGS for SPARCV9): Return types of | |
2758 | QUAL_UNION_TYPE and SET_TYPE also make invisible 1st argument. | |
2759 | ||
2760 | Thu Jan 11 18:33:50 1996 Doug Evans <dje@cygnus.com> | |
2761 | ||
2762 | * h8300/h8300.h (TARGET_ALIGN_STRUCT_300): New macro. | |
2763 | (TARGET_SWITCHES): Add -malign-struct-300. | |
2764 | (BIGGEST_FIELD_ALIGNMENT): Update. | |
2765 | ||
2766 | Thu Jan 11 12:07:44 1996 J.T. Conklin <jtc@cygnus.com> | |
2767 | ||
2768 | * h8300/h8300.h (CPP_PREDEFINES): Delete -D_DOUBLE_IS_32BITS. | |
2769 | ||
2770 | Thu Jan 11 11:09:33 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
2771 | ||
2772 | * rs6000.md (mulsf3 !POWERPC): Use dmul attribute. | |
2773 | (divsf3 !POWERPC): Use ddiv attribute. | |
2774 | ||
2775 | Thu Jan 11 11:09:33 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2776 | ||
2777 | * rs6000/eabi-ctors.c (__do_global_ctors): If global variable | |
2778 | __atexit is non-NULL, call it with __do_global_dtors address to | |
2779 | register the function to run destructors. | |
2780 | (__do_global_{c,d}tors): Guard against NULL pointers. | |
2781 | ||
2782 | * rs6000/eabi.asm (__eabi): If the __eabi function was already | |
2783 | called, do nothing. | |
2784 | ||
2785 | Thu Jan 11 11:29:09 1996 Doug Evans <dje@cygnus.com> | |
2786 | ||
2787 | * fixincludes: Wrap rpc/types.h in extern "C", for osf2.0. | |
2788 | ||
2789 | Wed Jan 10 13:16:03 1996 Doug Evans <dje@cygnus.com> | |
2790 | ||
2791 | * varasm.c (variable_section): New function. | |
2792 | (assemble_variable): Call it. | |
2793 | ||
2794 | Wed Jan 10 11:27:28 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2795 | ||
2796 | * rs6000/eabi-c{i,n}.asm (__DTOR_{LIST,END}__): Fix typo. | |
2797 | * rs6000/eabi{,sim}.h ({START,END}FILE_SPEC): Add %s to object | |
2798 | files. | |
2799 | ||
2800 | * rs6000/t-{eabi,eabigas,ppc,ppcgas} (MULTILIB_MATCHES): Drop | |
2801 | support for obsolete -mcpu=mpc403. Add -mcpu=821 and -mcpu=860 to | |
2802 | soft-float defaults. | |
2803 | ||
2804 | * rs6000/t-eabi{,gas} (LIBGCC): Add stmp-crt. | |
2805 | (INSTALL_LIBGCC): Add install-crt. | |
2806 | (EXTRA_PARTS): Delete. | |
2807 | (stmp-crt{,-sub}): New rules to build crti.o and crtn.o in a | |
2808 | multilib fashion. | |
2809 | (install-crt): Install the multilib crt values. | |
2810 | ||
2811 | Tue Jan 9 17:30:16 1996 Doug Evans <dje@cygnus.com> | |
2812 | ||
2813 | * c-tree.h (merge_attributes): Moved from here. | |
2814 | * tree.h (merge_attributes): To here. | |
2815 | * c-typeck.c (merge_attributes): Moved from here. | |
2816 | * tree.c (merge_attributes): To here. | |
2817 | ||
2818 | Mon Jan 8 18:27:38 1996 Arne H. Juul <arnej@pvv.unit.no> | |
2819 | ||
2820 | * mips/netbsd.h (LINK_SPEC): Change nostdlib to nostartfiles. | |
2821 | (LOCAL_LABEL_PREFIX): Delete. | |
2822 | (ASM_OUTPUT_SECTION_NAME): Define. | |
2823 | ||
2824 | Sun Jan 7 17:11:11 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
2825 | ||
2826 | * collect2.c (scan_libraries): Correct Import File ID interpretation. | |
2827 | ||
2828 | Sun Jan 7 16:56:56 1996 Michael Meissner <meissner@wombat.gnu.ai.mit.edu> | |
2829 | ||
2830 | * {svr4,mips/elf{,64}}.h (MAX_OFILE_ALIGNMENT): Define as | |
2831 | 32768*8. | |
2832 | ||
2833 | Sat Jan 6 15:52:36 1996 Doug Evans <dje@cygnus.com> | |
2834 | ||
2835 | * a29k/vx29k.h (CPP_SPEC): Define. | |
2836 | ||
2837 | * configure: Recognize any --with/--without option. | |
2838 | ||
2839 | * Makefile.in (MAKEINFOFLAGS): New variable. | |
2840 | (cpp.info,gcc.info): Use it. | |
2841 | ||
2842 | * sparc/t-sol2 (crt1.o,crti.o,crtn.o,gcrt1.o): Use $(GCC_FOR_TARGET). | |
2843 | * i386/t-sol2 (crt1.o,crti.o,crtn.o): Likewise. | |
2844 | ||
2845 | Fri Jan 5 10:44:25 1996 Michael Meissner <meissner@tiktok.cygnus.com> | |
2846 | ||
2847 | * rs6000/aix{3newas,41}.h ({ASM,CPP}_SPEC): Update for new | |
2848 | processors. | |
2849 | * rs6000/eabi{aix,le}.h ({ASM,CPP}_SPEC): Ditto. | |
2850 | * rs6000/{lynx,netware,powerpc,sysv4}.h ({ASM,CPP}_SPEC): Ditto. | |
2851 | ||
2852 | * rs6000.c (rs6000_override_options): Remove requirement that | |
2853 | -mcpu=common be big endian. | |
2854 | (rs6000_stack_info): If NAME__main is defined, mark this function | |
2855 | as doing a call, even if there are no arguments. | |
2856 | ||
2857 | * rs6000.md (SI*SI->DI splitters): Add reload_completed | |
2858 | condition. | |
2859 | (mulsidi3): If big endian, do move directly, rather than moving by | |
2860 | pieces. | |
2861 | ||
2862 | * rs6000/eabi{,sim}.h (STARTFILE_SPEC): Add crti.o before any | |
2863 | other objects. | |
2864 | (ENDFILE_SPEC): Add crtn.o after any objects. | |
2865 | * rs6000/t-eabi{,gas}: Build crt{i,n}.o from eabi-crt{i,n}.asm. | |
2866 | * rs6000/eabi-crt{i,n}.asm: New files to provide begin/end labels | |
2867 | for all special sections used by eabi as opposed to relying on GLD | |
2868 | to set all of these symbols. | |
2869 | * rs6000/eabi.asm (__eabi): Change to use the new labels provided | |
2870 | above. Don't assume that the .got2, .ctors, .dtors, and .fixup | |
2871 | sections are contiguous. | |
2872 | ||
2873 | Fri Jan 5 10:40:37 1996 David Edelsohn <edelsohn@mhpcc.edu> | |
2874 | ||
2875 | * rs6000.md (mulh_call): Remove r4 clobber. | |
2876 | (quoss_call): Remove cr0 and cr1 clobbers. | |
2877 | ||
2878 | * rs6000.md (function units): Add MPC505/821/860 support. | |
2879 | (SF multiply add combiner patterns): Use dmul attribute when limited | |
2880 | to DFmode POWER instructions. | |
2881 | * rs6000.c (processor_target_table): Add MPC505/821/860 support. | |
2882 | Remove MASK_POWER and add MASK_PPC_GFXOPT for PPC602. Always use | |
2883 | new mnemonics for common mode. | |
2884 | (rs6000_override_options): Don't set SOFT_FLOAT based upon | |
2885 | PROCESSOR_DEFAULT. | |
2886 | * rs6000.h (processor_type): Add PROCESSOR_MPCCORE. | |
2887 | (RTX_COSTS): Add PROCESSOR_MPCCORE cases. | |
2888 | (CPP_SPEC): Add new processor support. | |
2889 | ||
2890 | Fri Jan 5 00:32:49 1996 Doug Evans <dje@cygnus.com> | |
2891 | ||
2892 | * sparc/sparc.h (MACHINE_STATE_RESTORE): Add missing .align. | |
2893 | ||
2894 | Wed Jan 3 18:29:32 1996 Doug Evans <dje@cygnus.com> | |
2895 | ||
2896 | * arm/lib1funcs.asm (__USER_LABEL_PREFIX__): Define if not already. | |
2897 | (CONCAT1,CONCAT2,SYM): Define. | |
2898 | (__udivsi3,__divsi3,__umodsi3,__modsi3,__div0): Use SYM to define | |
2899 | global labels. | |
2900 | ||
2901 | Wed Jan 3 02:41:39 1996 Jeffrey A. Law <law@cygnus.com> | |
2902 | ||
2903 | * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Call text_section. | |
2904 | ||
2905 | Tue Jan 2 16:12:13 1996 Jim Wilson <wilson@cygnus.com> | |
2906 | ||
2907 | * sh.c (gen_shifty_op): Output a NOP for a shift by 0. | |
2908 | (find_barrier): New variables si_limit, hi_limit. Set them depending | |
2909 | on whether we are optimizing. Set found_hi if the destination is | |
2910 | HImode. | |
2911 | (machine_dependent_reorg): If not optimizing, then change scan to a | |
2912 | note instead of calling delete_insn. | |
2913 | * sh.h (OVERRIDE_OPTIONS): Don't set optimize or flag_delayed_branch. | |
2914 | ||
2915 | * dbxout.c (gstab.h): Include if cross compiling. | |
2916 | ||
2917 | Mon Jan 1 21:13:43 1996 Arkady Tunik <Arkady_Tunik@comverse.com> | |
2918 | ||
2919 | * configure (i[3456]-*-solaris2*): Support stabs. | |
2920 | * i386/sol2dbg.h: New file. | |
2921 | ||
2922 | Mon Jan 1 09:08:01 1996 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
2923 | ||
2924 | * c-typeck.c: Use DECL_C_BIT_FIELD, not DECL_BIT_FIELD in all tests. | |
2925 | ||
2926 | * global.c (reg_allocno): No longer static. | |
2927 | * reload1.c (reg_allocno): Declare. | |
2928 | (order_regs_for_reload): New arg, GLOBAL. | |
2929 | Bias against regs allocated in local-alloc. | |
2930 | (reload): Pass new parm to order_regs_for_reload. | |
2931 | ||
2932 | * local-alloc.c (reg_equiv_replacement): New variable. | |
2933 | (memref_referenced_p, case REG): Check for reg_equiv_replacement. | |
2934 | (update_equiv_regs): reg_equiv_replacement now file-scope. | |
2935 | ||
2936 | * c-decl.c (finish_struct): Warn if field with enumeral type is | |
2937 | narrower than values of that type. | |
2938 | ||
2939 | * combine.c (rtx_equal_for_field_assignment_p): New function. | |
2940 | (make_field_assignment): Use it. | |
2941 | Expand compound operations on both sides of an IOR. | |
2942 | Properly adjust constand in IOR when computing bit position. | |
2943 | ||
2944 | Sun Dec 31 18:47:22 1995 Doug Evans <dje@cygnus.com> | |
2945 | ||
2946 | * m68k-none.h (MULTILIB_DEFAULTS): Define. | |
2947 | ||
2948 | Sun Dec 31 15:47:20 1995 Jeffrey A. Law <law@cygnus.com> | |
2949 | ||
2950 | * hard-reg-set.h (losing_caller_save_reg_set): Declare. | |
2951 | * regclass.c (losing_caller_save_reg_set): Define. | |
2952 | (init_reg_sets_1): Initialize losing_caller_save_reg_set. | |
2953 | * global.c (find_reg): Avoid caller-saving registers in | |
2954 | losing_caller_save_reg_set. | |
2955 | * local-alloc.c (find_free_reg): Avoid caller-saving registers | |
2956 | in losing_caller_save_reg_set. | |
2957 | (CLASS_LIKELY_SPILLED_P): Delete definition. Moved into regs.h. | |
2958 | * regs.h (CLASS_LIKELY_SPILLED_P): Define if not already defined. | |
2959 | ||
2960 | * reorg.c (fill_simple_delay_slots): Try to fill from the | |
2961 | target of an unconditional branch if necessary. | |
2962 | ||
2963 | * pa.h (REG_ALLOC_ORDER): Allocate PA1.1 caller-saved FP regs | |
2964 | before PA1.0 caller-saved FP regs. | |
2965 | ||
2966 | * sched.c (adjust_priority): Use ADJUST_PRIORITY if its defined. | |
2967 | ||
2968 | * pa.h (ADJUST_PRIORITY): Define to keep lifetimes of registers | |
2969 | that will be allocated to %r1 shorter. | |
2970 | ||
2971 | Sun Dec 31 14:20:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
2972 | ||
2973 | * rtl.h (assign_temp): Add extra arg. | |
2974 | * function.c (assign_temp): Add extra arg, DONT_PROMOTE. | |
2975 | Don't return (const_int 0) for VOIDmode. | |
2976 | * stmt.c (expand_asm_operands): Call assign_temp with extra arg. | |
2977 | * expr.c (save_nocopied_parts, expand_expr): Likewise. | |
2978 | (expand_expr, case SAVE_EXPR): Set TEMP to (const_int 0) | |
2979 | if MODE is VOIDmode. | |
2980 | (expand_expr): Don't use assign_temp for pseudos when might | |
2981 | want to be TMODE. | |
2982 | ||
2983 | * stmt.c (tail_recursion_args): Compare TYPE_MAIN_VARIANTs. | |
2984 | ||
2985 | * calls.c (expand_call): Don't warn about not being able to | |
2986 | inline if -O0. | |
2987 | * expr.c (clear_pending_stack_adjust): Don't do optimization if -O0. | |
2988 | * function.c (instantiate_decls): Check DECL_SAVED_INSNS to see | |
2989 | if obstack change is needed. | |
2990 | * toplev.c (rest_of_compilation): Leave DECL_INLINE set even if | |
2991 | won't inline. | |
2992 | ||
2993 | * tree.h: Add documentation on uses of common area flags. | |
2994 | (DECL_ERROR_ISSUED): New macro. | |
2995 | (DECL_NO_STATIC_CHAIN): New macro; currently unused. | |
2996 | * c-aux-info.c (gen_decl): DECL_REGISTER isn't defined | |
2997 | for FUNCTION_DECL. | |
2998 | * toplev.c (compile_file): Likewise. | |
2999 | * stmt.c (fixup_gotos): Use DECL_ERROR_ISSUED instead | |
3000 | of DECL_REGISTER. | |
3001 | * varasm.c ({bc_,}make_decl_rtl): Don't look at DECL_REGISTER | |
3002 | for functions. | |
3003 | ||
3004 | Sat Dec 30 07:57:11 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3005 | ||
3006 | * sdbout.c (plain_type_1, case ARRAY_TYPE): Subtract lower bound | |
3007 | when writing dimension. | |
3008 | ||
3009 | Fri Dec 29 18:23:58 1995 Paul Eggert <eggert@twinsun.com> | |
3010 | ||
3011 | * cccp.c (eval_if_expression): End expression with '\n', not '\0' | |
3012 | so '\0' can be diagnosed properly. | |
3013 | * cexp.y (yylex, parse_c_expression, main): Likewise. | |
3014 | ||
3015 | Thu Dec 28 18:24:54 1995 Per Bothner <bothner@kalessin.cygnus.com> | |
3016 | ||
3017 | * tree.h (TYPE_ARRAY_MAX_SIZE): New macro (used by Chill). | |
3018 | * function.c (assign_temp): New function. Can handle Chill-style | |
3019 | variable-sized array with static maximum size. | |
3020 | * rtl.h (assign_temp): New declaration. | |
3021 | * stmt.c (expand_asm_operands): Use new assign_temp function. | |
3022 | * expr.c (save_noncopied_parts, expand_expr): Likewise. | |
3023 | ||
3024 | Thu Dec 28 15:28:47 1995 Per Bothner <bothner@kalessin.cygnus.com> | |
3025 | ||
3026 | * function.c (assign_parms): Fix thinko for struct value arg. | |
3027 | ||
3028 | Fri Dec 29 12:41:47 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
3029 | ||
3030 | * rs6000.md (movdf): Reinstate 12/24 change accidently dropped in | |
3031 | undoing 12/27 changes. | |
3032 | ||
3033 | Thu Dec 28 22:24:53 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
3034 | ||
3035 | * rs6000.h: (reg_class): Undo 12/27 changes, except for | |
3036 | formatting. | |
3037 | (REG_NAMES): Ditto. | |
3038 | (REG_CLASS_CONTENTS): Ditto. | |
3039 | (REGNO_REG_CLASS): Ditto. | |
3040 | (REG_CLASS_FROM_LETTER): Ditto. | |
3041 | (PREDICATE_CODES): Delete predicate functions. | |
3042 | (gpc_reg{0,3,4,34}_operand): Delete declaration. | |
3043 | (cc_reg{0,1}_operand): Ditto. | |
3044 | ||
3045 | * rs6000.c (gpc_reg{0,3,4}_operand): Delete. | |
3046 | (cc_reg{0,1}_operand): Ditto. | |
3047 | ||
3048 | * rs6000.md (common mode functions): Undo 12/27 changes, and add | |
3049 | the appropriate clobbers for common mode calls. Keep the | |
3050 | define_splits for powerpc SI*SI->DI. | |
3051 | ||
3052 | Thu Dec 28 11:08:11 1995 Mike Stump <mrs@cygnus.com> | |
3053 | ||
3054 | * sparc.h (RETURN_ADDR_OFFSET): Rename from | |
3055 | NORMAL_RETURN_ADDR_OFFSET, returns the offset for the current | |
3056 | function specifically. | |
3057 | ||
3058 | Thu Dec 28 07:07:14 1995 Paul Eggert <eggert@twinsun.com> | |
3059 | ||
3060 | * c-lex.c (yylex): Improve error message for bogus numbers. | |
3061 | Consolidate duplicated code. | |
3062 | ||
3063 | * cexp.y (parse_number): Improve error message for bogus numbers. | |
3064 | (yylex): Consider `0xe-1' to be a (bogus) number if not traditional. | |
3065 | ||
3066 | * cccp.c (do_include): In VMS, worry only about EACCES when open fails. | |
3067 | (new_include_prefix): Don't try to stat dir prefixes in VMS. | |
3068 | ||
3069 | Wed Dec 27 14:02:54 1995 Per Bothner <bothner@kalessin.cygnus.com> | |
3070 | ||
3071 | * fix-header.c: Add EXIT_FAILURE and EXIT_SUCCESS to stdlib.h if | |
3072 | missing. Re-write how errno is added to be done similarly. | |
3073 | (XOPEN_SYMBOL, XOPEN_EXTENDED_SYMBOL): New macros, to mark XPG4 | |
3074 | functions. | |
3075 | (std_include_table): Add a number of functions (mostly XPG4). | |
3076 | ||
3077 | Tue Dec 26 23:18:34 1995 Per Bothner <bothner@kalessin.cygnus.com> | |
3078 | ||
3079 | * sys-types.h: Add dummy definition for ssize_t. | |
3080 | * sys-protos.h (bcmp, bcopy, gethostname, lockf, read, readlink, | |
3081 | write): Fix prototypes to match Posix and XPG4. | |
3082 | (socket, strcasecmp, strncasecmp): New prototypes (from XPG4). | |
3083 | ||
3084 | Wed Dec 27 15:30:04 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3085 | ||
3086 | * libgcc2.c (_bb_init_prg): Cast arg to bzero to (char *). | |
3087 | ||
3088 | * regs.h (reg_rtx_no, regno_pointer_{flag_length,align): New decls. | |
3089 | (REGNO_POINTER_ALIGN): New macro. | |
3090 | * emit-rtl.c (regno_pointer_align): New variable. | |
3091 | (gen_reg_rtx): Extend regno_pointer_align table. | |
3092 | Allocate tables in saveable obstack. | |
3093 | (mark_reg_pointer): New arg, ALIGN. | |
3094 | (gen_inline_header): New args for reg info. | |
3095 | (set_new_first_and_last_insn): Set cur_insn_uid. | |
3096 | ({save,restore}_emit_status): Save and restore regno_pointer_align. | |
3097 | (restore_reg_data{,_1}): Deleted. | |
3098 | (init_emit): Allocate register tables in saveable obstack. | |
3099 | Set REGNO_POINTER_ALIGN for regs pointing into frame. | |
3100 | * function.c (assign_parms): Set REGNO_POINTER_ALIGN for | |
3101 | parms that are pointers. | |
3102 | * function.h (struct function): New field regno_pointer_align. | |
3103 | * expr.c (expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN | |
3104 | when copying address into memory. | |
3105 | (expand_expr, case COMPONENT_REF, case ADDR_EXPR): Set alignment | |
3106 | of register when result or result's address. | |
3107 | (expand_expr, case CONVERT_EXPR): Don't handle -fforce-mem here. | |
3108 | * combine.c (set_nonzero_bits_and_sign_copies): Handle reg even | |
3109 | if only set once and in one basic block. | |
3110 | (nonzero_bits, case REG): Use REGNO_POINTER_ALIGN instead of | |
3111 | explicit alignment of registers pointing into frame. | |
3112 | * stmt.c (expand_decl): Set alignment of register for pointer | |
3113 | variable. | |
3114 | * optabs.c (emit_unop_insn): Don't do -fforce-mem for SIGN_EXTEND. | |
3115 | * cse.c (find_best_addr): Make sure folded address better before using. | |
3116 | * rtl.h (INLINE_REGNO_{RTX,POINTER_FLAG,POINTER_ALIGN}): New macros. | |
3117 | (gen_inline_header): Add three new parms. | |
3118 | * rtl.def (INLINE_HEADER): Add three new fields. | |
3119 | * integrate.c: Include regs.h. | |
3120 | (initialize_for_inline): Pass additional args to gen_inline_header. | |
3121 | (save_for_inline_copying): Make new regno_reg_rtx, regno_pointer_flag, | |
3122 | and regno_pointer_align arrays. | |
3123 | (expand_inline_function): Set alignment of reg for parm if passed | |
3124 | by hidden pointer. | |
3125 | Set regno_pointer_{flag,align} into remap table. | |
3126 | (copy_rtx_and_substitute): Set alignment of pointers into | |
3127 | stack frame. | |
3128 | Copy pointer flag and alignment to regs that are copies of | |
3129 | pointer registers from the original regs. | |
3130 | (output_inline_function): Don't call restore_reg_data. | |
3131 | Restore reg_rtx_no, regno_{reg_rtx,pointer_flag,pointer_align}. | |
3132 | * integrate.h (struct inline_remap): New fields regno_pointer_flag | |
3133 | and regno_pointer_align. | |
3134 | * unroll.c (unroll_loop): Set regno_pointer_{flag,align} in | |
3135 | remap table. | |
3136 | * explow.c (memory_address, allocate_dynamic_stack_space): | |
3137 | Pass additional arg to mark_reg_pointer. | |
3138 | * Makefile.in (integrate.o): Includes regs.h. | |
3139 | ||
3140 | * alpha.c ({non,}aligned_memory_operand): Test REGNO_POINTER_ALIGN. | |
3141 | (reg_or_unaligned_mem_operand): New function. | |
3142 | (get_unaligned_address): Add new arg, EXTRA_OFFSET. | |
3143 | * alpha.h ({CONSTANT,DATA}_ALIGNMENT): Align to at least BITS_PER_WORD. | |
3144 | (PREDICATE_CODES): Add reg_or_unaligned_mem_operand. | |
3145 | * alpha.md (extend{qihi,qisi,hisi}2): Allow unaligned memory | |
3146 | as arg 1 and pass to extend_{q,h}idi2. | |
3147 | (unaligned_extend{q,h}idi): New patterns. | |
3148 | (extend{q,h}idi2): If unaligned memory, call above new patterns. | |
3149 | (ext{q,l,w}h recognizer): Update to proper RTL. | |
3150 | (ext define_split): Comment out for now; wrong and maybe useless. | |
3151 | (unaligned_{load,store}hi): Do similarly to QImode. | |
3152 | (movhi, reload_{in,out}hi): Call unaligned case differently. | |
3153 | ||
3154 | Wed Dec 27 11:38:20 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
3155 | ||
3156 | * rs6000.md (mulsidi3{,_common}): Undo previous change using | |
3157 | register classes instead of fixed registers for SI*SI->DI common | |
3158 | mode multiplies. | |
3159 | ||
3160 | * rs6000.c (gpc_reg34_operand): Delete unused function. | |
3161 | * rs6000.h (gpc_reg34_operand): Ditto. | |
3162 | ||
3163 | * rs6000.c (gpc_reg{3,4}_operand): Reorganize code and don't allow | |
3164 | SUBREG's. | |
3165 | ||
3166 | * rs6000.c (rs6000_override_options): Do not allow -mcpu=common on | |
3167 | little endian PowerPC's. | |
3168 | (gpc_reg{0,3,4,34}_operand): New functions to match a specific | |
3169 | register. | |
3170 | (cc_reg{0,1}_operand): Ditto. | |
3171 | ||
3172 | * rs6000.h (reg_class): Add register classes for register 3 by | |
3173 | itself, register 4 by itself, registers 3&4, and CR1. | |
3174 | (REG_NAMES): Add support for new register classes. | |
3175 | (REG_CLASS_CONTENTS): Ditto. | |
3176 | (REGNO_REG_CLASS): Ditto. | |
3177 | (REG_CLASS_FROM_LETTER): Ditto. | |
3178 | (PREDICATE_CODES): Add new predicate functions. | |
3179 | (gpc_reg{0,3,4,34}_operand): Add declaration. | |
3180 | (cc_reg{0,1}_operand): Ditto. | |
3181 | ||
3182 | * rs6000.md (common mode multiplication/division): Move/rename the | |
3183 | common mode calls so that they are closer to the define_expands | |
3184 | that call them. Set attribute type to be jmpreg, rather than | |
3185 | integer, so optimizer knows the branch processing unit is used. | |
3186 | Make SI*SI->DI multiplier use register classes instead of | |
3187 | hardwired registers. Add the appropriate clobbers of CR0/CR1 as | |
3188 | mandated by the PowerOpen spec. | |
3189 | (PowerPC SI*SI->DI multipliers): Add appropriate define_splits. | |
3190 | ||
3191 | * rs6000/t-{,x}newas (MULTILIB*): Don't build power2 or 601 | |
3192 | specific libraries. | |
3193 | ||
3194 | Tue Dec 26 21:52:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3195 | ||
3196 | * fold-const.c (fold_convert): When converting a NaN to | |
3197 | another type, change the type of the node before returning it. | |
3198 | ||
3199 | Mon Dec 25 17:12:10 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
3200 | ||
3201 | * c-typeck.c (mark_addressable): Fix error in last change. | |
3202 | ||
3203 | Sun Dec 24 22:19:49 1995 Jeffrey A. Law <law@cygnus.com> | |
3204 | ||
3205 | * pa.c (output_function_epilogue): Use assemble_integer rather | |
3206 | than calling ASM_OUTPUT_INT directly. | |
3207 | * pa.h (ASM_OUTPUT_INT): Use labels for everything in the | |
3208 | exception table section. | |
3209 | ||
3210 | * pa.c (print_operand): Don't call fprintf to output a register | |
3211 | name. Use fputs instead. | |
3212 | ||
3213 | * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Strip any name encoding | |
3214 | on the section name. | |
3215 | ||
3216 | Sun Dec 24 17:46:03 1995 Markus Theissinger <Markus.Theissinger@gmd.de> | |
3217 | ||
3218 | * toplev.c (main): Add -ax option. | |
3219 | * gcc.c (struct compilers): Likewise. | |
3220 | * final.c (end_final): Extended header increased to 11 words. | |
3221 | (profile_after_prologue): FUNCTION_BLOCK_PROFILER uses | |
3222 | count_basic_blocks instead of profile_label_no. | |
3223 | ||
3224 | * libgcc2.c (struct bb): Add flags field. | |
3225 | (HAVE_POPEN): Test new define. | |
3226 | (struct __bb, struct bb_{edge,func}): New structs. | |
3227 | (__bb_init_{prg,file},__bb_{init,exit}_trace_func,__bb_trace_ret, | |
3228 | (__bb_trace_func{,_ret},gopen,gclose): New functions. | |
3229 | ||
3230 | * sparc.h, i386.h, m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): | |
3231 | Extension for -ax option (profile_block_flag == 2). | |
3232 | (MACHINE_STATE_SAVE,MACHINE_STATE_RESTORE): New macros. | |
3233 | (FUNCTION_BLOCK_PROFILER_EXIT): New macro. | |
3234 | * sparc.c (output_function_epilogue), i386.c (function_epilogue): | |
3235 | Use FUNCTION_BLOCK_PROFILER_EXIT. | |
3236 | * m68k.c (output_function_epilogue): Likewise. | |
3237 | * xm-sparc.h: Define HAVE_POPEN. | |
3238 | ||
3239 | Sun Dec 24 06:50:30 1995 Barrett Richardson (barrett@iglou.com) | |
3240 | ||
3241 | * floatlib.c (__divdf3): Rewrite to do software divide of two | |
3242 | doubles instead of using __divsf3. | |
3243 | ||
3244 | Sun Dec 24 06:38:15 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3245 | ||
3246 | * rs6000.md (movdf): Don't copy a word at a time; nearly always loses. | |
3247 | ||
3248 | * c-tree.h (DECL_C_BIT_FIELD): New macro. | |
3249 | * c-decl.c (finish_struct): Set it when set DECL_BIT_FIELD. | |
3250 | * c-typeck.c (mark_addressable, case COMPONENT_REF): | |
3251 | Give error if taking address of a bit field. | |
3252 | ||
3253 | * gcc.c (unused_prefix_warning): Include machine_suffix if | |
3254 | require_machine_suffix. | |
3255 | (warn_B, warn_std, warn_std_ptr): New variables. | |
3256 | (process_commands): Use them and NULL_PTR as WARN arg to add_prefix. | |
3257 | ||
3258 | * gcc.c (process_command): Give error for -c with -o and | |
3259 | multiple compilations. | |
3260 | (handle_braces): Rename variable "pipe" to "pipe_p". | |
3261 | ||
3262 | * expr.h (clrstr_optab): New declaration. | |
3263 | (clear_storage): New parm, ALIGN. | |
3264 | * tree.h (CONSTRUCTOR_TARGET_CLEARED_P): New macro. | |
3265 | * genopinit.c (optabs): Add "clrstr%a%". | |
3266 | * optabs.c (init_optabs): Initialize clrstr_optab. | |
3267 | * expr.c (struct clear_by_pieces): New structure. | |
3268 | (clear_by_pieces{,_1}, {is,mostly}_zeros_p): New functions. | |
3269 | (clrstr_optab): New optab. | |
3270 | (clear_storage): Rework to try to use clear_by_pieces, then | |
3271 | new clrstr insn, then library call. | |
3272 | (store_constructor): Track if target is already cleared. | |
3273 | Clear target first if CONSTRUCTOR is mostly zeros. | |
3274 | Don't write zeros if target has been cleared. | |
3275 | Add new arg to clear_storage call. | |
3276 | (expand_expr, case CONSTRUCTOR): Don't put static constructor | |
3277 | in memory if mostly zero. | |
3278 | * i386.md (clrstrsi): New pattern and associate anonymous pattern. | |
3279 | ||
3280 | Sat Dec 23 12:21:53 1995 Jeffrey A. Law <law@cygnus.com> | |
3281 | ||
3282 | * pa.c (output_move_double): Correctly identify and handle | |
3283 | overlapping moves. | |
3284 | * pa.md (movdi patterns): Eliminate earlyclobbers in mem<->gr | |
3285 | cases. | |
3286 | (movdf patterns): Likewise. | |
3287 | ||
3288 | Fri Dec 22 17:29:42 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3289 | ||
3290 | * expr.c (store_constructor): Don't call change_address on REG. | |
3291 | (expand_expr, case CONSTRUCTOR): Likewise. | |
3292 | ||
3293 | * mips.c (expand_block_move): Preserve MEM flags in call to | |
3294 | movstrsi_internal. | |
3295 | ||
3296 | * pa.c (emit_move_sequence): Don't try to set REGNO_POINTER_FLAG | |
3297 | for a SUBREG. | |
3298 | ||
3299 | * reload.c (find_valid_class): New function. | |
3300 | (push_reload): Use it in cases where a SUBREG and its contents | |
3301 | both need to be reloaded. | |
3302 | ||
3303 | * toplev.c (rest_of_compilation): Never defer functions that | |
3304 | contain nested functions. | |
3305 | ||
3306 | Fri Dec 22 15:55:00 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
3307 | ||
3308 | * rs6000.md (function units): Add 403 support which deleted | |
3309 | by accident on Nov 21st. Mark all compares from 602, 603, 604, | |
3310 | 620, 403, like was done for rios{1,2} and 601 as needing the bpu, | |
3311 | so that compares are hoisted far enough branches for zero cycle | |
3312 | branch support. | |
3313 | ||
3314 | Fri Dec 22 15:13:47 1995 Stan Cox <coxs@dg-rtp.dg.com> | |
3315 | ||
3316 | * i386.h: (TARGET_UNROLL_STRLEN): New macro. | |
3317 | * i386.c: (output_strlen_unroll): New function. | |
3318 | * i386.md: (strlensi): New pattern. | |
3319 | ||
3320 | Thu Dec 21 18:53:31 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> | |
3321 | ||
3322 | * config/gnu.h (GNU_CPP_PREDEFINES): Add missing space after | |
3323 | -Amachine(CPU). | |
3324 | ||
3325 | Thu Dec 21 12:23:42 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
3326 | ||
3327 | * configure ({powerpc,rs6000}*): Change --enable-cpu to | |
3328 | --with-cpu. | |
3329 | * rs6000.c (rs6000_select): Ditto. | |
3330 | ||
3331 | * rs6000/aix41.h (LINK_SPEC): Do not pass -bexport to the linker | |
3332 | if -g and -shared. | |
3333 | ||
3334 | Wed Dec 20 11:23:39 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
3335 | ||
3336 | * configure ({powerpc,rs6000}-ibm-aix*): Merge these two into the | |
3337 | same case statement. Aix 4 now generates -mcpu=common by default. | |
3338 | ({powerpc,rs6000}*): Add support for --enable-cpu=<value> to | |
3339 | select the default cpu to compile for. | |
3340 | ||
3341 | * rs6000/aix41.h (TARGET_DEFAULT): Make -mcpu=common the default | |
3342 | behavior. | |
3343 | (PROCESSOR_DEFAULT): Ditto. | |
3344 | (MULTILIB_DEFAULTS): Set mcpu=common. | |
3345 | ||
3346 | * rs6000/rs6000.h (TARGET_CPU_DEFAULT): Define to be NULL if not | |
3347 | defined. This is used for the --enable-cpu=<value> switch. | |
3348 | (PROCESSOR_COMMON): Set this to PROCESSOR_601. | |
3349 | (PROCESSOR_POWERPC): Set this to PROCESSOR_604. | |
3350 | (TARGET_OPTIONS): Add -mtune= switch. | |
3351 | (rs6000_select): New structure to hold -mcpu=, -mtune= switches | |
3352 | and the result of configuring --enable-cpu=. | |
3353 | (OVERRIDE_OPTIONS): Pass TARGET_CPU_DEFAULT to | |
3354 | rs6000_override_options. | |
3355 | ||
3356 | * rs6000/rs6000.c (rs6000_cpu_string): Delete global variable. | |
3357 | (rs6000_select): Define new global variable. | |
3358 | (rs6000_override_options): Take default_cpu argument, and provide | |
3359 | support for it and -mtune= in addition to -mcpu=. | |
3360 | ||
3361 | * rs6000/{aix{3newas,41},lynx,netware,powerpc}.h (ASM_SPEC): Add | |
3362 | support for -mcpu=power2. | |
3363 | * rs6000/{rs6000,sysv4}.h (ASM_SPEC): Ditto. | |
3364 | ||
3365 | * rs6000/{aix41,eabiaix,eabile,lynx,powerpc}.h (CPP_SPEC): Make | |
3366 | sure all -mcpu=xxx targets are supports. | |
3367 | * rs6000/{rs6000,sysv4,sysv4le}.h (CPP_SPEC): Ditto. | |
3368 | ||
3369 | * rs6000/t-x{newas,rs6000}: New files to be used when making a | |
3370 | cross compiler, to prevent libgcc1-test from being made. | |
3371 | ||
3372 | * rs6000/t-{x,}newas (MULTILIB_*): Build multlilib libraries for | |
3373 | power, power2, 601, powerpc, and common mode processors. | |
3374 | ||
3375 | * rs6000/aix41ppc.h: Delete, no longer used. | |
3376 | ||
3377 | Tue Dec 19 18:31:21 1995 Jim Wilson <wilson@cygnus.com> | |
3378 | ||
3379 | * mips.c (mips_reg_names, mips_sw_reg_names, mips_regno_to_class): | |
3380 | Add entry for new RAP reg. | |
3381 | * mips.h (FIRST_PSEUDO_REGISTER): Increment. | |
3382 | (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES, | |
3383 | DEBUG_REGISTER_NAMES): Add entry for new RAP reg. | |
3384 | (RAP_REG_NUM, RETURN_ADDRESS_POINTER_REGNUM): New macros. | |
3385 | (RETURN_ADDR_RTX): Define. | |
3386 | (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): | |
3387 | Add RETURN_ADDRESS_POINTER_REGNUM support. | |
3388 | * emit-rtl.c (return_address_pointer_rtx): New global variable. | |
3389 | (gen_rtx, init_emit_once): Add support for it. | |
3390 | ||
3391 | Tue Dec 19 15:08:31 1995 Jason Merrill <jason@yorick.cygnus.com> | |
3392 | ||
3393 | * collect2.c: Remove auto_export functionality. | |
3394 | ||
3395 | Tue Dec 19 10:57:23 1995 Kim Knuttila <krk@cygnus.com> | |
3396 | ||
3397 | * ginclude/ppc-asm.h: Do not compile the register macros under | |
3398 | winnt. | |
3399 | ||
3400 | Mon Dec 18 19:31:23 1995 Adam Fedor <fedor@wilma.Colorado.EDU> | |
3401 | ||
3402 | * objc/encoding.c (objc_alignof_type): Handle _C_PTR case. | |
3403 | ||
3404 | Mon Dec 18 18:40:34 1995 Jim Wilson <wilson@chestnut.cygnus.com> | |
3405 | ||
3406 | * combine.c (simplify_rtx, case SUBREG): For SUBREG of a constant, | |
3407 | use <= instead of < when comparing mode sizes. | |
3408 | (force_to_mode, case NOT): Use full mask inside the NOT operation. | |
3409 | ||
3410 | * expr.c (emit_block_move): When call emit_libary_call for bcopy, | |
3411 | pass arguments using correct types and modes. | |
3412 | (emit_push_insn, expand_assignment): Likewise. | |
3413 | (clear_storage, store_expr): Likewise for memset and bzero. | |
3414 | (store_constructor): Likewise for memset. | |
3415 | * optabs.c (emit_cmp_insn): Likewise for memcmp and bcmp. | |
3416 | * convex/convex.c (expand_movstr_call): Likewise for memcpy. | |
3417 | * m88k/m88k.c (expand_block_move): Likewise for memcpy and bcopy. | |
3418 | * mips/mips.c (block_move_call): Likewise for memcpy and bcopy. | |
3419 | * mips/mips.h (INITIALIZE_TRAMPOLINE): Likewise for cacheflush. | |
3420 | ||
3421 | * c-common.c (WCHAR_TYPE_SIZE): Add a default definition. | |
3422 | ||
3423 | * sdbout.c (sdbout_symbol, case FUNCTION_DECL): Use DECL_INITIAL | |
3424 | instead of DECL_EXTERNAL to identify declarations. | |
3425 | ||
3426 | * svr4.h (ASM_IDENTIFY_GCC): Don't output stab here. | |
3427 | (ASM_IDENTIFY_GCC_AFTER_SOURCE): Output stab here instead of | |
3428 | above. | |
3429 | ||
3430 | * stmt.c (expand_asm_operands): Handle numeric constraints in | |
3431 | with the default case. | |
3432 | ||
3433 | Mon Dec 18 16:49:43 1995 John F. Carr <jfc@mit.edu> | |
3434 | ||
3435 | * expr.h (expand_mult_highpart_adjust): Declare. | |
3436 | ||
3437 | Mon Dec 18 16:39:41 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3438 | ||
3439 | * expr.c (store_constructor): Fix error in last change: just | |
3440 | copy MEM, but be sure to share address. | |
3441 | (expand_expr, case CONSTRUCTOR): Likewise. | |
3442 | ||
3443 | Mon Dec 18 16:22:46 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
3444 | ||
3445 | * rs6000.h (ASM_GENERATE_INTERNAL_LABEL): Put a leading '*' | |
3446 | in the label string so as to not confuse dbxout.c which believes | |
3447 | it can skip the leading character of the string. | |
3448 | ||
3449 | Mon Dec 18 09:44:56 1995 Mike Stump <mrs@cygnus.com> | |
3450 | ||
3451 | * libgcc2.c (__empty): An empty function used by the C++ frontend for | |
3452 | defaulting cleanup actions. | |
3453 | ||
3454 | * tree.c (save_tree_status, restore_tree_status): Save and restore | |
3455 | temporary_firstobj, so that in progress objects that live on the | |
3456 | temporary obstack are not reallocated, if we save and restore the | |
3457 | tree status in their lifetime. | |
3458 | ||
3459 | ||
3460 | Mon Dec 18 07:49:34 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3461 | ||
3462 | * function.c (fixup_var_refs_1): Fix error in last change (when | |
3463 | mode of VAR is not the same as PROMOTED_MODE). | |
3464 | ||
3465 | Sun Dec 17 12:14:37 1995 Jeffrey A. Law <law@cygnus.com> | |
3466 | ||
3467 | * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Don't surround section names | |
3468 | with '$'. That confuses collect2. | |
3469 | (ASM_OUTPUT_SECTION_NAME): Likewise. | |
3470 | ||
3471 | * sched.c (canon_rtx): Recursively look for equivalences; | |
3472 | look for expressions equivalent to MEMs. | |
3473 | (true_dependence): Canonicalize inputs before operating | |
3474 | on their values. | |
3475 | (anti_dependence, output_dependence): Likewise. | |
3476 | ||
3477 | * jump.c (follow_jumps): Don't follow an unconditional jump | |
3478 | that is not a simple_jump. | |
3479 | ||
3480 | * pa.c (override_options): Make 7100 scheduling the default. | |
3481 | ||
3482 | * pa.md: Add 2nd reload peephole somehow omitted from Nov27 changes. | |
3483 | ||
3484 | * regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's | |
3485 | defined to avoid useless work. | |
3486 | ||
3487 | * combine.c (find_split_point): Try to split SET_DEST | |
3488 | just like we do for SET_SRC. | |
3489 | ||
3490 | Sun Dec 17 11:37:25 1995 Torbjorn Granlund <tege@noisy.tmg.se> | |
3491 | ||
3492 | * expmed.c (expand_mult_highpart): When doing widening multiply, | |
3493 | put constant in a register. | |
3494 | (expand_mult_highpart): When mode is word_mode use gen_highpart | |
3495 | instead of right shift by size. | |
3496 | ||
3497 | * expr.c (expand_expr, case MULT_EXPR): Generalize code for widening | |
3498 | multiply to handle signed widening multiply when only unsigned optab | |
3499 | is defined, and vice versa. | |
3500 | ||
3501 | Sun Dec 17 07:35:50 1995 Pat Rankin <rankin@eql.caltech.edu> | |
3502 | ||
3503 | * vax/vms.h (WCHAR_TYPE_SIZE): Define. | |
3504 | ||
3505 | Sun Dec 17 07:08:34 1995 Ronald F. Guilmette <rfg@monkeys.com>. | |
3506 | ||
3507 | * fp-test.c: New file. | |
3508 | ||
3509 | Sun Dec 17 07:06:03 1995 Peter Flass <flass@lbdc.senate.state.ny.us> | |
3510 | ||
3511 | * i370.md (cmpqi): Fix generation of literal operand of CLM instruction | |
3512 | to avoid double literals (=X'=F'...). | |
3513 | ||
3514 | Sun Dec 17 06:57:02 1995 Paul Eggert <eggert@twinsun.com> | |
3515 | ||
3516 | * cccp.c: Try harder not to open or stat the same include file twice. | |
3517 | Simplify include file names so that they are more likely to match. | |
3518 | E.g. simplify "./a//b" to "a/b". Represent directories with simplified | |
3519 | prefixes, e.g. replace "./a//b" with "a/b/", and "." with "". | |
3520 | ||
3521 | (absolute_filename): New function. | |
3522 | (do_include): Use it. | |
3523 | (read_name_map): Likewise; this makes things more consistent for DOS. | |
3524 | ||
3525 | (main, do_include, open_include_file): -M output now contains | |
3526 | operands of -imacros and -include. | |
3527 | ||
3528 | (skip_to_end_of_comment): When copying a // comment, don't try to | |
3529 | change it to a /* comment. | |
3530 | (rescan, skip_if_group, skip_to_end_of_comment, macarg1): Tune. | |
3531 | ||
3532 | (rescan, skip_if_group, skip_to_end_of_comment, macarg1): | |
3533 | If warn_comments is nonzero, warn if backslash-newline appears | |
3534 | in a // comment. Simplify method for finding /* /* */ comment. | |
3535 | (skip_if_group): Optionally warn if /* /* */ appears between # and | |
3536 | a directive inside a skipped if group. | |
3537 | (macarg): Optionally warn if /* /* */ appears in a macro argument. | |
3538 | ||
3539 | (strncat, VMS_strncat, vms_ino_t, ino_t): Remove. | |
3540 | (INCLUDE_LEN_FUDGE): Add 2 if VMS, for trailing ".h". | |
3541 | (INO_T_EQ, INO_T_HASH): New macros. | |
3542 | ||
3543 | (struct file_buf): New member `inc'. | |
3544 | (expand_to_temp_buffer): Initialize it. | |
3545 | ||
3546 | (struct file_name_list): New member `inc'. | |
3547 | (struct file_name_list): New member `st'. | |
3548 | c_system_include_path is now 1 if not 0. | |
3549 | fname is now an array, not a pointer. | |
3550 | (struct include_file): New members `next_ino', `deps_output', `st'. | |
3551 | Remove members `inode' and `dev'; they are now in `st'. | |
3552 | ||
3553 | (INCLUDE_HASHSIZE): Rename from INCLUDE_HASH_SIZE. | |
3554 | (include_hashtab): Rename from include_hash_table. | |
3555 | (include_ino_hashtab): New variable. | |
3556 | ||
3557 | (main): Store file status in struct stat, not in long and int pieces. | |
3558 | Use base_name to strip prefixes from file names. | |
3559 | When printing directory prefixes, omit trailing / and print "" as ".". | |
3560 | Fatal error if the input file is a directory. | |
3561 | (main, path_include): Regularize operands of -include, -imacros, | |
3562 | -isystem, -iwithprefix, and -iwithprefixbefore. | |
3563 | Regularize default include directories. | |
3564 | ||
3565 | (do_include): | |
3566 | Allocate dsp with alloca, since fname is now dynamically allocated. | |
3567 | Use -3 to represent a never-opened file descriptor. | |
3568 | Make copy of file name, and simplify the copy. | |
3569 | Use base_name to identify the end of fname's directory. | |
3570 | Do not prepend dir for "..." if it matches the search list's first dir. | |
3571 | open_include_file now subsumes redundant_include_p and lookup_import. | |
3572 | Use bypass_slot to remember when to skip directories when including | |
3573 | a file that has already been seen. | |
3574 | Instead of using 0 to represent the working directory, and "" | |
3575 | to represent a directory to be ignored, use "" for the former, | |
3576 | and assume the latter has been removed before we get here. | |
3577 | Assume the directory prefixes have already been simplified. | |
3578 | Report as errors all open failures other than ENOENT. | |
3579 | Fatal error if fstat fails. | |
3580 | Use new deps_output member to avoid printing dependencies twice. | |
3581 | (bypass_hashtab): New variable. | |
3582 | ||
3583 | (do_include, open_control_file, record_control_macro): New convention: | |
3584 | control_macro is "" if the file was imported or had #pragma once. | |
3585 | (pragma_once_marker): Remove. | |
3586 | ||
3587 | (redundant_include_p, include_hash, lookup_include, lookup_import, | |
3588 | add_import, file_size_and_mode): Remove; subsumed by open_include_file. | |
3589 | (skip_redundant_dir_prefix): Remove; subsumed by simplify_filename. | |
3590 | ||
3591 | (is_system_include, read_name_map, remap_include_file): | |
3592 | Assume arg is a directory prefix. | |
3593 | ||
3594 | (base_name, simplify_filename, remap_include_file, | |
3595 | lookup_ino_include, new_include_prefix): New functions. | |
3596 | ||
3597 | (open_include_file): New arguments `importing' and `pinc'. | |
3598 | Move filename mapping into new remap_include_file function. | |
3599 | First try to find file by name in include_hashtab; | |
3600 | if that doesn't work, open and fstat it and try to find it | |
3601 | by inode and dev in include_ino_hashtab. | |
3602 | ||
3603 | (finclude): Get file status from inc->st instead of invoking fstat. | |
3604 | Store inc into fp->inc so that record_control_macro doesn't | |
3605 | need to do a table lookup. | |
3606 | (finclude, record_control_macro): Accept struct include_file * | |
3607 | instead of char * to identify include file. All callers changed. | |
3608 | ||
3609 | (check_precompiled): Get file status from new argument `st'. | |
3610 | ||
3611 | (do_pragma): Output at most one warning about #pragma implementation. | |
3612 | Always return 0 instead of returning garbage sometimes. | |
3613 | (do_pragma, hack_vms_include_specification): | |
3614 | Use base_name for consistency, and remove redundant code. | |
3615 | ||
3616 | From Per Bothner: | |
3617 | Unify the 3 separate mechanisms for avoiding processing | |
3618 | of redundant include files: #import, #pragma once, and | |
3619 | redundant_include_p to use a single more efficient data structure. | |
3620 | (struct file_name_list): Remove no-longer needed field control_macro. | |
3621 | (dont_repeat_files, all_include_files): Remove, no longer used. | |
3622 | (struct import_file): Renmed to struct include_file, moved earlier | |
3623 | in file, renamed field name to fname, and added control_macro field. | |
3624 | (pragma_once_marker): New constant. | |
3625 | (import_hash_table): Renamed to include_hash_table. | |
3626 | (import_hash): Renamed to include_hash. | |
3627 | (IMPORT_HASH_SIZE): Renamed to INCLUDE_HASH_SIZE. | |
3628 | (main, path_include): Don't clear removed control_macro field. | |
3629 | (lookup_include): New function - look up fname in include_hash_table. | |
3630 | (redundant_include_p): Re-write to use lookup_include. | |
3631 | (lookup_import, record_control_macro): Likewise. | |
3632 | (add_import): Defer fstat to caller. Combine two xmallocs into one. | |
3633 | (do_once): Use pragma_once_marker in include_hash_table. | |
3634 | (do_pragma): Re-implement to scan include_hash_table. | |
3635 | (do_include): Use new lookup_include and add_import. | |
3636 | ||
3637 | Sun Dec 17 06:45:43 1995 John F. Carr <jfc@mit.edu> | |
3638 | ||
3639 | * configure (savesrcdir): Do not create paths with trailing "/.". | |
3640 | ||
3641 | * combine.c (try_combine): When checking for two sets of the same | |
3642 | register in a split insn, also test for setting a ZERO_EXTRACT, | |
3643 | STRICT_LOW_PART, or SUBREG. | |
3644 | ||
3645 | Sun Dec 17 06:37:00 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3646 | ||
3647 | * reload.c (push_secondary_reload): Don't strip paradoxical SUBREG | |
3648 | if reload_class is CLASS_CANNOT_CHANGE_SIZE. | |
3649 | ||
3650 | Sat Dec 16 18:24:20 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3651 | ||
3652 | * expr.c (expand_assignment): Fix alignment parm in emit_block_move. | |
3653 | ||
3654 | Sat Dec 16 18:16:08 1995 John Hassey (hassey@rtp.dg.com) | |
3655 | ||
3656 | * local-alloc.c (optimize_reg_copy_2): Don't attempt | |
3657 | optimization if destination register dies. | |
3658 | ||
3659 | Sat Dec 16 08:31:16 1995 Paul Eggert <eggert@twinsun.com> | |
3660 | ||
3661 | * fold-const.c (fold): Don't record overflow when negating | |
3662 | unsigned constants. | |
3663 | ||
3664 | Sat Dec 16 07:45:11 1995 Gran Uddeborg (uddeborg@carmen.se) | |
3665 | ||
3666 | * configure (i[3456]-*-isc, gas, stabs): Remove crt* from extra_files | |
3667 | ||
3668 | Sat Dec 16 07:03:33 1995 Philippe De Muyter (phdm@info.ucl.ac.be) | |
3669 | ||
3670 | * stor-layout.c (layout_record): When PCC_BITFIELD_TYPE_MATTERS, | |
3671 | compute bitpos using field_size % type_align instead of field_size. | |
3672 | ||
3673 | * fixincludes (stdio.h): Fix return type of fread and fwrite | |
3674 | on sysV68. | |
3675 | ||
3676 | Sat Dec 16 06:57:14 1995 Thomas Lundqvist (d0thomas@dtek.chalmers.se) | |
3677 | ||
3678 | * function.c (fixup_var_refs_1): Fix two incorrect calls to single_set. | |
3679 | ||
3680 | Fri Dec 15 22:30:27 1995 Torbjorn Granlund <tege@noisy.tmg.se> | |
3681 | ||
3682 | * i386.h (REGISTER_MOVE_COST): Simplify. | |
3683 | ||
3684 | Fri Dec 15 22:30:27 1995 Stan Cox <coxs@dg-rtp.dg.com> | |
3685 | ||
3686 | * i386.h (TARGET_CPU_DEFAULT*, PROCESSOR_*, | |
3687 | TARGET_{LEAVE,386_ALIGNMENT,PUSH_MEMORY,ZERO_EXTEND_WITH_AND, | |
3688 | DOUBLE_WITH_ADD,BIT_TEST}): New macros. | |
3689 | * i386.c (ix86_cpu*, ix86_isa*): New global variables. | |
3690 | (override_options): Add -mcpu and -misa support | |
3691 | * i386.md: Use TARGET* macros. | |
3692 | * i386/dgux.{c,h}: New files. | |
3693 | * m88k/t-dgux: (GCC_FOR_TARGET, T_CFLAGS): New macros. | |
3694 | * m88k/t-dguxbcs: New file. | |
3695 | * m88k/x-{dgux,dguxbcs}: (GCC_FOR_TARGET, X_CFLAGS): Removed. | |
3696 | ||
3697 | Fri Dec 15 18:41:50 1995 Philippe De Muyter (phdm@info.ucl.ac.be) | |
3698 | ||
3699 | * fixincludes (sys/wait.h): Add forward declaration of struct rusage | |
3700 | on AIX 3.2.5. | |
3701 | ||
3702 | Fri Dec 15 18:39:36 1995 Marco S Hyman (marc@dumbcat.sf.ca.us) | |
3703 | ||
3704 | * xm-bsd386.h (DONT_DECLARE_SYS_SIGLIST): Defined. | |
3705 | ||
3706 | Fri Dec 15 18:36:42 1995 Gran Uddeborg (uddeborg@carmen.se) | |
3707 | ||
3708 | * i386/svr3dbx.h (DO_GLOBAL_DTORS_BODY): Delete; obsolete. | |
3709 | ||
3710 | Fri Dec 15 18:21:34 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | |
3711 | ||
3712 | * i386/i386iscgas.h, i386/t-iscscodbx: Deleted; long dead. | |
3713 | ||
3714 | Fri Dec 15 10:01:27 1995 Stan Cox <coxs@dg-rtp.dg.com> | |
3715 | ||
3716 | * configure (target_cpu_default) Set for 486/586/686 | |
3717 | (m88k-dg-dgux) Use t-dguxbcs instead of x-dguxbcs | |
3718 | (i*86*) Change [345] to [3456] | |
3719 | (i[3456]86-dg-dgux) Added | |
3720 | * Makefile.in (out_object_file) Add MAYBE_TARGET_DEFAULT | |
3721 | ||
3722 | Fri Dec 15 08:05:49 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3723 | ||
3724 | * function.c (init_temp_slots): New function. | |
3725 | (init_function_start): Code moved to new function and called here. | |
3726 | * toplev.c (rest_of_compilation): Call init_temp_slots. | |
3727 | ||
3728 | * expmed.c (store_bit_field): Don't use insv for BLKmode value. | |
3729 | (store_split_bit_field): Set total_bits to BITS_PER_FOR for | |
3730 | BLKmode value. | |
3731 | ||
3732 | Fri Dec 15 06:35:36 1995 David Edelsohn <edelsohn@mhpcc.edu> | |
3733 | ||
3734 | * xcoffout.h (DBX_STATIC_BLOCK_END): Use macro arguments. | |
3735 | (xcoff_begin_function_line, xcoff_current_function_file): Remove | |
3736 | unused extern declarations. | |
3737 | (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Use macro argument. | |
3738 | * xcoffout.c (xcoff_begin_function_line): Make static. | |
3739 | (xcoff_inlining): Likewise. | |
3740 | (xcoff_current_function_file): Likewise. | |
3741 | (xcoff_output_standard_types): Remove TARGET_64BIT dependencies from | |
3742 | int and unsigned int. | |
3743 | ||
3744 | Mon Oct 16 12:25:52 1995 Per Bothner <bothner@kalessin.cygnus.com> | |
3745 | ||
3746 | * fix-header.c: Support different kinds of functions (ANSI and | |
3747 | Posix1). Enable ANSI proptotypes if __STRICT_ANSI__. | |
3748 | (namelist_end): Removed. | |
3749 | (std_include_table): Divide up functions into kinds. | |
3750 | (add_symbols): New function. | |
3751 | (read_scanfile, write_rbrac, main): Use new data structures. | |
3752 | ||
3753 | Thu Dec 14 19:17:12 1995 Torbjorn Granlund <tege@noisy.tmg.se> | |
3754 | ||
3755 | * rs6000.md (umulsidi3): New pattern. | |
3756 | ||
3757 | Thu Dec 14 18:08:59 1995 Torbjorn Granlund <tege@noisy.tmg.se> | |
3758 | ||
3759 | * expmed.c (expand_divmod, case TRUNC_DIV_EXPR): Only reject | |
3760 | larger-than-HOST_BITS_PER_WIDE_INT modes for general constants, | |
3761 | not for powers-of-2. | |
3762 | ||
3763 | * i960.md (andsi3): Match op2 with logic_operand, change constraints | |
3764 | accordingly. Output andnot for negative op2. | |
3765 | (iorsi3, xorsi3): Analogous changes. | |
3766 | * i960.c (logic_operand): New function. | |
3767 | (i960_print_operand): Handle code `C'. | |
3768 | * i960.h (PREDICATE_CODES): Add logic_operand. | |
3769 | (CONST_OK_FOR_LETTER_P): Handle `M'. | |
3770 | * i960.md: Move all plain logical patterns together. | |
3771 | * i960.h (SHIFT_COUNT_TRUNCATED): Define as 0 as appropriate. | |
3772 | ||
3773 | * clipper.md (untyped_call): New pattern. | |
3774 | ||
3775 | * m68k.md (ashrsi_31): New pattern. | |
3776 | ||
3777 | Thu Dec 14 17:22:14 1995 Richard Earnshaw (rearnsha@armltd.co.uk) | |
3778 | ||
3779 | * arm/arm.c (output_move_double): Extract DFmode constants using | |
3780 | REAL_VALUE_TO_TARGET_DOUBLE. | |
3781 | ||
3782 | Thu Dec 14 15:05:13 1995 Doug Evans <dje@cygnus.com> | |
3783 | ||
3784 | * Makefile.in (distclean): Delete float.h. | |
3785 | * configure: Set CROSS_FLOAT_H from float_format. | |
3786 | * config/float-i64.h: New file. | |
3787 | * config/float-i32.h: New file. | |
3788 | * config/float-vax.h: New file. | |
3789 | * arm/cross-float.h: Delete. | |
3790 | * arm/t-semi (CROSS_FLOAT_H): Delete. | |
3791 | ||
3792 | Wed Dec 13 19:16:57 1995 Mike Stump <mrs@cygnus.com> | |
3793 | ||
3794 | * expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED. | |
3795 | ||
3796 | Wed Dec 13 19:12:21 1995 Paul Eggert <eggert@twinsun.com> | |
3797 | ||
3798 | * gcc.c (my_strerror): Return "cannot access" if errno is 0. | |
3799 | (perror_with_name, pfatal_with_name, perror_exec): Don't assume that | |
3800 | the returned value from my_strerror contains no '%'s. | |
3801 | (sys_nerr): Declare only if HAVE_STRERROR is not defined. | |
3802 | ||
3803 | Wed Dec 13 19:05:47 1995 Alan Modra (alan@spri.levels.unisa.edu.au) | |
3804 | ||
3805 | * Makefile.in (c-parse.y, objc-parse.y): Add warning that file is | |
3806 | automatically generated. | |
3807 | ||
3808 | Wed Dec 13 15:40:30 1995 Mike Stump <mrs@cygnus.com> | |
3809 | ||
3810 | * function.c (identify_blocks): Start with a chain of BLOCKs to | |
3811 | match the rest of the backend (dbxout.c), instead of just one | |
3812 | BLOCK. | |
3813 | (reorder_blocks): Ditto. | |
3814 | (all_blocks): Ditto. | |
3815 | ||
3816 | * stmt.c (find_loop_tree_blocks): Pass the toplevel list of | |
3817 | blocks, not just the first subblock. | |
3818 | ||
3819 | Wed Dec 13 16:11:18 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3820 | ||
3821 | * expmed.c (expand_divmod): Don't use TARGET if it's the wrong mode. | |
3822 | ||
3823 | Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com> | |
3824 | ||
3825 | * dbxout.c (struct typeinfo): Define. | |
3826 | (typevec): Change to be struct typeinfo *. Change other uses as | |
3827 | appropriate. | |
3828 | (struct dbx_file): Define if DBX_USE_BINCL. | |
3829 | (current_file): New static variable if DBX_USE_BINCL. | |
3830 | (next_file_number): Likewise. | |
3831 | (dbxout_init): If DBX_USE_BINCL, initialize new variables. | |
3832 | (dbxout_start_new_source_file): New function. | |
3833 | (dbxout_resume_previous_source_file): New function. | |
3834 | (dbxout_type_index): New function. | |
3835 | (dbxout_range_type): Use dbxout_type_index. | |
3836 | (dbxout_type): Likewise. If DBX_USE_BINCL, initialize new typevec | |
3837 | fields. | |
3838 | * c-lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols | |
3839 | == DBX_DEBUG, call dbxout_start_new_source_file and | |
3840 | dbxout_resume_previous_source_file when appropriate. | |
3841 | * config/sparc/sunos4.h (DBX_USE_BINCL): Define. | |
3842 | * config/svr4.h (DBX_USE_BINCL): Define. | |
3843 | ||
3844 | Wed Dec 13 06:52:40 1995 Michael Meissner <meissner@cygnus.com> | |
3845 | ||
3846 | * rs6000/win-nt.h (ASM_OUTPUT_EXTERNAL): Do not emit .extern for | |
3847 | builtin functions. | |
3848 | ||
3849 | Tue Dec 12 15:37:48 1995 David Edelsohn <edelsohn@mhpcc.edu> | |
3850 | ||
3851 | * rs6000.c: Replace many uses of fprintf with putc and fputs. | |
3852 | (output_function_profiler): Use more efficient mnemonics, target | |
3853 | dependent mnemonics, asm_fprintf, and reg_names array. | |
3854 | ||
3855 | * rs6000.h: Replace many uses of fprintf with putc and fputs. | |
3856 | ||
3857 | * rs6000.h (INT_TYPE_SIZE): Remove TARGET_64BIT dependency. | |
3858 | (MAX_INT_TYPE_SIZE): Delete. | |
3859 | ||
3860 | Tue Dec 12 13:58:57 1995 Doug Evans <dje@cygnus.com> | |
3861 | ||
3862 | * h8300/t-h8300 (MULTILIB_{OPTIONS,DIRNAMES}): Add -mint32 support. | |
3863 | ||
3864 | Sun Dec 10 18:51:21 1995 Torbjorn Granlund <tege@noisy.tmg.se> | |
3865 | ||
3866 | * rs6000.md (matcher for neg:SI (geu:SI ..)): Get ppc syntax right. | |
3867 | ||
3868 | Sun Dec 10 08:47:16 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
3869 | ||
3870 | * combine.c (simplify_if_then_else): Convert "a == b ? b : a" to "a". | |
3871 | ||
3872 | * expr.c (expand_expr, case CONSTRUCTOR): If TREE_READONLY, | |
3873 | set RTX_UNCHANGING_P in TARGET. | |
3874 | (expand_expr, case COMPONENT_REF): If result is BLKmode, | |
3875 | use that to access object too. | |
3876 | ||
3877 | Sun Dec 10 01:06:57 1995 Jeffrey A. Law <law@cygnus.com> | |
3878 | ||
3879 | * pa.md (millicode delay slot description): Remove reference | |
3880 | to defunct TARGET_MILLICODE_LONG_CALLS. | |
3881 | ||
3882 | Sat Dec 9 18:05:03 1995 Jim Wilson <wilson@cygnus.com> | |
3883 | ||
3884 | * expr.c (expand_expr, case INDIRECT_REF): Correct typo in May 8 | |
3885 | change. | |
3886 | ||
3887 | * sh.h (ADDRESS_COST): Define. | |
3888 | * sh.md (subsi3): Rename to subsi3_internal. Add new define_expand | |
3889 | to handle subtracting a register from a constant. | |
3890 | ||
3891 | Fri Dec 8 19:17:30 1995 Mike Meissner <meissner@beauty.cygnus.com> | |
3892 | ||
3893 | * rs6000/rs6000.c (input_operand): Allow any integer constant, not | |
3894 | just integers that fit in 1 instruction. | |
3895 | ||
3896 | Fri Dec 8 10:45:07 1995 Richard Earnshaw (rearnsha@armltd.co.uk) | |
3897 | ||
3898 | * arm/lib1funcs.asm (RET, RETCOND): Define according to whether we | |
3899 | are compiling for 32 or 26 bit mode. | |
3900 | (all return instructions): Use RET or RETCOND as appropriate. | |
3901 | ||
3902 | Wed Dec 6 06:58:23 1995 Richard Earnshaw (rearnsha@armltd.co.uk) | |
3903 | ||
3904 | * arm.c (arm_gen_constant): New function. | |
3905 | (arm_split_constant): Split most of the functionality into | |
3906 | arm_gen_constant. Try to decide which way of handling the constant | |
3907 | is optimal for the target processor. | |
3908 | ||
3909 | * arm.c (arm_prgmode): New enum. | |
3910 | (target_{cpu,fpe}_name, arm_fast_multiply, arm_arch4): New variables. | |
3911 | (all_procs): New table describing processors and capabilities. | |
3912 | (arm_override_options): New function. | |
3913 | (arm_return_in_memory): New function. | |
3914 | (arm_rtx_costs): Adjust the multiply costs to cope with processors | |
3915 | with fast multiplication instructions. | |
3916 | (output_move_double): Use the ldm/stm variants more efficiently. | |
3917 | Delete cases that can no-longer occur. | |
3918 | (output_return_instruction, output_func_epilogue): Use TARGET_APCS_32, | |
3919 | not TARGET_6 for determining the type of return instruction to emit. | |
3920 | (final_prescan_insn case CALL_INSN): Use TARGET_APCS_32, not TARGET_6 | |
3921 | to determine condition preservation. | |
3922 | * arm.h (CPP_SPEC): Add defines for the cpu type, hard or soft floating | |
3923 | point, and the APCS PC size. | |
3924 | (TARGET_*): Restructure. | |
3925 | (ARM_FLAG_*): Many new definitions for different target options, not | |
3926 | all of which are supported yet. | |
3927 | (TARGET_SWITCHES): Use the ARM_FLAG_* definitions instead of explicit | |
3928 | numbers. | |
3929 | (prog_mode_type): New enum. | |
3930 | (floating_point_type): Split emulated floating point into FP_SOFT[23]. | |
3931 | (OVERRIDE_OPTIONS): Call arm_override_options. | |
3932 | (ARM_CPU_NAME): Default to NULL if not defined by a subtarget. | |
3933 | (BYTES_BIG_ENDIAN): Can now be set as a compilation option. | |
3934 | (RETURN_IN_MEMORY, DEFAULT_PCC_STRUCT_RETURN): New definitions. | |
3935 | (GO_IF_LEGITIMATE_OFFSET): Use different HImode offsets if compiling | |
3936 | for an architecture 4 target. The offsets for floating point | |
3937 | constants are the same as for integers if compiling TARGET_SOFT_FLOAT. | |
3938 | (GO_IF_LEGITIMATE_ADDRESS): Don't allow PRE_INC and POST_DEC if | |
3939 | the size is more than 4 bytes. Restrict the range offsets for DImode; | |
3940 | likewise for DFmode when TARGET_SOFT_FLOAT. | |
3941 | (LEGITIMIZE_ADDRESS): Use symbol_mentioned_p, not LEGITIMATE_CONSTANT_P | |
3942 | to determine if a constant address might be better in a register. | |
3943 | Handle DFmode addresses in the same way as DImode if TARGET_SOFT_FLOAT. | |
3944 | (LOAD_EXTEND_OP): If arm_arch4, then HImode also zero-extends. | |
3945 | * arm.md (attributes): Rearrange order, so that condition clobbering | |
3946 | can be automatically determined for call insns. | |
3947 | (attribute cpu): Add new cpu ARM7. | |
3948 | (attribute type): Add new type MULT. | |
3949 | (attribute prog_mode): New attribute. | |
3950 | (attribute conds): Clobbering of call insns can now be determined | |
3951 | using prog_mode attribute. | |
3952 | (function units "write_buf", "write_blockage"): Model the write buffer | |
3953 | as two function units, so that conflicts are avoided more often. | |
3954 | (funcion unit "core"): New function unit, so that elapsed cycles can | |
3955 | be more accurately determined. | |
3956 | (all anonymous patterns): Add names. | |
3957 | (mulsidi3, umulsidi3): New patterns available with fast multiply | |
3958 | variants. | |
3959 | (all call insns): The conds attribute is now determined automatically. | |
3960 | (zero_extendhisi): Expand for architecture 4 variants if appropriate. | |
3961 | (*zero_extendhisi_insn): New pattern. | |
3962 | (extendqi{hi,si}, extendhisi): Expand for architecture 4 variants if | |
3963 | appropriate. | |
3964 | (*extendhisi_insn, *extendqihi, *extendqisi): New patterns. | |
3965 | (storehi_single_op): New expand. | |
3966 | (movhi): Handle architecture 4 expansion. | |
3967 | (*movhi_insn_arch4): New pattern. | |
3968 | (*movhi_*): Adjust applicability conditions to handle architecture 4. | |
3969 | (reload_outdf): Handle pre/post inc/dec reloads. | |
3970 | (tablejump): Delete. | |
3971 | (matcher for optimized tablejump): delete. | |
3972 | (casesi): New expand. | |
3973 | (casesi_internal): New pattern. | |
3974 | * semi.h (EXIT_BODY): Delete. | |
3975 | (TARGET_DEFAULT): Set to ARM_FLAG_APCS_32. | |
3976 | (CPP_SPEC): Define. | |
3977 | arm/cross-float.h: New file, used when building a cross-compiler. | |
3978 | * t-semi: Don't define inhibit_libc when building libgcc2.a. | |
3979 | (CROSS_FLOAT_H): Define. | |
3980 | ||
3981 | * arm.c ({symbol,label}_mentioned_p): New functions. | |
3982 | (add_constant, dump_table, fixit, find_barrier, broken_move): New | |
3983 | support functions for handling constant spilling. | |
3984 | (arm_reorg): New constant spilling pass, for putting unhandlable | |
3985 | constants into the rtl where we can load them efficiently. | |
3986 | (output_load_symbol): Delete. | |
3987 | * arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): No need to handle floating | |
3988 | point constants any more, since arm_reorg will deal with them. | |
3989 | (LEGITIMATE_CONSTANT_P): Is now anything that doesn't contain a | |
3990 | LABEL. | |
3991 | (GO_IF_LEGITIMATE_ADDRESS): Recognize address expressions generated | |
3992 | by arm_reorg, but only after reload has completed. | |
3993 | (MACHINE_DEPENDENT_REORG): Define. | |
3994 | (ASM_OUTPUT_SPECIAL_POOL_ENTRY): There should be nothing left in | |
3995 | the pool, even if it might look like it. | |
3996 | * arm.md (*movsi_insn): Much simpified now that constants are handled | |
3997 | properly. | |
3998 | (movaddr): New expand. | |
3999 | (movsf, movdf): No need to force constants into the pool any more. | |
4000 | (*movdf_hard_insn): Much simplified. | |
4001 | (consttable_4, consttable_8, consttable_end, align_4): New patterns | |
4002 | for supporting embedded constants. | |
4003 | ||
4004 | * configure: New target arm-semi-aof. | |
4005 | * arm.c (strings_fpa): Use a form which is common to both GAS and | |
4006 | ARMASM. | |
4007 | (output_return_instruction, output_func_epilogue): Call | |
4008 | assemble_external_libcall, before trying to generate an abort call | |
4009 | in the assembler. | |
4010 | (arm_asm_output_label): Call ARM_OUTPUT_LABEL, rather than assuming | |
4011 | that labels are followed by a colon. | |
4012 | (aof_text_section, aof_add_import, aof_delete_import, | |
4013 | aof_dump_imports): New functions to support ARMASM assembler | |
4014 | generation. | |
4015 | * arm/aout.h: New file. | |
4016 | * arm/aof.h: New file. | |
4017 | * arm.h (most assembler-specific defines): Move to arm/aout.h. | |
4018 | (CONSTANT_ADDRESS_P): Can't directly access constant strings when | |
4019 | generating assembler for ARMASM. | |
4020 | (ENCODE_SECTION_INFO): Don't define if generating ARMASM assembler. | |
4021 | (ASM_OUTPUT_INTERNAL_LABEL): Generalize, so that it can be used | |
4022 | with all targeted assemblers. | |
4023 | (ASM_OUTPUT_LABEL): Call arm_asm_output_label. | |
4024 | * riscix.h: Include arm/aout.h, not arm/arm.h. | |
4025 | * riscix1-1.h: Likewise. | |
4026 | * semi.h: Likewise. | |
4027 | * arm/semiaof.h: New file. | |
4028 | * arm/t-semiaof: New file. | |
4029 | ||
4030 | Mon Dec 4 22:17:37 1995 Jason Merrill <jason@yorick.cygnus.com> | |
4031 | ||
4032 | * gcc.c (LIBGCC_SPEC): Do link with libgcc when -shared. | |
4033 | * alpha.h (LIBGCC_SPEC): Remove. | |
4034 | * linux.h (LIBGCC_SPEC): Remove. | |
4035 | * svr4.h (LIBGCC_SPEC): Remove. | |
4036 | * i386/t-crtpic (TARGET_LIBGCC2_CFLAGS): Use -fPIC. | |
4037 | * t-pa (TARGET_LIBGCC2_CFLAGS): Use -fPIC. | |
4038 | * sparc/t-sunos41 (TARGET_LIBGCC2_CFLAGS): Use -fPIC. | |
4039 | * sparc/t-sol2 (TARGET_LIBGCC2_CFLAGS): Use -fPIC. | |
4040 | * configure (i386-linux): Use i386/t-crtpic. | |
4041 | ||
4042 | * i386/xm-sco.h: #define NO_SYS_SIGLIST. | |
4043 | ||
4044 | Mon Dec 4 21:30:37 1995 Jim Wilson <wilson@mole.gnu.ai.mit.edu> | |
4045 | ||
4046 | * sh/sh.c (shiftcosts): For SH3, max cost of arithmetic right | |
4047 | shift is 3. | |
4048 | (expand_ashiftrt): For SH3, if shift cost is more than 3, then | |
4049 | call gen_ashrsi3_d to use shad instruction. | |
4050 | ||
4051 | Mon Dec 4 18:29:08 1995 Jason Merrill <jason@yorick.cygnus.com> | |
4052 | ||
4053 | * c-decl.c (finish_struct): Don't mess with the type of bitfields. | |
4054 | ||
4055 | Mon Dec 4 15:28:02 1995 Richard Kenner (kenner@vlsi1.ultra.nyu.edu) | |
4056 | ||
4057 | * expr.c (store_constructor, record): If field is READONLY, | |
4058 | set RTX_UNCHANGING_P in TO_RTX. | |
4059 | ||
4060 | Mon Dec 4 12:59:33 1995 Ian Lance Taylor <ian@cygnus.com> | |
4061 | ||
4062 | * config/sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use -fPIC | |
4063 | unconditionally, since binutils 2.6 supports it. | |
4064 | ||
4065 | Sun Dec 3 20:55:43 1995 Jeffrey A. Law <law@cygnus.com> | |
4066 | ||
4067 | * pa.h (ASM_OUTPUT_FUNCTION_PREFIX): Handle arbitrary sections. | |
4068 | (ASM_OUTPUT_SECTION_NAME): Define. | |
4069 | ||
4070 | Sat Dec 2 22:19:16 1995 Jeffrey A. Law (law@cygnus.com) | |
4071 | ||
4072 | * pa.h: Replace many uses of fprintf with fputs. | |
4073 | * pa.c: Likewise. | |
4074 | * pa-pro.h: Likewise. | |
4075 | ||
4076 | * pa.h (SECONDARY_RELOAD_CLASS): Don't call secondary_reload_class | |
4077 | to handle trivial cases. | |
4078 | * pa.c (secondary_reload_class): Rework to be more efficient. | |
4079 | ||
4080 | Sat Dec 2 07:52:46 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
4081 | ||
4082 | * rs6000/rs6000.md (movsi): Don't split large constants in the | |
4083 | movsi pattern, let the define_split split it later as needed. | |
4084 | ||
4085 | Fri Dec 1 16:00:42 1995 Brendan Kehoe <brendan@cygnus.com> | |
4086 | ||
4087 | * sparc/sparc.c (output_double_int): Handle CODE_LABEL's if v9. | |
4088 | ||
4089 | Fri Dec 1 09:13:23 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
4090 | ||
4091 | * m68k/m68k.md (decrement_and_branch_until_zero): Split into a | |
4092 | define_expand and an anonymous define_insn. | |
4093 | * fx80/fx80.md (decrement_and_branch_until_zero): Ditto. | |
4094 | * m88k/m88k.md (decrement_and_branch_until_zero): Ditto. | |
4095 | ||
4096 | Thu Nov 30 15:02:16 1995 Jim Wilson <wilson@mole.gnu.ai.mit.edu> | |
4097 | ||
4098 | * sh.c (noncall_uses_reg): New function. | |
4099 | (machine_dependent_reorg): Add support for TARGET_RELAX. | |
4100 | (final_prescan_insn): Likewise. | |
4101 | * sh.h (ASM_SPEC, LINK_SPEC): Pass on -mrelax. | |
4102 | (RELAX_BIT, TARGET_RELAX): New macros. | |
4103 | (TARGET_SWITCHES): Add -mrelax. | |
4104 | ||
4105 | * sh/sh.c (insn-attr.h): Include. | |
4106 | (pragma_nosave_low_regs): New global variable. | |
4107 | (calc_live_regs): If SH3 and pragma_nosave_low_regs, then don't | |
4108 | save registers r0 through r7 for interrupt functions. | |
4109 | (function_epilogue): Clear pragma_nosave_low_regs. | |
4110 | (handle_pragma): Set pragma_nosave_low_regs if see pragma for it. | |
4111 | ||
4112 | * sh/sh.h (FUNCTION_PROFILER): Use trap #33 instead of trap #5. | |
4113 | Put additional .align before trapa instruction. | |
4114 | ||
4115 | Thu Nov 30 14:45:13 1995 Doug Evans <dje@canuck.cygnus.com> | |
4116 | ||
4117 | * sparc.md (seqdi_special_trunc, snedi_special_trunc, | |
4118 | seqsi_special_extend, snesi_special_extend): Delete uses of SUBREG. | |
4119 | Make compare modes match modes of operands. | |
4120 | (snesi_zero_extend, snedi_zero_trunc_sp32, snedi_zero_trunc_sp64, | |
4121 | seqsi_zero_extend, seqdi_zero_trunc_sp32, seqdi_zero_trunc_sp64): | |
4122 | New patterns. | |
4123 | ||
4124 | Thu Nov 30 12:27:22 1995 Michael Meissner <meissner@tiktok.cygnus.com> | |
4125 | ||
4126 | * genmultilib: Take a 4th argument that says are the exceptions to | |
4127 | the multilibs, so illegal combinations can be eliminated. | |
4128 | ||
4129 | * Makefile.in (multilib.h): Pass $(MULILIB_EXCEPTIONS) as the 4th | |
4130 | argument to genmultilib. | |
4131 | ||
4132 | * configure (powerpc*): Remove little endian and eabiaix versions | |
4133 | of the t-* files. Accept powerpc{,le}-*-sysv in addition to | |
4134 | *-sysv4. | |
4135 | (powerpc{,le}-*-eabisim): Use standard t-eabigas instead of | |
4136 | t-eabisim. | |
4137 | (powerpcle-*-{winnt3,pe}): Add support for Windows NT on PowerPC. | |
4138 | * rs6000/t-{eabiaix,eabisim,eabilegas,ppclegas}: Delete. | |
4139 | ||
4140 | * rs6000/{t-winnt,win-nt.h}: New files for PowerPC Windows NT. | |
4141 | ||
4142 | * ginclude/ppc-asm.h: New file to provide common macros for the | |
4143 | various PowerPC calling sequences. | |
4144 | * rs6000/eabi.asm: Use ppc-asm.h. | |
4145 | ||
4146 | * rs6000/aix3newas.h (CPP_SPEC): Add support for -mcpu=603e, 602, | |
4147 | and 620. | |
4148 | * rs6000/{aix41,powerpc,rs6000,eabi{aix,le}}.h (CPP_SPEC): Ditto. | |
4149 | * rs6000/sysv4{,le}.h (CPP_SPEC): Ditto. | |
4150 | ||
4151 | * rs6000/aix3newas.h (LINK_SPEC): If cross compiling, don't use | |
4152 | absolute paths. | |
4153 | * rs6000/{aix41,aixppc,rs6000}.h (LINK_SPEC): Ditto. | |
4154 | ||
4155 | * rs6000/eabi.h (INVOKE__main): Don't define any more. | |
4156 | (ASM_OUTPUT_INT): Move to sysv4.h. | |
4157 | ({STARTFILE,LIB}_SPEC): If -msim or -mmvme add the appropriate | |
4158 | libraries. | |
4159 | ||
4160 | * rs6000/{eabiaix,eabile,sysv4{,le}}.h (CPP_SPEC): Add support for | |
4161 | -mcall-{aixdesc,nt} directives. | |
4162 | (MULTILIB_DEFAULTS): Define. | |
4163 | ||
4164 | * rs6000/eabi{,le}sim.h (TARGET_DEFAULT, CPP_SPEC): No longer | |
4165 | define, simulator supports floating point. | |
4166 | ({STARTFILE,LIB}_SPEC): If -mvme, use mvme libraries, not | |
4167 | simulator libraries. | |
4168 | ||
4169 | * rs6000/{mach,netware}.h (TARGET_AIX): Define as 0. | |
4170 | ||
4171 | * rs6000/netware.h (RS6000_OUTPUT_BASENAME): Don't redefine | |
4172 | anymore. | |
4173 | (STRIP_NAME_ENCODING): Undef. | |
4174 | ||
4175 | * rs6000/rs6000.c (rs6000_save_toc_p, rs6000_abi): New globals. | |
4176 | (rs6000_override_options): Add 602, 603e, and 620 support. | |
4177 | (count_register_operand): New function to return true if operand | |
4178 | is the count register. | |
4179 | (easy_fp_constant): All constants are easy if -msoft-float. | |
4180 | (volatile_mem_operand): New function to return true if operand is | |
4181 | in volatile memory. | |
4182 | ({fp_,}reg_or_mem_operand): Call volatile_mem_operand. | |
4183 | (input_operand): Allow support for Windows NT loading SYMBOL_REFs | |
4184 | and LABEL_REFs from the TOC. | |
4185 | (function_arg_boundary): On Windows NT, any argument >= 8 bytes | |
4186 | must be double word aligned. | |
4187 | (function_arg{_advance,}): Call function_arg_boundary to determine | |
4188 | if we need to align to an odd register for large arguments. | |
4189 | Changes to accomidate new method of determining which ABI we're | |
4190 | adhering to. | |
4191 | (expand_block_move_mem): Copy RTX_UNCHANGING_P, and if | |
4192 | MEM_UNALIGNED_P is defined, copy that too. | |
4193 | (expand_block_move): Copy dest/src to registers using | |
4194 | copy_addr_to_reg. | |
4195 | (print_operand): Changes to accomidate Windows NT. | |
4196 | (first_reg_to_save): Ditto. | |
4197 | (rs6000_stack_info): Ditto. | |
4198 | (debug_stack_info): Ditto. | |
4199 | (output_{prolog,epilog,toc,function_profiler}): Ditto. | |
4200 | (rs6000_stack_info): Save main's arguments around __eabi call. | |
4201 | (svr4_traceback): Delete, current V.4 ABI no longer wants | |
4202 | tracebacks in this format. | |
4203 | (output_prolog): Call __eabi here, saving and restoring main's | |
4204 | args if needed. Save the toc pointer if needed. | |
4205 | (get_issue_rate): New function to return # of instructions a | |
4206 | machine can issue at once. | |
4207 | (rs6000_sync_trampoline): Emit instructions to synchronize the | |
4208 | PowerPC caches after a trampoline. | |
4209 | (rs6000_trampoline_{template,size}): New functions to provide | |
4210 | common trampoline support for all ABI's. | |
4211 | (rs6000_initialize_trampoline): Ditto. | |
4212 | ||
4213 | * rs6000/rs6000.h (TARGET_{WINDOWS_NT,AIX,MACOS}): Define. | |
4214 | (processor_type): Add 602. | |
4215 | (PROCESSOR_COMMON): Assume the current processor is a 604, not a | |
4216 | 601. | |
4217 | (SUBTARGET_OPTIONS): Define if not defined. | |
4218 | (TARGET_OPTIONS): Include SUBTARGET_OPTIONS. | |
4219 | (COUNT_REGISTER_REGNUM): Define as 66. | |
4220 | (EXTRA_CONTRAINT): Add 'S' and 'T' for Windows NT. | |
4221 | (rs6000_abi): Add ABI_AIX_NODESC, ABI_NT. | |
4222 | (DEFAULT_ABI): Define if not defined. | |
4223 | (rs6000_stack): Add fields for Windows NT support. | |
4224 | (RS6000_SAVE_TOC): Add for Windows NT support. | |
4225 | (FUNCTION_ARG_BOUNDARY): Call function_arg_boundary. | |
4226 | (trampoline macros): Call trampoline functions in rs6000.c. | |
4227 | (RETURN_ADDRESS_OFFSET): Add Windows NT support. | |
4228 | (toc_section): Skip leading '*'. | |
4229 | (PREDICATE_CODES): Add volatile_mem_operand, | |
4230 | count_register_operand. | |
4231 | (MACHINE_issue_rate): Define. | |
4232 | (function decls): Add new function decls from rs6000.c. | |
4233 | ||
4234 | * rs6000/rs6000.md (cpu attribute): Add 602. | |
4235 | (function units): Update to match reality better. | |
4236 | (calls through pointer): Rework to support Windows NT. | |
4237 | (movsi): Add Windows NT support. | |
4238 | (movstrsi): Remove match_operand predicates, since | |
4239 | expand_block_move does the checking. | |
4240 | (sync_isync): Delete. | |
4241 | (icbi, dcbst, sync, isync): New insns to generate the named | |
4242 | instruction for making trampolines on eabi/V.4 properly flush the | |
4243 | caches. | |
4244 | (decrement_and_branch_on_count): Rename from | |
4245 | decrement_and_branchsi. Add update of count in insn pattern. | |
4246 | ||
4247 | * rs6000/sysv4.h (TARGET_SWITCHES): Drop -mtraceback. Keep | |
4248 | -mno-traceback but don't do anything with it. Add | |
4249 | -mcalls-{nt,aixdesc}. Add -m{,no-}relocatable-lib. Add -msim, | |
4250 | -mmvme, and -memb. | |
4251 | (TARGET_TOC): Update for use with -mcalls-{nt,aixdesc}. | |
4252 | (SUBTARGET_OVERRIDE_OPTIONS): Update for new switches. | |
4253 | (RS6000_OUTPUT_BASENAME): Delete. | |
4254 | (toc_section): Add support for -mcall-{nt,aixdesc}. | |
4255 | (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Ditto. | |
4256 | (ASM_DECLARE_FUNCTION_NAME): Use STRIP_NAME_ENCODING instead of | |
4257 | RS6000_OUTPUT_BASENAME. For -mcall-{nt,aixdesc} emit the proper | |
4258 | function descriptor. | |
4259 | (ASM_SPEC): Pass appropriate -mxxx switches to the assembler based | |
4260 | on the -mcpu=xxx options. | |
4261 | (ASM_OUTPUT_INT): Move here from eabi.h. | |
4262 | (ENCODE_SECTION_INFO): If -mcall-{nt,aixdesc} add approriate magic | |
4263 | so function name has two or one leading periods. | |
4264 | (ASM_OUTPUT_SOURCE_LINE): Delete, use version in svr4.h. | |
4265 | (trampoline macros): Call trampoline functions in rs6000.c. | |
4266 | ||
4267 | * t-{eabi,ppc}{,gas} (EXTRA_HEADERS): Add ginclude/ppc-asm.h. | |
4268 | (LIB2FUNCS_EXTRA): Depend on eabi.S, not eabi.s. | |
4269 | (eabi.S): Rename from eabi.asm. | |
4270 | ||
4271 | * t-{eabi,ppc}gas (MULTILIB_*): Add -mcall-aixdesc libraries, but | |
4272 | don't build either little endian or -mrelocatable versions of | |
4273 | those libraries. | |
4274 | ||
4275 | Tue Nov 28 00:10:27 1995 David Edelsohn <edelsohn@mhpcc.edu> | |
4276 | ||
4277 | * rs6000.md (divsi3): Reorder so common mode does not negate | |
4278 | power-of-2 shift optimization. | |
4279 | ||
4280 | Wed Nov 29 22:06:11 1995 J.T. Conklin <jtc@rtl.cygnus.com> | |
4281 | ||
4282 | * configure (sparc-*-solaris2*): Add gcrt1.o to extra_parts. | |
4283 | * sparc/sol2.h (STARTFILE_SPEC): Link with gcrt1.o with -pg. | |
4284 | * sparc/sol2-g1.asm: New file, startup code for profiled | |
4285 | executables. | |
4286 | * sparc/t-sol2: Add make rule for gcrt1.o. | |
4287 | * sparc/gmon-sol2.c (_mcleanup): Add support for PROFDIR | |
4288 | environment variable. | |
4289 | ||
4290 | Wed Nov 29 21:41:13 1995 Ian Lance Taylor <ian@cygnus.com> | |
4291 | ||
4292 | * mips/abi64.h (CPP_SPEC): If -msingle-float and not | |
4293 | -msoft-float, pass -D__mips_single_float. Likewise for -m4650 and | |
4294 | not -msoft-float. | |
4295 | * mips/dec-bsd.h (CPP_SPEC): Likewise. | |
4296 | * mips/dec-osf1.h (CPP_SPEC): Likewise. | |
4297 | * mips/elf64.h (CPP_SPEC): Likewise. | |
4298 | * mips/iris3.h (CPP_SPEC): Likewise. | |
4299 | * mips/iris5.h (CPP_SPEC): Likewise. | |
4300 | * mips/mips.h (CPP_SPEC): Likewise. | |
4301 | * mips/netbsd.h (CPP_SPEC): Likewise. | |
4302 | * mips/osfrose.h (CPP_SPEC): Likewise. | |
4303 | * mips/t-ecoff (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, | |
4304 | MULTILIB_MATCHES): Add -msingle-float support. | |
4305 | ||
4306 | Wed Nov 29 17:57:48 1995 Doug Evans <dje@cygnus.com> | |
4307 | ||
4308 | * toplev.c (main): Invoke OPTIMIZATION_OPTIONS after target_flags | |
4309 | has been initialized so sets of target_flags aren't clobbered. | |
4310 | ||
4311 | * cccp.c (do_include): Recognize c:\foo as absolute path name in DOS. | |
4312 | ||
4313 | * svr4.h (MD_EXEC_PREFIX): Don't use if cross compiling. | |
4314 | (MD_STARTFILE_PREFIX): Likewise. | |
4315 | (LINK_SPEC): Don't use absolute path names if cross compiling. | |
4316 | * svr3.h (LIB_SPEC): Likewise. | |
4317 | ||
4318 | * gcc.c (do_spec_1): Fix typos in version calculation. | |
4319 | ||
4320 | Wed Nov 29 14:06:13 1995 Jim Wilson <wilson@cygnus.com> | |
4321 | ||
4322 | * sh.md (ashrsi3_d): Use %0 not %1 in output pattern. | |
4323 | ||
4324 | * svr4.h (MAX_OFILE_ALIGNMENT): Define. | |
4325 | ||
4326 | * mips/iris5.h (WORD_SWITCH_TAKES_ARG): Define. | |
4327 | (LINK_SPEC): Add rpath. | |
4328 | * mips/iris6.h (LINK_SPEC): Likewise. | |
4329 | ||
4330 | * stupid.c (stupid_mark_regs): For hard registers, use regno+j | |
4331 | instead of just regno in MARK_LIVE_AFTER and SET_HARD_REG_BIT calls. | |
4332 | ||
4333 | * c-common.c (combine_strings): Add support for WCHAR_TYPE as short. | |
4334 | ||
4335 | Wed Nov 29 13:59:58 1995 J"orn Rennecke (amylaar@meolyon.hanse.de) | |
4336 | ||
4337 | * c-decl.c (duplicate_decls): Add new paramter different_binding_level. | |
4338 | Lots of changes to use new new parameter. | |
4339 | (pushdecl): Delete variable declared_global. New variable | |
4340 | different_binding_level and code to set it. Move extern/static | |
4341 | warning before duplicate_decls call. Don't let global typedefs | |
4342 | conflict with nested extern declarations. Move oldglobal test | |
4343 | inside code for setting IDENTIFIER_LIMBO_VALUE. | |
4344 | (lookup_name_current_level_global): Delete. | |
4345 | * c-tree.h (merge_attributes): New declaration. | |
4346 | * c-typeck.c (merge_attributes): New function. Move code from | |
4347 | common_type to here. | |
4348 | (common_type): Call merge_attributes instead of having inline code. | |
4349 | * integrate.c (integrate_decl_tree): Delete variable newd. | |
4350 | Always set DECL_ABSTRACT_ORIGIN before calling pushdecl. | |
4351 | ||
4352 | Tue Nov 28 21:57:04 1995 Jim Wilson <wilson@cygnus.com> | |
4353 | ||
4354 | * mips.c (mips_function_value): Add check for i > 0 when deciding | |
4355 | if structure should be return in FP registers. | |
4356 | ||
4357 | Tue Nov 28 12:47:52 1995 Jeffrey A. Law <law@cygnus.com> | |
4358 | ||
4359 | * pa.md (define split for (plus (reg) (large_constant)): Try | |
4360 | another way to handle this with only 2 insns. From Tege. | |
4361 | ||
4362 | Mon Nov 27 02:05:18 1995 Jeffrey A. Law <law@cygnus.com> | |
4363 | ||
4364 | * lib1funcs.asm, pa-pro.h, t-pro.h, xm-papro.h: New PA | |
4365 | target files. | |
4366 | * configure (hppa*-*-pro*): Use new target files. | |
4367 | ||
4368 | * toplev.c (rest_of_compilation): Always call jump_optimize | |
4369 | at least once. | |
4370 | ||
4371 | * pa.h (ASM_OUTPUT_EXTERNAL): Don't let assemble_name clobber | |
4372 | the value of TREE_SYMBOL_REFERENCED. | |
4373 | ||
4374 | * pa-ghpux9.h (LINK_SPEC): Pass "-z" to the linker to enable | |
4375 | trap on null pointer dereference for programs built on hpux9. | |
4376 | * pa-hpux9.h, pa1-ghpux9.h, pa1-hpux9.h: Likewise. | |
4377 | ||
4378 | * pa.c (output_function_prologue): No longer need to keep | |
4379 | track of the total number code bytes when TARGET_GAS && | |
4380 | not TARGET_PORTABLE_RUNTIME. | |
4381 | * pa.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use .NSUBSPA when | |
4382 | not TARGET_PORTABLE_RUNTIME. | |
4383 | (ASM_OUTPUT_FUNCTION_PREFIX): Define. Prefix functions with | |
4384 | .NSUBSPA when TARGET_GAS and not TARGET_PORTABLE_RUNTIME. | |
4385 | ||
4386 | * pa.md (symbolic high patterns): Use 'H' to print the symbolic | |
4387 | address so that the constant part gets rounded. | |
4388 | * pa.c (print_operand): Handle 'H' operand for high part of a | |
4389 | symbolic address with a rounded constant. | |
4390 | (output_global_address): New argument "rounded_constant". All | |
4391 | callers changed appropriately. | |
4392 | ||
4393 | * x-pa-hpux (FIXPROTO_DEFINES): Add -D_HPUX_SOURCE. | |
4394 | ||
4395 | * pa.h (CPP_SPEC): Only pass -D_HPUX_SOURCE and -D_HIUX_SOURCE if | |
4396 | -ansi is not present. | |
4397 | (CPP_PREDEFINES): Remove -D_HPUX_SOURCE and/or -D_HIUX_SOURCE. | |
4398 | * pa-ghiux.h (CPP_PREDEFINES): Likewise. | |
4399 | * pa-gux7.h (CPP_PREDEFINES): Likewise. | |
4400 | * pa-hiux.h (CPP_PREDEFINES): Likewise. | |
4401 | * pa-hpux.h (CPP_PREDEFINES): Likewise. | |
4402 | * pa-hpux7.h (CPP_PREDEFINES): Likewise. | |
4403 | * pa1-ghiux.h (CPP_PREDEFINES): Likewise. | |
4404 | * pa1-hiux.h (CPP_PREDEFINES): Likewise. | |
4405 | ||
4406 | * pa-hpux.h (LINK_SPEC): If -mlinker-opt, then pass -O to the | |
4407 | linker. | |
4408 | * pa-ghpux.h, pa-hpux9.h, pa-ghpux9.h: Likewise. | |
4409 | * pa1-ghpux9.h, pa1-hpux9.h: Likewise. | |
4410 | * pa.h (LINK_SPEC): Likewise. | |
4411 | (TARGET_SWITCHES): Add -mlinker-opt. | |
4412 | ||
4413 | * pa.md (all peepholes): Disable if TARGET_SOFT_FLOAT. | |
4414 | ||
4415 | * pa.c (pa_reorg): If TARGET_GAS, then emit insns to mark | |
4416 | the beginning and end of the branch table. | |
4417 | * pa.md (begin_brtab): New insn. Just a marker so GCC knows | |
4418 | where to put the .begin_brtab pseudo-op. | |
4419 | (end_brtab): Similarly. | |
4420 | ||
4421 | * pa.h (EXTRA_SECTIONS): Add in_ctors and in_dtors if | |
4422 | CTORS_SECTION_FUNCTION is defined. Else define dummy | |
4423 | versions of CTORS_SECTION_FUNCTION and DTORS_SECTION_FUNCTION. | |
4424 | (EXTRA_SECTION_FUNCTIONS): Add CTORS_SECTION_FUNCTION and | |
4425 | DTORS_SECTION_FUNCTION. | |
4426 | ||
4427 | * pa.md: Add peepholes to improve spill code generated | |
4428 | by reload when we run out of FP registers. | |
4429 | ||
4430 | * xm-pa.h: Remove spurious double-quote. | |
4431 | ||
4432 | * pa.md (call expanders): For indirect calls, load %r22 with the | |
4433 | function's address. | |
4434 | (indirect call patterns): No need to copy the call address into | |
4435 | %r22 anymore. | |
4436 | ||
4437 | * pa.c (output_cbranch): Fix buglet in length handling of | |
4438 | backwards branches with unfilled delay slots. | |
4439 | (output_bb, output_bvb, output_dbra, output_movb): Likewise. | |
4440 | ||
4441 | * pa.md: Fix off-by-one error in length computations for all | |
4442 | conditional branch patterns. | |
4443 | ||
4444 | * pa.h (output_bvb): Declare. | |
4445 | * pa.c (output_bvb): New function to output branch on variable | |
4446 | bit insns. | |
4447 | * pa.md (branch-on-variable-bit): New patterns. | |
4448 | ||
4449 | * pa.h (TARGET_MILLICODE_LONG_CALLS): Delete swtich and all | |
4450 | references. | |
4451 | (output_millicode_call): Declare new function | |
4452 | * pa.md (millicode calls): Update length computation to handle | |
4453 | variable length millicode calls. | |
4454 | (call pattners): Likewise. | |
4455 | (indirect call patterns): Update length compuations and output | |
4456 | templates to handle variable length millicode calls. | |
4457 | (plabel_dereference): Likewise. | |
4458 | * pa.c (override_options): Give warnings when incompatable | |
4459 | options are used. | |
4460 | (output_mul_insn): Call output_millicode_call instead of | |
4461 | output_call, eliminate last argument to output_millicode_call. | |
4462 | (output_div_insn): Likewise. | |
4463 | (output_mod_insn): Likewise. | |
4464 | (output_call): Rewrite long call code to handle variable length | |
4465 | millicode calls. Eliminate support for calling mul, div and mod | |
4466 | millicode routines. | |
4467 | (output_millicode_call): New function for calling mul, div and mod | |
4468 | millicode routines. | |
4469 | ||
4470 | * pa.md (abssi2): New pattern. | |
4471 | ||
4472 | * pa.c (secondary_reload_class): Loads from reg+d addresses into | |
4473 | FP registers don't need secondary reloads. | |
4474 | * pa.h: Delete soem #if 0 code. Update some comments. | |
4475 | (EXTRA_CONSTRAINT, case 'Q'): Only accept valid memory addresses. | |
4476 | ||
4477 | * pa.h (RTX_COSTS): Tege's rewrite. | |
4478 | ||
4479 | * pa.c (hppa_legitimize_address): Generate unscaled indexed | |
4480 | addressing for (plus (symbol_ref) (reg)). | |
4481 | (emit_move_sequence): Set REGNO_POINTER_FLAG appropriately | |
4482 | to encourage unscaled indexing modes. | |
4483 | (basereg_operand): New function for unscaled index address support. | |
4484 | * pa.md (unscaled indexing patterns): New patterns for unscaled | |
4485 | index address support. | |
4486 | ||
4487 | * pa.h (MOVE_RATIO): Define. | |
4488 | * pa.md (movstrsi expander): Refine tests for when to use the | |
4489 | library routine instead of an inlined loop copy. Provide an | |
4490 | additional scratch register for use in the inlined loop copy. | |
4491 | (movstrsi_internal): Name the pattern for ease of use. Add | |
4492 | additional scratch register. | |
4493 | * pa.c (output_block_move): Greatly simplify. Use 2X unrolled | |
4494 | copy loops to improve performance. | |
4495 | (compute_movstrsi_length): Corresponding changes. | |
4496 | ||
4497 | * pa.c (print_operand): Handle 'y' case for reversed FP | |
4498 | comparisons. Delete some #if 0 code. Fix various comment typos. | |
4499 | * pa.md (fcmp patterns): Try and reverse the comparison to avoid | |
4500 | useless add,tr insns. | |
4501 | ||
4502 | Sun Nov 26 14:47:42 1995 Richard Kenner <kenner@mole.gnu.ai.mit.edu> | |
4503 | ||
4504 | * Version 2.7.2 released. | |
4505 |