Stu Grossman grossman@redhat.com
Andrew Haley aph@redhat.com
Aldy Hernandez aldyh@redhat.com
+Matthew Hiller hiller@redhat.com
Kazu Hirata kazu@hxi.com
Manfred Hollstein mhollstein@redhat.com
Jan Hubicka hubicka@freesoft.cz
+2001-03-28 Matthew Hiller <hiller@redhat.com>
+
+ * config/mn10300/mn10300.md (cmpsi): Fix first alternative's
+ output template.
+
+ * MAINTAINERS: Added self.
+
2001-03-28 Richard Henderson <rth@redhat.com>
* Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
"* return output_tst (operands[0], insn);"
[(set_attr "cc" "set_znv")])
+;; Ordinarily, the cmp instruction will set the Z bit of cc0 to 1 if
+;; its operands hold equal values, but the operands of a cmp
+;; instruction must be distinct registers. In the case where we'd
+;; like to compare a register to itself, we can achieve this effect
+;; with a btst 0,d0 instead. (This will not alter the contents of d0
+;; but will have the proper effect on cc0. Using d0 is arbitrary; any
+;; data register would work.)
+
(define_insn "cmpsi"
[(set (cc0)
- (compare (match_operand:SI 0 "register_operand" "!*d*a*x,dax")
- (match_operand:SI 1 "nonmemory_operand" "!*0,daxi")))]
+ (compare (match_operand:SI 0 "register_operand" "*d*a*x,dax")
+ (match_operand:SI 1 "nonmemory_operand" "*0,daxi")))]
""
"@
- add 0,%0
+ btst 0,d0
cmp %1,%0"
- [(set_attr "cc" "invert,compare")])
+ [(set_attr "cc" "compare,compare")])
\f
;; ----------------------------------------------------------------------
;; ADD INSTRUCTIONS