From fd6b2a6d3e5054e023b85c67e88910a4406d0935 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sun, 18 Apr 1993 04:42:33 +0000 Subject: [PATCH] (cmpsi): Use `cmpq' for small immediate values. (addsi3): Use `loada' for `reg1 = reg2 + immed'. From-SVN: r4182 --- gcc/config/clipper/clipper.md | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/gcc/config/clipper/clipper.md b/gcc/config/clipper/clipper.md index d53312d9fabe..24aa2588cdf6 100644 --- a/gcc/config/clipper/clipper.md +++ b/gcc/config/clipper/clipper.md @@ -83,13 +83,26 @@ "" "* { + int val; + if (which_alternative == 0) return \"cmpw %1,%0\"; if (which_alternative == 1) - return \"cmpi %1,%0\"; + { + val = INTVAL (operands[1]); + if (0 <= val && val < 16) + return \"cmpq %1,%0\"; + return \"cmpi %1,%0\"; + } cc_status.flags |= CC_REVERSED; /* immediate must be first */ + + val = INTVAL (operands[0]); + + if (0 <= val && val < 16) + return \"cmpq %0,%1\"; + return \"cmpi %0,%1\"; }") @@ -688,12 +701,16 @@ (define_insn "addsi3" [(set (match_operand:SI 0 "int_reg_operand" "=r,r,r") (plus:SI (match_operand:SI 1 "int_reg_operand" "%0,r,r") - (match_operand:SI 2 "nonmemory_operand" "rn,0,r")))] + (match_operand:SI 2 "nonmemory_operand" "rn,0,rn")))] "" "* { if (which_alternative == 2) /* 3 address version */ - return \"loada [%2](%1),%0\"; + { + if (GET_CODE (operands[2]) == CONST_INT) + return \"loada %a2(%1),%0\"; + return \"loada [%2](%1),%0\"; + } /* 2 address version */ if (GET_CODE (operands[2]) == CONST_INT) { @@ -1377,14 +1394,3 @@ ;; These patters are jump_insns that do not allow output reloads and clipper ;; can only decrement and test registers. ;; - - -;;- Local variables: -;;- mode:c -;;- comment-start: ";;- " -;;- eval: (set-syntax-table (copy-sequence (syntax-table))) -;;- eval: (modify-syntax-entry ?[ "(]") -;;- eval: (modify-syntax-entry ?] ")[") -;;- eval: (modify-syntax-entry ?{ "(}") -;;- eval: (modify-syntax-entry ?} "){") -;;- End: -- 2.43.5