OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 3620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3631 // conversion. Don't use a0 and a1 as AllocateHeapNumber clobbers all | 3631 // conversion. Don't use a0 and a1 as AllocateHeapNumber clobbers all |
3632 // registers - also when jumping due to exhausted young space. | 3632 // registers - also when jumping due to exhausted young space. |
3633 __ LoadRoot(t6, Heap::kHeapNumberMapRootIndex); | 3633 __ LoadRoot(t6, Heap::kHeapNumberMapRootIndex); |
3634 __ AllocateHeapNumber(v0, t2, t3, t6, &slow); | 3634 __ AllocateHeapNumber(v0, t2, t3, t6, &slow); |
3635 | 3635 |
3636 // This is replaced by a macro: | 3636 // This is replaced by a macro: |
3637 // __ mtc1(value, f0); // LS 32-bits. | 3637 // __ mtc1(value, f0); // LS 32-bits. |
3638 // __ mtc1(zero_reg, f1); // MS 32-bits are all zero. | 3638 // __ mtc1(zero_reg, f1); // MS 32-bits are all zero. |
3639 // __ cvt_d_l(f0, f0); // Use 64 bit conv to get correct unsigned 32-bit. | 3639 // __ cvt_d_l(f0, f0); // Use 64 bit conv to get correct unsigned 32-bit. |
3640 | 3640 |
3641 __ Cvt_d_uw(f0, value); | 3641 __ Cvt_d_uw(f0, value, f22); |
3642 | 3642 |
3643 __ sdc1(f0, MemOperand(v0, HeapNumber::kValueOffset - kHeapObjectTag)); | 3643 __ sdc1(f0, MemOperand(v0, HeapNumber::kValueOffset - kHeapObjectTag)); |
3644 | 3644 |
3645 __ Ret(); | 3645 __ Ret(); |
3646 } else { | 3646 } else { |
3647 // Check whether unsigned integer fits into smi. | 3647 // Check whether unsigned integer fits into smi. |
3648 Label box_int_0, box_int_1, done; | 3648 Label box_int_0, box_int_1, done; |
3649 __ And(t2, value, Operand(0x80000000)); | 3649 __ And(t2, value, Operand(0x80000000)); |
3650 __ Branch(&box_int_0, ne, t2, Operand(zero_reg)); | 3650 __ Branch(&box_int_0, ne, t2, Operand(zero_reg)); |
3651 __ And(t2, value, Operand(0x40000000)); | 3651 __ And(t2, value, Operand(0x40000000)); |
(...skipping 834 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4486 masm->isolate()->builtins()->KeyedStoreIC_MissForceGeneric(); | 4486 masm->isolate()->builtins()->KeyedStoreIC_MissForceGeneric(); |
4487 __ Jump(ic, RelocInfo::CODE_TARGET); | 4487 __ Jump(ic, RelocInfo::CODE_TARGET); |
4488 } | 4488 } |
4489 | 4489 |
4490 | 4490 |
4491 #undef __ | 4491 #undef __ |
4492 | 4492 |
4493 } } // namespace v8::internal | 4493 } } // namespace v8::internal |
4494 | 4494 |
4495 #endif // V8_TARGET_ARCH_MIPS | 4495 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |