| Index: runtime/vm/stub_code_arm.cc | 
| diff --git a/runtime/vm/stub_code_arm.cc b/runtime/vm/stub_code_arm.cc | 
| index 87b054d36aec0ef517bd1a94d3a3338ba5f440e7..10722ccf45f2d5e0dbb720e4472563064df7d511 100644 | 
| --- a/runtime/vm/stub_code_arm.cc | 
| +++ b/runtime/vm/stub_code_arm.cc | 
| @@ -1850,19 +1850,23 @@ void StubCode::GenerateGetStackPointerStub(Assembler* assembler) { | 
| } | 
|  | 
|  | 
| -// Jump to a frame on the call stack. | 
| +// Jump to the exception or error handler. | 
| // LR: return address. | 
| // R0: program_counter. | 
| // R1: stack_pointer. | 
| // R2: frame_pointer. | 
| -// R3: thread. | 
| +// R3: error object. | 
| +// SP + 0: address of stacktrace object. | 
| +// SP + 4: thread. | 
| // Does not return. | 
| -void StubCode::GenerateJumpToFrameStub(Assembler* assembler) { | 
| +void StubCode::GenerateJumpToExceptionHandlerStub(Assembler* assembler) { | 
| ASSERT(kExceptionObjectReg == R0); | 
| ASSERT(kStackTraceObjectReg == R1); | 
| __ mov(IP, Operand(R1));      // Copy Stack pointer into IP. | 
| __ mov(LR, Operand(R0));      // Program counter. | 
| -  __ mov(THR, Operand(R3));     // Thread. | 
| +  __ mov(R0, Operand(R3));      // Exception object. | 
| +  __ ldr(R1, Address(SP, 0));   // StackTrace object. | 
| +  __ ldr(THR, Address(SP, 4));  // Thread. | 
| __ mov(FP, Operand(R2));      // Frame_pointer. | 
| __ mov(SP, Operand(IP));      // Set Stack pointer. | 
| // Set the tag. | 
| @@ -1874,27 +1878,6 @@ void StubCode::GenerateJumpToFrameStub(Assembler* assembler) { | 
| // Restore the pool pointer. | 
| __ RestoreCodePointer(); | 
| __ LoadPoolPointer(); | 
| -  __ bx(LR);  // Jump to continuation point. | 
| -} | 
| - | 
| - | 
| -// Run an exception handler.  Execution comes from JumpToFrame | 
| -// stub or from the simulator. | 
| -// | 
| -// The arguments are stored in the Thread object. | 
| -// Does not return. | 
| -void StubCode::GenerateRunExceptionHandlerStub(Assembler* assembler) { | 
| -  __ LoadFromOffset(kWord, LR, THR, Thread::resume_pc_offset()); | 
| -  __ LoadImmediate(R2, 0); | 
| - | 
| -  // Exception object. | 
| -  __ LoadFromOffset(kWord, R0, THR, Thread::active_exception_offset()); | 
| -  __ StoreToOffset(kWord, R2, THR, Thread::active_exception_offset()); | 
| - | 
| -  // Stacktrace object. | 
| -  __ LoadFromOffset(kWord, R1, THR, Thread::active_stacktrace_offset()); | 
| -  __ StoreToOffset(kWord, R2, THR, Thread::active_stacktrace_offset()); | 
| - | 
| __ bx(LR);  // Jump to the exception handler code. | 
| } | 
|  | 
|  |