diff options
author | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-01 15:35:45 +0000 |
---|---|---|
committer | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-01 15:35:45 +0000 |
commit | 6db2e6e8fe8d3c50eb3d1c55e536de5f8af91ea0 (patch) | |
tree | 4a836a2847b3417e0b24a839b4a24c0ba6128fd1 /gcc/config/avr/avr-c.c | |
parent | a586403865b31d61537705da2d17a7fb10804c40 (diff) | |
download | gcc-6db2e6e8fe8d3c50eb3d1c55e536de5f8af91ea0.tar.gz |
* config/avr/avr.h (mcu_type_s): Add errata_skip field.
* config/avr/avr-devices.c (avr_mcu_types): Use it.
* config/avr/avr-mcus.def (AVR_MCU): Use it.
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
* config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
to detect if XJMP must not be skipped.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177049 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/avr/avr-c.c')
-rw-r--r-- | gcc/config/avr/avr-c.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/config/avr/avr-c.c b/gcc/config/avr/avr-c.c index aa1a51e538b..abe25ab590e 100644 --- a/gcc/config/avr/avr-c.c +++ b/gcc/config/avr/avr-c.c @@ -82,6 +82,14 @@ avr_cpu_cpp_builtins (struct cpp_reader *pfile) if (TARGET_NO_INTERRUPTS) cpp_define (pfile, "__NO_INTERRUPTS__"); + if (avr_current_device->errata_skip) + { + cpp_define (pfile, "__AVR_ERRATA_SKIP__"); + + if (avr_current_arch->have_jmp_call) + cpp_define (pfile, "__AVR_ERRATA_SKIP_JMP_CALL__"); + } + /* Define builtin macros so that the user can easily query if or if not a specific builtin is available. */ |