[binutils, ARM, 11/16] New BFCSEL instruction for Armv8.1-M Mainline
[binutils-gdb.git] / gas / doc / c-csky.texi
blob94abcaa4c9edfd07e0499f4faa26f29bd5a53069
1 @c Copyright (C) 2012-2019 Free Software Foundation, Inc.
2 @c This is part of the GAS manual.
3 @c For copying conditions, see the file as.texinfo.
4 @c man end
5 @ifset GENERIC
6 @page
7 @node C-SKY-Dependent
8 @chapter C-SKY Dependent Features
9 @end ifset
10 @ifclear GENERIC
11 @node Machine Dependencies
12 @chapter C-SKY Dependent Features
13 @end ifclear
15 @cindex C-SKY support
16 @menu
17 * C-SKY Options::              Options
18 * C-SKY Syntax::               Syntax
19 @end menu
21 @node C-SKY Options
22 @section Options
23 @cindex C-SKY options
24 @cindex options for C-SKY
26 @c man begin OPTIONS
27 @table @gcctabopt
29 @cindex @code{march} command-line option, C-SKY
30 @item -march=@var{archname}
31 Assemble for architecture @var{archname}.  The @option{--help} option
32 lists valid values for @var{archname}.
34 @cindex @code{mcpu} command-line option, C-SKY
35 @item -mcpu=@var{cpuname}
36 Assemble for architecture @var{cpuname}.  The @option{--help} option
37 lists valid values for @var{cpuname}.
39 @cindex @code{EL} command-line option, C-SKY
40 @cindex @code{mlittle-endian} command-line option, C-SKY
41 @item -EL
42 @itemx -mlittle-endian
43 Generate little-endian output.
45 @cindex @code{EB} command-line option, C-SKY
46 @cindex @code{mbig-endian} command-line option, C-SKY
47 @item -EB
48 @itemx -mbig-endian
49 Generate big-endian output.
51 @cindex @code{fpic} command-line option, C-SKY
52 @cindex @code{pic} command-line option, C-SKY
53 @item -fpic
54 @itemx -pic
55 Generate position-independent code.
57 @cindex @code{mljump} command-line option, C-SKY
58 @cindex @code{mno-ljump} command-line option, C-SKY
59 @item -mljump
60 @itemx -mno-ljump
61 Enable/disable transformation of the short branch instructions
62 @code{jbf}, @code{jbt}, and @code{jbr} to @code{jmpi}.
63 This option is for V2 processors only.
64 It is ignored on CK801 and CK802 targets, which do not support the @code{jmpi}
65 instruction, and is enabled by default for other processors.
67 @cindex @code{mbranch-stub} command-line option, C-SKY
68 @cindex @code{mno-branch-stub} command-line option, C-SKY
69 @item -mbranch-stub
70 @itemx -mno-branch-stub
71 Pass through @code{R_CKCORE_PCREL_IMM26BY2} relocations for @code{bsr}
72 instructions to the linker.
74 This option is only available for bare-metal C-SKY V2 ELF targets,
75 where it is enabled by default.  It cannot be used in code that will be
76 dynamically linked against shared libraries.
78 @cindex @code{force2bsr} command-line option, C-SKY
79 @cindex @code{mforce2bsr} command-line option, C-SKY
80 @cindex @code{no-force2bsr} command-line option, C-SKY
81 @cindex @code{mno-force2bsr} command-line option, C-SKY
82 @item -force2bsr
83 @itemx -mforce2bsr
84 @itemx -no-force2bsr
85 @itemx -mno-force2bsr
86 Enable/disable transformation of @code{jbsr} instructions to @code{bsr}.
87 This option is always enabled (and @option{-mno-force2bsr} is ignored)
88 for CK801/CK802 targets.  It is also always enabled when
89 @option{-mbranch-stub} is in effect.
91 @cindex @code{jsri2bsr} command-line option, C-SKY
92 @cindex @code{mjsri2bsr} command-line option, C-SKY
93 @cindex @code{no-jsri2bsr} command-line option, C-SKY
94 @cindex @code{mno-jsri2bsr} command-line option, C-SKY
95 @item -jsri2bsr
96 @itemx -mjsri2bsr
97 @itemx -no-jsri2bsr
98 @itemx -mno-jsri2bsr
99 Enable/disable transformation of @code{jsri} instructions to @code{bsr}.
100 This option is enabled by default.
102 @cindex @code{mnolrw} command-line option, C-SKY
103 @cindex @code{mno-lrw} command-line option, C-SKY
104 @item -mnolrw
105 @itemx -mno-lrw
106 Enable/disable transformation of @code{lrw} instructions into a
107 @code{movih}/@code{ori} pair.
109 @cindex @code{melrw} command-line option, C-SKY
110 @cindex @code{mno-elrw} command-line option, C-SKY
111 @item -melrw
112 @itemx -mno-elrw
113 Enable/disable extended @code{lrw} instructions.
114 This option is enabled by default for CK800-series processors.
116 @cindex @code{mlaf} command-line option, C-SKY
117 @cindex @code{mliterals-after-func} command-line option, C-SKY
118 @cindex @code{mno-laf} command-line option, C-SKY
119 @cindex @code{mno-literals-after-func} command-line option, C-SKY
120 @item -mlaf
121 @itemx -mliterals-after-func
122 @itemx -mno-laf
123 @itemx -mno-literals-after-func
124 Enable/disable placement of literal pools after each function.
126 @cindex @code{mlabr} command-line option, C-SKY
127 @cindex @code{mliterals-after-br} command-line option, C-SKY
128 @cindex @code{mno-labr} command-line option, C-SKY
129 @cindex @code{mnoliterals-after-br} command-line option, C-SKY
130 @item -mlabr
131 @itemx -mliterals-after-br
132 @itemx -mno-labr
133 @itemx -mnoliterals-after-br
134 Enable/disable placement of literal pools after unconditional branches.
135 This option is enabled by default.
137 @cindex @code{mistack} command-line option, C-SKY
138 @cindex @code{mno-istack} command-line option, C-SKY
139 @item -mistack
140 @itemx -mno-istack
141 Enable/disable interrupt stack instructions.  This option is enabled by
142 default on CK801, CK802, and CK802 processors.
144 @end table
146 The following options explicitly enable certain optional instructions.
147 These features are also enabled implicitly by using @code{-mcpu=} to specify
148 a processor that supports it.
150 @table @gcctabopt
151 @cindex @code{mhard-float} command-line option, C-SKY
152 @item -mhard-float
153 Enable hard float instructions.
155 @cindex @code{mmp} command-line option, C-SKY
156 @item -mmp
157 Enable multiprocessor instructions.
159 @cindex @code{mcp} command-line option, C-SKY
160 @item -mcp
161 Enable coprocessor instructions.
163 @cindex @code{mcache} command-line option, C-SKY
164 @item -mcache
165 Enable cache prefetch instruction.
167 @cindex @code{msecurity} command-line option, C-SKY
168 @item -msecurity
169 Enable C-SKY security instructions.
171 @cindex @code{mtrust} command-line option, C-SKY
172 @item -mtrust
173 Enable C-SKY trust instructions.
175 @cindex @code{mdsp} command-line option, C-SKY
176 @item -mdsp
177 Enable DSP instructions.
179 @cindex @code{medsp} command-line option, C-SKY
180 @item -medsp
181 Enable enhanced DSP instructions.
183 @cindex @code{mvdsp} command-line option, C-SKY
184 @item -mvdsp
185 Enable vector DSP instructions.
187 @end table
188 @c man end
190 @node C-SKY Syntax
191 @section Syntax
193 @code{@value{AS}} implements the standard C-SKY assembler syntax
194 documented in the
195 @cite{C-SKY V2 CPU Applications Binary Interface Standards Manual}.