Chromium Code Reviews| 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_ACTUAL_CLASSES_H_ | 7 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_ACTUAL_CLASSES_H_ |
| 8 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_ACTUAL_CLASSES_H_ | 8 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_ACTUAL_CLASSES_H_ |
| 9 | 9 |
| 10 #include "native_client/src/trusted/validator_arm/inst_classes.h" | 10 #include "native_client/src/trusted/validator_arm/inst_classes.h" |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 253 | 253 |
| 254 // A special-case data processing instruction: the immediate BIC. We consider | 254 // A special-case data processing instruction: the immediate BIC. We consider |
| 255 // this the only instruction that reliably clears bits in its result, so we | 255 // this the only instruction that reliably clears bits in its result, so we |
| 256 // model it separately from other logic ops. | 256 // model it separately from other logic ops. |
| 257 class ImmediateBic : public DataProc { | 257 class ImmediateBic : public DataProc { |
| 258 public: | 258 public: |
| 259 static const Imm12Bits0To11Interface imm12; | 259 static const Imm12Bits0To11Interface imm12; |
| 260 inline ImmediateBic() {} | 260 inline ImmediateBic() {} |
| 261 virtual ~ImmediateBic() {} | 261 virtual ~ImmediateBic() {} |
| 262 | 262 |
| 263 // TODO(karl) Decide why we ever allowed this. | |
|
sehr (please use chromium)
2012/05/07 21:07:18
A little more specific comment, please. Determine
| |
| 263 // ImmediateBic is exempted from the writes-r15 check. | 264 // ImmediateBic is exempted from the writes-r15 check. |
| 264 virtual SafetyLevel safety(Instruction i) const { | 265 // virtual SafetyLevel safety(Instruction i) const { |
| 265 UNREFERENCED_PARAMETER(i); | 266 // UNREFERENCED_PARAMETER(i); |
| 266 return MAY_BE_SAFE; | 267 // return MAY_BE_SAFE; |
| 267 } | 268 // } |
| 268 virtual bool clears_bits(Instruction i, uint32_t mask) const; | 269 virtual bool clears_bits(Instruction i, uint32_t mask) const; |
| 269 | 270 |
| 270 private: | 271 private: |
| 271 NACL_DISALLOW_COPY_AND_ASSIGN(ImmediateBic); | 272 NACL_DISALLOW_COPY_AND_ASSIGN(ImmediateBic); |
| 272 }; | 273 }; |
| 273 | 274 |
| 274 // Models the Pack/Saturate/Reverse instructions, which | 275 // Models the Pack/Saturate/Reverse instructions, which |
| 275 // - Write a register identified by 15:12, | 276 // - Write a register identified by 15:12, |
| 276 // - Are not permitted to affect r15, | 277 // - Are not permitted to affect r15, |
| 277 // - Always set flags. | 278 // - Always set flags. |
| (...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 896 } | 897 } |
| 897 virtual int32_t branch_target_offset(Instruction i) const; | 898 virtual int32_t branch_target_offset(Instruction i) const; |
| 898 | 899 |
| 899 private: | 900 private: |
| 900 NACL_DISALLOW_COPY_AND_ASSIGN(Branch); | 901 NACL_DISALLOW_COPY_AND_ASSIGN(Branch); |
| 901 }; | 902 }; |
| 902 | 903 |
| 903 } // namespace | 904 } // namespace |
| 904 | 905 |
| 905 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_ACTUAL_CLASSES_H_ | 906 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_ACTUAL_CLASSES_H_ |
| OLD | NEW |