]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
authorAnatoly Sokolov <aesok@post.ru>
Thu, 17 Jan 2008 20:52:27 +0000 (23:52 +0300)
committerAnatoly Sokolov <aesok@gcc.gnu.org>
Thu, 17 Jan 2008 20:52:27 +0000 (23:52 +0300)
* config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
* config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.

From-SVN: r131609

gcc/ChangeLog
gcc/config/avr/avr.h
gcc/config/avr/avr.opt

index c7e5849c0052347f7cbab669dd9f83fb7b7d0d6e..d00143afc385e37a9dfe23a33970dadc65ee7700 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-17  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
+       * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
+
 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
 
        PR rtl-optimization/34400
index bbabaef7372a049b9f5ea561198b76d193c9716d..6b4b372c27c05a1d4b807d2c0e1e3b6b9fa294b2 100644 (file)
@@ -737,12 +737,21 @@ extern int avr_case_values_threshold;
 #define ASM_SPEC "%{mmcu=avr25:-mmcu=avr2;mmcu=avr35:-mmcu=avr3;\
 mmcu=*:-mmcu=%*}"
 
-#define LINK_SPEC " %{!mmcu*:-m avr2}\
+#define LINK_SPEC "\
+%{mrelax:--relax\
+         %{mpmem-wrap-around:%{mmcu=at90usb8*:--pmem-wrap-around=8k}\
+                             %{mmcu=atmega16*:--pmem-wrap-around=16k}\
+                             %{mmcu=atmega32*|\
+                               mmcu=at90can32*:--pmem-wrap-around=32k}\
+                             %{mmcu=atmega64*|\
+                               mmcu=at90can64*|\
+                               mmcu=at90usb64*:--pmem-wrap-around=64k}}}\
+%{!mmcu*: -m avr2}\
 %{mmcu=at90s1200|\
   mmcu=attiny11|\
   mmcu=attiny12|\
   mmcu=attiny15|\
-  mmcu=attiny28:-m avr1}\
+  mmcu=attiny28: -m avr1}\
 %{mmcu=attiny22|\
   mmcu=attiny26|\
   mmcu=at90s2*|\
@@ -756,19 +765,19 @@ mmcu=*:-mmcu=%*}"
   mmcu=attiny25|\
   mmcu=attiny261|\
   mmcu=attiny4*|\
-  mmcu=attiny8*:-m avr2}\
+  mmcu=attiny8*: -m avr2}\
 %{mmcu=atmega103|\
   mmcu=at43*|\
   mmcu=at76*|\
   mmcu=at90usb82|\
-  mmcu=at90usb162:-m avr3}\
+  mmcu=at90usb162: -m avr3}\
 %{mmcu=atmega8*|\
   mmcu=atmega48*|\
   mmcu=at90pwm1|\
   mmcu=at90pwm2|\
   mmcu=at90pwm2b|\
   mmcu=at90pwm3|\
-  mmcu=at90pwm3b:-m avr4}\
+  mmcu=at90pwm3b: -m avr4}\
 %{mmcu=atmega16*|\
   mmcu=atmega32*|\
   mmcu=atmega406|\
@@ -779,7 +788,7 @@ mmcu=*:-mmcu=%*}"
   mmcu=at90pwm316|\
   mmcu=at90usb64*|\
   mmcu=at90usb128*|\
-  mmcu=at94k:-m avr5}\
+  mmcu=at94k: -m avr5}\
 %{mmcu=atmega324*|\
   mmcu=atmega325*|\
   mmcu=atmega328p|\
index 56d7db99f965643024cd3f590014037f3f522f0f..52382d75b2f3017aacc92622d9798d7f4414cb47 100644 (file)
@@ -58,3 +58,11 @@ Output instruction sizes to the asm file
 mtiny-stack
 Target Report Mask(TINY_STACK)
 Change only the low 8 bits of the stack pointer
+
+mrelax
+Target Report
+Relax branches
+
+mpmem-wrap-around
+Target Report
+Make the linker relaxation machine assume that a program counter wrap-around occures.