| Index: src/frames.cc
|
| diff --git a/src/frames.cc b/src/frames.cc
|
| index 4cdfe39183c5252096f5a42bc07e4a1ae1502539..adf807a90a1c742137b808737fbb3fe1bd04b855 100644
|
| --- a/src/frames.cc
|
| +++ b/src/frames.cc
|
| @@ -1152,22 +1152,25 @@ void InterpretedFrame::PatchBytecodeOffset(int new_offset) {
|
| SetExpression(index, Smi::FromInt(raw_offset));
|
| }
|
|
|
| -Object* InterpretedFrame::GetInterpreterRegister(int register_index) const {
|
| - const int index = InterpreterFrameConstants::kRegisterFileExpressionIndex;
|
| - DCHECK_EQ(InterpreterFrameConstants::kRegisterFilePointerFromFp,
|
| +Object* InterpretedFrame::GetBytecodeArray() const {
|
| + const int index = InterpreterFrameConstants::kBytecodeArrayExpressionIndex;
|
| + DCHECK_EQ(InterpreterFrameConstants::kBytecodeArrayFromFp,
|
| StandardFrameConstants::kExpressionsOffset - index * kPointerSize);
|
| - return GetExpression(index + register_index);
|
| + return GetExpression(index);
|
| }
|
|
|
| -Address InterpretedFrame::GetDispatchTable() const {
|
| - return Memory::Address_at(
|
| - fp() + InterpreterFrameConstants::kDispatchTableFromFp);
|
| +void InterpretedFrame::PatchBytecodeArray(Object* bytecode_array) {
|
| + const int index = InterpreterFrameConstants::kBytecodeArrayExpressionIndex;
|
| + DCHECK_EQ(InterpreterFrameConstants::kBytecodeArrayFromFp,
|
| + StandardFrameConstants::kExpressionsOffset - index * kPointerSize);
|
| + SetExpression(index, bytecode_array);
|
| }
|
|
|
| -void InterpretedFrame::PatchDispatchTable(Address dispatch_table) {
|
| - Address* dispatch_table_address = reinterpret_cast<Address*>(
|
| - fp() + InterpreterFrameConstants::kDispatchTableFromFp);
|
| - *dispatch_table_address = dispatch_table;
|
| +Object* InterpretedFrame::GetInterpreterRegister(int register_index) const {
|
| + const int index = InterpreterFrameConstants::kRegisterFileExpressionIndex;
|
| + DCHECK_EQ(InterpreterFrameConstants::kRegisterFilePointerFromFp,
|
| + StandardFrameConstants::kExpressionsOffset - index * kPointerSize);
|
| + return GetExpression(index + register_index);
|
| }
|
|
|
| void InterpretedFrame::Summarize(List<FrameSummary>* functions) {
|
| @@ -1421,23 +1424,6 @@ void JavaScriptFrame::Iterate(ObjectVisitor* v) const {
|
| IteratePc(v, pc_address(), constant_pool_address(), LookupCode());
|
| }
|
|
|
| -void InterpretedFrame::Iterate(ObjectVisitor* v) const {
|
| - // Visit tagged pointers in the fixed frame.
|
| - Object** fixed_frame_base =
|
| - &Memory::Object_at(fp() + InterpreterFrameConstants::kNewTargetFromFp);
|
| - Object** fixed_frame_limit =
|
| - &Memory::Object_at(fp() + StandardFrameConstants::kLastObjectOffset) + 1;
|
| - v->VisitPointers(fixed_frame_base, fixed_frame_limit);
|
| -
|
| - // Visit the expressions.
|
| - Object** expression_base = &Memory::Object_at(sp());
|
| - Object** expression_limit = &Memory::Object_at(
|
| - fp() + InterpreterFrameConstants::kBytecodeOffsetFromFp) + 1;
|
| - v->VisitPointers(expression_base, expression_limit);
|
| -
|
| - IteratePc(v, pc_address(), constant_pool_address(), LookupCode());
|
| -}
|
| -
|
| void InternalFrame::Iterate(ObjectVisitor* v) const {
|
| // Internal frames only have object pointers on the expression stack
|
| // as they never have any arguments.
|
|
|