| 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 1160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1171 ASSERT(!in_delay_slot_); | 1171 ASSERT(!in_delay_slot_); |
| 1172 if (Utils::IsInt(kImmBits, offset)) { | 1172 if (Utils::IsInt(kImmBits, offset)) { |
| 1173 sw(reg, Address(base, offset)); | 1173 sw(reg, Address(base, offset)); |
| 1174 } else { | 1174 } else { |
| 1175 LoadImmediate(TMP, offset); | 1175 LoadImmediate(TMP, offset); |
| 1176 addu(TMP, base, TMP); | 1176 addu(TMP, base, TMP); |
| 1177 sw(reg, Address(TMP, 0)); | 1177 sw(reg, Address(TMP, 0)); |
| 1178 } | 1178 } |
| 1179 } | 1179 } |
| 1180 | 1180 |
| 1181 void StoreFieldToOffset(Register reg, Register base, int32_t offset) { |
| 1182 StoreToOffset(reg, base, offset - kHeapObjectTag); |
| 1183 } |
| 1184 |
| 1185 |
| 1181 void StoreDToOffset(DRegister reg, Register base, int32_t offset) { | 1186 void StoreDToOffset(DRegister reg, Register base, int32_t offset) { |
| 1182 ASSERT(!in_delay_slot_); | 1187 ASSERT(!in_delay_slot_); |
| 1183 FRegister lo = static_cast<FRegister>(reg * 2); | 1188 FRegister lo = static_cast<FRegister>(reg * 2); |
| 1184 FRegister hi = static_cast<FRegister>(reg * 2 + 1); | 1189 FRegister hi = static_cast<FRegister>(reg * 2 + 1); |
| 1185 swc1(lo, Address(base, offset)); | 1190 swc1(lo, Address(base, offset)); |
| 1186 swc1(hi, Address(base, offset + kWordSize)); | 1191 swc1(hi, Address(base, offset + kWordSize)); |
| 1187 } | 1192 } |
| 1188 | 1193 |
| 1189 void LoadDFromOffset(DRegister reg, Register base, int32_t offset) { | 1194 void LoadDFromOffset(DRegister reg, Register base, int32_t offset) { |
| 1190 ASSERT(!in_delay_slot_); | 1195 ASSERT(!in_delay_slot_); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 1216 void CompareObject(Register rd1, Register rd2, | 1221 void CompareObject(Register rd1, Register rd2, |
| 1217 Register rn, const Object& object); | 1222 Register rn, const Object& object); |
| 1218 | 1223 |
| 1219 void LoadIsolate(Register result); | 1224 void LoadIsolate(Register result); |
| 1220 | 1225 |
| 1221 void LoadClassId(Register result, Register object); | 1226 void LoadClassId(Register result, Register object); |
| 1222 void LoadClassById(Register result, Register class_id); | 1227 void LoadClassById(Register result, Register class_id); |
| 1223 void LoadClass(Register result, Register object); | 1228 void LoadClass(Register result, Register object); |
| 1224 void LoadTaggedClassIdMayBeSmi(Register result, Register object); | 1229 void LoadTaggedClassIdMayBeSmi(Register result, Register object); |
| 1225 | 1230 |
| 1231 void ComputeRange(Register result, |
| 1232 Register value, |
| 1233 Label* miss); |
| 1234 |
| 1235 void UpdateRangeFeedback(Register value, |
| 1236 intptr_t index, |
| 1237 Register ic_data, |
| 1238 Register scratch, |
| 1239 Label* miss); |
| 1240 |
| 1226 void StoreIntoObject(Register object, // Object we are storing into. | 1241 void StoreIntoObject(Register object, // Object we are storing into. |
| 1227 const Address& dest, // Where we are storing into. | 1242 const Address& dest, // Where we are storing into. |
| 1228 Register value, // Value we are storing. | 1243 Register value, // Value we are storing. |
| 1229 bool can_value_be_smi = true); | 1244 bool can_value_be_smi = true); |
| 1230 void StoreIntoObjectOffset(Register object, | 1245 void StoreIntoObjectOffset(Register object, |
| 1231 int32_t offset, | 1246 int32_t offset, |
| 1232 Register value, | 1247 Register value, |
| 1233 bool can_value_be_smi = true); | 1248 bool can_value_be_smi = true); |
| 1234 | 1249 |
| 1235 void StoreIntoObjectNoBarrier(Register object, | 1250 void StoreIntoObjectNoBarrier(Register object, |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1413 Register value, | 1428 Register value, |
| 1414 Label* no_update); | 1429 Label* no_update); |
| 1415 | 1430 |
| 1416 DISALLOW_ALLOCATION(); | 1431 DISALLOW_ALLOCATION(); |
| 1417 DISALLOW_COPY_AND_ASSIGN(Assembler); | 1432 DISALLOW_COPY_AND_ASSIGN(Assembler); |
| 1418 }; | 1433 }; |
| 1419 | 1434 |
| 1420 } // namespace dart | 1435 } // namespace dart |
| 1421 | 1436 |
| 1422 #endif // VM_ASSEMBLER_MIPS_H_ | 1437 #endif // VM_ASSEMBLER_MIPS_H_ |
| OLD | NEW |