diff options
author | Anatoly Sokolov <aesok@post.ru> | 2008-01-17 23:52:27 +0300 |
---|---|---|
committer | Anatoly Sokolov <aesok@gcc.gnu.org> | 2008-01-17 23:52:27 +0300 |
commit | 2e152e16873f3774cbaf228cfdba670b18af51a0 (patch) | |
tree | 331d4202dbe22cee99b1f3c42c7a35684bafe7ca /gcc/config/avr | |
parent | 185082a7b82a6ca848ab81301d2638964a78b815 (diff) | |
download | gcc-2e152e16873f3774cbaf228cfdba670b18af51a0.zip gcc-2e152e16873f3774cbaf228cfdba670b18af51a0.tar.gz gcc-2e152e16873f3774cbaf228cfdba670b18af51a0.tar.bz2 |
avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
* config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
* config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
From-SVN: r131609
Diffstat (limited to 'gcc/config/avr')
-rw-r--r-- | gcc/config/avr/avr.h | 21 | ||||
-rw-r--r-- | gcc/config/avr/avr.opt | 8 |
2 files changed, 23 insertions, 6 deletions
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index bbabaef..6b4b372 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -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|\ diff --git a/gcc/config/avr/avr.opt b/gcc/config/avr/avr.opt index 56d7db9..52382d7 100644 --- a/gcc/config/avr/avr.opt +++ b/gcc/config/avr/avr.opt @@ -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. |