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 "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_MIPS | 7 #if V8_TARGET_ARCH_MIPS |
8 | 8 |
9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
10 #include "src/ic-inl.h" | 10 #include "src/ic-inl.h" |
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 if (it.Done()) { | 406 if (it.Done()) { |
407 __ Branch(miss_label, ne, scratch1, Operand(current)); | 407 __ Branch(miss_label, ne, scratch1, Operand(current)); |
408 break; | 408 break; |
409 } | 409 } |
410 __ Branch(&do_store, eq, scratch1, Operand(current)); | 410 __ Branch(&do_store, eq, scratch1, Operand(current)); |
411 } | 411 } |
412 __ bind(&do_store); | 412 __ bind(&do_store); |
413 } | 413 } |
414 } else if (representation.IsDouble()) { | 414 } else if (representation.IsDouble()) { |
415 Label do_store, heap_number; | 415 Label do_store, heap_number; |
416 __ LoadRoot(scratch3, Heap::kHeapNumberMapRootIndex); | 416 __ LoadRoot(scratch3, Heap::kMutableHeapNumberMapRootIndex); |
417 __ AllocateHeapNumber(storage_reg, scratch1, scratch2, scratch3, slow); | 417 __ AllocateHeapNumber(storage_reg, scratch1, scratch2, scratch3, slow, |
| 418 TAG_RESULT, MUTABLE); |
418 | 419 |
419 __ JumpIfNotSmi(value_reg, &heap_number); | 420 __ JumpIfNotSmi(value_reg, &heap_number); |
420 __ SmiUntag(scratch1, value_reg); | 421 __ SmiUntag(scratch1, value_reg); |
421 __ mtc1(scratch1, f6); | 422 __ mtc1(scratch1, f6); |
422 __ cvt_d_w(f4, f6); | 423 __ cvt_d_w(f4, f6); |
423 __ jmp(&do_store); | 424 __ jmp(&do_store); |
424 | 425 |
425 __ bind(&heap_number); | 426 __ bind(&heap_number); |
426 __ CheckMap(value_reg, scratch1, Heap::kHeapNumberMapRootIndex, | 427 __ CheckMap(value_reg, scratch1, Heap::kHeapNumberMapRootIndex, |
427 miss_label, DONT_DO_SMI_CHECK); | 428 miss_label, DONT_DO_SMI_CHECK); |
(...skipping 1078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1506 // ----------------------------------- | 1507 // ----------------------------------- |
1507 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); | 1508 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); |
1508 } | 1509 } |
1509 | 1510 |
1510 | 1511 |
1511 #undef __ | 1512 #undef __ |
1512 | 1513 |
1513 } } // namespace v8::internal | 1514 } } // namespace v8::internal |
1514 | 1515 |
1515 #endif // V8_TARGET_ARCH_MIPS | 1516 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |