| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <limits.h> // For LONG_MIN, LONG_MAX. | 5 #include <limits.h> // For LONG_MIN, LONG_MAX. |
| 6 | 6 |
| 7 #include "src/v8.h" | 7 #include "src/v8.h" |
| 8 | 8 |
| 9 #if V8_TARGET_ARCH_MIPS64 | 9 #if V8_TARGET_ARCH_MIPS64 |
| 10 | 10 |
| (...skipping 6198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6209 | 6209 |
| 6210 | 6210 |
| 6211 void MacroAssembler::JumpIfDictionaryInPrototypeChain( | 6211 void MacroAssembler::JumpIfDictionaryInPrototypeChain( |
| 6212 Register object, | 6212 Register object, |
| 6213 Register scratch0, | 6213 Register scratch0, |
| 6214 Register scratch1, | 6214 Register scratch1, |
| 6215 Label* found) { | 6215 Label* found) { |
| 6216 DCHECK(!scratch1.is(scratch0)); | 6216 DCHECK(!scratch1.is(scratch0)); |
| 6217 Factory* factory = isolate()->factory(); | 6217 Factory* factory = isolate()->factory(); |
| 6218 Register current = scratch0; | 6218 Register current = scratch0; |
| 6219 Label loop_again; | 6219 Label loop_again, end; |
| 6220 | 6220 |
| 6221 // Scratch contained elements pointer. | 6221 // Scratch contained elements pointer. |
| 6222 Move(current, object); | 6222 Move(current, object); |
| 6223 ld(current, FieldMemOperand(current, HeapObject::kMapOffset)); |
| 6224 ld(current, FieldMemOperand(current, Map::kPrototypeOffset)); |
| 6225 Branch(&end, eq, current, Operand(factory->null_value())); |
| 6223 | 6226 |
| 6224 // Loop based on the map going up the prototype chain. | 6227 // Loop based on the map going up the prototype chain. |
| 6225 bind(&loop_again); | 6228 bind(&loop_again); |
| 6226 ld(current, FieldMemOperand(current, HeapObject::kMapOffset)); | 6229 ld(current, FieldMemOperand(current, HeapObject::kMapOffset)); |
| 6230 lbu(scratch1, FieldMemOperand(current, Map::kInstanceTypeOffset)); |
| 6231 STATIC_ASSERT(JS_VALUE_TYPE < JS_OBJECT_TYPE); |
| 6232 STATIC_ASSERT(JS_PROXY_TYPE < JS_OBJECT_TYPE); |
| 6233 Branch(found, lo, scratch1, Operand(JS_OBJECT_TYPE)); |
| 6227 lb(scratch1, FieldMemOperand(current, Map::kBitField2Offset)); | 6234 lb(scratch1, FieldMemOperand(current, Map::kBitField2Offset)); |
| 6228 DecodeField<Map::ElementsKindBits>(scratch1); | 6235 DecodeField<Map::ElementsKindBits>(scratch1); |
| 6229 Branch(found, eq, scratch1, Operand(DICTIONARY_ELEMENTS)); | 6236 Branch(found, eq, scratch1, Operand(DICTIONARY_ELEMENTS)); |
| 6230 ld(current, FieldMemOperand(current, Map::kPrototypeOffset)); | 6237 ld(current, FieldMemOperand(current, Map::kPrototypeOffset)); |
| 6231 Branch(&loop_again, ne, current, Operand(factory->null_value())); | 6238 Branch(&loop_again, ne, current, Operand(factory->null_value())); |
| 6239 |
| 6240 bind(&end); |
| 6232 } | 6241 } |
| 6233 | 6242 |
| 6234 | 6243 |
| 6235 bool AreAliased(Register reg1, | 6244 bool AreAliased(Register reg1, |
| 6236 Register reg2, | 6245 Register reg2, |
| 6237 Register reg3, | 6246 Register reg3, |
| 6238 Register reg4, | 6247 Register reg4, |
| 6239 Register reg5, | 6248 Register reg5, |
| 6240 Register reg6, | 6249 Register reg6, |
| 6241 Register reg7, | 6250 Register reg7, |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6336 if (mag.shift > 0) sra(result, result, mag.shift); | 6345 if (mag.shift > 0) sra(result, result, mag.shift); |
| 6337 srl(at, dividend, 31); | 6346 srl(at, dividend, 31); |
| 6338 Addu(result, result, Operand(at)); | 6347 Addu(result, result, Operand(at)); |
| 6339 } | 6348 } |
| 6340 | 6349 |
| 6341 | 6350 |
| 6342 } // namespace internal | 6351 } // namespace internal |
| 6343 } // namespace v8 | 6352 } // namespace v8 |
| 6344 | 6353 |
| 6345 #endif // V8_TARGET_ARCH_MIPS64 | 6354 #endif // V8_TARGET_ARCH_MIPS64 |
| OLD | NEW |