Kaveh R. Ghazi
670ee92097
Major cutover to using system.h:
...
* Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o,
c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o,
caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o,
dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o,
expr.o, final.o, flow.o, function.o, getpwd.o, global.o,
integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o,
prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o,
reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o,
rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o,
tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend
on system.h.
* alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c,
c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c,
caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c,
dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c,
expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c,
integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c,
prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c,
reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c,
rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c,
stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c,
xcoffout.c: Include system.h. Organize include ordering so
that stdarg/varargs comes before other system headers. Remove
spurious casts of functions assured of a prototype in system.h.
From-SVN: r18726
1998-03-20 14:58:42 +00:00
Richard Kenner
7c00d1fe83
expr.c (expand_expr, [...]): If have conditional move, don't use ORIGINAL_TARGET unless REG.
...
Wed Mar 18 13:42:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (expand_expr, case COND_EXPR): If have conditional move,
don't use ORIGINAL_TARGET unless REG.
From-SVN: r18671
1998-03-18 05:41:50 -08:00
Kaveh R. Ghazi
081f5e7e66
Fix more warnings...
...
* c-lang.c (finish_file): Wrap variable `void_list_node' with macro
test !ASM_OUTPUT_CONSTRUCTOR || !ASM_OUTPUT_DESTRUCTOR.
* calls.c (emit_call_1): Wrap variable `already_popped' with macro
test !ACCUMULATE_OUTGOING_ARGS.
* collect2.c (write_c_file_glob): Wrap function definition in
macro test !LD_INIT_SWITCH.
* combine.c (try_combine): Wrap variables `cc_use' and
`compare_mode' in macro test EXTRA_CC_MODES.
* cpplib.c (do_ident): Remove unused variable `len'.
(skip_if_group): Remove unused variables `at_beg_of_line' and
`after_ident'.
(cpp_get_token): Remove unused variable `dummy'.
* dbxout.c (scope_labelno): Move static variable definition inside
the one function scope where it is used.
(dbxout_function_end): Wrap prototype and definition in
macro test !NO_DBX_FUNCTION_END.
* dwarf2out.c (add_subscript_info): Wrap variable `dimension_number'
in macro test !MIPS_DEBUGGING_INFO.
* expr.c (expand_builtin_setjmp): Move declaration of variable `i'
into the scope where it is used. Wrap empty else-statement body
in braces.
* fix-header.c: Fix typo in comment.
(inf_skip_spaces): Cast results of INF_UNGET to (void).
(check_protection, main): Likewise.
* flow.c (find_basic_blocks_1): Remove dangling comment text.
* function.c (contains): Wrap prototype and definition in macro
test HAVE_prologue || HAVE_epilogue.
(fixup_var_refs_1): Remove unused variable `width'.
* gen-protos.c (main): Remove unused variable `optr'.
* haifa-sched.c (debug_control_flow): Remove unused variable `j'.
* libgcc2.c (__udiv_w_sdiv): Provide dummy return value of 0.
(__sjpopnthrow): Remove unused variable `jmpbuf'.
(__throw): Remove unused variable `val'.
* protoize.c: Check for a previously existing definition before
defining *_OK macros.
* scan-decls.c (scan_decls): Remove unused variable `old_written'.
From-SVN: r18654
1998-03-18 07:18:06 +00:00
Kaveh R. Ghazi
5172371191
Fix warious warnings:
...
* c-aux-info.c: Include string.h/strings.h.
* pa.c: Include stdlib.h.
(pa_combine_instructions): Prototype the function.
(pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise.
(reloc_needed): Add default case for enumeration switch.
(remove_useless_addtr_insns): Remove unused variable `all'.
(hppa_expand_prologue): Add explicit braces to avoid
ambiguous `else'.
(output_function_epilogue): Remove unused variable `i'.
(output_millicode_call): Remove unused variable `link'.
(shadd_constant_p, forward_branch_p): Make the function static.
(following_call): Explicitly declare to return int.
(pa_reorg): Declare as void.
(pa_combine_instructions): Declare as static void. Add
parentheses around && within ||.
* pa.h: Add prototypes for pa_reorg, symbolic_operand,
following_call, function_label_operand, lhs_lshift_cint_operand
and zdepi_cint_p.
* pa.md: Add parentheses around && within ||.
* cppalloc.c: Include stdlib.h.
* cpperror.c (cpp_print_containing_files): Remove unused variable
`i'. Fix format specifier in fprintf.
* cse.c (cse_around_loop): Add explicit braces to avoid
ambiguous `else'.
(delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0.
* expr.c (expand_expr): Add parentheses around && within ||.
* final.c (app_enable): Replace fprintf with fputs where there are
no format specifiers and no trailing argument after the string.
Eg, when printing ASM_APP_ON/ASM_APP_OFF.
(app_disable): Likewise.
(final_end_function): Likewise.
(final_scan_insn): Likewise. Remove unused variable `set'.
(profile_function): Wrap empty if-statement body in {} brackets.
* function.c: Include stdlib.h.
(pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD.
(reposition_prologue_and_epilogue_notes): Add parentheses
around assignment used as truth value.
* integrate.c (expand_inline_function): Wrap variable
`cc0_insn' in macro HAVE_cc0.
* jump.c (jump_optimize): Wrap variable `q' in macro
HAVE_cc0. Remove unused variable `prev1'.
* libgcc2.c (__bb_exit_trace_func): Add parentheses around &&
within ||. Fix format specifier in fprintf.
(__bb_init_prg): Add parentheses around assignment used as
truth value.
* local-alloc.c: Include stdlib.h.
(requires_inout): Add parentheses around assignment used
as truth value.
* loop.c (analyze_loop_iterations): Wrap prototype and definition
in macro HAVE_decrement_and_branch_on_count.
(insert_bct, instrument_loop_bct): Likewise.
(move_movables): Add parentheses around assignment used as
truth value.
(consec_sets_invariant_p): Likewise.
(maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0.
* objc/objc-act.c: Include stdlib.h.
(lookup_method_in_protocol_list): Wrap empty else-statement body
in braces.
(lookup_protocol_in_reflist): Likewise.
(objc_add_static_instance): Remove unused variables `decl_expr'
and `decl_spec'.
(get_objc_string_decl): Remove unused variable `decl'.
(generate_static_references): Remove unused variables `idecl' and
`instance'.
(check_protocols): Wrap empty else-statement body in braces.
* protoize.c: Include stdlib.h.
(substr): Add parentheses around assignment used as truth value.
(abspath): Likewise.
(shortpath): Likewise.
* regmove.c (fixup_match_1): Add parentheses around assignment
used as truth value.
* reload.c (push_secondary_reload): Remove unused variable `i'.
(find_reloads): Add parentheses around assignment used as truth
value.
* reload1.c: Include stdlib.h.
* rtl.h: Correct typo in prototype of offsettable_memref_p.
* stmt.c (add_case_node): Add parentheses around assignment used
as truth value.
(case_tree2list): Likewise.
* tree.c (valid_machine_attribute): Wrap variable `decl_attr_list'
in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable
`type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE.
(merge_attributes): Add explicit braces to avoid ambiguous
`else'.
* unroll.c (copy_loop_body): Wrap variable `cc0_insn' in
macro HAVE_cc0.
* varasm.c: Include stdlib.h.
From-SVN: r18290
1998-02-28 07:06:53 +00:00
Robert Lipe
8bd6ecc280
expr.c (expand_assignment): Correct typo exposed by -Wall.
...
* expr.c (expand_assignment): Correct typo exposed by -Wall.
offset should have been a truth value, not an assignment.
From-SVN: r17876
1998-02-12 14:59:57 +00:00
Robert Lipe
381127e845
except.c (start_dynamic_cleanup): Remove unused variable 'dhc'.
...
* except.c (start_dynamic_cleanup): Remove unused variable 'dhc'.
(expand_eh_region_start_tree): Remove unused variable 'note'.
(exception_optimize): Remove unused variable 'regions'.
(expand_builtin_eh_stub): Remove unused variable 'temp'.
(copy_eh_entry): Deleted. Dead function.
* expr.c (move_block_to_reg) Bracket declaration of 'pat' and
'last' with same #if HAVE_load_multiple as use of it.
(move_block_from_reg): Likewise.
(emit_move_insn_1): Remove unused variable 'insns'.
(store_constructor): Bracket declaration of startb, endb with
#if TARGET_MEMFUNCTIONS. Remove unused variables 'set_word_size'
'target', and 'xtarget'.
(expand_builtin_setjmp): Remove unused variables 'op0',
'next_arg_reg', 'old_inhibit_defer_pop'.
(expand_builtin): Remove unused variable 'offset'.
(do_store_flag): Remove unused variables 'pattern', 'jump_pat'.
(emit_queue): Add parens for assignment used as conditional.
(expand_expr): case TARGET_EXPR: Remove unused variable 'temp'.
From-SVN: r17843
1998-02-10 17:35:13 -07:00
Jeffrey A Law
060fbabfb9
expr.c (clear_pending_stack_adjust): Handle case where a function calls alloca...
...
* expr.c (clear_pending_stack_adjust): Handle case where a function
calls alloca, but the user has specified -fomit-fframe-pointer.
From-SVN: r17770
1998-02-07 16:26:08 -07:00
Richard Henderson
6fd1c67b8b
expr.c (expand_builtin_setjmp): Accept two new arguments for the labels to branch to on first and subsequent...
...
* expr.c (expand_builtin_setjmp): Accept two new arguments for
the labels to branch to on first and subsequent executions. Don't
play with __dummy. Rename `setjmp' insn to `builtin_setjmp_setup',
and provide it with the jmp_buf. Use only one of
`builtin_setjmp_receiver' or `nonlocal_goto_receiver',
and provide the former with the target label.
(expand_builtin) [BUILTIN_SETJMP]: Generate a label for use by setjmp.
(expand_builtin) [BUILTIN_LONGJMP]: Split out to ...
(expand_builtin_longjmp): ... here. Recognize a `builtin_longjmp'
insn to replace all of the normal nonlocal_goto code. Don't play
with __dummy. Correct arguments to nonlocal_goto.
* expr.h (expand_builtin_setjmp): Update prototype.
* except.c (start_dynamic_handler): When using builtin_setjmp,
generate more accurate flow information.
* alpha.md (nonlocal_goto_receiver_osf): Delete.
(nonlocal_goto_receiver_vms): Rename to nonlocal_goto_receiver.
(builtin_longjmp, builtin_setjmp_receiver): New.
* sparc.md (update_return): Disambiguate unspec number.
(nonlocal_goto): Rearrange arguments to match caller in except.c.
(builtin_setjmp_setup): Rename from setjmp. Match and ignore the
jmp_buf operand.
* mips.md (nonlocal_goto_receiver, builtin_setjmp_receiver): Remove.
(builtin_setjmp_setup*, builtin_longjmp): New.
From-SVN: r17602
1998-02-02 11:28:57 -08:00
Hans-Peter Nilsson
db771a3c53
* expr.c (emit_push_insn): Add code to use movstrti if present.
...
From-SVN: r17589
1998-02-01 17:23:13 -07:00
Hans-Peter Nilsson
7a6df7f924
expr.c (emit_push_insn): Use same max-move-amount for movstrhi and movstrqi as in emit_block_move ().
...
* expr.c (emit_push_insn): Use same max-move-amount for movstrhi
and movstrqi as in emit_block_move ().
From-SVN: r17588
1998-02-01 17:21:46 -07:00
J"orn Rennecke
f8dac6eb3f
expr.c (get_inner_reference): Use sbitsizetype for type sizes.
...
* expr.c (get_inner_reference): Use sbitsizetype for type sizes.
* fold-const.c (size_int): Replace with
(size_int_wide).
(make_bit_field_ref): Use bitsize_int for bit position.
* stor-layout.c (sizetype): Delete.
(sizetype_tab, sbitsizetype, ubitsizetype): Declare.
(layout_record, layout_union, layout_type):
Use bitsize_int for bit size.
(set_sizetype): New function.
(make_signed_type, make_unsigned_type): Use it.
* c-decl.c (init_decl_processing): Likewise.
* tree.h (size_int): Don't delcare, #define.
(size_int_wide, sizetype_tab, sbitsize, ubitsize): Declare.
(set_sizetype): Declare.
(bitsize_int, size_int_2, BITS_PER_UNIT_LOG, sizetype, bitsizetype):
Define.
* c-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes):
Convert result to sizetype.
(really_start_incremental_init, push_init_level):
Set type of constructor_bit_index to sbitsizetype.
(push_init_level): Use unsigned arithmetic to determine padding.
(output_init_element): Likewise.
From-SVN: r17577
1998-02-01 04:47:59 -07:00
Jim Wilson
03566575a9
Remove rest of bytecode stuff, except for the VMS *.com files.
...
* Makefile.in: Remove remaining bytecode stuff.
* emit-rtl.c, expr.c: Likewise.
From-SVN: r17459
1998-01-23 07:43:01 -08:00
Jeffrey A Law
27766f0efa
Remove more bytecode stuff.
...
From-SVN: r17436
1998-01-20 10:02:10 -07:00
Jeffrey A Law
b93a436e6b
Makefile.in: Remove all bytecode support.
...
* Makefile.in: Remove all bytecode support.
(OBJS): Make sure last entry is a real object file, not EXTRA_OBJS.
* emit-rtl.c: Remove all bytecode support.
* expr.c, expr.h function.c, integrate.c: Likewise.
* output.h, regclass.c, rtl.h, stmt.c, toplev.c: Likewise.
* tree.h, varasm.c: Likewise.
* bi-*, bc-*: Delete bytecode related files.
Bytecode suppors disappears :-)
From-SVN: r17432
1998-01-20 01:55:07 -07:00
Richard Henderson
38a448ca5d
alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO...
...
* alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO;
change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...).
* caller-save.c, calls.c, combine.c, cse.c: Likewise.
* dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise.
* final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise.
* halfpic.c, integrate.c, jump.c, local-alloc.c, loop.c: Likewise.
* profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise.
* reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise.
* unroll.c, varasm.c: Likewise.
* config/alpha/alpha.c, config/alpha/alpha.md: Likewise.
From-SVN: r17357
1998-01-14 15:10:50 -08:00
Jeff Law
c85f7c16ad
Bring in final gcc-2.8.0 changes.
...
From-SVN: r17355
1998-01-14 13:57:58 -07:00
Richard Henderson
6c174fc0e6
c-decl.c (init_decl_processing): Provide proper fallback symbol for __builtin_memset.
...
* c-decl.c (init_decl_processing): Provide proper fallback symbol
for __builtin_memset.
* expr.c (expand_builtin) [MEMSET]: Arg 3 type code is INTEGER_TYPE
not INTEGER_CST. Assert arg 3 is a constant.
* alpha.c (mode_width_operand): Accept 64-bit modes.
(mode_mask_operand): Likewise.
(print_operand): Likewise for 'M' and 'U' codes.
(alpha_expand_unaligned_load): New function.
(alpha_expand_unaligned_store): Likewise.
(alpha_expand_unaligned_load_words): Likewise.
(alpha_expand_unaligned_store_words): Likewise.
(alpha_expand_block_move): Likewise.
(alpha_expand_block_clear): Likewise.
* alpha.h (MOVE_RATIO): New define.
* alpha.md (extxl, ext*h, ins*l, mskxl): Name them.
(insql, insxh, mskxh, extv, extzv, insv, movstrqi, clrstrqi): New.
* alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Set to 3.
(CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Disable.
From-SVN: r17278
1998-01-01 20:48:04 -08:00
Jeff Law
2d48c13dc2
expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF...
...
d
* expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the
offset's mode is not ptr_mode, convert it.
From-SVN: r17260
1997-12-29 06:15:21 -07:00
Ian Lance Taylor
18543a2208
expr.c (do_tablejump): Let CASE_VECTOR_PC_RELATIVE be an expression.
...
* expr.c (do_tablejump): Let CASE_VECTOR_PC_RELATIVE be an
expression.
* stmt.c (expand_end_case): Likewise.
* alpha.h (CASE_VECTOR_PC_RELATIVE): Update.
* fx80.h, gmicro.h, m68k.h, m88k.h, ns32k.h: Likewise.
* rs6000.h, sh.h, tahoe.h, v850.h vax.h z8k.h: Likewise.
From-SVN: r17155
1997-12-19 09:43:29 -07:00
Jeff Law
6d8ccdbbb2
Bring over changes from latest gcc-2.8 pre-release.
...
Mirror sched.c change into haifa-sched.c
From-SVN: r17097
1997-12-15 00:05:04 -07:00
Per Bothner
14e83f2ef5
* expr.c (expand_builtin): Support BUILT_IN_FMOD - just call fmod.
...
From-SVN: r17090
1997-12-13 11:40:06 -08:00
Jeff Law
956d69504d
Merge from gcc-2.8
...
From-SVN: r16987
1997-12-06 17:31:01 -07:00
Jeff Law
f45ebe4754
O Bring in changes from release branch (egcs_ss_971127).
...
From-SVN: r16866
1997-12-01 10:53:12 -07:00
Richard Henderson
f35bcbc5d0
expr.c (expand_builtin_setjmp): Set current_function_has_nonlocal_label.
...
* expr.c (expand_builtin_setjmp): Set
current_function_has_nonlocal_label.
* stupid.c (stupid_life_analysis): If has_nonlocal_label, kill
call-saved registers across calls.
* alpha.md (exception_receiver): Remove.
(nonlocal_goto_receiver_osf): New
(nonlocal_goto_receiver_vms): Renamed from nonlocal_goto_receiver.
(nonlocal_goto_receiver): New, select _osf or _vms.
From-SVN: r16492
1997-11-14 07:51:00 -07:00
Paul Eggert
41c9120baf
patch from paul eggert to fix -0.0/0.0 confusion that breaks glibc
...
* real.h (REAL_VALUES_IDENTICAL): New macro.
* expr.c (is_zeros_p): Don't consider -0.0 to be all zeros.
* fold-const.c (operand_equal_p): Don't consider -0.0 to be
identical to 0.0.
* tree.c (simple_cst_equal): Don't consider -0.0 to have the
same tree structure as 0.0.
* varasm.c (immed_real_const_1): Use new REAL_VALUES_IDENTICAL
macro instead of doing it by hand.
From-SVN: r16472
1997-11-13 16:07:27 -08:00
Jeff Law
e9a25f70a0
Update mainline egcs to gcc2 snapshot 971021.
...
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Jeffrey A Law
6cad9e3280
expr.c (expand_builtin_setjmp): Don't emit a SETJMP note or set current_function_calls_setjmp anymore.
...
* expr.c (expand_builtin_setjmp): Don't emit a SETJMP note
or set current_function_calls_setjmp anymore.
From-SVN: r16267
1997-11-01 22:15:13 -07:00
J"orn Rennecke
59fe8c2c20
expr.c (expand_increment): When enqueing a postincrement for a MEM...
...
* expr.c (expand_increment): When enqueing a postincrement for a MEM,
use copy_to_reg if address is not a general_operand.
From-SVN: r16247
1997-10-31 00:40:46 +00:00
Jim Wilson
7581a30fe2
expr.c (expand_expr, [...]): Optimize a reference to an element in a constant string.
...
* expr.c (expand_expr, case INDIRECT_REF): Optimize a reference
to an element in a constant string.
From-SVN: r16195
1997-10-26 13:33:27 -07:00
Richard Henderson
ca0f22208f
expr.c (get_inner_reference): Remove the array bias after converting the index to Pmode.
...
* expr.c (get_inner_reference): Remove the array bias after
converting the index to Pmode.
From-SVN: r16178
1997-10-26 09:13:10 -07:00
Doug Evans
6bd35f8671
* expr.c (use_group_regs): Don't call use_reg for MEMs.
...
From-SVN: r16046
1997-10-18 19:48:25 +00:00
Jason Merrill
2f3ca9e7f4
c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
...
* c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
* tree.h (built_in_function): Likewise.
* expr.c (expand_builtin): Likewise.
* except.h: Likewise.
* dwarf2out.c (expand_builtin_dwarf_reg_size): New fn.
* libgcc2.c (copy_reg): New fn.
(__throw): Use it.
From-SVN: r15750
1997-09-27 14:16:15 -04:00
David S. Miller
9524f769a7
combine.c (try_combine): Use NULL_RTX instead of '0' where appropriate in calls to gen_rtx().
...
* combine.c (try_combine): Use NULL_RTX instead of '0' where
appropriate in calls to gen_rtx().
* cse.c (cse_main): Likewise.
* emit-rtl.c (gen_label_rtx): Likewise.
* expr.c (init_expr_once): Likewise.
* haifa-sched.c (flush_pending_lists, sched_analyze_insn,
sched_analyze, init_rgn_data_dependences,
compute_block_backward_dependences): Likewise.
* sched.c (schedule_insns): Likewise.
* varasm.c (immed_double_const): Likewise.
From-SVN: r15630
1997-09-22 11:41:48 -06:00
Jim Wilson
21002281e5
Fix H.J. Lu's alpha-linux bug with TImode constructors.
...
* expr.c (expand_expr): Remove previous incorrect change.
If target and slot has no DECL_RTL, then call mark_addressable
again for the slot after we give it RTL.
From-SVN: r15496
1997-09-16 13:59:22 -07:00
Jason Merrill
610ce97e65
expr.c (expand_expr, [...]): Call mark_addressable again for the slot after we give it RTL.
...
* expr.c (expand_expr, case TARGET_EXPR): Call mark_addressable
again for the slot after we give it RTL.
From-SVN: r15482
1997-09-16 03:53:56 -04:00
Jason Merrill
ca55abaee7
dwarf2 EH support
...
From-SVN: r15464
1997-09-15 22:07:50 -04:00
Jeff Law
22cbb540d0
Remove last change. Not needed for egcs yet.
...
From-SVN: r15397
1997-09-10 21:01:15 -06:00
Jeffrey A Law
0680d17043
* expr.c (emit_block_move): Always return a value.
...
From-SVN: r15252
1997-09-10 10:52:45 -06:00
Jeff Law
66ed068304
Add port done awhile ago for the ARC cpu.
...
* arc/arc.h: New file.
* arc/arc.c: New file.
* arc/arc.md: New file.
* arc/initfini.c: New file.
* arc/lib1funcs.asm: New file.
* arc/t-arc: New file.
* arc/xm-arc.h: New file.
* ginclude/va-arc.h: New file.
* ginclude/stdarg.h: Include va-arc.h ifdef __arc__.
* ginclude/varargs.h: Likewise.
* Makefile.in (USER_H): Add va-arc.h.
* configure.in (arc-*-elf*): Recognize.
* longlong.h: Add ARC support.
Mostly so I can test changes in snapshot scripts.
* expr.c (clear_storage): Use CONST0_RTX instead of const0_rtx.
when clearing non-BLKmode data.
Fixes sparc problem.
From-SVN: r15198
1997-09-09 16:21:04 -06:00
Jeffrey A Law
704af6a15f
expr.c (convert_move): Handle truncation from TQFmode to QFmode.
...
* expr.c (convert_move): Handle truncation from TQFmode to QFmode.
From Christian Iseli.
From-SVN: r15054
1997-09-02 23:33:06 -06:00
Andreas Schwab
eae4b97034
expr.h (insn_gen_function): Reenable prototype.
...
* expr.h (insn_gen_function): Reenable prototype.
* expr.c (move_by_pieces_1, clear_by_pieces_1): Fix prototype of
first parameter.
From-SVN: r14994
1997-08-29 09:02:03 -06:00
Richard Kenner
921b3427bc
(expand_builtin, case BUILT_IN_AGGREGATE_INCOMING_ADDRESS): New case.
...
(expand_assignment, expand_expr, emit_push_insn, store_expr):
Insert calls to chkr_check_addr, chkr_set_right, and chkr_copy_bitmap
when -fcheck-memory-usage.
(get_push_address, get_memory_usage_from_modifier): New functions.
From-SVN: r14611
1997-08-02 13:17:17 -04:00
Richard Kenner
2cde2255e0
(expand_expr, case PLACEHOLDER_EXPR): Find innermost matching and
...
don't check contains_placeholder_p.
From-SVN: r14605
1997-08-02 08:01:10 -04:00
Richard Kenner
d0977240cb
(expand_expr, case LABEL_DECL): Treat inline_function_decl like current_function_decl.
...
(expand_expr, case LABEL_DECL): Treat inline_function_decl like
current_function_decl.
(expand_expr, case SAVE_EXPR): Handle top-level SVAE_EXPR by
moving into current function; abort if in incorrect context.
From-SVN: r14540
1997-07-27 19:35:23 -04:00
Richard Kenner
08293addce
(get_inner_unaligned_p): Deleted.
...
(expand_assignment): Remove special-case of constant array.
(expand_expr, case ARRAY_REF): Likewise, and clean up remaining code.
From-SVN: r14536
1997-07-27 12:18:46 -04:00
Richard Kenner
b60334e840
(expand_expr, case MODIFY_EXPR): Don't preexpand calls if LHS is an
...
indirect via a constant pointer.
From-SVN: r14527
1997-07-25 08:36:42 -04:00
Richard Kenner
dcb7c3cea6
(expand_expr...
...
(expand_expr, case PLACEHOLDER_EXPR): Pick outermost object in
placeholder_list of right type without a PLACEHOLDER_EXPR.
From-SVN: r14498
1997-07-20 06:11:25 -04:00
Jim Wilson
d7d775a019
(emit_group_load): Add case using gen_lowpart.
...
From-SVN: r14224
1997-06-10 14:39:22 -07:00
Richard Kenner
47e538e888
(expand_builtin, case BUILT_IN_FRAME_ADDRESS): Use correct function
...
name in error message.
From-SVN: r14191
1997-06-09 17:24:32 -04:00
Mike Stump
6b023d0700
expr.c (expand_builtin_setjmp): Remove setting of current_function_has_nonlocal_goto, as this isn't a goto.
...
* expr.c (expand_builtin_setjmp): Remove setting of
current_function_has_nonlocal_goto, as this isn't a goto.
From-SVN: r14066
1997-05-13 21:08:28 +00:00
Mike Stump
6e6a07d299
except.c (start_dynamic_handler): Fix so that we can use __builtin_setjmp...
...
* except.c (start_dynamic_handler): Fix so that we can use
__builtin_setjmp, and default to using __builtin_setjmp instead of
setjmp.
* expr.c (expand_builtin_setjmp): New routine, split out from
existing inline code from expand_builtin.
(expand_builtin): Split out code into expand_builtin_setjmp.
* expr.h (expand_builtin_setjmp): Add declaration.
* libgcc2.c (__sjthrow): Default to using __builtin_setjmp instead
of setjmp.
(__sjpopnthrow): Likewise.
* optabs.c (init_optabs): Likewise.
From-SVN: r14045
1997-05-07 22:50:11 +00:00
Mike Stump
db3cf6fb33
reformat a little to match GNU coding standards.
...
From-SVN: r14024
1997-05-06 23:05:54 +00:00
Mike Stump
e976b8b277
Add setjmp/longjmp exception handling.
...
From-SVN: r13968
1997-04-23 20:04:25 +00:00
Richard Kenner
effbcc6a9e
({move,clear}_by_pieces_1, expand_assignment): Ensure we have unshared rtx before changing flags.
...
({move,clear}_by_pieces_1, expand_assignment): Ensure we have unshared rtx
before changing flags.
(store_{constructor,field}): Likewise.
(expand_expr, case COMPONENT_REF): Likewise.
(store_expr): Check if TEMP and TARGET are same with rtx_equal_p.
From-SVN: r13936
1997-04-20 12:19:20 -04:00
Jason Merrill
83b853c9fc
x
...
From-SVN: r13909
1997-04-17 11:33:02 +00:00
Doug Evans
58a32c5c03
* expr.c (move_block_from_reg): Try using an integral mov operation first.
...
From-SVN: r13897
1997-04-13 23:29:50 +00:00
Doug Evans
e46a986ab9
expr.c (emit_push_insn): Delete emission of CLOBBER when doing partial push, no longer necessary.
...
* expr.c (emit_push_insn): Delete emission of CLOBBER
when doing partial push, no longer necessary.
From-SVN: r13797
1997-03-25 19:43:45 +00:00
Jim Wilson
aff4d29bf4
(emit_group_load): Call operand_subword instead of creating
...
an explicit SUBREG.
From-SVN: r13743
1997-03-18 14:25:56 -08:00
Richard Kenner
dc500fa115
(expand_expr, case PLACEHOLDER_EXPR): Refine which object is picked.
...
From-SVN: r13718
1997-03-16 19:54:36 -05:00
Richard Kenner
08bbd316d8
(expand_expr, case COMPONENT_REF): Fix error in last change: don't
...
suppress conversion if just EXPAND_SUM.
From-SVN: r13383
1997-01-05 07:26:37 -05:00
Richard Kenner
0d15e60cd5
(get_inner_reference): Fix type error.
...
(expand_expr, case COMPONENT_REF): Don't convert if modifier
is EXPAND_CONST_ADDRESS, EXPAND_SUM, or EXPAND_INITIALIZER.
From-SVN: r13375
1997-01-04 22:21:00 -05:00
Richard Kenner
86b5812c18
(expand_expr, case COMPONENT_REF): If taking value from a CONSTRUCTOR,
...
must mask/sign-extend if bitfield.
(expand_builtin, case BUILT_IN_LONGJMP): Pass type, not IDENTIFIER,
to send arg of RETURN_POPS_ARGS.
From-SVN: r13373
1997-01-04 22:12:25 -05:00
Richard Kenner
ac01eace31
(expand_expr, case COND_EXPR): Add additional cases to "singleton"
...
cases.
From-SVN: r13372
1997-01-04 22:03:27 -05:00
Richard Kenner
2a8e278c94
(move_by_pieces): Abort only if length positive at end.
...
From-SVN: r13242
1996-12-07 18:48:44 -05:00
Richard Kenner
9293498fb3
(get_inner_reference): Fix error in previous change.
...
From-SVN: r13200
1996-11-17 20:23:00 -05:00
Richard Kenner
839c47964e
(get_inner_reference): Add new arg PALIGNMENT and compute it.
...
(expand_assignment, do_jump): Pass new arg to get_inner_reference.
(expand_expr, case COMPONENT_REF): Likewise.
From-SVN: r13187
1996-11-16 06:18:33 -05:00
Jim Wilson
71bc03306f
(emit_group_store): For REG case, call gen_lowpart if
...
modes are different.
From-SVN: r13152
1996-11-12 15:46:05 -08:00
Richard Kenner
b61b64100a
(expand_assignment): Remove bogus resetting of alignment to inner alignment.
...
(expand_expr, case COMPONENT_REF): Likewise.
From-SVN: r13114
1996-11-08 17:40:11 -05:00
Jim Wilson
e9ac02a6f1
(expand_expr, case CONSTRUCTOR): Don't use a PARALLEL
...
target.
From-SVN: r13085
1996-10-31 10:30:25 -08:00
Ian Lance Taylor
96ff8a163e
Zero extend when generating a CONST_DOUBLE in convert_modes
...
From-SVN: r13041
1996-10-27 02:08:23 +00:00
Torbjorn Granlund
bb60ac6305
(do_store_flag): Don't check if target is 0 in code
...
emitting store flag as compare-branch.
From-SVN: r12993
1996-10-22 00:26:25 +00:00
Richard Kenner
ab6c58f120
(store_expr): Disable optimization of using convert if exp's type is a
...
subtype.
From-SVN: r12992
1996-10-21 19:11:08 -04:00
Doug Evans
0cb1d109f4
expr.c (do_jump): Conditionalize cleanups for the COND_EXPR case...
...
* expr.c (do_jump): Conditionalize cleanups for the COND_EXPR case,
similarly to the way TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR are
handled.
From-SVN: r12974
1996-10-17 15:33:52 +00:00
Jim Wilson
df0faff11b
(store_constructor): Delete unnecessary increment.
...
From-SVN: r12940
1996-10-09 13:42:42 -07:00
Richard Kenner
c2722ef63b
(expand_expr, case COMPONENT_REF): Don't try to directly load a complex.
...
From-SVN: r12867
1996-09-29 19:04:49 -04:00
Richard Kenner
862424838e
(store_expr): memset/bzero gets ptr_mode, not Pmode.
...
From-SVN: r12861
1996-09-29 18:42:12 -04:00
Michael Meissner
eaa9b4d930
Fix SI followed by 4 DFs under AIX
...
From-SVN: r12838
1996-09-24 22:14:57 +00:00
Richard Kenner
0842a17931
(expand_increment): If postincrement for MEM can't use add directly,
...
load address in reg and enqueue increment and store of reg.
From-SVN: r12785
1996-09-23 16:42:58 -04:00
Richard Kenner
01c8a7c858
(var_rtx): New function.
...
(expand_expr, case COND_EXPR): Also use target if same as singleton.
From-SVN: r12777
1996-09-23 14:40:48 -04:00
Richard Kenner
2b01c3263e
(convert_move): Replace explicit checks for FP extend ops with use of can_extend_p.
...
(convert_move): Replace explicit checks for FP extend ops with use of
can_extend_p.
Add missing tests for FP trunc operations.
From-SVN: r12771
1996-09-22 11:30:04 -04:00
Richard Kenner
ef19912d09
(store_field): If storing a record on big endian targets,
...
set up so we store the high-order bits.
(expand_expr, case COMPONENT_REF): Likewise for loads.
From-SVN: r12714
1996-09-14 20:42:46 -04:00
Mike Stump
75bb87ea21
* expr.c (expand_builtin_return_addr): Fix order of parameters.
...
From-SVN: r12644
1996-08-15 19:59:00 +00:00
Richard Kenner
32ccb0aca0
(expand_builtin, case BUILT_IN_SETJMP): Add test and call for
...
nonlocal_goto_receiver pattern.
From-SVN: r12621
1996-08-12 07:44:42 -04:00
Jason Merrill
a3a58acc27
(store_expr): Handle COND_EXPR cleanups like expand_expr.
...
From-SVN: r12620
1996-08-12 05:52:13 +00:00
Mike Stump
26657dcad0
expr.c (do_jump, [...]): Ensure the end of an exception region comes after its start.
...
* expr.c (do_jump, case TRUTH_ORIF_EXPR): Ensure the end of an
exception region comes after its start.
(do_jump, case TRUTH_ANDIF_EXPR): Likewise.
From-SVN: r12565
1996-07-25 23:14:00 +00:00
Mike Stump
3d1953912d
install EH code
...
From-SVN: r12548
1996-07-23 19:58:32 +00:00
Richard Kenner
8d8c9ba91b
(get_inner_reference): Delete using alternate mode for bitfield; we
...
don't make bitfields anymore if not needed.
From-SVN: r12398
1996-07-04 11:44:14 -04:00
Mike Stump
0f41302f47
formatting tweaks
...
From-SVN: r12390
1996-07-03 22:07:53 +00:00
Jeff Law
5718612fc1
expr.c (compare): If function pointers need canonicalization before comparisons, canonicalize them.
...
* expr.c (compare): If function pointers need canonicalization
before comparisons, canonicalize them.
(do_store_flag): Do not use an sCC insn for a function pointer
comparison if function pointers need canonicalization before
comparing.
From-SVN: r12381
1996-07-02 16:59:02 -06:00
Richard Kenner
d7f21d631f
(expand_builtin, case BUILTIN_MEMSET): Open code memset where val == 0.
...
From-SVN: r12363
1996-06-28 14:35:10 -04:00
Richard Kenner
85ab4aaaec
(expand_builtin, case BUILT_IN_{SET,LONG}JMP): Properly handle case
...
when ptr_mode != Pmode.
From-SVN: r12294
1996-06-18 06:53:52 -04:00
Per Bothner
8f6562d026
* expr.c (safe_from_p): Allow Chill-style variable-sized arrays.
...
From-SVN: r12213
1996-06-07 12:11:44 -07:00
Jim Wilson
fffa9c1d2e
(emit_group_load, emit_group_store): New functions.
...
(use_group_regs): New function.
(emit_push_insn): Handle PARALLEL parameter in REG.
(expand_assignment): Handle PARALLEL to_rtx.
(store_expr): Handle PARALLEL target.
From-SVN: r12189
1996-06-06 16:04:56 -07:00
Richard Kenner
0086427caf
(store_field): Fix typo in last change; update TARGET addr.
...
From-SVN: r12142
1996-06-03 08:06:54 -04:00
Mike Stump
a4a3f053b7
tree.def (OFFSET_REF): Remove.
...
* tree.def (OFFSET_REF): Remove.
* expr.c (expand_expr, case OFFSET_REF): Ditto.
* tree.c (substitute_in_expr): Remove OFFSET_REF code.
Remove some old cruft
From-SVN: r12127
1996-05-31 05:08:47 +00:00
Richard Kenner
0fedef289f
(expand_builtin, case BUILT_IN_{LONG,SET}JMP): Convert block address
...
from ptr_mode to Pmode.
From-SVN: r12120
1996-05-27 06:38:37 -04:00
Richard Kenner
06398f9dc9
(bc_runtime_type_code): Delete redundant declaration.
...
From-SVN: r12044
1996-05-19 12:23:40 -04:00
Mike Stump
4847c9386b
expr.c (expand_expr, [...]): Make TARGET_EXPRs redoable for UNSAVE_EXPR.
...
* expr.c (expand_expr, cond TARGET_EXPR): Make TARGET_EXPRs
redoable for UNSAVE_EXPR.
* stmt.c (expand_decl_cleanup): Wrap the cleanup in an UNSAVE_EXPR
to that we can redo it.
* tree.c (unsave_expr_now): Handle TARGET_EXPRs fully now.
* tree.def (TARGET_EXPR): Add a third field so that TARGET_EXPRs
are redoable.
From-SVN: r12018
1996-05-17 21:48:14 +00:00
Mike Stump
679163cf4d
expr.c (expand_expr, [...]): Move from the C++ frontend to the backend where it belongs.
...
* expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
frontend to the backend where it belongs.
* tree.c (unsave_expr): Ditto.
(unsave_expr_now): Ditto.
* tree.def (UNSAVE_EXPR): Ditto.
* tree.h (unsave_expr): Ditto.
(unsave_expr_now): Ditto.
From-SVN: r12015
1996-05-17 20:13:01 +00:00
Richard Kenner
a281e72d06
(store_field): Support BLKmode bitfield if aligned on byte boundary using emit_block_move.
...
(store_field): Support BLKmode bitfield if aligned on byte boundary using
emit_block_move.
(expand_expr, case COMPONENT_REF): Likewise.
From-SVN: r11971
1996-05-11 07:42:11 -04:00
Mike Stump
7b8b9722a4
expr.c (expand_increment): Add third parameter to know when to ignore the result value.
...
* expr.c (expand_increment): Add third parameter to know when to
ignore the result value.
(store_constructor): Ditto.
(expand_expr, case PREINCREMENT_EXPR): Ditto.
(expand_expr, case PREDECREMENT_EXPR): Ditto.
(expand_expr, case POSTINCREMENT_EXPR): Ditto.
(expand_expr, case POSTDECREMENT_EXPR): Ditto.
* tree.c (stabilize_reference): Always ignore the first operand of
COMPOUND_EXPRs.
From-SVN: r11939
1996-05-06 18:07:22 +00:00
Jim Wilson
405f0da64e
(expand_expr, case INDIRECT_REF): Delete obsolete code
...
to special case a SAVE_EXPR operand.
From-SVN: r11938
1996-05-06 10:13:55 -07:00
Richard Kenner
477efd500b
(expand_builtin, case BUILT_IN_SETJMP): CLOBBER the static chain after
...
label at setjmp point.
From-SVN: r11886
1996-04-25 14:05:09 -04:00
Per Bothner
8e958f701f
* expr.c (store_constructor): Fix test for missing array elements.
...
From-SVN: r11869
1996-04-23 13:01:58 -07:00
Jim Wilson
8b29500078
(do_store_flag): Rewrite last change to avoid compiler
...
warnings.
From-SVN: r11832
1996-04-16 17:31:44 -07:00
Richard Kenner
b089937ac0
(expand_builtin, case BUILT_IN_LONGJMP): Make a decl for __dummy, so
...
we can call make_function_rtl on it.
From-SVN: r11805
1996-04-16 08:37:28 -04:00
Richard Kenner
b35cd3c16c
(expand_assignment): Don't pre-evaluate RHS if a CALL_EXPR with a
...
variable-size return.
From-SVN: r11804
1996-04-16 06:21:39 -04:00
Jim Wilson
21b2a157ce
(do_store_flag): Before calling exact_log2, remove any
...
sign extension bits.
From-SVN: r11803
1996-04-15 16:06:00 -07:00
Richard Kenner
0dc09c0fe2
(bc_expand_increment): Change declaration to return void.
...
From-SVN: r11779
1996-04-15 07:52:17 -04:00
Richard Kenner
43198be7c4
(preexpand_calls, case CALL_EXPR): Rework to properly avoid expanding
...
functions returning variable size objects.
From-SVN: r11698
1996-04-11 08:24:56 -04:00
Jim Wilson
22745c7e7a
(emit_push_insn): Clobber register only if it is non-zero.
...
From-SVN: r11658
1996-04-03 14:30:07 -08:00
Richard Kenner
e8621b3c1c
(get_inner_reference): When finding mode to access bitfield that ends up properly aligned...
...
(get_inner_reference): When finding mode to access bitfield that ends
up properly aligned, use mode class of its type unless type's mode was
BLKmode.
From-SVN: r11651
1996-04-01 16:16:06 -05: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
Jeff Law
9c7be814e6
expr.c (emit_push_insn): When doing a partial push...
...
* expr.c (emit_push_insn): When doing a partial push, emit
a CLOBBER so that flow doesn't think the entire register
is live.
From-SVN: r11622
1996-03-26 08:45:03 -07:00
Richard Kenner
7565a035be
(expand_builtin, case BUILT_IN_SETJMP): Call "setjmp" pattern, if any.
...
Call dummy function pointed to by static chain pointer.
(expand_builtin, case BUILT_IN_LONJMP): Ignore second expression.
Set address of __dummy into static chain pointer.
Copy the label to return to into a pseudo earlier.
From-SVN: r11576
1996-03-20 08:13:06 -05:00
Jim Wilson
f2420d0b92
(expand_expr, case COMPONENT_REF): For unaligned object in
...
an aligned union, delete check for EXPAND_SUM.
From-SVN: r11519
1996-03-12 09:51:15 -08:00
Mike Stump
2a888d4cd0
expr.c (expand_expr, [...]): Delay putting the cleanup on the cleanup chain until after the subexpression...
...
* expr.c (expand_expr, case TARGET_EXPR): Delay putting the cleanup
on the cleanup chain until after the subexpression has been expanded.
Fixes eh44.C and eh45.C
From-SVN: r11504
1996-03-08 23:44:26 +00:00
Jim Wilson
23ccec44cc
(store_constructor_field): Add explanatory comment.
...
Call store_field if bitpos is nonzero and target is not a MEM.
From-SVN: r11503
1996-03-08 13:52:23 -08: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
3d8e9bc243
(bc_strdup): Delete.
...
(bc_load_externaddr_id): Use xstrdup instead of bc_xstrdup.
From-SVN: r11411
1996-03-04 08:39:11 -05:00
Richard Kenner
d80f96e9a8
(do_jump, case COMPOUND_EXPR): Call preserve_temp_slots.
...
From-SVN: r11401
1996-03-02 10:18:24 -05:00
Richard Kenner
0dddb42d90
(expand_builtin...
...
(expand_builtin, case BUILT_IN_SETJMP): Set CONST_CALL_P on
NOTE_INSN_SETJMP instead of emitting USE insns for call-saved regs.
From-SVN: r11340
1996-02-23 08:46:04 -05:00
Richard Kenner
a8a8cbb759
(expand_builtin, case BUILT_IN_SETJMP): Shows clobbers FP and all caller-save registers.
...
(expand_builtin, case BUILT_IN_SETJMP): Shows clobbers FP and all
caller-save registers.
Set current_function_has_nonlocal_goto.
From-SVN: r11276
1996-02-15 07:48:12 -05:00
Per Bothner
05c0b40505
expr.c (store_constructor): Fix flow control thinko (merge error).
...
* expr.c (store_constructor): Fix flow control thinko (merge error).
* expr.c (store_constructor): Pass correct value to recursive call.
From-SVN: r11272
1996-02-13 16:58:09 -08:00
Mike Stump
41531e5b36
expr.c (expand_expr, [...]): We must always store into the allocated slot for TAREGT_EXPRs.
...
* expr.c (expand_expr, case TARGET_EXPR): We must always store
into the allocated slot for TAREGT_EXPRs.
From-SVN: r11271
1996-02-13 23:46:51 +00:00
Richard Kenner
8ab0613ce7
(convert_move): Fix typo in extendqfh2 case.
...
From-SVN: r11267
1996-02-13 18:11:23 -05:00
Jim Wilson
126e5b0d25
(store_constructor_field): Only call change_address if
...
bitpos is nonzero.
From-SVN: r11258
1996-02-13 10:28:57 -08:00
Richard Kenner
6692a31fda
(expand_builtin, case BUILT_IN_NEXT_ARG): Strip off INDIRECT_REF when
...
checking second arg.
From-SVN: r11139
1996-01-31 08:42:23 -05:00
Richard Kenner
4ed6720543
Include hard-reg-set.h.
...
(arg_pointer_save_area): New declaration.
(expand_builtin, case BUILT_IN_{SET,LONG}JMP): New cases.
(expand_expr, case COMPONENT_REF): Pass EXPAND_INITIALIZER to
recursive call.
From-SVN: r11112
1996-01-27 07:57:21 -05:00
Per Bothner
e1a43f7338
Merged in a bunch of stuff related to store_constructor. See ChangeLog.
...
From-SVN: r11076
1996-01-19 17:41:05 -08:00
Mike Stump
9ba73d3880
expr.c (expand_expr, [...]): Make sure cleanups live on the function_obstack as they are used by the...
...
* expr.c (expand_expr, case COND_EXPR): Make sure cleanups live on
the function_obstack as they are used by the exception handling code.
(defer_cleanups_to): Ditto.
(TRUTH_ANDIF_EXPR): Ditto.
(TRUTH_ORIF_EXPR): Ditto.
Fixes eh43.C
From-SVN: r11033
1996-01-16 22:40:15 +00:00
Richard Kenner
43e046cbc1
(emit_move_insn_1): Don't emit clobber when moving by parts and source
...
equals destination.
From-SVN: r11018
1996-01-16 08:21:16 -05:00
Richard Kenner
3d27140a15
(expand_expr, case COMPONENT_REF): Don't make recursive call on object
...
with EXPAND_SUM.
From-SVN: r10989
1996-01-15 10:02:59 -05:00
Jeff Law
ff9b5bd87c
* expr.c (expand_assignment): Fix alignment parm in emit_block_move.
...
From-SVN: r10977
1996-01-14 18:34:36 -07:00
Richard Kenner
06089a8b23
(save_nocopied_parts, expand_expr): Call assign_temp with extra arg.
...
(expand_expr, case SAVE_EXPR): Set TEMP to (const_int 0) if MODE is VOIDmode.
(expand_expr): Don't use assign_temp for pseudos when might want to be TMODE.
From-SVN: r10924
1995-12-31 21:26:50 -05:00
Richard Kenner
b7c2e1e2e4
(clear_pending_stack_adjust): Don't do optimization if -O0.
...
From-SVN: r10914
1995-12-31 15:02:34 -05:00
Per Bothner
32de057178
* expr.c (save_noncopied_parts, expand_expr): Use new assign_temp function.
...
From-SVN: r10902
1995-12-29 11:16:33 -08:00
Richard Kenner
dc6d66b319
(expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN when copying address into memory.
...
(expand_expr, case VAR_DECL): Set REGNO_POINTER_ALIGN
when copying address into memory.
(expand_expr, case COMPONENT_REF, case ADDR_EXPR): Set alignment
of register when result or result's address.
(expand_expr, case CONVERT_EXPR): Don't handle -fforce-mem here.
From-SVN: r10869
1995-12-27 15:23:01 -05:00
Richard Kenner
9de0820010
(struct clear_by_pieces): New structure.
...
(clear_by_pieces{,_1}, {is,mostly}_zeros_p): New functions.
(clrstr_optab): New optab.
(clear_storage): Rework to try to use clear_by_pieces, then
new clrstr insn, then library call.
(store_constructor): Track if target is already cleared.
Clear target first if CONSTRUCTOR is mostly zeros.
Don't write zeros if target has been cleared.
Add new arg to clear_storage call.
(expand_expr, case CONSTRUCTOR): Don't put static constructor
in memory if mostly zero.
From-SVN: r10842
1995-12-24 06:37:15 -05:00
Richard Kenner
9151b3bf92
(store_constructor): Don't call change_address on REG.
...
(expand_expr, case CONSTRUCTOR): Likewise.
From-SVN: r10836
1995-12-22 17:55:49 -05:00
Jim Wilson
3b6f75e2d1
(emit_block_move): When call emit_libary_call for bcopy,
...
pass arguments using correct types and modes.
(emit_push_insn, expand_assignment): Likewise.
(clear_storage, store_expr): Likewise for memset and bzero.
(store_constructor): Likewise for memset.
From-SVN: r10808
1995-12-18 18:01:45 -08:00
Richard Kenner
fec535227f
(store_constructor): Fix error in last change: just copy MEM, but be sure to share address.
...
(store_constructor): Fix error in last change: just
copy MEM, but be sure to share address.
(expand_expr, case CONSTRUCTOR): Likewise.
From-SVN: r10801
1995-12-18 16:39:20 -05:00
Torbjorn Granlund
b10af0c820
(expand_expr...
...
(expand_expr, case MULT_EXPR): Generalize code for widening
multiply to handle signed widening multiply when only unsigned optab
is defined, and vice versa.
From-SVN: r10788
1995-12-17 16:39:58 +00:00
Richard Kenner
db3ec607e7
(expand_assignment): Fix alignment parm in emit_block_move.
...
From-SVN: r10781
1995-12-16 18:24:02 -05:00
Mike Stump
3539e81693
* expr.c (expand_expr, case ADDR_EXPR): Ensure op0 isn't QUEUED.
...
From-SVN: r10715
1995-12-14 00:20:39 +00:00
Richard Kenner
05019f83a3
(expand_expr, case COMPONENT_REF): If result is BLKmode, use that to
...
access object too.
From-SVN: r10697
1995-12-10 09:51:54 -05:00
Richard Kenner
07604beb82
(expand_expr, case CONSTRUCTOR): If TREE_READONLY, set
...
RTX_UNCHANGING_P in TARGET.
From-SVN: r10696
1995-12-10 08:46:44 -05:00
Richard Kenner
5cb7a25a95
(expand_expr, case INDIRECT_REF): Correct typo in May 8 change.
...
From-SVN: r10695
1995-12-10 08:44:42 -05:00
Richard Kenner
cf04eb80b0
(store_constructor, record): If field is READONLY, set
...
RTX_UNCHANGING_P in TO_RTX.
From-SVN: r10671
1995-12-04 14:10:50 -05:00
Richard Kenner
16545b0a67
(truthvalue_conversion): Add declaration.
...
From-SVN: r10585
1995-11-26 11:19:51 -05:00
Richard Kenner
2ae342f72c
(expand_expr, case ARRAY_REF): Properly convert types of index, size,
...
and multiplication.
From-SVN: r10573
1995-11-09 11:01:13 -05:00
Richard Kenner
4c08eef0d2
(clear_storage): SIZE is now rtx, not int.
...
(store_constructor): Call clear_storage with rtx.
(get_inner_reference): Convert index to precision of sizetype, not
POINTER_SIZE.
(expand_expr, case ARRAY_REF): Likewise.
From-SVN: r10529
1995-10-27 06:41:39 -04:00
Richard Kenner
3bb5826ab8
(safe_from_p, case RTL_EXPR): Return 0 if RTL_EXPR_SEQUENCE exists.
...
Delete code to return 0 if exp_rtl is zero.
From-SVN: r10492
1995-10-20 19:30:53 -04:00
Mike Stump
0ebba7fc0d
fix small typo
...
From-SVN: r10431
1995-10-04 17:59:40 +00:00
Richard Kenner
15a7a8ec1c
(emit_move_insn_1): When doing multi-word move, show output is
...
clobbered.
From-SVN: r10427
1995-10-03 12:31:19 -04:00
Richard Kenner
2bbf216f5e
(expand_builtin_return_addr): Break out functionality from expand_builtin.
...
(expand_builtin): Call expand_builtin_return_addr.
From-SVN: r10418
1995-10-03 11:48:39 -04:00
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