mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-04 02:19:45 +08:00
sparc.c (sparc_nonflat_function_epilogue): Only emit nop if the last real insn is CALL_INSN.
2003-07-15 David S. Miller <davem@redhat.com> * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only emit nop if the last real insn is CALL_INSN. From-SVN: r69440
This commit is contained in:
parent
9f13608f62
commit
ac59ed379b
@ -1,3 +1,8 @@
|
||||
2003-07-15 David S. Miller <davem@redhat.com>
|
||||
|
||||
* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only
|
||||
emit nop if the last real insn is CALL_INSN.
|
||||
|
||||
2003-07-16 Danny Smith <dannysmith@users.sourceforge.net>
|
||||
|
||||
* config/i386/xm-mingw32.h (HOST_BIT_BUCKET): Define
|
||||
|
@ -4046,11 +4046,19 @@ sparc_nonflat_function_epilogue (file, size, leaf_function)
|
||||
of a function were call foo; dslot; this can make the return
|
||||
PC of foo (ie. address of call instruction plus 8) point to
|
||||
the first instruction in the next function. */
|
||||
rtx insn;
|
||||
|
||||
fputs("\tnop\n", file);
|
||||
rtx insn, last_real_insn;
|
||||
|
||||
insn = get_last_insn ();
|
||||
|
||||
last_real_insn = prev_real_insn (insn);
|
||||
if (last_real_insn
|
||||
&& GET_CODE (last_real_insn) == INSN
|
||||
&& GET_CODE (PATTERN (last_real_insn)) == SEQUENCE)
|
||||
last_real_insn = XVECEXP (PATTERN (last_real_insn), 0, 0);
|
||||
|
||||
if (last_real_insn && GET_CODE (last_real_insn) == CALL_INSN)
|
||||
fputs("\tnop\n", file);
|
||||
|
||||
if (GET_CODE (insn) == NOTE)
|
||||
insn = prev_nonnote_insn (insn);
|
||||
if (insn && GET_CODE (insn) == BARRIER)
|
||||
|
Loading…
Reference in New Issue
Block a user