Index: runtime/vm/code_generator.cc |
=================================================================== |
--- runtime/vm/code_generator.cc (revision 10302) |
+++ runtime/vm/code_generator.cc (working copy) |
@@ -148,7 +148,7 @@ |
ASSERT(!descriptors.IsNull()); |
for (int i = 0; i < descriptors.Length(); i++) { |
if (static_cast<uword>(descriptors.PC(i)) == caller_frame->pc()) { |
- return descriptors.TokenIndex(i); |
+ return descriptors.TokenPos(i); |
} |
} |
return -1; |
@@ -434,7 +434,6 @@ |
// This operation is currently very slow (lookup of code is not efficient yet). |
// 'instantiator' can be null, in which case inst_targ |
static void UpdateTypeTestCache( |
- intptr_t node_id, |
const Instance& instance, |
const AbstractType& type, |
const Instance& instantiator, |
@@ -546,23 +545,21 @@ |
// Check that the given instance is an instance of the given type. |
// Tested instance may not be null, because the null test is inlined. |
-// Arg0: node id of the instanceof node. |
-// Arg1: instance being checked. |
-// Arg2: type. |
-// Arg3: instantiator (or null). |
-// Arg4: type arguments of the instantiator of the type. |
-// Arg5: SubtypeTestCache. |
+// Arg0: instance being checked. |
+// Arg1: type. |
+// Arg2: instantiator (or null). |
+// Arg3: type arguments of the instantiator of the type. |
+// Arg4: SubtypeTestCache. |
// Return value: true or false, or may throw a type error in checked mode. |
-DEFINE_RUNTIME_ENTRY(Instanceof, 6) { |
+DEFINE_RUNTIME_ENTRY(Instanceof, 5) { |
ASSERT(arguments.Count() == kInstanceofRuntimeEntry.argument_count()); |
- intptr_t node_id = Smi::CheckedHandle(arguments.At(0)).Value(); |
- const Instance& instance = Instance::CheckedHandle(arguments.At(1)); |
- const AbstractType& type = AbstractType::CheckedHandle(arguments.At(2)); |
- const Instance& instantiator = Instance::CheckedHandle(arguments.At(3)); |
+ const Instance& instance = Instance::CheckedHandle(arguments.At(0)); |
+ const AbstractType& type = AbstractType::CheckedHandle(arguments.At(1)); |
+ const Instance& instantiator = Instance::CheckedHandle(arguments.At(2)); |
const AbstractTypeArguments& instantiator_type_arguments = |
- AbstractTypeArguments::CheckedHandle(arguments.At(4)); |
+ AbstractTypeArguments::CheckedHandle(arguments.At(3)); |
const SubtypeTestCache& cache = |
- SubtypeTestCache::CheckedHandle(arguments.At(5)); |
+ SubtypeTestCache::CheckedHandle(arguments.At(4)); |
ASSERT(type.IsFinalized()); |
Error& malformed_error = Error::Handle(); |
const Bool& result = Bool::Handle( |
@@ -584,7 +581,7 @@ |
location, no_name, no_name, no_name, malformed_error_message); |
UNREACHABLE(); |
} |
- UpdateTypeTestCache(node_id, instance, type, instantiator, |
+ UpdateTypeTestCache(instance, type, instantiator, |
instantiator_type_arguments, result, cache); |
arguments.SetReturn(result); |
} |
@@ -592,25 +589,23 @@ |
// Check that the type of the given instance is a subtype of the given type and |
// can therefore be assigned. |
-// Arg0: node-id of the assignment. |
-// Arg1: instance being assigned. |
-// Arg2: type being assigned to. |
-// Arg3: instantiator (or null). |
-// Arg4: type arguments of the instantiator of the type being assigned to. |
-// Arg5: name of variable being assigned to. |
-// Arg6: SubtypeTestCache. |
+// Arg0: instance being assigned. |
+// Arg1: type being assigned to. |
+// Arg2: instantiator (or null). |
+// Arg3: type arguments of the instantiator of the type being assigned to. |
+// Arg4: name of variable being assigned to. |
+// Arg5: SubtypeTestCache. |
// Return value: instance if a subtype, otherwise throw a TypeError. |
-DEFINE_RUNTIME_ENTRY(TypeCheck, 7) { |
+DEFINE_RUNTIME_ENTRY(TypeCheck, 6) { |
ASSERT(arguments.Count() == kTypeCheckRuntimeEntry.argument_count()); |
- intptr_t node_id = Smi::CheckedHandle(arguments.At(0)).Value(); |
- const Instance& src_instance = Instance::CheckedHandle(arguments.At(1)); |
- const AbstractType& dst_type = AbstractType::CheckedHandle(arguments.At(2)); |
- const Instance& dst_instantiator = Instance::CheckedHandle(arguments.At(3)); |
+ const Instance& src_instance = Instance::CheckedHandle(arguments.At(0)); |
+ const AbstractType& dst_type = AbstractType::CheckedHandle(arguments.At(1)); |
+ const Instance& dst_instantiator = Instance::CheckedHandle(arguments.At(2)); |
const AbstractTypeArguments& instantiator_type_arguments = |
- AbstractTypeArguments::CheckedHandle(arguments.At(4)); |
- const String& dst_name = String::CheckedHandle(arguments.At(5)); |
+ AbstractTypeArguments::CheckedHandle(arguments.At(3)); |
+ const String& dst_name = String::CheckedHandle(arguments.At(4)); |
const SubtypeTestCache& cache = |
- SubtypeTestCache::CheckedHandle(arguments.At(6)); |
+ SubtypeTestCache::CheckedHandle(arguments.At(5)); |
ASSERT(!dst_type.IsDynamicType()); // No need to check assignment. |
ASSERT(!dst_type.IsMalformed()); // Already checked in code generator. |
ASSERT(!src_instance.IsNull()); // Already checked in inlined code. |
@@ -647,7 +642,7 @@ |
dst_name, malformed_error_message); |
UNREACHABLE(); |
} |
- UpdateTypeTestCache(node_id, src_instance, dst_type, |
+ UpdateTypeTestCache(src_instance, dst_type, |
dst_instantiator, instantiator_type_arguments, |
Bool::ZoneHandle(Bool::True()), cache); |
arguments.SetReturn(src_instance); |
@@ -1401,10 +1396,10 @@ |
// Locate deopt id at deoptimization point inside optimized code. |
for (int i = 0; i < descriptors.Length(); i++) { |
if (static_cast<uword>(descriptors.PC(i)) == pc) { |
- return descriptors.NodeId(i); |
+ return descriptors.DeoptId(i); |
} |
} |
- return Computation::kNoCid; |
+ return Isolate::kNoDeoptId; |
} |
@@ -1438,7 +1433,7 @@ |
ASSERT(optimized_code.is_optimized()); |
const intptr_t deopt_id = GetDeoptInfo(optimized_code, caller_frame->pc()); |
- ASSERT(deopt_id != Computation::kNoCid); |
+ ASSERT(deopt_id != Isolate::kNoDeoptId); |
// Add incoming arguments. |
const Function& function = Function::Handle(optimized_code.function()); |
@@ -1498,8 +1493,8 @@ |
intptr_t* registers_copy = isolate->deopt_registers_copy(); |
intptr_t deopt_id = GetDeoptInfo(optimized_code, caller_frame->pc()); |
- ASSERT(deopt_id != Computation::kNoCid); |
- uword continue_at_pc = unoptimized_code.GetDeoptPcAtNodeId(deopt_id); |
+ ASSERT(deopt_id != Isolate::kNoDeoptId); |
+ uword continue_at_pc = unoptimized_code.GetDeoptPcAtDeoptId(deopt_id); |
if (FLAG_trace_deopt) { |
OS::Print(" -> continue at 0x%x\n", continue_at_pc); |
// TODO(srdjan): If we could allow GC, we could print the line where |