| Index: runtime/vm/object.cc
|
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
|
| index 0886a30ee2dca5a75bbf024e7550dc68db4a360f..3e3700a2779f418b1f8351a0e8c86e061f73de07 100644
|
| --- a/runtime/vm/object.cc
|
| +++ b/runtime/vm/object.cc
|
| @@ -5265,7 +5265,7 @@ void Function::SetInstructions(const Code& value) const {
|
|
|
| void Function::SetInstructionsSafe(const Code& value) const {
|
| StorePointer(&raw_ptr()->code_, value.raw());
|
| - StoreNonPointer(&raw_ptr()->entry_point_, value.EntryPoint());
|
| + StoreNonPointer(&raw_ptr()->entry_point_, value.UncheckedEntryPoint());
|
| }
|
|
|
|
|
| @@ -5316,7 +5316,7 @@ void Function::SwitchToUnoptimizedCode() const {
|
| if (FLAG_trace_deoptimization_verbose) {
|
| THR_Print("Disabling optimized code: '%s' entry: %#" Px "\n",
|
| ToFullyQualifiedCString(),
|
| - current_code.EntryPoint());
|
| + current_code.UncheckedEntryPoint());
|
| }
|
| current_code.DisableDartCode();
|
| const Error& error = Error::Handle(zone,
|
| @@ -13006,7 +13006,7 @@ void ICData::AddReceiverCheck(intptr_t receiver_class_id,
|
| ASSERT(target.HasCode());
|
| const Code& code = Code::Handle(target.CurrentCode());
|
| const Smi& entry_point =
|
| - Smi::Handle(Smi::FromAlignedAddress(code.EntryPoint()));
|
| + Smi::Handle(Smi::FromAlignedAddress(code.UncheckedEntryPoint()));
|
| data.SetAt(data_pos + 1, code);
|
| data.SetAt(data_pos + 2, entry_point);
|
| }
|
| @@ -13676,7 +13676,7 @@ RawTypedData* Code::GetDeoptInfoAtPc(uword pc,
|
| uint32_t* deopt_flags) const {
|
| ASSERT(is_optimized());
|
| const Instructions& instrs = Instructions::Handle(instructions());
|
| - uword code_entry = instrs.EntryPoint();
|
| + uword code_entry = instrs.PayloadStart();
|
| const Array& table = Array::Handle(deopt_info_array());
|
| if (table.IsNull()) {
|
| ASSERT(Dart::snapshot_kind() == Snapshot::kAppNoJIT);
|
| @@ -13704,7 +13704,7 @@ RawTypedData* Code::GetDeoptInfoAtPc(uword pc,
|
| intptr_t Code::BinarySearchInSCallTable(uword pc) const {
|
| NoSafepointScope no_safepoint;
|
| const Array& table = Array::Handle(raw_ptr()->static_calls_target_table_);
|
| - RawObject* key = reinterpret_cast<RawObject*>(Smi::New(pc - EntryPoint()));
|
| + RawObject* key = reinterpret_cast<RawObject*>(Smi::New(pc - PayloadStart()));
|
| intptr_t imin = 0;
|
| intptr_t imax = table.Length() / kSCallTableEntryLength;
|
| while (imax >= imin) {
|
| @@ -13783,7 +13783,7 @@ void Code::Disassemble(DisassemblyFormatter* formatter) const {
|
| return;
|
| }
|
| const Instructions& instr = Instructions::Handle(instructions());
|
| - uword start = instr.EntryPoint();
|
| + uword start = instr.PayloadStart();
|
| if (formatter == NULL) {
|
| Disassembler::Disassemble(start, start + instr.size(), *this);
|
| } else {
|
| @@ -13968,15 +13968,15 @@ RawCode* Code::FinalizeCode(const char* name,
|
|
|
| // Copy the instructions into the instruction area and apply all fixups.
|
| // Embedded pointers are still in handles at this point.
|
| - MemoryRegion region(reinterpret_cast<void*>(instrs.EntryPoint()),
|
| + MemoryRegion region(reinterpret_cast<void*>(instrs.PayloadStart()),
|
| instrs.size());
|
| assembler->FinalizeInstructions(region);
|
| - CPU::FlushICache(instrs.EntryPoint(), instrs.size());
|
| + CPU::FlushICache(instrs.PayloadStart(), instrs.size());
|
|
|
| code.set_compile_timestamp(OS::GetCurrentMonotonicMicros());
|
| #ifndef PRODUCT
|
| CodeObservers::NotifyAll(name,
|
| - instrs.EntryPoint(),
|
| + instrs.PayloadStart(),
|
| assembler->prologue_offset(),
|
| instrs.size(),
|
| optimized);
|
| @@ -14082,13 +14082,13 @@ RawCode* Code::LookupCodeInVmIsolate(uword pc) {
|
| RawCode* Code::FindCode(uword pc, int64_t timestamp) {
|
| Code& code = Code::Handle(Code::LookupCode(pc));
|
| if (!code.IsNull() && (code.compile_timestamp() == timestamp) &&
|
| - (code.EntryPoint() == pc)) {
|
| + (code.PayloadStart() == pc)) {
|
| // Found code in isolate.
|
| return code.raw();
|
| }
|
| code ^= Code::LookupCodeInVmIsolate(pc);
|
| if (!code.IsNull() && (code.compile_timestamp() == timestamp) &&
|
| - (code.EntryPoint() == pc)) {
|
| + (code.PayloadStart() == pc)) {
|
| // Found code in VM isolate.
|
| return code.raw();
|
| }
|
| @@ -14097,7 +14097,7 @@ RawCode* Code::FindCode(uword pc, int64_t timestamp) {
|
|
|
|
|
| TokenPosition Code::GetTokenIndexOfPC(uword pc) const {
|
| - uword pc_offset = pc - EntryPoint();
|
| + uword pc_offset = pc - PayloadStart();
|
| const PcDescriptors& descriptors = PcDescriptors::Handle(pc_descriptors());
|
| PcDescriptors::Iterator iter(descriptors, RawPcDescriptors::kAnyKind);
|
| while (iter.MoveNext()) {
|
| @@ -14116,7 +14116,7 @@ uword Code::GetPcForDeoptId(intptr_t deopt_id,
|
| while (iter.MoveNext()) {
|
| if (iter.DeoptId() == deopt_id) {
|
| uword pc_offset = iter.PcOffset();
|
| - uword pc = EntryPoint() + pc_offset;
|
| + uword pc = PayloadStart() + pc_offset;
|
| ASSERT(ContainsInstructionAt(pc));
|
| return pc;
|
| }
|
| @@ -14126,7 +14126,7 @@ uword Code::GetPcForDeoptId(intptr_t deopt_id,
|
|
|
|
|
| intptr_t Code::GetDeoptIdForOsr(uword pc) const {
|
| - uword pc_offset = pc - EntryPoint();
|
| + uword pc_offset = pc - PayloadStart();
|
| const PcDescriptors& descriptors = PcDescriptors::Handle(pc_descriptors());
|
| PcDescriptors::Iterator iter(descriptors, RawPcDescriptors::kOsrEntry);
|
| while (iter.MoveNext()) {
|
| @@ -14141,10 +14141,10 @@ intptr_t Code::GetDeoptIdForOsr(uword pc) const {
|
| const char* Code::ToCString() const {
|
| Zone* zone = Thread::Current()->zone();
|
| if (IsStubCode()) {
|
| - const char* name = StubCode::NameOfStub(EntryPoint());
|
| + const char* name = StubCode::NameOfStub(UncheckedEntryPoint());
|
| return zone->PrintToString("[stub: %s]", name);
|
| } else {
|
| - return zone->PrintToString("Code entry:%" Px, EntryPoint());
|
| + return zone->PrintToString("Code entry:%" Px, UncheckedEntryPoint());
|
| }
|
| }
|
|
|
| @@ -14155,7 +14155,7 @@ RawString* Code::Name() const {
|
| // Regular stub.
|
| Thread* thread = Thread::Current();
|
| Zone* zone = thread->zone();
|
| - const char* name = StubCode::NameOfStub(EntryPoint());
|
| + const char* name = StubCode::NameOfStub(UncheckedEntryPoint());
|
| ASSERT(name != NULL);
|
| char* stub_name = OS::SCreate(zone,
|
| "%s%s", Symbols::StubPrefix().ToCString(), name);
|
| @@ -14234,14 +14234,15 @@ void Code::SetActiveInstructions(RawInstructions* instructions) const {
|
| // store buffer update is not needed here.
|
| StorePointer(&raw_ptr()->active_instructions_, instructions);
|
| StoreNonPointer(&raw_ptr()->entry_point_,
|
| - reinterpret_cast<uword>(instructions->ptr()) +
|
| - Instructions::HeaderSize());
|
| + Instructions::UncheckedEntryPoint(instructions));
|
| + StoreNonPointer(&raw_ptr()->checked_entry_point_,
|
| + Instructions::CheckedEntryPoint(instructions));
|
| }
|
|
|
|
|
| uword Code::GetLazyDeoptPc() const {
|
| return (lazy_deopt_pc_offset() != kInvalidPc)
|
| - ? EntryPoint() + lazy_deopt_pc_offset() : 0;
|
| + ? PayloadStart() + lazy_deopt_pc_offset() : 0;
|
| }
|
|
|
|
|
| @@ -22355,7 +22356,7 @@ const char* Stacktrace::ToCStringInternal(intptr_t* frame_index,
|
| } else {
|
| code = CodeAtFrame(i);
|
| ASSERT(function.raw() == code.function());
|
| - uword pc = code.EntryPoint() + Smi::Value(PcOffsetAtFrame(i));
|
| + uword pc = code.PayloadStart() + Smi::Value(PcOffsetAtFrame(i));
|
| if (code.is_optimized() &&
|
| expand_inlined() &&
|
| !FLAG_precompiled_runtime) {
|
| @@ -22368,8 +22369,8 @@ const char* Stacktrace::ToCStringInternal(intptr_t* frame_index,
|
| ASSERT(function.raw() == code.function());
|
| uword pc = it.pc();
|
| ASSERT(pc != 0);
|
| - ASSERT(code.EntryPoint() <= pc);
|
| - ASSERT(pc < (code.EntryPoint() + code.Size()));
|
| + ASSERT(code.PayloadStart() <= pc);
|
| + ASSERT(pc < (code.PayloadStart() + code.Size()));
|
| total_len += PrintOneStacktrace(
|
| zone, &frame_strings, pc, function, code, *frame_index);
|
| (*frame_index)++; // To account for inlined frames.
|
|
|