Richard Kenner
b74f5ff2bd
(expand_expr, case COMPONENT_REF): If getting component of union of
...
variable size, propagate TARGET.
From-SVN: r10415
1995-10-01 21:23:04 -04:00
Richard Kenner
f29369b9f2
(store_expr): When storing promoted value, don't return MEM if address
...
contains target.
From-SVN: r10414
1995-09-29 07:47:40 -04:00
Richard Kenner
5480a90cce
(expand_builtin...
...
(expand_builtin, case BUILT_IN_MEMCPY): Strip off all NOP_EXPRs from
the source and destination nodes, then set MEM_IN_STRUCT_P.
From-SVN: r10397
1995-09-22 19:19:34 -04:00
Richard Kenner
f4510f3757
(safe_from_p): Only safe if EXP is variable-size and X is BLKmode.
...
From-SVN: r10243
1995-08-15 17:51:44 -04:00
Richard Kenner
402c7311a9
(preexpand_calls): Don't look past a CLEANUP_POINT_EXPR.
...
From-SVN: r10165
1995-07-26 09:09:44 -04:00
Richard Kenner
dabf8373fb
(stor_expr): Force stack adjust before NO_DEFER_POP.
...
(expand_expr, case COND_EXPR): Likewise.
From-SVN: r10131
1995-07-14 18:18:14 -04:00
Richard Kenner
9c51f37585
(expand_expr, TARGET_EXPR): Only use original_target if !ignore.
...
From-SVN: r10061
1995-06-27 07:58:20 -04:00
Richard Kenner
0184223489
(expand_expr, case COND_EXPR): Protect the condition from being evaluated more than once.
...
(expand_expr, case COND_EXPR): Protect the condition from being evaluated more
than once.
(do_jump, case TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR): Likewise.
From-SVN: r10055
1995-06-26 18:57:58 -04:00
Richard Kenner
0f869a71da
(expand_expr, TARGET_EXPR): Use original_target.
...
From-SVN: r10035
1995-06-22 21:41:40 -04:00
Richard Kenner
940d9d638b
Update FSF address.
...
From-SVN: r9959
1995-06-15 07:33:25 -04:00
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
Richard Kenner
af5b53ed8d
(expand_expr, case ADDR_EXPR): Call mark_temp_addr_taken.
...
From-SVN: r8225
1994-10-06 06:53:40 -04:00
Richard Kenner
41dfd40ca0
Fix error in last change.
...
From-SVN: r8215
1994-10-04 21:42:54 -04:00
Richard Kenner
34661f5c30
(do_jump_for_compare): Properly scan insns when branch is at start of
...
sequence.
From-SVN: r8214
1994-10-04 19:06:09 -04:00
Jim Wilson
1899299599
(result_vector): Use INCOMING_REGNO when !savep instead
...
of when savep.
From-SVN: r8170
1994-09-29 17:02:36 -07:00
Mike Stump
7ee055f4ae
expr.c (do_jump): Handle cleanups in TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
...
* expr.c (do_jump): Handle cleanups in TRUTH_ANDIF_EXPR and
TRUTH_ORIF_EXPR.
From-SVN: r8164
1994-09-29 20:45:05 +00:00
Richard Kenner
0407367d53
(convert_move): Added handling of PDImode conversions.
...
From-SVN: r8161
1994-09-28 19:32:44 -04:00
Richard Kenner
809ab85718
(emit_move_insn_1): Never make a no-conflict block.
...
From-SVN: r7951
1994-08-19 19:23:00 -04:00
Richard Kenner
ba558a85d2
(expand_builtin): Relegate sin and cos to ffast-math.
...
From-SVN: r7886
1994-08-11 12:56:59 -04:00
Jason Merrill
fd67d2b620
(expand_expr...
...
(expand_expr, COND_EXPR case): Use truthvalue_conversion
to make the condition for running cleanups acceptable to
invert_truthvalue.
From-SVN: r7861
1994-08-05 19:02:42 +00:00
Jason Merrill
4ea8537b90
(defer_cleanups_to): Put back line which was mistakenly
...
removed.
From-SVN: r7857
1994-08-05 01:49:31 +00:00
Richard Kenner
72bb971732
(move_block_to_reg): Do nothing if NREGS == 0.
...
From-SVN: r7820
1994-07-29 17:36:13 -04:00
Richard Kenner
62acb9781f
(expand_expr, case CONJ_EXPR): Use correct mode for parts of a complex
...
expression.
From-SVN: r7815
1994-07-28 19:48:33 -04:00
Richard Kenner
ad2e7dd004
(expand_expr, case ARRAY_REF): Don't fold L"foo"[2].
...
From-SVN: r7797
1994-07-26 19:45:11 -04:00
Jim Wilson
24a13950ca
(store_field): Set MEM_IN_STRUCT_P on object and
...
blk_object.
From-SVN: r7767
1994-07-13 13:35:03 -07:00
Richard Kenner
03747aa399
(convert_move): Add some conversions for TQFmode.
...
From-SVN: r7733
1994-07-11 19:27:23 -04:00
Richard Kenner
e74a220154
(expand_builtin, case BUILT_IN_FSQRT): Don't use asterisk in name of
...
`errno'.
From-SVN: r7695
1994-07-10 06:02:49 -04:00
Richard Kenner
5069803972
(expand_expr, case CONVERT_EXPR): If changing signedness and we have a
...
promoted SUBREG, clear the promotion flag.
From-SVN: r7686
1994-07-08 18:22:46 -04:00
Jim Wilson
6be583037c
(get_inner_unaligned_p): New function.
...
(expand_assignment, expand_expr): Use it.
From-SVN: r7685
1994-07-08 14:41:02 -07:00
Mike Stump
d93d4205f1
fix temp lifetime (FOR TARGET_EXPRs only)
...
From-SVN: r7681
1994-07-08 20:45:14 +00:00
Mike Stump
61d6b1cca1
expr.c (expand_expr, [...]): All cleanups have to be protected by interim exception handling code.
...
* expr.c (expand_expr, defer_cleanups_to, expand_cleanups_to): All
cleanups have to be protected by interim exception handling code.
* stmt.c (expand_decl_cleanup, expand_cleanups): Ditto.
* toplev.c (interim_eh_hook): Hook for interim exception handling.
* toplev.c (interim_eh): Default implementation for exception
handling that does nothing.
* toplev.c (main): Set default for interim_eh_hook.
From-SVN: r7666
1994-07-07 03:08:23 +00:00
Richard Kenner
3e073e7297
(expand_increment): If pre-incrementing a promoted variable, don't
...
adjust OP0 since the result won't be used.
From-SVN: r7655
1994-07-05 18:27:27 -04:00
Richard Kenner
2f6e6d22ea
(do_jump, case BIT_AND_EXPR): Only narrow to a type that corresponds
...
to a mode.
From-SVN: r7580
1994-06-28 05:44:57 -04:00
Richard Kenner
119af78aa8
(expand_expr, case ADDR_EXPR): If result is ignored, just return
...
const0_rtx.
From-SVN: r7421
1994-06-02 08:13:33 -04:00
Richard Kenner
94b25f81ca
Update comments.
...
From-SVN: r7420
1994-06-02 07:24:33 -04:00
Doug Evans
0304dfbb67
expr.c (use_reg): Fix recording of USE information.
...
* expr.c (use_reg): Fix recording of USE information.
(use_regs): Likewise.
Delete argument `reg'. All callers changed.
* expr.h (use_regs): Update prototype.
* calls.c (expand_call): Update call to use_regs. Call use_reg
if parm is wholly in registers.
From-SVN: r7378
1994-05-27 23:27:50 +00:00
Richard Kenner
d720b9d197
(expand_expr...
...
(expand_expr, case CONSTRUCTOR): If constant and large enough for
memcpy to be used, build constructor into static memory.
From-SVN: r7365
1994-05-27 14:56:31 -04:00
Richard Kenner
4ac0968744
Use #ifdef TARGET_EDOM, not #if.
...
From-SVN: r7307
1994-05-16 16:18:54 -04:00
Richard Kenner
930b4e398e
(convert_move): When {zero,sign}_extending, allow a wider intermediate
...
than to_mode if truncation is a no-op.
From-SVN: r7306
1994-05-16 16:16:12 -04:00
Mike Stump
5dab5552a1
calls.c (expand_call): Only destroy temporaries at the end of function calls, if flag_short_temps is set.
...
* calls.c (expand_call): Only destroy temporaries at the end
of function calls, if flag_short_temps is set.
* expr.c (safe_from_p, expand_expr): Handle CLEANUP_POINT_EXPRs.
* expr.c (expand_expr): Improve handling of temporaries inside
COND_EXPRs, cures call to sorry.
* expr.c (defer_cleanups_to): New routine to handle the deferral
of cleanups.
* flags.h (flag_short_temps): New flag, to allow better control
over the lifetime of temporaries.
* toplev.c (flag_short_temps, lang_options): Ditto.
* tree.def (CLEANUP_POINT_EXPR): Add, to allow better control over
the lifetime of temporaries.
From-SVN: r7289
1994-05-13 00:19:57 +00:00
Richard Kenner
6d100794d0
(expand_builtin_apply): Put new function usage data at end of any data
...
already there.
From-SVN: r7274
1994-05-11 16:23:11 -04:00
Richard Kenner
b3f8cf4ab9
(use_regs, expand_builtin_apply): Change from USE and CLOBBER insns to
...
using CALL_INSN_FUNCTION_USAGE.
From-SVN: r7240
1994-05-06 17:47:35 -04:00
Richard Kenner
1ee86d1598
(expand_builtin...
...
(expand_builtin, case BUILT_IN_ALLOCA): Don't set
current_function_calls_alloca here nor record new stack level for
nonlocal gotos.
From-SVN: r7230
1994-05-06 13:44:56 -04:00
Mike Stump
d3158f1a23
tell expand_expr that we are going to ignore the cleanup.
...
TREE_SIDE_EFFECTS should be set on these things.
From-SVN: r7222
1994-05-06 10:13:17 +00:00
Mike Stump
19d3f3c523
minor tweak.
...
From-SVN: r7220
1994-05-06 09:02:42 +00:00
Doug Evans
33162bebd8
(expand_builtin): Fix typo in previous patch
...
(allow __builtin_next_arg in varargs functions).
From-SVN: r7164
1994-04-28 16:39:50 +00:00
Per Bothner
05e3bdb9cb
Use new macro AGGREGATE_TYPE_P.
...
From-SVN: r7160
1994-04-26 16:56:21 -07:00
Richard Kenner
e70d22c84f
(expand_expr, case SAVE_EXPR): Fix error in last change.
...
From-SVN: r7141
1994-04-24 11:17:02 -04:00
Jim Wilson
c1da1f33b7
(store_expr): Don't check the TYPE_MODE of an ERROR_MARK.
...
From-SVN: r7122
1994-04-21 12:46:31 -07:00
Richard Kenner
9bac07c3dd
(bc_expand_expr): Call expand_decl and expand_decl_init, not the bc_
...
versions.
From-SVN: r7114
1994-04-21 15:28:59 -04:00
Jason Merrill
6fcc9690b3
(expand_expr): Don't force ignore when expanding the subexpression of a WITH_CLEANUP_EXPR.
...
(expand_expr): Don't force ignore when expanding the
subexpression of a WITH_CLEANUP_EXPR. Don't check ignore when
deciding whether or not to expand the cleanup for a TARGET_EXPR.
From-SVN: r7100
1994-04-20 18:12:36 +00:00
Doug Evans
bf76bb5a49
#include regs.h.
...
#include regs.h.
(use_regs): Use reg_raw_mode.
From-SVN: r7085
1994-04-20 03:34:57 +00:00
Richard Kenner
ccfa6cbb7b
(expand_builtin_apply): Pass new arg to prepare_call_address.
...
From-SVN: r7074
1994-04-18 16:37:34 -04:00
Richard Kenner
78911e8b93
(expand_expr, case VAR_DECL, SAVE_EXPR): Use promote_mode.
...
From-SVN: r7069
1994-04-18 14:52:26 -04:00
Richard Kenner
e4493c0410
(expand_builtin, case BUILT_IN_NEXT_ARG): Test whether an argunment
...
has been passed to __builtin_next_arg; warn if not.
From-SVN: r6994
1994-04-06 21:33:57 -04:00
Richard Kenner
17bbab26bb
(expand_builtin): Allow builtin_next_arg for varargs functions as
...
well.
From-SVN: r6984
1994-04-06 07:48:06 -04:00
Richard Kenner
682ba3a67b
(expand_expr, case ADDR_EXPR): Return const0_rtx if taking address of
...
an ERROR_MARK; also do some minor cleanup.
From-SVN: r6908
1994-03-25 19:53:32 -05:00
Richard Kenner
3d0f0ad043
(expand_expr, case ABS_EXPR): Compare with 0 of proper mode.
...
From-SVN: r6901
1994-03-25 17:02:56 -05:00
Jim Wilson
c4dfe0fc06
(expand_builtin, BUILT_IN_NEXT_ARG case): Verify that
...
parameter is last named argument.
From-SVN: r6854
1994-03-23 14:16:55 -08:00
Richard Kenner
987c71d9bc
(expand_expr, case ADDR_EXPR): Update temp slot address if we put it
...
in a register; mark result as pointer.
From-SVN: r6842
1994-03-21 17:14:41 -05:00
Jim Wilson
eedd251f16
(expand_expr, case ABS_EXPR): Fix typo in last change.
...
From-SVN: r6827
1994-03-19 14:43:50 -08:00
Richard Kenner
d6a5ac336d
(expand_expr): Update comments and fix formatting.
...
(expand_expr, case VAR_DECL, STRING_CST, CONSTRUCTOR): If flag_force_addr, put
address in register unless REG.
(expand_expr, case CONSTRUCTOR, CONVERT_EXPR): Make TARGET with TMODE, if
specified.
(expand_expr, case IN_EXPR): Clean up. Allow INDEX to be an unsigned type.
Always evaluate SET and INDEX in case of side effects.
(expand_expr, case CONVERT_EXPR): Use convert_modes to handle consts.
(expand_expr, case ABS_EXPR): Simplify processing of COMPLEX.
Compare with zero word-by-word if required.
(expand_expr, case ABS_EXPR, MIN_EXPR, COND_EXPR): Don't use TARGET if
not MODE.
(expand_expr, case TRUTH_*_EXPR): Modes of input and output must agree.
(expand_expr, case CONJ_EXPR): Remove redundant def of MODE.
From-SVN: r6794
1994-03-16 08:24:29 -05:00
Richard Kenner
1d556704ce
(expand_expr): Don't call bc_expand_expr if EXPAND_INITIALIZER.
...
From-SVN: r6781
1994-03-14 08:11:32 -05:00
Richard Kenner
153c149bec
(expand_builtin, case BUILT_IN_RETURN_ADDRESS): Call tree_int_cst_sgn.
...
From-SVN: r6778
1994-03-14 05:10:47 -05:00
Doug Evans
1f584163ee
(convert_move): Change name of truncsipsi to truncsipsi2
...
to conform to existing convention, same with extendpsisi.
From-SVN: r6678
1994-02-28 23:31:01 +00:00
Richard Kenner
d0c766547a
(emit_move_insn): Delete unused vars.
...
(emit_move_insn_1): Don't set SUBMODE unless used.
(expand_builtin, case BUILT_IN_SAVEREGS): Clean up uses of VALREG
and SAVED_VALREG.
From-SVN: r6642
1994-02-27 10:47:10 -05:00
Richard Kenner
766f36c7cf
(store_expr): In promoted TARGET case, if EXP is a volatile MEM and WANT_VALUE is nonzero, only reference the MEM once.
...
(store_expr): In promoted TARGET case, if EXP is a volatile MEM and
WANT_VALUE is nonzero, only reference the MEM once.
Return TARGET if it is a hard register; clean up return code.
From-SVN: r6630
1994-02-26 16:09:05 -05:00
Jim Wilson
8dc2fbcff4
(get_pointer_alignment): ALIGN is alignment of innermost
...
object, not the MAX of alignment of all objects.
From-SVN: r6579
1994-02-16 13:01:02 -08:00
Jim Wilson
6551fa4d72
(group_insns): Delete.
...
(emit_move_insn_1, expand_expr): Use emit_no_conflict_block
instead of group_insns.
From-SVN: r6578
1994-02-16 12:57:27 -08:00
Per Bothner
4042d44040
Use new flag TYPE_STRING_FLAG instead of STRING_TYPE.
...
From-SVN: r6570
1994-02-15 19:52:30 -08:00
Richard Kenner
79777b798c
(expand_increment): Handle both BAD_SUBREG and POST.
...
From-SVN: r6567
1994-02-15 19:30:29 -05:00
Richard Kenner
98aad28669
(expand_builtin): If the builtin was called as __builtin_whatever,
...
pretend we're optimizing.
From-SVN: r6529
1994-02-11 17:35:51 -05:00
Jim Wilson
186f92ce97
(local_vars_size): Add extern to declaration.
...
From-SVN: r6443
1994-01-31 14:24:34 -08:00
Richard Kenner
127e4d19bd
(do_jump_for_compare): Initialize JUMP_LABEL for the branch insn
...
before trying to invert it.
From-SVN: r6418
1994-01-23 18:56:41 -05:00
Richard Kenner
976ff203d8
(emit_move_insn_1): Call gen_realpart and gen_imagpart instead of
...
gen_lowpart and gen_highpart.
From-SVN: r6378
1994-01-10 19:35:46 -05:00
Richard Kenner
e9baa64402
(protect_from_queue): If (MEM (QUEUED ...)), modify a new MEM instead
...
of the one we were passed.
From-SVN: r6375
1994-01-10 19:23:47 -05:00
Richard Kenner
993102850b
(exand_expr, case RTL_EXPR): Call new function preserve_rtl_expr_result.
...
From-SVN: r6368
1994-01-10 19:06:36 -05:00
Richard Kenner
bf500664d7
(do_tablejump): Call emit_cmp_insn with likely-constant as second
...
operand.
From-SVN: r6329
1993-12-26 18:12:37 -05:00
Richard Kenner
3207b172f7
(expand_expr, case CONSTRUCTOR): If have a target, don't build
...
constructor into memory.
From-SVN: r6323
1993-12-25 17:51:12 -05:00
Richard Kenner
307b821c36
(expand_expr...
...
(expand_expr, case ARRAY_REF): Remove uses of *_type_node and simplify
folding a reference to a character in a STRING_CST.
From-SVN: r6322
1993-12-25 13:35:27 -05:00
Jim Wilson
2bf29316da
(convert_modes): Can't truncate REG with gen_lowpart if
...
TRULY_NOOP_TRUNCATION doesn't allow it.
From-SVN: r6306
1993-12-24 12:20:44 -08:00
Richard Kenner
ea87523e22
(expand_expr, case MINUS_EXPR): When expanding an initializer, use
...
plus_constant as appropriate.
From-SVN: r6283
1993-12-23 17:14:26 -05:00
Jim Wilson
5b22bee861
(expand_expr, NEGATE_EXPR case): Use subtarget in
...
recursive call, not target.
From-SVN: r6271
1993-12-22 11:35:27 -08:00
Richard Kenner
1f9becfcbe
(expand_builtin): Allow __builtin_next_arg to be used in varargs
...
functions.
From-SVN: r6237
1993-12-15 18:14:13 -05:00
Richard Kenner
c3a02afeae
(move_block_{to,from}_reg): Check HAVE_{load,store}_multiple value;
...
don't just #idef the symbol.
From-SVN: r6192
1993-12-06 20:55:51 -05:00
Richard Kenner
f59d43a947
(expand_expr, case PLACEHOLDER_EXPR): Remove top entry from
...
PLACEHOLDER_LIST when expanding the value in it.
From-SVN: r6187
1993-12-06 07:32:35 -05:00
Richard Kenner
ca8142590f
(expand_expr, case RTL_EXPR): Call free_temps_for_rtl_expr.
...
From-SVN: r6163
1993-11-25 18:12:37 -05:00
Richard Kenner
e287fd6e75
(expand_expr, case ADDR_EXPR): Also pass const0_rtx if necessary, to avoid multiple cleanup runs.
...
(expand_expr, case ADDR_EXPR): Also pass const0_rtx if necessary, to
avoid multiple cleanup runs.
(expand_expr, case WITH_CLEANUP_EXPR): Pass const0_rtx if necessary,
to keep the recursive call from running the same cleanups twice.
(expand_expr, case TARGET_EXPR): Don't try to add the cleanup if
ignore's non-zero, since we would have already done it.
From-SVN: r6155
1993-11-24 07:02:20 -05:00
Richard Kenner
adc22a04eb
(expand_expr...
...
(expand_expr, case SAVE_EXPR): Properly recompute the value of
UNSIGNEDP when SAVE_EXPR_RTL is nonzero and we have promoted.
From-SVN: r6143
1993-11-23 15:26:10 -05:00
Richard Stallman
7b073ca6c5
(expand_builtin): For sin, cos, fsqrt, alloca, ffs, strlen,
...
strcpy, memcpy, strcmp, memcmp, if args are bad, use expand_call.
From-SVN: r6122
1993-11-20 09:21:06 +00:00
Richard Kenner
bbd6cf73c6
(store_field): Convert EXP to MODE before calling store_bit_field.
...
From-SVN: r6119
1993-11-19 18:48:17 -05:00
Richard Stallman
b258707c7e
(expand_expr): For TRUTH_AND_EXPR...
...
(expand_expr): For TRUTH_AND_EXPR, TRUTH_OR_EXPR
and TRUTH_XOR_EXPR, if result mode doesn't match operands,
don't use subtarget.
(store_expr): Convert constants to proper mode in two places.
From-SVN: r6096
1993-11-15 02:42:39 +00:00
Richard Stallman
034f9101fd
(expand_expr): Use a smaller alignment when reading from a field
...
with a variable offset.
From-SVN: r6054
1993-11-10 21:31:41 +00:00
Richard Stallman
d78d243c9c
(expand_assignment): Use a smaller alignment when storing
...
into a field with a variable offset.
From-SVN: r6051
1993-11-10 19:41:37 +00:00
Richard Stallman
e33c0d6689
(emit_move_insn_1): Push the components of a complex
...
in proper order: imag part has higher address.
From-SVN: r6024
1993-11-06 06:24:13 +00:00
Jim Wilson
0c316b201f
(do_store_flag): For equality test of a single bit, use
...
subtarget instead of target in calls.
From-SVN: r5956
1993-10-31 10:33:12 -08:00
Richard Stallman
a81fee56a9
(convert_move): When extending to multi-word register
...
via its low word, clobber the whole thing.
From-SVN: r5953
1993-10-31 03:04:16 +00:00
Richard Stallman
0766f23917
(do_jump): Use do_jump_by_parts_equality for complex compares.
...
From-SVN: r5938
1993-10-30 06:03:36 +00:00
Richard Stallman
6d6e61ceba
(expand_assignment): Use duplicate instead of dup as bytecode op.
...
(bc_expand_expr): Likewise.
(bc_expand_constructor): Likewise.
(emit_move_insn_1): Don't call group_insns when X is a CONCAT.
(emit_move_insn_1, case CONJ_EXPR and COMPLEX_EXPR): Likewise.
From-SVN: r5916
1993-10-27 06:39:01 +00:00
Richard Kenner
4805bfa06d
(expand_expr, case PLACEHOLDER_EXPR): Fix typos.
...
From-SVN: r5887
1993-10-25 18:53:35 -04:00
Richard Stallman
46093b975f
(store_field): In BLKmode case, return blk_object.
...
From-SVN: r5885
1993-10-25 21:44:05 +00:00
Richard Kenner
7c314719ba
(store_constructor): Handle non-zero array lower bound.
...
From-SVN: r5835
1993-10-20 17:39:45 -04:00
Richard Kenner
f12f485a96
(do_jump_for_compare): Don't blow up if aren't any insns in this
...
sequence yet.
From-SVN: r5789
1993-10-14 00:34:07 -04:00
Richard Kenner
64791b18b8
(convert_modes): Reset OLDMODE from X after we strip a SUBREG due to a
...
promoted variable.
From-SVN: r5752
1993-10-12 15:41:52 -04:00
Richard Kenner
33a20d105c
(expand_assignment): When assigning an INDIRECT_REF to a RESULT_DECL,
...
the size and source rtx were swapped.
From-SVN: r5735
1993-10-11 15:04:26 -04:00
Richard Kenner
1ad87b6329
(expand_assignment): Don't short circuit store_expr when TO is a
...
VAR_DECL since it needs special handling if promoted.
From-SVN: r5712
1993-10-10 17:06:36 -04:00
Richard Kenner
3756812583
(expand_expr, case ABS_EXPR): Don't copy twice into volatile MEM.
...
From-SVN: r5698
1993-10-09 15:19:52 -04:00
Richard Kenner
90764a87b6
(expand_expr): Never reset ORIGINAL_TARGET.
...
Pass ORIGINAL_TARGET to lang_expand_expr, not TARGET.
From-SVN: r5697
1993-10-09 15:17:01 -04:00
Richard Kenner
ee456b1c64
Undo rev 1.156 change; redundant with rev 1.155 change.
...
From-SVN: r5694
1993-10-08 19:30:27 -04:00
Richard Stallman
f0dbe37245
(expand_expr, MAX_EXPR and MIN_EXPR case):
...
Don't store in TARGET twice if it's volatile.
From-SVN: r5688
1993-10-08 22:02:44 +00:00
Richard Kenner
fc1557074c
(expand_expr, case MAX_EXPR): Don't use TARGET directly if it is a
...
volatile MEM.
From-SVN: r5681
1993-10-08 11:25:24 -04:00
Richard Stallman
2dca20cd24
(expand_expr, case VAR_DECL): If decl wasn't laid out,
...
lay it out now, and fix the rtl's mode.
From-SVN: r5671
1993-10-08 04:58:24 +00:00
Richard Kenner
ba2e110c46
(convert_modes): Properly handle extending constants since we might be
...
changing signedness.
From-SVN: r5623
1993-10-05 22:17:52 -04:00
Richard Kenner
6bd6178de9
(bc_init_mode_to_opcode_maps, bc_expand_expr): Cast enum array indices to int.
...
(bc_load_memory, bc_store_memory): Likewise.
(bc_runtime_type_code): Cast enum logical operand to int.
From-SVN: r5592
1993-10-04 18:01:19 -04:00
Richard Kenner
b50d17a148
(store_expr): Use expr_size value, not size_int.
...
(store_constructor): Handle case of variable position and allow it to contain
a PLACEHOLDER_EXPR.
(get_inner_reference): Make a WITH_RECORD_EXPR if required.
(expand_expr, case PLACEHOLDER_EXPR, WITH_RECORD_EXPR): New cases.
(expand_expr, case ARRAY_REF): Make WITH_RECORD_EXPR expressions when needed.
From-SVN: r5584
1993-10-03 21:48:03 -04:00
Richard Kenner
0088fcb195
(expand_assignment, expand_expr, do_jumps): Push and pop temp slots
...
around making new temp slots and freeing them.
From-SVN: r5524
1993-09-28 21:26:23 -04:00
Jan Brittenson
de7d93205e
(bc_expand_constructor): Delete cast of argument to bc_emit_instruction to HOST_WIDE_INT.
...
(bc_expand_constructor): Delete cast of argument to
bc_emit_instruction to HOST_WIDE_INT. Move assignment of ptroffs to
separate line.
From-SVN: r5487
1993-09-27 11:21:32 -07:00
Richard Stallman
673bc773d3
(expand_expr, case COND_EXPR): Set MEM_IN_STRUCT_P properly for TEMP.
...
From-SVN: r5481
1993-09-27 01:25:54 +00:00
Richard Kenner
ad92c8260e
(do_store_flag): Use new macros LOAD_EXTEND_OP and WORD_REGISTER_OPERATION...
...
(do_store_flag): Use new macros LOAD_EXTEND_OP and
WORD_REGISTER_OPERATION instead of BYTE_LOADS_*_EXTEND and
LOAD_EXTEND.
From-SVN: r5474
1993-09-25 08:21:34 -04:00
Richard Stallman
eb862a3735
Fix typo in last change.
...
From-SVN: r5472
1993-09-25 12:15:25 +00:00
Jan Brittenson
e7a4277263
changed bytecode rtx structure references into macros
...
From-SVN: r5435
1993-09-23 10:08:13 -07:00
Richard Stallman
a97f5a864f
(expand_increment): Don't store directly ito a subreg
...
that is narrower than a word.
From-SVN: r5433
1993-09-23 16:56:28 +00:00
Richard Stallman
a68c760860
(bc_adjust_stack): Use VALIDATE_STACK_FOR_BC, not VALIDATE_STACK.
...
From-SVN: r5421
1993-09-22 22:01:15 +00:00
Richard Stallman
5e70898cb4
(bc_strdup): Don't use strcpy's value.
...
From-SVN: r5414
1993-09-22 20:21:03 +00:00
Jan Brittenson
292b12167d
fixed typo in bytecode code
...
From-SVN: r5404
1993-09-22 11:45:16 -07:00
Jan Brittenson
c02bd5d96e
bytecode fixes
...
From-SVN: r5402
1993-09-22 11:33:20 -07:00
Jan Brittenson
ca695ac93d
bytecode
...
From-SVN: r5379
1993-09-21 14:25:24 -07:00
Richard Stallman
2c4c436ae8
(expand_expr): Handle flag_volatile here.
...
From-SVN: r5375
1993-09-20 21:24:17 +00:00
Richard Stallman
81d79e2c7a
(convert_move): Use emit_library_call_value.
...
From-SVN: r5353
1993-09-18 13:28:10 +00:00
Richard Stallman
03dc44a614
(store_constructor): Handle TREE_PURPOSE of array constructor.
...
(expand_expr, ARRAY_REF case): Likewise.
From-SVN: r5315
1993-09-13 20:16:51 +00:00
Per Bothner
d4c8913966
(expand_expr, ARRAY_REF): Coerce low_bound to sizetype.
...
From-SVN: r5313
1993-09-12 23:01:37 -07:00
Richard Stallman
3f15938e00
(protect_from_queue): Don't alter an existing MEM.
...
(convert_modes): Use X's mode (not OLDMODE) unless it is VOIDmode.
From-SVN: r5311
1993-09-12 13:19:38 +00:00
Richard Stallman
5ffe63ed99
(convert_modes): New function.
...
(convert_to_mode): Use that.
From-SVN: r5297
1993-09-09 19:51:59 +00:00
Richard Stallman
4d87de75c5
(expand_expr): Set ignore for COND_EXPR with VOID_TYPE.
...
From-SVN: r5293
1993-09-09 13:49:54 +00:00
Jim Wilson
431a6ecab3
(convert_move): When truncating, call force_reg first if
...
it is something that gen_lowpart won't understand.
From-SVN: r5287
1993-09-08 11:58:14 -07:00
Richard Kenner
904762c89e
(apply_args_egister_offset): Don't use ANSI-style definition.
...
From-SVN: r5214
1993-08-26 05:58:46 -04:00
Kresten Krab Thorup
fb2ca25a9d
(apply_args_register_offset): New function
...
(apply_args_register_offset): New function
(apply_args_register_offset): New function
(apply_args_reg_offset): New variable
(apply_args_size): Added initialization of apply_args_reg_offset.
From-SVN: r5198
1993-08-24 09:53:21 +00:00
Jeff Law
b4af138b01
* expr.c (expand_builtin_apply): Fix typo.
...
From-SVN: r5191
1993-08-22 21:37:09 -06:00
Richard Kenner
34a25822f3
(expand_expr, case SAVE_EXPR): Set MEM_IN_STRUCT_P appropriately when
...
the result is a MEM.
From-SVN: r5159
1993-08-13 19:26:34 -04:00
Richard Stallman
7d26fec6ad
(store_expr): Don't return TEMP if it's a MEM.
...
From-SVN: r5139
1993-08-12 08:06:01 +00:00
Jim Wilson
591b15bb1c
(expand_increment): Call save_expr on inner expression if
...
it is itself an increment expression.
From-SVN: r5115
1993-08-08 15:48:15 -07:00
Richard Stallman
709f5be119
(expand_assignment): If WANT_VALUE is 0, return NULL.
...
(store_expr): Likewise.
Rename arg SUGGEST_REG to WANT_VALUE.
Never return TARGET if WANT_VALUE unless BLKmode.
Instead, return TEMP or a value copied from TARGET.
Pass 0 for WANT_VALUE in recursive calls that ignore value.
(expand_expr, case PLUS_EXPR): Goto binop2 not
both_summands if we should not be returning a plus.
(do_tablejump) [PIC_CASE_VECTOR_ADDRESS]: If pic,
copy INDEX to a register early, to avoid invalid address later.
From-SVN: r5108
1993-08-08 18:54:00 +00:00
Richard Stallman
19b2fd27ea
(do_tablejump): Use PIC_CASE_VECTOR_ADDRESS if defined.
...
From-SVN: r5050
1993-08-01 20:11:48 +00:00
Richard Stallman
b6f01001b1
(expand_expr, case ADDR_EXPR): Treat CONCAT like REG.
...
From-SVN: r5030
1993-07-28 18:46:31 +00:00
Jim Wilson
0040593d86
(move_block_from_reg): New argument SIZE.
...
(move_block_from_reg): New argument SIZE. If SIZE less
than word and BYTES_BIG_ENDIAN, shift block left to align it
before storing it to memory.
From-SVN: r5014
1993-07-28 10:13:53 -07:00
Richard Stallman
c937357e3a
(emit_move_insn_1): For complex stack push, don't use change_address.
...
From-SVN: r4983
1993-07-24 22:20:55 +00:00
Jim Wilson
092dded9eb
(expand_expr, COMPONENT_REF case): For unaligned object
...
in an aligned union, set MEM_IN_STRUCT_P if create a MEM rtx.
From-SVN: r4964
1993-07-21 15:05:43 -07:00
Richard Stallman
a358cee0e5
(expand_increment): Convert constant subtract to add before setting single_insn.
...
(expand_increment): Convert constant subtract to add
before setting single_insn. Compensate for this when choosing
the tree code to pass to `build'.
From-SVN: r4944
1993-07-20 06:23:58 +00:00
Jim Wilson
d57c66daa6
(convert_to_mode): Move misplaced parentheses.
...
From-SVN: r4878
1993-07-07 15:04:52 -07:00
Richard Stallman
ccc9803602
(store_field): Test STRICT_ALIGNMENT at run time.
...
(expand_expr, COMPONENT_REF case): Fetch unaligned field as bitfield.
From-SVN: r4841
1993-07-05 03:31:42 +00:00
Richard Stallman
c980ac4985
(expand_expr...
...
(expand_expr, case PLUS_EXPR): In the special case
to return sym+integer as an expression, limit it to when
the non-CONST_INT arg is at least a constant.
(expand_increment): Do preinc with single insn if there's such an insn.
(store_field): Store unaligned field with bit field methods.
From-SVN: r4810
1993-07-01 05:17:45 +00:00
Richard Kenner
e44842fede
(store_constructor): Treat QUAL_UNION_TYPE just like UNION_TYPE.
...
(safe_from_p, case ADDR_EXPR): EXP is safe from X it is is static or if the
object whose address is being taken is safe from X.
(expand_expr): Fix misplaced comment from last change.
(expand_expr, case *_DECL): If not already used, assemble external.
(expand_expr, case EXIT_EXPR): Simplify.
(expand_expr, TRUTH_{AND,OR}IF_EXPR): Properly handle IGNORE case.
From-SVN: r4772
1993-06-27 18:55:11 -04:00
Richard Kenner
3319a3472f
Fix typo: was ARGS_GROW_DOWNARD.
...
From-SVN: r4767
1993-06-27 18:40:04 -04:00
Richard Stallman
cd1db1088e
(expand_assignment): If FROM is scalar function call,
...
expand_expr FROM before TO.
From-SVN: r4759
1993-06-26 20:45:13 +00:00
Richard Kenner
af508edd0a
(do_store_flag): When computing via a shift, allow for an inner RSHIFT_EXPR in BITNUM.
...
(do_store_flag): When computing via a shift, allow for an inner RSHIFT_EXPR
in BITNUM.
Sometimes do the operations as signed.
From-SVN: r4747
1993-06-26 11:06:01 -04:00
Richard Stallman
c2e6aff601
(store_expr): If TARGET is volatile mem ref, return it.
...
From-SVN: r4730
1993-06-25 18:14:35 +00:00
Richard Kenner
dd27116b8f
(expand_expr): Set IGNORE if target is const0_rtx or result type is VOID.
...
Move most IGNORE processing to one place to avoid expanding things that don't
need to be expanded.
(expand_expr, case CONSTRUCTOR, case COND_EXPR): If IGNORE, don't expand
anything we don't have to.
(expand_expr, case CONVERT_EXPR): Don't deal with IGNORE here.
From-SVN: r4714
1993-06-23 07:50:02 -04:00
Richard Stallman
2937cf8796
(expand_expr, case COND_EXPR): Fix typo; const1_rtx should
...
be const0_rtx when ignoring expression.
From-SVN: r4674
1993-06-13 18:15:58 +00:00
Richard Stallman
8c042b47af
(expand_expr): Finish Tue Aug 18 23:07:33 1992 change.
...
(expand_expr): Finish Tue Aug 18 23:07:33 1992 change. It
didn't handle the target != 0 case, now it does.
From-SVN: r4561
1993-05-24 19:26:25 +00:00
Richard Kenner
4be204f02d
(expand_assignment): Fix error in last change.
...
From-SVN: r4476
1993-05-15 16:11:06 -04:00
Richard Stallman
d3652c4b7f
(expand_assignment): Always return a result that has the mode of TO.
...
From-SVN: r4468
1993-05-15 13:59:45 +00:00
Richard Kenner
2abec1b739
(convert_move): Make copy of operands for REG_EQUAL note to avoid sharing RTL if called later than RTL generation...
...
(convert_move): Make copy of operands for REG_EQUAL note to avoid
sharing RTL if called later than RTL generation, though probably not
called after RTL generation.
From-SVN: r4339
1993-05-05 14:37:24 -04:00
Richard Kenner
f85b95d147
(emit_block_move): Cast to unsiged HOST_WIDE_INT instead of unsigned int.
...
From-SVN: r4260
1993-04-28 14:57:49 -04:00
Richard Kenner
da120c2f90
(expand_expr...
...
(expand_expr, case OFFSET_REF): Avoid using build_{unary,binary}_op
since the calling sequences depend on the front-end.
From-SVN: r4195
1993-04-23 06:56:05 -04:00
Richard Kenner
1c6bc81741
Edit comment.
...
From-SVN: r4136
1993-04-13 17:07:22 -04:00
Richard Kenner
e7f3c83f0e
Treat QUAL_UNION_TYPE like UNION_TYPE when seeing if aggregate.
...
(get_inner_reference): Don't blow up if a FIELD_DECL hasn't been
filled in.
(expand_expr, case COMPONENT_REF): Likewise.
From-SVN: r4117
1993-04-13 06:45:11 -04:00
Richard Kenner
5bf6e3bd1e
(do_store_flag, case GT_EXPR, LE_EXPR): Don't confuse highest unsigned
...
value with -1.
From-SVN: r4049
1993-04-08 21:38:46 -04:00
Richard Kenner
ff78f7732c
(expand_expr, case SAVE_EXPR): Pass promoted type to store_expr.
...
From-SVN: r4022
1993-04-05 06:57:19 -04:00
Richard Stallman
597bb7f10b
(store_constructor): Properly compute size of array when
...
clearing the whole array.
From-SVN: r4021
1993-04-05 10:55:34 +00:00
Richard Kenner
c03b7665c2
(store_expr): Call size_binop instead of doing the same thing with
...
fold and build.
From-SVN: r3993
1993-04-03 17:37:45 -05:00
Richard Kenner
26ba80fc72
(emit_push_insn, expand_assignment): Fix typo in last change.
...
From-SVN: r3985
1993-04-01 07:27:57 -05:00
Richard Kenner
896102d0c6
(expand_expr, case ADDR_EXPR): Allow taking the address of any object;
...
used in call-by-reference situations.
From-SVN: r3970
1993-03-31 16:06:33 -05:00
Richard Kenner
0fa83258de
(emit_block_move, emit_push_insn, expand_assignment): Size passed to
...
memcpy/bcopy is SIZETYPE, not Pmode.
From-SVN: r3966
1993-03-31 16:01:17 -05:00
Richard Kenner
e6677db3fd
(movstr_optab): No longer static.
...
(init_expr_once): Don't initialize movstr_optab.
From-SVN: r3923
1993-03-30 15:28:12 -05:00
Richard Stallman
f81497d905
(expand_expr, case MAX_EXPR/MIN_EXPR): If mode is multiword int,
...
use do_jump_by_parts_greater_rtx to compare efficiently.
(do_jump_by_parts_greater_rtx): New function.
From-SVN: r3909
1993-03-29 08:23:24 +00:00
Richard Stallman
f2878c6b32
(expand_expr): For COMPONENT_REF, don't force_reg op0 if it is BLKmode.
...
From-SVN: r3905
1993-03-28 23:55:45 +00:00
Tom Wood
dcf76ffff5
Move misapplied patch
...
From-SVN: r3852
1993-03-23 13:57:14 +00:00
Richard Kenner
5e2869e6b4
Don't include gvarargs.h.
...
(emit_library_call, emit_library_call_value): Delete from here.
From-SVN: r3849
1993-03-23 08:10:05 -05:00
Tom Wood
0006469db8
(expand_builtin...
...
(expand_builtin, BUILT_IN_SAVEREGS): Use these to put the
code at the start of the function, even when inside a sequence.
(apply_args_value): New variable.
(init_expr, save_expr_status, restore_expr_status): Initialize,
save, and restore apply_args_value.
(expand_builtin): Implement new built-in functions.
(apply_args_mode, apply_result_mode): New variables.
(apply_args_size, apply_result_size, result_vector,
expand_builtin_apply_args, expand_builtin_apply,
expand_builtin_return): New functions.
(INCOMING_REGNO, OUTGOING_REGNO): Supply default definitions.
From-SVN: r3845
1993-03-23 12:55:43 +00:00
Richard Kenner
742920c7bd
(get_inner_reference): Simplify code by initializing OFFSET to integer_zero_node.
...
(get_inner_reference): Simplify code by initializing OFFSET to
integer_zero_node.
Do general index computation for ARRAY_REF and include lower bound of domain
in calculation.
(expand_expr, case ARRAY_REF): Include lower-bound in index computation.
From-SVN: r3808
1993-03-20 20:51:52 -05:00
Richard Stallman
665381933b
(expand_assignment): Pass to_rtx's mode to expand_expr when assigning a result_decl.
...
(expand_assignment): Pass to_rtx's mode to expand_expr
when assigning a result_decl.
(expand_expr): For ERROR_MARK, give back 0 in TMODE if possible.
From-SVN: r3784
1993-03-19 08:42:28 +00:00
Richard Stallman
3e3f565813
(expand_expr): Don't ensure ref to a volatile value if it is a function.
...
From-SVN: r3781
1993-03-18 21:34:51 +00:00
Richard Kenner
bbc8a07104
Correctly define PUSH_ARGS_REVERSED.
...
From-SVN: r3728
1993-03-13 18:13:22 -05:00
Richard Kenner
4969d05d19
Add prototypes for static functions.
...
(struct move_by_pieces): Move definition before function forward decls.
From-SVN: r3725
1993-03-12 22:06:14 -05:00
Richard Stallman
c841050eed
(emit_push_insn): Handle failure of gen_movstr...
...
From-SVN: r3721
1993-03-12 23:07:38 +00:00
Richard Stallman
86d38d25ba
(expand_assignment): Special handling for storing in RESULT_DECL.
...
From-SVN: r3663
1993-03-06 00:48:19 +00:00
Jim Wilson
46b68a3769
(expand_builtin, BUILT_IN_FRAME_ADDRESS case): Use new
...
macros SETUP_FRAME_ADDRESSES and RETURN_ADDR_IN_PREVIOUS_FRAME.
From-SVN: r3609
1993-03-02 13:10:49 -08:00
Richard Stallman
d3c64ee3f3
(convert_move): Truncate via word_mode only if to_mode fits in one word.
...
Truncate by referring in TO_MODE for any FROM, but force_reg if nec.
From-SVN: r3553
1993-02-27 19:04:24 +00:00
Richard Kenner
17938e5781
(expand_expr, case IN_EXPR): Fix numerous small bugs and make some
...
cleanups.
From-SVN: r3541
1993-02-26 15:11:24 -05:00
Richard Stallman
d6af3b06f1
(emit_library_call_value): Fix bug in prev change.
...
From-SVN: r3528
1993-02-25 06:20:24 +00:00
Richard Stallman
e010155c90
(emit_library_call_value): Really pass mem value address
...
to the library function.
From-SVN: r3511
1993-02-22 01:23:03 +00:00
Richard Stallman
261c4230db
(emit_move_insn_1): New subroutine cut from emit_move_insn.
...
(emit_move_insn): Use that.
From-SVN: r3505
1993-02-21 06:51:34 +00:00
Richard Stallman
9937da1a0c
(expand_builtin): Move memory_address calls
...
out of arglist of emit_block_move.
From-SVN: r3460
1993-02-11 08:56:16 +00:00
Richard Kenner
cd04883188
(emit_push_insn): If REG is zero, don't set regs here.
...
From-SVN: r3439
1993-02-08 05:49:27 -05:00
Richard Stallman
4e7c9a2248
(emit_library_call, emit_library_call_value):
...
Handle STACK_BOUNDARY when using push insns.
From-SVN: r3420
1993-02-03 23:26:51 +00:00
Richard Stallman
42b85a5532
(expand_builtin): Report overflow if __builtin_args_info arg exceeds one word.
...
(expand_builtin): Report overflow if __builtin_args_info
arg exceeds one word.
Fix punctuation of error messages.
From-SVN: r3400
1993-02-02 04:26:15 +00:00
Richard Kenner
bf743ac5ed
(compare_from_rtx): Only swap operand if first is a constant and
...
second is not.
From-SVN: r3370
1993-01-27 19:22:17 -05:00
Richard Kenner
8207ec0452
(emit_library_call): Correct mis-applied patch.
...
From-SVN: r3300
1993-01-22 07:56:45 -05:00
Jim Wilson
428e0ca8c8
(emit_library_call): Handle OUTGOING_REG_PARM_STACK_SPACE.
...
Use NULL_TREE instead of (tree) 0.
From-SVN: r3268
1993-01-18 10:55:02 -08:00
Jim Wilson
89742723e5
(emit_move_insn, expand_expr): Fix typos in comments.
...
From-SVN: r3267
1993-01-18 10:52:38 -08:00
Jim Wilson
b4c65118c4
(do_tablejump): Pass 1 for unsigned flag to emit_cmp_insn.
...
From-SVN: r3233
1993-01-14 11:16:40 -08:00
Richard Stallman
ca300798ae
(expand_increment): Handle all preincrements by building
...
arithmetic and calling expand_assignment.
From-SVN: r3222
1993-01-13 12:07:28 +00:00
Brendan Kehoe
f76a70d580
* expr.c (group_insns): Make void, since it never returns an rtx.
...
From-SVN: r3211
1993-01-12 18:30:32 -05:00
Richard Kenner
a7c5971afb
(compare_from_rtx): Allow simplify_relational_operation to fail.
...
From-SVN: r3204
1993-01-12 17:47:54 -05:00
Paul Eggert
8008b22801
# Fix misspellings in comments.
...
From-SVN: r3181
1993-01-10 20:12:31 +00:00
Richard Stallman
b424402e93
(convert_move): Added code to support new modes QFmode and HFmode.
...
From-SVN: r3133
1993-01-07 00:05:59 +00:00
Jim Wilson
8eef5f77c5
(emit_library_call): Pass NULL_TREE to INIT_CUMULATIVE_ARGS.
...
From-SVN: r3106
1993-01-05 18:58:54 -08:00
Richard Kenner
874726a826
(expand_expr, case TRUTH_XOR_EXPR): New case.
...
From-SVN: r2992
1992-12-30 06:01:05 -05:00
Richard Stallman
12342f9055
(expand_expr): In NOP_EXPR case, truncate and reextend integer constants.
...
From-SVN: r2987
1992-12-30 07:08:14 +00:00
Richard Kenner
f94cc92f8c
(get_inner_reference): Don't look at flag_volatile.
...
(expand_expr, case INDIRECT_REF, OFFSET_REF): Likewise.
From-SVN: r2973
1992-12-28 06:09:13 -05:00
Richard Stallman
3b94d087e8
(expand_expr, constructor case): If we made a stack slot,
...
set MEM_IN_STRUCT_P if the type warrants it.
From-SVN: r2921
1992-12-27 08:08:17 +00:00
Richard Stallman
e254999710
(init_expr_once): Try indexing mem by fp as well as sp.
...
From-SVN: r2760
1992-11-20 19:02:25 +00:00
Richard Stallman
7a1ab50acd
(emit_move_insn): Do return a value, in complex case.
...
From-SVN: r2712
1992-11-07 20:30:00 +00:00
Richard Stallman
87e38d8422
(gen_push_operand): No longer static.
...
From-SVN: r2603
1992-10-25 22:22:00 +00:00
Richard Kenner
d39985fabf
(do_store_flag): Ensure we don't get confused when emit_store_flag
...
fails and an operand has a QUEUED.
From-SVN: r2540
1992-10-21 07:33:55 -04:00
Richard Kenner
c45a13a68d
(force_operand): Clarify comment to say what it can return.
...
From-SVN: r2526
1992-10-20 06:49:30 -04:00
Richard Stallman
86a2c12a2b
(store_field): If trying to sign-extend a constant, use value_mode as
...
the mode.
From-SVN: r2525
1992-10-20 10:47:23 +00:00
Richard Stallman
9074de27ac
(store_field): Typo in last change.
...
From-SVN: r2510
1992-10-18 19:13:01 +00:00
Richard Stallman
5c4d7cfb47
(store_field): If signed bitfield and want value, sign extend.
...
From-SVN: r2504
1992-10-18 05:09:47 +00:00
Richard Stallman
037080855f
(get_inner_reference): If flag_volatile, treat every INDIRECT_REF as volatile.
...
From-SVN: r2499
1992-10-17 07:23:29 +00:00
Richard Stallman
2d7050fdca
(expand_expr): Use gen_realpart, gen_imagpart.
...
(expand_expr): For ABS_EXPR, give expand_unop the operand's mode.
(expand_expr): For REALPART_EXPR, IMAGPART_EXPR, just return that part.
From-SVN: r2322
1992-10-05 06:30:54 +00:00
Richard Kenner
1499e0a89f
(convert_move, convert_to_mode): Strip off a SUBREG made for variables with promoted modes.
...
(convert_move, convert_to_mode): Strip off a SUBREG made for variables with
promoted modes.
(store_expr): Store into variables with promoted modes by doing the
appropriate extension operation.
(expand_expr, case VAR_DECL): Generate SUBREGs for promoted objects.
(expand_expr, case SAVE_EXPR): Likewise for SAVE_EXPRs.
(expand_increment): Handle increment of promoted objects.
From-SVN: r2174
1992-09-19 15:45:55 -04:00
Richard Stallman
7308a047ab
(expand_expr): Support IN_EXPR.
...
(init_expr_once): Don't try HARD_REGNO_MODE_OK on VOIDmode or BLKmode.
(emit_move_insn): When moving word by word,
mark the whole thing as a libcall block.
(group_insns): New function.
(expand_expr): Implement COMPLEX_EXPR, REALPART_EXPR, IMAGPART_EXPR, CONJ_EXPR.
From-SVN: r2082
1992-09-09 06:38:59 +00:00
Richard Kenner
803090c427
(emit_library_call): Pass correct number of args to convert_to_mode.
...
(emit_block_move): Eliminate unnecessary test against HOST_BITS_PER_WIDE_INT.
From-SVN: r1994
1992-08-29 22:38:56 -04:00
James Van Artsdalen
1bbddf1116
(expand_builtin): Add sin and cos as built-in functions.c
...
From-SVN: r1983
1992-08-28 01:49:35 +00:00
Richard Stallman
1ba1e2a808
(emit_block_move): When trying movstrMM, cvt size to mode MM.
...
From-SVN: r1975
1992-08-27 22:54:40 +00:00
Jim Wilson
d562e42ef4
Partially undo Mar 7 change.
...
Partially undo Mar 7 change. Only call
emit_library_call with no_queue == 1 for const functions.
From-SVN: r1961
1992-08-25 23:30:34 -07:00
Richard Stallman
2df53c0b9b
(expand_expr): For BIND_EXPR, call insert_block on the block.
...
From-SVN: r1960
1992-08-26 06:05:46 +00:00
Richard Kenner
e6fe56a424
(init_expr_once): Set direct_load and direct_store if SOME hard register can be loaded or stored...
...
(init_expr_once): Set direct_load and direct_store if SOME hard
register can be loaded or stored; not just if the first one we pick
can be.
From-SVN: r1910
1992-08-20 08:36:23 -04:00
Mike Stump
5c06281655
expr.c (expand_expr): The first expansion of a TARGET_EXPR is marked by DECL_RTL (slot) being filled...
...
* expr.c (expand_expr): The first expansion of a TARGET_EXPR
is marked by DECL_RTL (slot) being filled in AND TREE_OPERAND
(exp, 1) being wiped-out with a NULL_TREE, not just the
DECL_RTL (slot) being filled in.
From-SVN: r1893
1992-08-19 06:17:27 +00:00
Mike Stump
ac993f4f60
expr.c (expand_expr): When expanding TARGET_EXPRs...
...
* expr.c (expand_expr): When expanding TARGET_EXPRs, make sure
that they are only expanded once, after the first expansion,
the rtl can be used without further expansions.
From-SVN: r1890
1992-08-19 01:33:35 +00:00
Richard Kenner
0bba3f6fb7
(expand_expr, case COMPONENT_REF): Don't actually do extraction from
...
memory if we want address.
(emit_block_move): Fix problems in last change.
From-SVN: r1873
1992-08-17 07:37:25 -04:00
Richard Kenner
cd1b4b4474
(convert_move): Copy SUBREG to REG in one more case.
...
(do_jump*): Always do comparison in object's signedness now that
combine can remove extraneous sign extends.
From-SVN: r1858
1992-08-15 06:36:00 -04:00
Richard Kenner
266007a7d6
(movstr_optab): New variable.
...
(init_expr_once): Initialize it.
(emit_block_move): Rework code that generates movstrxx insns to check
predicates and use an optab.
From-SVN: r1827
1992-08-14 07:40:16 -04:00
Richard Kenner
cda0ec81ab
(expand_builtin, case BUILT_INT_CONSTANT_P): Add missing call to
...
TREE_CODE.
From-SVN: r1745
1992-08-02 21:32:38 -04:00
Richard Kenner
3dc4195c6a
(convert_move): Put FROM into a register if it is a SUBREG.
...
From-SVN: r1732
1992-07-31 08:15:14 -04:00
Richard Stallman
26fcb35ae2
(expand_expr, NOP_EXPR case): If EXPAND_INITIALIZER,
...
generate ZERO_EXTEND or SIGN_EXTEND; don't emit insns.
(expand_expr): Set LABEL_REF_NONLOCAL_P for nonlocal labels.
From-SVN: r1636
1992-07-20 02:45:03 +00:00
Richard Stallman
5d901c3182
(convert_move): Don't call protect_from_queue.
...
(emit_block_move): Protect SIZE.
From-SVN: r1607
1992-07-17 04:24:58 +00:00
Richard Stallman
60bac6ea52
(expand_builtin): For fsqrt, always use the special insn, then test for nan.
...
In case of nan, set errno directly or call the library function.
From-SVN: r1586
1992-07-14 03:38:36 +00:00
Richard Stallman
81feeecbd9
entered into RCS
...
From-SVN: r1567
1992-07-12 02:49:37 +00:00
Charles Hannum
d964285ca2
*** empty log message ***
...
From-SVN: r1533
1992-07-08 23:16:28 +00:00
Richard Stallman
a4320483fb
*** empty log message ***
...
From-SVN: r1498
1992-07-07 18:03:56 +00:00
Richard Kenner
906c4e36c6
*** empty log message ***
...
From-SVN: r1473
1992-07-06 16:04:13 -04:00
Richard Kenner
4fa52007bf
*** empty log message ***
...
From-SVN: r1320
1992-06-28 07:20:11 -04:00
Richard Stallman
f32fd77815
*** empty log message ***
...
From-SVN: r1298
1992-06-26 12:46:40 +00:00
Richard Kenner
08af8e094f
*** empty log message ***
...
From-SVN: r1279
1992-06-24 19:14:43 -04:00
Richard Kenner
5a2724d73a
*** empty log message ***
...
From-SVN: r1243
1992-06-23 06:19:36 -04:00
Jim Wilson
b092b4717c
*** empty log message ***
...
From-SVN: r1237
1992-06-22 17:28:39 -07:00
Richard Kenner
77fa0940a0
*** empty log message ***
...
From-SVN: r1223
1992-06-20 06:51:46 -04:00
Tom Wood
c1f7c22310
*** empty log message ***
...
From-SVN: r1206
1992-06-18 14:34:15 +00:00
Richard Stallman
db0e6d01ad
*** empty log message ***
...
From-SVN: r1147
1992-06-03 19:42:57 +00:00