[patch] Fix insn length of bit insns in h8300 port.

Kazu Hirata kazu@hxi.com
Tue Nov 13 15:03:00 GMT 2001


Hi,

Attached is a patch to fix insn length of bit insns in h8300 port.

The bit insns on H8/S can be as long as 8 bytes.  The patch addresses
the issue.

Tested on h8300 port.  Committed.

Kazu Hirata

2001-11-15  Kazu Hirata  <kazu@hxi.com>

	* config/h8300/h8300.md: Fix insn length of bit insns.

Index: h8300.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/h8300.md,v
retrieving revision 1.42
diff -c -r1.42 h8300.md
*** h8300.md	2001/10/31 16:33:03	1.42
--- h8300.md	2001/11/15 20:32:59
***************
*** 557,587 ****
  ;; ----------------------------------------------------------------------
  
  (define_insn ""
!   [(set (cc0) (zero_extract:QI (match_operand:QI 0 "bit_memory_operand" "rU")
  			       (const_int 1)
! 			       (match_operand:QI 1 "const_int_operand" "n")))]
    ""
    "btst	%Z1,%R0"
!   [(set_attr "length" "2")
!    (set_attr "cc" "set_zn")])
  
  (define_insn ""
!   [(set (cc0) (zero_extract:HI (match_operand:QI 0 "bit_memory_operand" "rU")
  			       (const_int 1)
! 			       (match_operand:QI 1 "const_int_operand" "n")))]
    ""
    "btst	%Z1,%Y0"
!   [(set_attr "length" "2")
!    (set_attr "cc" "set_zn")])
  
  (define_insn ""
!   [(set (cc0) (zero_extract:SI (match_operand:QI 0 "bit_memory_operand" "rU")
  			       (const_int 1)
! 			       (match_operand:QI 1 "const_int_operand" "n")))]
    ""
    "btst	%Z1,%Y0"
!   [(set_attr "length" "2")
!    (set_attr "cc" "set_zn")])
  
  (define_insn ""
    [(set (cc0) (zero_extract:QI (match_operand:HI 0 "register_operand" "r")
--- 557,587 ----
  ;; ----------------------------------------------------------------------
  
  (define_insn ""
!   [(set (cc0) (zero_extract:QI (match_operand:QI 0 "bit_memory_operand" "r,U")
  			       (const_int 1)
! 			       (match_operand:QI 1 "const_int_operand" "n,n")))]
    ""
    "btst	%Z1,%R0"
!   [(set_attr "length" "2,8")
!    (set_attr "cc" "set_zn,set_zn")])
  
  (define_insn ""
!   [(set (cc0) (zero_extract:HI (match_operand:QI 0 "bit_memory_operand" "r,U")
  			       (const_int 1)
! 			       (match_operand:QI 1 "const_int_operand" "n,n")))]
    ""
    "btst	%Z1,%Y0"
!   [(set_attr "length" "2,8")
!    (set_attr "cc" "set_zn,set_zn")])
  
  (define_insn ""
!   [(set (cc0) (zero_extract:SI (match_operand:QI 0 "bit_memory_operand" "r,U")
  			       (const_int 1)
! 			       (match_operand:QI 1 "const_int_operand" "n,n")))]
    ""
    "btst	%Z1,%Y0"
!   [(set_attr "length" "2,8")
!    (set_attr "cc" "set_zn,set_zn")])
  
  (define_insn ""
    [(set (cc0) (zero_extract:QI (match_operand:HI 0 "register_operand" "r")
***************
*** 1030,1036 ****
    "@
     and	%X2,%X0
     bclr	%W2,%R0"
!   [(set_attr "length" "2,4")
     (set_attr "adjust_length" "no")
     (set_attr "cc" "set_znv,none_0hit")])
  
--- 1030,1036 ----
    "@
     and	%X2,%X0
     bclr	%W2,%R0"
!   [(set_attr "length" "2,8")
     (set_attr "adjust_length" "no")
     (set_attr "cc" "set_znv,none_0hit")])
  
***************
*** 1125,1131 ****
    "@
     or	%X2,%X0
     bset	%V2,%R0"
!   [(set_attr "length" "2,4")
     (set_attr "adjust_length" "no")
     (set_attr "cc" "set_znv,none_0hit")])
  
--- 1125,1131 ----
    "@
     or	%X2,%X0
     bset	%V2,%R0"
!   [(set_attr "length" "2,8")
     (set_attr "adjust_length" "no")
     (set_attr "cc" "set_znv,none_0hit")])
  
***************
*** 1202,1208 ****
    "@
     xor	%X2,%X0
     bnot	%V2,%R0"
!   [(set_attr "length" "2,4")
     (set_attr "adjust_length" "no")
     (set_attr "cc" "set_znv,none_0hit")])
  
--- 1202,1208 ----
    "@
     xor	%X2,%X0
     bnot	%V2,%R0"
!   [(set_attr "length" "2,8")
     (set_attr "adjust_length" "no")
     (set_attr "cc" "set_znv,none_0hit")])
  



More information about the Gcc-patches mailing list