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

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

Issue 16858003: MIPS: Separate Cell and PropertyCell spaces (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fixed nits. 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/mips/macro-assembler-mips.cc ('k') | no next file » | 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 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 413
414 414
415 // Generate code to check that a global property cell is empty. Create 415 // Generate code to check that a global property cell is empty. Create
416 // the property cell at compilation time if no cell exists for the 416 // the property cell at compilation time if no cell exists for the
417 // property. 417 // property.
418 static void GenerateCheckPropertyCell(MacroAssembler* masm, 418 static void GenerateCheckPropertyCell(MacroAssembler* masm,
419 Handle<GlobalObject> global, 419 Handle<GlobalObject> global,
420 Handle<Name> name, 420 Handle<Name> name,
421 Register scratch, 421 Register scratch,
422 Label* miss) { 422 Label* miss) {
423 Handle<JSGlobalPropertyCell> cell = 423 Handle<Cell> cell = GlobalObject::EnsurePropertyCell(global, name);
424 GlobalObject::EnsurePropertyCell(global, name);
425 ASSERT(cell->value()->IsTheHole()); 424 ASSERT(cell->value()->IsTheHole());
426 __ li(scratch, Operand(cell)); 425 __ li(scratch, Operand(cell));
427 __ lw(scratch, 426 __ lw(scratch, FieldMemOperand(scratch, Cell::kValueOffset));
428 FieldMemOperand(scratch, JSGlobalPropertyCell::kValueOffset));
429 __ LoadRoot(at, Heap::kTheHoleValueRootIndex); 427 __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
430 __ Branch(miss, ne, scratch, Operand(at)); 428 __ Branch(miss, ne, scratch, Operand(at));
431 } 429 }
432 430
433 431
434 // Generate StoreTransition code, value is passed in a0 register. 432 // Generate StoreTransition code, value is passed in a0 register.
435 // After executing generated code, the receiver_reg and name_reg 433 // After executing generated code, the receiver_reg and name_reg
436 // may be clobbered. 434 // may be clobbered.
437 void StubCompiler::GenerateStoreTransition(MacroAssembler* masm, 435 void StubCompiler::GenerateStoreTransition(MacroAssembler* masm,
438 Handle<JSObject> object, 436 Handle<JSObject> object,
(...skipping 1154 matching lines...) Expand 10 before | Expand all | Expand 10 after
1593 // Get the receiver from the stack. 1591 // Get the receiver from the stack.
1594 __ lw(a0, MemOperand(sp, argc * kPointerSize)); 1592 __ lw(a0, MemOperand(sp, argc * kPointerSize));
1595 1593
1596 // Check that the maps haven't changed. 1594 // Check that the maps haven't changed.
1597 __ JumpIfSmi(a0, miss); 1595 __ JumpIfSmi(a0, miss);
1598 CheckPrototypes(object, a0, holder, a3, a1, t0, name, miss); 1596 CheckPrototypes(object, a0, holder, a3, a1, t0, name, miss);
1599 } 1597 }
1600 1598
1601 1599
1602 void CallStubCompiler::GenerateLoadFunctionFromCell( 1600 void CallStubCompiler::GenerateLoadFunctionFromCell(
1603 Handle<JSGlobalPropertyCell> cell, 1601 Handle<Cell> cell,
1604 Handle<JSFunction> function, 1602 Handle<JSFunction> function,
1605 Label* miss) { 1603 Label* miss) {
1606 // Get the value from the cell. 1604 // Get the value from the cell.
1607 __ li(a3, Operand(cell)); 1605 __ li(a3, Operand(cell));
1608 __ lw(a1, FieldMemOperand(a3, JSGlobalPropertyCell::kValueOffset)); 1606 __ lw(a1, FieldMemOperand(a3, Cell::kValueOffset));
1609 1607
1610 // Check that the cell contains the same function. 1608 // Check that the cell contains the same function.
1611 if (heap()->InNewSpace(*function)) { 1609 if (heap()->InNewSpace(*function)) {
1612 // We can't embed a pointer to a function in new space so we have 1610 // We can't embed a pointer to a function in new space so we have
1613 // to verify that the shared function info is unchanged. This has 1611 // to verify that the shared function info is unchanged. This has
1614 // the nice side effect that multiple closures based on the same 1612 // the nice side effect that multiple closures based on the same
1615 // function can all use this call IC. Before we load through the 1613 // function can all use this call IC. Before we load through the
1616 // function, we have to verify that it still is a function. 1614 // function, we have to verify that it still is a function.
1617 __ JumpIfSmi(a1, miss); 1615 __ JumpIfSmi(a1, miss);
1618 __ GetObjectType(a1, a3, a3); 1616 __ GetObjectType(a1, a3, a3);
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1668 GenerateMissBranch(); 1666 GenerateMissBranch();
1669 1667
1670 // Return the generated code. 1668 // Return the generated code.
1671 return GetCode(Code::FIELD, name); 1669 return GetCode(Code::FIELD, name);
1672 } 1670 }
1673 1671
1674 1672
1675 Handle<Code> CallStubCompiler::CompileArrayPushCall( 1673 Handle<Code> CallStubCompiler::CompileArrayPushCall(
1676 Handle<Object> object, 1674 Handle<Object> object,
1677 Handle<JSObject> holder, 1675 Handle<JSObject> holder,
1678 Handle<JSGlobalPropertyCell> cell, 1676 Handle<Cell> cell,
1679 Handle<JSFunction> function, 1677 Handle<JSFunction> function,
1680 Handle<String> name) { 1678 Handle<String> name) {
1681 // ----------- S t a t e ------------- 1679 // ----------- S t a t e -------------
1682 // -- a2 : name 1680 // -- a2 : name
1683 // -- ra : return address 1681 // -- ra : return address
1684 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 1682 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
1685 // -- ... 1683 // -- ...
1686 // -- sp[argc * 4] : receiver 1684 // -- sp[argc * 4] : receiver
1687 // ----------------------------------- 1685 // -----------------------------------
1688 1686
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
1922 GenerateMissBranch(); 1920 GenerateMissBranch();
1923 1921
1924 // Return the generated code. 1922 // Return the generated code.
1925 return GetCode(function); 1923 return GetCode(function);
1926 } 1924 }
1927 1925
1928 1926
1929 Handle<Code> CallStubCompiler::CompileArrayPopCall( 1927 Handle<Code> CallStubCompiler::CompileArrayPopCall(
1930 Handle<Object> object, 1928 Handle<Object> object,
1931 Handle<JSObject> holder, 1929 Handle<JSObject> holder,
1932 Handle<JSGlobalPropertyCell> cell, 1930 Handle<Cell> cell,
1933 Handle<JSFunction> function, 1931 Handle<JSFunction> function,
1934 Handle<String> name) { 1932 Handle<String> name) {
1935 // ----------- S t a t e ------------- 1933 // ----------- S t a t e -------------
1936 // -- a2 : name 1934 // -- a2 : name
1937 // -- ra : return address 1935 // -- ra : return address
1938 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 1936 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
1939 // -- ... 1937 // -- ...
1940 // -- sp[argc * 4] : receiver 1938 // -- sp[argc * 4] : receiver
1941 // ----------------------------------- 1939 // -----------------------------------
1942 1940
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 GenerateMissBranch(); 2002 GenerateMissBranch();
2005 2003
2006 // Return the generated code. 2004 // Return the generated code.
2007 return GetCode(function); 2005 return GetCode(function);
2008 } 2006 }
2009 2007
2010 2008
2011 Handle<Code> CallStubCompiler::CompileStringCharCodeAtCall( 2009 Handle<Code> CallStubCompiler::CompileStringCharCodeAtCall(
2012 Handle<Object> object, 2010 Handle<Object> object,
2013 Handle<JSObject> holder, 2011 Handle<JSObject> holder,
2014 Handle<JSGlobalPropertyCell> cell, 2012 Handle<Cell> cell,
2015 Handle<JSFunction> function, 2013 Handle<JSFunction> function,
2016 Handle<String> name) { 2014 Handle<String> name) {
2017 // ----------- S t a t e ------------- 2015 // ----------- S t a t e -------------
2018 // -- a2 : function name 2016 // -- a2 : function name
2019 // -- ra : return address 2017 // -- ra : return address
2020 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2018 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2021 // -- ... 2019 // -- ...
2022 // -- sp[argc * 4] : receiver 2020 // -- sp[argc * 4] : receiver
2023 // ----------------------------------- 2021 // -----------------------------------
2024 2022
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2086 GenerateMissBranch(); 2084 GenerateMissBranch();
2087 2085
2088 // Return the generated code. 2086 // Return the generated code.
2089 return GetCode(function); 2087 return GetCode(function);
2090 } 2088 }
2091 2089
2092 2090
2093 Handle<Code> CallStubCompiler::CompileStringCharAtCall( 2091 Handle<Code> CallStubCompiler::CompileStringCharAtCall(
2094 Handle<Object> object, 2092 Handle<Object> object,
2095 Handle<JSObject> holder, 2093 Handle<JSObject> holder,
2096 Handle<JSGlobalPropertyCell> cell, 2094 Handle<Cell> cell,
2097 Handle<JSFunction> function, 2095 Handle<JSFunction> function,
2098 Handle<String> name) { 2096 Handle<String> name) {
2099 // ----------- S t a t e ------------- 2097 // ----------- S t a t e -------------
2100 // -- a2 : function name 2098 // -- a2 : function name
2101 // -- ra : return address 2099 // -- ra : return address
2102 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2100 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2103 // -- ... 2101 // -- ...
2104 // -- sp[argc * 4] : receiver 2102 // -- sp[argc * 4] : receiver
2105 // ----------------------------------- 2103 // -----------------------------------
2106 2104
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
2167 GenerateMissBranch(); 2165 GenerateMissBranch();
2168 2166
2169 // Return the generated code. 2167 // Return the generated code.
2170 return GetCode(function); 2168 return GetCode(function);
2171 } 2169 }
2172 2170
2173 2171
2174 Handle<Code> CallStubCompiler::CompileStringFromCharCodeCall( 2172 Handle<Code> CallStubCompiler::CompileStringFromCharCodeCall(
2175 Handle<Object> object, 2173 Handle<Object> object,
2176 Handle<JSObject> holder, 2174 Handle<JSObject> holder,
2177 Handle<JSGlobalPropertyCell> cell, 2175 Handle<Cell> cell,
2178 Handle<JSFunction> function, 2176 Handle<JSFunction> function,
2179 Handle<String> name) { 2177 Handle<String> name) {
2180 // ----------- S t a t e ------------- 2178 // ----------- S t a t e -------------
2181 // -- a2 : function name 2179 // -- a2 : function name
2182 // -- ra : return address 2180 // -- ra : return address
2183 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2181 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2184 // -- ... 2182 // -- ...
2185 // -- sp[argc * 4] : receiver 2183 // -- sp[argc * 4] : receiver
2186 // ----------------------------------- 2184 // -----------------------------------
2187 2185
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2240 GenerateMissBranch(); 2238 GenerateMissBranch();
2241 2239
2242 // Return the generated code. 2240 // Return the generated code.
2243 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); 2241 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name);
2244 } 2242 }
2245 2243
2246 2244
2247 Handle<Code> CallStubCompiler::CompileMathFloorCall( 2245 Handle<Code> CallStubCompiler::CompileMathFloorCall(
2248 Handle<Object> object, 2246 Handle<Object> object,
2249 Handle<JSObject> holder, 2247 Handle<JSObject> holder,
2250 Handle<JSGlobalPropertyCell> cell, 2248 Handle<Cell> cell,
2251 Handle<JSFunction> function, 2249 Handle<JSFunction> function,
2252 Handle<String> name) { 2250 Handle<String> name) {
2253 // ----------- S t a t e ------------- 2251 // ----------- S t a t e -------------
2254 // -- a2 : function name 2252 // -- a2 : function name
2255 // -- ra : return address 2253 // -- ra : return address
2256 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2254 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2257 // -- ... 2255 // -- ...
2258 // -- sp[argc * 4] : receiver 2256 // -- sp[argc * 4] : receiver
2259 // ----------------------------------- 2257 // -----------------------------------
2260 2258
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
2369 GenerateMissBranch(); 2367 GenerateMissBranch();
2370 2368
2371 // Return the generated code. 2369 // Return the generated code.
2372 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); 2370 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name);
2373 } 2371 }
2374 2372
2375 2373
2376 Handle<Code> CallStubCompiler::CompileMathAbsCall( 2374 Handle<Code> CallStubCompiler::CompileMathAbsCall(
2377 Handle<Object> object, 2375 Handle<Object> object,
2378 Handle<JSObject> holder, 2376 Handle<JSObject> holder,
2379 Handle<JSGlobalPropertyCell> cell, 2377 Handle<Cell> cell,
2380 Handle<JSFunction> function, 2378 Handle<JSFunction> function,
2381 Handle<String> name) { 2379 Handle<String> name) {
2382 // ----------- S t a t e ------------- 2380 // ----------- S t a t e -------------
2383 // -- a2 : function name 2381 // -- a2 : function name
2384 // -- ra : return address 2382 // -- ra : return address
2385 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) 2383 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based)
2386 // -- ... 2384 // -- ...
2387 // -- sp[argc * 4] : receiver 2385 // -- sp[argc * 4] : receiver
2388 // ----------------------------------- 2386 // -----------------------------------
2389 2387
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
2469 2467
2470 // Return the generated code. 2468 // Return the generated code.
2471 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); 2469 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name);
2472 } 2470 }
2473 2471
2474 2472
2475 Handle<Code> CallStubCompiler::CompileFastApiCall( 2473 Handle<Code> CallStubCompiler::CompileFastApiCall(
2476 const CallOptimization& optimization, 2474 const CallOptimization& optimization,
2477 Handle<Object> object, 2475 Handle<Object> object,
2478 Handle<JSObject> holder, 2476 Handle<JSObject> holder,
2479 Handle<JSGlobalPropertyCell> cell, 2477 Handle<Cell> cell,
2480 Handle<JSFunction> function, 2478 Handle<JSFunction> function,
2481 Handle<String> name) { 2479 Handle<String> name) {
2482 2480
2483 Counters* counters = isolate()->counters(); 2481 Counters* counters = isolate()->counters();
2484 2482
2485 ASSERT(optimization.is_simple_api_call()); 2483 ASSERT(optimization.is_simple_api_call());
2486 // Bail out if object is a global object as we don't want to 2484 // Bail out if object is a global object as we don't want to
2487 // repatch it to global receiver. 2485 // repatch it to global receiver.
2488 if (object->IsGlobalObject()) return Handle<Code>::null(); 2486 if (object->IsGlobalObject()) return Handle<Code>::null();
2489 if (!cell.is_null()) return Handle<Code>::null(); 2487 if (!cell.is_null()) return Handle<Code>::null();
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
2642 2640
2643 2641
2644 Handle<Code> CallStubCompiler::CompileCallConstant( 2642 Handle<Code> CallStubCompiler::CompileCallConstant(
2645 Handle<Object> object, 2643 Handle<Object> object,
2646 Handle<JSObject> holder, 2644 Handle<JSObject> holder,
2647 Handle<Name> name, 2645 Handle<Name> name,
2648 CheckType check, 2646 CheckType check,
2649 Handle<JSFunction> function) { 2647 Handle<JSFunction> function) {
2650 if (HasCustomCallGenerator(function)) { 2648 if (HasCustomCallGenerator(function)) {
2651 Handle<Code> code = CompileCustomCall(object, holder, 2649 Handle<Code> code = CompileCustomCall(object, holder,
2652 Handle<JSGlobalPropertyCell>::null(), 2650 Handle<Cell>::null(),
2653 function, Handle<String>::cast(name)); 2651 function, Handle<String>::cast(name));
2654 // A null handle means bail out to the regular compiler code below. 2652 // A null handle means bail out to the regular compiler code below.
2655 if (!code.is_null()) return code; 2653 if (!code.is_null()) return code;
2656 } 2654 }
2657 2655
2658 Label success; 2656 Label success;
2659 2657
2660 CompileHandlerFrontend(object, holder, name, check, &success); 2658 CompileHandlerFrontend(object, holder, name, check, &success);
2661 __ bind(&success); 2659 __ bind(&success);
2662 CompileHandlerBackend(function); 2660 CompileHandlerBackend(function);
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
2892 // Check that the map of the global has not changed. 2890 // Check that the map of the global has not changed.
2893 __ lw(scratch1(), FieldMemOperand(receiver(), HeapObject::kMapOffset)); 2891 __ lw(scratch1(), FieldMemOperand(receiver(), HeapObject::kMapOffset));
2894 __ Branch(&miss, ne, scratch1(), Operand(Handle<Map>(object->map()))); 2892 __ Branch(&miss, ne, scratch1(), Operand(Handle<Map>(object->map())));
2895 2893
2896 // Check that the value in the cell is not the hole. If it is, this 2894 // Check that the value in the cell is not the hole. If it is, this
2897 // cell could have been deleted and reintroducing the global needs 2895 // cell could have been deleted and reintroducing the global needs
2898 // to update the property details in the property dictionary of the 2896 // to update the property details in the property dictionary of the
2899 // global object. We bail out to the runtime system to do that. 2897 // global object. We bail out to the runtime system to do that.
2900 __ li(scratch1(), Operand(cell)); 2898 __ li(scratch1(), Operand(cell));
2901 __ LoadRoot(scratch2(), Heap::kTheHoleValueRootIndex); 2899 __ LoadRoot(scratch2(), Heap::kTheHoleValueRootIndex);
2902 __ lw(scratch3(), 2900 __ lw(scratch3(), FieldMemOperand(scratch1(), Cell::kValueOffset));
2903 FieldMemOperand(scratch1(), JSGlobalPropertyCell::kValueOffset));
2904 __ Branch(&miss, eq, scratch3(), Operand(scratch2())); 2901 __ Branch(&miss, eq, scratch3(), Operand(scratch2()));
2905 2902
2906 // Store the value in the cell. 2903 // Store the value in the cell.
2907 __ sw(value(), 2904 __ sw(value(), FieldMemOperand(scratch1(), Cell::kValueOffset));
2908 FieldMemOperand(scratch1(), JSGlobalPropertyCell::kValueOffset));
2909 __ mov(v0, a0); // Stored value must be returned in v0. 2905 __ mov(v0, a0); // Stored value must be returned in v0.
2910 // Cells are always rescanned, so no write barrier here. 2906 // Cells are always rescanned, so no write barrier here.
2911 2907
2912 Counters* counters = isolate()->counters(); 2908 Counters* counters = isolate()->counters();
2913 __ IncrementCounter( 2909 __ IncrementCounter(
2914 counters->named_store_global_inline(), 1, scratch1(), scratch2()); 2910 counters->named_store_global_inline(), 1, scratch1(), scratch2());
2915 __ Ret(); 2911 __ Ret();
2916 2912
2917 // Handle store cache miss. 2913 // Handle store cache miss.
2918 __ bind(&miss); 2914 __ bind(&miss);
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
3032 bool is_dont_delete) { 3028 bool is_dont_delete) {
3033 Label success, miss; 3029 Label success, miss;
3034 3030
3035 __ CheckMap( 3031 __ CheckMap(
3036 receiver(), scratch1(), Handle<Map>(object->map()), &miss, DO_SMI_CHECK); 3032 receiver(), scratch1(), Handle<Map>(object->map()), &miss, DO_SMI_CHECK);
3037 HandlerFrontendHeader( 3033 HandlerFrontendHeader(
3038 object, receiver(), Handle<JSObject>::cast(global), name, &miss); 3034 object, receiver(), Handle<JSObject>::cast(global), name, &miss);
3039 3035
3040 // Get the value from the cell. 3036 // Get the value from the cell.
3041 __ li(a3, Operand(cell)); 3037 __ li(a3, Operand(cell));
3042 __ lw(t0, FieldMemOperand(a3, JSGlobalPropertyCell::kValueOffset)); 3038 __ lw(t0, FieldMemOperand(a3, Cell::kValueOffset));
3043 3039
3044 // Check for deleted property if property can actually be deleted. 3040 // Check for deleted property if property can actually be deleted.
3045 if (!is_dont_delete) { 3041 if (!is_dont_delete) {
3046 __ LoadRoot(at, Heap::kTheHoleValueRootIndex); 3042 __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
3047 __ Branch(&miss, eq, t0, Operand(at)); 3043 __ Branch(&miss, eq, t0, Operand(at));
3048 } 3044 }
3049 3045
3050 HandlerFrontendFooter(&success, &miss); 3046 HandlerFrontendFooter(&success, &miss);
3051 __ bind(&success); 3047 __ bind(&success);
3052 3048
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after
3738 TailCallBuiltin(masm, Builtins::kKeyedStoreIC_Slow); 3734 TailCallBuiltin(masm, Builtins::kKeyedStoreIC_Slow);
3739 } 3735 }
3740 } 3736 }
3741 3737
3742 3738
3743 #undef __ 3739 #undef __
3744 3740
3745 } } // namespace v8::internal 3741 } } // namespace v8::internal
3746 3742
3747 #endif // V8_TARGET_ARCH_MIPS 3743 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « src/mips/macro-assembler-mips.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698