| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2011 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 /* | 7 /* |
| 8 * Internal implementation of the state associated with matching instructions. | 8 * Internal implementation of the state associated with matching instructions. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 * Note: One can assume that two instructions use the same modeled | 95 * Note: One can assume that two instructions use the same modeled |
| 96 * NaClInst iff the pointers are equals. | 96 * NaClInst iff the pointers are equals. |
| 97 */ | 97 */ |
| 98 const NaClInst* inst; | 98 const NaClInst* inst; |
| 99 /* The corresponding expression tree denoted by the matched instruction. */ | 99 /* The corresponding expression tree denoted by the matched instruction. */ |
| 100 NaClExpVector nodes; | 100 NaClExpVector nodes; |
| 101 /* Transient pointer, which is defined each time an instruction is decoded. | 101 /* Transient pointer, which is defined each time an instruction is decoded. |
| 102 * It defines the decoder tables to use to decode the instruction. | 102 * It defines the decoder tables to use to decode the instruction. |
| 103 */ | 103 */ |
| 104 struct NaClDecodeTables* decoder_tables; | 104 struct NaClDecodeTables* decoder_tables; |
| 105 /* True if the instruction is unchanged while dynamically replacing code. |
| 106 * False if the instruction has changed or if code replacement is not being |
| 107 * performed (i.e. normal validation.) |
| 108 */ |
| 109 Bool unchanged; |
| 105 }; | 110 }; |
| 106 | 111 |
| 107 /* Model of an instruction iterator. */ | 112 /* Model of an instruction iterator. */ |
| 108 struct NaClInstIter { | 113 struct NaClInstIter { |
| 109 /* Defines the decoder table to use to decode the instruction. */ | 114 /* Defines the decoder table to use to decode the instruction. */ |
| 110 struct NaClDecodeTables* decoder_tables; | 115 struct NaClDecodeTables* decoder_tables; |
| 111 /* Defines the segment to process */ | 116 /* Defines the segment to process */ |
| 112 struct NaClSegment* segment; | 117 struct NaClSegment* segment; |
| 113 /* Defines the remaining memory to iterate over. */ | 118 /* Defines the remaining memory to iterate over. */ |
| 114 NCRemainingMemory memory; | 119 NCRemainingMemory memory; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 | 161 |
| 157 /* Returns the (undecoded) instruction state of the iterator. Should only | 162 /* Returns the (undecoded) instruction state of the iterator. Should only |
| 158 * be used for testing. | 163 * be used for testing. |
| 159 */ | 164 */ |
| 160 | 165 |
| 161 struct NaClInstState* NaClInstIterGetUndecodedState(struct NaClInstIter* iter); | 166 struct NaClInstState* NaClInstIterGetUndecodedState(struct NaClInstIter* iter); |
| 162 | 167 |
| 163 EXTERN_C_END | 168 EXTERN_C_END |
| 164 | 169 |
| 165 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_NC_INST_STATE_INTERNA
L_H_ */ | 170 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_NC_INST_STATE_INTERNA
L_H_ */ |
| OLD | NEW |