/art/runtime/verifier/ |
H A D | method_verifier.h | 91 // (since we know it will fail no matter what). Instead, run as the interpreter 105 // it at branch points (for verification) or GC points and branches (for verification + 121 // about what's in which register, but for verification purposes we only need to store it at 202 // Dump the state of the verifier, namely each instruction, what flags are set on it, register 263 // Returns the method of a quick invoke or null if it cannot be found. 268 // if it cannot be found. 337 ClassDataItemIterator* it, 385 * Compute the width of the instruction at each address in the instruction stream, and store it in 487 // into an exception handler, but it's valid to do so as long as the target isn't a 526 * instruction, process it (settin [all...] |
/art/compiler/utils/arm/ |
H A D | assembler_arm.cc | 752 it(EQ, kItElse); 755 it(NE); 776 it(NE); 795 it(NE); 907 /* Can we do it with rotation? */ 918 /* Put it all together */ 931 // advantage of it. So ensure that it's actually the case.
|
H A D | assembler_thumb2.h | 191 void it(Condition firstcond, ItState i1 = kItOmitted, 385 // depends on both the type of branch and the offset to which it is branching. The 16-bit 391 // size before hand, so we assume it is the smallest available size and determine the final 405 // to it, using the fixup ids as links. The first link is stored in the label's position 682 // Must the instruction be 32 bits or can it possibly be encoded
|
H A D | assembler_arm.h | 608 virtual void it(Condition firstcond ATTRIBUTE_UNUSED, function in class:art::arm::ArmAssembler 742 // 0.0 is quite common, so we special case it by loading 743 // 2.0 in `sd` and then substracting it. 758 // 0.0 is quite common, so we special case it by loading 759 // 2.0 in `sd` and then substracting it. 1017 // and branch to a ExceptionSlowPath if it is.
|
H A D | assembler_thumb2.cc | 55 // For each Fixup, it's easy to find the Fixups that it depends on as they are either 70 // range in dependents_start_, we shall later decrement it as we fill in fixup_dependents_. 163 // See if it needs adjustment. 170 // load literal as a dependency of all previous Fixups even though it actually is. 282 // Ensure that the label was tracked, so that it will have the right position. 1284 // Shift operand - check if it is a MOV convertible to a 16-bit shift instruction. 1494 // check that it complies with set_cc. 1512 // check that it complies with set_cc. 1661 // check that it complie 3163 void Thumb2Assembler::it(Condition firstcond, ItState i1, ItState i2, ItState i3) { function in class:art::arm::Thumb2Assembler [all...] |
/art/compiler/optimizing/ |
H A D | code_generator.h | 446 // Check if the desired_string_load_kind is supported. If it is, return it, 451 // Check if the desired_dispatch_info is supported. If it is, return it, 546 // We check the core registers against 1 because it always comprises the return PC. 723 for (const auto& it : candidates) { 724 InstructionType* other_instruction = it.first; 725 SlowPathCodeType* other_slow_path = down_cast<SlowPathCodeType*>(it.second);
|
H A D | instruction_simplifier.cc | 122 for (HReversePostOrderIterator it(*GetGraph()); !it.Done();) { 127 VisitBasicBlock(it.Current()); 135 it.Advance(); 483 // We cannot rely on DCE to remove the class because the `HLoadClass` thinks it can throw. 484 // However, here we know that it cannot because the checkcast was successfull, hence 535 // We cannot rely on DCE to remove the class because the `HLoadClass` thinks it can throw. 536 // However, here we know that it cannot because the instanceof check was successfull, hence 877 // The `HAnd` is useless, for example in `(byte) (x & 0xff)`, get rid of it. 932 // uses or multiple non-environment uses as it coul [all...] |
H A D | code_generator_mips64.cc | 447 for (auto& it : *disasm_info_->GetInstructionIntervals()) { 448 it.second.start = __ GetAdjustedPosition(it.second.start); 449 it.second.end = __ GetAdjustedPosition(it.second.end); 451 for (auto& it : *disasm_info_->GetSlowPathIntervals()) { 452 it.code_interval.start = __ GetAdjustedPosition(it.code_interval.start); 453 it.code_interval.end = __ GetAdjustedPosition(it [all...] |
H A D | code_generator_mips.cc | 501 for (auto& it : *disasm_info_->GetInstructionIntervals()) { 502 it.second.start = __ GetAdjustedPosition(it.second.start); 503 it.second.end = __ GetAdjustedPosition(it.second.end); 505 for (auto& it : *disasm_info_->GetSlowPathIntervals()) { 506 it.code_interval.start = __ GetAdjustedPosition(it.code_interval.start); 507 it.code_interval.end = __ GetAdjustedPosition(it [all...] |
H A D | code_generator_arm.cc | 57 // S registers. Therefore there is no need to block it. 473 // If `obj` is equal to `out` or `ref`, it means the initial object 503 // introduce a copy of it, `index`. 508 // Compute the actual memory offset and store it in `index`. 514 // art::arm::Thumb2Assembler::AddConstant below), but it has 516 // art::SlowPathCode::SaveLiveRegisters, as it is a 519 // callee-save registers, as it has been designed with the 523 // the stack, but it would be too late: we would have 525 // it here into another freely available register, 541 // (as it i [all...] |
H A D | intrinsics_arm.cc | 338 __ it((is_min) ? Condition::LT : Condition::GT, kItElse); 865 // Do not poison `value_lo`, as it is the same register as 892 __ it(EQ, ItState::kItT); 901 __ it(CC); 907 // Do not unpoison `value_lo`, as it is the same register as 921 // Turn it off temporarily as a quick fix, until the read barrier is 966 // TODO: Maybe we can support range check elimination. Overall, though, I think it's not worth 1058 // Check if input is null, return false if it is. 1129 // Always needs the slow-path. We could directly dispatch to it, but this case should be 1166 // We have a hand-crafted assembly stub that follows the runtime calling convention. So it' [all...] |
/art/runtime/ |
H A D | stack.cc | 978 auto it = std::find(monitors_->begin(), monitors_->end(), obj); local 979 if (it != monitors_->end()) { 980 monitors_->erase(it); 1007 // There may be an exception pending, if the method is terminating abruptly. Clear it.
|
H A D | thread_list.cc | 93 // In case a GC is in progress, wait for it to finish. 430 // runnable/suspended thread before a runnable threads runs it 431 // for itself or we run it for a suspended thread below. 453 // Run it for self. 524 // SuspendAllInternal. This is safe because it will be set back to suspended state before 575 // the thread to change to a suspended state, because it might need to run checkpoint 759 // re-decrement it since it is shutting down and may deadlock the runtime in 792 // it will self suspend on transition to Runnable, making it har [all...] |
H A D | debugger.cc | 102 // Method() is called from root visiting, do not use ScopedObjectAccess here or it can cause 153 // send the METHOD_ENTRY event. And we can also group it with other events for this location 161 // also group it with other events for this location like BREAKPOINT or SINGLE_STEP. 274 // JDWP is allowed unless the Zygote forbids it. 456 * type. The debugger may take a special interest in these (e.g. it 778 // Set ACC_SUPER. Dex files don't contain this flag but only classes are supposed to have it set, 780 // Class.getModifiers doesn't return it, but JDWP does, so we set it here. 957 // also ignores these cases and never return an error. However it's not obvious why this command 1445 // We should not get here for a method without code (native, proxy or abstract). Log it an 4879 auto it = table_.find(s); local [all...] |
H A D | oat_file_assistant_test.cc | 158 // won't conflict when it comes time to load the image. 160 // around it. 172 for (BacktraceMap::const_iterator it = map->begin(); 173 reservation_start < reservation_end && it != map->end(); ++it) { 174 ReserveImageSpaceChunk(reservation_start, std::min(it->start, reservation_end)); 175 reservation_start = std::max(reservation_start, it->end); 244 // Case: We have a DEX file, but no OAT file for it. 296 // Case: We have a DEX file and up-to-date OAT file for it. 326 // Case: We have a DEX file and speed-profile OAT file for it [all...] |
H A D | dex_file.cc | 354 // multidex APK. However, it's bad practice, as each dex file requires its own tables for symbols 705 DexFileParameterIterator it(*this, proto); 707 while (it.HasNext() && i < signature_length && compare == 0) { 708 compare = signature_type_idxs[i] - it.GetTypeIdx(); 709 it.Next(); 713 if (it.HasNext()) { 800 // For native method, lineno should be -2 to indicate it is native. Note that 872 DexFileParameterIterator it(*this, GetMethodPrototype(GetMethodId(method_idx))); 876 for (i = 0; i < parameters_size && it.HasNext(); ++i, it [all...] |
H A D | elf_file.cc | 357 // symtab internally, but it's nice to be defensive. 709 // Even if we Load(), it doesn't bring in all the sections. 764 // otherwise it will be wrongly 0 if ::Load has not yet been called. 880 // If a duplicate, make sure it has the same logical value. Seen on x86. 892 typename SymbolTable::const_iterator it = (*symbol_table)->find(symbol_name); local 893 if (it == (*symbol_table)->end()) { 896 return it->second;
|
H A D | class_linker.h | 159 // Finds a class by its descriptor, loading it if necessary. 167 // Finds a class in the path class loader, loading it if necessary without using JNI. Hash 207 // Finds a class by its descriptor, returning null if it isn't wasn't loaded 277 // type, since it may be referenced from but not contained within 397 // so that it can visit individual classes without holding the doesn't hold the 556 // that no more classes are ever added to the pre zygote table which makes it that the pages 594 // Return the linear alloc for a class loader if it is already allocated, otherwise allocate and 595 // set it. TODO: Consider using a lock other than classlinker_classes_lock_. 767 void LoadField(const ClassDataItemIterator& it, Handle<mirror::Class> klass, ArtField* dst) 772 const ClassDataItemIterator& it, [all...] |
H A D | thread.cc | 119 for (uintptr_t* it = begin; it != end; ++it) { 120 *it = reinterpret_cast<uintptr_t>(UnimplementedEntryPoint); 196 // Indicates whether the returned value is a reference. If so, the GC will visit it. 431 // delete the tmp_jni_env, as we own it at this point. 467 // Sanity check that if we have a result it is either suspended or we hold the thread_list_lock_ 468 // to stop it from going away. 501 // than implicitly take it away from them. 531 // NB. madvise will probably write zeroes into the memory (on linux it doe [all...] |
/art/runtime/gc/collector/ |
H A D | mark_sweep.cc | 73 // Turn off kCheckLocks when profiling the GC since it slows the GC down by up to 40%. 207 // incorrectly sweep it. This also fixes a race where interning may attempt to return a strong 231 // Having the checkpoint fixes this issue since it ensures that the card mark and the 450 LOG(INTERNAL_FATAL) << "Attempting see if it's a bad root"; 547 // Used to mark objects when processing the mark stack. If an object is null, it is not marked. 615 // At this point the live stack should no longer have any mutators which push into it. 1231 // This object is in the space, remove it from the array and add it to the sweep buffer 1320 // marked, put it on the appropriate list in the heap for later processing. 1378 for (auto* it [all...] |
/art/dex2oat/ |
H A D | dex2oat.cc | 234 UsageError(" Do not include the arch as part of the name, it is added automatically."); 330 UsageError(" If used without --debuggable, it will be best-effort only."); 446 // TODO: When we can guarantee it won't prevent shutdown in error cases, move to LOG. However, 447 // it's rather easy to hang in unwinding. 448 // LogLine also avoids ART logging lock issues, as it's really only a wrapper around 487 // TODO: Switch to Mutex when we can guarantee it won't prevent shutdown in error cases. 609 // StringPiece is not necessarily zero-terminated, so need to make a copy and ensure it. 984 // 4) Replace suffix with s if it's "jar" -> d == "jar" -> pci.s 1243 swap_file->MarkUnchecked(); // We don't we to track this, it will be unlinked immediately. 1244 swap_file->DisableAutoClose(); // We'll handle it ourselve [all...] |
/art/runtime/arch/mips64/ |
H A D | quick_entrypoints_mips64.S | 60 sd $t8, 136($sp) # t8 holds caller's gp, now save it to the stack. 117 sd $t8, 56($sp) # t8 holds caller's gp, now save it to the stack. 144 ld $t8, 56($sp) # Restore gp back to it's temp storage. 168 ld $t8, 56($sp) # Restore gp back to it's temp storage. 204 sd $t8, 184($sp) # t8 holds caller's gp, now save it to the stack. 272 ld $t8, 184($sp) # Restore gp back to it's temp storage. 383 sd $t8, 80($sp) # t8 holds caller's gp, now save it to the stack. 440 ld $t8, 80($sp) # Restore gp back to it's temp storage. 566 jalr $zero, $t9 # do long jump (do not use ra, it must not be clobbered) 652 * thread and we branch to another stub to deliver it [all...] |
/art/compiler/ |
H A D | oat_test.cc | 408 ClassDataItemIterator it(dex_file, class_data); 409 num_virtual_methods = it.NumVirtualMethods(); 443 // it is time to update OatHeader::kOatVersion
|
/art/runtime/arch/mips/ |
H A D | quick_entrypoints_mips.S | 234 * Use $a0 as the Method* and loads it into bottom of stack. 563 * thread and we branch to another stub to deliver it. 1695 # We successfully hit an entry in the table. Load the target method and jump to it.
|
/art/runtime/interpreter/mterp/out/ |
H A D | mterp_x86.S | 203 * IBase handles uses the caller save register so we must restore it after each call. 204 * Also it is used as a result of some 64-bit operations (like imul) and we should 205 * restore it in such cases also. 207 * TODO: Consider spilling the IBase instead of restoring it from Thread structure. 215 * If rSELF is already loaded then we can use it from known reg. 240 * Remove opcode from rINST, compute the address of handler and jump to it. 736 movl rIBASE, %ecx # preserve rIBASE (cltd trashes it) 749 movl rIBASE, %ecx # preserve rIBASE (cltd trashes it) 980 * check for it here. 1136 * we decode it an [all...] |