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

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

Issue 3522008: This is a little experiment to move Failure to a superclass above Object... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 2 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/ia32/macro-assembler-ia32.cc ('k') | src/ic.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-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-2009 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 793 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 } 804 }
805 805
806 806
807 // Generate code to check that a global property cell is empty. Create 807 // Generate code to check that a global property cell is empty. Create
808 // the property cell at compilation time if no cell exists for the 808 // the property cell at compilation time if no cell exists for the
809 // property. 809 // property.
810 static Object* GenerateCheckPropertyCell(MacroAssembler* masm, 810 static Object* GenerateCheckPropertyCell(MacroAssembler* masm,
811 GlobalObject* global, 811 GlobalObject* global,
812 String* name, 812 String* name,
813 Register scratch, 813 Register scratch,
814 Object* probe;
815 { TryAllocation t = global->EnsurePropertyCell(name);
816 if (!t->ToObject(&probe)) return t;
817 }
814 Label* miss) { 818 Label* miss) {
815 Object* probe = global->EnsurePropertyCell(name);
816 if (probe->IsFailure()) return probe;
817 JSGlobalPropertyCell* cell = JSGlobalPropertyCell::cast(probe); 819 JSGlobalPropertyCell* cell = JSGlobalPropertyCell::cast(probe);
818 ASSERT(cell->value()->IsTheHole()); 820 ASSERT(cell->value()->IsTheHole());
819 __ mov(scratch, Immediate(Handle<Object>(cell))); 821 __ mov(scratch, Immediate(Handle<Object>(cell)));
820 __ cmp(FieldOperand(scratch, JSGlobalPropertyCell::kValueOffset), 822 __ cmp(FieldOperand(scratch, JSGlobalPropertyCell::kValueOffset),
821 Immediate(Factory::the_hole_value())); 823 Immediate(Factory::the_hole_value()));
822 __ j(not_equal, miss, not_taken); 824 __ j(not_equal, miss, not_taken);
823 return cell; 825 return cell;
824 } 826 }
825 827
826 828
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
1307 __ cmp(FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset), 1309 __ cmp(FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset),
1308 Immediate(Handle<SharedFunctionInfo>(function->shared()))); 1310 Immediate(Handle<SharedFunctionInfo>(function->shared())));
1309 __ j(not_equal, miss, not_taken); 1311 __ j(not_equal, miss, not_taken);
1310 } else { 1312 } else {
1311 __ cmp(Operand(edi), Immediate(Handle<JSFunction>(function))); 1313 __ cmp(Operand(edi), Immediate(Handle<JSFunction>(function)));
1312 __ j(not_equal, miss, not_taken); 1314 __ j(not_equal, miss, not_taken);
1313 } 1315 }
1314 } 1316 }
1315 1317
1316 1318
1319 Object* obj;
1320 { TryAllocation t =
1321 StubCache::ComputeCallMiss(arguments().immediate(), kind_);
1322 if (!t->ToObject(&obj)) return t;
1323 }
1317 Object* CallStubCompiler::GenerateMissBranch() { 1324 Object* CallStubCompiler::GenerateMissBranch() {
1318 Object* obj = StubCache::ComputeCallMiss(arguments().immediate(), kind_);
1319 if (obj->IsFailure()) return obj;
1320 __ jmp(Handle<Code>(Code::cast(obj)), RelocInfo::CODE_TARGET); 1325 __ jmp(Handle<Code>(Code::cast(obj)), RelocInfo::CODE_TARGET);
1321 return obj; 1326 return obj;
1322 } 1327 }
1323 1328
1324 1329
1325 Object* CallStubCompiler::CompileCallField(JSObject* object, 1330 Object* CallStubCompiler::CompileCallField(JSObject* object,
1326 JSObject* holder, 1331 JSObject* holder,
1327 int index, 1332 int index,
1328 String* name) { 1333 String* name) {
1329 // ----------- S t a t e ------------- 1334 // ----------- S t a t e -------------
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1361 // necessary. 1366 // necessary.
1362 if (object->IsGlobalObject()) { 1367 if (object->IsGlobalObject()) {
1363 __ mov(edx, FieldOperand(edx, GlobalObject::kGlobalReceiverOffset)); 1368 __ mov(edx, FieldOperand(edx, GlobalObject::kGlobalReceiverOffset));
1364 __ mov(Operand(esp, (argc + 1) * kPointerSize), edx); 1369 __ mov(Operand(esp, (argc + 1) * kPointerSize), edx);
1365 } 1370 }
1366 1371
1367 // Invoke the function. 1372 // Invoke the function.
1368 __ InvokeFunction(edi, arguments(), JUMP_FUNCTION); 1373 __ InvokeFunction(edi, arguments(), JUMP_FUNCTION);
1369 1374
1370 // Handle call cache miss. 1375 // Handle call cache miss.
1376 Object* obj;
1377 { TryAllocation t = GenerateMissBranch();
1378 if (!t->ToObject(&obj)) return t;
1379 }
1371 __ bind(&miss); 1380 __ bind(&miss);
1372 Object* obj = GenerateMissBranch();
1373 if (obj->IsFailure()) return obj;
1374 1381
1375 // Return the generated code. 1382 // Return the generated code.
1376 return GetCode(FIELD, name); 1383 return GetCode(FIELD, name);
1377 } 1384 }
1378 1385
1379 1386
1380 Object* CallStubCompiler::CompileArrayPushCall(Object* object, 1387 Object* CallStubCompiler::CompileArrayPushCall(Object* object,
1381 JSObject* holder, 1388 JSObject* holder,
1382 JSGlobalPropertyCell* cell, 1389 JSGlobalPropertyCell* cell,
1383 JSFunction* function, 1390 JSFunction* function,
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
1507 // Elements are in new space, so write barrier is not required. 1514 // Elements are in new space, so write barrier is not required.
1508 __ ret((argc + 1) * kPointerSize); 1515 __ ret((argc + 1) * kPointerSize);
1509 } 1516 }
1510 1517
1511 __ bind(&call_builtin); 1518 __ bind(&call_builtin);
1512 __ TailCallExternalReference(ExternalReference(Builtins::c_ArrayPush), 1519 __ TailCallExternalReference(ExternalReference(Builtins::c_ArrayPush),
1513 argc + 1, 1520 argc + 1,
1514 1); 1521 1);
1515 } 1522 }
1516 1523
1524 Object* obj;
1525 { TryAllocation t = GenerateMissBranch();
1526 if (!t->ToObject(&obj)) return t;
1527 }
1517 __ bind(&miss); 1528 __ bind(&miss);
1518 Object* obj = GenerateMissBranch();
1519 if (obj->IsFailure()) return obj;
1520 1529
1521 // Return the generated code. 1530 // Return the generated code.
1522 return GetCode(function); 1531 return GetCode(function);
1523 } 1532 }
1524 1533
1525 1534
1526 Object* CallStubCompiler::CompileArrayPopCall(Object* object, 1535 Object* CallStubCompiler::CompileArrayPopCall(Object* object,
1527 JSObject* holder, 1536 JSObject* holder,
1528 JSGlobalPropertyCell* cell, 1537 JSGlobalPropertyCell* cell,
1529 JSFunction* function, 1538 JSFunction* function,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1588 1597
1589 __ bind(&return_undefined); 1598 __ bind(&return_undefined);
1590 __ mov(eax, Immediate(Factory::undefined_value())); 1599 __ mov(eax, Immediate(Factory::undefined_value()));
1591 __ ret((argc + 1) * kPointerSize); 1600 __ ret((argc + 1) * kPointerSize);
1592 1601
1593 __ bind(&call_builtin); 1602 __ bind(&call_builtin);
1594 __ TailCallExternalReference(ExternalReference(Builtins::c_ArrayPop), 1603 __ TailCallExternalReference(ExternalReference(Builtins::c_ArrayPop),
1595 argc + 1, 1604 argc + 1,
1596 1); 1605 1);
1597 1606
1607 Object* obj;
1608 { TryAllocation t = GenerateMissBranch();
1609 if (!t->ToObject(&obj)) return t;
1610 }
1598 __ bind(&miss); 1611 __ bind(&miss);
1599 Object* obj = GenerateMissBranch();
1600 if (obj->IsFailure()) return obj;
1601 1612
1602 // Return the generated code. 1613 // Return the generated code.
1603 return GetCode(function); 1614 return GetCode(function);
1604 } 1615 }
1605 1616
1606 1617
1607 Object* CallStubCompiler::CompileStringCharCodeAtCall( 1618 Object* CallStubCompiler::CompileStringCharCodeAtCall(
1608 Object* object, 1619 Object* object,
1609 JSObject* holder, 1620 JSObject* holder,
1610 JSGlobalPropertyCell* cell, 1621 JSGlobalPropertyCell* cell,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1658 char_code_at_generator.GenerateFast(masm()); 1669 char_code_at_generator.GenerateFast(masm());
1659 __ ret((argc + 1) * kPointerSize); 1670 __ ret((argc + 1) * kPointerSize);
1660 1671
1661 ICRuntimeCallHelper call_helper; 1672 ICRuntimeCallHelper call_helper;
1662 char_code_at_generator.GenerateSlow(masm(), call_helper); 1673 char_code_at_generator.GenerateSlow(masm(), call_helper);
1663 1674
1664 __ bind(&index_out_of_range); 1675 __ bind(&index_out_of_range);
1665 __ Set(eax, Immediate(Factory::nan_value())); 1676 __ Set(eax, Immediate(Factory::nan_value()));
1666 __ ret((argc + 1) * kPointerSize); 1677 __ ret((argc + 1) * kPointerSize);
1667 1678
1679 Object* obj;
1680 { TryAllocation t = GenerateMissBranch();
1681 if (!t->ToObject(&obj)) return t;
1682 }
1668 __ bind(&miss); 1683 __ bind(&miss);
1669 Object* obj = GenerateMissBranch();
1670 if (obj->IsFailure()) return obj;
1671 1684
1672 // Return the generated code. 1685 // Return the generated code.
1673 return GetCode(function); 1686 return GetCode(function);
1674 } 1687 }
1675 1688
1676 1689
1677 Object* CallStubCompiler::CompileStringCharAtCall(Object* object, 1690 Object* CallStubCompiler::CompileStringCharAtCall(Object* object,
1678 JSObject* holder, 1691 JSObject* holder,
1679 JSGlobalPropertyCell* cell, 1692 JSGlobalPropertyCell* cell,
1680 JSFunction* function, 1693 JSFunction* function,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1730 char_at_generator.GenerateFast(masm()); 1743 char_at_generator.GenerateFast(masm());
1731 __ ret((argc + 1) * kPointerSize); 1744 __ ret((argc + 1) * kPointerSize);
1732 1745
1733 ICRuntimeCallHelper call_helper; 1746 ICRuntimeCallHelper call_helper;
1734 char_at_generator.GenerateSlow(masm(), call_helper); 1747 char_at_generator.GenerateSlow(masm(), call_helper);
1735 1748
1736 __ bind(&index_out_of_range); 1749 __ bind(&index_out_of_range);
1737 __ Set(eax, Immediate(Factory::empty_string())); 1750 __ Set(eax, Immediate(Factory::empty_string()));
1738 __ ret((argc + 1) * kPointerSize); 1751 __ ret((argc + 1) * kPointerSize);
1739 1752
1753 Object* obj;
1754 { TryAllocation t = GenerateMissBranch();
1755 if (!t->ToObject(&obj)) return t;
1756 }
1740 __ bind(&miss); 1757 __ bind(&miss);
1741 Object* obj = GenerateMissBranch();
1742 if (obj->IsFailure()) return obj;
1743 1758
1744 // Return the generated code. 1759 // Return the generated code.
1745 return GetCode(function); 1760 return GetCode(function);
1746 } 1761 }
1747 1762
1748 1763
1749 Object* CallStubCompiler::CompileStringFromCharCodeCall( 1764 Object* CallStubCompiler::CompileStringFromCharCodeCall(
1750 Object* object, 1765 Object* object,
1751 JSObject* holder, 1766 JSObject* holder,
1752 JSGlobalPropertyCell* cell, 1767 JSGlobalPropertyCell* cell,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1803 1818
1804 ICRuntimeCallHelper call_helper; 1819 ICRuntimeCallHelper call_helper;
1805 char_from_code_generator.GenerateSlow(masm(), call_helper); 1820 char_from_code_generator.GenerateSlow(masm(), call_helper);
1806 1821
1807 // Tail call the full function. We do not have to patch the receiver 1822 // Tail call the full function. We do not have to patch the receiver
1808 // because the function makes no use of it. 1823 // because the function makes no use of it.
1809 __ bind(&slow); 1824 __ bind(&slow);
1810 __ InvokeFunction(function, arguments(), JUMP_FUNCTION); 1825 __ InvokeFunction(function, arguments(), JUMP_FUNCTION);
1811 1826
1812 __ bind(&miss); 1827 __ bind(&miss);
1828 Object* obj;
1829 { TryAllocation t = GenerateMissBranch();
1830 if (!t->ToObject(&obj)) return t;
1831 }
1813 // ecx: function name. 1832 // ecx: function name.
1814 Object* obj = GenerateMissBranch();
1815 if (obj->IsFailure()) return obj;
1816 1833
1817 // Return the generated code. 1834 // Return the generated code.
1818 return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name); 1835 return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name);
1819 } 1836 }
1820 1837
1821 1838
1822 Object* CallStubCompiler::CompileMathFloorCall(Object* object, 1839 Object* CallStubCompiler::CompileMathFloorCall(Object* object,
1823 JSObject* holder, 1840 JSObject* holder,
1824 JSGlobalPropertyCell* cell, 1841 JSGlobalPropertyCell* cell,
1825 JSFunction* function, 1842 JSFunction* function,
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1928 __ bind(&already_round); 1945 __ bind(&already_round);
1929 __ mov(eax, Operand(esp, 1 * kPointerSize)); 1946 __ mov(eax, Operand(esp, 1 * kPointerSize));
1930 __ ret(2 * kPointerSize); 1947 __ ret(2 * kPointerSize);
1931 1948
1932 // Tail call the full function. We do not have to patch the receiver 1949 // Tail call the full function. We do not have to patch the receiver
1933 // because the function makes no use of it. 1950 // because the function makes no use of it.
1934 __ bind(&slow); 1951 __ bind(&slow);
1935 __ InvokeFunction(function, arguments(), JUMP_FUNCTION); 1952 __ InvokeFunction(function, arguments(), JUMP_FUNCTION);
1936 1953
1937 __ bind(&miss); 1954 __ bind(&miss);
1955 Object* obj;
1956 { TryAllocation t = GenerateMissBranch();
1957 if (!t->ToObject(&obj)) return t;
1958 }
1938 // ecx: function name. 1959 // ecx: function name.
1939 Object* obj = GenerateMissBranch();
1940 if (obj->IsFailure()) return obj;
1941 1960
1942 // Return the generated code. 1961 // Return the generated code.
1943 return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name); 1962 return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name);
1944 } 1963 }
1945 1964
1946 1965
1947 Object* CallStubCompiler::CompileMathAbsCall(Object* object, 1966 Object* CallStubCompiler::CompileMathAbsCall(Object* object,
1948 JSObject* holder, 1967 JSObject* holder,
1949 JSGlobalPropertyCell* cell, 1968 JSGlobalPropertyCell* cell,
1950 JSFunction* function, 1969 JSFunction* function,
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
2031 __ mov(FieldOperand(eax, HeapNumber::kExponentOffset), ebx); 2050 __ mov(FieldOperand(eax, HeapNumber::kExponentOffset), ebx);
2032 __ mov(FieldOperand(eax, HeapNumber::kMantissaOffset), ecx); 2051 __ mov(FieldOperand(eax, HeapNumber::kMantissaOffset), ecx);
2033 __ ret(2 * kPointerSize); 2052 __ ret(2 * kPointerSize);
2034 2053
2035 // Tail call the full function. We do not have to patch the receiver 2054 // Tail call the full function. We do not have to patch the receiver
2036 // because the function makes no use of it. 2055 // because the function makes no use of it.
2037 __ bind(&slow); 2056 __ bind(&slow);
2038 __ InvokeFunction(function, arguments(), JUMP_FUNCTION); 2057 __ InvokeFunction(function, arguments(), JUMP_FUNCTION);
2039 2058
2040 __ bind(&miss); 2059 __ bind(&miss);
2060 Object* obj;
2061 { TryAllocation t = GenerateMissBranch();
2062 if (!t->ToObject(&obj)) return t;
2063 }
2041 // ecx: function name. 2064 // ecx: function name.
2042 Object* obj = GenerateMissBranch();
2043 if (obj->IsFailure()) return obj;
2044 2065
2045 // Return the generated code. 2066 // Return the generated code.
2046 return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name); 2067 return (cell == NULL) ? GetCode(function) : GetCode(NORMAL, name);
2047 } 2068 }
2048 2069
2049 2070
2050 Object* CallStubCompiler::CompileCallConstant(Object* object, 2071 Object* CallStubCompiler::CompileCallConstant(Object* object,
2051 JSObject* holder, 2072 JSObject* holder,
2052 JSFunction* function, 2073 JSFunction* function,
2053 String* name, 2074 String* name,
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
2184 GenerateFastApiCall(masm(), optimization, argc); 2205 GenerateFastApiCall(masm(), optimization, argc);
2185 } else { 2206 } else {
2186 __ InvokeFunction(function, arguments(), JUMP_FUNCTION); 2207 __ InvokeFunction(function, arguments(), JUMP_FUNCTION);
2187 } 2208 }
2188 2209
2189 // Handle call cache miss. 2210 // Handle call cache miss.
2190 __ bind(&miss); 2211 __ bind(&miss);
2191 if (depth != kInvalidProtoDepth) { 2212 if (depth != kInvalidProtoDepth) {
2192 FreeSpaceForFastApiCall(masm(), eax); 2213 FreeSpaceForFastApiCall(masm(), eax);
2193 } 2214 }
2215 Object* obj;
2216 { TryAllocation t = GenerateMissBranch();
2217 if (!t->ToObject(&obj)) return t;
2218 }
2194 __ bind(&miss_in_smi_check); 2219 __ bind(&miss_in_smi_check);
2195 Object* obj = GenerateMissBranch();
2196 if (obj->IsFailure()) return obj;
2197 2220
2198 // Return the generated code. 2221 // Return the generated code.
2199 return GetCode(function); 2222 return GetCode(function);
2200 } 2223 }
2201 2224
2202 2225
2203 Object* CallStubCompiler::CompileCallInterceptor(JSObject* object, 2226 Object* CallStubCompiler::CompileCallInterceptor(JSObject* object,
2204 JSObject* holder, 2227 JSObject* holder,
2205 String* name) { 2228 String* name) {
2206 // ----------- S t a t e ------------- 2229 // ----------- S t a t e -------------
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2249 if (object->IsGlobalObject()) { 2272 if (object->IsGlobalObject()) {
2250 __ mov(edx, FieldOperand(edx, GlobalObject::kGlobalReceiverOffset)); 2273 __ mov(edx, FieldOperand(edx, GlobalObject::kGlobalReceiverOffset));
2251 __ mov(Operand(esp, (argc + 1) * kPointerSize), edx); 2274 __ mov(Operand(esp, (argc + 1) * kPointerSize), edx);
2252 } 2275 }
2253 2276
2254 // Invoke the function. 2277 // Invoke the function.
2255 __ mov(edi, eax); 2278 __ mov(edi, eax);
2256 __ InvokeFunction(edi, arguments(), JUMP_FUNCTION); 2279 __ InvokeFunction(edi, arguments(), JUMP_FUNCTION);
2257 2280
2258 // Handle load cache miss. 2281 // Handle load cache miss.
2282 Object* obj;
2283 { TryAllocation t = GenerateMissBranch();
2284 if (!t->ToObject(&obj)) return t;
2285 }
2259 __ bind(&miss); 2286 __ bind(&miss);
2260 Object* obj = GenerateMissBranch();
2261 if (obj->IsFailure()) return obj;
2262 2287
2263 // Return the generated code. 2288 // Return the generated code.
2264 return GetCode(INTERCEPTOR, name); 2289 return GetCode(INTERCEPTOR, name);
2265 } 2290 }
2266 2291
2267 2292
2268 Object* CallStubCompiler::CompileCallGlobal(JSObject* object, 2293 Object* CallStubCompiler::CompileCallGlobal(JSObject* object,
2269 GlobalObject* holder, 2294 GlobalObject* holder,
2270 JSGlobalPropertyCell* cell, 2295 JSGlobalPropertyCell* cell,
2271 JSFunction* function, 2296 JSFunction* function,
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2310 // Jump to the cached code (tail call). 2335 // Jump to the cached code (tail call).
2311 __ IncrementCounter(&Counters::call_global_inline, 1); 2336 __ IncrementCounter(&Counters::call_global_inline, 1);
2312 ASSERT(function->is_compiled()); 2337 ASSERT(function->is_compiled());
2313 Handle<Code> code(function->code()); 2338 Handle<Code> code(function->code());
2314 ParameterCount expected(function->shared()->formal_parameter_count()); 2339 ParameterCount expected(function->shared()->formal_parameter_count());
2315 __ InvokeCode(code, expected, arguments(), 2340 __ InvokeCode(code, expected, arguments(),
2316 RelocInfo::CODE_TARGET, JUMP_FUNCTION); 2341 RelocInfo::CODE_TARGET, JUMP_FUNCTION);
2317 2342
2318 // Handle call cache miss. 2343 // Handle call cache miss.
2319 __ bind(&miss); 2344 __ bind(&miss);
2345 Object* obj;
2346 { TryAllocation t = GenerateMissBranch();
2347 if (!t->ToObject(&obj)) return t;
2348 }
2320 __ IncrementCounter(&Counters::call_global_inline_miss, 1); 2349 __ IncrementCounter(&Counters::call_global_inline_miss, 1);
2321 Object* obj = GenerateMissBranch();
2322 if (obj->IsFailure()) return obj;
2323 2350
2324 // Return the generated code. 2351 // Return the generated code.
2325 return GetCode(NORMAL, name); 2352 return GetCode(NORMAL, name);
2326 } 2353 }
2327 2354
2328 2355
2329 Object* StoreStubCompiler::CompileStoreField(JSObject* object, 2356 Object* StoreStubCompiler::CompileStoreField(JSObject* object,
2330 int index, 2357 int index,
2331 Map* transition, 2358 Map* transition,
2332 String* name) { 2359 String* name) {
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after
3064 // Return the generated code. 3091 // Return the generated code.
3065 return GetCode(); 3092 return GetCode();
3066 } 3093 }
3067 3094
3068 3095
3069 #undef __ 3096 #undef __
3070 3097
3071 } } // namespace v8::internal 3098 } } // namespace v8::internal
3072 3099
3073 #endif // V8_TARGET_ARCH_IA32 3100 #endif // V8_TARGET_ARCH_IA32
OLDNEW
« no previous file with comments | « src/ia32/macro-assembler-ia32.cc ('k') | src/ic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698