]>
Commit | Line | Data |
---|---|---|
40b36596 JM |
1 | @c Copyright 2010 Free Software Foundation, Inc. |
2 | @c This is part of the GAS manual. | |
3 | @c For copying conditions, see the file as.texinfo. | |
4 | @ifset GENERIC | |
5 | @page | |
6 | @node TIC6X-Dependent | |
7 | @chapter TIC6X Dependent Features | |
8 | @end ifset | |
9 | @ifclear GENERIC | |
10 | @node Machine Dependencies | |
11 | @chapter TIC6X Dependent Features | |
12 | @end ifclear | |
13 | ||
14 | @cindex TIC6X support | |
15 | @cindex TMS320C6X support | |
16 | @menu | |
17 | * TIC6X Options:: Options | |
18 | * TIC6X Syntax:: Syntax | |
19 | * TIC6X Directives:: Directives | |
20 | @end menu | |
21 | ||
22 | @node TIC6X Options | |
23 | @section TIC6X Options | |
24 | @cindex TIC6X options | |
25 | @cindex options for TIC6X | |
26 | ||
27 | @table @code | |
28 | ||
29 | @cindex @code{-march=} command line option, TIC6X | |
30 | @item -march=@var{arch} | |
31 | Enable (only) instructions from architecture @var{arch}. By default, | |
32 | all instructions are permitted. | |
33 | ||
34 | The following values of @var{arch} are accepted: @code{c62x}, | |
35 | @code{c64x}, @code{c64x+}, @code{c67x}, @code{c67x+}, @code{c674x}. | |
36 | ||
37 | @cindex @code{-matomic} command line option, TIC6X | |
38 | @cindex @code{-mno-atomic} command line option, TIC6X | |
39 | @item -matomic | |
40 | @itemx -mno-atomic | |
41 | Enable or disable the optional C64x+ atomic operation instructions. | |
42 | By default, they are enabled if no @option{-march} option is given, or | |
43 | if an architecture is specified with @option{-march} that implies | |
44 | these instructions are present (currently, there are no such | |
45 | architectures); they are disabled if an architecture is specified with | |
46 | @option{-march} on which the instructions are optional or not | |
47 | present. This option overrides such a default from the architecture, | |
48 | independent of the order in which the @option{-march} or | |
49 | @option{-matomic} or @option{-mno-atomic} options are passed. | |
50 | ||
51 | @cindex TIC6X big-endian output | |
52 | @cindex TIC6X little-endian output | |
53 | @cindex big-endian output, TIC6X | |
54 | @cindex little-endian output, TIC6X | |
55 | @item -mbig-endian | |
56 | @itemx -mlittle-endian | |
57 | Generate code for the specified endianness. The default is | |
58 | little-endian. | |
59 | ||
60 | @end table | |
61 | ||
62 | @node TIC6X Syntax | |
63 | @section TIC6X Syntax | |
64 | ||
65 | @cindex line comment character, TIC6X | |
66 | @cindex TIC6X line comment character | |
67 | The presence of a @samp{;} on a line indicates the start of a comment | |
68 | that extends to the end of the current line. If a @samp{#} or | |
69 | @samp{*} appears as the first character of a line, the whole line is | |
70 | treated as a comment. | |
71 | ||
72 | @cindex line separator, TIC6X | |
73 | @cindex statement separator, TIC6X | |
74 | @cindex TIC6X line separator | |
75 | The @samp{@@} character can be used instead of a newline to separate | |
76 | statements. | |
77 | ||
78 | Instruction, register and functional unit names are case-insensitive. | |
79 | @command{@value{AS}} requires fully-specified functional unit names, | |
80 | such as @samp{.S1}, @samp{.L1X} or @samp{.D1T2}, on all instructions | |
81 | using a functional unit. | |
82 | ||
83 | For some instructions, there may be syntactic ambiguity between | |
84 | register or functional unit names and the names of labels or other | |
85 | symbols. To avoid this, enclose the ambiguous symbol name in | |
86 | parentheses; register and functional unit names may not be enclosed in | |
87 | parentheses. | |
88 | ||
89 | @node TIC6X Directives | |
90 | @section TIC6X Directives | |
91 | ||
92 | @cindex machine directives, TIC6X | |
93 | @cindex TIC6X machine directives | |
94 | ||
95 | Directives controlling the set of instructions accepted by the | |
96 | assembler have effect for instructions between the directive and any | |
97 | subsequent directive overriding it. | |
98 | ||
99 | @table @code | |
100 | ||
101 | @cindex @code{.arch} directive, TIC6X | |
102 | @item .arch @var{arch} | |
103 | This has the same effect as @option{-march=@var{arch}}. | |
104 | ||
105 | @cindex @code{.atomic} directive, TIC6X | |
106 | @cindex @code{.noatomic} directive, TIC6X | |
107 | @item .atomic | |
108 | @itemx .noatomic | |
109 | These have the same effects as @option{-matomic} and | |
110 | @option{-mno-atomic}. | |
111 | ||
8a0344f6 JM |
112 | @cindex @code{.c6xabi_attribute} directive, TIC6X |
113 | @item .c6xabi_attribute @var{tag}, @var{value} | |
114 | Set the C6000 EABI build attribute @var{tag} to @var{value}. | |
115 | ||
116 | The @var{tag} is either an attribute number or | |
117 | @code{Tag_C6XABI_Tag_CPU_arch}. The @var{value} is either a | |
118 | @code{number}, @code{"string"}, or @code{number, "string"} depending | |
119 | on the tag. | |
120 | ||
40b36596 JM |
121 | @cindex @code{.nocmp} directive, TIC6X |
122 | @item .nocmp | |
123 | Disallow use of C64x+ compact instructions in the current text | |
124 | section. | |
125 | ||
126 | @end table |