comparison gcc/config/cris/cris.md @ 36:855418dad1a3

gcc-4.4-20091020
author e075725
date Tue, 22 Dec 2009 21:19:31 +0900
parents a06113de4d67
children 77e2b8dfacca
comparison
equal deleted inserted replaced
19:58ad6c70ea60 36:855418dad1a3
4916 ;; and.b some_byte,const,reg_32 4916 ;; and.b some_byte,const,reg_32
4917 ;; where reg_32 is the destination of the "three-address" code optimally. 4917 ;; where reg_32 is the destination of the "three-address" code optimally.
4918 ;; It should be: 4918 ;; It should be:
4919 ;; movu.b some_byte,reg_32 4919 ;; movu.b some_byte,reg_32
4920 ;; and.b const,reg_32 4920 ;; and.b const,reg_32
4921 ;; but is turns into: 4921 ;; but it turns into:
4922 ;; move.b some_byte,reg_32 4922 ;; move.b some_byte,reg_32
4923 ;; and.d const,reg_32 4923 ;; and.d const,reg_32
4924 ;; Fix it here. 4924 ;; Fix it here.
4925 ;; Testcases: gcc.dg/cris-peep2-andu1.c gcc.dg/cris-peep2-andu2.c 4925 ;; Testcases: gcc.dg/cris-peep2-andu1.c gcc.dg/cris-peep2-andu2.c
4926 4926
4933 ;; Since the size of the memory access could be made different here, 4933 ;; Since the size of the memory access could be made different here,
4934 ;; don't do this for a mem-volatile access. 4934 ;; don't do this for a mem-volatile access.
4935 "REGNO (operands[2]) == REGNO (operands[0]) 4935 "REGNO (operands[2]) == REGNO (operands[0])
4936 && INTVAL (operands[3]) <= 65535 && INTVAL (operands[3]) >= 0 4936 && INTVAL (operands[3]) <= 65535 && INTVAL (operands[3]) >= 0
4937 && !CRIS_CONST_OK_FOR_LETTER_P (INTVAL (operands[3]), 'I') 4937 && !CRIS_CONST_OK_FOR_LETTER_P (INTVAL (operands[3]), 'I')
4938 && !side_effects_p (operands[1])" 4938 && !side_effects_p (operands[1])
4939 && (!REG_P (operands[1])
4940 || REGNO (operands[1]) <= CRIS_LAST_GENERAL_REGISTER)"
4939 ;; FIXME: CC0 valid except for M (i.e. CC_NOT_NEGATIVE). 4941 ;; FIXME: CC0 valid except for M (i.e. CC_NOT_NEGATIVE).
4940 [(set (match_dup 0) (match_dup 4)) 4942 [(set (match_dup 0) (match_dup 4))
4941 (set (match_dup 5) (match_dup 6))] 4943 (set (match_dup 5) (match_dup 6))]
4942 { 4944 {
4943 enum machine_mode zmode = INTVAL (operands[3]) <= 255 ? QImode : HImode; 4945 enum machine_mode zmode = INTVAL (operands[3]) <= 255 ? QImode : HImode;