Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com)
+ * pa.md (indirect_jump): Remove mode from match_operand. Verify
+ proper mode in the condition string.
+ (icacheflush, dcacheflush): Remove modes from match_operands.
+
* pa.c (emit_move_sequence): Always convert scratch_reg to the
proper mode before using it.
;;; Hope this is only within a function...
(define_insn "indirect_jump"
- [(set (pc) (match_operand:SI 0 "register_operand" "r"))]
- ""
+ [(set (pc) (match_operand 0 "register_operand" "r"))]
+ "GET_MODE (operands[0]) == word_mode"
"bv%* %%r0(%0)"
[(set_attr "type" "branch")
(set_attr "length" "4")])
(define_insn "dcacheflush"
[(unspec_volatile [(const_int 1)] 0)
- (use (mem:SI (match_operand:SI 0 "register_operand" "r")))
- (use (mem:SI (match_operand:SI 1 "register_operand" "r")))]
+ (use (mem:SI (match_operand 0 "register_operand" "r")))
+ (use (mem:SI (match_operand 1 "register_operand" "r")))]
""
"fdc 0(%0)\;fdc 0(%1)\;sync"
[(set_attr "type" "multi")
(define_insn "icacheflush"
[(unspec_volatile [(const_int 2)] 0)
- (use (mem:SI (match_operand:SI 0 "register_operand" "r")))
- (use (mem:SI (match_operand:SI 1 "register_operand" "r")))
- (use (match_operand:SI 2 "register_operand" "r"))
- (clobber (match_operand:SI 3 "register_operand" "=&r"))
- (clobber (match_operand:SI 4 "register_operand" "=&r"))]
+ (use (mem:SI (match_operand 0 "register_operand" "r")))
+ (use (mem:SI (match_operand 1 "register_operand" "r")))
+ (use (match_operand 2 "register_operand" "r"))
+ (clobber (match_operand 3 "register_operand" "=&r"))
+ (clobber (match_operand 4 "register_operand" "=&r"))]
""
"mfsp %%sr0,%4\;ldsid (%2),%3\;mtsp %3,%%sr0\;fic 0(%%sr0,%0)\;fic 0(%%sr0,%1)\;sync\;mtsp %4,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop"
[(set_attr "type" "multi")