| OLD | NEW |
| (Empty) |
| 1 Copyright (c) 2012 The Native Client Authors. All rights reserved. | |
| 2 Use of this source code is governed by a BSD-style license that be | |
| 3 found in the LICENSE file. | |
| 4 | |
| 5 ************************************************************************ | |
| 6 NOTE: The Scons version of enuminst is documented in this file. | |
| 7 It has less functionality than the Makefile version. | |
| 8 ************************************************************************ | |
| 9 | |
| 10 Exhaustive instruction enumeration test for x86 Native Client decoder. | |
| 11 Limited testing of validator. | |
| 12 | |
| 13 SCONS now builds the 32- and 64-bit versions of enuminst. The scons | |
| 14 build incorporates NaCl and Ragel-Deterministic Finite Automata (R-DFA) | |
| 15 validators. It does not include Xed. | |
| 16 | |
| 17 The binaries are available in (for example) | |
| 18 scons-out/opt-linux-x86-64/staging/enuminst | |
| 19 scons-out/opt-linux-x86-32/staging/enuminst | |
| 20 | |
| 21 Some suggestions on running enuminst: | |
| 22 enuminst --legalnacl --legal=nacl --legal=ragel | |
| 23 Compare lengths of instructions that decode for nacl. | |
| 24 Filters out most NaCl illegal instructions. | |
| 25 | |
| 26 enuminst --illegal=nacl --legal=ragel --print=ragel | |
| 27 Identifies instructions legal for R-DFA but not nacl. | |
| 28 | |
| 29 enuminst --nacllegal --legal=nacl --illegal=ragel --print=nacl | |
| 30 Identifies instructions legal for nacl but not R-DFA. | |
| 31 | |
| 32 The NaCl validator supports a partial-validation mode, which for a | |
| 33 a single instruction determines if it could or could not appear in | |
| 34 a legal Native Client module. Instructions such as "ret" can never | |
| 35 appear in a valid NaCl module, and are rejected. Instructions such | |
| 36 as "jmp *%eax" can appear, so they are accepted. | |
| OLD | NEW |