predicates.md (flash_operand): New predicate.

* config/avr/predicates.md (flash_operand): New predicate.
	* config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead
	of memory_operand.

From-SVN: r192090
This commit is contained in:
Georg-Johann Lay 2012-10-04 17:02:27 +00:00
parent db7f575486
commit af2e10ee70
3 changed files with 16 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2012-10-04 Georg-Johann Lay <avr@gjlay.de>
* config/avr/predicates.md (flash_operand): New predicate.
* config/avr/avr.md (reload_in<mode>): Use it in operand 1 instead
of memory_operand.
2012-10-04 Tobias Burnus <burnus@net-b.de>
* gcc.c (record_temp_file, add_sysrooted_prefix, process_command,
@ -115,7 +121,7 @@
2012-10-03 Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
* 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 <nickc@redhat.com>
@ -199,7 +205,7 @@
2012-10-02 H.J. Lu <hongjiu.lu@intel.com>
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.

View file

@ -395,7 +395,7 @@
;; Secondary input reload from non-generic 16-bit address spaces
(define_insn "reload_in<mode>"
[(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

View file

@ -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")