diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-02-23 08:46:04 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-02-23 08:46:04 -0500 |
commit | 0dddb42d9003167d9485ef1079f0ecc8d37e34a5 (patch) | |
tree | a214199a0a32a6d8076a1fa57e371648772a35a3 /gcc | |
parent | 6cab873196ddb5b6b5c026f5eed50f12e87b6265 (diff) | |
download | gcc-0dddb42d9003167d9485ef1079f0ecc8d37e34a5.zip gcc-0dddb42d9003167d9485ef1079f0ecc8d37e34a5.tar.gz gcc-0dddb42d9003167d9485ef1079f0ecc8d37e34a5.tar.bz2 |
(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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 11 |
1 files changed, 2 insertions, 9 deletions
@@ -8522,7 +8522,7 @@ expand_builtin (exp, target, subtarget, mode, ignore) emit_queue (); - emit_note (NULL_PTR, NOTE_INSN_SETJMP); + CONST_CALL_P (emit_note (NULL_PTR, NOTE_INSN_SETJMP)) = 1; current_function_calls_setjmp = 1; /* We store the frame pointer and the address of lab1 in the buffer @@ -8553,16 +8553,9 @@ expand_builtin (exp, target, subtarget, mode, ignore) emit_label (lab1); /* Note that setjmp clobbers FP when we get here, so we have to - make sure it's marked as used by this function. Also, - some inner function might use a call-saved register, so we - have to set up to save all of them here. */ + make sure it's marked as used by this function. */ emit_insn (gen_rtx (USE, VOIDmode, hard_frame_pointer_rtx)); - for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) - if (! call_used_regs[i]) - emit_insn (gen_rtx (USE, VOIDmode, - gen_rtx (REG, reg_raw_mode[i], i))); - /* Now put in the code to restore the frame pointer, and argument pointer, if needed. The code below is from expand_end_bindings in stmt.c; see detailed documentation there. */ |