1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4<meta http-equiv="Content-Style-Type" content="text/css">
5<title>ctr_VertexShaderAssembler</title>
6<style type="text/css">
7<!--
8body {
9/*
10    font-size       : 10pt;
11*/
12    font-weight     : normal;
13    color           : #000000;
14    margin          : 8px;
15}
16
17div {
18    width           : 98%;
19    white-space     : nowrap;
20}
21
22div.title {
23    text-align      : left;
24    font-weight     : bold;
25/*
26    font-size       : 16pt;
27*/
28    font-size       : 150%;
29    color           : #202020;
30    border-style    : double;
31    border-width    : 8px;
32    /* タイトルを囲む枠線の色を指定 */
33    border-color    : #CD202C;
34
35    /* RVLプラットフォーム系列 */
36/*
37    border-color    : #34beed;
38*/
39
40    /* TWLプラットフォーム系列 */
41/*
42    border-color    : #ff458f;
43*/
44
45    margin          : 4px;
46    padding         : 4px;
47}
48H1 {
49  font-size		: 150%;
50  font-family		: Arial;
51  border-bottom-width	: 5px;
52  border-bottom-style	: solid;
53  border-bottom-color	: #CD202C;
54  padding-bottom		: 1px;
55  margin-bottom		: 20px;
56  letter-spacing		: normal;
57  font-weight		: bold;
58}
59
60h2 {
61    font-weight     : bold;
62/*
63    font-size       : 16pt;
64*/
65    font-size       : 150%;
66    border-style    : none none solid double;
67    border-width    : 0px 0px 2px 8px;
68    /* 見出しの線の色を指定 */
69    border-color    : #CD202C;
70
71    /* RVLプラットフォーム系列 */
72/*
73    border-color    : #34beed;
74*/
75
76    /* TWLプラットフォーム系列 */
77/*
78    border-color    : #ff458f;
79*/
80
81    margin-left     : 2px;
82    padding-left    : 4px;
83}
84h3 {
85    font-weight     : bold;
86    font-size       : 120%;
87    border-style    : none none solid solid;
88    border-width    : 0px 0px 2px 2px;
89    border-color    : #CD202C;
90    margin-left     : 2px;
91    padding-left    : 4px;
92}
93CODE {
94  font-family		: "Courier New", monospace;
95  position		: normal;
96  left			: 12px;
97  font-size		: 10pt;
98}
99table {
100  margin-top        : 2pt;
101  margin-bottom     : 2pt;
102  margin-left       : 0pt;
103  margin-right      : 0pt;
104  padding-left      : 0pt;
105  padding-right     : 0pt;
106  position          : relative;
107  left              : 12px;
108  font-family       : Arial;
109  font-size         : 10pt;
110  border-style      : none none none none;
111}
112td,th {
113  padding           : 2pt;
114  border-width      : 2pt;
115  border-style      : none none none none;
116  font-style        : normal;
117  text-align        : left;
118}
119td {
120  background        : #e8f4f4;
121  font-weight       : normal;
122}
123th {
124  background        : #c0d8d8;
125  font-weight       : bold;
126}
127
128p {
129    margin-left     : 4px;
130}
131p.code {
132  font-family		: "Courier New", monospace;
133  position		: normal;
134  left			: 12px;
135  font-size		: 10pt;
136  background            : #e8f4f4;
137}
138
139-->
140</style>
141
142</head>
143<body>
144<a name="top"></a> <!-- ※注意事項 --> <!--  ・(任意)となっているものは、記載が無くても問題ありません。 --> <!--  ・各項目についてる(必須)や(任意)は、作成後に削除してください。 --> <!--  ・各項目内の書き方は、パッケージごとに自由で問題ありませんが、同じパッケージ内で違いがでないようにしてください。 --> <!--  ・タグはすべて小文字、終了タグを持たないものは「/>」で閉じてください。--> <!--  ・HTMLコードのインデントは、各種社内コード規約と同様にスペース4文字か4文字幅のタブになるようにしてください-->
145
146<h1>ctr_VertexShaderAssembler</h1>
147
148<h2>Table of Contents</h2>
149<ul style='list-style-type: none'>
150    <li>1. <a href="#intro">Introduction</a></li>
151    <li>2. <a href="#usage">How to Use</a>
152        <ul style='list-style-type: none'>
153            <li>2.1 <a href="#command">Commands</a></li>
154            <li>2.2 <a href="#input_file">Input Files</a></li>
155            <li>2.3 <a href="#option">Options</a></li>
156        </ul>
157    </li>
158    <li>3. <a href="#debug_build">Debug Build</a></li>
159    <li>4. <a href="#err_code">Error Codes (Assembler)</a></li>
160        <ul style='list-style-type: none'>
161            <li>4.1 <a href="#err_mes_format">Error Message Format</a></li>
162            <li>4.2 <a href="#err_message">Error Message</a></li>
163        </ul>
164    <li>5. <a href="#history">Revision History</a></li>
165</ul>
166
167<h2><a name="intro">Introduction</a></h2>
168<P>
169<CODE>ctr_VertexShaderAssembler</CODE> assembles assembler files written in assembler language, conforming to proprietary PICA specifications, and outputs the corresponding object files.
170</P>
171
172<h2><a name="usage">How to Use</a></h2>
173
174<h3><a name="command">Commands</a></h3>
175<p class="code">
176% ctr_VertexShaderAssembler32 &lt;input file name&gt; [options...]
177</p>
178
179<p class="first_ja">
180An input file name must be specified. Options can be omitted. Help is displayed if the assembler is executed without any arguments.<BR>
181</p>
182
183<h3><a name="input_file">Input Files</a></h3>
184<p class="first_ja">
185Specify the assembler files to be input in place of &lt;input file name&gt;.<BR> Files encoded in Shift-JIS and UTF-8 (byte-order marked) are supported.<BR> CRLF is supported for newline codes.<BR> For the file name, specify a string of 128 or fewer characters that contains no spaces, by using ASCII alphanumeric characters and symbols other than \ / :  * ? &quot; &lt; &gt; and |. <br> * ? <br />
186</p>
187
188<h3><a name="option">Options</a></h3>
189<p class="first_ja">
190The following options can be specified in place of [options...].<br />
191</p>
192
193<div class="table">
194<table border="1" summary="options">
195<thead>
196<tr>
197<th align="center">Options</th>
198<th align="center">Description</th>
199</tr>
200</thead>
201<tbody>
202<tr>
203<td align="center">-O &lt;File Name&gt;</td>
204<td align="center">Specifies the output filename.<BR> The file name &quot;input_file_name.obj&quot; is used, if no output file name is specified.</td>
205</tr>
206<tr>
207<td align="center">-I&lt;file path&gt;</td>
208<td align="center">Specifies the file path of the input file.<BR> Specify a file path that contains both the assembler file and files included in the assembler file.<BR> The input file and include files are detected in the order in which directories are specified using this option.</td>
209</tr>
210<tr>
211<td align="center">-D&lt;key&gt;[=&lt;value&gt;]</td>
212<td align="center">Defines a macro.<BR> Specify the macro name in &lt;key&gt; and the macro value in &lt;value&gt;. &lt;value&gt; can be omitted.</td>
213</tr>
214<tr>
215<td align="center">-debug</td>
216<td align="center">Creates an object file with debug information.<BR> If this option is not specified, the output object file will not include the full path of the input file.</td>
217</tr>
218<tr>
219<td align="center">-nowarning</td>
220<td align="center">Sets execution so that warning messages are not output.</td>
221</tr>
222<tr>
223<td align="center">-preprocess</td>
224<td align="center">Executes preprocessing only.<BR> This option executes preprocessing on the input assembler file and outputs the result of deleting inactive text, such as blank lines and comments, to the standard output.<BR> File information is added to output results in the form &quot;# line_number file_name.&quot; Assembler macro instructions are replaced with expanded instructions. Note, however, that macros are not replaced with expanded instructions if there is a syntax error in the macro instruction itself.</td>
225</tr>
226<tr>
227<td align="center">-dependency</td>
228<td align="center">Outputs assembler file dependencies.<br /> This option executes only preprocessing on the input assembler file, and outputs the names of all input files and include files referenced in input files to the standard output.<BR> The <CODE>-preprocess</CODE> option is ignored if specified along with the <CODE>-preprocess</CODE> option.</td>
229</tr>
230<tr>
231<td align="center">-? or -help</td>
232<td align="center">Displays help.</td>
233</tr>
234</tbody>
235</table>
236</div>
237
238<h2><a name="debug_build">Debug Build</a></h2>
239<p>
240Specifying the <CODE>-debug</CODE> option to the <CODE>ctr_VertexShaderAssembler</CODE> results in a debug build.<BR> Debug build assembler objects can be debugged using the shader debugger, but the operation speed on POD decreases.<br><br> <br> If the <CODE>-debug</CODE> option is not specified, the file path of the input files is removed from object files.<br><br> If the full path of input files is unknown, the shader debugger might not be able to locate the source file.<br><br>
241</p>
242
243<h2><a name="err_code">Error Codes (Assembler)</a></h2>
244
245<h3><a name="err_mes_format">Error Message Format</a></h3>
246<P>
247This page describes error messages output by the assembler. Errors are saved in the following format. <br /> <br /> &nbsp;&nbsp;&nbsp;&nbsp;Input file name (line number of error): Error level (error code): Error description<br/> <br /> Errors have an error level of either &quot;warning&quot; or &quot;error.&quot; Execution can continue in the case of a &quot;warning&quot; level error. The input file name and/or error line number may not be displayed, depending on the type of error.<BR> <br />
248</P>
249
250
251<h3><a name="err_message">Error Message</a></h3>
252<P>
253This table gives the error codes output by the assembler and their description.
254</P>
255
256<a name="8001xxxx"><h4>8001xxxx</h4></a>
257
258<div class="table">
259<table border="1">
260<thead>
261<tr>
262<th align="center">Error Code</th>
263<th align="center">Message / Description</th>
264</tr>
265</thead>
266<tbody>
267
268<tr>
269<td align="center" rowspan="2">80010001</td><td>The -O option cannot be specified more than once.</td>
270</tr>
271<tr>
272<td>
273The -O option can be specified only once.<br/>
274</td>
275</tr>
276
277<tr>
278<td align="center" rowspan="2">80010003</td><td> Definition key is not specified with -D option</td>
279</tr>
280<tr>
281<td>
282A key defined for the -D option has not been specified.<BR> Specify this option using the format -Dkey or -Dkey=value.<BR>
283</td>
284</tr>
285
286<tr>
287<td align="center" rowspan="2">80010004</td><td> Definition value is not specified with &lsquo;parameter name&rsquo; macro.</td>
288</tr>
289<tr>
290<td>
291The value of the defined macro for the -D option has not been set correctly.<BR> Specify this option using the format -Dkey or -Dkey=value.<BR>
292</td>
293</tr>
294
295<tr>
296<td align="center" rowspan="2">80010005</td><td> &lsquo;parameter name&rsquo; includes illegal character.</td>
297</tr>
298<tr>
299<td>
300An attempt was made to use the -D option to define a macro that uses illegal characters.<BR> Macro names must consist of ASCII alphanumeric characters and may include an underscore (&quot;_&quot;).
301</td>
302</tr>
303
304<tr>
305<td align="center" rowspan="2">80010006</td><td> &lsquo;macro name&rsquo; macro is redefined.</td>
306</tr>
307<tr>
308<td>
309Two or more macros having the same name have been defined using the -D option.<BR>
310</td>
311</tr>
312
313<tr>
314<td align="center" rowspan="2">80010007</td><td> Only one assembler file can be specified as input.</td>
315</tr>
316<tr>
317<td>
318Two or more assembler files have been specified as input. Only one assembler file can be specified.<BR>
319</td>
320</tr>
321
322<tr>
323<td align="center" rowspan="2">80010008</td><td> Input file is not specified.</td>
324</tr>
325<tr>
326<td>
327No assembler file has been specified as input.<BR>
328</td>
329</tr>
330
331<tr>
332<td align="center" rowspan="2">8001000b</td><td> &lsquo;macro name&rsquo; macro name cannot start from number.</td>
333</tr>
334<tr>
335<td>
336The macro name defined with the -D option cannot start with a number.
337</td>
338</tr>
339
340<tr>
341<td align="center" rowspan="2">8001000d</td><td> Unknown options are specified.</td>
342</tr>
343<tr>
344<td>
345An unknown option was specified.
346</td>
347</tr>
348
349</tbody>
350</table>
351</div>
352
353
354<a name="8003xxxx"><h4>8003xxxx</h4></a>
355
356<div class="table">
357<table border="1">
358<thead>
359<tr>
360<th align="center">Error Code</th>
361<th align="center">Message / Description</th>
362</tr>
363</thead>
364<tbody>
365
366<tr>
367<td align="center" rowspan="2">80030001</td><td> Cannot open &lsquo;file name&rsquo;</td>
368</tr>
369<tr>
370<td>
371The specified assembler file cannot be opened.<BR>
372</td>
373</tr>
374
375<tr>
376<td align="center" rowspan="2">80030002</td><td> Include file name is not specified.</td>
377</tr>
378<tr>
379<td>
380The file name has not been specified in an #include statement.<br/> Specify the file name using the format:<BR>#include &quot;file name&quot;
381</td>
382</tr>
383
384<tr>
385<td align="center" rowspan="2">80030003</td><td> Syntax error in #include</td>
386</tr>
387<tr>
388<td>
389The format of the #include statement is incorrect.<BR> Specify the file name using the format:<BR>#include &quot;file name&quot;
390</td>
391</tr>
392
393<tr>
394<td align="center" rowspan="2">80030004</td><td> Cannot open the include file &ldquo;file name&rdquo;.</td>
395</tr>
396<tr>
397<td>
398The include file cannot be opened.<BR> Specify an include path using the -I option.<BR>
399</td>
400</tr>
401
402<tr>
403<td align="center" rowspan="2">80030005</td><td> Definition key is not specified.</td>
404</tr>
405<tr>
406<td>
407The format of the #define statement is incorrect.<BR> Specify using the format:<BR>#define key value.<BR>
408</td>
409</tr>
410
411<tr>
412<td align="center" rowspan="2">80030006</td><td> Definition key includes an illegal character.</td>
413</tr>
414<tr>
415<td>
416Macro names defined using <CODE>#define</CODE> must consist of ASCII alphanumeric characters and may include an underscore (&quot;_&quot;).<BR>
417</td>
418</tr>
419
420<tr>
421<td align="center" rowspan="2">80030007</td><td> &lsquo;macro name&rsquo; macro is redefined.</td>
422</tr>
423<tr>
424<td>
425A macro defined using <CODE>#define</CODE> has been redefined elsewhere.<br/>
426</td>
427</tr>
428
429<tr>
430<td align="center" rowspan="2">80030008</td><td> Definition key is not specified.</td>
431</tr>
432<tr>
433<td>
434The format of the <CODE>#undef</CODE> statement is incorrect.<BR> Specify using the format:<BR>#undef key.<BR>
435</td>
436</tr>
437
438<tr>
439<td align="center" rowspan="2">8003000b</td><td> Correspondent &ldquo;#ifdef&rdquo; is not found.</td>
440</tr>
441<tr>
442<td>
443The assembler could not find the <CODE>#ifdef</CODE> statement that corresponds to the <CODE>#endif</CODE> statement.<BR>
444</td>
445</tr>
446
447<tr>
448<td align="center" rowspan="2">8003000c</td><td> Undefined directive.</td>
449</tr>
450<tr>
451<td>
452An unsupported pre-processor pseudo instruction has been specified.<BR>
453</td>
454</tr>
455
456<tr>
457<td align="center" rowspan="2">8003000d</td><td> #ifdef is not closed.</td>
458</tr>
459<tr>
460<td>
461The assembler could not find the <CODE>#endif</CODE> statement that corresponds to the <CODE>#ifdef</CODE> statement.<BR>
462</td>
463</tr>
464
465<tr>
466<td align="center" rowspan="2">8003000e</td><td> Syntax error. Macro is not specified.</td>
467</tr>
468<tr>
469<td>
470A macro has not been defined for the <CODE>#ifdef</CODE> statement.<BR> Specify using the format:<BR>#ifdef macro.<BR>
471</td>
472</tr>
473
474<tr>
475<td align="center" rowspan="2">8003000f</td><td> Syntax error. Invalid string is detected after macro.</td>
476</tr>
477<tr>
478<td>
479The format of the <CODE>#ifdef</CODE> statement is incorrect.<BR> Specify using the format:<BR>#ifdef macro.<BR>
480</td>
481</tr>
482
483<tr>
484<td align="center" rowspan="2">80030010</td><td> Syntax error. Macro is not specified.</td>
485</tr>
486<tr>
487<td>
488A macro has not been defined for the <CODE>#ifndef</CODE> statement.<BR> Specify using the format:<BR>#ifndef macro.<BR>
489</td>
490</tr>
491
492<tr>
493<td align="center" rowspan="2">80030011</td><td> Syntax error. Invalid string is detected after macro.</td>
494</tr>
495<tr>
496<td>
497The format of the <CODE>#ifndef</CODE> statement is incorrect.<BR> Specify using the format:<BR>#ifndef macro.<BR>
498</td>
499</tr>
500
501<tr>
502<td align="center" rowspan="2">80030012</td><td> Syntax Error. Invalid string is detected after directive.</td>
503</tr>
504<tr>
505<td>
506Macro names defined using <CODE>#if</CODE>, <CODE>#ifdef</CODE>, or <CODE>#ifndef</CODE> must consist of ASCII alphanumeric characters and may include an underscore (&quot;_&quot;).<BR>
507</td>
508</tr>
509
510<tr>
511<td align="center" rowspan="2">80030013</td><td> Syntax Error. Invalid string is detected after directive.</td>
512</tr>
513<tr>
514<td>
515An illegal string was detected after an <CODE>#else</CODE> statement.<BR>
516</td>
517</tr>
518
519<tr>
520<td align="center" rowspan="2">80030014</td><td> Correspondent &ldquo;#ifdef&rdquo; is not found.</td>
521</tr>
522<tr>
523<td>
524The assembler could not find the <CODE>#ifdef</CODE> statement that corresponds to the <CODE>#else</CODE> statement.<BR>
525</td>
526</tr>
527
528<tr>
529<td align="center" rowspan="2">80030015</td><td> Syntax error. Invalid expression is detected.</td>
530</tr>
531<tr>
532<td>
533The format of the <CODE>#if</CODE> statement is incorrect.<BR>
534</td>
535</tr>
536
537<tr>
538<td align="center" rowspan="2">80030017</td><td> Syntax error. Invalid expression is detected.</td>
539</tr>
540<tr>
541<td>
542The macro listed after the <CODE>#if</CODE> statement includes illegal characters.<BR> Macro names specified using <CODE>#if</CODE> must consist of ASCII alphanumeric characters and may include an underscore (&quot;_&quot;).<BR>
543</td>
544</tr>
545
546<tr>
547<td align="center" rowspan="2">80030018</td><td> #error</td>
548</tr>
549<tr>
550<td>
551This error is output intentionally by an <CODE>#error</CODE> statement.<BR>
552</td>
553</tr>
554
555<tr>
556<td align="center" rowspan="2">80030019</td><td> The top character of the definition key must not be a number.</td>
557</tr>
558<tr>
559<td>
560The first character of the macro name defined using <CODE>#define</CODE> must not be a number.<BR>
561</td>
562</tr>
563
564<tr>
565<td align="center" rowspan="2">8003001a</td><td> Macro parentheses have not been closed properly.</td>
566</tr>
567<tr>
568<td>
569Parentheses using in a <CODE>#define</CODE> definition have not been paired properly.<BR>
570</td>
571</tr>
572
573<tr>
574<td align="center" rowspan="2">8003001b</td><td> Invalid character is detected in macro argument.</td>
575</tr>
576<tr>
577<td>
578A function macro argument includes an illegal string.<BR> Macro names must consist of ASCII alphanumeric characters and may include an underscore (&quot;_&quot;).<BR>
579</td>
580</tr>
581
582<tr>
583<td align="center" rowspan="2">8003001c</td><td> Duplicate macro argument is detected.</td>
584</tr>
585<tr>
586<td>
587More than one function macro argument uses the same string.<BR>
588</td>
589</tr>
590
591<tr>
592<td align="center" rowspan="2">8003001d</td><td> Invalid macro argument is specified.</td>
593</tr>
594<tr>
595<td>
596An attempt was made to use a macro function defined using illegal code.<BR>
597</td>
598</tr>
599
600<tr>
601<td align="center" rowspan="2">8003001e</td><td> pragma command bind_symbol is invalid format.</td>
602</tr>
603<tr>
604<td>
605The <CODE>#pragma bind_symbol</CODE> statement is invalid.<br />
606</td>
607</tr>
608
609<tr>
610<td align="center" rowspan="2">8003001f</td><td> Undefined pragma command.</td>
611</tr>
612<tr>
613<td>
614An unsupported pragma command has been specified.<BR>
615</td>
616</tr>
617
618<tr>
619<td align="center" rowspan="2">80030020</td><td> Start index should be less than or equal to end index.</td>
620</tr>
621<tr>
622<td>
623The start register index of the <CODE>#pragma bind_symbol</CODE> statement is greater than the end register index.<BR>
624</td>
625</tr>
626
627<tr>
628<td align="center" rowspan="2">80030021</td><td> Binding symbol name is duplicated.</td>
629</tr>
630<tr>
631<td>
632The symbol name used in the <CODE>#pragma bind_symbol</CODE> statement is defined again elsewhere.<BR>
633</td>
634</tr>
635
636<tr>
637<td align="center" rowspan="2">80030022</td><td> Invalid register index is specified.</td>
638</tr>
639<tr>
640<td>
641An invalid register index has been defined by a <CODE>#pragma bind_symbol</CODE> statement.<BR> (Exceeds the maximum number of registers.))<br />
642</td>
643</tr>
644
645<tr>
646<td align="center" rowspan="2">80030023</td><td> Specified registers are already bound to other symbol.</td>
647</tr>
648<tr>
649<td>
650The same input register has been bound to more than one symbol by a <CODE>#pragma bind_symbol</CODE> statement.<BR> Only one symbol name can be bound to an input register.<BR>
651</td>
652</tr>
653
654<tr>
655<td align="center" rowspan="2">80030024</td><td> Pragma command output_map is invalid format.</td>
656</tr>
657<tr>
658<td>
659The <CODE>#pragma output_map</CODE> statement is invalid.<br />
660</td>
661</tr>
662
663<tr>
664<td align="center" rowspan="2">80030025</td><td> Invalid data name is specified for pragma command output_map.</td>
665</tr>
666<tr>
667<td>
668An invalid data attribute name has been specified in a <CODE>#pragma output_map</CODE> statement.<BR>
669</td>
670</tr>
671
672<tr>
673<td align="center" rowspan="2">8003002c</td><td> Specified register is already mapped.</td>
674</tr>
675<tr>
676<td>
677The register specified in a <CODE>#pragma output_map</CODE> statement has already been specified for another <CODE>output_map</CODE>.<BR>
678</td>
679</tr>
680
681<tr>
682<td align="center" rowspan="2">8003002d</td><td> Specified attribute is already mapped.</td>
683</tr>
684<tr>
685<td>
686The data attribute name specified in a <CODE>#pragma output_map</CODE> statement has already been specified for another <CODE>output_map</CODE>.<BR>
687</td>
688</tr>
689
690<tr>
691<td align="center" rowspan="2">80030033</td><td> If all textures are mapped, texture1 and texture2 need to be mapped to same register.</td>
692</tr>
693<tr>
694<td>
695When all textures have been defined using a <CODE>#pragma output_map</CODE> statement, <CODE>texture1</CODE> and <CODE>texture2</CODE> must be mapped to the same register.<BR>
696</td>
697</tr>
698
699<tr>
700<td align="center" rowspan="2">80030034</td><td> comment /* */ is not closed.</td>
701</tr>
702<tr>
703<td>
704A comment of the form /* ... */ has not been terminated correctly.<br />
705</td>
706</tr>
707
708</tbody>
709</table>
710</div>
711
712
713<a name="8004xxxx"><h4>8004xxxx</h4></a>
714
715<div class="table">
716<table border="1">
717<thead>
718<tr>
719<th align="center">Error Code</th>
720<th align="center">Message / Description</th>
721</tr>
722</thead>
723<tbody>
724
725<tr>
726<td align="center" rowspan="2">80040001</td><td> No vertex shader instruction.</td>
727</tr>
728<tr>
729<td>
730No shader instruction has been coded.<BR>
731</td>
732</tr>
733
734<tr>
735<td align="center" rowspan="2">80040005</td><td> loop instruction is not closed by endloop.</td>
736</tr>
737<tr>
738<td>
739The assembler cannot find the <CODE>endloop</CODE> instruction that corresponds to the given <CODE>loop</CODE> instruction.
740</td>
741</tr>
742
743<tr>
744<td align="center" rowspan="2">80040007</td><td> if or else instruction is not closed by endif.</td>
745</tr>
746<tr>
747<td>
748The assembler cannot find the <CODE>endif</CODE> instruction that corresponds to the given <CODE>ifc</CODE> or <CODE>ifb</CODE> instruction.<BR>
749</td>
750</tr>
751
752<tr>
753<td align="center" rowspan="2">80040009</td><td> Unknown instruction.</td>
754</tr>
755<tr>
756<td>
757An unknown shader instruction has been coded.<BR>
758</td>
759</tr>
760
761<tr>
762<td align="center" rowspan="2">8004000c</td><td> The number of operand is short.</td>
763</tr>
764<tr>
765<td>
766There are not enough operands.<BR>
767</td>
768</tr>
769
770<tr>
771<td align="center" rowspan="2">8004000d</td><td> There are some extra operands.</td>
772</tr>
773<tr>
774<td>
775An unnecessary operand or operands have been specified.<BR>
776</td>
777</tr>
778
779<tr>
780<td align="center" rowspan="2">8004000e</td><td> &ldquo;operand&rdquo; is unknown operand type.</td>
781</tr>
782<tr>
783<td>
784An operand of unknown type has been specified.<BR>
785</td>
786</tr>
787
788<tr>
789<td align="center" rowspan="2">8004000f</td><td> &ldquo;operand&rdquo; is invalid format operand.</td>
790</tr>
791<tr>
792<td>
793An operand has been specified in an invalid format.<BR>
794</td>
795</tr>
796
797<tr>
798<td align="center" rowspan="2">80040010</td><td> &ldquo;operand&rdquo; is invalid offset.</td>
799</tr>
800<tr>
801<td>
802The given register offset is invalid.<BR>
803</td>
804</tr>
805
806<tr>
807<td align="center" rowspan="2">80040011</td><td> &ldquo;operand&rdquo; is invalid address register offset.</td>
808</tr>
809<tr>
810<td>
811The offset given for the address register is invalid.<BR>
812</td>
813</tr>
814
815<tr>
816<td align="center" rowspan="2">80040012</td><td> &ldquo;operand&rdquo; include unknown component.</td>
817</tr>
818<tr>
819<td>
820An unknown component is specified.<BR>
821</td>
822</tr>
823
824<tr>
825<td align="center" rowspan="2">80040015</td><td> break instruction is not between loop and endloop.</td>
826</tr>
827<tr>
828<td>
829There is no <CODE>break</CODE> instruction between the given <CODE>loop</CODE> and <CODE>endloop</CODE> instructions.<BR>
830</td>
831</tr>
832
833<tr>
834<td align="center" rowspan="2">80040016</td><td> loop instruction nest achieved limit.</td>
835</tr>
836<tr>
837<td>
838The number of <CODE>loop</CODE> instructions exceeds the maximum number that can be nested.<BR> <CODE>loop</CODE> instructions can be nested up to four levels deep.<BR>
839</td>
840</tr>
841
842<tr>
843<td align="center" rowspan="2">80040017</td><td> Correspondent loop instruction is not found.</td>
844</tr>
845<tr>
846<td>
847The assembler cannot find the <CODE>loop</CODE> instruction that corresponds to the given <CODE>endloop</CODE> instruction.<BR>
848</td>
849</tr>
850
851<tr>
852<td align="center" rowspan="2">8004001a</td><td> if instruction nest achieved limit.</td>
853</tr>
854<tr>
855<td>
856The number of <CODE>ifb</CODE> or <CODE>ifc</CODE> instructions exceeds the maximum number that can be nested.<BR> <CODE>ifb</CODE> and <CODE>ifc</CODE> instructions can be nested up to a total of eight times.<BR>
857</td>
858</tr>
859
860<tr>
861<td align="center" rowspan="2">8004001b</td><td> Correspondent if instruction is not found.</td>
862</tr>
863<tr>
864<td>
865The assembler cannot find the <CODE>ifc</CODE> or <CODE>ifb</CODE> instruction that corresponds to the given <CODE>else</CODE> instruction.<BR>
866</td>
867</tr>
868
869<tr>
870<td align="center" rowspan="2">8004001d</td><td> loop instruction is not closed, but ret instruction is called.</td>
871</tr>
872<tr>
873<td>
874An <CODE>ret</CODE> instruction cannot be placed between <CODE>loop</CODE> and <CODE>endloop</CODE> instructions.<BR>
875</td>
876</tr>
877
878<tr>
879<td align="center" rowspan="2">8004001f</td><td> if else instruction is not closed, but ret instruction is called.</td>
880</tr>
881<tr>
882<td>
883An <CODE>ret</CODE> instruction cannot be placed between an <CODE>ifc</CODE>, <CODE>ifb</CODE>, or <CODE>else</CODE> instruction and an <CODE>endif</CODE> instruction.<BR>
884</td>
885</tr>
886
887<tr>
888<td align="center" rowspan="2">80040021</td><td> &ldquo;operand&rdquo; is invalid format operand.</td>
889</tr>
890<tr>
891<td>
892An operand has been specified in an invalid format.<BR>
893</td>
894</tr>
895
896<tr>
897<td align="center" rowspan="2">80040022</td><td> &ldquo;operand&rdquo; is invalid index.</td>
898</tr>
899<tr>
900<td>
901An invalid index has been specified for the operand register.<BR>
902</td>
903</tr>
904
905<tr>
906<td align="center" rowspan="2">80040023</td><td> &ldquo;operand&rdquo; is invalid format operand.</td>
907</tr>
908<tr>
909<td>
910Parentheses used to specify the offset for the operand register are not paired correctly.<BR>
911</td>
912</tr>
913
914<tr>
915<td align="center" rowspan="2">80040024</td><td> &ldquo;operand&rdquo; is invalid offset.</td>
916</tr>
917<tr>
918<td>
919An invalid offset has been specified for the operand register.<BR>
920</td>
921</tr>
922
923<tr>
924<td align="center" rowspan="2">80040025</td><td> &ldquo;operand&rdquo; is invalid offset.</td>
925</tr>
926<tr>
927<td>
928A register that cannot be used in an index specification is being used for the offset specification of the operand register.
929</td>
930</tr>
931
932<tr>
933<td align="center" rowspan="2">80040026</td><td> &ldquo;operand&rdquo; is invalid offset.</td>
934</tr>
935<tr>
936<td>
937An invalid index has been specified for the operand register.<BR>
938</td>
939</tr>
940
941<tr>
942<td align="center" rowspan="2">80040027</td><td> Correspondent if instruction is not found.</td>
943</tr>
944<tr>
945<td>
946The assembler cannot find the <CODE>ifc</CODE> or <CODE>ifb</CODE> instruction that corresponds to the given <CODE>endif</CODE> instruction.<BR>
947</td>
948</tr>
949
950<tr>
951<td align="center" rowspan="2">8004002a</td><td> Const register definition is duplicate.</td>
952</tr>
953<tr>
954<td>
955The floating point constant register defined by the given <CODE>def</CODE> instruction has been defined again elsewhere.<BR>
956</td>
957</tr>
958
959<tr>
960<td align="center" rowspan="2">8004002b</td><td> Bool register definition is duplicate.</td>
961</tr>
962<tr>
963<td>
964The boolean register defined by the given <CODE>defb</CODE> instruction has been defined again elsewhere.<BR>
965</td>
966</tr>
967
968<tr>
969<td align="center" rowspan="2">8004002c</td><td> Integer register definition is duplicate.</td>
970</tr>
971<tr>
972<td>
973The integer register defined by the given <CODE>defi</CODE> instruction has been defined again elsewhere.<BR>
974</td>
975</tr>
976
977<tr>
978<td align="center" rowspan="2">80040031</td><td> &ldquo;label name&rdquo; is already used label name.</td>
979</tr>
980<tr>
981<td>
982The same label name is being used elsewhere.<BR>
983</td>
984</tr>
985
986<tr>
987<td align="center" rowspan="2">80040032</td><td> Invalid label name is specified.</td>
988</tr>
989<tr>
990<td>
991The label name includes an invalid string.<BR> Label names must consist of ASCII alphanumeric characters and may include an underscore (&quot;_&quot;).<BR>
992</td>
993</tr>
994
995<tr>
996<td align="center" rowspan="2">80040035</td><td> Error occurred while replacing macro instruction.</td>
997</tr>
998<tr>
999<td>
1000An error occurred while replacing a macro instruction.<BR> Check whether a floating point const register automatically defined by <CODE>sincos</CODE> (for instance) has already been defined using a <CODE>def</CODE> instruction.
1001</td>
1002</tr>
1003
1004<tr>
1005<td align="center" rowspan="2">80040039</td><td> Cannot break from if statement.</td>
1006</tr>
1007<tr>
1008<td>
1009A <CODE>break</CODE> instruction cannot be placed in code controlled by an <CODE>ifb</CODE> or <CODE>ifc</CODE> instruction.<BR>
1010</td>
1011</tr>
1012
1013<tr>
1014<td align="center" rowspan="2">8004003a</td><td> ret instruction cannot be used just after endloop or endif.</td>
1015</tr>
1016<tr>
1017<td>
1018An <CODE>ret</CODE> instruction cannot be called immediately after an <CODE>endloop</CODE> or <CODE>endif</CODE> instruction.<BR>
1019</td>
1020</tr>
1021
1022<tr>
1023<td align="center" rowspan="2">8004003b</td><td>At least 1 instruction need to be between if and else.</td>
1024</tr>
1025<tr>
1026<td>
1027At least one assembler instruction must be included between an <CODE>ifb</CODE> or <CODE>ifc</CODE> instruction and the corresponding <CODE>else</CODE> instruction.
1028</td>
1029</tr>
1030
1031<tr>
1032<td align="center" rowspan="2">8004003c</td><td>At least one instruction needs to be between <CODE>else</CODE> and <CODE>endif</CODE>.</td>
1033</tr>
1034<tr>
1035<td>
1036At least one assembler instruction must be included between an <CODE>else</CODE> instruction and the corresponding <CODE>endif</CODE> instruction.<BR>
1037</td>
1038</tr>
1039
1040<tr>
1041<td align="center" rowspan="2">8004003d</td><td>def instruction cannot specify the register defined by pragma bind_symbol.</td>
1042</tr>
1043<tr>
1044<td>
1045Registers specified in a <CODE>#pragma bind_symbol</CODE> statement cannot be specified in a <CODE>def</CODE> instruction.<br />
1046</td>
1047</tr>
1048
1049<tr>
1050<td align="center" rowspan="2">8004003e</td><td>defb instruction cannot specify the register defined by pragma bind_symbol.</td>
1051</tr>
1052<tr>
1053<td>
1054Registers specified in a <CODE>#pragma bind_symbol</CODE> statement cannot be specified in a <CODE>defb</CODE> instruction.<br />
1055</td>
1056</tr>
1057
1058<tr>
1059<td align="center" rowspan="2">8004003f</td><td>defi instruction cannot specify the register defined by pragma bind_symbol.</td>
1060</tr>
1061<tr>
1062<td>
1063Registers specified in a <CODE>#pragma bind_symbol</CODE> statement cannot be specified in a <CODE>defi</CODE> instruction.<br />
1064</td>
1065</tr>
1066
1067<tr>
1068<td align="center" rowspan="2">80040040</td><td>At least 1 instruction need to be between loop and endloop.</td>
1069</tr>
1070<tr>
1071<td>
1072At least one assembler instruction must be included between a <CODE>loop</CODE> instruction and the corresponding <CODE>endloop</CODE> instruction.<BR>
1073</td>
1074</tr>
1075
1076<tr>
1077<td align="center" rowspan="2">80040041</td><td>mova cannot be called continuously.</td>
1078</tr>
1079<tr>
1080<td>
1081The <CODE>mova</CODE> instruction cannot be called consecutively.<BR>
1082</td>
1083</tr>
1084
1085<tr>
1086<td align="center" rowspan="2">80040042</td><td> ret cannot be called just after jpb and jpc.</td>
1087</tr>
1088<tr>
1089<td>
1090An <CODE>ret</CODE> instruction cannot be called immediately after a <CODE>jpb</CODE> or <CODE>jpc</CODE> instruction.<BR>
1091</td>
1092</tr>
1093
1094</tbody>
1095</table>
1096</div>
1097
1098
1099<a name="8005xxxx"><h4>8005xxxx</h4></a>
1100
1101<div class="table">
1102<table border="1">
1103<thead>
1104<tr>
1105<th align="center">Error Code</th>
1106<th align="center">Message / Description</th>
1107</tr>
1108</thead>
1109<tbody>
1110
1111<tr>
1112<td align="center" rowspan="2">80050001</td><td> Cannot open output file.</td>
1113</tr>
1114<tr>
1115<td>
1116The output file cannot be opened.<BR> Check whether there is another file having the same name with a read-only attribute.<BR>
1117</td>
1118</tr>
1119
1120<tr>
1121<td align="center" rowspan="2">80050003</td><td> The size of swizzle register is short.</td>
1122</tr>
1123<tr>
1124<td>
1125The number of swizzling or masking patterns exceeds the upper limit.<BR>
1126</td>
1127</tr>
1128
1129<tr>
1130<td align="center" rowspan="2">80050005</td><td> <CODE>ret</CODE> instruction cannot be found for Label &ldquo;label name.&rdquo;</td>
1131</tr>
1132<tr>
1133<td>
1134An <CODE>ret</CODE> instruction has not been set for the label.<BR> An <CODE>ret</CODE> instruction is required for labels called as subroutines.<BR>
1135</td>
1136</tr>
1137
1138<tr>
1139<td align="center" rowspan="2">80050007</td><td> The number of label is too big.</td>
1140</tr>
1141<tr>
1142<td>
1143The number of labels cannot exceed 65535.<BR>
1144</td>
1145</tr>
1146
1147<tr>
1148<td align="center" rowspan="2">8005000a</td><td> The exceptional jump is detected.</td>
1149</tr>
1150<tr>
1151<td>
1152An exceptional jump is being made.<BR> See &quot;Instructions That Cannot be Continuously Called.&quot;
1153</td>
1154</tr>
1155
1156<tr>
1157<td align="center" rowspan="2">8005000b</td><td> Cannot jump out from if statement and loop statement.</td>
1158</tr>
1159<tr>
1160<td>
1161An exceptional jump cannot be made using the <CODE>jbp</CODE> or <CODE>jpc</CODE> instructions from within a pair of <CODE>ifc</CODE> or <CODE>ifb</CODE> and <CODE>endif</CODE> instructions, or from within a pair of <CODE>loop</CODE> and <CODE>endloop</CODE> instructions.<BR>
1162</td>
1163</tr>
1164
1165<tr>
1166<td align="center" rowspan="2">8005000c</td><td> breakc cannot be called just before endloop instruction.</td>
1167</tr>
1168<tr>
1169<td>
1170The <CODE>breakc</CODE> instruction cannot be called immediately before an <CODE>endloop</CODE> instruction.<BR>
1171</td>
1172</tr>
1173
1174<tr>
1175<td align="center" rowspan="2">8005000d</td><td> jpb and jpc cannot be called just before endloop instruction.</td>
1176</tr>
1177<tr>
1178<td>
1179A <CODE>jpb</CODE> or <CODE>jpc</CODE> instruction cannot be called immediately before an <CODE>endloop</CODE> instruction.<BR>
1180</td>
1181</tr>
1182
1183<tr>
1184<td align="center" rowspan="2">8005000e</td><td> jpb and jpc cannot be called just before endif instruction.</td>
1185</tr>
1186<tr>
1187<td>
1188A <CODE>jpb</CODE> or <CODE>jpc</CODE> instruction cannot be called immediately before an <CODE>endif</CODE> instruction.<BR>
1189</td>
1190</tr>
1191
1192<tr>
1193<td align="center" rowspan="2">8005000f</td><td> jpb and jpc cannot be called just before else instruction.</td>
1194</tr>
1195<tr>
1196<td>
1197A <CODE>jpb</CODE> or <CODE>jpc</CODE> instruction cannot be called immediately before an <CODE>else</CODE> instruction.<BR>
1198</td>
1199</tr>
1200
1201<tr>
1202<td align="center" rowspan="2">80050010</td><td> jpb and jpc cannot jump into if statement and loop statement.</td>
1203</tr>
1204<tr>
1205<td>
1206An internal jump using the <CODE>jpb</CODE> or <CODE>jpc</CODE> instruction cannot be made inside a pair of <CODE>if</CODE> and <CODE>endif</CODE> instructions or a pair of <CODE>loop</CODE> and <CODE>endloop</CODE> instructions.<BR>
1207</td>
1208</tr>
1209
1210</tbody>
1211</table>
1212</div>
1213
1214
1215<a name="8006xxxx"><h4>8006xxxx</h4></a>
1216
1217<div class="table">
1218<table border="1">
1219<thead>
1220<tr>
1221<th align="center">Error Code</th>
1222<th align="center">Message / Description</th>
1223</tr>
1224</thead>
1225<tbody>
1226
1227<tr>
1228<td align="center" rowspan="2">80060004</td><td> &ldquo;operand&rdquo; is invalid operand type.</td>
1229</tr>
1230<tr>
1231<td>
1232An operand that is not supported by a shader instruction has been specified.<BR>
1233</td>
1234</tr>
1235
1236<tr>
1237<td align="center" rowspan="2">80060005</td><td> Value cannot be specified for &ldquo;operand&rdquo;.</td>
1238</tr>
1239<tr>
1240<td>
1241A direct value cannot be specified for the operand.<BR>
1242</td>
1243</tr>
1244
1245<tr>
1246<td align="center" rowspan="2">80060006</td><td> Index cannot be specified for &ldquo;operand&rdquo;.</td>
1247</tr>
1248<tr>
1249<td>
1250A register number cannot be specified for the operand.<BR>
1251</td>
1252</tr>
1253
1254<tr>
1255<td align="center" rowspan="2">80060007</td><td>Component cannot be specified for &ldquo;operand&rdquo;.</td>
1256</tr>
1257<tr>
1258<td>
1259A component cannot be specified for the operand.<BR>
1260</td>
1261</tr>
1262
1263<tr>
1264<td align="center" rowspan="2">80060009</td><td> &lsquo; - &rsquo; cannot be specified for &quot;operand&quot;.</td>
1265</tr>
1266<tr>
1267<td>
1268&quot;-&quot; cannot be specified for the operand.<br />
1269</td>
1270</tr>
1271
1272<tr>
1273<td align="center" rowspan="2">8006000b</td><td> Offset index cannot be specified for &ldquo;operand&rdquo;.</td>
1274</tr>
1275<tr>
1276<td>
1277An index offset cannot be specified for the operand.<BR>
1278</td>
1279</tr>
1280
1281<tr>
1282<td align="center" rowspan="2">8006000c</td><td> Address register offset cannot be specified for &ldquo;operand&rdquo;.</td>
1283</tr>
1284<tr>
1285<td>
1286An address register index offset cannot be specified for the operand.<BR>
1287</td>
1288</tr>
1289
1290<tr>
1291<td align="center" rowspan="2">8006000d</td><td> Loop counter register offset cannot be specified for &ldquo;operand&rdquo;.</td>
1292</tr>
1293<tr>
1294<td>
1295A loop counter index offset cannot be specified for the operand.<BR>
1296</td>
1297</tr>
1298
1299<tr>
1300<td align="center" rowspan="2">8006000e</td><td> Loop counter register and address register cannot be specified together.</td>
1301</tr>
1302<tr>
1303<td>
1304A loop counter register and address register cannot be specified at the same time.<BR>
1305</td>
1306</tr>
1307
1308<tr>
1309<td align="center" rowspan="2">8006000f</td><td> Index is not specified in &ldquo;operand&rdquo;.</td>
1310</tr>
1311<tr>
1312<td>
1313A register number has not been specified for the operand register.<BR>
1314</td>
1315</tr>
1316
1317<tr>
1318<td align="center" rowspan="2">80060010</td><td> Invalid index is specified in &ldquo;operand&rdquo;.</td>
1319</tr>
1320<tr>
1321<td>
1322The register number of the operand exceeds the number of registers.<BR>
1323</td>
1324</tr>
1325
1326<tr>
1327<td align="center" rowspan="2">80060011</td><td> Invalid mask is specified for dest.</td>
1328</tr>
1329<tr>
1330<td>
1331Masking has not been specified correctly for the operand dest.<BR> Specify masking in the order of x, y, z, w.<BR>
1332</td>
1333</tr>
1334
1335<tr>
1336<td align="center" rowspan="2">80060012</td><td> Multiple constant registers cannot be specified at the same time.</td>
1337</tr>
1338<tr>
1339<td>
1340More than one floating point constant register cannot be specified at the same time for an operand.<BR>
1341</td>
1342</tr>
1343
1344<tr>
1345<td align="center" rowspan="2">80060016</td><td> <CODE>Src</CODE> must have one of the following masks. .x|.y|.z|.w.</td>
1346</tr>
1347<tr>
1348<td>
1349Either .x, .y, .z, or .w must be specified for swizzling for the src operand.<BR>
1350</td>
1351</tr>
1352
1353<tr>
1354<td align="center" rowspan="2">80060017</td><td>Src0 and dest cannot be the same.</td>
1355</tr>
1356<tr>
1357<td>
1358The same register cannot be specified for <SPAN class="argument">src0</SPAN> and <SPAN class="argument">dest</SPAN>.
1359</td>
1360</tr>
1361
1362<tr>
1363<td align="center" rowspan="2">80060018</td><td> Src0 cannot have any swizzle except the default swizzle (.xyzw)</td>
1364</tr>
1365<tr>
1366<td>
1367Swizzling other than .xyzw cannot be specified src0.<BR>
1368</td>
1369</tr>
1370
1371<tr>
1372<td align="center" rowspan="2">80060019</td><td> <CODE>Dest</CODE> must have one of the following masks. .x|.y|.z|.xy|.xz|.yz|.xyz.</td>
1373</tr>
1374<tr>
1375<td>
1376Any one of .x, .y, .z, .xy, .xz, .yz, or .xyz must be specified as the masking for dest.<BR>
1377</td>
1378</tr>
1379
1380<tr>
1381<td align="center" rowspan="2">8006001b</td><td> Dest must have &ldquo;mask pattern&rdquo; mask.</td>
1382</tr>
1383<tr>
1384<td>
1385The masking indicated by the mask pattern must be specified for dest.<BR>
1386</td>
1387</tr>
1388
1389<tr>
1390<td align="center" rowspan="2">8006001f</td><td> Dest and src0 cannot be the same.</td>
1391</tr>
1392<tr>
1393<td>
1394The same register cannot be specified for <SPAN class="argument">dest</SPAN> and <SPAN class="argument">src0</SPAN>.
1395</td>
1396</tr>
1397
1398<tr>
1399<td align="center" rowspan="2">80060020</td><td> Dest and src cannot be the same.</td>
1400</tr>
1401<tr>
1402<td>
1403The same register cannot be specified for <SPAN class="argument">dest</SPAN> and <SPAN class="argument">src</SPAN>.
1404</td>
1405</tr>
1406
1407<tr>
1408<td align="center" rowspan="2">80060021</td><td> <CODE>Src0</CODE> must have one of the following masks. .x|.y|.z|.w.</td>
1409</tr>
1410<tr>
1411<td>
1412Any one of .x, .y, .z, or .w must be specified as the swizzling for src0.<BR>
1413</td>
1414</tr>
1415
1416<tr>
1417<td align="center" rowspan="2">80060022</td><td> <CODE>Src1</CODE> must have one of the following masks. .x|.y|.z|.w.</td>
1418</tr>
1419<tr>
1420<td>
1421Any one of .x, .y, .z, or .w must be specified as the swizzling for src1.<BR>
1422</td>
1423</tr>
1424
1425<tr>
1426<td align="center" rowspan="2">80060023</td><td> Dest and src1 cannot be the same.</td>
1427</tr>
1428<tr>
1429<td>
1430The same register cannot be specified for <SPAN class="argument">dest</SPAN> and <SPAN class="argument">src1</SPAN>.
1431</td>
1432</tr>
1433
1434<tr>
1435<td align="center" rowspan="2">80060024</td><td> All operand must be the different register.</td>
1436</tr>
1437<tr>
1438<td>
1439All operands must have a different register.<BR>
1440</td>
1441</tr>
1442
1443<tr>
1444<td align="center" rowspan="2">80060025</td><td> <CODE>Dest</CODE> must have one of the following masks. .x|.y|.xy.</td>
1445</tr>
1446<tr>
1447<td>
1448Any one of .x, .y, or .xy must be specified as the masking for dest.<BR>
1449</td>
1450</tr>
1451
1452<tr>
1453<td align="center" rowspan="2">80060026</td><td> Source modifier and swizzling cannot be specified for src1 and src2.</td>
1454</tr>
1455<tr>
1456<td>
1457Swizzling and negative signs cannot be specified for src1 and src2.<BR>
1458</td>
1459</tr>
1460
1461<tr>
1462<td align="center" rowspan="2">80060028</td><td> Dest and src1 cannot be the same.</td>
1463</tr>
1464<tr>
1465<td>
1466The same register cannot be specified for <SPAN class="argument">dest</SPAN> and <SPAN class="argument">src1</SPAN>.
1467</td>
1468</tr>
1469
1470<tr>
1471<td align="center" rowspan="2">80060029</td><td> Src1 cannot have any swizzle except the default swizzle (.xyzw)</td>
1472</tr>
1473<tr>
1474<td>
1475Swizzling other than .xyzw cannot be specified for src1.<BR>
1476</td>
1477</tr>
1478
1479<tr>
1480<td align="center" rowspan="2">8006002a</td><td> <CODE>Dest</CODE> must have one of the following masks. .x|.y|.z|.xy|.xz|.yz|.xyz.</td>
1481</tr>
1482<tr>
1483<td>
1484Any one of .x, .y, .z, .xy, .xz, .yz, or .xyz must be specified as the masking for dest.<BR>
1485</td>
1486</tr>
1487
1488<tr>
1489<td align="center" rowspan="2">8006002c</td><td> Source modifier and swizzling cannot be specified for src1.</td>
1490</tr>
1491<tr>
1492<td>
1493Swizzling and negative signs cannot be specified for src1.<BR>
1494</td>
1495</tr>
1496
1497<tr>
1498<td align="center" rowspan="2">8006002d</td><td> Source modifier and swizzling cannot be specified for src2.</td>
1499</tr>
1500<tr>
1501<td>
1502Swizzling and negative signs cannot be specified for src2.<BR>
1503</td>
1504</tr>
1505
1506<tr>
1507<td align="center" rowspan="2">8006002e</td><td> Invalid index is specified in &ldquo;operand&rdquo;.</td>
1508</tr>
1509<tr>
1510<td>
1511An invalid register number has been specified by the operand.<BR> The <CODE>m4x4</CODE> and other instructions specify the first number of the register for the operand. Check whether the register number used after macro expansion exceeds the maximum number of registers.<BR>
1512</td>
1513</tr>
1514
1515<tr>
1516<td align="center" rowspan="2">8006002f</td><td> Constant register cannot be used for src0.</td>
1517</tr>
1518<tr>
1519<td>
1520A floating point constant register cannot be used for src0.<BR>
1521</td>
1522</tr>
1523
1524<tr>
1525<td align="center" rowspan="2">80060030</td><td> Compare mode must be 0 or 1, 2, 3, 4, 5.</td>
1526</tr>
1527<tr>
1528<td>
1529A value from 0 through 5 must be specified for the comparison mode used by the <CODE>cmp</CODE> instruction.<BR>
1530</td>
1531</tr>
1532
1533<tr>
1534<td align="center" rowspan="2">80060031</td><td> Status register bit must be 0 or 1.</td>
1535</tr>
1536<tr>
1537<td>
1538A value of 0 or 1 must be specified for the status register value.<BR>
1539</td>
1540</tr>
1541
1542<tr>
1543<td align="center" rowspan="2">80060032</td><td> Condition mode is 0:OR 1:AND 2:OnlyStatus0 3:OnlyStatus1.</td>
1544</tr>
1545<tr>
1546<td>
1547A condition mode of 0 (OR), 1 (AND), 2 (OnlyStatus0), or 3 (OnlyStatus1) must be specified.<BR>
1548</td>
1549</tr>
1550
1551<tr>
1552<td align="center" rowspan="2">80060033</td><td> Address register component must be x or y.</td>
1553</tr>
1554<tr>
1555<td>
1556x or y must be specified for the address register component.<BR>
1557</td>
1558</tr>
1559
1560<tr>
1561<td align="center" rowspan="2">80060036</td><td> Src0 and src1 cannot be the same.</td>
1562</tr>
1563<tr>
1564<td>
1565The same register cannot be specified for <SPAN class="argument">src0</SPAN> and <SPAN class="argument">src1</SPAN>.
1566</td>
1567</tr>
1568
1569<tr>
1570<td align="center" rowspan="2">80060037</td><td> Src1 and src2 cannot be the same.</td>
1571</tr>
1572<tr>
1573<td>
1574The same register cannot be specified for <SPAN class="argument">src1</SPAN> and <SPAN class="argument">src2</SPAN>.
1575</td>
1576</tr>
1577
1578<tr>
1579<td align="center" rowspan="2">80060038</td><td> Dest and src2 cannot be the same.</td>
1580</tr>
1581<tr>
1582<td>
1583The same register cannot be specified for <SPAN class="argument">dest</SPAN> and <SPAN class="argument">src2</SPAN>.
1584</td>
1585</tr>
1586
1587<tr>
1588<td align="center" rowspan="2">8006003b</td><td> Loop count must be in the range [0, 255].</td>
1589</tr>
1590<tr>
1591<td>
1592The loop count for an integer register defined in a <CODE>defi</CODE> instruction must have a value in the range 0 through 255.<BR>
1593</td>
1594</tr>
1595
1596<tr>
1597<td align="center" rowspan="2">8006003c</td><td> Loop counter initial value must be in the range [0, 255].</td>
1598</tr>
1599<tr>
1600<td>
1601The initial loop counter register value for an integer register defined in a <CODE>defi</CODE> statement must have a value in the range 0 through 255.<BR>
1602</td>
1603</tr>
1604
1605<tr>
1606<td align="center" rowspan="2">8006003d</td><td> Loop counter step must be in the range [-128, 127].</td>
1607</tr>
1608<tr>
1609<td>
1610The loop counter register increment value for an integer register defined in a <CODE>defi</CODE> statement must have a value in the range -128 through 127.<BR>
1611</td>
1612</tr>
1613
1614<tr>
1615<td align="center" rowspan="2">80060040</td><td> Multiple input registers cannot be specified at the same time.</td>
1616</tr>
1617<tr>
1618<td>
1619More than one input register cannot be specified for an src operand at the same time. However, the same register can be registered twice at the same time.<BR> Example)<br/> add r0 , v0 , v0 // Does not result in an error<br/> add r0 , v0, v1 // Results in an error<br />
1620</td>
1621</tr>
1622
1623</tbody>
1624</table>
1625</div>
1626
1627
1628<a name="400xxxxx"><h4>400xxxxx</h4></a>
1629
1630<div class="table">
1631<table border="1">
1632<thead>
1633<tr>
1634<th align="center">Warning Code</th>
1635<th align="center">Warning Message / Description</th>
1636</tr>
1637</thead>
1638<tbody>
1639
1640<tr>
1641<td align="center" rowspan="2">40070001</td><td> Label &ldquo;label name&rdquo; is undefined.</td>
1642</tr>
1643<tr>
1644<td>
1645The label cannot be found.<br/> (This can be resolved through a link if another object includes the label.))<br />
1646</td>
1647</tr>
1648
1649<tr>
1650<td align="center" rowspan="2">40070003</td><td> mova instruction both before else and after endif might cause hardware hang-up.</td>
1651</tr>
1652<tr>
1653<td>
1654A hardware error may result if a <CODE>mova</CODE> instruction is included both immediately before an <CODE>else</CODE> instruction and immediately after an <CODE>endif</CODE> instruction. See &quot;Malfunctions Caused by the mova Instruction.&quot;<BR>
1655</td>
1656</tr>
1657
1658<tr>
1659<td align="center" rowspan="2">40070004</td><td> mova instruction at both first and last code in loop statement might cause hardware hang-up.</td>
1660</tr>
1661<tr>
1662<td>
1663A hardware error may result if a <CODE>mova</CODE> instruction is included both immediately after a <CODE>loop</CODE> instruction and immediately before an <CODE>endloop</CODE> instruction. See &quot;Malfunctions Caused by the mova Instruction.&quot;<BR>
1664</td>
1665</tr>
1666
1667<tr>
1668<td align="center" rowspan="2">400a0001</td><td> The series of four instructions from here might cause hardware hang-up if this instruction stalled more than three clock cycles.</td>
1669</tr>
1670<tr>
1671<td>
1672A series of four instructions matches conditions for a hardware malfunction. If execution stalls for three or more clock cycles on the error line, hardware may malfunction. <BR>  See &quot;Malfunctions Caused by Executing Certain Instruction Sequences.&quot;<BR>
1673</td>
1674</tr>
1675
1676<tr>
1677<td align="center" rowspan="2">400a0002</td><td> The series of four instructions from here might cause hardware hang-up if this instruction stalled more than one clock cycle.</td>
1678</tr>
1679<tr>
1680<td>
1681A series of four instructions matches conditions for a hardware malfunction. If execution stalls for two or more clock cycles on the error line, hardware may malfunction. <BR>  See &quot;Malfunctions Caused by Executing Certain Instruction Sequences.&quot;<BR>
1682</td>
1683</tr>
1684
1685<tr>
1686<td align="center" rowspan="2">400a0003</td><td> mova instruction just before end instruction might cause hardware hang-up.</td>
1687</tr>
1688<tr>
1689<td>
1690Hardware malfunction may result if a <CODE>mova</CODE> instruction is included immediately before an <CODE>end</CODE> instruction.<BR> See &quot;Malfunctions Caused by the mova Instruction.&quot;<BR>
1691</td>
1692</tr>
1693
1694<tr>
1695<td align="center" rowspan="2">400a0004</td><td> mova instruction just before the last instruction writing to output register might cause hardware hang-up.</td>
1696</tr>
1697<tr>
1698<td>
1699Hardware malfunction may result if a <CODE>mova</CODE> instruction is followed by an instruction that writes to an output register, and then followed by an <CODE>end</CODE> instruction. See &quot;Malfunctions Caused by the mova Instruction.&quot;<BR>
1700</td>
1701</tr>
1702
1703<tr>
1704<td align="center" rowspan="2">400a0005</td><td> mova instruction just before branch instruction might cause hardware hang-up if mova stalled for register dependency.</td>
1705</tr>
1706<tr>
1707<td>
1708Hardware malfunction may result if a <CODE>mova</CODE> instruction is included immediately before a branch instruction, and execution stalls if a register depends on an instruction included even before that.<BR> See &quot;Malfunctions Caused by the mova Instruction.&quot;<BR>
1709</td>
1710</tr>
1711
1712<tr>
1713<td align="center" rowspan="2">400a0006</td><td> The <CODE>mova</CODE> instruction and the following two instructions might cause the hardware to hang if a 1-clock cycle stall occurs immediately after the <CODE>mova</CODE> instruction.</td>
1714</tr>
1715<tr>
1716<td>
1717An illegal operation may occur if the instruction immediately after the <CODE>mova</CODE> instruction reads a temporary register and then the <CODE>mova</CODE> instruction and the following two instructions all read an input register or temporary register. For more information, see &quot;Illegal Operations Caused by the Register Dependencies of Instructions Before and After the <CODE>mova</CODE> Instruction.&quot;<br />
1718</td>
1719</tr>
1720
1721
1722</tbody>
1723</table>
1724</div>
1725
1726
1727<h2><a name="history">Revision History</a></h2>
1728    <dl class="history">
1729      <dt>2012/06/20</dt>
1730<dd>Added warning code 400a0006.<br />
1731      </dd>
1732      <dt>2011/12/20</dt>
1733      <dd>Initial version.<br />
1734      </dd>
1735    </dl>
1736<hr><p>CONFIDENTIAL</p></body>
1737</html>