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

12

/art/compiler/dex/
H A Dquick_compiler_callbacks.cc20 #include "verifier/method_verifier-inl.h"
25 void QuickCompilerCallbacks::MethodVerified(verifier::MethodVerifier* verifier) { argument
26 verification_results_->ProcessVerifiedMethod(verifier);
27 MethodReference ref = verifier->GetMethodReference();
28 method_inliner_map_->GetMethodInliner(ref.dex_file)->AnalyseMethodCode(verifier);
H A Dverified_method.h29 namespace verifier { namespace in namespace:art
31 } // namespace verifier
46 static const VerifiedMethod* Create(verifier::MethodVerifier* method_verifier, bool compile)
66 // by using the check-cast elision peephole optimization in the verifier.
91 bool GenerateGcMap(verifier::MethodVerifier* method_verifier);
94 static void VerifyGcMap(verifier::MethodVerifier* method_verifier,
98 static void ComputeGcMapSizes(verifier::MethodVerifier* method_verifier,
102 void GenerateDevirtMap(verifier::MethodVerifier* method_verifier)
106 bool GenerateDequickenMap(verifier::MethodVerifier* method_verifier)
110 void GenerateSafeCastSet(verifier
[all...]
H A Dquick_compiler_callbacks.h40 void MethodVerified(verifier::MethodVerifier* verifier)
H A Dverified_method.cc33 #include "verifier/method_verifier-inl.h"
34 #include "verifier/reg_type-inl.h"
35 #include "verifier/register_line-inl.h"
44 const VerifiedMethod* VerifiedMethod::Create(verifier::MethodVerifier* method_verifier,
85 bool VerifiedMethod::GenerateDequickenMap(verifier::MethodVerifier* method_verifier) {
98 verifier::RegisterLine* line = method_verifier->GetRegLine(dex_pc);
105 // The verifier must know what the type of the object was or else we would have gotten a
112 verifier::RegisterLine* line = method_verifier->GetRegLine(dex_pc);
118 // The verifier must know what the type of the field was or else we would have gotten a
128 void VerifiedMethod::GenerateDevirtMap(verifier
[all...]
H A Dverification_results.h32 namespace verifier { namespace in namespace:art
34 } // namespace verifier
45 void ProcessVerifiedMethod(verifier::MethodVerifier* method_verifier)
H A Dverification_results.cc27 #include "verifier/method_verifier-inl.h"
47 void VerificationResults::ProcessVerifiedMethod(verifier::MethodVerifier* method_verifier) {
/art/runtime/verifier/
H A Dregister_line.cc26 namespace verifier { namespace in namespace:art
28 bool RegisterLine::CheckConstructorReturn(MethodVerifier* verifier) const {
32 const RegType& type = GetRegisterType(verifier, i);
36 << PrettyMethod(verifier->GetMethodReference().dex_method_index,
37 *verifier->GetMethodReference().dex_file);
41 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD)
47 const RegType& RegisterLine::GetInvocationThis(MethodVerifier* verifier, const Instruction* inst, argument
52 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invoke lacks 'this'";
54 return verifier->GetRegTypeCache()->Conflict();
58 const RegType& this_type = GetRegisterType(verifier, this_re
70 VerifyRegisterTypeWide(MethodVerifier* verifier, uint32_t vsrc, const RegType& check_type1, const RegType& check_type2) argument
94 MarkRefsAsInitialized(MethodVerifier* verifier, const RegType& uninit_type) argument
112 MarkAllRegistersAsConflicts(MethodVerifier* verifier) argument
119 MarkAllRegistersAsConflictsExcept(MethodVerifier* verifier, uint32_t vsrc) argument
128 MarkAllRegistersAsConflictsExceptWide(MethodVerifier* verifier, uint32_t vsrc) argument
153 MarkUninitRefsAsInvalid(MethodVerifier* verifier, const RegType& uninit_type) argument
162 CopyResultRegister1(MethodVerifier* verifier, uint32_t vdst, bool is_reference) argument
179 CopyResultRegister2(MethodVerifier* verifier, uint32_t vdst) argument
193 CheckUnaryOp(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type) argument
200 CheckUnaryOpWide(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type1, const RegType& dst_type2, const RegType& src_type1, const RegType& src_type2) argument
208 CheckUnaryOpToWide(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type1, const RegType& dst_type2, const RegType& src_type) argument
216 CheckUnaryOpFromWide(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type1, const RegType& src_type2) argument
224 CheckBinaryOp(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type1, const RegType& src_type2, bool check_boolean_op) argument
246 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
256 CheckBinaryOpWideShift(MethodVerifier* verifier, const Instruction* inst, const RegType& long_lo_type, const RegType& long_hi_type, const RegType& int_type) argument
265 CheckBinaryOp2addr(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type1, const RegType& src_type2, bool check_boolean_op) argument
286 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
298 CheckBinaryOp2addrWideShift(MethodVerifier* verifier, const Instruction* inst, const RegType& long_lo_type, const RegType& long_hi_type, const RegType& int_type) argument
309 CheckLiteralOp(MethodVerifier* verifier, const Instruction* inst, const RegType& dst_type, const RegType& src_type, bool check_boolean_op, bool is_lit16) argument
332 PushMonitor(MethodVerifier* verifier, uint32_t reg_idx, int32_t insn_idx) argument
364 PopMonitor(MethodVerifier* verifier, uint32_t reg_idx) argument
429 MergeRegisters(MethodVerifier* verifier, const RegisterLine* incoming_line) argument
[all...]
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
181 Create(size_t num_regs, MethodVerifier* verifier) argument
186 RegisterLine(size_t num_regs, MethodVerifier* verifier) argument
[all...]
H A Dverify_mode.h23 namespace verifier { namespace in namespace:art
25 // The mode that the verifier should run as.
32 } // namespace verifier
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) SHARED_REQUIRES(Locks::mutator_lock_);
102 ALWAYS_INLINE bool SetRegisterType(MethodVerifier* verifier,
107 bool SetRegisterTypeWide(MethodVerifier* verifier,
114 void SetResultRegisterType(MethodVerifier* verifier, cons
[all...]
H A Dinstruction_flags.cc22 namespace verifier { namespace in namespace:art
41 } // 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.cc28 namespace verifier { namespace in namespace:art
66 } // 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 Dmethod_verifier.cc52 namespace verifier { namespace in namespace:art
58 // On VLOG(verifier), should we dump the whole state when we run into a hard failure?
70 MethodVerifier* verifier) {
89 register_lines_[i].reset(RegisterLine::Create(registers_size, verifier));
97 ALWAYS_INLINE static inline bool FailOrAbort(MethodVerifier* verifier, bool condition, argument
105 verifier->Fail(VERIFY_ERROR_BAD_CLASS_HARD) << error_msg << work_insn_idx;
113 static void SafelyMarkAllRegistersAsConflicts(MethodVerifier* verifier, RegisterLine* reg_line) { argument
114 if (verifier->IsInstanceConstructor()) {
116 reg_line->CheckConstructorReturn(verifier);
118 reg_line->MarkAllRegistersAsConflicts(verifier);
68 Init(RegisterTrackingMode mode, InstructionFlags* flags, uint32_t insns_size, uint16_t registers_size, MethodVerifier* verifier) argument
469 MethodVerifier* verifier = new MethodVerifier(self, local
1940 AdjustReturnLine(MethodVerifier* verifier, const Instruction* ret_inst, RegisterLine* line) argument
[all...]
H A Dmethod_verifier.h44 namespace verifier { namespace in namespace:art
72 * that can potentially be corrected, and the verifier will try again at runtime.
89 // For opcodes that don't have complete verifier support (such as lambda opcodes),
92 // in a special "do access checks" mode which will perform verifier-like checking
95 // TODO: Once all new opcodes have implemented full verifier support, this can be removed.
124 uint16_t registers_size, MethodVerifier* verifier);
136 // The verifier
146 constexpr uint32_t unresolved_mask = verifier::VerifyError::VERIFY_ERROR_NO_CLASS
147 | verifier::VerifyError::VERIFY_ERROR_ACCESS_CLASS
148 | verifier
[all...]
H A Dreg_type_cache.h38 namespace verifier { namespace in namespace:art
58 const art::verifier::RegType& GetFromId(uint16_t id) const;
170 // verifier.
208 } // namespace verifier
/art/runtime/
H A Dnoop_compiler_callbacks.h29 void MethodVerified(verifier::MethodVerifier* verifier ATTRIBUTE_UNUSED) OVERRIDE {
H A Dcompiler_callbacks.h25 namespace verifier { namespace in namespace:art
29 } // namespace verifier
40 virtual void MethodVerified(verifier::MethodVerifier* verifier)
H A Druntime_options.def114 RUNTIME_OPTIONS_KEY (verifier::VerifyMode, \
115 Verify, verifier::VerifyMode::kEnable)
/art/runtime/quick/
H A Dinline_method_analyser.h33 namespace verifier { namespace in namespace:art
35 } // namespace verifier
215 * @param verifier the method verifier holding data about the method to analyse.
219 static bool AnalyseMethodCode(verifier::MethodVerifier* verifier, InlineMethod* result)
H A Dinline_method_analyser.cc28 #include "verifier/method_verifier-inl.h"
140 // Used for a single invoke in a constructor. In that situation, the method verifier makes
171 DCHECK_EQ(this_vreg, code_item->registers_size_ - code_item->ins_size_); // Checked by verifier.
434 bool InlineMethodAnalyser::AnalyseMethodCode(verifier::MethodVerifier* verifier, argument
436 DCHECK(verifier != nullptr);
438 DCHECK_EQ(verifier->CanLoadClasses(), result != nullptr);
441 // Note: verifier->GetMethod() may be null.
442 return AnalyseMethodCode(verifier->CodeItem(),
443 verifier
[all...]
/art/compiler/dex/quick/
H A Ddex_file_method_inliner.h30 namespace verifier { namespace in namespace:art
32 } // namespace verifier
42 * from the verifier and mark them for inlining. Inline these methods early
55 * @param verifier the method verifier holding data about the method to analyse.
58 bool AnalyseMethodCode(verifier::MethodVerifier* verifier)
/art/cmdline/
H A Dcmdline_parser_test.cc247 "third-party-jni,threads,verifier";
263 log_verbosity.verifier = true;
563 EXPECT_SINGLE_PARSE_VALUE(verifier::VerifyMode::kNone, "-Xverify:none", M::Verify);
564 EXPECT_SINGLE_PARSE_VALUE(verifier::VerifyMode::kEnable, "-Xverify:remote", M::Verify);
565 EXPECT_SINGLE_PARSE_VALUE(verifier::VerifyMode::kEnable, "-Xverify:all", M::Verify);
566 EXPECT_SINGLE_PARSE_VALUE(verifier::VerifyMode::kSoftFail, "-Xverify:softfail", M::Verify);

Completed in 6298 milliseconds

12