summaryrefslogtreecommitdiff
path: root/gcc/config/avr/avr-c.c
diff options
context:
space:
mode:
authorgjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-01 15:35:45 +0000
committergjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-01 15:35:45 +0000
commit6db2e6e8fe8d3c50eb3d1c55e536de5f8af91ea0 (patch)
tree4a836a2847b3417e0b24a839b4a24c0ba6128fd1 /gcc/config/avr/avr-c.c
parenta586403865b31d61537705da2d17a7fb10804c40 (diff)
downloadgcc-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.c8
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. */