Commit 459e518560f4f7525bceb17ba0882b4cdaf698c1
1 parent
a8cf66bb
CRIS: Move operations can be optimized as arithmetic ones for cc evaluation.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6199 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
2 additions
and
1 deletions
target-cris/translate.c
@@ -975,6 +975,7 @@ static int arith_cc(DisasContext *dc) | @@ -975,6 +975,7 @@ static int arith_cc(DisasContext *dc) | ||
975 | case CC_OP_CMP: return 1; | 975 | case CC_OP_CMP: return 1; |
976 | case CC_OP_NEG: return 1; | 976 | case CC_OP_NEG: return 1; |
977 | case CC_OP_OR: return 1; | 977 | case CC_OP_OR: return 1; |
978 | + case CC_OP_AND: return 1; | ||
978 | case CC_OP_XOR: return 1; | 979 | case CC_OP_XOR: return 1; |
979 | case CC_OP_MULU: return 1; | 980 | case CC_OP_MULU: return 1; |
980 | case CC_OP_MULS: return 1; | 981 | case CC_OP_MULS: return 1; |
@@ -1000,7 +1001,7 @@ static void gen_tst_cc (DisasContext *dc, TCGv cc, int cond) | @@ -1000,7 +1001,7 @@ static void gen_tst_cc (DisasContext *dc, TCGv cc, int cond) | ||
1000 | * code is true. | 1001 | * code is true. |
1001 | */ | 1002 | */ |
1002 | arith_opt = arith_cc(dc) && !dc->flags_uptodate; | 1003 | arith_opt = arith_cc(dc) && !dc->flags_uptodate; |
1003 | - move_opt = (dc->cc_op == CC_OP_MOVE) && dc->flags_uptodate; | 1004 | + move_opt = (dc->cc_op == CC_OP_MOVE); |
1004 | switch (cond) { | 1005 | switch (cond) { |
1005 | case CC_EQ: | 1006 | case CC_EQ: |
1006 | if (arith_opt || move_opt) { | 1007 | if (arith_opt || move_opt) { |