| OLD | NEW | 
 | (Empty) | 
|   1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file |  | 
|   2 // for details. All rights reserved. Use of this source code is governed by a |  | 
|   3 // BSD-style license that can be found in the LICENSE file. |  | 
|   4  |  | 
|   5 #include "vm/globals.h" |  | 
|   6 #if defined(TARGET_ARCH_MIPS) |  | 
|   7  |  | 
|   8 #include "vm/assembler.h" |  | 
|   9 #include "vm/instructions.h" |  | 
|  10 #include "vm/stub_code.h" |  | 
|  11 #include "vm/unit_test.h" |  | 
|  12  |  | 
|  13 namespace dart { |  | 
|  14  |  | 
|  15 #define __ assembler-> |  | 
|  16  |  | 
|  17 ASSEMBLER_TEST_GENERATE(Call, assembler) { |  | 
|  18   __ BranchLinkPatchable(*StubCode::InvokeDartCode_entry()); |  | 
|  19   __ Ret(); |  | 
|  20 } |  | 
|  21  |  | 
|  22  |  | 
|  23 ASSEMBLER_TEST_RUN(Call, test) { |  | 
|  24   // The return address, which must be the address of an instruction contained |  | 
|  25   // in the code, points to the Ret instruction above, i.e. two instructions |  | 
|  26   // before the end of the code buffer, including the delay slot for the |  | 
|  27   // return jump. |  | 
|  28   uword end = test->payload_start() + test->code().Size(); |  | 
|  29   CallPattern call(end - (2 * Instr::kInstrSize), test->code()); |  | 
|  30   EXPECT_EQ(StubCode::InvokeDartCode_entry()->code(), call.TargetCode()); |  | 
|  31 } |  | 
|  32  |  | 
|  33  |  | 
|  34 }  // namespace dart |  | 
|  35  |  | 
|  36 #endif  // defined TARGET_ARCH_MIPS |  | 
| OLD | NEW |