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

Side by Side Diff: src/codegen-arm.cc

Issue 11563: Fixing the detection of aliased eval so that it is exact.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 12 years, 1 month 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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 2302 matching lines...) Expand 10 before | Expand all | Expand 10 after
2313 2313
2314 // ------------------------------------------------------------------------ 2314 // ------------------------------------------------------------------------
2315 // Fast-case: Use inline caching. 2315 // Fast-case: Use inline caching.
2316 // --- 2316 // ---
2317 // According to ECMA-262, section 11.2.3, page 44, the function to call 2317 // According to ECMA-262, section 11.2.3, page 44, the function to call
2318 // must be resolved after the arguments have been evaluated. The IC code 2318 // must be resolved after the arguments have been evaluated. The IC code
2319 // automatically handles this by loading the arguments before the function 2319 // automatically handles this by loading the arguments before the function
2320 // is resolved in cache misses (this also holds for megamorphic calls). 2320 // is resolved in cache misses (this also holds for megamorphic calls).
2321 // ------------------------------------------------------------------------ 2321 // ------------------------------------------------------------------------
2322 2322
2323 if (node->eval_type() == Call::POTENTIALLY_DIRECT) {
2324 __ CallRuntime(Runtime::kSetInPotentiallyDirectEval, 0);
2325 } else {
2326 __ CallRuntime(Runtime::kClearInPotentiallyDirectEval, 0);
2327 }
2328
2323 if (var != NULL && !var->is_this() && var->is_global()) { 2329 if (var != NULL && !var->is_this() && var->is_global()) {
2324 // ---------------------------------- 2330 // ----------------------------------
2325 // JavaScript example: 'foo(1, 2, 3)' // foo is global 2331 // JavaScript example: 'foo(1, 2, 3)' // foo is global
2326 // ---------------------------------- 2332 // ----------------------------------
2327 2333
2328 // Push the name of the function and the receiver onto the stack. 2334 // Push the name of the function and the receiver onto the stack.
2329 __ mov(r0, Operand(var->name())); 2335 __ mov(r0, Operand(var->name()));
2330 frame_->Push(r0); 2336 frame_->Push(r0);
2331 2337
2332 // Pass the global object as the receiver and let the IC stub 2338 // Pass the global object as the receiver and let the IC stub
(...skipping 1954 matching lines...) Expand 10 before | Expand all | Expand 10 after
4287 __ mov(r2, Operand(0)); 4293 __ mov(r2, Operand(0));
4288 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION); 4294 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION);
4289 __ Jump(Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline)), 4295 __ Jump(Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline)),
4290 RelocInfo::CODE_TARGET); 4296 RelocInfo::CODE_TARGET);
4291 } 4297 }
4292 4298
4293 4299
4294 #undef __ 4300 #undef __
4295 4301
4296 } } // namespace v8::internal 4302 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/ast.cc ('k') | src/codegen-ia32.cc » ('j') | test/cctest/test-api.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698