Mercurial > hg > CbC > CbC_gcc
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; |