diff options
author | Jan Hubicka <jh@suse.cz> | 2003-02-26 12:09:33 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2003-02-26 11:09:33 +0000 |
commit | 0d446150c298b2048d18e354ee47b130ed3b8e7f (patch) | |
tree | ddc33e157eac05f7cef3bb3604e16a7dd67cba78 /gcc/expr.c | |
parent | 9541e2e3d91f99cacd1cd724a956019281e760d5 (diff) | |
download | gcc-0d446150c298b2048d18e354ee47b130ed3b8e7f.zip gcc-0d446150c298b2048d18e354ee47b130ed3b8e7f.tar.gz gcc-0d446150c298b2048d18e354ee47b130ed3b8e7f.tar.bz2 |
objc-act.c: Include cgraph.h
* objc-act.c: Include cgraph.h
(mark_referenced_methods): New function.
(objc_init): Call it.
* objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
* c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
mode.
* optabs.c (expand_fix): Do not widen the input operand.
* expr.c (emit_group_store): Fix crash when converting single
register into complex register.
* Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
* alias.c: Include timevar.h
(init_alias_analysis): Set timevar
* jump.c: Include timevar.h
(rebuild_jump_labels): Set timevar
* regcalss.c: Include timevar.h
(reg_scan): Set timevar
* timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
From-SVN: r63464
Diffstat (limited to 'gcc/expr.c')
-rw-r--r-- | gcc/expr.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -2477,6 +2477,15 @@ emit_group_store (orig_dst, src, ssize) bytepos -= GET_MODE_SIZE (GET_MODE (XEXP (dst, 0))); dest = XEXP (dst, 1); } + else if (bytepos == 0 && XVECLEN (src, 0)) + { + dest = assign_stack_temp (GET_MODE (dest), + GET_MODE_SIZE (GET_MODE (dest)), 0); + emit_move_insn (adjust_address (dest, GET_MODE (tmps[i]), bytepos), + tmps[i]); + dst = dest; + break; + } else abort (); } @@ -2495,7 +2504,7 @@ emit_group_store (orig_dst, src, ssize) emit_queue (); /* Copy from the pseudo into the (probable) hard reg. */ - if (GET_CODE (dst) == REG) + if (orig_dst != dst) emit_move_insn (orig_dst, dst); } |