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

Side by Side Diff: runtime/vm/intrinsifier_mips.cc

Issue 1049933002: Implement bigint shift intrinsics on x64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « runtime/vm/intrinsifier_ia32.cc ('k') | runtime/vm/intrinsifier_x64.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 (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 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS.
6 #if defined(TARGET_ARCH_MIPS) 6 #if defined(TARGET_ARCH_MIPS)
7 7
8 #include "vm/intrinsifier.h" 8 #include "vm/intrinsifier.h"
9 9
10 #include "vm/assembler.h" 10 #include "vm/assembler.h"
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 __ Ret(); 776 __ Ret();
777 __ delay_slot()->addiu(V0, V0, Immediate(-1)); // Remove inverted smi-tag. 777 __ delay_slot()->addiu(V0, V0, Immediate(-1)); // Remove inverted smi-tag.
778 } 778 }
779 779
780 780
781 void Intrinsifier::Smi_bitLength(Assembler* assembler) { 781 void Intrinsifier::Smi_bitLength(Assembler* assembler) {
782 // TODO(sra): Implement. 782 // TODO(sra): Implement.
783 } 783 }
784 784
785 785
786 void Intrinsifier::Bigint_lsh(Assembler* assembler) {
787 // TODO(regis): Implement.
788 }
789
790
791 void Intrinsifier::Bigint_rsh(Assembler* assembler) {
792 // TODO(regis): Implement.
793 }
794
795
786 void Intrinsifier::Bigint_absAdd(Assembler* assembler) { 796 void Intrinsifier::Bigint_absAdd(Assembler* assembler) {
787 // static void _absAdd(Uint32List digits, int used, 797 // static void _absAdd(Uint32List digits, int used,
788 // Uint32List a_digits, int a_used, 798 // Uint32List a_digits, int a_used,
789 // Uint32List r_digits) 799 // Uint32List r_digits)
790 800
791 // T2 = used, T3 = digits 801 // T2 = used, T3 = digits
792 __ lw(T2, Address(SP, 3 * kWordSize)); 802 __ lw(T2, Address(SP, 3 * kWordSize));
793 __ lw(T3, Address(SP, 4 * kWordSize)); 803 __ lw(T3, Address(SP, 4 * kWordSize));
794 // T3 = &digits[0] 804 // T3 = &digits[0]
795 __ addiu(T3, T3, Immediate(TypedData::data_offset() - kHeapObjectTag)); 805 __ addiu(T3, T3, Immediate(TypedData::data_offset() - kHeapObjectTag));
(...skipping 1233 matching lines...) Expand 10 before | Expand all | Expand 10 after
2029 Isolate* isolate = Isolate::Current(); 2039 Isolate* isolate = Isolate::Current();
2030 __ LoadImmediate(V0, reinterpret_cast<uword>(isolate)); 2040 __ LoadImmediate(V0, reinterpret_cast<uword>(isolate));
2031 // Set return value. 2041 // Set return value.
2032 __ Ret(); 2042 __ Ret();
2033 __ delay_slot()->lw(V0, Address(V0, Isolate::current_tag_offset())); 2043 __ delay_slot()->lw(V0, Address(V0, Isolate::current_tag_offset()));
2034 } 2044 }
2035 2045
2036 } // namespace dart 2046 } // namespace dart
2037 2047
2038 #endif // defined TARGET_ARCH_MIPS 2048 #endif // defined TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « runtime/vm/intrinsifier_ia32.cc ('k') | runtime/vm/intrinsifier_x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698