/art/runtime/entrypoints/quick/ |
H A D | quick_dexcache_entrypoints.cc | 22 #include "dex/dex_file-inl.h" 23 #include "dex/dex_file_types.h" 78 dex::TypeIndex type_idx, 96 dex::StringIndex string_idx, 116 // originates from the outer method's dex file and the type or string index is tied to 117 // that dex file. As we do not want to check if the call is coming from AOT-compiled 118 // code (that could be expensive), simply check if the caller has the same dex file. 121 // resolving the caller to a different dex file, this check shall prevent us from 125 // JIT can inline throwing instructions across dex files and this check prevents 126 // looking up the index in the wrong dex fil [all...] |
/art/compiler/driver/ |
H A D | compiler_driver_test.cc | 29 #include "dex/dex_file.h" 30 #include "dex/dex_file_types.h" 107 // TODO: Update the test for hash-based dex cache arrays. Bug: 30627598 114 const DexFile& dex = *java_lang_dex_file_; local 115 ObjPtr<mirror::DexCache> dex_cache = class_linker_->FindDexCache(soa.Self(), dex); 116 EXPECT_EQ(dex.NumStringIds(), dex_cache->NumStrings()); 118 const mirror::String* string = dex_cache->GetResolvedString(dex::StringIndex(i)); 121 EXPECT_EQ(dex.NumTypeIds(), dex_cache->NumResolvedTypes()); 123 mirror::Class* type = dex_cache->GetResolvedType(dex::TypeIndex(i)); 125 << " " << dex [all...] |
/art/compiler/optimizing/ |
H A D | ssa_liveness_analysis_test.cc | 69 graph_->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kInt32); 89 graph_->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference); 91 graph_->GetDexFile(), dex::TypeIndex(1), 1, DataType::Type::kInt32); 93 graph_->GetDexFile(), dex::TypeIndex(2), 2, DataType::Type::kInt32); 95 graph_->GetDexFile(), dex::TypeIndex(3), 3, DataType::Type::kInt32); 97 graph_->GetDexFile(), dex::TypeIndex(4), 4, DataType::Type::kReference); 158 graph_->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference); 160 graph_->GetDexFile(), dex::TypeIndex(1), 1, DataType::Type::kInt32); 162 graph_->GetDexFile(), dex::TypeIndex(2), 2, DataType::Type::kInt32); 164 graph_->GetDexFile(), dex [all...] |
H A D | instruction_builder.h | 24 #include "dex/code_item_accessors.h" 25 #include "dex/dex_file.h" 26 #include "dex/dex_file_types.h" 100 bool NeedsAccessCheck(dex::TypeIndex type_index, /*out*/bool* finalizable) const 187 dex::TypeIndex type_index, 216 dex::TypeIndex type_index, 223 void BuildLoadString(dex::StringIndex string_index, uint32_t dex_pc); 226 HLoadClass* BuildLoadClass(dex::TypeIndex type_index, uint32_t dex_pc); 228 HLoadClass* BuildLoadClass(dex::TypeIndex type_index, 242 bool IsOutermostCompilingClass(dex [all...] |
H A D | nodes_test.cc | 38 graph->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference); 78 graph->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference); 80 graph->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference); 103 graph->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference); 121 graph->GetDexFile(), dex::TypeIndex(0), 0, DataType::Type::kReference);
|
/art/compiler/debug/ |
H A D | elf_debug_line_writer.h | 27 #include "dex/dex_file-inl.h" 101 // Use stack maps to create mapping table from pc to dex. 109 const int32_t dex = stack_map.GetDexPc(encoding.stack_map.encoding); local 110 pc2dex_map.push_back({pc, dex}); 161 const DexFile* dex = mi->dex_file; local 162 CodeItemDebugInfoAccessor accessor(*dex, mi->code_item, mi->dex_method_index); 164 if (!dex->DecodeDebugPositionInfo(debug_info_offset, PositionInfoCallback, &dex2line_map)) { 179 auto& dex_class_def = dex->GetClassDef(mi->class_def_index); 180 const char* source_file = dex->GetSourceFile(dex_class_def); 184 std::string class_name(dex [all...] |
H A D | elf_symtab_writer.h | 26 #include "dex/dex_file-inl.h" 27 #include "dex/code_item_accessors.h" 43 // Magic name for .symtab symbols which enumerate dex files used 44 // by this ELF file (currently mmapped inside the .dex section). 103 // Add symbols for dex files. 105 auto dex = builder->GetDex(); local 107 uint64_t dex_address = dex->GetAddress() + it.first /* offset within the section */; 110 symtab->Add(dex_name, dex, dex_address, dex_file->Size(), STB_GLOBAL, STT_FUNC);
|
/art/libdexfile/dex/ |
H A D | dex_file_exception_helpers.cc | 87 handler_.type_idx_ = dex::TypeIndex(DecodeUnsignedLeb128(¤t_data_)); 94 handler_.type_idx_ = dex::TypeIndex(DexFile::kDexNoIndex16);
|
H A D | test_dex_file_builder_test.cc | 19 #include "dex/dex_file-inl.h" 52 dex_file->GetStringData(dex_file->GetStringId(dex::StringIndex(i)))) << i; 66 dex_file->GetTypeDescriptor(dex_file->GetTypeId(dex::TypeIndex(i)))) << i;
|
H A D | dex_file.h | 63 // Dex file is the API that exposes native dex files (ordinary dex files) and CompactDex. 64 // Originally, the dex file format used by ART was mostly the same as APKs. The only change was 66 // Since ART needs to support both native dex files and CompactDex files, the DexFile interface 70 // Number of bytes in the dex file magic. 109 // Decode the dex magic version 162 dex::StringIndex descriptor_idx_; // index into string_ids 170 dex::TypeIndex class_idx_; // index into type_ids_ array for defining class 171 dex::TypeIndex type_idx_; // index into type_ids_ array for field type 172 dex 1162 Signature(const DexFile* dex, const DexFile::ProtoId& proto) argument [all...] |
H A D | dex_file.cc | 43 static_assert(sizeof(dex::StringIndex) == sizeof(uint32_t), "StringIndex size is wrong"); 44 static_assert(std::is_trivially_copyable<dex::StringIndex>::value, "StringIndex not trivial"); 45 static_assert(sizeof(dex::TypeIndex) == sizeof(uint16_t), "TypeIndex size is wrong"); 46 static_assert(std::is_trivially_copyable<dex::TypeIndex>::value, "TypeIndex not trivial"); 177 // Bad offset. The dex file verifier runs after this method and will reject the file. 184 // Overflow or out out of bounds. The dex file verifier runs after 206 const DexFile::ClassDef* DexFile::FindClassDef(dex::TypeIndex type_idx) const { 247 const dex::TypeIndex class_idx = GetIndexForTypeId(declaring_klass); 248 const dex::StringIndex name_idx = GetIndexForStringId(name); 249 const dex 797 namespace dex { namespace in namespace:art [all...] |
/art/test/119-noimage-patchoat/ |
H A D | run | 39 echo "Run -Xnoimage-dex2oat -Xpatchoat:/system/bin/false -Xno-dex-file-fallback" 41 --runtime-option -Xpatchoat:${false_bin} --runtime-option -Xno-dex-file-fallback
|
/art/test/1949-short-dex-file/src/art/ |
H A D | Test1949.java | 26 // This dex file is specifically crafted to have exactly 4 methodIDs in it. They are (in order): 32 // In the transformed version of the dex file there is a new method. The new list of methodIDs is: 39 // This test tries to get the JIT to read out-of-bounds on the initial dex file by getting it to 40 // read the 5th method id of the new file (Lxyz/Transform;->foo()V) from the old dex file (which 45 // JIT will read an incorrect (but valid) method-id from the old-dex file. This is why the error 49 // method-type the jit uses dex-file information to keep track of. 52 * base64 encoded class/dex file for 79 * base64 encoded class/dex file for 118 private static ClassLoader CreateClassLoader(byte[] clz, byte[] dex) throws Exception { argument 123 return (ClassLoader)ctor.newInstance(ByteBuffer.wrap(dex), Test194 [all...] |
/art/runtime/jit/ |
H A D | profile_compilation_info_test.cc | 24 #include "dex/dex_file.h" 25 #include "dex/dex_file_loader.h" 26 #include "dex/method_reference.h" 27 #include "dex/type_reference.h" 89 dex::TypeIndex type_index, 145 classes.emplace_back(method->GetDexFile(), dex::TypeIndex(0)); 152 classes.emplace_back(method->GetDexFile(), dex::TypeIndex(k)); 160 classes.emplace_back(method->GetDexFile(), dex::TypeIndex(k)); 194 SafeMap<DexFile*, uint8_t> dex_map; // dex files to profile index 207 // This is a new dex [all...] |
/art/runtime/verifier/ |
H A D | verifier_deps.cc | 26 #include "dex/dex_file-inl.h" 92 dex::StringIndex VerifierDeps::GetClassDescriptorStringId(const DexFile& dex_file, 96 // Array and proxy classes do not have a dex cache. 116 static dex::StringIndex TryGetClassDescriptorStringId(const DexFile& dex_file, 117 dex::TypeIndex type_idx, 129 return dex::StringIndex::Invalid(); 132 dex::StringIndex VerifierDeps::GetMethodDeclaringClassStringId(const DexFile& dex_file, 137 return dex::StringIndex(VerifierDeps::kUnresolvedMarker); 139 const dex::StringIndex string_id = TryGetClassDescriptorStringId( 144 // Got lucky using the original dex fil [all...] |
H A D | method_verifier-inl.h | 75 inline const RegType& MethodVerifier::ResolveCheckedClass(dex::TypeIndex class_idx) {
|
/art/libartbase/base/ |
H A D | logging.h | 60 bool dex; // Some dex access output etc. member in struct:art::LogVerbosity
|
/art/openjdkjvmti/ |
H A D | fixed_up_dex_file.cc | 34 #include "dex/dex_file-inl.h" 35 #include "dex/dex_file_loader.h" 36 #include "dex/dex_file_verifier.h" 40 #include "dex/compact_dex_level.h" 84 // The dex file isn't quickened since it is being used directly. We might still have hiddenapis 90 static void DCheckVerifyDexFile(const art::DexFile& dex) { argument 93 if (!art::DexFileVerifier::Verify(&dex, 94 dex.Begin(), 95 dex.Size(), 96 "FixedUpDexFile_Verification.dex", [all...] |
/art/runtime/ |
H A D | oat_quick_method_header.cc | 20 #include "dex/dex_file_types.h" 53 return dex::kDexNoIndex; 63 return dex::kDexNoIndex; 73 // Search for the dex-to-pc mapping in stack maps. 89 LOG(FATAL) << "Failed to find native offset for dex pc 0x" << std::hex << dex_pc
|
H A D | common_runtime_test.h | 31 #include "dex/art_dex_file_loader.h" 32 #include "dex/compact_dex_level.h" 104 // Gets the paths of the libcore dex files. 113 // Retuerns the filename for a test dex (i.e. XandY or ManyMethods). 135 EXPECT_EQ(dex_files.size(), 1u) << "Only one input dex is supported"; 136 const std::unique_ptr<const DexFile>& dex = dex_files[0]; local 137 CHECK(dex->EnableWrite()) << "Failed to enable write"; 138 DexFile* dex_file = const_cast<DexFile*>(dex.get()); 141 if (!output_dex->WriteFully(dex->Begin(), dex [all...] |
H A D | type_lookup_table.h | 21 #include "dex/dex_file_types.h" 22 #include "dex/utf.h" 45 // If no data found then the method returns dex::kDexNoIndex. 56 return dex::kDexNoIndex; 61 return dex::kDexNoIndex; 64 // Method creates lookup table for dex file 91 * 2. If dex file contains N classes and size of hash table is 2^n (where N <= 2^n) 121 // Construct from a dex file. 124 // Construct from a dex file with existing data.
|
H A D | type_lookup_table_test.cc | 22 #include "dex/dex_file-inl.h" 23 #include "dex/utf-inl.h" 57 testing::Values(DescriptorClassDefIdxPair("LDA;", dex::kDexNoIndex)));
|
/art/test/118-noimage-dex2oat/ |
H A D | run | 54 echo "Run -Xnoimage-dex2oat -Xno-dex-file-fallback" 56 --runtime-option -Xno-dex-file-fallback
|
/art/runtime/entrypoints/ |
H A D | entrypoint_utils.h | 26 #include "dex/dex_file_types.h" 27 #include "dex/dex_instruction.h" 76 ALWAYS_INLINE inline mirror::Class* CheckArrayAlloc(dex::TypeIndex type_idx, 88 ALWAYS_INLINE inline mirror::Array* AllocArrayFromCode(dex::TypeIndex type_idx, 146 inline ObjPtr<mirror::Class> ResolveVerifyAndClinit(dex::TypeIndex type_idx, 155 dex::StringIndex string_idx)
|
/art/runtime/interpreter/mterp/mips/ |
H A D | entry.S | 47 /* Remember the dex instruction pointer */ 56 EAS1(rPC, a1, a0) # Create direct pointer to 1st dex opcode
|