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

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

Issue 2493001: - Continue removing [static] qualifier from StubCache. (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
Patch Set: '' Created 10 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
« no previous file with comments | « no previous file | src/codegen.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 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 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 // -- lr : return address 293 // -- lr : return address
294 // ----------------------------------- 294 // -----------------------------------
295 Label number, non_number, non_string, boolean, probe, miss; 295 Label number, non_number, non_string, boolean, probe, miss;
296 296
297 // Get the receiver of the function from the stack into r1. 297 // Get the receiver of the function from the stack into r1.
298 __ ldr(r1, MemOperand(sp, argc * kPointerSize)); 298 __ ldr(r1, MemOperand(sp, argc * kPointerSize));
299 299
300 // Probe the stub cache. 300 // Probe the stub cache.
301 Code::Flags flags = 301 Code::Flags flags =
302 Code::ComputeFlags(Code::CALL_IC, NOT_IN_LOOP, MONOMORPHIC, NORMAL, argc); 302 Code::ComputeFlags(Code::CALL_IC, NOT_IN_LOOP, MONOMORPHIC, NORMAL, argc);
303 StubCache::GenerateProbe(masm, flags, r1, r2, r3, no_reg); 303 Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, r1, r2, r3,
304 no_reg);
304 305
305 // If the stub cache probing failed, the receiver might be a value. 306 // If the stub cache probing failed, the receiver might be a value.
306 // For value objects, we use the map of the prototype objects for 307 // For value objects, we use the map of the prototype objects for
307 // the corresponding JSValue for the cache and that is what we need 308 // the corresponding JSValue for the cache and that is what we need
308 // to probe. 309 // to probe.
309 // 310 //
310 // Check for number. 311 // Check for number.
311 __ tst(r1, Operand(kSmiTagMask)); 312 __ tst(r1, Operand(kSmiTagMask));
312 __ b(eq, &number); 313 __ b(eq, &number);
313 __ CompareObjectType(r1, r3, r3, HEAP_NUMBER_TYPE); 314 __ CompareObjectType(r1, r3, r3, HEAP_NUMBER_TYPE);
(...skipping 18 matching lines...) Expand all
332 __ b(eq, &boolean); 333 __ b(eq, &boolean);
333 __ LoadRoot(ip, Heap::kFalseValueRootIndex); 334 __ LoadRoot(ip, Heap::kFalseValueRootIndex);
334 __ cmp(r1, ip); 335 __ cmp(r1, ip);
335 __ b(ne, &miss); 336 __ b(ne, &miss);
336 __ bind(&boolean); 337 __ bind(&boolean);
337 StubCompiler::GenerateLoadGlobalFunctionPrototype( 338 StubCompiler::GenerateLoadGlobalFunctionPrototype(
338 masm, Context::BOOLEAN_FUNCTION_INDEX, r1); 339 masm, Context::BOOLEAN_FUNCTION_INDEX, r1);
339 340
340 // Probe the stub cache for the value object. 341 // Probe the stub cache for the value object.
341 __ bind(&probe); 342 __ bind(&probe);
342 StubCache::GenerateProbe(masm, flags, r1, r2, r3, no_reg); 343 Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, r1, r2, r3,
344 no_reg);
343 345
344 // Cache miss: Jump to runtime. 346 // Cache miss: Jump to runtime.
345 __ bind(&miss); 347 __ bind(&miss);
346 GenerateMiss(masm, argc); 348 GenerateMiss(masm, argc);
347 } 349 }
348 350
349 351
350 static void GenerateNormalHelper(MacroAssembler* masm, 352 static void GenerateNormalHelper(MacroAssembler* masm,
351 int argc, 353 int argc,
352 bool is_global_object, 354 bool is_global_object,
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 // -- r2 : name 492 // -- r2 : name
491 // -- lr : return address 493 // -- lr : return address
492 // -- r0 : receiver 494 // -- r0 : receiver
493 // -- sp[0] : receiver 495 // -- sp[0] : receiver
494 // ----------------------------------- 496 // -----------------------------------
495 497
496 // Probe the stub cache. 498 // Probe the stub cache.
497 Code::Flags flags = Code::ComputeFlags(Code::LOAD_IC, 499 Code::Flags flags = Code::ComputeFlags(Code::LOAD_IC,
498 NOT_IN_LOOP, 500 NOT_IN_LOOP,
499 MONOMORPHIC); 501 MONOMORPHIC);
500 StubCache::GenerateProbe(masm, flags, r0, r2, r3, no_reg); 502 Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, r0, r2, r3,
503 no_reg);
501 504
502 // Cache miss: Jump to runtime. 505 // Cache miss: Jump to runtime.
503 GenerateMiss(masm); 506 GenerateMiss(masm);
504 } 507 }
505 508
506 509
507 void LoadIC::GenerateNormal(MacroAssembler* masm) { 510 void LoadIC::GenerateNormal(MacroAssembler* masm) {
508 // ----------- S t a t e ------------- 511 // ----------- S t a t e -------------
509 // -- r2 : name 512 // -- r2 : name
510 // -- lr : return address 513 // -- lr : return address
(...skipping 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after
1730 // -- r0 : value 1733 // -- r0 : value
1731 // -- r1 : receiver 1734 // -- r1 : receiver
1732 // -- r2 : name 1735 // -- r2 : name
1733 // -- lr : return address 1736 // -- lr : return address
1734 // ----------------------------------- 1737 // -----------------------------------
1735 1738
1736 // Get the receiver from the stack and probe the stub cache. 1739 // Get the receiver from the stack and probe the stub cache.
1737 Code::Flags flags = Code::ComputeFlags(Code::STORE_IC, 1740 Code::Flags flags = Code::ComputeFlags(Code::STORE_IC,
1738 NOT_IN_LOOP, 1741 NOT_IN_LOOP,
1739 MONOMORPHIC); 1742 MONOMORPHIC);
1740 StubCache::GenerateProbe(masm, flags, r1, r2, r3, no_reg); 1743 Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, r1, r2, r3,
1744 no_reg);
1741 1745
1742 // Cache miss: Jump to runtime. 1746 // Cache miss: Jump to runtime.
1743 GenerateMiss(masm); 1747 GenerateMiss(masm);
1744 } 1748 }
1745 1749
1746 1750
1747 void StoreIC::GenerateMiss(MacroAssembler* masm) { 1751 void StoreIC::GenerateMiss(MacroAssembler* masm) {
1748 // ----------- S t a t e ------------- 1752 // ----------- S t a t e -------------
1749 // -- r0 : value 1753 // -- r0 : value
1750 // -- r1 : receiver 1754 // -- r1 : receiver
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1806 GenerateMiss(masm); 1810 GenerateMiss(masm);
1807 } 1811 }
1808 1812
1809 1813
1810 #undef __ 1814 #undef __
1811 1815
1812 1816
1813 } } // namespace v8::internal 1817 } } // namespace v8::internal
1814 1818
1815 #endif // V8_TARGET_ARCH_ARM 1819 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « no previous file | src/codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698