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