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

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

Issue 10521004: Eliminate RawObject::class_ field entirely. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 6 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
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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_IA32. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32.
6 #if defined(TARGET_ARCH_IA32) 6 #if defined(TARGET_ARCH_IA32)
7 7
8 #include "vm/opt_code_generator.h" 8 #include "vm/opt_code_generator.h"
9 9
10 #include "vm/assembler_macros.h" 10 #include "vm/assembler_macros.h"
(...skipping 2731 matching lines...) Expand 10 before | Expand all | Expand 10 after
2742 bool OptimizingCodeGenerator::TryInlineStaticCall(StaticCallNode* node) { 2742 bool OptimizingCodeGenerator::TryInlineStaticCall(StaticCallNode* node) {
2743 Recognizer::Kind recognized = Recognizer::RecognizeKind(node->function()); 2743 Recognizer::Kind recognized = Recognizer::RecognizeKind(node->function());
2744 if (false && recognized == Recognizer::kMathSqrt) { 2744 if (false && recognized == Recognizer::kMathSqrt) {
2745 Label smi_to_double, call_method, done; 2745 Label smi_to_double, call_method, done;
2746 __ movl(EAX, Address(ESP, 0)); 2746 __ movl(EAX, Address(ESP, 0));
2747 CheckIfDoubleOrSmi(EAX, EBX, &smi_to_double, &call_method); 2747 CheckIfDoubleOrSmi(EAX, EBX, &smi_to_double, &call_method);
2748 __ movsd(XMM1, FieldAddress(EAX, Double::value_offset())); 2748 __ movsd(XMM1, FieldAddress(EAX, Double::value_offset()));
2749 __ sqrtsd(XMM0, XMM1); 2749 __ sqrtsd(XMM0, XMM1);
2750 AssemblerMacros::TryAllocate(assembler_, 2750 AssemblerMacros::TryAllocate(assembler_,
2751 double_class_, 2751 double_class_,
2752 EBX, // Class register.
2753 &call_method, 2752 &call_method,
2754 EAX); // Result register. 2753 EAX); // Result register.
2755 __ movsd(FieldAddress(EAX, Double::value_offset()), XMM0); 2754 __ movsd(FieldAddress(EAX, Double::value_offset()), XMM0);
2756 __ jmp(&done); 2755 __ jmp(&done);
2757 __ Bind(&smi_to_double); 2756 __ Bind(&smi_to_double);
2758 __ Bind(&call_method); 2757 __ Bind(&call_method);
2759 __ LoadObject(ECX, node->function()); 2758 __ LoadObject(ECX, node->function());
2760 __ LoadObject(EDX, ArgumentsDescriptor(node->arguments()->length(), 2759 __ LoadObject(EDX, ArgumentsDescriptor(node->arguments()->length(),
2761 node->arguments()->names())); 2760 node->arguments()->names()));
2762 GenerateCall(node->token_index(), &StubCode::CallStaticFunctionLabel(), 2761 GenerateCall(node->token_index(), &StubCode::CallStaticFunctionLabel(),
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
2888 } 2887 }
2889 } 2888 }
2890 // TODO(srdjan): Implement unary kSUB (negate) Mint. 2889 // TODO(srdjan): Implement unary kSUB (negate) Mint.
2891 CodeGenerator::VisitUnaryOpNode(node); 2890 CodeGenerator::VisitUnaryOpNode(node);
2892 } 2891 }
2893 2892
2894 2893
2895 } // namespace dart 2894 } // namespace dart
2896 2895
2897 #endif // defined TARGET_ARCH_IA32 2896 #endif // defined TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698