]>
Commit | Line | Data |
---|---|---|
5a41973c RS |
1 | ; Options for the ATMEL AVR port of the compiler. |
2 | ||
aeee4812 | 3 | ; Copyright (C) 2005-2023 Free Software Foundation, Inc. |
5a41973c RS |
4 | ; |
5 | ; This file is part of GCC. | |
6 | ; | |
7 | ; GCC is free software; you can redistribute it and/or modify it under | |
8 | ; the terms of the GNU General Public License as published by the Free | |
2f83c7d6 | 9 | ; Software Foundation; either version 3, or (at your option) any later |
5a41973c RS |
10 | ; version. |
11 | ; | |
12 | ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
13 | ; WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 | ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 | ; for more details. | |
16 | ; | |
17 | ; You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
18 | ; along with GCC; see the file COPYING3. If not see |
19 | ; <http://www.gnu.org/licenses/>. | |
5a41973c RS |
20 | |
21 | mcall-prologues | |
eece52b5 | 22 | Target Mask(CALL_PROLOGUES) |
a7b2e184 | 23 | Use subroutines for function prologues and epilogues. |
5a41973c RS |
24 | |
25 | mmcu= | |
4a2caf6c | 26 | Target RejectNegative Joined Var(avr_mmcu) MissingArgError(missing device or architecture after %qs) |
a7b2e184 | 27 | -mmcu=MCU Select the target MCU. |
5a41973c | 28 | |
63866e04 | 29 | mgas-isr-prologues |
eece52b5 | 30 | Target Var(avr_gasisr_prologues) UInteger Init(0) |
63866e04 GJL |
31 | Allow usage of __gcc_isr pseudo instructions in ISR prologues and epilogues. |
32 | ||
f9d29866 JR |
33 | mn-flash= |
34 | Target RejectNegative Joined Var(avr_n_flash) UInteger Init(-1) | |
a7b2e184 | 35 | Set the number of 64 KiB flash segments. |
f9d29866 JR |
36 | |
37 | mskip-bug | |
eece52b5 | 38 | Target Mask(SKIP_BUG) |
a7b2e184 | 39 | Indicate presence of a processor erratum. |
f9d29866 JR |
40 | |
41 | mrmw | |
eece52b5 | 42 | Target Mask(RMW) |
a7b2e184 | 43 | Enable Read-Modify-Write (RMW) instructions support/use. |
f9d29866 | 44 | |
5a41973c | 45 | mdeb |
eece52b5 | 46 | Target Undocumented Mask(ALL_DEBUG) |
5a41973c | 47 | |
6c7dfafe GJL |
48 | mlog= |
49 | Target RejectNegative Joined Undocumented Var(avr_log_details) | |
50 | ||
3266ddb3 | 51 | mshort-calls |
eece52b5 | 52 | Target RejectNegative Mask(SHORT_CALLS) |
3266ddb3 GJL |
53 | Use RJMP / RCALL even though CALL / JMP are available. |
54 | ||
5a41973c | 55 | mint8 |
eece52b5 | 56 | Target Mask(INT8) |
a7b2e184 | 57 | Use an 8-bit 'int' type. |
5a41973c RS |
58 | |
59 | mno-interrupts | |
eece52b5 | 60 | Target RejectNegative Mask(NO_INTERRUPTS) |
a7b2e184 | 61 | Change the stack pointer without disabling interrupts. |
5a41973c | 62 | |
f1f59bc7 | 63 | mbranch-cost= |
eece52b5 | 64 | Target Joined RejectNegative UInteger Var(avr_branch_cost) Init(0) |
f1f59bc7 GJL |
65 | Set the branch costs for conditional branch instructions. Reasonable values are small, non-negative integers. The default branch cost is 0. |
66 | ||
dcbe9170 | 67 | mmain-is-OS_task |
eece52b5 | 68 | Target Mask(MAIN_IS_OS_TASK) |
dcbe9170 GJL |
69 | Treat main as if it had attribute OS_task. |
70 | ||
5a41973c | 71 | morder1 |
eece52b5 | 72 | Target Undocumented Mask(ORDER_1) |
5a41973c RS |
73 | |
74 | morder2 | |
eece52b5 | 75 | Target Undocumented Mask(ORDER_2) |
5a41973c | 76 | |
5a41973c | 77 | mtiny-stack |
eece52b5 | 78 | Target Mask(TINY_STACK) |
a7b2e184 | 79 | Change only the low 8 bits of the stack pointer. |
2e152e16 AS |
80 | |
81 | mrelax | |
eece52b5 | 82 | Target |
a7b2e184 | 83 | Relax branches. |
2e152e16 AS |
84 | |
85 | mpmem-wrap-around | |
eece52b5 | 86 | Target |
d8a07487 | 87 | Make the linker relaxation machine assume that a program counter wrap-around occurs. |
e8ac5ac9 | 88 | |
d702f362 | 89 | maccumulate-args |
eece52b5 | 90 | Target Mask(ACCUMULATE_OUTGOING_ARGS) |
bd2c6270 | 91 | Accumulate outgoing function arguments and acquire/release the needed stack space for outgoing function arguments in function prologue/epilogue. Without this option, outgoing arguments are pushed before calling a function and popped afterwards. This option can lead to reduced code size for functions that call many functions that get their arguments on the stack like, for example printf. |
d702f362 | 92 | |
e8ac5ac9 | 93 | mstrict-X |
eece52b5 | 94 | Target Var(avr_strict_X) Init(0) |
e8ac5ac9 | 95 | When accessing RAM, use X as imposed by the hardware, i.e. just use pre-decrement, post-increment and indirect addressing with the X register. Without this option, the compiler may assume that there is an addressing mode X+const similar to Y+const and Z+const and emit instructions to emulate such an addressing mode for X. |
7fd6378e GJL |
96 | |
97 | ;; For rationale behind -msp8 see explanation in avr.h. | |
98 | msp8 | |
eece52b5 | 99 | Target RejectNegative Var(avr_sp8) Init(0) |
621dfb1e | 100 | The device has no SPH special function register. This option will be overridden by the compiler driver with the correct setting if presence/absence of SPH can be deduced from -mmcu=MCU. |
f22e3c85 GJL |
101 | |
102 | Waddr-space-convert | |
eece52b5 | 103 | Warning C Var(avr_warn_addr_space_convert) Init(0) |
283045c0 | 104 | Warn if the address space of an address is changed. |
67518c93 | 105 | |
22fba352 | 106 | Wmisspelled-isr |
eece52b5 | 107 | Warning C C++ Var(avr_warn_misspelled_isr) Init(1) |
22fba352 PS |
108 | Warn if the ISR is misspelled, i.e. without __vector prefix. Enabled by default. |
109 | ||
67518c93 | 110 | mfract-convert-truncate |
eece52b5 | 111 | Target Mask(FRACT_CONV_TRUNC) |
0f0f4f91 | 112 | Allow to use truncation instead of rounding towards zero for fractional fixed-point types. |
076d86f3 | 113 | |
d97cca4a | 114 | mabsdata |
eece52b5 | 115 | Target Mask(ABSDATA) |
d97cca4a GJL |
116 | Assume that all data in static storage can be accessed by LDS / STS. This option is only useful for reduced Tiny devices. |
117 | ||
29f3def3 | 118 | mdouble= |
eece52b5 | 119 | Target Joined RejectNegative Var(avr_double) Init(0) Enum(avr_bits_e) |
8e02ca9f | 120 | -mdouble=<BITS> Use <BITS> bits wide double type. |
29f3def3 GJL |
121 | |
122 | mlong-double= | |
eece52b5 | 123 | Target Joined RejectNegative Var(avr_long_double) Init(0) Enum(avr_bits_e) |
8e02ca9f | 124 | -mlong-double=<BITS> Use <BITS> bits wide long double type. |
29f3def3 | 125 | |
076d86f3 | 126 | nodevicelib |
eece52b5 | 127 | Driver Target RejectNegative |
a7b2e184 | 128 | Do not link against the device-specific library lib<MCU>.a. |
29f3def3 | 129 | |
e3e131c9 | 130 | nodevicespecs |
eece52b5 | 131 | Driver Target RejectNegative |
e3e131c9 GJL |
132 | Do not use the device-specific specs file device-specs/specs-<MCU>. |
133 | ||
29f3def3 GJL |
134 | Enum |
135 | Name(avr_bits_e) Type(int) | |
136 | Available BITS selections: | |
137 | ||
138 | EnumValue | |
139 | Enum(avr_bits_e) String(32) Value(32) | |
140 | ||
141 | EnumValue | |
142 | Enum(avr_bits_e) String(64) Value(64) |