[v850 patch?] num_sign_bit_copies1: sign_extending consts
DJ Delorie
dj@redhat.com
Tue Nov 4 14:48:00 GMT 2003
> It shouldn't be modeless. SImode at minimum.
Revised patch.
2003-11-04 DJ Delorie <dj@redhat.com>
* config/v850/v850.md (mulhisi3): Expand the const_int case
separately to avoid trying to sign extend the const.
Index: config/v850/v850.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/v850/v850.md,v
retrieving revision 1.23
diff -p -2 -r1.23 v850.md
*** config/v850/v850.md 4 Apr 2003 10:38:50 -0000 1.23
--- config/v850/v850.md 4 Nov 2003 14:47:17 -0000
***************
*** 369,373 ****
(sign_extend:SI (match_operand:HI 2 "nonmemory_operand" ""))))]
""
! "")
(define_insn "*mulhisi3_internal1"
--- 369,377 ----
(sign_extend:SI (match_operand:HI 2 "nonmemory_operand" ""))))]
""
! "if (GET_CODE (operands[2]) == CONST_INT)
! {
! emit_insn (gen_mulhisi3_internal2 (operands[0], operands[1], operands[2]));
! DONE;
! }")
(define_insn "*mulhisi3_internal1"
***************
*** 384,392 ****
;; ??? Sign extending constants isn't valid. Fix?
! (define_insn "*mulhisi3_internal2"
[(set (match_operand:SI 0 "register_operand" "=r,r")
(mult:SI
(sign_extend:SI (match_operand:HI 1 "register_operand" "%0,r"))
! (sign_extend:SI (match_operand 2 "const_int_operand" "J,K"))))]
""
"@
--- 388,396 ----
;; ??? Sign extending constants isn't valid. Fix?
! (define_insn "mulhisi3_internal2"
[(set (match_operand:SI 0 "register_operand" "=r,r")
(mult:SI
(sign_extend:SI (match_operand:HI 1 "register_operand" "%0,r"))
! (match_operand:SI 2 "const_int_operand" "J,K")))]
""
"@
More information about the Gcc-patches
mailing list