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

Side by Side Diff: vm/stub_code_x64.cc

Issue 11519006: Add read only handles for the following predefined symbols (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 8 years 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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" 5 #include "vm/globals.h"
6 #if defined(TARGET_ARCH_X64) 6 #if defined(TARGET_ARCH_X64)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/assembler_macros.h" 9 #include "vm/assembler_macros.h"
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 2052 matching lines...) Expand 10 before | Expand all | Expand 10 after
2063 __ ret(); 2063 __ ret();
2064 2064
2065 __ Bind(&not_smi); 2065 __ Bind(&not_smi);
2066 __ LoadClassId(RAX, RAX); 2066 __ LoadClassId(RAX, RAX);
2067 __ SmiTag(RAX); 2067 __ SmiTag(RAX);
2068 __ ret(); 2068 __ ret();
2069 2069
2070 __ Bind(&update_ic_data); 2070 __ Bind(&update_ic_data);
2071 2071
2072 // RCX: ICData 2072 // RCX: ICData
2073 const String& equal_name = String::ZoneHandle(Symbols::New("=="));
2074 __ movq(RAX, Address(RSP, 1 * kWordSize)); 2073 __ movq(RAX, Address(RSP, 1 * kWordSize));
2075 __ movq(R13, Address(RSP, 2 * kWordSize)); 2074 __ movq(R13, Address(RSP, 2 * kWordSize));
2076 AssemblerMacros::EnterStubFrame(assembler); 2075 AssemblerMacros::EnterStubFrame(assembler);
2077 __ pushq(R13); // arg 0 2076 __ pushq(R13); // arg 0
2078 __ pushq(RAX); // arg 1 2077 __ pushq(RAX); // arg 1
2079 __ PushObject(equal_name); // Target's name. 2078 __ PushObject(Symbols::EqualOperatorHandle()); // Target's name.
2080 __ pushq(RBX); // ICData 2079 __ pushq(RBX); // ICData
2081 __ CallRuntime(kUpdateICDataTwoArgsRuntimeEntry); 2080 __ CallRuntime(kUpdateICDataTwoArgsRuntimeEntry);
2082 __ Drop(4); 2081 __ Drop(4);
2083 __ LeaveFrame(); 2082 __ LeaveFrame();
2084 2083
2085 __ jmp(&compute_result, Assembler::kNearJump); 2084 __ jmp(&compute_result, Assembler::kNearJump);
2086 } 2085 }
2087 2086
2088 // Calls to the runtime to optimize the given function. 2087 // Calls to the runtime to optimize the given function.
2089 // RDX: function to be reoptimized. 2088 // RDX: function to be reoptimized.
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
2171 __ cmpq(left, right); 2170 __ cmpq(left, right);
2172 __ Bind(&done); 2171 __ Bind(&done);
2173 __ popq(right); 2172 __ popq(right);
2174 __ popq(left); 2173 __ popq(left);
2175 __ ret(); 2174 __ ret();
2176 } 2175 }
2177 2176
2178 } // namespace dart 2177 } // namespace dart
2179 2178
2180 #endif // defined TARGET_ARCH_X64 2179 #endif // defined TARGET_ARCH_X64
OLDNEW
« vm/ast.h ('K') | « vm/stub_code_ia32.cc ('k') | vm/symbols.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698