OLD | NEW |
| (Empty) |
1 This directory tests the x86-32 instruction decoder and instruction | |
2 validator. It does so using (human readable) text files. | |
3 | |
4 Note: The .dis files correspond to using the (new) 32-bit full | |
5 decoder. By looking at the corresponding outputs, it is clear that the | |
6 full decoder needs work. See | |
7 http://code.google.com/p/nativeclient/issues/detail?id=2171 for | |
8 corresponding issue that has already been filed. | |
9 | |
10 For a test FOO, the following files are defined: | |
11 | |
12 FOO.hex | |
13 | |
14 Textual file defining the sequence of hexidecimal bytes in the code | |
15 segment for testing. Comments on what the code segment is intended | |
16 to test are at the top of the file, and begin with a pound (#) | |
17 symbol. | |
18 | |
19 By default, the starting program counter is at 0. If you want it at | |
20 a different place, make the first non-comment line of the form | |
21 '@XXX' where XXX should be used as the starting program counter. | |
22 | |
23 FOO.dis | |
24 | |
25 Output generated by the full instruction decoder for the | |
26 corresponding FOO.hex file. | |
27 | |
28 Note: This file is generated by running: | |
29 | |
30 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
31 --full_decoder --hex_text=- < FOO.hex | |
32 | |
33 FOO.vdis | |
34 | |
35 Output generated by the corresponding (x86-32) validator | |
36 instruction decoder for the corresponding FOO.hex file. | |
37 | |
38 Note: This file is generated by running: | |
39 | |
40 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
41 --validator_decoder --hex_text=- < FOO.hex | |
42 | |
43 FOO.nval | |
44 | |
45 Output generated by the x86-32 (segment based) validator for the | |
46 corresponding FOO.hex file. Jump errors are summarized as in | |
47 sel_ldr. | |
48 | |
49 Note: This file is generated by running: | |
50 | |
51 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
52 --hex_text=- --max_errors=-1 --detailed=false \ | |
53 --alignment=32 --cpuid-all < FOO.hex | |
54 | |
55 FOO.nval16 | |
56 | |
57 Output generated by the x86-32 (segment based) validator for the | |
58 corresponding FOO.hex file. Assumes that the block size is 16 bytes | |
59 instead of 32. Jump errors are summarized as in sel_ldr. | |
60 | |
61 Note: This file is generated by running: | |
62 | |
63 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
64 --hex_text=- --max_errors=-1 --detailed=false \ | |
65 --alignment=16 --cpuid-all < FOO.hex | |
66 | |
67 FOO.nvals | |
68 | |
69 Output generated by the x86-32 (segment based) validator for the | |
70 corresponding FOO.hex file. Adds summary information. Jump errors | |
71 are summarized as in sel_ldr. | |
72 | |
73 Note: This file is generated by running: | |
74 | |
75 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
76 --hex_text=- --max_errors=-1 --stats \ | |
77 --alignment=32 --detailed=false --cpuid-all < FOO.hex | |
78 | |
79 FOO.nvals16 | |
80 | |
81 Output generated by the x86-32 (segment based) validator for the | |
82 corresponding FOO.hex file. Adds summary information, as well as | |
83 assume that the block size is 16 bytes instead of 32. Jump errors | |
84 are summarized as in sel_ldr. | |
85 | |
86 Note: This file is generated by running: | |
87 | |
88 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
89 --hex_text=- --max_errors=-1 --stats \ | |
90 --alignment=16 --detailed=false --cpuid-all < FOO.hex | |
91 | |
92 FOO.nvald | |
93 | |
94 Output generated by the x86-32 (segment based) validator for the | |
95 corresponding FOO.hex file. Jump errors are detailed, describing | |
96 each (individual) jump instruction that violates the jump criteria | |
97 of native client. | |
98 | |
99 Note: This file is generated by running: | |
100 | |
101 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
102 --hex_text=- --max_errors=-1 --alignment=32 \ | |
103 --detailed --cpuid-all < FOO.hex | |
104 | |
105 FOO.nvald16 | |
106 | |
107 Output generated by the x86-32 (segment based) validator for the | |
108 corresponding FOO.hex file. Assumes that the block size is 16 bytes | |
109 instead of 32. Jump errors are detailed, describing each | |
110 (individual) jump instruction that violates the jump criteria of | |
111 native client. | |
112 | |
113 Note: This file is generated by running: | |
114 | |
115 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
116 --hex_text=- --max_errors=-1 --alignment=16 \ | |
117 --detailed --cpuid-all < FOO.hex | |
118 | |
119 FOO.nvals | |
120 | |
121 Output generated by the x86-32 (segment based) validator for the | |
122 corresponding FOO.hex file. Adds summary information. Jump errors | |
123 are detailed. | |
124 | |
125 Note: This file is generated by running: | |
126 | |
127 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
128 --hex_text=- --max_errors=-1 --stats --alignment=32 \ | |
129 --detailed --cpuid--all < FOO.hex | |
130 | |
131 FOO.nvals16 | |
132 | |
133 Output generated by the x86-32 (segment based) validator for the | |
134 corresponding FOO.hex file. Adds summary information, as well as | |
135 assume that the block size is 16 bytes instead of 32. Jump errors | |
136 are detailed, describing each (individual) jump instruction that | |
137 violates the jump criteria of native client. | |
138 | |
139 Note: This file is generated by running: | |
140 | |
141 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
142 --hex_text=- --max_errors=-1 --stats --alignment=16 \ | |
143 --detailed --cpuid-all < FOO.hex | |
144 | |
145 FOO.nexe | |
146 | |
147 Run the installed instruction decoder and validator on the | |
148 predefined compiled NACL executable FOO.nexe. | |
149 | |
150 In addition, the following non-unit tests are run: | |
151 | |
152 ncdis_FOO.input | |
153 | |
154 Self documenting file for the instruction decoder, assuming ncdis | |
155 was run on each instruction specified in the input file. It is | |
156 based on using the full decoder. | |
157 | |
158 Note: This input matches the generated output (i.e. self | |
159 documenting) by running: | |
160 | |
161 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
162 --self_document --full_decoder --commands=- \ | |
163 < ncdis_FOO.input | |
164 | |
165 ncdis_FOO.vinput | |
166 | |
167 Self documenting file for the instruction decoder, assuming ncdis | |
168 was run on each insruction specified in the input file. It is based | |
169 on the validator decoder. | |
170 | |
171 Note: This input matches the generated output (i.e. self | |
172 documenting) by running: | |
173 | |
174 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
175 --self_document --validator_decoder --commands=- | |
176 < ncdis_FOO.vinput | |
177 | |
178 ncdis_FOO.internal | |
179 | |
180 Output generated by the instruction decoder, generated from the | |
181 input file ncdis_FOO.input. After each printed instruction, the | |
182 internal form of the matched instruction, and the corresponding | |
183 expression tree is also printed. | |
184 | |
185 Uses the full decoder of ncdis to decode the instruction. | |
186 | |
187 Note: This file is generated by running: | |
188 | |
189 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
190 --internal --full_decoder --commands=- \ | |
191 < ncdis_iter_test.input | |
192 | |
193 ncdis_FOO.vinternal | |
194 | |
195 Output generated by the instruction decoder, generated from the | |
196 input file ncdis_FOO.input. | |
197 | |
198 Uses the validator decoder of ncdis to decode the instruction. | |
199 | |
200 Note: This file is generated by running: | |
201 | |
202 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
203 --internal --validator_decoder --commands=- \ | |
204 < ncdis_FOO.input | |
205 | |
206 modeled_insts.txt | |
207 | |
208 Automatically generated text describing the instruction set that | |
209 the full decoder understands. | |
210 | |
211 Note: This file is generated by running: | |
212 | |
213 > scons-out/.../obj/src/trusted/validator_x86/ncdecode_tablegen \ | |
214 -m32 -documentation | |
215 | |
OLD | NEW |