]>
Commit | Line | Data |
---|---|---|
4b95cf5c | 1 | @c Copyright (C) 2010-2014 Free Software Foundation, Inc. |
40b36596 JM |
2 | @c This is part of the GAS manual. |
3 | @c For copying conditions, see the file as.texinfo. | |
2a633939 | 4 | @c man end |
40b36596 JM |
5 | @ifset GENERIC |
6 | @page | |
7 | @node TIC6X-Dependent | |
8 | @chapter TIC6X Dependent Features | |
9 | @end ifset | |
10 | @ifclear GENERIC | |
11 | @node Machine Dependencies | |
12 | @chapter TIC6X Dependent Features | |
13 | @end ifclear | |
14 | ||
15 | @cindex TIC6X support | |
16 | @cindex TMS320C6X support | |
17 | @menu | |
18 | * TIC6X Options:: Options | |
19 | * TIC6X Syntax:: Syntax | |
20 | * TIC6X Directives:: Directives | |
21 | @end menu | |
22 | ||
23 | @node TIC6X Options | |
24 | @section TIC6X Options | |
25 | @cindex TIC6X options | |
26 | @cindex options for TIC6X | |
27 | ||
2a633939 JM |
28 | @c man begin OPTIONS |
29 | @table @gcctabopt | |
40b36596 JM |
30 | |
31 | @cindex @code{-march=} command line option, TIC6X | |
32 | @item -march=@var{arch} | |
33 | Enable (only) instructions from architecture @var{arch}. By default, | |
34 | all instructions are permitted. | |
35 | ||
36 | The following values of @var{arch} are accepted: @code{c62x}, | |
37 | @code{c64x}, @code{c64x+}, @code{c67x}, @code{c67x+}, @code{c674x}. | |
38 | ||
b5593623 JM |
39 | @cindex @code{-mdsbt} command line option, TIC6X |
40 | @cindex @code{-mno-dsbt} command line option, TIC6X | |
41 | @item -mdsbt | |
42 | @itemx -mno-dsbt | |
43 | The @option{-mdsbt} option causes the assembler to generate the | |
44 | @code{Tag_ABI_DSBT} attribute with a value of 1, indicating that the | |
45 | code is using DSBT addressing. The @option{-mno-dsbt} option, the | |
46 | default, causes the tag to have a value of 0, indicating that the code | |
47 | does not use DSBT addressing. The linker will emit a warning if | |
48 | objects of different type (DSBT and non-DSBT) are linked together. | |
49 | ||
87779176 JM |
50 | @cindex @code{-mpid=} command line option, TIC6X |
51 | @item -mpid=no | |
52 | @itemx -mpid=near | |
53 | @itemx -mpid=far | |
54 | The @option{-mpid=} option causes the assembler to generate the | |
55 | @code{Tag_ABI_PID} attribute with a value indicating the form of data | |
56 | addressing used by the code. @option{-mpid=no}, the default, | |
57 | indicates position-dependent data addressing, @option{-mpid=near} | |
58 | indicates position-independent addressing with GOT accesses using near | |
59 | DP addressing, and @option{-mpid=far} indicates position-independent | |
60 | addressing with GOT accesses using far DP addressing. The linker will | |
61 | emit a warning if objects built with different settings of this option | |
62 | are linked together. | |
63 | ||
64 | @cindex @code{-mpic} command line option, TIC6X | |
65 | @cindex @code{-mno-pic} command line option, TIC6X | |
66 | @item -mpic | |
67 | @itemx -mno-pic | |
68 | The @option{-mpic} option causes the assembler to generate the | |
69 | @code{Tag_ABI_PIC} attribute with a value of 1, indicating that the | |
70 | code is using position-independent code addressing, The | |
71 | @code{-mno-pic} option, the default, causes the tag to have a value of | |
72 | 0, indicating position-dependent code addressing. The linker will | |
73 | emit a warning if objects of different type (position-dependent and | |
74 | position-independent) are linked together. | |
75 | ||
40b36596 JM |
76 | @cindex TIC6X big-endian output |
77 | @cindex TIC6X little-endian output | |
78 | @cindex big-endian output, TIC6X | |
79 | @cindex little-endian output, TIC6X | |
80 | @item -mbig-endian | |
81 | @itemx -mlittle-endian | |
82 | Generate code for the specified endianness. The default is | |
83 | little-endian. | |
84 | ||
85 | @end table | |
2a633939 | 86 | @c man end |
40b36596 JM |
87 | |
88 | @node TIC6X Syntax | |
89 | @section TIC6X Syntax | |
90 | ||
91 | @cindex line comment character, TIC6X | |
92 | @cindex TIC6X line comment character | |
93 | The presence of a @samp{;} on a line indicates the start of a comment | |
94 | that extends to the end of the current line. If a @samp{#} or | |
95 | @samp{*} appears as the first character of a line, the whole line is | |
7c31ae13 NC |
96 | treated as a comment. Note that if a line starts with a @samp{#} |
97 | character then it can also be a logical line number directive | |
98 | (@pxref{Comments}) or a preprocessor control command | |
99 | (@pxref{Preprocessing}). | |
40b36596 JM |
100 | |
101 | @cindex line separator, TIC6X | |
102 | @cindex statement separator, TIC6X | |
103 | @cindex TIC6X line separator | |
104 | The @samp{@@} character can be used instead of a newline to separate | |
105 | statements. | |
106 | ||
107 | Instruction, register and functional unit names are case-insensitive. | |
108 | @command{@value{AS}} requires fully-specified functional unit names, | |
109 | such as @samp{.S1}, @samp{.L1X} or @samp{.D1T2}, on all instructions | |
110 | using a functional unit. | |
111 | ||
112 | For some instructions, there may be syntactic ambiguity between | |
113 | register or functional unit names and the names of labels or other | |
114 | symbols. To avoid this, enclose the ambiguous symbol name in | |
115 | parentheses; register and functional unit names may not be enclosed in | |
116 | parentheses. | |
117 | ||
118 | @node TIC6X Directives | |
119 | @section TIC6X Directives | |
120 | ||
121 | @cindex machine directives, TIC6X | |
122 | @cindex TIC6X machine directives | |
123 | ||
124 | Directives controlling the set of instructions accepted by the | |
125 | assembler have effect for instructions between the directive and any | |
126 | subsequent directive overriding it. | |
127 | ||
128 | @table @code | |
129 | ||
130 | @cindex @code{.arch} directive, TIC6X | |
131 | @item .arch @var{arch} | |
132 | This has the same effect as @option{-march=@var{arch}}. | |
133 | ||
1bce6bd8 PB |
134 | @cindex @code{.cantunwind} directive, TIC6X |
135 | @item .cantunwind | |
136 | Prevents unwinding through the current function. No personality routine | |
137 | or exception table data is required or permitted. | |
138 | ||
139 | If this is not specified then frame unwinding information will be | |
140 | constructed from CFI directives. @pxref{CFI directives}. | |
141 | ||
8a0344f6 JM |
142 | @cindex @code{.c6xabi_attribute} directive, TIC6X |
143 | @item .c6xabi_attribute @var{tag}, @var{value} | |
144 | Set the C6000 EABI build attribute @var{tag} to @var{value}. | |
145 | ||
b5593623 | 146 | The @var{tag} is either an attribute number or one of |
87779176 JM |
147 | @code{Tag_ISA}, @code{Tag_ABI_wchar_t}, |
148 | @code{Tag_ABI_stack_align_needed}, | |
149 | @code{Tag_ABI_stack_align_preserved}, @code{Tag_ABI_DSBT}, | |
150 | @code{Tag_ABI_PID}, @code{Tag_ABI_PIC}, | |
151 | @code{TAG_ABI_array_object_alignment}, | |
152 | @code{TAG_ABI_array_object_align_expected}, | |
153 | @code{Tag_ABI_compatibility} and @code{Tag_ABI_conformance}. The | |
b5593623 JM |
154 | @var{value} is either a @code{number}, @code{"string"}, or |
155 | @code{number, "string"} depending on the tag. | |
8a0344f6 | 156 | |
2fbb87f6 PB |
157 | @cindex @code{.ehtype} directive, TIC6X |
158 | @item .ehtype @var{symbol} | |
159 | Output an exception type table reference to @var{symbol}. | |
160 | ||
1bce6bd8 PB |
161 | @cindex @code{.endp} directive, TIC6X |
162 | @item .endp | |
163 | Marks the end of and exception table or function. If preceeded by a | |
164 | @code{.handlerdata} directive then this also switched back to the previous | |
165 | text section. | |
166 | ||
167 | @cindex @code{.handlerdata} directive, TIC6X | |
168 | @item .handlerdata | |
169 | Marks the end of the current function, and the start of the exception table | |
170 | entry for that function. Anything between this directive and the | |
171 | @code{.endp} directive will be added to the exception table entry. | |
172 | ||
173 | Must be preceded by a CFI block containing a @code{.cfi_lsda} directive. | |
1bce6bd8 | 174 | |
40b36596 JM |
175 | @cindex @code{.nocmp} directive, TIC6X |
176 | @item .nocmp | |
177 | Disallow use of C64x+ compact instructions in the current text | |
178 | section. | |
179 | ||
1bce6bd8 PB |
180 | @cindex @code{.personalityindex} directive, TIC6X |
181 | @item .personalityindex @var{index} | |
34bca508 | 182 | Sets the personality routine for the current function to the ABI specified |
1bce6bd8 PB |
183 | compact routine number @var{index} |
184 | ||
185 | @cindex @code{.personality} directive, TIC6X | |
186 | @item .personality @var{name} | |
187 | Sets the personality routine for the current function to @var{name}. | |
188 | ||
ac145307 BS |
189 | @cindex @code{.scomm} directive, TIC6X |
190 | @item .scomm @var{symbol}, @var{size}, @var{align} | |
191 | Like @code{.comm}, creating a common symbol @var{symbol} with size @var{size} | |
192 | and alignment @var{align}, but unlike when using @code{.comm}, this symbol | |
193 | will be placed into the small BSS section by the linker. | |
194 | ||
40b36596 | 195 | @end table |