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 |