| 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 |