| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2012 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 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_V2_MODEL_H | 7 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_V2_MODEL_H |
| 8 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_V2_MODEL_H | 8 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_V2_MODEL_H |
| 9 | 9 |
| 10 /* | 10 /* |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 }; | 251 }; |
| 252 | 252 |
| 253 | 253 |
| 254 // The number of bits in an ARM instruction. | 254 // The number of bits in an ARM instruction. |
| 255 static const int kArm32InstSize = 32; | 255 static const int kArm32InstSize = 32; |
| 256 | 256 |
| 257 // The number of bits in a word of a THUMB instruction. | 257 // The number of bits in a word of a THUMB instruction. |
| 258 static const int kThumbWordSize = 16; | 258 static const int kThumbWordSize = 16; |
| 259 | 259 |
| 260 // Special ARM instructions for sandboxing. | 260 // Special ARM instructions for sandboxing. |
| 261 static const uint32_t kLiteralPoolHead = NACL_INSTR_LITERAL_POOL_HEAD; | 261 static const uint32_t kLiteralPoolHead = NACL_INSTR_ARM_LITERAL_POOL_HEAD; |
| 262 static const uint32_t kBreakpoint = NACL_INSTR_BREAKPOINT; | 262 static const uint32_t kBreakpoint = NACL_INSTR_ARM_BREAKPOINT; |
| 263 static const uint32_t kHaltFill = NACL_INSTR_HALT_FILL; | 263 static const uint32_t kHaltFill = NACL_INSTR_ARM_HALT_FILL; |
| 264 static const uint32_t kAbortNow = NACL_INSTR_ABORT_NOW; | 264 static const uint32_t kAbortNow = NACL_INSTR_ARM_ABORT_NOW; |
| 265 static const uint32_t kFailValidation = NACL_INSTR_FAIL_VALIDATION; | 265 static const uint32_t kFailValidation = NACL_INSTR_ARM_FAIL_VALIDATION; |
| 266 | 266 |
| 267 // Models an instruction, either a 32-bit ARM instruction of unspecified type, | 267 // Models an instruction, either a 32-bit ARM instruction of unspecified type, |
| 268 // or one word (16-bit) and two word (32-bit) THUMB instructions. | 268 // or one word (16-bit) and two word (32-bit) THUMB instructions. |
| 269 // | 269 // |
| 270 // This class is designed for efficiency: | 270 // This class is designed for efficiency: |
| 271 // - Its public methods for bitfield extraction are short and inline. | 271 // - Its public methods for bitfield extraction are short and inline. |
| 272 // - It has no vtable, so on 32-bit platforms it's exactly the size of the | 272 // - It has no vtable, so on 32-bit platforms it's exactly the size of the |
| 273 // instruction it models. | 273 // instruction it models. |
| 274 // - API's exist for accessing both ARM (32-bit) instructions and | 274 // - API's exist for accessing both ARM (32-bit) instructions and |
| 275 // THUMB instructions (which are 1 or two (16-bit) words). | 275 // THUMB instructions (which are 1 or two (16-bit) words). |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 } | 495 } |
| 496 | 496 |
| 497 private: | 497 private: |
| 498 uint32_t bits_; | 498 uint32_t bits_; |
| 499 Instruction& operator=(const Instruction& insn); // Disallow assignment. | 499 Instruction& operator=(const Instruction& insn); // Disallow assignment. |
| 500 }; | 500 }; |
| 501 | 501 |
| 502 } // namespace nacl_arm_dec | 502 } // namespace nacl_arm_dec |
| 503 | 503 |
| 504 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_V2_MODEL_H | 504 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_V2_MODEL_H |
| OLD | NEW |