OLD | NEW |
---|---|
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 1696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1707 | 1707 |
1708 // Handle call cache miss. | 1708 // Handle call cache miss. |
1709 __ bind(&miss); | 1709 __ bind(&miss); |
1710 GenerateMissBranch(); | 1710 GenerateMissBranch(); |
1711 | 1711 |
1712 // Return the generated code. | 1712 // Return the generated code. |
1713 return GetCode(Code::FIELD, name); | 1713 return GetCode(Code::FIELD, name); |
1714 } | 1714 } |
1715 | 1715 |
1716 | 1716 |
1717 Handle<Code> CallStubCompiler::CompileArrayCodeCall( | |
1718 Handle<Object> object, | |
1719 Handle<JSObject> holder, | |
1720 Handle<Cell> cell, | |
1721 Handle<JSFunction> function, | |
1722 Handle<String> name, | |
1723 Code::StubType type) { | |
1724 Label miss; | |
1725 | |
1726 // Check that function is still array | |
Paul Lind
2013/06/19 16:33:31
nit, end with period.
| |
1727 const int argc = arguments().immediate(); | |
1728 GenerateNameCheck(name, &miss); | |
1729 Register receiver = a1; | |
1730 | |
1731 if (cell.is_null()) { | |
1732 __ lw(receiver, MemOperand(sp, argc * kPointerSize)); | |
1733 | |
1734 // Check that the receiver isn't a smi. | |
1735 __ JumpIfSmi(receiver, &miss); | |
1736 | |
1737 // Check that the maps haven't changed. | |
1738 CheckPrototypes(Handle<JSObject>::cast(object), receiver, holder, a3, a0, | |
1739 t0, name, &miss); | |
1740 } else { | |
1741 ASSERT(cell->value() == *function); | |
1742 GenerateGlobalReceiverCheck(Handle<JSObject>::cast(object), holder, name, | |
1743 &miss); | |
1744 GenerateLoadFunctionFromCell(cell, function, &miss); | |
1745 } | |
1746 | |
1747 Handle<Smi> kind(Smi::FromInt(GetInitialFastElementsKind()), isolate()); | |
1748 Handle<Cell> kind_feedback_cell = | |
1749 isolate()->factory()->NewCell(kind); | |
1750 __ li(a0, Operand(argc)); | |
1751 __ li(a2, Operand(kind_feedback_cell)); | |
1752 __ li(a1, Operand(function)); | |
1753 | |
1754 ArrayConstructorStub stub(isolate()); | |
1755 __ TailCallStub(&stub); | |
1756 | |
1757 __ bind(&miss); | |
1758 GenerateMissBranch(); | |
1759 | |
1760 // Return the generated code. | |
1761 return GetCode(type, name); | |
1762 } | |
1763 | |
1764 | |
1717 Handle<Code> CallStubCompiler::CompileArrayPushCall( | 1765 Handle<Code> CallStubCompiler::CompileArrayPushCall( |
1718 Handle<Object> object, | 1766 Handle<Object> object, |
1719 Handle<JSObject> holder, | 1767 Handle<JSObject> holder, |
1720 Handle<Cell> cell, | 1768 Handle<Cell> cell, |
1721 Handle<JSFunction> function, | 1769 Handle<JSFunction> function, |
1722 Handle<String> name) { | 1770 Handle<String> name, |
1771 Code::StubType type) { | |
1723 // ----------- S t a t e ------------- | 1772 // ----------- S t a t e ------------- |
1724 // -- a2 : name | 1773 // -- a2 : name |
1725 // -- ra : return address | 1774 // -- ra : return address |
1726 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) | 1775 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) |
1727 // -- ... | 1776 // -- ... |
1728 // -- sp[argc * 4] : receiver | 1777 // -- sp[argc * 4] : receiver |
1729 // ----------------------------------- | 1778 // ----------------------------------- |
1730 | 1779 |
1731 // If object is not an array, bail out to regular call. | 1780 // If object is not an array, bail out to regular call. |
1732 if (!object->IsJSArray() || !cell.is_null()) return Handle<Code>::null(); | 1781 if (!object->IsJSArray() || !cell.is_null()) return Handle<Code>::null(); |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1957 __ bind(&call_builtin); | 2006 __ bind(&call_builtin); |
1958 __ TailCallExternalReference( | 2007 __ TailCallExternalReference( |
1959 ExternalReference(Builtins::c_ArrayPush, isolate()), argc + 1, 1); | 2008 ExternalReference(Builtins::c_ArrayPush, isolate()), argc + 1, 1); |
1960 } | 2009 } |
1961 | 2010 |
1962 // Handle call cache miss. | 2011 // Handle call cache miss. |
1963 __ bind(&miss); | 2012 __ bind(&miss); |
1964 GenerateMissBranch(); | 2013 GenerateMissBranch(); |
1965 | 2014 |
1966 // Return the generated code. | 2015 // Return the generated code. |
1967 return GetCode(function); | 2016 return GetCode(type, name); |
1968 } | 2017 } |
1969 | 2018 |
1970 | 2019 |
1971 Handle<Code> CallStubCompiler::CompileArrayPopCall( | 2020 Handle<Code> CallStubCompiler::CompileArrayPopCall( |
1972 Handle<Object> object, | 2021 Handle<Object> object, |
1973 Handle<JSObject> holder, | 2022 Handle<JSObject> holder, |
1974 Handle<Cell> cell, | 2023 Handle<Cell> cell, |
1975 Handle<JSFunction> function, | 2024 Handle<JSFunction> function, |
1976 Handle<String> name) { | 2025 Handle<String> name, |
2026 Code::StubType type) { | |
1977 // ----------- S t a t e ------------- | 2027 // ----------- S t a t e ------------- |
1978 // -- a2 : name | 2028 // -- a2 : name |
1979 // -- ra : return address | 2029 // -- ra : return address |
1980 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) | 2030 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) |
1981 // -- ... | 2031 // -- ... |
1982 // -- sp[argc * 4] : receiver | 2032 // -- sp[argc * 4] : receiver |
1983 // ----------------------------------- | 2033 // ----------------------------------- |
1984 | 2034 |
1985 // If object is not an array, bail out to regular call. | 2035 // If object is not an array, bail out to regular call. |
1986 if (!object->IsJSArray() || !cell.is_null()) return Handle<Code>::null(); | 2036 if (!object->IsJSArray() || !cell.is_null()) return Handle<Code>::null(); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2039 | 2089 |
2040 __ bind(&call_builtin); | 2090 __ bind(&call_builtin); |
2041 __ TailCallExternalReference( | 2091 __ TailCallExternalReference( |
2042 ExternalReference(Builtins::c_ArrayPop, isolate()), argc + 1, 1); | 2092 ExternalReference(Builtins::c_ArrayPop, isolate()), argc + 1, 1); |
2043 | 2093 |
2044 // Handle call cache miss. | 2094 // Handle call cache miss. |
2045 __ bind(&miss); | 2095 __ bind(&miss); |
2046 GenerateMissBranch(); | 2096 GenerateMissBranch(); |
2047 | 2097 |
2048 // Return the generated code. | 2098 // Return the generated code. |
2049 return GetCode(function); | 2099 return GetCode(type, name); |
2050 } | 2100 } |
2051 | 2101 |
2052 | 2102 |
2053 Handle<Code> CallStubCompiler::CompileStringCharCodeAtCall( | 2103 Handle<Code> CallStubCompiler::CompileStringCharCodeAtCall( |
2054 Handle<Object> object, | 2104 Handle<Object> object, |
2055 Handle<JSObject> holder, | 2105 Handle<JSObject> holder, |
2056 Handle<Cell> cell, | 2106 Handle<Cell> cell, |
2057 Handle<JSFunction> function, | 2107 Handle<JSFunction> function, |
2058 Handle<String> name) { | 2108 Handle<String> name, |
2109 Code::StubType type) { | |
2059 // ----------- S t a t e ------------- | 2110 // ----------- S t a t e ------------- |
2060 // -- a2 : function name | 2111 // -- a2 : function name |
2061 // -- ra : return address | 2112 // -- ra : return address |
2062 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) | 2113 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) |
2063 // -- ... | 2114 // -- ... |
2064 // -- sp[argc * 4] : receiver | 2115 // -- sp[argc * 4] : receiver |
2065 // ----------------------------------- | 2116 // ----------------------------------- |
2066 | 2117 |
2067 // If object is not a string, bail out to regular call. | 2118 // If object is not a string, bail out to regular call. |
2068 if (!object->IsString() || !cell.is_null()) return Handle<Code>::null(); | 2119 if (!object->IsString() || !cell.is_null()) return Handle<Code>::null(); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2121 __ DropAndRet(argc + 1); | 2172 __ DropAndRet(argc + 1); |
2122 } | 2173 } |
2123 | 2174 |
2124 __ bind(&miss); | 2175 __ bind(&miss); |
2125 // Restore function name in a2. | 2176 // Restore function name in a2. |
2126 __ li(a2, name); | 2177 __ li(a2, name); |
2127 __ bind(&name_miss); | 2178 __ bind(&name_miss); |
2128 GenerateMissBranch(); | 2179 GenerateMissBranch(); |
2129 | 2180 |
2130 // Return the generated code. | 2181 // Return the generated code. |
2131 return GetCode(function); | 2182 return GetCode(type, name); |
2132 } | 2183 } |
2133 | 2184 |
2134 | 2185 |
2135 Handle<Code> CallStubCompiler::CompileStringCharAtCall( | 2186 Handle<Code> CallStubCompiler::CompileStringCharAtCall( |
2136 Handle<Object> object, | 2187 Handle<Object> object, |
2137 Handle<JSObject> holder, | 2188 Handle<JSObject> holder, |
2138 Handle<Cell> cell, | 2189 Handle<Cell> cell, |
2139 Handle<JSFunction> function, | 2190 Handle<JSFunction> function, |
2140 Handle<String> name) { | 2191 Handle<String> name, |
2192 Code::StubType type) { | |
2141 // ----------- S t a t e ------------- | 2193 // ----------- S t a t e ------------- |
2142 // -- a2 : function name | 2194 // -- a2 : function name |
2143 // -- ra : return address | 2195 // -- ra : return address |
2144 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) | 2196 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) |
2145 // -- ... | 2197 // -- ... |
2146 // -- sp[argc * 4] : receiver | 2198 // -- sp[argc * 4] : receiver |
2147 // ----------------------------------- | 2199 // ----------------------------------- |
2148 | 2200 |
2149 // If object is not a string, bail out to regular call. | 2201 // If object is not a string, bail out to regular call. |
2150 if (!object->IsString() || !cell.is_null()) return Handle<Code>::null(); | 2202 if (!object->IsString() || !cell.is_null()) return Handle<Code>::null(); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2202 __ DropAndRet(argc + 1); | 2254 __ DropAndRet(argc + 1); |
2203 } | 2255 } |
2204 | 2256 |
2205 __ bind(&miss); | 2257 __ bind(&miss); |
2206 // Restore function name in a2. | 2258 // Restore function name in a2. |
2207 __ li(a2, name); | 2259 __ li(a2, name); |
2208 __ bind(&name_miss); | 2260 __ bind(&name_miss); |
2209 GenerateMissBranch(); | 2261 GenerateMissBranch(); |
2210 | 2262 |
2211 // Return the generated code. | 2263 // Return the generated code. |
2212 return GetCode(function); | 2264 return GetCode(type, name); |
2213 } | 2265 } |
2214 | 2266 |
2215 | 2267 |
2216 Handle<Code> CallStubCompiler::CompileStringFromCharCodeCall( | 2268 Handle<Code> CallStubCompiler::CompileStringFromCharCodeCall( |
2217 Handle<Object> object, | 2269 Handle<Object> object, |
2218 Handle<JSObject> holder, | 2270 Handle<JSObject> holder, |
2219 Handle<Cell> cell, | 2271 Handle<Cell> cell, |
2220 Handle<JSFunction> function, | 2272 Handle<JSFunction> function, |
2221 Handle<String> name) { | 2273 Handle<String> name, |
2274 Code::StubType type) { | |
2222 // ----------- S t a t e ------------- | 2275 // ----------- S t a t e ------------- |
2223 // -- a2 : function name | 2276 // -- a2 : function name |
2224 // -- ra : return address | 2277 // -- ra : return address |
2225 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) | 2278 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) |
2226 // -- ... | 2279 // -- ... |
2227 // -- sp[argc * 4] : receiver | 2280 // -- sp[argc * 4] : receiver |
2228 // ----------------------------------- | 2281 // ----------------------------------- |
2229 | 2282 |
2230 const int argc = arguments().immediate(); | 2283 const int argc = arguments().immediate(); |
2231 | 2284 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2275 __ bind(&slow); | 2328 __ bind(&slow); |
2276 ParameterCount expected(function); | 2329 ParameterCount expected(function); |
2277 __ InvokeFunction(function, expected, arguments(), | 2330 __ InvokeFunction(function, expected, arguments(), |
2278 JUMP_FUNCTION, NullCallWrapper(), CALL_AS_METHOD); | 2331 JUMP_FUNCTION, NullCallWrapper(), CALL_AS_METHOD); |
2279 | 2332 |
2280 __ bind(&miss); | 2333 __ bind(&miss); |
2281 // a2: function name. | 2334 // a2: function name. |
2282 GenerateMissBranch(); | 2335 GenerateMissBranch(); |
2283 | 2336 |
2284 // Return the generated code. | 2337 // Return the generated code. |
2285 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); | 2338 return GetCode(type, name); |
2286 } | 2339 } |
2287 | 2340 |
2288 | 2341 |
2289 Handle<Code> CallStubCompiler::CompileMathFloorCall( | 2342 Handle<Code> CallStubCompiler::CompileMathFloorCall( |
2290 Handle<Object> object, | 2343 Handle<Object> object, |
2291 Handle<JSObject> holder, | 2344 Handle<JSObject> holder, |
2292 Handle<Cell> cell, | 2345 Handle<Cell> cell, |
2293 Handle<JSFunction> function, | 2346 Handle<JSFunction> function, |
2294 Handle<String> name) { | 2347 Handle<String> name, |
2348 Code::StubType type) { | |
2295 // ----------- S t a t e ------------- | 2349 // ----------- S t a t e ------------- |
2296 // -- a2 : function name | 2350 // -- a2 : function name |
2297 // -- ra : return address | 2351 // -- ra : return address |
2298 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) | 2352 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) |
2299 // -- ... | 2353 // -- ... |
2300 // -- sp[argc * 4] : receiver | 2354 // -- sp[argc * 4] : receiver |
2301 // ----------------------------------- | 2355 // ----------------------------------- |
2302 | 2356 |
2303 | 2357 |
2304 const int argc = arguments().immediate(); | 2358 const int argc = arguments().immediate(); |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2404 // because the function makes no use of it. | 2458 // because the function makes no use of it. |
2405 ParameterCount expected(function); | 2459 ParameterCount expected(function); |
2406 __ InvokeFunction(function, expected, arguments(), | 2460 __ InvokeFunction(function, expected, arguments(), |
2407 JUMP_FUNCTION, NullCallWrapper(), CALL_AS_METHOD); | 2461 JUMP_FUNCTION, NullCallWrapper(), CALL_AS_METHOD); |
2408 | 2462 |
2409 __ bind(&miss); | 2463 __ bind(&miss); |
2410 // a2: function name. | 2464 // a2: function name. |
2411 GenerateMissBranch(); | 2465 GenerateMissBranch(); |
2412 | 2466 |
2413 // Return the generated code. | 2467 // Return the generated code. |
2414 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); | 2468 return GetCode(type, name); |
2415 } | 2469 } |
2416 | 2470 |
2417 | 2471 |
2418 Handle<Code> CallStubCompiler::CompileMathAbsCall( | 2472 Handle<Code> CallStubCompiler::CompileMathAbsCall( |
2419 Handle<Object> object, | 2473 Handle<Object> object, |
2420 Handle<JSObject> holder, | 2474 Handle<JSObject> holder, |
2421 Handle<Cell> cell, | 2475 Handle<Cell> cell, |
2422 Handle<JSFunction> function, | 2476 Handle<JSFunction> function, |
2423 Handle<String> name) { | 2477 Handle<String> name, |
2478 Code::StubType type) { | |
2424 // ----------- S t a t e ------------- | 2479 // ----------- S t a t e ------------- |
2425 // -- a2 : function name | 2480 // -- a2 : function name |
2426 // -- ra : return address | 2481 // -- ra : return address |
2427 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) | 2482 // -- sp[(argc - n - 1) * 4] : arg[n] (zero-based) |
2428 // -- ... | 2483 // -- ... |
2429 // -- sp[argc * 4] : receiver | 2484 // -- sp[argc * 4] : receiver |
2430 // ----------------------------------- | 2485 // ----------------------------------- |
2431 | 2486 |
2432 const int argc = arguments().immediate(); | 2487 const int argc = arguments().immediate(); |
2433 // If the object is not a JSObject or we got an unexpected number of | 2488 // If the object is not a JSObject or we got an unexpected number of |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2503 __ bind(&slow); | 2558 __ bind(&slow); |
2504 ParameterCount expected(function); | 2559 ParameterCount expected(function); |
2505 __ InvokeFunction(function, expected, arguments(), | 2560 __ InvokeFunction(function, expected, arguments(), |
2506 JUMP_FUNCTION, NullCallWrapper(), CALL_AS_METHOD); | 2561 JUMP_FUNCTION, NullCallWrapper(), CALL_AS_METHOD); |
2507 | 2562 |
2508 __ bind(&miss); | 2563 __ bind(&miss); |
2509 // a2: function name. | 2564 // a2: function name. |
2510 GenerateMissBranch(); | 2565 GenerateMissBranch(); |
2511 | 2566 |
2512 // Return the generated code. | 2567 // Return the generated code. |
2513 return cell.is_null() ? GetCode(function) : GetCode(Code::NORMAL, name); | 2568 return GetCode(type, name); |
2514 } | 2569 } |
2515 | 2570 |
2516 | 2571 |
2517 Handle<Code> CallStubCompiler::CompileFastApiCall( | 2572 Handle<Code> CallStubCompiler::CompileFastApiCall( |
2518 const CallOptimization& optimization, | 2573 const CallOptimization& optimization, |
2519 Handle<Object> object, | 2574 Handle<Object> object, |
2520 Handle<JSObject> holder, | 2575 Handle<JSObject> holder, |
2521 Handle<Cell> cell, | 2576 Handle<Cell> cell, |
2522 Handle<JSFunction> function, | 2577 Handle<JSFunction> function, |
2523 Handle<String> name) { | 2578 Handle<String> name) { |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2685 | 2740 |
2686 Handle<Code> CallStubCompiler::CompileCallConstant( | 2741 Handle<Code> CallStubCompiler::CompileCallConstant( |
2687 Handle<Object> object, | 2742 Handle<Object> object, |
2688 Handle<JSObject> holder, | 2743 Handle<JSObject> holder, |
2689 Handle<Name> name, | 2744 Handle<Name> name, |
2690 CheckType check, | 2745 CheckType check, |
2691 Handle<JSFunction> function) { | 2746 Handle<JSFunction> function) { |
2692 if (HasCustomCallGenerator(function)) { | 2747 if (HasCustomCallGenerator(function)) { |
2693 Handle<Code> code = CompileCustomCall(object, holder, | 2748 Handle<Code> code = CompileCustomCall(object, holder, |
2694 Handle<Cell>::null(), | 2749 Handle<Cell>::null(), |
2695 function, Handle<String>::cast(name)); | 2750 function, Handle<String>::cast(name), |
2751 Code::CONSTANT_FUNCTION); | |
2696 // A null handle means bail out to the regular compiler code below. | 2752 // A null handle means bail out to the regular compiler code below. |
2697 if (!code.is_null()) return code; | 2753 if (!code.is_null()) return code; |
2698 } | 2754 } |
2699 | 2755 |
2700 Label success; | 2756 Label success; |
2701 | 2757 |
2702 CompileHandlerFrontend(object, holder, name, check, &success); | 2758 CompileHandlerFrontend(object, holder, name, check, &success); |
2703 __ bind(&success); | 2759 __ bind(&success); |
2704 CompileHandlerBackend(function); | 2760 CompileHandlerBackend(function); |
2705 | 2761 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2754 Handle<PropertyCell> cell, | 2810 Handle<PropertyCell> cell, |
2755 Handle<JSFunction> function, | 2811 Handle<JSFunction> function, |
2756 Handle<Name> name) { | 2812 Handle<Name> name) { |
2757 // ----------- S t a t e ------------- | 2813 // ----------- S t a t e ------------- |
2758 // -- a2 : name | 2814 // -- a2 : name |
2759 // -- ra : return address | 2815 // -- ra : return address |
2760 // ----------------------------------- | 2816 // ----------------------------------- |
2761 | 2817 |
2762 if (HasCustomCallGenerator(function)) { | 2818 if (HasCustomCallGenerator(function)) { |
2763 Handle<Code> code = CompileCustomCall( | 2819 Handle<Code> code = CompileCustomCall( |
2764 object, holder, cell, function, Handle<String>::cast(name)); | 2820 object, holder, cell, function, Handle<String>::cast(name), |
2821 Code::NORMAL); | |
2765 // A null handle means bail out to the regular compiler code below. | 2822 // A null handle means bail out to the regular compiler code below. |
2766 if (!code.is_null()) return code; | 2823 if (!code.is_null()) return code; |
2767 } | 2824 } |
2768 | 2825 |
2769 Label miss; | 2826 Label miss; |
2770 GenerateNameCheck(name, &miss); | 2827 GenerateNameCheck(name, &miss); |
2771 | 2828 |
2772 // Get the number of arguments. | 2829 // Get the number of arguments. |
2773 const int argc = arguments().immediate(); | 2830 const int argc = arguments().immediate(); |
2774 GenerateGlobalReceiverCheck(object, holder, name, &miss); | 2831 GenerateGlobalReceiverCheck(object, holder, name, &miss); |
(...skipping 1003 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3778 TailCallBuiltin(masm, Builtins::kKeyedStoreIC_Slow); | 3835 TailCallBuiltin(masm, Builtins::kKeyedStoreIC_Slow); |
3779 } | 3836 } |
3780 } | 3837 } |
3781 | 3838 |
3782 | 3839 |
3783 #undef __ | 3840 #undef __ |
3784 | 3841 |
3785 } } // namespace v8::internal | 3842 } } // namespace v8::internal |
3786 | 3843 |
3787 #endif // V8_TARGET_ARCH_MIPS | 3844 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |