Merge branch 'vendor/GCC47'
[dragonfly.git] / contrib / binutils-2.24 / gas / doc / c-xstormy16.texi
1 @c Copyright 2010, 2011 Free Software Foundation, Inc.
2 @c This is part of the GAS manual.
3 @c For copying conditions, see the file as.texinfo.
4
5 @node XSTORMY16-Dependent
6 @chapter XStormy16 Dependent Features
7
8 @cindex XStormy16 support
9 @menu
10 * XStormy16 Syntax::               Syntax
11 * XStormy16 Directives::           Machine Directives
12 * XStormy16 Opcodes::              Pseudo-Opcodes
13 @end menu
14
15 @node XStormy16 Syntax
16 @section Syntax
17 @menu
18 * XStormy16-Chars::                Special Characters
19 @end menu
20
21 @node XStormy16-Chars
22 @subsection Special Characters
23
24 @cindex line comment character, XStormy16
25 @cindex XStormy16 line comment character
26 @samp{#} is the line comment character.  If a @samp{#} appears as the
27 first character of a line, the whole line is treated as a comment, but
28 in this case the line can also be a logical line number directive
29 (@pxref{Comments}) or a preprocessor control command
30 (@pxref{Preprocessing}).
31
32 @cindex comment character, XStormy16
33 @cindex XStormy16 comment character
34 A semicolon (@samp{;}) can be used to start a comment that extends
35 from wherever the character appears on the line up to the end of the
36 line.
37
38 @cindex line separator, XStormy16
39 @cindex statement separator, XStormy16
40 @cindex XStormy16 line separator
41
42 The @samp{|} character can be used to separate statements on the same
43 line.
44
45
46 @node XStormy16 Directives
47 @section XStormy16 Machine Directives
48
49 @cindex machine directives, XStormy16
50 @cindex XStormy16 machine directives
51 @table @code
52
53 @cindex @code{16bit_pointers} directive, XStormy16
54 @item .16bit_pointers
55 Like the @option{--16bit-pointers} command line option this directive
56 indicates that the assembly code makes use of 16-bit pointers.
57
58 @cindex @code{32bit_pointers} directive, XStormy16
59 @item .32bit_pointers
60 Like the @option{--32bit-pointers} command line option this directive
61 indicates that the assembly code makes use of 32-bit pointers.
62
63 @cindex @code{.no_pointers} directive, XStormy16
64 @item .no_pointers
65 Like the @option{--no-pointers} command line option this directive
66 indicates that the assembly code does not makes use pointers.
67
68 @end table
69
70 @node XStormy16 Opcodes
71 @section XStormy16 Pseudo-Opcodes
72
73 @cindex XStormy16 pseudo-opcodes
74 @cindex pseudo-opcodes for XStormy16
75 @code{@value{AS}} implements all the standard XStormy16 opcodes.
76
77 @code{@value{AS}} also implements the following pseudo ops:
78
79 @table @code
80
81 @cindex @code{@@lo} pseudo-op, XStormy16
82 @item @@lo()
83 Computes the lower 16 bits of the given expression and stores it into
84 the immediate operand field of the given instruction.  For example:
85
86     @samp{add r6, @@lo(here - there)}
87
88 computes the difference between the address of labels 'here' and
89 'there', takes the lower 16 bits of this difference and adds it to
90 register 6.
91
92 @cindex @code{@@hi} pseudo-op, XStormy16
93 @item @@hi()
94 Computes the higher 16 bits of the given expression and stores it into
95 the immediate operand field of the given instruction.  For example:
96
97     @samp{addc r7, @@hi(here - there)}
98
99 computes the difference between the address of labels 'here' and
100 'there', takes the upper 16 bits of this difference, shifts it down 16
101 bits and then adds it, along with the carry bit, to the value in
102 register 7.
103
104 @end table