+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,
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>
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.
;; 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
(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")