ports/devel/avr-gcc/files/patch-503-gcc-4.5.1-avrtiny10-bug-12510
Joerg Wunsch 0c19ecdca8 Upgrade to GCC 4.5.1.
Completely reorganize the patches for this port.

Patches for new devices are now synchronized with the Atmel AVR tools.
The main difference is the naming scheme, as FreeBSD patches start
with "patch-", while the Atmel AVR Tools patches end up in ".patch".
2011-12-17 09:56:31 +00:00

43 lines
2.1 KiB
Text

diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
--- gcc/config/avr/avr.h 2011-06-09 15:53:13.000000000 -0500
+++ gcc/config/avr/avr.h 2011-06-09 15:55:45.000000000 -0500
@@ -136,7 +136,7 @@ extern GTY(()) section *progmem_section;
#define AVR_2_BYTE_PC (!AVR_HAVE_EIJMP_EICALL)
#define AVR_3_BYTE_PC (AVR_HAVE_EIJMP_EICALL)
-#define AVR_IO_OFFSET (AVR_XMEGA ? 0 : 0x20)
+#define AVR_IO_OFFSET ((AVR_XMEGA || AVR_TINY) ? 0 : 0x20)
#define AVR_RAMPD_ADDR (AVR_XMEGA ? 0x38 : 0)
#define AVR_RAMPX_ADDR (AVR_XMEGA ? 0x39 : 0)
#define AVR_RAMPY_ADDR (AVR_XMEGA ? 0x3A : 0)
diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
--- gcc/config/avr/predicates.md 2011-06-09 14:30:33.000000000 -0500
+++ gcc/config/avr/predicates.md 2011-06-09 15:55:45.000000000 -0500
@@ -50,21 +50,24 @@
;; Return true if OP is a valid address for lower half of I/O space.
(define_predicate "low_io_address_operand"
(and (match_code "const_int")
- (if_then_else (match_test "AVR_XMEGA")
+ (if_then_else (ior (match_test "AVR_XMEGA")
+ (match_test "AVR_TINY"))
(match_test "IN_RANGE((INTVAL (op)), 0x00, 0x1F)")
(match_test "IN_RANGE((INTVAL (op)), 0x20, 0x3F)"))))
;; Return true if OP is a valid address for high half of I/O space.
(define_predicate "high_io_address_operand"
(and (match_code "const_int")
- (if_then_else (match_test "AVR_XMEGA")
+ (if_then_else (ior (match_test "AVR_XMEGA")
+ (match_test "AVR_TINY"))
(match_test "IN_RANGE((INTVAL (op)), 0x20, 0x3F)")
(match_test "IN_RANGE((INTVAL (op)), 0x40, 0x5F)"))))
;; Return true if OP is a valid address of I/O space.
(define_predicate "io_address_operand"
(and (match_code "const_int")
- (if_then_else (match_test "AVR_XMEGA")
+ (if_then_else (ior (match_test "AVR_XMEGA")
+ (match_test "AVR_TINY"))
(match_test "IN_RANGE((INTVAL (op)), 0x0, (0x40 - GET_MODE_SIZE(mode)))")
(match_test "IN_RANGE((INTVAL (op)), 0x20, (0x60 - GET_MODE_SIZE(mode)))"))))