diff options
author | Kirill Yukhin <kirill.yukhin@intel.com> | 2013-12-05 12:20:19 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2013-12-05 12:20:19 +0000 |
commit | 1c0f1f465265a391519a2be0b718be84beb064cd (patch) | |
tree | a2ec463ff610ad87b90b55d60706ecd6a94b57fc /gcc/config | |
parent | 9e36c9ed207d4ce83c8b24d698040973e485acdb (diff) | |
download | gcc-1c0f1f465265a391519a2be0b718be84beb064cd.zip gcc-1c0f1f465265a391519a2be0b718be84beb064cd.tar.gz gcc-1c0f1f465265a391519a2be0b718be84beb064cd.tar.bz2 |
i386.c (ix86_expand_builtin): Generate reg for readflags built-in when optimizing.
* config/i386/i386.c (ix86_expand_builtin): Generate
reg for readflags built-in when optimizing.
* config/i386/i386.md (*pushfl<mode>): Rename to ...
(pushfl<mode>2): This. Fix iterator.
(*popfl<mode>): Rename to ...
(*popfl<mode>1): This. Fix iterator.
From-SVN: r205707
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386.c | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 12 |
2 files changed, 9 insertions, 8 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 848b8508..0f6612d 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -33457,8 +33457,9 @@ addcarryx: case IX86_BUILTIN_READ_FLAGS: emit_insn (gen_push (gen_rtx_REG (word_mode, FLAGS_REG))); - if (target == NULL_RTX - || !register_operand (target, word_mode) + if (optimize + || target == NULL_RTX + || !nonimmediate_operand (target, word_mode) || GET_MODE (target) != word_mode) target = gen_reg_rtx (word_mode); diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 7075332..7138868 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -1722,17 +1722,17 @@ [(set_attr "type" "pop") (set_attr "mode" "<MODE>")]) -(define_insn "*pushfl<mode>" - [(set (match_operand:DWIH 0 "push_operand" "=<") - (match_operand:DWIH 1 "flags_reg_operand"))] +(define_insn "*pushfl<mode>2" + [(set (match_operand:W 0 "push_operand" "=<") + (match_operand:W 1 "flags_reg_operand"))] "" "pushf{<imodesuffix>}" [(set_attr "type" "push") (set_attr "mode" "<MODE>")]) -(define_insn "*popfl<mode>" - [(set (match_operand:DWIH 0 "flags_reg_operand") - (match_operand:DWIH 1 "pop_operand" ">"))] +(define_insn "*popfl<mode>1" + [(set (match_operand:W 0 "flags_reg_operand") + (match_operand:W 1 "pop_operand" ">"))] "" "popf{<imodesuffix>}" [(set_attr "type" "pop") |