Annotation of src/external/gpl3/binutils.old/dist/gas/doc/c-pru.texi, Revision 1.1.1.1
1.1 christos 1: @c Copyright (C) 2015-2018 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 PRU-Dependent
8: @chapter PRU Dependent Features
9: @end ifset
10:
11: @cindex PRU support
12: @menu
13: * PRU Options:: Options
14: * PRU Syntax:: Syntax
15: * PRU Relocations:: Relocations
16: * PRU Directives:: PRU Machine Directives
17: * PRU Opcodes:: Opcodes
18: @end menu
19:
20: @node PRU Options
21: @section Options
22: @cindex PRU options
23: @cindex options for PRU
24:
25: @c man begin OPTIONS
26: @table @gcctabopt
27:
28: @cindex @code{mlink-relax} command line option, PRU
29: @item -mlink-relax
30: Assume that LD would optimize LDI32 instructions by checking the upper
31: 16 bits of the @var{expression}. If they are all zeros, then LD would
32: shorten the LDI32 instruction to a single LDI. In such case @code{@value{AS}}
33: will output DIFF relocations for diff expressions.
34:
35: @cindex @code{mno-link-relax} command line option, PRU
36: @item -mno-link-relax
37: Assume that LD would not optimize LDI32 instructions. As a consequence,
38: DIFF relocations will not be emitted.
39:
40: @cindex @code{mno-warn-regname-label} command line option, PRU
41: @item -mno-warn-regname-label
42: Do not warn if a label name matches a register name. Usually assembler
43: programmers will want this warning to be emitted. C compilers may want
44: to turn this off.
45:
46: @end table
47: @c man end
48:
49: @node PRU Syntax
50: @section Syntax
51: @menu
52: * PRU Chars:: Special Characters
53: @end menu
54:
55:
56: @node PRU Chars
57: @subsection Special Characters
58:
59: @cindex line comment character, PRU
60: @cindex PRU line comment character
61: @samp{#} and @samp{;} are the line comment characters.
62:
63:
64: @node PRU Relocations
65: @section PRU Machine Relocations
66:
67: @cindex machine relocations, PRU
68: @cindex PRU machine relocations
69:
70: @table @code
71:
72: @cindex @code{pmem} directive, PRU
73: @item %pmem(@var{expression})
74: Convert @var{expression} from byte-address to a
75: word-address. In other words, shift right by two.
76:
77: @item %label(@var{expression})
78: Mark the given operand as a label. This is useful if you need to jump to
79: a label that matches a register name.
80:
81: @smallexample
82: @group
83: r1:
84: jmp r1 ; Will jump to register R1
85: jmp %label(r1) ; Will jump to label r1
86: @end group
87: @end smallexample
88:
89: @end table
90:
91:
92: @node PRU Directives
93: @section PRU Machine Directives
94:
95: @cindex machine directives, PRU
96: @cindex PRU machine directives
97:
98: @table @code
99:
100: @cindex @code{align} directive, PRU
101: @item .align @var{expression} [, @var{expression}]
102: This is the generic @code{.align} directive, however
103: this aligns to a power of two.
104:
105: @cindex @code{word} directive, PRU
106: @item .word @var{expression}
107: Create an aligned constant 4 bytes in size.
108:
109: @cindex @code{dword} directive, PRU
110: @item .dword @var{expression}
111: Create an aligned constant 8 bytes in size.
112:
113: @cindex @code{2byte} directive, PRU
114: @item .2byte @var{expression}
115: Create an unaligned constant 2 bytes in size.
116:
117: @cindex @code{4byte} directive, PRU
118: @item .4byte @var{expression}
119: Create an unaligned constant 4 bytes in size.
120:
121: @cindex @code{8byte} directive, PRU
122: @item .8byte @var{expression}
123: Create an unaligned constant 8 bytes in size.
124:
125: @cindex @code{16byte} directive, PRU
126: @item .16byte @var{expression}
127: Create an unaligned constant 16 bytes in size.
128:
129: @cindex @code{set no_warn_regname_label} directive, PRU
130: @item .set no_warn_regname_label
131: Do not output warnings when a label name matches a register name. Equivalent
132: to passing the @code{-mno-warn-regname-label} command line option.
133:
134: @end table
135:
136: @node PRU Opcodes
137: @section Opcodes
138:
139: @cindex PRU opcodes
140: @cindex opcodes for PRU
141: @code{@value{AS}} implements all the standard PRU core V3 opcodes in the
142: original pasm assembler. Older cores are not supported by @code{@value{AS}}.
143:
144: GAS also implements the LDI32 pseudo instruction for loading a 32-bit
145: immediate value into a register.
146:
147: @smallexample
148: ldi32 sp, __stack_top
149: ldi32 r14, 0x12345678
150: @end smallexample
CVSweb <webmaster@jp.NetBSD.org>