Searched refs:verifier (Results 1 - 25 of 55) sorted by relevance

123

/art/runtime/verifier/
H A Dverifier_compiler_binding.h26 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 Dregister_line.cc27 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 Dmethod_resolution_kind.h21 namespace verifier { namespace in namespace:art
30 } // namespace verifier
H A Dregister_line-inl.h26 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 Dregister_line.h30 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 Dreg_type-inl.h29 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 Dinstruction_flags.cc22 namespace verifier { namespace in namespace:art
41 } // namespace verifier
H A Dverifier_enums.h23 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 Dinstruction_flags.h26 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 Dmethod_verifier-inl.h27 namespace verifier { namespace in namespace:art
84 } // namespace verifier
H A Dmethod_verifier_test.cc32 namespace verifier { namespace in namespace:art
73 } // namespace verifier
H A Dreg_type_cache-inl.h28 namespace verifier { namespace in namespace:art
30 inline const art::verifier::RegType& RegTypeCache::GetFromId(uint16_t id) const {
133 } // namespace verifier
H A Dreg_type_cache.h38 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 Dmethod_verifier.cc59 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 Dquick_compiler_callbacks.cc19 #include "verifier/method_verifier-inl.h"
24 void QuickCompilerCallbacks::MethodVerified(verifier::MethodVerifier* verifier) { argument
25 verification_results_->ProcessVerifiedMethod(verifier);
H A Dquick_compiler_callbacks.h21 #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 Dverified_method.h29 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 Dverified_method.cc26 #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 Dverification_results.h33 namespace verifier { namespace in namespace:art
36 } // namespace verifier
47 void ProcessVerifiedMethod(verifier::MethodVerifier* method_verifier)
85 friend class verifier::VerifierDepsTest;
H A Dinline_method_analyser.h33 namespace verifier { namespace in namespace:art
35 } // namespace verifier
/art/runtime/
H A Dnoop_compiler_callbacks.h29 void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) OVERRIDE {
39 verifier::VerifierDeps* GetVerifierDeps() const OVERRIDE { return nullptr; }
H A Dcompiler_callbacks.h25 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 Dlogging.h55 bool verifier; member in struct:art::LogVerbosity
/art/cmdline/
H A Dcmdline_parser_test.cc244 "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 Dverifier_deps_test.cc18 #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...]

Completed in 196 milliseconds

123