/art/runtime/verifier/ |
H A D | verifier_compiler_binding.h | 26 namespace verifier { namespace in namespace:art 30 constexpr uint32_t unresolved_mask = verifier::VerifyError::VERIFY_ERROR_NO_CLASS 31 | verifier::VerifyError::VERIFY_ERROR_ACCESS_CLASS 32 | verifier::VerifyError::VERIFY_ERROR_ACCESS_FIELD 33 | verifier::VerifyError::VERIFY_ERROR_ACCESS_METHOD; 37 } // namespace verifier
|
H A D | register_line.cc | 27 namespace verifier { namespace in namespace:art 31 bool RegisterLine::CheckConstructorReturn(MethodVerifier* verifier) const { 35 const RegType& type = GetRegisterType(verifier, i); 39 << verifier->GetMethodReference().PrettyMethod(); 43 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) 49 const RegType& RegisterLine::GetInvocationThis(MethodVerifier* verifier, const Instruction* inst, argument 55 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invoke lacks 'this'"; 57 return verifier->GetRegTypeCache()->Conflict(); 61 const RegType& this_type = GetRegisterType(verifier, this_reg); 64 verifier 73 VerifyRegisterTypeWide(MethodVerifier* verifier, uint32_t vsrc, const RegType& check_type1, const RegType& check_type2) argument 97 MarkRefsAsInitialized(MethodVerifier* verifier, const RegType& uninit_type) argument 115 MarkAllRegistersAsConflicts(MethodVerifier* verifier) argument 122 MarkAllRegistersAsConflictsExcept(MethodVerifier* verifier, uint32_t vsrc) argument 131 MarkAllRegistersAsConflictsExceptWide(MethodVerifier* verifier, uint32_t vsrc) argument 156 MarkUninitRefsAsInvalid(MethodVerifier* verifier, const RegType& uninit_type) argument 165 CopyResultRegister1(MethodVerifier* verifier, uint32_t vdst, bool is_reference) argument 182 CopyResultRegister2(MethodVerifier* verifier, uint32_t vdst) argument 196 CheckUnaryOp(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type) argument 203 CheckUnaryOpWide(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type1, const RegType& dst_type2, const RegType& src_type1, const RegType& src_type2) argument 211 CheckUnaryOpToWide(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type1, const RegType& dst_type2, const RegType& src_type) argument 219 CheckUnaryOpFromWide(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type1, const RegType& src_type2) argument 227 CheckBinaryOp(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type1, const RegType& src_type2, bool check_boolean_op) argument 249 CheckBinaryOpWide(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type1, const RegType& dst_type2, const RegType& src_type1_1, const RegType& src_type1_2, const RegType& src_type2_1, const RegType& src_type2_2) argument 259 CheckBinaryOpWideShift(MethodVerifier* verifier, const Instruction* inst, const RegType& long_lo_type, const RegType& long_hi_type, const RegType& int_type) argument 268 CheckBinaryOp2addr(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type1, const RegType& src_type2, bool check_boolean_op) argument 289 CheckBinaryOp2addrWide(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type1, const RegType& dst_type2, const RegType& src_type1_1, const RegType& src_type1_2, const RegType& src_type2_1, const RegType& src_type2_2) argument 301 CheckBinaryOp2addrWideShift(MethodVerifier* verifier, const Instruction* inst, const RegType& long_lo_type, const RegType& long_hi_type, const RegType& int_type) argument 312 CheckLiteralOp(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type, bool check_boolean_op, bool is_lit16) argument 335 PushMonitor(MethodVerifier* verifier, uint32_t reg_idx, int32_t insn_idx) argument 365 PopMonitor(MethodVerifier* verifier, uint32_t reg_idx) argument 428 MergeRegisters(MethodVerifier* verifier, const RegisterLine* incoming_line) argument [all...] |
H A D | method_resolution_kind.h | 21 namespace verifier { namespace in namespace:art 30 } // namespace verifier
|
H A D | register_line-inl.h | 26 namespace verifier { namespace in namespace:art 32 inline const RegType& RegisterLine::GetRegisterType(MethodVerifier* verifier, uint32_t vsrc) const { argument 35 return verifier->GetRegTypeCache()->GetFromId(line_[vsrc]); 39 inline bool RegisterLine::SetRegisterType(MethodVerifier* verifier, uint32_t vdst, argument 43 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "Expected category1 register type not '" 64 inline bool RegisterLine::SetRegisterTypeWide(MethodVerifier* verifier, uint32_t vdst, argument 69 verifier->Fail(VERIFY_ERROR_BAD_CLASS_SOFT) << "Invalid wide pair '" 82 inline void RegisterLine::SetResultTypeToUnknown(MethodVerifier* verifier) { argument 83 result_[0] = verifier->GetRegTypeCache()->Undefined().GetId(); 87 inline void RegisterLine::SetResultRegisterType(MethodVerifier* verifier, cons argument 101 CopyRegister1(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc, TypeCategory cat) argument 118 CopyRegister2(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc) argument 130 VerifyRegisterType(MethodVerifier* verifier, uint32_t vsrc, const RegType& check_type) argument 180 Create(size_t num_regs, MethodVerifier* verifier) argument 185 RegisterLine(size_t num_regs, MethodVerifier* verifier) argument [all...] |
H A D | register_line.h | 30 namespace verifier { namespace in namespace:art 66 static RegisterLine* Create(size_t num_regs, MethodVerifier* verifier); 69 void CopyRegister1(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc, TypeCategory cat) 74 void CopyRegister2(MethodVerifier* verifier, uint32_t vdst, uint32_t vsrc) 79 void CopyResultRegister1(MethodVerifier* verifier, uint32_t vdst, bool is_reference) 84 void CopyResultRegister2(MethodVerifier* verifier, uint32_t vdst) 88 void SetResultTypeToUnknown(MethodVerifier* verifier) REQUIRES_SHARED(Locks::mutator_lock_); 102 ALWAYS_INLINE bool SetRegisterType(MethodVerifier* verifier, 107 bool SetRegisterTypeWide(MethodVerifier* verifier, 114 void SetResultRegisterType(MethodVerifier* verifier, cons [all...] |
H A D | reg_type-inl.h | 29 namespace verifier { namespace in namespace:art 70 MethodVerifier* verifier) { 115 // Record assignability dependency. The `verifier` is null during unit tests and 117 if (verifier != nullptr) { 119 verifier->GetDexFile(), lhs.GetClass(), rhs.GetClass(), strict, result); 130 inline bool RegType::IsAssignableFrom(const RegType& src, MethodVerifier* verifier) const { 131 return AssignableFrom(*this, src, false, verifier); 134 inline bool RegType::IsStrictlyAssignableFrom(const RegType& src, MethodVerifier* verifier) const { 135 return AssignableFrom(*this, src, true, verifier); 203 } // namespace verifier 67 AssignableFrom(const RegType& lhs, const RegType& rhs, bool strict, MethodVerifier* verifier) argument [all...] |
H A D | instruction_flags.cc | 22 namespace verifier { namespace in namespace:art 41 } // namespace verifier
|
H A D | verifier_enums.h | 23 namespace verifier { namespace in namespace:art 25 // The mode that the verifier should run as. 70 * that can potentially be corrected, and the verifier will try again at runtime. 87 // For opcodes that don't have complete verifier support, we need a way to continue 90 // which will perform verifier-like checking on the fly. 99 } // namespace verifier
|
H A D | instruction_flags.h | 26 namespace verifier { namespace in namespace:art 125 // Location of interest to the compiler for GC maps and verifier based method sharpening. 136 } // namespace verifier
|
H A D | method_verifier-inl.h | 27 namespace verifier { namespace in namespace:art 84 } // namespace verifier
|
H A D | method_verifier_test.cc | 32 namespace verifier { namespace in namespace:art 73 } // namespace verifier
|
H A D | reg_type_cache-inl.h | 28 namespace verifier { namespace in namespace:art 30 inline const art::verifier::RegType& RegTypeCache::GetFromId(uint16_t id) const { 133 } // namespace verifier
|
H A D | reg_type_cache.h | 38 namespace verifier { namespace in namespace:art 58 const art::verifier::RegType& GetFromId(uint16_t id) const; 80 MethodVerifier* verifier) 172 // verifier. 210 } // namespace verifier
|
H A D | method_verifier.cc | 59 namespace verifier { namespace in namespace:art 67 // On VLOG(verifier), should we dump the whole state when we run into a hard failure? 79 MethodVerifier* verifier) { 98 register_lines_[i].reset(RegisterLine::Create(registers_size, verifier)); 106 ALWAYS_INLINE static inline bool FailOrAbort(MethodVerifier* verifier, bool condition, argument 117 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << error_msg << work_insn_idx; 124 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << error_msg << work_insn_idx; 132 static void SafelyMarkAllRegistersAsConflicts(MethodVerifier* verifier, RegisterLine* reg_line) { argument 133 if (verifier->IsInstanceConstructor()) { 135 reg_line->CheckConstructorReturn(verifier); 77 Init(RegisterTrackingMode mode, InstructionFlags* flags, uint32_t insns_size, uint16_t registers_size, MethodVerifier* verifier) argument 513 MethodVerifier* verifier = new MethodVerifier(self, local 1998 AdjustReturnLine(MethodVerifier* verifier, const Instruction* ret_inst, RegisterLine* line) argument [all...] |
/art/compiler/dex/ |
H A D | quick_compiler_callbacks.cc | 19 #include "verifier/method_verifier-inl.h" 24 void QuickCompilerCallbacks::MethodVerified(verifier::MethodVerifier* verifier) { argument 25 verification_results_->ProcessVerifiedMethod(verifier);
|
H A D | quick_compiler_callbacks.h | 21 #include "verifier/verifier_deps.h" 39 void MethodVerified(verifier::MethodVerifier* verifier) 49 verifier::VerifierDeps* GetVerifierDeps() const OVERRIDE { 53 void SetVerifierDeps(verifier::VerifierDeps* deps) OVERRIDE { 59 std::unique_ptr<verifier::VerifierDeps> verifier_deps_;
|
H A D | verified_method.h | 29 namespace verifier { namespace in namespace:art 31 } // namespace verifier 42 static const VerifiedMethod* Create(verifier::MethodVerifier* method_verifier) 51 // by using the check-cast elision peephole optimization in the verifier. 69 void GenerateSafeCastSet(verifier::MethodVerifier* method_verifier)
|
H A D | verified_method.cc | 26 #include "verifier/method_verifier-inl.h" 27 #include "verifier/reg_type-inl.h" 28 #include "verifier/register_line-inl.h" 29 #include "verifier/verifier_deps.h" 38 const VerifiedMethod* VerifiedMethod::Create(verifier::MethodVerifier* method_verifier) { 55 void VerifiedMethod::GenerateSafeCastSet(verifier::MethodVerifier* method_verifier) { 77 const verifier::RegisterLine* line = method_verifier->GetRegLine(dex_pc); 78 const verifier::RegType& reg_type(line->GetRegisterType(method_verifier, 80 const verifier::RegType& cast_type = 82 // Pass null for the method verifier t [all...] |
H A D | verification_results.h | 33 namespace verifier { namespace in namespace:art 36 } // namespace verifier 47 void ProcessVerifiedMethod(verifier::MethodVerifier* method_verifier) 85 friend class verifier::VerifierDepsTest;
|
H A D | inline_method_analyser.h | 33 namespace verifier { namespace in namespace:art 35 } // namespace verifier
|
/art/runtime/ |
H A D | noop_compiler_callbacks.h | 29 void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) OVERRIDE { 39 verifier::VerifierDeps* GetVerifierDeps() const OVERRIDE { return nullptr; }
|
H A D | compiler_callbacks.h | 25 namespace verifier { namespace in namespace:art 30 } // namespace verifier 41 virtual void MethodVerified(verifier::MethodVerifier* verifier) 49 virtual verifier::VerifierDeps* GetVerifierDeps() const = 0; 50 virtual void SetVerifierDeps(verifier::VerifierDeps* deps ATTRIBUTE_UNUSED) {}
|
/art/runtime/base/ |
H A D | logging.h | 55 bool verifier; member in struct:art::LogVerbosity
|
/art/cmdline/ |
H A D | cmdline_parser_test.cc | 244 "third-party-jni,threads,verifier"; 260 log_verbosity.verifier = true; 516 EXPECT_SINGLE_PARSE_VALUE(verifier::VerifyMode::kNone, "-Xverify:none", M::Verify); 517 EXPECT_SINGLE_PARSE_VALUE(verifier::VerifyMode::kEnable, "-Xverify:remote", M::Verify); 518 EXPECT_SINGLE_PARSE_VALUE(verifier::VerifyMode::kEnable, "-Xverify:all", M::Verify); 519 EXPECT_SINGLE_PARSE_VALUE(verifier::VerifyMode::kSoftFail, "-Xverify:softfail", M::Verify);
|
/art/compiler/ |
H A D | verifier_deps_test.cc | 18 #include "verifier/verifier_deps.h" 37 #include "verifier/method_verifier-inl.h" 40 namespace verifier { namespace in namespace:art 48 void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) OVERRIDE {} 52 verifier::VerifierDeps* GetVerifierDeps() const OVERRIDE { return deps_; } 53 void SetVerifierDeps(verifier::VerifierDeps* deps) { deps_ = deps; } 56 verifier::VerifierDeps* deps_; 86 void VerifyWithCompilerDriver(verifier::VerifierDeps* deps) { 88 // The compiler driver handles the verifier dep [all...] |