| Index: runtime/vm/instructions_ia32_test.cc
 | 
| diff --git a/runtime/vm/instructions_ia32_test.cc b/runtime/vm/instructions_ia32_test.cc
 | 
| index 6b01cdb8916c71bc73c0d99c70f26ae300f79598..cace22907f15c72106f9cd0599f6d68407f57542 100644
 | 
| --- a/runtime/vm/instructions_ia32_test.cc
 | 
| +++ b/runtime/vm/instructions_ia32_test.cc
 | 
| @@ -17,7 +17,7 @@ namespace dart {
 | 
|  #define __ assembler->
 | 
|  
 | 
|  ASSEMBLER_TEST_GENERATE(Call, assembler) {
 | 
| -  __ call(&StubCode::InvokeDartCode_entry()->label());
 | 
| +  __ Call(*StubCode::InvokeDartCode_entry());
 | 
|    __ ret();
 | 
|  }
 | 
|  
 | 
| @@ -29,6 +29,41 @@ ASSEMBLER_TEST_RUN(Call, test) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| +ASSEMBLER_TEST_GENERATE(Jump, assembler) {
 | 
| +  __ Jmp(*StubCode::InvokeDartCode_entry());
 | 
| +  const ExternalLabel label(StubCode::AllocateArray_entry()->EntryPoint());
 | 
| +  __ jmp(&label);
 | 
| +  __ ret();
 | 
| +}
 | 
| +
 | 
| +
 | 
| +ASSEMBLER_TEST_RUN(Jump, test) {
 | 
| +  const Code& code = test->code();
 | 
| +  const Instructions& instrs = Instructions::Handle(code.instructions());
 | 
| +  bool status =
 | 
| +      VirtualMemory::Protect(reinterpret_cast<void*>(instrs.EntryPoint()),
 | 
| +                             instrs.size(),
 | 
| +                             VirtualMemory::kReadWrite);
 | 
| +  EXPECT(status);
 | 
| +  JumpPattern jump1(test->entry(), test->code());
 | 
| +  EXPECT_EQ(StubCode::InvokeDartCode_entry()->EntryPoint(),
 | 
| +            jump1.TargetAddress());
 | 
| +  JumpPattern jump2(test->entry() + jump1.pattern_length_in_bytes(),
 | 
| +                    test->code());
 | 
| +  const Code& array_stub =
 | 
| +      Code::Handle(StubCode::AllocateArray_entry()->code());
 | 
| +  EXPECT_EQ(array_stub.EntryPoint(),
 | 
| +            jump2.TargetAddress());
 | 
| +  uword target1 = jump1.TargetAddress();
 | 
| +  uword target2 = jump2.TargetAddress();
 | 
| +  jump1.SetTargetAddress(target2);
 | 
| +  jump2.SetTargetAddress(target1);
 | 
| +  EXPECT_EQ(array_stub.EntryPoint(),
 | 
| +            jump1.TargetAddress());
 | 
| +  EXPECT_EQ(StubCode::InvokeDartCode_entry()->EntryPoint(),
 | 
| +            jump2.TargetAddress());
 | 
| +}
 | 
| +
 | 
|  }  // namespace dart
 | 
|  
 | 
|  #endif  // defined TARGET_ARCH_IA32
 | 
| 
 |