Commit 9652c531 by Roman Zippel Committed by Richard Henderson

m68k.c (post_inc_operand,pre_dec_operand): New.

        * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
        * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
        pre_dec_operand.
        * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
        pattern until reload is finished to allow better code generation
        and split them completely into separate instrunctions.
        (*andsi3_split): New pattern.

From-SVN: r85631
parent 3589b69e
2004-08-06 Roman Zippel <zippel@linux-m68k.org>
* config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
* config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
pre_dec_operand.
* config/m68k/m68k.md (zero_extend*2): delay the splitting of the
pattern until reload is finished to allow better code generation
and split them completely into separate instrunctions.
(*andsi3_split): New pattern.
2004-08-05 Mark Mitchell <mark@codesourcery.com> 2004-08-05 Mark Mitchell <mark@codesourcery.com>
* tree.c (handle_dll_attribute): Move here from i383/winnt.c. * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
......
...@@ -3185,6 +3185,18 @@ memory_src_operand (rtx op, enum machine_mode mode) ...@@ -3185,6 +3185,18 @@ memory_src_operand (rtx op, enum machine_mode mode)
return memory_operand (op, mode); return memory_operand (op, mode);
} }
int
post_inc_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
return MEM_P (op) && GET_CODE (XEXP (op, 0)) == POST_INC;
}
int
pre_dec_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
{
return MEM_P (op) && GET_CODE (XEXP (op, 0)) == PRE_DEC;
}
/* Predicate that accepts only a pc-relative address. This is needed /* Predicate that accepts only a pc-relative address. This is needed
because pc-relative addresses don't satisfy the predicate because pc-relative addresses don't satisfy the predicate
"general_src_operand". */ "general_src_operand". */
......
...@@ -1271,4 +1271,6 @@ extern int m68k_last_compare_had_fp_operands; ...@@ -1271,4 +1271,6 @@ extern int m68k_last_compare_had_fp_operands;
{"valid_dbcc_comparison_p", {EQ, NE, GTU, LTU, GEU, LEU, \ {"valid_dbcc_comparison_p", {EQ, NE, GTU, LTU, GEU, LEU, \
GT, LT, GE, LE}}, \ GT, LT, GE, LE}}, \
{"extend_operator", {SIGN_EXTEND, ZERO_EXTEND}}, \ {"extend_operator", {SIGN_EXTEND, ZERO_EXTEND}}, \
{"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, {"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, \
{"post_inc_operand", {MEM}}, \
{"pre_dec_operand", {MEM}},
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment