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

Side by Side Diff: src/arm/stub-cache-arm.cc

Issue 16631002: Separate Cell and PropertyCell spaces (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove Mips changes Created 7 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 | « src/arm/macro-assembler-arm.cc ('k') | src/assembler.h » ('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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 420
421 421
422 // Generate code to check that a global property cell is empty. Create 422 // Generate code to check that a global property cell is empty. Create
423 // the property cell at compilation time if no cell exists for the 423 // the property cell at compilation time if no cell exists for the
424 // property. 424 // property.
425 static void GenerateCheckPropertyCell(MacroAssembler* masm, 425 static void GenerateCheckPropertyCell(MacroAssembler* masm,
426 Handle<GlobalObject> global, 426 Handle<GlobalObject> global,
427 Handle<Name> name, 427 Handle<Name> name,
428 Register scratch, 428 Register scratch,
429 Label* miss) { 429 Label* miss) {
430 Handle<JSGlobalPropertyCell> cell = 430 Handle<Cell> cell = GlobalObject::EnsurePropertyCell(global, name);
431 GlobalObject::EnsurePropertyCell(global, name);
432 ASSERT(cell->value()->IsTheHole()); 431 ASSERT(cell->value()->IsTheHole());
433 __ mov(scratch, Operand(cell)); 432 __ mov(scratch, Operand(cell));
434 __ ldr(scratch, 433 __ ldr(scratch, FieldMemOperand(scratch, Cell::kValueOffset));
435 FieldMemOperand(scratch, JSGlobalPropertyCell::kValueOffset));
436 __ LoadRoot(ip, Heap::kTheHoleValueRootIndex); 434 __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
437 __ cmp(scratch, ip); 435 __ cmp(scratch, ip);
438 __ b(ne, miss); 436 __ b(ne, miss);
439 } 437 }
440 438
441 439
442 // Generate StoreTransition code, value is passed in r0 register. 440 // Generate StoreTransition code, value is passed in r0 register.
443 // When leaving generated code after success, the receiver_reg and name_reg 441 // When leaving generated code after success, the receiver_reg and name_reg
444 // may be clobbered. Upon branch to miss_label, the receiver and name 442 // may be clobbered. Upon branch to miss_label, the receiver and name
445 // registers have their original values. 443 // registers have their original values.
(...skipping 1133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 // Get the receiver from the stack. 1577 // Get the receiver from the stack.
1580 __ ldr(r0, MemOperand(sp, argc * kPointerSize)); 1578 __ ldr(r0, MemOperand(sp, argc * kPointerSize));
1581 1579
1582 // Check that the maps haven't changed. 1580 // Check that the maps haven't changed.
1583 __ JumpIfSmi(r0, miss); 1581 __ JumpIfSmi(r0, miss);
1584 CheckPrototypes(object, r0, holder, r3, r1, r4, name, miss); 1582 CheckPrototypes(object, r0, holder, r3, r1, r4, name, miss);
1585 } 1583 }
1586 1584
1587 1585
1588 void CallStubCompiler::GenerateLoadFunctionFromCell( 1586 void CallStubCompiler::GenerateLoadFunctionFromCell(
1589 Handle<JSGlobalPropertyCell> cell, 1587 Handle<Cell> cell,
1590 Handle<JSFunction> function, 1588 Handle<JSFunction> function,
1591 Label* miss) { 1589 Label* miss) {
1592 // Get the value from the cell. 1590 // Get the value from the cell.
1593 __ mov(r3, Operand(cell)); 1591 __ mov(r3, Operand(cell));
1594 __ ldr(r1, FieldMemOperand(r3, JSGlobalPropertyCell::kValueOffset)); 1592 __ ldr(r1, FieldMemOperand(r3, Cell::kValueOffset));
1595 1593
1596 // Check that the cell contains the same function. 1594 // Check that the cell contains the same function.
1597 if (heap()->InNewSpace(*function)) { 1595 if (heap()->InNewSpace(*function)) {
1598 // We can't embed a pointer to a function in new space so we have 1596 // We can't embed a pointer to a function in new space so we have
1599 // to verify that the shared function info is unchanged. This has 1597 // to verify that the shared function info is unchanged. This has
1600 // the nice side effect that multiple closures based on the same 1598 // the nice side effect that multiple closures based on the same
1601 // function can all use this call IC. Before we load through the 1599 // function can all use this call IC. Before we load through the
1602 // function, we have to verify that it still is a function. 1600 // function, we have to verify that it still is a function.
1603 __ JumpIfSmi(r1, miss); 1601 __ JumpIfSmi(r1, miss);
1604 __ CompareObjectType(r1, r3, r3, JS_FUNCTION_TYPE); 1602 __ CompareObjectType(r1, r3, r3, JS_FUNCTION_TYPE);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1655 GenerateMissBranch(); 1653 GenerateMissBranch();
1656 1654
1657 // Return the generated code. 1655 // Return the generated code.
1658 return GetCode(Code::FIELD, name); 1656 return GetCode(Code::FIELD, name);
1659 } 1657 }
1660 1658
1661 1659
1662 Handle<Code> CallStubCompiler::CompileArrayPushCall( 1660 Handle<Code> CallStubCompiler::CompileArrayPushCall(
1663 Handle<Object> object, 1661 Handle<Object> object,
1664 Handle<JSObject> holder, 1662 Handle<JSObject> holder,
1665 Handle<JSGlobalPropertyCell> cell, 1663 Handle<Cell> cell,
1666 Handle<JSFunction> function, 1664 Handle<JSFunction> function,
1667 Handle<String> name) { 1665 Handle<String> name) {
1668 // ----------- S t a t e ------------- 1666 // ----------- S t a t e -------------
1669 // -- r2 : name 1667 // -- r2 : name
1670 // -- lr : return address 1668 // -- lr : return address
1671 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 1669 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
1672 // -- ... 1670 // -- ...
1673 // -- sp[argc * 4] : receiver 1671 // -- sp[argc * 4] : receiver
1674 // ----------------------------------- 1672 // -----------------------------------
1675 1673
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
1908 GenerateMissBranch(); 1906 GenerateMissBranch();
1909 1907
1910 // Return the generated code. 1908 // Return the generated code.
1911 return GetCode(function); 1909 return GetCode(function);
1912 } 1910 }
1913 1911
1914 1912
1915 Handle<Code> CallStubCompiler::CompileArrayPopCall( 1913 Handle<Code> CallStubCompiler::CompileArrayPopCall(
1916 Handle<Object> object, 1914 Handle<Object> object,
1917 Handle<JSObject> holder, 1915 Handle<JSObject> holder,
1918 Handle<JSGlobalPropertyCell> cell, 1916 Handle<Cell> cell,
1919 Handle<JSFunction> function, 1917 Handle<JSFunction> function,
1920 Handle<String> name) { 1918 Handle<String> name) {
1921 // ----------- S t a t e ------------- 1919 // ----------- S t a t e -------------
1922 // -- r2 : name 1920 // -- r2 : name
1923 // -- lr : return address 1921 // -- lr : return address
1924 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 1922 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
1925 // -- ... 1923 // -- ...
1926 // -- sp[argc * 4] : receiver 1924 // -- sp[argc * 4] : receiver
1927 // ----------------------------------- 1925 // -----------------------------------
1928 1926
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1990 GenerateMissBranch(); 1988 GenerateMissBranch();
1991 1989
1992 // Return the generated code. 1990 // Return the generated code.
1993 return GetCode(function); 1991 return GetCode(function);
1994 } 1992 }
1995 1993
1996 1994
1997 Handle<Code> CallStubCompiler::CompileStringCharCodeAtCall( 1995 Handle<Code> CallStubCompiler::CompileStringCharCodeAtCall(
1998 Handle<Object> object, 1996 Handle<Object> object,
1999 Handle<JSObject> holder, 1997 Handle<JSObject> holder,
2000 Handle<JSGlobalPropertyCell> cell, 1998 Handle<Cell> cell,
2001 Handle<JSFunction> function, 1999 Handle<JSFunction> function,
2002 Handle<String> name) { 2000 Handle<String> name) {
2003 // ----------- S t a t e ------------- 2001 // ----------- S t a t e -------------
2004 // -- r2 : function name 2002 // -- r2 : function name
2005 // -- lr : return address 2003 // -- lr : return address
2006 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2004 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2007 // -- ... 2005 // -- ...
2008 // -- sp[argc * 4] : receiver 2006 // -- sp[argc * 4] : receiver
2009 // ----------------------------------- 2007 // -----------------------------------
2010 2008
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2072 GenerateMissBranch(); 2070 GenerateMissBranch();
2073 2071
2074 // Return the generated code. 2072 // Return the generated code.
2075 return GetCode(function); 2073 return GetCode(function);
2076 } 2074 }
2077 2075
2078 2076
2079 Handle<Code> CallStubCompiler::CompileStringCharAtCall( 2077 Handle<Code> CallStubCompiler::CompileStringCharAtCall(
2080 Handle<Object> object, 2078 Handle<Object> object,
2081 Handle<JSObject> holder, 2079 Handle<JSObject> holder,
2082 Handle<JSGlobalPropertyCell> cell, 2080 Handle<Cell> cell,
2083 Handle<JSFunction> function, 2081 Handle<JSFunction> function,
2084 Handle<String> name) { 2082 Handle<String> name) {
2085 // ----------- S t a t e ------------- 2083 // ----------- S t a t e -------------
2086 // -- r2 : function name 2084 // -- r2 : function name
2087 // -- lr : return address 2085 // -- lr : return address
2088 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2086 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2089 // -- ... 2087 // -- ...
2090 // -- sp[argc * 4] : receiver 2088 // -- sp[argc * 4] : receiver
2091 // ----------------------------------- 2089 // -----------------------------------
2092 2090
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2155 GenerateMissBranch(); 2153 GenerateMissBranch();
2156 2154
2157 // Return the generated code. 2155 // Return the generated code.
2158 return GetCode(function); 2156 return GetCode(function);
2159 } 2157 }
2160 2158
2161 2159
2162 Handle<Code> CallStubCompiler::CompileStringFromCharCodeCall( 2160 Handle<Code> CallStubCompiler::CompileStringFromCharCodeCall(
2163 Handle<Object> object, 2161 Handle<Object> object,
2164 Handle<JSObject> holder, 2162 Handle<JSObject> holder,
2165 Handle<JSGlobalPropertyCell> cell, 2163 Handle<Cell> cell,
2166 Handle<JSFunction> function, 2164 Handle<JSFunction> function,
2167 Handle<String> name) { 2165 Handle<String> name) {
2168 // ----------- S t a t e ------------- 2166 // ----------- S t a t e -------------
2169 // -- r2 : function name 2167 // -- r2 : function name
2170 // -- lr : return address 2168 // -- lr : return address
2171 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2169 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2172 // -- ... 2170 // -- ...
2173 // -- sp[argc * 4] : receiver 2171 // -- sp[argc * 4] : receiver
2174 // ----------------------------------- 2172 // -----------------------------------
2175 2173
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2227 GenerateMissBranch(); 2225 GenerateMissBranch();
2228 2226
2229 // Return the generated code. 2227 // Return the generated code.
2230 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); 2228 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name);
2231 } 2229 }
2232 2230
2233 2231
2234 Handle<Code> CallStubCompiler::CompileMathFloorCall( 2232 Handle<Code> CallStubCompiler::CompileMathFloorCall(
2235 Handle<Object> object, 2233 Handle<Object> object,
2236 Handle<JSObject> holder, 2234 Handle<JSObject> holder,
2237 Handle<JSGlobalPropertyCell> cell, 2235 Handle<Cell> cell,
2238 Handle<JSFunction> function, 2236 Handle<JSFunction> function,
2239 Handle<String> name) { 2237 Handle<String> name) {
2240 // ----------- S t a t e ------------- 2238 // ----------- S t a t e -------------
2241 // -- r2 : function name 2239 // -- r2 : function name
2242 // -- lr : return address 2240 // -- lr : return address
2243 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2241 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2244 // -- ... 2242 // -- ...
2245 // -- sp[argc * 4] : receiver 2243 // -- sp[argc * 4] : receiver
2246 // ----------------------------------- 2244 // -----------------------------------
2247 2245
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
2335 GenerateMissBranch(); 2333 GenerateMissBranch();
2336 2334
2337 // Return the generated code. 2335 // Return the generated code.
2338 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); 2336 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name);
2339 } 2337 }
2340 2338
2341 2339
2342 Handle<Code> CallStubCompiler::CompileMathAbsCall( 2340 Handle<Code> CallStubCompiler::CompileMathAbsCall(
2343 Handle<Object> object, 2341 Handle<Object> object,
2344 Handle<JSObject> holder, 2342 Handle<JSObject> holder,
2345 Handle<JSGlobalPropertyCell> cell, 2343 Handle<Cell> cell,
2346 Handle<JSFunction> function, 2344 Handle<JSFunction> function,
2347 Handle<String> name) { 2345 Handle<String> name) {
2348 // ----------- S t a t e ------------- 2346 // ----------- S t a t e -------------
2349 // -- r2 : function name 2347 // -- r2 : function name
2350 // -- lr : return address 2348 // -- lr : return address
2351 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2349 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2352 // -- ... 2350 // -- ...
2353 // -- sp[argc * 4] : receiver 2351 // -- sp[argc * 4] : receiver
2354 // ----------------------------------- 2352 // -----------------------------------
2355 2353
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
2434 2432
2435 // Return the generated code. 2433 // Return the generated code.
2436 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); 2434 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name);
2437 } 2435 }
2438 2436
2439 2437
2440 Handle<Code> CallStubCompiler::CompileFastApiCall( 2438 Handle<Code> CallStubCompiler::CompileFastApiCall(
2441 const CallOptimization& optimization, 2439 const CallOptimization& optimization,
2442 Handle<Object> object, 2440 Handle<Object> object,
2443 Handle<JSObject> holder, 2441 Handle<JSObject> holder,
2444 Handle<JSGlobalPropertyCell> cell, 2442 Handle<Cell> cell,
2445 Handle<JSFunction> function, 2443 Handle<JSFunction> function,
2446 Handle<String> name) { 2444 Handle<String> name) {
2447 Counters* counters = isolate()->counters(); 2445 Counters* counters = isolate()->counters();
2448 2446
2449 ASSERT(optimization.is_simple_api_call()); 2447 ASSERT(optimization.is_simple_api_call());
2450 // Bail out if object is a global object as we don't want to 2448 // Bail out if object is a global object as we don't want to
2451 // repatch it to global receiver. 2449 // repatch it to global receiver.
2452 if (object->IsGlobalObject()) return Handle<Code>::null(); 2450 if (object->IsGlobalObject()) return Handle<Code>::null();
2453 if (!cell.is_null()) return Handle<Code>::null(); 2451 if (!cell.is_null()) return Handle<Code>::null();
2454 if (!object->IsJSObject()) return Handle<Code>::null(); 2452 if (!object->IsJSObject()) return Handle<Code>::null();
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
2606 2604
2607 2605
2608 Handle<Code> CallStubCompiler::CompileCallConstant( 2606 Handle<Code> CallStubCompiler::CompileCallConstant(
2609 Handle<Object> object, 2607 Handle<Object> object,
2610 Handle<JSObject> holder, 2608 Handle<JSObject> holder,
2611 Handle<Name> name, 2609 Handle<Name> name,
2612 CheckType check, 2610 CheckType check,
2613 Handle<JSFunction> function) { 2611 Handle<JSFunction> function) {
2614 if (HasCustomCallGenerator(function)) { 2612 if (HasCustomCallGenerator(function)) {
2615 Handle<Code> code = CompileCustomCall(object, holder, 2613 Handle<Code> code = CompileCustomCall(object, holder,
2616 Handle<JSGlobalPropertyCell>::null(), 2614 Handle<Cell>::null(),
2617 function, Handle<String>::cast(name)); 2615 function, Handle<String>::cast(name));
2618 // A null handle means bail out to the regular compiler code below. 2616 // A null handle means bail out to the regular compiler code below.
2619 if (!code.is_null()) return code; 2617 if (!code.is_null()) return code;
2620 } 2618 }
2621 2619
2622 Label success; 2620 Label success;
2623 2621
2624 CompileHandlerFrontend(object, holder, name, check, &success); 2622 CompileHandlerFrontend(object, holder, name, check, &success);
2625 __ bind(&success); 2623 __ bind(&success);
2626 CompileHandlerBackend(function); 2624 CompileHandlerBackend(function);
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
2852 __ ldr(scratch1(), FieldMemOperand(receiver(), HeapObject::kMapOffset)); 2850 __ ldr(scratch1(), FieldMemOperand(receiver(), HeapObject::kMapOffset));
2853 __ cmp(scratch1(), Operand(Handle<Map>(object->map()))); 2851 __ cmp(scratch1(), Operand(Handle<Map>(object->map())));
2854 __ b(ne, &miss); 2852 __ b(ne, &miss);
2855 2853
2856 // Check that the value in the cell is not the hole. If it is, this 2854 // Check that the value in the cell is not the hole. If it is, this
2857 // cell could have been deleted and reintroducing the global needs 2855 // cell could have been deleted and reintroducing the global needs
2858 // to update the property details in the property dictionary of the 2856 // to update the property details in the property dictionary of the
2859 // global object. We bail out to the runtime system to do that. 2857 // global object. We bail out to the runtime system to do that.
2860 __ mov(scratch1(), Operand(cell)); 2858 __ mov(scratch1(), Operand(cell));
2861 __ LoadRoot(scratch2(), Heap::kTheHoleValueRootIndex); 2859 __ LoadRoot(scratch2(), Heap::kTheHoleValueRootIndex);
2862 __ ldr(scratch3(), 2860 __ ldr(scratch3(), FieldMemOperand(scratch1(), Cell::kValueOffset));
2863 FieldMemOperand(scratch1(), JSGlobalPropertyCell::kValueOffset));
2864 __ cmp(scratch3(), scratch2()); 2861 __ cmp(scratch3(), scratch2());
2865 __ b(eq, &miss); 2862 __ b(eq, &miss);
2866 2863
2867 // Store the value in the cell. 2864 // Store the value in the cell.
2868 __ str(value(), 2865 __ str(value(), FieldMemOperand(scratch1(), Cell::kValueOffset));
2869 FieldMemOperand(scratch1(), JSGlobalPropertyCell::kValueOffset));
2870 // Cells are always rescanned, so no write barrier here. 2866 // Cells are always rescanned, so no write barrier here.
2871 2867
2872 Counters* counters = isolate()->counters(); 2868 Counters* counters = isolate()->counters();
2873 __ IncrementCounter( 2869 __ IncrementCounter(
2874 counters->named_store_global_inline(), 1, scratch1(), scratch2()); 2870 counters->named_store_global_inline(), 1, scratch1(), scratch2());
2875 __ Ret(); 2871 __ Ret();
2876 2872
2877 // Handle store cache miss. 2873 // Handle store cache miss.
2878 __ bind(&miss); 2874 __ bind(&miss);
2879 __ IncrementCounter( 2875 __ IncrementCounter(
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
2995 bool is_dont_delete) { 2991 bool is_dont_delete) {
2996 Label success, miss; 2992 Label success, miss;
2997 2993
2998 __ CheckMap( 2994 __ CheckMap(
2999 receiver(), scratch1(), Handle<Map>(object->map()), &miss, DO_SMI_CHECK); 2995 receiver(), scratch1(), Handle<Map>(object->map()), &miss, DO_SMI_CHECK);
3000 HandlerFrontendHeader( 2996 HandlerFrontendHeader(
3001 object, receiver(), Handle<JSObject>::cast(global), name, &miss); 2997 object, receiver(), Handle<JSObject>::cast(global), name, &miss);
3002 2998
3003 // Get the value from the cell. 2999 // Get the value from the cell.
3004 __ mov(r3, Operand(cell)); 3000 __ mov(r3, Operand(cell));
3005 __ ldr(r4, FieldMemOperand(r3, JSGlobalPropertyCell::kValueOffset)); 3001 __ ldr(r4, FieldMemOperand(r3, Cell::kValueOffset));
3006 3002
3007 // Check for deleted property if property can actually be deleted. 3003 // Check for deleted property if property can actually be deleted.
3008 if (!is_dont_delete) { 3004 if (!is_dont_delete) {
3009 __ LoadRoot(ip, Heap::kTheHoleValueRootIndex); 3005 __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
3010 __ cmp(r4, ip); 3006 __ cmp(r4, ip);
3011 __ b(eq, &miss); 3007 __ b(eq, &miss);
3012 } 3008 }
3013 3009
3014 HandlerFrontendFooter(&success, &miss); 3010 HandlerFrontendFooter(&success, &miss);
3015 __ bind(&success); 3011 __ bind(&success);
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after
3641 TailCallBuiltin(masm, Builtins::kKeyedStoreIC_Slow); 3637 TailCallBuiltin(masm, Builtins::kKeyedStoreIC_Slow);
3642 } 3638 }
3643 } 3639 }
3644 3640
3645 3641
3646 #undef __ 3642 #undef __
3647 3643
3648 } } // namespace v8::internal 3644 } } // namespace v8::internal
3649 3645
3650 #endif // V8_TARGET_ARCH_ARM 3646 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/macro-assembler-arm.cc ('k') | src/assembler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698