From: Georg-Johann Lay Date: Thu, 4 Oct 2012 17:02:27 +0000 (+0000) Subject: predicates.md (flash_operand): New predicate. X-Git-Tag: misc/gccgo-go1_1_2~415 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af2e10ee707f0d8884e652fe8e9a9a8489fb2fa4;p=thirdparty%2Fgcc.git predicates.md (flash_operand): New predicate. * config/avr/predicates.md (flash_operand): New predicate. * config/avr/avr.md (reload_in): Use it in operand 1 instead of memory_operand. From-SVN: r192090 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 191165604b9e..abdd91721316 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-10-04 Georg-Johann Lay + + * config/avr/predicates.md (flash_operand): New predicate. + * config/avr/avr.md (reload_in): Use it in operand 1 instead + of memory_operand. + 2012-10-04 Tobias Burnus * gcc.c (record_temp_file, add_sysrooted_prefix, process_command, @@ -115,7 +121,7 @@ 2012-10-03 Andrew W. Nosenko - * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic + * config/i386/driver-i386.c (host_detect_local_cpu): Fix logic in SSE and YMM state support check for -march=native. 2012-10-03 Nick Clifton @@ -199,7 +205,7 @@ 2012-10-02 H.J. Lu PR target/54741 - * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New. + * config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New. (XSTATE_FP): Likewise. (XSTATE_SSE): Likewise. (XSTATE_YMM): Likewise. diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index 284860e9ec58..d3ffd1aba411 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -395,7 +395,7 @@ ;; Secondary input reload from non-generic 16-bit address spaces (define_insn "reload_in" [(set (match_operand:MOVMODE 0 "register_operand" "=r") - (match_operand:MOVMODE 1 "memory_operand" "m")) + (match_operand:MOVMODE 1 "flash_operand" "m")) (clobber (match_operand:QI 2 "d_register_operand" "=d"))] ;; Fixme: The insn condition must not test the address space. ;; Because the gen tools refuse to generate insns for address spaces diff --git a/gcc/config/avr/predicates.md b/gcc/config/avr/predicates.md index 04587ae491f2..fc4ca03de6bc 100644 --- a/gcc/config/avr/predicates.md +++ b/gcc/config/avr/predicates.md @@ -72,6 +72,13 @@ (not (match_test "avr_load_libgcc_p (op)")) (not (match_test "avr_mem_memx_p (op)")))) +;; Return 1 if OP is a memory operand in one of the __flash* address spaces +(define_predicate "flash_operand" + (and (match_operand 0 "memory_operand") + (match_test "Pmode == mode") + (ior (match_test "!MEM_P (op)") + (match_test "avr_mem_flash_p (op)")))) + ;; Return 1 if OP is the zero constant for MODE. (define_predicate "const0_operand" (and (match_code "const_int,const_fixed,const_double")