OLD | NEW |
| (Empty) |
1 This directory tests the x86-64 instruction decoder and instruction | |
2 validator. It does so using (human readable) text files. | |
3 | |
4 For a test FOO, the following files are defined: | |
5 | |
6 FOO.hex | |
7 | |
8 Textual file defining the sequence of hexidecimal bytes in the code | |
9 segment for testing. Comments on what the code segment is intended | |
10 to test are at the top of the file, and begin with a pound (#) | |
11 symbol. | |
12 | |
13 By default, the starting program counter is at 0. If you want it at | |
14 a different place, make the first non-comment line of the form '@XXX' | |
15 where XXX should be used as the starting program counter. | |
16 | |
17 FOO.dis | |
18 | |
19 Output generated by the full instruction decoder for the | |
20 corresponding FOO.hex file. | |
21 | |
22 Note: This file is generated by running: | |
23 | |
24 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
25 --full_decoder --hex_text=- < FOO.hex | |
26 | |
27 FOO.vdis | |
28 | |
29 Output generated by corresponding (x86-64) validator instruction | |
30 decoder for the corresponding FOO.hex file. | |
31 | |
32 Note: This file is generated by running: | |
33 | |
34 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
35 --validator_decoder --hex_text=- < FOO.hex | |
36 | |
37 FOO.val | |
38 | |
39 Output generated by the x86-64 write sandboxing, register based SFI | |
40 validator for the corresponding FOO.hex file. | |
41 | |
42 Note: This file is generated by running: | |
43 | |
44 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
45 --write_sfi --hex_text=- --max_errors=-1 \ | |
46 --annotate=false --cpuid-all < FOO.hex | |
47 | |
48 FOO.rval | |
49 | |
50 Output generated by the x86-64 read/write sandboxing, register based SFI | |
51 validator for the corresponding FOO.hex file. | |
52 | |
53 Note: This file is generated by running: | |
54 | |
55 > scons-out/.../obj/src/trusted/validator_x86/ncval \ | |
56 --readwrite_sfi -hex_text=- --max_errors=-1 \ | |
57 --annotate=false --cpuid-all --detailed=false < FOO.hex | |
58 | |
59 FOO.rvala | |
60 | |
61 Output generated by the x86-64 read/write sandboxing, register | |
62 based SFI validator for the corresponding FOO.hex file. Generates | |
63 annotator messages in the form expected by ncval_annotate.py. | |
64 | |
65 Note: This file is generated by running: | |
66 | |
67 > scons-out/.../obj/src/trusted/validator_x86/ncval | |
68 --readwrite_sfi -hex_text=- --max_errors=-1 \ | |
69 --annotate --cpuid-all < FOO.hex | |
70 | |
71 FOO.nexe | |
72 | |
73 Run the installed instruction decoder and validator on the predefined | |
74 compiled NACL executable FOO.nexe. | |
75 | |
76 In addition, the following non-unit tests are run: | |
77 | |
78 ncdis_FOO.input | |
79 | |
80 Self documenting file for the instruction decoder, assuming ncdis | |
81 was run on each instruction specified in the input file. It is | |
82 based on using the full decoder. | |
83 | |
84 Note: This input matches the generated output (i.e. self | |
85 documenting) by running: | |
86 | |
87 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
88 --self_document --full_decoder --commands=- \ | |
89 < ncdis_test.input | |
90 | |
91 ncdis_FOO.input | |
92 | |
93 Self documenting file for the instruction decoder, assuming ncdis | |
94 was run on each insruction specified in the input file. It is based | |
95 on the validator decoder. | |
96 | |
97 Note: This input matches the generated output (i.e. self | |
98 documenting) by running: | |
99 | |
100 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
101 --self_document --validator_decoder --commands=- | |
102 < ncdis_FOO.vinput | |
103 | |
104 ncdis_FOO.internal | |
105 | |
106 Output generated by the instruction decoder, generated from the | |
107 input file ncdis_FOO.input. After each printed instruction, the | |
108 internal form of the matched instruction, and the corresponding | |
109 expression tree is also printed. | |
110 | |
111 Uses the full decoder of ncdis to decode the instruction. | |
112 | |
113 Note: This file is generated by running: | |
114 | |
115 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
116 --internal --full_decoder --commands=- \ | |
117 < ncdis_iter_test.input | |
118 | |
119 ncdis_FOO.vinternal | |
120 | |
121 Output generated by the instruction decoder, generated from the | |
122 input file ncdis_FOO.input. After each printed instruction, the | |
123 internal form of the matched instruction, and the corresponding | |
124 expression tree is also printed. | |
125 | |
126 Uses the validator decoder of ncdis to decode the instruction. | |
127 | |
128 Note: This file is generated by running: | |
129 | |
130 > scons-out/.../obj/src/trusted/validator_x86/ncdis \ | |
131 --internal --validator_decoder --commands=- \ | |
132 < ncdis_FOO.input | |
133 | |
134 modeled_insts.txt | |
135 | |
136 Automatically generated text describing the instruction set that | |
137 the full decoder understands. | |
138 | |
139 Note: This file is generated by running: | |
140 | |
141 > scons-out/.../obj/src/trusted/validator_x86/ncdecode_tablegen \ | |
142 -m64 -documentation | |
143 | |
144 ncval_reg_sfi_modeled_insts.txt | |
145 | |
146 Automatically generated text describing the instruction set that | |
147 the x86-64 validator decoder understands. | |
148 | |
149 Note: This file is generated by running: | |
150 | |
151 > scons-out/.../obj/src/trusted/validator_x86/ncdecode_tablegen \ | |
152 -m64 -documentation -validator_decoder | |
153 | |
154 ------------------------------------------------------------------ | |
155 | |
156 Note: Files with a cval extension are experimental, and are gold files | |
157 for pre/post conditions of individual instruction. Currently, these | |
158 files are under construction and are incomplete with respect to all | |
159 pre/post conditions. | |
160 | |
161 Known issues with cval files are: | |
162 | |
163 (1) Pre/Post conditions for jumps not (necessarily) being generated | |
164 yet. | |
165 | |
166 (2) Printing Pre/Post conditions for instructions that are illegal. | |
167 For testing purposes, only want if instruction is legal if | |
168 preconditions are met. | |
169 | |
170 (3) Code doesn't handle notion of multiple Pre/Post condition rules | |
171 for an instruction. | |
172 | |
173 (4) Sometimes the same Pre/Post condition is repeated. | |
174 | |
175 | |
OLD | NEW |