Commit Graph

328 Commits

Author SHA1 Message Date
Jeff Law
956d69504d Merge from gcc-2.8
From-SVN: r16987
1997-12-06 17:31:01 -07:00
Jeff Law
e9a25f70a0 Update mainline egcs to gcc2 snapshot 971021.
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Doug Evans
de95730392 function.c (assign_parms): Correct mode of stack_parm if entry_parm underwent a mode conversion.
* function.c (assign_parms): Correct mode of stack_parm if
        entry_parm underwent a mode conversion.

From-SVN: r16228
1997-10-28 23:54:49 -07:00
Jason Merrill
d1485032c8 tree.c (restore_tree_status): Also free up temporary storage when we finish a toplevel function.
* tree.c (restore_tree_status): Also free up temporary storage
	when we finish a toplevel function.
	(dump_tree_statistics): Print stats for backend obstacks.

	* libgcc2.c (__throw): Don't copy the return address.
	* dwarf2out.c (expand_builtin_dwarf_reg_size): Ignore return address.

	* except.c (exceptions_via_longjmp): Initialize to 2 (uninitialized).
	* toplev.c (main): Initialize exceptions_via_longjmp.

	* tree.c: Add extra_inline_obstacks.
	(save_tree_status): Use it.
	(restore_tree_status): If this is a toplevel inline obstack and we
	didn't want to save anything on it, recycle it.
	(print_inline_obstack_statistics): New fn.
	* function.c (pop_function_context_from): Pass context to
	restore_tree_status.
	* obstack.h (obstack_empty_p): New macro.

From-SVN: r16050
1997-10-18 17:10:32 -04:00
Jeffrey A Law
f345de42fc reorg.c (dbr_schedule): Allow current_function_return_rtx to be something other than a REG.
* reorg.c (dbr_schedule): Allow current_function_return_rtx
        to be something other than a REG.
        * function.c (expand_function_end): Fix current_function_return_rtx
        if it was a pseudo.
Brought over from the fsf/devo.

From-SVN: r14972
1997-08-27 13:59:51 -06:00
Richard Kenner
86fa911a16 (put_var_into_stack, assign_parms): If -fcheck-memory-usage, set the
rights of pushed variable.

From-SVN: r14614
1997-08-02 13:18:18 -04:00
Richard Kenner
4ac74fb88f (put_var_into_stack, trampoline_address): Treat inline_function_decl
like current_function_decl.

From-SVN: r14539
1997-07-27 19:34:28 -04:00
Richard Kenner
11044f6690 (expand_function_end): If function is non-leaf and stack checking is
requested, emit needed probes.

From-SVN: r14470
1997-07-17 11:25:54 -04:00
Mike Stump
e5a1e0e864 function.c (expand_function_end): Make sure we finish off any leftover exception handlers.
* function.c (expand_function_end): Make sure we finish off any
	leftover exception handlers.

From-SVN: r14067
1997-05-15 02:25:25 +00:00
Mike Stump
db3cf6fb33 reformat a little to match GNU coding standards.
From-SVN: r14024
1997-05-06 23:05:54 +00:00
Jason Merrill
173cd503de x
From-SVN: r13974
1997-04-24 02:55:16 +00:00
Jim Wilson
ce717ce4d3 (instantiate_decls): For DECL_INCOMING_RTL, use max
of type size and mode size in instantiate_decl call.

From-SVN: r13933
1997-04-18 15:40:55 -07:00
Jim Wilson
7b05e28661 (expand_function_start): Emit queue after expanding
each dynamic parameter type.

From-SVN: r13835
1997-04-03 12:26:33 -08:00
Doug Evans
82e415a358 function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER for last line of function.
* function.c (expand_function_end): Output NOTE_REPEATED_LINE_NUMBER
	for last line of function.

From-SVN: r13815
1997-03-28 22:36:31 +00:00
Ian Lance Taylor
38b610ed8e Add a REG_EQUIV note when a register parameter has a stack location
From-SVN: r13734
1997-03-18 20:00:01 +00:00
Jason Merrill
a1d7ffe39c x
From-SVN: r13652
1997-02-16 10:05:43 +00:00
Richard Kenner
1995f267b7 (assign_stack_temp): Clear MEM flags from reuse.
From-SVN: r13623
1997-02-09 14:05:39 -05:00
Richard Kenner
7694ce359a (instantiate_virtual_regs_1, case USE, CLOBBER): Fix error in last change.
From-SVN: r13615
1997-02-07 08:19:33 -05:00
Richard Kenner
189cc3779a (TRAMPOLINE_ALIGNMENT): Provide default.
(expand_function_end): Use TRAMPOLINE_ALIGNMENT instead of FUNCTION_BOUNDARY.

From-SVN: r13567
1997-01-30 08:57:32 -05:00
Richard Kenner
85b119d1b7 (mark_all_temps_used): Set KEEP as well.
From-SVN: r13541
1997-01-21 16:03:29 -05:00
Richard Kenner
4fd796bbb5 (instantiate_virtual_regs_1...
(instantiate_virtual_regs_1, case USE, case CLOBBER): Properly handle
case of shared MEM whose replacement is not valid.

From-SVN: r13509
1997-01-19 08:57:20 -05:00
Richard Kenner
01c1558a9c (push_function_context_to, pop_function_context_from): Save and
restore current_function_args_info.

From-SVN: r13353
1997-01-03 07:51:07 -05:00
Ian Lance Taylor
f95182a4a9 Check SMALL_REGISTER_CLASSES at runtime
From-SVN: r13302
1996-12-13 01:00:49 +00:00
Richard Kenner
ef933d2601 (fixup_var_refs_1, case ZERO_EXTRACT): Don't call fixup_memory_subreg
if no longer SUBREG of MEM.

From-SVN: r13282
1996-12-11 17:00:41 -05:00
Richard Kenner
8af5168bae (frame_offset, get_frame_size): Make HOST_WIDE_INT.
From-SVN: r13243
1996-12-07 18:49:12 -05:00
Jim Wilson
ecec444145 (expand_function_end): Handle BLKmode structures returned
in registers.

From-SVN: r13117
1996-11-08 17:37:54 -08:00
Richard Kenner
ddb7361a2e (assign_parms): Use mark_user_reg.
From-SVN: r12870
1996-09-29 19:06:08 -04:00
Jim Wilson
87ce34d632 (instantiate_decl): Always store addr back into x.
From-SVN: r12842
1996-09-25 12:31:31 -07:00
Richard Kenner
27ce006bb4 (mark_all_temps_used): Fix error in last change.
From-SVN: r12672
1996-08-26 14:08:23 -04:00
Richard Kenner
a94e4054a9 (mark_all_temps_used): New function.
From-SVN: r12671
1996-08-25 22:27:04 -04:00
Mike Stump
1ef08c6373 install EH code
From-SVN: r12550
1996-07-23 20:09:26 +00:00
Jim Wilson
e71f7aa5b5 (aggregate_value_p): If hard_function_value returns
a non-REG, then return 0.

From-SVN: r12413
1996-07-08 15:11:03 -07:00
Mike Stump
0f41302f47 formatting tweaks
From-SVN: r12390
1996-07-03 22:07:53 +00:00
Richard Kenner
abb522465e (find_temp_slot_from_address): Check for overlap from BASE_OFFSET if X
is PLUS of virtual_stack_vars_rtx and const.

From-SVN: r12296
1996-06-18 07:12:49 -04:00
Richard Kenner
0e09cc26ee (fixup_var_refs_1, case SIGN_EXTEND): Handle paradoxical SUBREGs as first operand.
(fixup_var_refs_1, case SIGN_EXTEND): Handle paradoxical SUBREGs as first
operand.
(fixup_var_regs_1, case SET): Handle paradoxical SUBREGs as first operand of
a ZERO_EXTRACT in SET_DEST.

From-SVN: r12243
1996-06-08 13:49:13 -04:00
Jim Wilson
5c4cdc9fdf (assign_parms): Handle PARALLEL parameter in ENTRY_PARM.
From-SVN: r12191
1996-06-06 16:13:24 -07:00
Richard Kenner
69685820b3 (assign_parms): Tighten up code that makes REG_EQUIV notes for parms.
From-SVN: r12186
1996-06-06 18:38:13 -04:00
Richard Kenner
9e014ded89 Include bc-emit.h.
({save,restore}_machine_status): Add prototype for args.
(bc_runtime_type_code, bc_build_calldesc): Delete redundant decls.
(bc_emit_trampoline, bc_end_function): Likewise.

From-SVN: r12045
1996-05-19 12:24:26 -04:00
Doug Evans
49a2e5b2f7 * function.c (aggregate_value_p): Return 1 if TREE_ADDRESSABLE.
From-SVN: r11957
1996-05-09 01:04:06 +00:00
Richard Kenner
a00285d035 (assign_parms): Set RTX_UNCHANGING_P in stack_parm if parm is
read-only.

From-SVN: r11944
1996-05-06 18:45:05 -04:00
Richard Kenner
1e2414db59 (expand_function_end): Allow TRAMPOLINE_TEMPLATE
to be omitted on systems for which it is not cost effective.

From-SVN: r11822
1996-04-16 16:51:20 -04:00
Richard Kenner
1651bdfef8 (push_function_context_{to,from}): Save and restore
current_function_returns_pointer.

From-SVN: r11812
1996-04-16 10:19:07 -04:00
Mike Stump
9cca6a99da function.c (preserve_temp_slots): Only preserve temporaries that happen to be at the current level.
* function.c (preserve_temp_slots): Only preserve temporaries that
	happen to be at the current level.
Fixes p7325.C.

From-SVN: r11800
1996-04-15 18:46:12 +00:00
Jeff Law
2c7ee1a641 calls.c (expand_call): Remove current_call_is_indirect nonsense.
* calls.c (expand_call): Remove current_call_is_indirect nonsense.
	Add additional argument to INIT_CUMULATIVE_ARGS.
	(emit_library_call): Likewise.
	(emit_library_call_value): Likewise.
	* expr.c (expand_builtin): Likewise.
	* function.c (assign_parms): Likewise.
	* cp/method.c (emit_thunk): Likewise.
	* config/pa/pa.h (hppa_args): New field "indirect".
	(INIT_CUMULATIVE_ARGS): Initialize "indirect" field.
	(FUNCTION_ARG): Check "indirect" field, rather than
	"current_call_is_indirect".
	* All other backends updated with new argument to
	INIT_CUMULATIVE_ARGS

From-SVN: r11641
1996-03-29 07:37:11 -07:00
Jason Merrill
6d7306f76e (expand_function_start): Don't set up context_display
unless current_function_needs_context.

From-SVN: r11615
1996-03-26 00:17:01 +00:00
Jason Merrill
38ee6ed956 (expand_expr, case *_DECL): If we make a non-local reference from a function with DECL_NO_STATIC_CHAIN set, abort.
(expand_expr, case *_DECL): If we make a non-local
        reference from a function with DECL_NO_STATIC_CHAIN set, abort.
        (expand_expr, case ADDR_EXPR): We don't need a trampoline for a
        function with DECL_NO_STATIC_CHAIN set.

From-SVN: r11461
1996-03-05 22:16:33 +00:00
Richard Kenner
f6127c6a4a (bc_expand_function_start): Likewise.
From-SVN: r11412
1996-03-04 08:40:01 -05:00
Richard Kenner
b02ab63aa4 ({,round_}trampoline_address): TRAMPOLINE_ALIGNMENT is in bits, not
bytes.

From-SVN: r10993
1996-01-15 14:57:49 -05:00
Richard Kenner
b55d9ff814 (assign_temp): Add extra arg, DONT_PROMOTE.
Don't return (const_int 0) for VOIDmode.

From-SVN: r10923
1995-12-31 21:26:06 -05:00
Richard Kenner
e1686233d2 (instantiate_decls): Check DECL_SAVED_INSNS to see if obstack change
is needed.

From-SVN: r10915
1995-12-31 15:03:23 -05:00
Richard Kenner
638141a689 (assign_temp): Fix formatting.
From-SVN: r10905
1995-12-30 06:36:58 -05:00
Per Bothner
230f21b48b function.c (assign_temp): New function.
* function.c (assign_temp):  New function.  Can handle Chill-style
variable-sized array with static maximum size.

From-SVN: r10899
1995-12-29 11:14:31 -08:00
Per Bothner
f9f29478ed * function.c (assign_parms): Fix thinko for struct value arg.
From-SVN: r10897
1995-12-29 11:05:20 -08:00
Richard Kenner
6c6166bdcb (assign_parms): Set REGNO_POINTER_ALIGN for parms that are pointers.
From-SVN: r10868
1995-12-27 15:22:26 -05:00
Richard Kenner
1d273bf509 (fixup_var_refs_1): Fix error in last change (when mode of VAR is not
the same as PROMOTED_MODE).

From-SVN: r10795
1995-12-18 07:49:21 -05:00
Richard Kenner
c46722a717 (fixup_var_refs_1): Fix two incorrect calls to single_set.
From-SVN: r10776
1995-12-16 06:57:01 -05:00
Richard Kenner
bc0ebdf9ee (init_temp_slots): New function.
(init_function_start): Code moved to new function and called here.

From-SVN: r10733
1995-12-15 08:09:24 -05:00
Mike Stump
b2a59b1589 function.c (identify_blocks): Start with a chain of BLOCKs to match the rest of the backend (dbxout.c)...
* function.c (identify_blocks): Start with a chain of BLOCKs to
	match the rest of the backend (dbxout.c), instead of just one
	BLOCK.
	(reorder_blocks): Ditto.
	(all_blocks): Ditto.

	* stmt.c (find_loop_tree_blocks): Pass the toplevel list of
	blocks, not just the first subblock.
Fixes unroll1.C.

From-SVN: r10712
1995-12-14 00:00:20 +00:00
Richard Kenner
926d1ca5a3 (fixup_var_refs_1): Make pseudo for DEST in PROMOTED_MODE unless in a
SUBREG.

From-SVN: r10608
1995-11-26 14:50:48 -05:00
Richard Kenner
0006e95bb3 (put_reg_into_stack): New arg volatile_p.
(put_var_into_stack): Call with new arg.

From-SVN: r10579
1995-11-12 18:09:22 -05:00
Richard Kenner
926b1b9906 (assign_parms): Don't trust the callee to copy a TREE_ADDRESSABLE
type.

From-SVN: r10527
1995-10-26 21:55:22 -04:00
Richard Kenner
41fd457e3e (init_function_start): Don't call init_insn_lengths here.
From-SVN: r10483
1995-10-20 17:57:07 -04:00
Richard Kenner
291dde90f0 (assign_stack_temp): Adjust full_size field of temp_slot when
splitting an unused slot.

From-SVN: r10422
1995-10-03 12:02:38 -04:00
Richard Kenner
4738c10dc6 (put_var_into_stack): For CONCAT case, order of placement depends on
FRAME_GROWS_DOWNWARD, not STACK_GROWS_DOWNWARD.

From-SVN: r10344
1995-09-12 18:48:36 -04:00
Richard Kenner
abc95ed36d Fix spelling errors.
From-SVN: r10289
1995-08-28 06:54:22 -04:00
Richard Kenner
307d8cd67d (assign_stack_temp): When split a slot, set base_offset and full_size in the newly created slot.
(assign_stack_temp): When split a slot, set base_offset and full_size in the
newly created slot.
(combine_temp_slots): Update full_size when slots are combined.

From-SVN: r10185
1995-07-28 09:09:22 -04:00
Richard Kenner
fc91b0d0aa (struct temp_slot): New fields base_offset, full_size.
(assign_stack_temp): For !FRAME_GROWS_DOWNWARD, set p->size to size.
Set new fields base_offset and full_size.
(combine_temp_slots): Use new fields base_offset and full_size instead
of slot and size.

From-SVN: r10136
1995-07-14 19:15:58 -04:00
Richard Kenner
ebb904cbbe (current_function_stdarg): New global variable.
(push_function_context_to): Save it.
(pop_function_context_from): Restore it.
(assign_parms): Set it.
(init_function_start): Clear it.

From-SVN: r10123
1995-07-14 08:03:09 -04:00
Richard Kenner
0cd6ef3529 (setjmp_args_warning): Remove bogus arg.
From-SVN: r10109
1995-07-10 19:14:25 -04:00
Richard Kenner
ad2413517b (assign_parms): Do all conversions in CONVERSION_INSNS.
From-SVN: r9992
1995-06-15 17:51:06 -04:00
Richard Kenner
a35311b035 Update FSF address.
From-SVN: r9961
1995-06-15 07:52:21 -04:00
Richard Kenner
95f2916038 (assign_parms): Use convert_to_mode instead of gen_lowpart when
converting incoming parm.

From-SVN: r9941
1995-06-14 05:51:51 -04:00
Richard Kenner
621061f4f3 (assign_parms): Handle promotions of both passed and nominal modes separately and insert needed conversions.
(assign_parms): Handle promotions of both passed and nominal modes separately
and insert needed conversions.
(promoted_input_arg): Return 0 if nominal and passed modes differ.

From-SVN: r9922
1995-06-11 13:13:53 -04:00
Richard Kenner
cd5b346969 (assign_parms): Don't call promote_mode on arg unless
PROMOTE_FUNCTION_ARGS defined.

From-SVN: r9904
1995-06-08 18:49:09 -04:00
Richard Kenner
9faa82d8c0 Fix typos in comments.
From-SVN: r9712
1995-05-16 08:39:54 -04:00
Jason Merrill
497dc802f6 (expand_function_end): Don't warn about unused
anonymous or artificial parms.

From-SVN: r9585
1995-05-07 10:28:12 +00:00
Richard Kenner
db8717d93b (expand_function_end): Warn about unused parms if both -Wunused and -W.
From-SVN: r9489
1995-04-26 17:56:19 -04:00
Richard Kenner
9dc0f53144 (assign_parms): If STACK_REGS is defined...
(assign_parms): If STACK_REGS is defined, generate USE insns before
the function body, thus showing which registers are filled with
parameters.

From-SVN: r9461
1995-04-25 19:08:04 -04:00
Jason Merrill
657bb6dc84 Use TREE_ADDRESSABLE rather than | TYPE_NEEDS_CONSTRUCTING to decide whether a...
Use TREE_ADDRESSABLE rather than
|        TYPE_NEEDS_CONSTRUCTING to decide whether a parameter needs to be
|        passed by invisible reference.

From-SVN: r9420
1995-04-20 22:26:30 +00:00
Jim Wilson
79c0672ee6 (instantiate_decls): Use temporary allocation if
DECL_DEFER_OUTPUT is set.

From-SVN: r9394
1995-04-17 12:23:52 -07:00
Richard Kenner
6dfc5c6de5 (preserve_temp_slots): Clear ADDR_TAKEN on item that we are
preserving.

From-SVN: r9236
1995-03-27 20:45:05 -05:00
Richard Kenner
49468af2d9 (pop_function_context): Fix error in last change; reference old value
of current_function_decl before we modify it.

From-SVN: r9202
1995-03-18 16:37:13 -05:00
Jason Merrill
a0dabda52b Handle compilation of nested functions from another scope.
From-SVN: r9185
1995-03-15 21:48:01 +00:00
Per Bothner
b001a02f29 Remove Feb 28's FUNCTION_NEEDS_STATIC_CHAIN changes.
From-SVN: r9106
1995-03-01 19:33:25 -08:00
Per Bothner
7ad8c4bf11 function.c (lookup_static_chain): Check for a static chain using FUNCTION_NEEDS_STATIC_CHAIN.
* function.c (lookup_static_chain):  Check for a static chain
using FUNCTION_NEEDS_STATIC_CHAIN.
(init_function_start):  Set current_function_needs_context depending
on FUNCTION_NEEDS_STATIC_CHAIN rather than decl_function_context.

From-SVN: r9096
1995-02-28 15:06:03 -08:00
Richard Kenner
64e6d9cc49 (assign_parms): Added arg to RETURN_POPS_ARGS.
From-SVN: r9011
1995-02-21 18:48:03 -05:00
Jim Wilson
71cd4a8d33 (delete_handlers): When clear LABEL_PRESERVE_P,
also remove label from nonlocal_label list.

From-SVN: r8782
1995-01-20 17:58:34 -08:00
Richard Kenner
4013a70901 (optimize_bit_field): Don't remove a SUBREG that changes mode class.
From-SVN: r8744
1995-01-13 18:43:36 -05:00
Jeff Law
3668e76e90 calls.c (expand_call): Set MEM_IN_STRUCT_P as needed on return value from assign_stack_temp.
* calls.c (expand_call): Set MEM_IN_STRUCT_P as needed on return
	value from assign_stack_temp.
	(store_one_arg): Likewise.
	* expr.c (save_noncopied_parts): Likewise.
	(expand_expr): Likewise.
	* function.c (assign_parms): Likewise.
	* integrate.c (expand_inline_function): Likewise.
	* stmt.c (expand_decl): Likewise.

From-SVN: r8708
1994-12-29 19:50:28 -07:00
Doug Evans
b1f82ccff1 (instantiate_virtual_regs_1, case PLUS): If offset is
zero, make sure register replacement is still validated.

From-SVN: r8649
1994-12-13 15:04:05 +00:00
Doug Evans
ea5917da8d (locate_and_pad_parm): Don't call pad_below for BLKmode parms in regs.
From-SVN: r8645
1994-12-12 18:14:40 +00:00
Doug Evans
d4b0a7a049 (locate_and_pad_parm): Do padding before rounding
so pad_below knows how much is needed.

From-SVN: r8622
1994-12-07 20:58:08 +00:00
Ian Lance Taylor
f76b9db287 Check target endianness at run time, not compile time
From-SVN: r8470
1994-11-16 21:10:09 +00:00
Jason Merrill
8eda074c87 (init_function_start): Use
POINTER_TYPE_P rather than checking the type against POINTER_TYPE
        (to include references).

From-SVN: r8458
1994-11-16 00:45:41 +00:00
Doug Evans
b2a80c0d2b (assign_stack_temp): Compute size of slot after
assign_stack_local has accounted for alignment.

From-SVN: r8438
1994-11-15 14:55:15 +00:00
Richard Kenner
84e24c036d (assign_stack_temp): Always initialize p->rtl_expr.
From-SVN: r8429
1994-11-11 18:55:49 -05:00
Richard Kenner
199b61d8f8 (preserve_rtl_expr_result): find_temp_slot_from_address now used.
Don't bring the temp slot to an inner level than it was.

From-SVN: r8427
1994-11-11 17:37:45 -05:00
Richard Kenner
73620b82c8 (preserve_temp_slots): Preserve anything whose address was taken when
X is zero.

From-SVN: r8363
1994-10-31 07:24:20 -05:00
Per Bothner
f733963397 * function.c (current_function_outgoing_args_size): Update comment.
From-SVN: r8291
1994-10-17 16:09:35 -07:00
Richard Kenner
e19571dbde (preserve_temp_slots): If X cannot be a temp slot, preserve all things
whose address was taken at the present level.

From-SVN: r8238
1994-10-07 16:13:58 -04:00
Richard Kenner
303ec2aa60 (assign_stack_temp): Abort if SIZE == -1.
From-SVN: r8235
1994-10-07 08:28:44 -04:00
Richard Kenner
a25d4ba2f6 (struct temp_slot): New field addr_taken.
(assign_stack_temp): Initialize it.
(mark_temp_addr_taken): New function.
(preserve_temp_slots): Decrement level of things at same level but whose
address has been taken.

From-SVN: r8224
1994-10-06 06:52:10 -04:00
Jason Merrill
e4a4639ef0 ontext, adds argument to indicate that the new function is not a nested function.
ontext, adds argument to indicate that the new
        function is not a nested function.
        (push_function_context): Call it.
        (pop_function_context{,_from}): Similarly.

From-SVN: r8205
1994-10-02 23:16:51 +00:00
Richard Kenner
e87ee2a99d (trampoline_address): Add missing call to round_trampoline.
From-SVN: r8157
1994-09-28 19:18:05 -04:00
Richard Kenner
b88a314292 (optimize_bit_field): Put any insns made by change_address in front of INSN.
(expand_function_end): Don't pass DECL_INITIAL to setjmp_protect if it is
error_mark_node.

From-SVN: r8146
1994-09-27 18:29:21 -04:00
Richard Kenner
7cbc7b0cac (pop_function_context): Clear reg_renumber.
From-SVN: r8103
1994-09-20 17:51:32 -04:00
Jim Wilson
7a30f0c44e (assign_parms): Set RTX_UNCHANGING_P on stack_parm
for const parameter before calling move_block_from_reg.

From-SVN: r8075
1994-09-12 11:51:39 -07:00
Jason Merrill
e2fd1d94b8 (expand_main_function): Don't call __main if
HAS_INIT_SECTION is defined.

From-SVN: r8067
1994-09-10 00:34:51 +00:00
Richard Kenner
3f46679a3c (assign_parms): If parm is transparent union, use type of first field.
From-SVN: r7948
1994-08-19 17:33:13 -04:00
Richard Kenner
426749e8af (expand_function_start): Add redundant copy to static_chain_incoming_rtx if...
(expand_function_start): Add redundant copy to
static_chain_incoming_rtx if SMALL_REGISTER_CLASS so inlining works
properly.

From-SVN: r7909
1994-08-12 18:59:14 -04:00
Richard Kenner
ac9e20f0fb (expand_function_start): Only use static_chain_incoming_rtx once if it
is a REG and we have SMALL_REGISTER_CLASSES.

From-SVN: r7873
1994-08-08 17:08:00 -04:00
Richard Kenner
4acc00bf75 (expand_function_start): Initialize VALUE_ADDRESS.
From-SVN: r7823
1994-07-29 18:50:41 -04:00
Jason Merrill
4ac3d99407 tree.h (TYPE_NEEDS_CONSTRUCTING): New macro.
Wed Jul 13 03:30:36 1994  Jason Merrill  (jason@deneb.cygnus.com)

        * tree.h (TYPE_NEEDS_CONSTRUCTING): New macro.
        (tree_type): Add needs_constructing_flag.
        * function.c (assign_parms): If TYPE_NEEDS_CONSTRUCTING, pass by
        invisible reference.
        * calls.c (expand_call): Ditto.

From-SVN: r7758
1994-07-13 11:06:24 +00:00
Richard Kenner
dfd3dae6c2 (instantiate_virtual_regs_1): Remove last change.
From-SVN: r7697
1994-07-10 08:18:01 -04:00
Richard Kenner
a890174971 (instantiate_virtual_regs_1, case SET): If DEST is
virtual_stack_vars_rtx, replace with hardware frame pointer.

From-SVN: r7687
1994-07-08 18:26:41 -04:00
Mike Stump
d93d4205f1 fix temp lifetime (FOR TARGET_EXPRs only)
From-SVN: r7681
1994-07-08 20:45:14 +00:00
Richard Kenner
4c9a05bc55 Cast pointer operands to bzero, bcopy, and bcmp to (char *).
From-SVN: r7472
1994-06-14 18:19:28 -04:00
Richard Kenner
ba6da62704 (assign_parms): Set REG_USERVAR_P when parm is passed by invisible
reference but can live in register.

From-SVN: r7366
1994-05-27 16:13:41 -04:00
Richard Kenner
6673dddf4b (assign_parms): Fix typo in previous change.
From-SVN: r7283
1994-05-12 18:11:20 -04:00
Richard Kenner
5fa7422be7 (fixup_var_refs_insns): Change from USE and CLOBBER insns to using
CALL_INSN_FUNCTION_USAGE.

From-SVN: r7244
1994-05-06 17:50:04 -04:00
Richard Kenner
a03caf76d7 (assign_parms): Spread out the REG_EQUIV notes on
CONCATs.

From-SVN: r7232
1994-05-06 14:04:37 -04:00
Richard Kenner
1fd3ef7f65 (assign_parms): Use expr_size when appropriate.
From-SVN: r7228
1994-05-06 13:32:34 -04:00
Per Bothner
05e3bdb9cb Use new macro AGGREGATE_TYPE_P.
From-SVN: r7160
1994-04-26 16:56:21 -07:00
Richard Kenner
e15679f8d6 Add prototypes for static functions.
(bc_expand_function_end, expand_function_end): Call new expand_fixups
instead of old fixup_gotos.

From-SVN: r7116
1994-04-21 15:30:29 -04:00
Richard Kenner
a5a52dbc09 (assign_parms, promoted_input_arg, expand_function_start): Use promote_mode.
From-SVN: r7068
1994-04-18 14:51:48 -04:00
Jeff Law
0b21dcf57a function.c (locate_and_pad_parm): For ARGS_GROW_DOWNWARD...
* function.c (locate_and_pad_parm): For ARGS_GROW_DOWNWARD,
        Round sizetree for both upward and downward padding, nuke
        the (now unnecessary) call to pad_below for arg_size_ptr.

From-SVN: r7056
1994-04-16 23:14:50 -06:00
Richard Kenner
45620ed410 No longer handle LSHIFT.
From-SVN: r7020
1994-04-10 08:03:37 -04:00
Richard Kenner
3c8cd8bd6e (unitialized_vars_warning, setjmp_args_warning): Reword warning to be
less ambiguous.

From-SVN: r7005
1994-04-09 09:47:29 -04:00
Richard Kenner
3b69d50e4d (push_function_context): Use current_function_varargs.
(pop_function_context): Likewise.
(assign_parms): Respect current_function_varargs.
Save args_so_far in any case.

From-SVN: r6983
1994-04-06 07:47:24 -04:00
Richard Kenner
f0c51a1e34 (expand_function_start): Delay copying static chain.
From-SVN: r6979
1994-04-06 07:21:12 -04:00
Richard Kenner
e3a771613f (preserve_temp_slots): If argument is REG, see if it is address of a
temp slot we know about.

From-SVN: r6843
1994-03-21 17:15:32 -05:00
Richard Kenner
ccdecf58a9 (assign_parms, expand_function_start): Properly set MEM_IN_STRUCT_P
for DECL_RTL of function result.

From-SVN: r6791
1994-03-14 17:31:43 -05:00
Richard Kenner
63770d6ae3 (fixup_var_refs_insn): Delete CLOBBER of VAR.
(fixup_var_refs_insn): Delete CLOBBER of VAR.  If VAR is being
assigned into by a libcall sequence, remove the libcall notes.

From-SVN: r6632
1994-02-26 16:12:46 -05:00
Richard Kenner
e5e761396e (struct temp_slot): Add new field, ADDRESS.
(assign_stack_temp): Initialize it to zero.
(find_temp_slot_from_address, update_temp_slot_address): New functions.
(preserve_temp_slots): Use find_temp_slot_from_address.

From-SVN: r6496
1994-02-06 19:59:58 -05:00
Richard Kenner
3d329b07b7 (assign_parms): Call gen_realpart and gen_imagpart instead of
gen_lowpart and gen_highpart.

From-SVN: r6379
1994-01-10 19:36:36 -05:00
Richard Kenner
422c8f6335 (preserve_rtl_expr_result): New function.
From-SVN: r6367
1994-01-10 19:05:31 -05:00
Richard Kenner
83eb3b0ddb (thread_prologue_and_epilogue_insns): When constructing USE chain, set both NEXT_INSN and PREV_INSN links.
(thread_prologue_and_epilogue_insns): When constructing USE chain, set
both NEXT_INSN and PREV_INSN links.  Also, preserve order of USE insns
in chain.

From-SVN: r6215
1993-12-12 06:18:21 -05:00
Richard Kenner
e7a84011d2 Declare sequence_rtl_expr.
(struct temp_slot): New field rtl_expr.
(assign_stack_temp): Set it from sequence_rtl_expr.
({free,pop}_temp_slots): Don't free any slot with nonzero rtl_expr.
(free_temps_for_rtl_expr): New function.

From-SVN: r6161
1993-11-25 18:10:57 -05:00
Richard Kenner
980697fdbe Clean up comment formatting.
From-SVN: r6158
1993-11-25 10:53:19 -05:00
Richard Stallman
1be0704635 (expand_function_end): New arg END_BINDINGS.
From-SVN: r6141
1993-11-23 06:19:36 +00:00
Richard Stallman
c110c53d6e (assign_parms): Clear STACK_PARM when we have a
pass-by-pointer parm that we load into a pseudo.

From-SVN: r6098
1993-11-15 05:40:19 +00:00
Richard Kenner
e5884dacd5 (expand_function_start): If not optimizing, ensure we mark context
display regs as live for the entire function.

From-SVN: r5995
1993-11-04 13:29:59 -05:00
Richard Stallman
7b1a0c14e9 (assign_parms): If parmreg is a CONCAT, handle the
case where stack_parm is 0.

From-SVN: r5940
1993-10-30 06:04:50 +00:00
Richard Stallman
14aceb299b (assign_parms): Properly set parm_reg_stack_loc for args that are a CONCAT.
From-SVN: r5819
1993-10-20 03:43:31 +00:00
Richard Kenner
2849864429 (trampoline_address): Don't allocate anything from parent function's
current obstack.

From-SVN: r5734
1993-10-11 13:56:01 -04:00
Richard Stallman
467664666a (save_machine_status, restore_machine_status): New vars.
(push_function_context, pop_function_context): Use them.

From-SVN: r5721
1993-10-11 03:02:46 +00:00
Richard Kenner
4da73fa0ba (put_reg_into_stack): Allocate fixup structure in saveable obstack.
From-SVN: r5714
1993-10-10 17:10:48 -04:00
Richard Kenner
a14ae50814 (assign_parms): Pass objects who size depends on the contents of the
object by invisible reference.

From-SVN: r5585
1993-10-03 21:48:54 -04:00
Richard Kenner
0eb202977b (push_temp_slots, pop_temp_slots): Always change level.
From-SVN: r5523
1993-09-28 21:24:47 -04:00
Richard Stallman
ae0d828893 (expand_main_function): Put back accidentally
deleted previous change to use NAME__MAIN.

From-SVN: r5519
1993-09-28 23:16:09 +00:00