Commit Graph

304 Commits

Author SHA1 Message Date
Richard Kenner
c816db88c3 (expand_builtin_apply_args): Put back original register save and
restore order.

From-SVN: r9952
1995-06-14 17:03:45 -04:00
Richard Kenner
330446eb52 (expand_expr, case PLACEHOLDER_EXPR): Consider two types identical if
their TYPE_MAIN_VARIANTs are the same.

From-SVN: r9897
1995-06-06 18:55:28 -04:00
Richard Kenner
9faa82d8c0 Fix typos in comments.
From-SVN: r9712
1995-05-16 08:39:54 -04:00
Richard Kenner
201012cbf9 (do_jump, case EX_EXPR, NE_EXPR): Fix typo for complex.
From-SVN: r9616
1995-05-11 06:44:14 -04:00
Richard Kenner
1125706fe4 (expand_expr, case INDIRECT_REF): Set RTX_UNCHANGING_P if both
TREE_READONLY and TREE_STATIC set.

From-SVN: r9591
1995-05-08 17:59:41 -04:00
Richard Kenner
c8465d869b (do_jump): Fix error in last change.
From-SVN: r9583
1995-05-05 17:36:40 -04:00
Richard Kenner
0e8c917222 (do_jump, case EQ_EXPR, NE_EXPR): Properly compare complex.
From-SVN: r9577
1995-05-05 07:03:41 -04:00
Jim Wilson
4c7a0be934 (expand_expr, case SAVE_EXPR): Handle the case where
mode is VOIDmode.

From-SVN: r9556
1995-05-01 16:26:28 -07:00
Richard Kenner
67225c151e (expand_expr, case CONSTRUCTOR): Don't set target to zero if more then one word.
(expand_expr, case CONSTRUCTOR): Don't set target to zero if more then one
word.
Pass size and alignment to move_by_pieces_ninsns in bytes, not bits.

From-SVN: r9548
1995-04-30 07:22:58 -04:00
Richard Kenner
33cf5823a5 (expand_builtin, case BUILT_IN_CONSTANT_P): A pointer to a string
constant is a constant.

From-SVN: r9475
1995-04-26 12:29:48 -04:00
Jim Wilson
e9cf6a9776 (struct move_by_pieces): Add to_struct and from_struct fields.
(move_by_pieces): Set to_struct and from_struct fields.
(move_by_pieces_1): Set MEM_IN_STRUCT_P of to1 and from1.
(expand_builtin, case BUILT_IN_MEMCPY): New variable type.
Set MEM_IN_STRUCT_P of src_mem and dest_mem.

From-SVN: r9468
1995-04-25 16:36:38 -07:00
Richard Kenner
ee33823f45 (expand_builtin_apply_args): If STACK_REGS is defined...
(expand_builtin_apply_args): If STACK_REGS is defined, generate USE
insns before the function body, thus showing which registers are
filled with parameters.
Reverse order of saving registers, more compact code for i387.
(expand_builtin_apply): Likewise.

From-SVN: r9462
1995-04-25 19:09:01 -04:00
Richard Kenner
34aa3599f1 (convert_move): Don't access a hard reg in an invalid mode when doing
a truncation.

From-SVN: r9447
1995-04-25 17:05:37 -04:00
Per Bothner
b09f334842 (store_constructor): Fix BITS_BIG_ENDIAN -> BYTES_BIG_ENDIAN for SET_TYPE.
From-SVN: r9416
1995-04-18 18:07:59 -07:00
Jim Wilson
85c53d245a (expand_builtin, case BUILT_IN_MEMCPY): Call force_operand
on dest_rtx before returning it.

From-SVN: r9393
1995-04-17 12:19:48 -07:00
Richard Kenner
e9cdf6e48c (expand_increment): Handle case where INCREMENTED has a non-trivial
conversion.

From-SVN: r9337
1995-04-08 16:32:01 -04:00
Richard Kenner
9fcfcce705 (expand_expr, case ADDR_EXPR): Always call convert_memory_address when
converting; add extra arg.

From-SVN: r9329
1995-04-07 12:35:49 -04:00
Richard Kenner
88f63c77d9 (clear_storage, expand_assignment, store_{expr,constructor}): Use ptr_mode instead of Pmode in some places.
(clear_storage, expand_assignment, store_{expr,constructor}): Use ptr_mode
instead of Pmode in some places.
(expand_expr, expand_builtin): Likewise.
(push_block, store_expr): Convert size to Pmode.
(expand_expr, case ADDR_EXPR): Convert from Pmode to ptr_mode.

From-SVN: r9305
1995-04-03 18:12:50 -04:00
Jim Wilson
01188446e8 (expand_assignment): When offset is zero, make new MEM
before setting MEM_VOLATILE_P.

From-SVN: r9167
1995-03-10 11:45:20 -08:00
Jason Merrill
f283f66b1f (expand_expr, CLEANUP_POINT_EXPR): Force the operand out
of memory before running cleanups.

From-SVN: r9117
1995-03-03 03:45:02 +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
Richard Kenner
f635a84d96 (store_expr): Do conversion in two steps for promoted lhs.
From-SVN: r9098
1995-03-01 06:39:01 -05:00
Per Bothner
7c38c3ad5e expr.c (expand_expr): If non-local variable is expanded...
* expr.c (expand_expr):  If non-local variable is expanded,
set FUNCTION_NEEDS_STATIC_CHAIN (current_function_decl).
* expr.c (expand_expr case ADDR_EXPR):  Check for trampoline
using FUNCTION_NEEDS_STATIC_CHAIN, instead of decl_function_context.

From-SVN: r9095
1995-02-28 15:05:01 -08:00
Jim Wilson
f9409c3ac3 (expand_expr, case COMPONENT_REF): Don't fetch unaligned
field if we only want its address.

From-SVN: r9069
1995-02-24 17:45:43 -08:00
Per Bothner
b4ee5a7269 * expr.c (store_constructor): Don't use get_set_constructor_words.
From-SVN: r8954
1995-02-14 22:40:27 -08:00
Jim Wilson
5b4ff0de30 (expand_builtin, case BUILT_IN_NEXT_ARG): Don't warn when
no argument if this is a varargs routine.

From-SVN: r8912
1995-02-11 15:12:05 -08:00
Richard Kenner
5b6c44ffbc (store_constructor, ARRAY_TYPE): Use code for non-integer INDEX for non-integer ELTTYPE size.
(store_constructor, ARRAY_TYPE): Use code for non-integer INDEX for
non-integer ELTTYPE size.
Allow INDEX to be zero in code and divide size by BITS_PER_UNIT.

From-SVN: r8902
1995-02-10 17:37:38 -05:00
Richard Kenner
2391bfeaa2 (expand_expr, case MINUS_EXPR): Remove bogus operand swap.
From-SVN: r8829
1995-01-27 18:51:02 -05:00
Jim Wilson
fa2981d865 (expand_expr, case MIN_EXPR): If must emit multiple
instructions, then don't allow a MEM target.

From-SVN: r8822
1995-01-25 15:09:41 -08:00
Richard Kenner
7f62854a80 (get_inner_reference): Don't ignore CONVERT_EXPR from non-UNION_TYPE to UNION_TYPE.
(get_inner_reference): Don't ignore CONVERT_EXPR from non-UNION_TYPE
to UNION_TYPE.
(expand_expr, case CONVERT_EXPR): Check for conversion to union before
checking for not changing mode.

From-SVN: r8772
1995-01-18 07:43:31 -05:00
Richard Kenner
e6d8c385f3 (get_inner_reference): Only treat offset of PLUS_EXPR as special if
second arg is integer constant.

From-SVN: r8762
1995-01-14 17:49:47 -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
Richard Kenner
cd11b87e6a (store_constructor): Properly get constant part of bit position when
DECL_FIELD_BITPOS is a PLUS_EXPR.

From-SVN: r8655
1994-12-15 07:49:16 -05:00
Richard Kenner
1b604ae412 (get_inner_reference): Use EXACT_DIV_EXPR to compute byte offset from
bit offset.

From-SVN: r8654
1994-12-14 19:01:13 -05:00
Richard Kenner
ae4311830e (expand_expr, case MINUS_EXPR): Properly handle case when the NEGATE
overflows.

From-SVN: r8648
1994-12-13 07:50:58 -05:00
Per Bothner
071a659510 * expr.c (store_constructor): Add support for SET_TYPE.
From-SVN: r8604
1994-12-02 20:17:51 -08:00
Richard Kenner
5c5033c3c7 (convert_move): When emit multiword conversion, force FROM into a new
pseudo-reg if it overlaps TO.

From-SVN: r8593
1994-11-30 19:07:49 -05:00
Richard Kenner
8ca00751f7 (emit_block_move): Only use movstr if size is small enough constant or
MODE is at least BITS_PER_WORD.

From-SVN: r8585
1994-11-30 18:13:44 -05:00
Jeff Law
aaf87c453b expr.c (expand_assignment): For BLKmode structure returns...
* expr.c (expand_assignment): For BLKmode structure returns,
	copy the return value from registers into the target memory
	locations.

From-SVN: r8575
1994-11-28 22:44:19 -07:00
Jim Wilson
c7a7ac465e (move_by_pieces, move_by_pieces_ninsns, emit_push_insn,
expand_assignment, store_field, expand_expr): Likewise.
(SLOW_UNALIGNED_ACCESS): Default to STRICT_ALIGNMENT, not zero.

From-SVN: r8569
1994-11-28 16:58:52 -08:00
Richard Kenner
a98c9f1ab2 (emit_move_insn): If splitting up into individual words and X is a push_operand...
(emit_move_insn): If splitting up into individual words and X is a
push_operand, do the push and reference top of stack.

From-SVN: r8554
1994-11-23 13:30:35 -05:00
Richard Kenner
5a32d03841 (convert_move): Don't put FROM in a register if it is a SUBREG.
(store_expr): If don't want a value and storing into promoted
variable, do conversion at tree level; don't copy volatile MEM unless
want value, as comment says.

From-SVN: r8466
1994-11-16 07:47:58 -05:00
Richard Kenner
2e5ec6cf3b (do_jump_by_parts_greater_rtx): No longer static.
(expand_expr): Delete code for plain `abs'.

From-SVN: r8443
1994-11-15 18:35:35 -05:00
Richard Kenner
2d44400163 (expand_expr, COND_EXPR case): Don't use original target as a temp if it's a volatile mem ref.
(expand_expr, COND_EXPR case): Don't use original target as a temp if
it's a volatile mem ref.  Finish previous patch (don't expand "X ? A &
1 : A" as "A & (X != 0)").

From-SVN: r8369
1994-10-31 08:11:19 -05:00
Richard Kenner
7a0b7b9a97 (expand_expr, case COMPONENT_REF): Don't extract field from a CONSTRUCTOR if it already has a TREE_CST_RTL.
(expand_expr, case COMPONENT_REF): Don't extract field from a CONSTRUCTOR if
it already has a TREE_CST_RTL.
(expand_expr, case ADDR_EXPR): Call mark_temp_addr_taken on the temporary made
when operand needs to be stored into memory.

From-SVN: r8362
1994-10-31 07:23:35 -05:00
Doug Evans
9fbd9f58d7 (expand_expr, COND_EXPR case): Don't expand "X ? A & 1 : A" as "A & (X != 0)".
From-SVN: r8345
1994-10-26 22:22:06 +00:00
Richard Kenner
b9bcad654a (convert_move): Add TImode conversions.
From-SVN: r8248
1994-10-10 19:19:32 -04:00
Richard Kenner
45524ce90e Fix typo in last change.
From-SVN: r8236
1994-10-07 08:36:00 -04:00
Richard Kenner
6676e72f96 (safe_from_p): If EXP has a variable size, assume safe.
(preexpand_calls): Don't preexpand a call that returns a variable-sized object.

From-SVN: r8234
1994-10-07 08:26:47 -04:00
Richard Kenner
22619c3f61 (store_expr): Don't clobber TEMP with address.
From-SVN: r8227
1994-10-06 07:25:21 -04:00