| 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 #include "vm/globals.h" | 5 #include "vm/globals.h" |
| 6 #if defined(TARGET_ARCH_MIPS) | 6 #if defined(TARGET_ARCH_MIPS) |
| 7 | 7 |
| 8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
| 9 #include "vm/runtime_entry.h" | 9 #include "vm/runtime_entry.h" |
| 10 #include "vm/simulator.h" | 10 #include "vm/simulator.h" |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 return object_pool_.Length() - 1; | 197 return object_pool_.Length() - 1; |
| 198 } | 198 } |
| 199 | 199 |
| 200 | 200 |
| 201 void Assembler::PushObject(const Object& object) { | 201 void Assembler::PushObject(const Object& object) { |
| 202 LoadObject(TMP1, object); | 202 LoadObject(TMP1, object); |
| 203 Push(TMP1); | 203 Push(TMP1); |
| 204 } | 204 } |
| 205 | 205 |
| 206 | 206 |
| 207 void Assembler::CompareObject(Register rd, Register rn, const Object& object) { | 207 void Assembler::CompareObject(Register rd1, Register rd2, |
| 208 Register rn, const Object& object) { |
| 208 ASSERT(rn != TMP1); | 209 ASSERT(rn != TMP1); |
| 210 ASSERT(rd1 != TMP1); |
| 211 ASSERT(rd1 != rd2); |
| 209 LoadObject(TMP1, object); | 212 LoadObject(TMP1, object); |
| 210 subu(rd, rn, TMP1); | 213 slt(rd1, rn, TMP1); |
| 214 slt(rd2, TMP1, rn); |
| 211 } | 215 } |
| 212 | 216 |
| 213 | 217 |
| 214 // Preserves object and value registers. | 218 // Preserves object and value registers. |
| 215 void Assembler::StoreIntoObjectFilterNoSmi(Register object, | 219 void Assembler::StoreIntoObjectFilterNoSmi(Register object, |
| 216 Register value, | 220 Register value, |
| 217 Label* no_update) { | 221 Label* no_update) { |
| 218 COMPILE_ASSERT((kNewObjectAlignmentOffset == kWordSize) && | 222 COMPILE_ASSERT((kNewObjectAlignmentOffset == kWordSize) && |
| 219 (kOldObjectAlignmentOffset == 0), young_alignment); | 223 (kOldObjectAlignmentOffset == 0), young_alignment); |
| 220 | 224 |
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 Emit(reinterpret_cast<int32_t>(message)); | 582 Emit(reinterpret_cast<int32_t>(message)); |
| 579 Bind(&msg); | 583 Bind(&msg); |
| 580 break_(Instr::kMsgMessageCode); | 584 break_(Instr::kMsgMessageCode); |
| 581 } | 585 } |
| 582 } | 586 } |
| 583 | 587 |
| 584 } // namespace dart | 588 } // namespace dart |
| 585 | 589 |
| 586 #endif // defined TARGET_ARCH_MIPS | 590 #endif // defined TARGET_ARCH_MIPS |
| 587 | 591 |
| OLD | NEW |