1<?xml version="1.0" encoding="utf-8"?>
2<HTML xml:lang="en-US" lang="en-US">
3
4  <HEAD>
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6    <meta http-equiv="Content-Style-Type" content="text/css" />
7    <link rel="stylesheet" href="./css/contents.css" type="text/css" />
8    <base target="main" />
9    <title>List of Documents</title>
10  </HEAD>
11
12  <BODY style="margin-bottom: 50%;">
13
14
15
16<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
17<h1><a name="reference">Assembler Reference</a></h1>
18
19<h2> <a name="specification">Hardware Specifications</a> </h2>
20<ul>
21    <li><a href="specification/HardwareSpec.html#vertex_processor">Vertex Shader Processor</a></li>
22    <ul>
23      <li><a href="specification/HardwareSpec.html#specialty">Features</a></li>
24      <li><a href="specification/HardwareSpec.html#stage">Stage Structure</a></li>
25      <li><a href="specification/HardwareSpec.html#arithmetic_unit">Arithmetic Unit Structure</a></li>
26      <li><a href="specification/HardwareSpec.html#register_set">Register Set</a></li>
27    </ul>
28    <li><a href="specification/HardwareSpec.html#post_vertexcache">Post-Vertex Cache</a></li>
29</ul>
30
31<h2> <a name="resource">Resources</a> </h2>
32<ul>
33    <li><a href="resource/Overview.html#programRAM">Program RAM</a></li>
34    <li><a href="resource/Overview.html#register">Registers</a></li>
35    <ul>
36      <li><a href="resource/Overview.html#register_quality">The precision of floating point number-type registers</a></li>
37      <li><a href="resource/Overview.html#reg_input">Input registers</a></li>
38      <li><a href="resource/Overview.html#reg_temp">Temporary registers</a></li>
39      <li><a href="resource/Overview.html#reg_constfloat">Floating-point constant registers</a></li>
40      <li><a href="resource/Overview.html#reg_address">Address registers</a></li>
41      <li><a href="resource/Overview.html#reg_boolean">Boolean registers</a></li>
42      <li><a href="resource/Overview.html#reg_integer">Integer registers</a></li>
43      <li><a href="resource/Overview.html#reg_loopcounter">Loop counter registers</a></li>
44      <li><a href="resource/Overview.html#reg_output">Output registers</a></li>
45      <li><a href="resource/Overview.html#reg_status">Status registers</a></li>
46    </ul>
47</ul>
48
49<h2> <a name="grammar">Syntax</a> </h2>
50<ul>
51    <li><a href="grammar/Overview.html#grammar">Assembler Instruction Coding</a></li>
52    <li><a href="grammar/Overview.html#masking">Masking Output Components</a></li>
53    <li><a href="grammar/Overview.html#swizzling">Swizzling (Rearranging Input Components)</a></li>
54    <li><a href="grammar/Overview.html#minus_sign">Adding the Negative Sign ( - ) to Input Components</a></li>
55    <li><a href="grammar/Overview.html#input_offset">Offsetting the Input Operand Register Index</a></li>
56    <li><a href="grammar/Overview.html#label">Labels</a></li>
57    <li><a href="grammar/Overview.html#reserved">Reserved Words</a></li>
58</ul>
59
60<h2> <a name="command">Instructions</a> </h2>
61<ul>
62    <li><a href="preprocess/Overview.html">Preprocessor Pseudo-Instructions</a></li>
63    <ul>
64      <li><a href="preprocess/include.html">#include</a></li>
65      <li><a href="preprocess/define.html">#define</a></li>
66      <li><a href="preprocess/undef.html">#undef</a></li>
67      <li><a href="preprocess/ifdef.html">#ifdef, #ifndef, #if, #else, #elif, #endif</a></li>
68      <li><a href="preprocess/error.html">#error</a></li>
69      <li><a href="preprocess/bind_symbol.html">#pragma bind_symbol( )</a></li>
70      <li><a href="preprocess/output_map.html">#pragma output_map( )</a></li>
71      <li><a href="preprocess/line.html">#line</a></li>
72    </ul>
73    <li><a href="definition/Overview.html">Define Instructions</a></li>
74    <ul>
75      <li><a href="definition/def.html">def</a></li>
76      <li><a href="definition/defb.html">defb</a></li>
77      <li><a href="definition/defi.html">defi</a></li>
78    </ul>
79    <li><a href="arithmetic/Overview.html">Arithmetic Instructions</a></li>
80    <ul>
81      <li><a href="arithmetic/add.html">add</a></li>
82      <li><a href="arithmetic/dp3.html">dp3</a></li>
83      <li><a href="arithmetic/dp4.html">dp4</a></li>
84      <li><a href="arithmetic/dph.html">dph</a></li>
85      <li><a href="arithmetic/dst.html">dst</a></li>
86      <li><a href="arithmetic/exp.html">exp</a></li>
87      <li><a href="arithmetic/flr.html">flr</a></li>
88      <li><a href="arithmetic/litp.html">litp</a></li>
89      <li><a href="arithmetic/log.html">log</a></li>
90      <li><a href="arithmetic/mad.html">mad</a></li>
91      <li><a href="arithmetic/max.html">max</a></li>
92      <li><a href="arithmetic/min.html">min</a></li>
93      <li><a href="arithmetic/mov.html">mov</a></li>
94      <li><a href="arithmetic/mova.html">mova</a></li>
95      <li><a href="arithmetic/mul.html">mul</a></li>
96      <li><a href="arithmetic/nop.html">nop</a></li>
97      <li><a href="arithmetic/rcp.html">rcp</a></li>
98      <li><a href="arithmetic/rsq.html">rsq</a></li>
99      <li><a href="arithmetic/sge.html">sge</a></li>
100      <li><a href="arithmetic/slt.html">slt</a></li>
101    </ul>
102    <li><a href="macro/Overview.html">Macro Instructions</a></li>
103    <ul>
104      <li><a href="macro/sub.html">sub</a></li>
105      <li><a href="macro/abs.html">abs</a></li>
106      <li><a href="macro/crs.html">crs</a></li>
107      <li><a href="macro/frc.html">frc</a></li>
108      <li><a href="macro/lrp.html">lrp</a></li>
109      <li><a href="macro/m3x2.html">m3x2</a></li>
110      <li><a href="macro/m3x3.html">m3x3</a></li>
111      <li><a href="macro/m3x4.html">m3x4</a></li>
112      <li><a href="macro/m4x3.html">m4x3</a></li>
113      <li><a href="macro/m4x4.html">m4x4</a></li>
114      <li><a href="macro/nrm.html">nrm</a></li>
115      <li><a href="macro/pow.html">pow</a></li>
116      <li><a href="macro/sgn.html">sgn</a></li>
117      <li><a href="macro/sincos.html">sincos</a></li>
118    </ul>
119    <li><a href="flowcntl/Overview.html">Flow Control Instructions</a></li>
120    <ul>
121      <li><a href="flowcntl/call.html">call</a></li>
122      <li><a href="flowcntl/callb.html">callb</a></li>
123      <li><a href="flowcntl/callc.html">callc</a></li>
124      <li><a href="flowcntl/jpb.html">jpb</a></li>
125      <li><a href="flowcntl/jpc.html">jpc</a></li>
126      <li><a href="flowcntl/ret.html">ret</a></li>
127      <li><a href="flowcntl/ifb.html">ifb</a></li>
128      <li><a href="flowcntl/ifc.html">ifc</a></li>
129      <li><a href="flowcntl/else.html">else</a></li>
130      <li><a href="flowcntl/endif.html">endif</a></li>
131      <li><a href="flowcntl/loop.html">loop</a></li>
132      <li><a href="flowcntl/endloop.html">endloop</a></li>
133      <li><a href="flowcntl/breakc.html">breakc</a></li>
134      <li><a href="flowcntl/cmp.html">cmp</a></li>
135      <li><a href="flowcntl/end.html">end</a></li>
136    </ul>
137</ul>
138
139<a name="caution"></a>
140<h2>Limitations Due to Shader Specifications</h2>
141<ul>
142    <li><a href="caution/ShaderSpec.html#top">Limitations Due to Shader Specifications</a></li>
143    <ul>
144      <li><a href="caution/ShaderSpec.html#shader_start">Starting and Stopping a Shader</a></li>
145      <li><a href="caution/ShaderSpec.html#step">Number of Steps</a></li>
146      <li><a href="caution/ShaderSpec.html#swizzling">Number of Swizzling and Masking Patterns</a></li>
147      <li><a href="caution/ShaderSpec.html#flowcontrol">Limitations on Control Instructions</a></li>
148      <li><a href="caution/ShaderSpec.html#register">Registers That Cannot be Used Simultaneously</a></li>
149      <li><a href="caution/ShaderSpec.html#exceptional_result">Calculation Results of Exceptional Processing</a></li>
150      <li><a href="caution/ShaderSpec.html#false_output">Limitations on the Output of Illegal Data</a></li>
151    </ul>
152</ul>
153
154<h2>Instructions That Cannot be Called Twice Consecutively</h2>
155<ul>
156    <li><a href="caution/InstructionCall.html#top">Instructions That Cannot be Called Twice Consecutively</a></li>
157    <ul>
158      <li><a href="caution/InstructionCall.html#block_end">Consecutive Calls to <CODE>else</CODE>, <CODE>endif</CODE>, <CODE>ret</CODE>, and <CODE>endloop</CODE></a></li>
159      <li><a href="caution/InstructionCall.html#call_mova">Consecutive Calls to <CODE>mova</CODE></a></li>
160      <li><a href="caution/InstructionCall.html#call_jump">Calling <CODE>jpc/jpb</CODE> immediately before an <CODE>else</CODE>, <CODE>endif</CODE>, <CODE>ret</CODE>, or <CODE>endloop</CODE></a></li>
161      <li><a href="caution/InstructionCall.html#call_breakc">Calling <CODE>breakc</CODE> immediately before an <CODE>endloop</CODE></a></li>
162    </ul>
163</ul>
164
165<h2>Instruction Latency</h2>
166<ul>
167    <li><a href="caution/InstructionLatency.html#top">Instruction Latency</a></li>
168    <ul>
169      <li><a href="caution/InstructionLatency.html#arithmetic_cmp">Latency of Arithmetic Instructions and the <CODE>cmp</CODE> Instruction</a></li>
170      <li><a href="caution/InstructionLatency.html#branch_latency">Latency of Branch Instructions</a></li>
171      <li><a href="caution/InstructionLatency.html#output_result">Output Order of Calculation Results</a></li>
172      <li><a href="caution/InstructionLatency.html#output_stall">Stalling Due to Calculation Result Output Timing Conflicts</a></li>
173      <li><a href="caution/InstructionLatency.html#compete_stall">Stalling Due to Arithmetic Unit Conflicts</a></li>
174      <li><a href="caution/InstructionLatency.html#dependence_stall">Stalling Due to Instruction Dependencies</a></li>
175      <li><a href="caution/InstructionLatency.html#force_stall">Unconditional Stalls</a></li>
176    </ul>
177</ul>
178
179<h2>Shader Implementations That Result in Illegal Operations</h2>
180<ul>
181    <li><a href="caution/BadCoding.html#top">Shader Implementations That Result in Illegal Operations</a></li>
182    <ul>
183      <li><a href="caution/BadCoding.html#by_mova">Illegal Operations Caused by the <CODE>mova</CODE> Instruction</a></li>
184      <ul>
185        <li><a href="caution/BadCoding.html#last_instruction">Executing <CODE>mova</CODE> Immediately Before the Last Instruction</a></li>
186        <li><a href="caution/BadCoding.html#specific_instruction">Executing <CODE>mova</CODE> Both Before and After Certain Instructions</a></li>
187        <li><a href="caution/BadCoding.html#stall_branch">Executing a Branch Instruction Immediately After a Stall Caused by a <CODE>mova</CODE> Instruction</a></li>
188      </ul>
189      <li><a href="caution/BadCoding.html#specific_order">Illegal Operations Caused by Executing Instructions in Particular Order</a></li>
190  </ul>
191</ul>
192
193
194
195   <hr><p>CONFIDENTIAL</p></BODY>
196
197</HTML>
198