Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(608)

Side by Side Diff: src/mips/stub-cache-mips.cc

Issue 7744014: MIPS: Fixed and optimized MacroAssembler::Trunc_uw_d, Cvt_d_uw, Ext, Ins. (Closed)
Patch Set: Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/mips/macro-assembler-mips.cc ('k') | test/cctest/test-assembler-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « src/mips/macro-assembler-mips.cc ('k') | test/cctest/test-assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698