diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2013-03-26 17:24:48 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2013-03-26 17:24:48 +0100 |
commit | 93a4145ba1de31ddc35ace4aac8facbb869c6c49 (patch) | |
tree | a7fffe54e49ac1c3934a25efe22e177b202aabd8 /gcc/config/i386/predicates.md | |
parent | c6a9ed5a418fc4daabc55d864b791d3886a69fe6 (diff) | |
download | gcc-93a4145ba1de31ddc35ace4aac8facbb869c6c49.tar.gz |
i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64 using nox64 isa attribute.
* config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
operand 0 predicate.
(*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
attribute. Use general_x64nomem_operand as operand 1 predicate.
(*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
(*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
(mov<mode>_insv_1): Remove expander. Merge insn with
movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
Use general_x64nomem_operand as operand 1 predicate.
(addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
(*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
(*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
(*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
(*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
isa attribute. Use general_x64nomem_operand as operand 2 predicate.
* config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
(general_x64nomem_operand): Ditto.
From-SVN: r197114
Diffstat (limited to 'gcc/config/i386/predicates.md')
-rw-r--r-- | gcc/config/i386/predicates.md | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md index b3b07db41cb..2157cb96d0c 100644 --- a/gcc/config/i386/predicates.md +++ b/gcc/config/i386/predicates.md @@ -71,6 +71,18 @@ && (REGNO (op) > LAST_VIRTUAL_REGISTER || REGNO (op) <= BX_REG)); }) +;; Match nonimmediate operands, but exclude memory operands on 64bit targets. +(define_predicate "nonimmediate_x64nomem_operand" + (if_then_else (match_test "TARGET_64BIT") + (match_operand 0 "register_operand") + (match_operand 0 "nonimmediate_operand"))) + +;; Match general operands, but exclude memory operands on 64bit targets. +(define_predicate "general_x64nomem_operand" + (if_then_else (match_test "TARGET_64BIT") + (match_operand 0 "nonmemory_operand") + (match_operand 0 "general_operand"))) + ;; Return true if op is the AX register. (define_predicate "ax_reg_operand" (and (match_code "reg") |