]> git.pld-linux.org Git - packages/crossavr-gcc.git/blob - 501-gcc-avrtiny10-bug-12510.patch
crossavr-gcc: Synchronized with official AVR toolchain 3.4.0.663.
[packages/crossavr-gcc.git] / 501-gcc-avrtiny10-bug-12510.patch
1 diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
2 --- gcc/config/avr/avr.h        2011-06-22 10:28:47.000000000 +0530
3 +++ gcc/config/avr/avr.h        2011-06-22 10:35:08.000000000 +0530
4 @@ -136,7 +136,7 @@ extern GTY(()) section *progmem_section;
5  #define AVR_2_BYTE_PC (!AVR_HAVE_EIJMP_EICALL)
6  #define AVR_3_BYTE_PC (AVR_HAVE_EIJMP_EICALL)
7  
8 -#define AVR_IO_OFFSET (AVR_XMEGA ? 0 : 0x20)
9 +#define AVR_IO_OFFSET ((AVR_XMEGA || AVR_TINY) ? 0 : 0x20)
10  #define AVR_RAMPD_ADDR (AVR_XMEGA ? 0x38 : 0)
11  #define AVR_RAMPX_ADDR (AVR_XMEGA ? 0x39 : 0)
12  #define AVR_RAMPY_ADDR (AVR_XMEGA ? 0x3A : 0)
13 diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
14 --- gcc/config/avr/predicates.md        2011-06-22 10:25:29.000000000 +0530
15 +++ gcc/config/avr/predicates.md        2011-06-22 10:35:08.000000000 +0530
16 @@ -50,21 +50,24 @@
17  ;; Return true if OP is a valid address for lower half of I/O space.
18  (define_predicate "low_io_address_operand"
19    (and (match_code "const_int")
20 -       (if_then_else (match_test "AVR_XMEGA") 
21 +       (if_then_else (ior (match_test "AVR_XMEGA")
22 +                                         (match_test "AVR_TINY")) 
23                       (match_test "IN_RANGE((INTVAL (op)), 0x00, 0x1F)")
24                      (match_test "IN_RANGE((INTVAL (op)), 0x20, 0x3F)"))))
25  
26  ;; Return true if OP is a valid address for high half of I/O space.
27  (define_predicate "high_io_address_operand"
28    (and (match_code "const_int")
29 -       (if_then_else (match_test "AVR_XMEGA") 
30 +       (if_then_else (ior (match_test "AVR_XMEGA")
31 +                                         (match_test "AVR_TINY")) 
32                       (match_test "IN_RANGE((INTVAL (op)), 0x20, 0x3F)")
33                      (match_test "IN_RANGE((INTVAL (op)), 0x40, 0x5F)"))))
34  
35  ;; Return true if OP is a valid address of I/O space.
36  (define_predicate "io_address_operand"
37    (and (match_code "const_int")
38 -       (if_then_else (match_test "AVR_XMEGA") 
39 +       (if_then_else (ior (match_test "AVR_XMEGA")
40 +                                         (match_test "AVR_TINY")) 
41                         (match_test "IN_RANGE((INTVAL (op)), 0x0, (0x40 - GET_MODE_SIZE(mode)))")
42                         (match_test "IN_RANGE((INTVAL (op)), 0x20, (0x60 - GET_MODE_SIZE(mode)))"))))
43  
This page took 0.039485 seconds and 3 git commands to generate.