xref: /netbsd-src/external/gpl3/gcc/dist/gcc/config/avr/avr.opt (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
1; Options for the ATMEL AVR port of the compiler.
2
3; Copyright (C) 2005-2022 Free Software Foundation, Inc.
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
9; Software Foundation; either version 3, or (at your option) any later
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
18; along with GCC; see the file COPYING3.  If not see
19; <http://www.gnu.org/licenses/>.
20
21mcall-prologues
22Target Mask(CALL_PROLOGUES)
23Use subroutines for function prologues and epilogues.
24
25mmcu=
26Target RejectNegative Joined Var(avr_mmcu) MissingArgError(missing device or architecture after %qs)
27-mmcu=MCU	Select the target MCU.
28
29mgas-isr-prologues
30Target Var(avr_gasisr_prologues) UInteger Init(0) Optimization
31Allow usage of __gcc_isr pseudo instructions in ISR prologues and epilogues.
32
33mn-flash=
34Target RejectNegative Joined Var(avr_n_flash) UInteger Init(-1)
35Set the number of 64 KiB flash segments.
36
37mskip-bug
38Target Mask(SKIP_BUG)
39Indicate presence of a processor erratum.
40
41mrmw
42Target Mask(RMW)
43Enable Read-Modify-Write (RMW) instructions support/use.
44
45mdeb
46Target Undocumented Mask(ALL_DEBUG)
47
48mlog=
49Target RejectNegative Joined Undocumented Var(avr_log_details)
50
51mshort-calls
52Target RejectNegative Mask(SHORT_CALLS)
53Use RJMP / RCALL even though CALL / JMP are available.
54
55mint8
56Target Mask(INT8)
57Use an 8-bit 'int' type.
58
59mno-interrupts
60Target RejectNegative Mask(NO_INTERRUPTS)
61Change the stack pointer without disabling interrupts.
62
63mbranch-cost=
64Target Joined RejectNegative UInteger Var(avr_branch_cost) Init(0) Optimization
65Set the branch costs for conditional branch instructions.  Reasonable values are small, non-negative integers.  The default branch cost is 0.
66
67mmain-is-OS_task
68Target Mask(MAIN_IS_OS_TASK) Optimization
69Treat main as if it had attribute OS_task.
70
71morder1
72Target Undocumented Mask(ORDER_1)
73
74morder2
75Target Undocumented Mask(ORDER_2)
76
77mtiny-stack
78Target Mask(TINY_STACK)
79Change only the low 8 bits of the stack pointer.
80
81mrelax
82Target
83Relax branches.
84
85mpmem-wrap-around
86Target
87Make the linker relaxation machine assume that a program counter wrap-around occurs.
88
89maccumulate-args
90Target Mask(ACCUMULATE_OUTGOING_ARGS)
91Accumulate 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.
92
93mstrict-X
94Target Var(avr_strict_X) Init(0)
95When 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.
96
97;; For rationale behind -msp8 see explanation in avr.h.
98msp8
99Target RejectNegative Var(avr_sp8) Init(0)
100The 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.
101
102Waddr-space-convert
103Warning C Var(avr_warn_addr_space_convert) Init(0)
104Warn if the address space of an address is changed.
105
106Wmisspelled-isr
107Warning C C++ Var(avr_warn_misspelled_isr) Init(1)
108Warn if the ISR is misspelled, i.e. without __vector prefix. Enabled by default.
109
110mfract-convert-truncate
111Target Mask(FRACT_CONV_TRUNC)
112Allow to use truncation instead of rounding towards zero for fractional fixed-point types.
113
114mabsdata
115Target Mask(ABSDATA)
116Assume that all data in static storage can be accessed by LDS / STS.  This option is only useful for reduced Tiny devices.
117
118mdouble=
119Target Joined RejectNegative Var(avr_double) Init(0) Enum(avr_bits_e) Save
120-mdouble=<BITS>	Use <BITS> bits wide double type.
121
122mlong-double=
123Target Joined RejectNegative Var(avr_long_double) Init(0) Enum(avr_bits_e) Save
124-mlong-double=<BITS>	Use <BITS> bits wide long double type.
125
126nodevicelib
127Driver Target RejectNegative
128Do not link against the device-specific library lib<MCU>.a.
129
130nodevicespecs
131Driver Target RejectNegative
132Do not use the device-specific specs file device-specs/specs-<MCU>.
133
134Enum
135Name(avr_bits_e) Type(int)
136Available BITS selections:
137
138EnumValue
139Enum(avr_bits_e) String(32)  Value(32)
140
141EnumValue
142Enum(avr_bits_e) String(64) Value(64)
143