diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2013-07-22 10:27:25 +0200 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2013-07-22 08:27:25 +0000 |
commit | d9e7115468531638db9a695eafa9b0fa48b1fa43 (patch) | |
tree | 16e2a6558ebb083aedd0c3e45e06acb7997215dd /gcc | |
parent | b2b0bf396e58c8431a4a8cee5998ce6cbd1606a1 (diff) | |
download | gcc-d9e7115468531638db9a695eafa9b0fa48b1fa43.zip gcc-d9e7115468531638db9a695eafa9b0fa48b1fa43.tar.gz gcc-d9e7115468531638db9a695eafa9b0fa48b1fa43.tar.bz2 |
i386.md (nonlocal_goto_receiver): Delete insn if it is not needed after split.
gcc/
2013-07-22 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
it is not needed after split.
From-SVN: r201118
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 11 |
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87c07ba..f0260dd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-07-22 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if + it is not needed after split. + 2013-07-20 Iain Sandoe <iain@codesourcery.com> PR target/51784 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index a4778fe..c67ed31 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -16233,12 +16233,7 @@ (define_insn_and_split "nonlocal_goto_receiver" [(unspec_volatile [(const_int 0)] UNSPECV_NLGR)] "TARGET_MACHO && !TARGET_64BIT && flag_pic" -{ - if (crtl->uses_pic_offset_table) - return "#"; - else - return ""; /* No pic reg restore needed. */ -} + "#" "&& reload_completed" [(const_int 0)] { @@ -16258,6 +16253,10 @@ xops[2] = gen_rtx_CONST (Pmode, tmp); ix86_expand_binary_operator (MINUS, SImode, xops); } + else + /* No pic reg restore needed. */ + emit_note (NOTE_INSN_DELETED); + DONE; }) |