Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/avr/avr.h @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* Definitions of target machine for GNU compiler, | 1 /* Definitions of target machine for GNU compiler, |
2 for ATMEL AVR at90s8515, ATmega103/103L, ATmega603/603L microcontrollers. | 2 for ATMEL AVR at90s8515, ATmega103/103L, ATmega603/603L microcontrollers. |
3 Copyright (C) 1998-2018 Free Software Foundation, Inc. | 3 Copyright (C) 1998-2020 Free Software Foundation, Inc. |
4 Contributed by Denis Chertykov (chertykov@gmail.com) | 4 Contributed by Denis Chertykov (chertykov@gmail.com) |
5 | 5 |
6 This file is part of GCC. | 6 This file is part of GCC. |
7 | 7 |
8 GCC is free software; you can redistribute it and/or modify | 8 GCC is free software; you can redistribute it and/or modify |
105 | 105 |
106 #define BITS_BIG_ENDIAN 0 | 106 #define BITS_BIG_ENDIAN 0 |
107 #define BYTES_BIG_ENDIAN 0 | 107 #define BYTES_BIG_ENDIAN 0 |
108 #define WORDS_BIG_ENDIAN 0 | 108 #define WORDS_BIG_ENDIAN 0 |
109 | 109 |
110 #define FLOAT_LIB_COMPARE_RETURNS_BOOL(mode, comparison) \ | |
111 avr_float_lib_compare_returns_bool (mode, comparison) | |
112 | |
110 #ifdef IN_LIBGCC2 | 113 #ifdef IN_LIBGCC2 |
111 /* This is to get correct SI and DI modes in libgcc2.c (32 and 64 bits). */ | 114 /* This is to get correct SI and DI modes in libgcc2.c (32 and 64 bits). */ |
112 #define UNITS_PER_WORD 4 | 115 #define UNITS_PER_WORD 4 |
113 #else | 116 #else |
114 /* Width of a word, in units (bytes). */ | 117 /* Width of a word, in units (bytes). */ |
138 #define INT_TYPE_SIZE (TARGET_INT8 ? 8 : 16) | 141 #define INT_TYPE_SIZE (TARGET_INT8 ? 8 : 16) |
139 #define SHORT_TYPE_SIZE (INT_TYPE_SIZE == 8 ? INT_TYPE_SIZE : 16) | 142 #define SHORT_TYPE_SIZE (INT_TYPE_SIZE == 8 ? INT_TYPE_SIZE : 16) |
140 #define LONG_TYPE_SIZE (INT_TYPE_SIZE == 8 ? 16 : 32) | 143 #define LONG_TYPE_SIZE (INT_TYPE_SIZE == 8 ? 16 : 32) |
141 #define LONG_LONG_TYPE_SIZE (INT_TYPE_SIZE == 8 ? 32 : 64) | 144 #define LONG_LONG_TYPE_SIZE (INT_TYPE_SIZE == 8 ? 32 : 64) |
142 #define FLOAT_TYPE_SIZE 32 | 145 #define FLOAT_TYPE_SIZE 32 |
143 #define DOUBLE_TYPE_SIZE 32 | 146 #define DOUBLE_TYPE_SIZE (avr_double) |
144 #define LONG_DOUBLE_TYPE_SIZE 32 | 147 #define LONG_DOUBLE_TYPE_SIZE (avr_long_double) |
148 | |
145 #define LONG_LONG_ACCUM_TYPE_SIZE 64 | 149 #define LONG_LONG_ACCUM_TYPE_SIZE 64 |
146 | 150 |
147 #define DEFAULT_SIGNED_CHAR 1 | 151 #define DEFAULT_SIGNED_CHAR 1 |
148 | 152 |
149 #define SIZE_TYPE (INT_TYPE_SIZE == 8 ? "long unsigned int" : "unsigned int") | 153 #define SIZE_TYPE (INT_TYPE_SIZE == 8 ? "long unsigned int" : "unsigned int") |
505 | 509 |
506 #define ADJUST_INSN_LENGTH(INSN, LENGTH) \ | 510 #define ADJUST_INSN_LENGTH(INSN, LENGTH) \ |
507 (LENGTH = avr_adjust_insn_length (INSN, LENGTH)) | 511 (LENGTH = avr_adjust_insn_length (INSN, LENGTH)) |
508 | 512 |
509 extern const char *avr_devicespecs_file (int, const char**); | 513 extern const char *avr_devicespecs_file (int, const char**); |
510 | 514 extern const char *avr_double_lib (int, const char**); |
511 #define EXTRA_SPEC_FUNCTIONS \ | 515 |
516 #define EXTRA_SPEC_FUNCTIONS \ | |
517 { "double-lib", avr_double_lib }, \ | |
512 { "device-specs-file", avr_devicespecs_file }, | 518 { "device-specs-file", avr_devicespecs_file }, |
513 | 519 |
514 /* Driver self specs has lmited functionality w.r.t. '%s' for dynamic specs. | 520 /* Driver self specs has lmited functionality w.r.t. '%s' for dynamic specs. |
515 Apply '%s' to a static string to inflate the file (directory) name which | 521 Apply '%s' to a static string to inflate the file (directory) name which |
516 is used to diagnose problems with reading the specs file. */ | 522 is used to diagnose problems with reading the specs file. */ |
517 | 523 |
518 #undef DRIVER_SELF_SPECS | 524 #undef DRIVER_SELF_SPECS |
519 #define DRIVER_SELF_SPECS \ | 525 #define DRIVER_SELF_SPECS \ |
526 " %:double-lib(%{m*:m%*})" \ | |
520 " %:device-specs-file(device-specs%s %{mmcu=*:%*})" | 527 " %:device-specs-file(device-specs%s %{mmcu=*:%*})" |
521 | 528 |
522 /* No libstdc++ for now. Empty string doesn't work. */ | 529 /* No libstdc++ for now. Empty string doesn't work. */ |
523 #define LIBSTDCXX "gcc" | 530 #define LIBSTDCXX "gcc" |
524 | 531 |