| OLD | NEW | 
|---|
| 1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 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 | 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. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef VM_ASSEMBLER_MIPS_H_ | 5 #ifndef VM_ASSEMBLER_MIPS_H_ | 
| 6 #define VM_ASSEMBLER_MIPS_H_ | 6 #define VM_ASSEMBLER_MIPS_H_ | 
| 7 | 7 | 
| 8 #ifndef VM_ASSEMBLER_H_ | 8 #ifndef VM_ASSEMBLER_H_ | 
| 9 #error Do not include assembler_mips.h directly; use assembler.h instead. | 9 #error Do not include assembler_mips.h directly; use assembler.h instead. | 
| 10 #endif | 10 #endif | 
| (...skipping 778 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 789   } | 789   } | 
| 790 | 790 | 
| 791   void Branch(const ExternalLabel* label) { | 791   void Branch(const ExternalLabel* label) { | 
| 792     LoadImmediate(TMP, label->address()); | 792     LoadImmediate(TMP, label->address()); | 
| 793     jr(TMP); | 793     jr(TMP); | 
| 794   } | 794   } | 
| 795 | 795 | 
| 796   void BranchPatchable(const ExternalLabel* label) { | 796   void BranchPatchable(const ExternalLabel* label) { | 
| 797     const uint16_t low = Utils::Low16Bits(label->address()); | 797     const uint16_t low = Utils::Low16Bits(label->address()); | 
| 798     const uint16_t high = Utils::High16Bits(label->address()); | 798     const uint16_t high = Utils::High16Bits(label->address()); | 
| 799     lui(TMP, Immediate(high)); | 799     lui(T9, Immediate(high)); | 
| 800     ori(TMP, TMP, Immediate(low)); | 800     ori(T9, T9, Immediate(low)); | 
| 801     jr(TMP); | 801     jr(T9); | 
| 802     delay_slot_available_ = false;  // CodePatcher expects a nop. | 802     delay_slot_available_ = false;  // CodePatcher expects a nop. | 
| 803   } | 803   } | 
| 804 | 804 | 
| 805   void BranchLink(const ExternalLabel* label) { | 805   void BranchLink(const ExternalLabel* label) { | 
| 806     LoadImmediate(TMP, label->address()); | 806     LoadImmediate(T9, label->address()); | 
| 807     jalr(TMP); | 807     jalr(T9); | 
| 808   } | 808   } | 
| 809 | 809 | 
| 810   void BranchLinkPatchable(const ExternalLabel* label) { | 810   void BranchLinkPatchable(const ExternalLabel* label) { | 
| 811     const int32_t offset = | 811     const int32_t offset = | 
| 812         Array::data_offset() + 4*AddExternalLabel(label) - kHeapObjectTag; | 812         Array::data_offset() + 4*AddExternalLabel(label) - kHeapObjectTag; | 
| 813     LoadWordFromPoolOffset(TMP, offset); | 813     LoadWordFromPoolOffset(T9, offset); | 
| 814     jalr(TMP); | 814     jalr(T9); | 
| 815     delay_slot_available_ = false;  // CodePatcher expects a nop. | 815     delay_slot_available_ = false;  // CodePatcher expects a nop. | 
| 816   } | 816   } | 
| 817 | 817 | 
| 818   void Drop(intptr_t stack_elements) { | 818   void Drop(intptr_t stack_elements) { | 
| 819     ASSERT(stack_elements >= 0); | 819     ASSERT(stack_elements >= 0); | 
| 820     if (stack_elements > 0) { | 820     if (stack_elements > 0) { | 
| 821       addiu(SP, SP, Immediate(stack_elements * kWordSize)); | 821       addiu(SP, SP, Immediate(stack_elements * kWordSize)); | 
| 822     } | 822     } | 
| 823   } | 823   } | 
| 824 | 824 | 
| (...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1302                                   Register value, | 1302                                   Register value, | 
| 1303                                   Label* no_update); | 1303                                   Label* no_update); | 
| 1304 | 1304 | 
| 1305   DISALLOW_ALLOCATION(); | 1305   DISALLOW_ALLOCATION(); | 
| 1306   DISALLOW_COPY_AND_ASSIGN(Assembler); | 1306   DISALLOW_COPY_AND_ASSIGN(Assembler); | 
| 1307 }; | 1307 }; | 
| 1308 | 1308 | 
| 1309 }  // namespace dart | 1309 }  // namespace dart | 
| 1310 | 1310 | 
| 1311 #endif  // VM_ASSEMBLER_MIPS_H_ | 1311 #endif  // VM_ASSEMBLER_MIPS_H_ | 
| OLD | NEW | 
|---|