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

Side by Side Diff: src/ic.cc

Issue 10444055: Promoting elements transitions to their own field. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: renaming SearchMode fields and moving it into descriptor array class Created 8 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
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 1463 matching lines...) Expand 10 before | Expand all | Expand 10 after
1474 name, receiver, callback, strict_mode); 1474 name, receiver, callback, strict_mode);
1475 break; 1475 break;
1476 } 1476 }
1477 case INTERCEPTOR: 1477 case INTERCEPTOR:
1478 ASSERT(!receiver->GetNamedInterceptor()->setter()->IsUndefined()); 1478 ASSERT(!receiver->GetNamedInterceptor()->setter()->IsUndefined());
1479 code = isolate()->stub_cache()->ComputeStoreInterceptor( 1479 code = isolate()->stub_cache()->ComputeStoreInterceptor(
1480 name, receiver, strict_mode); 1480 name, receiver, strict_mode);
1481 break; 1481 break;
1482 case CONSTANT_FUNCTION: 1482 case CONSTANT_FUNCTION:
1483 case CONSTANT_TRANSITION: 1483 case CONSTANT_TRANSITION:
1484 case ELEMENTS_TRANSITION:
1485 return; 1484 return;
1486 case HANDLER: 1485 case HANDLER:
1487 case NULL_DESCRIPTOR: 1486 case NULL_DESCRIPTOR:
1488 UNREACHABLE(); 1487 UNREACHABLE();
1489 return; 1488 return;
1490 } 1489 }
1491 1490
1492 // Patch the call site depending on the state of the cache. 1491 // Patch the call site depending on the state of the cache.
1493 if (state == UNINITIALIZED || state == MONOMORPHIC_PROTOTYPE_FAILURE) { 1492 if (state == UNINITIALIZED || state == MONOMORPHIC_PROTOTYPE_FAILURE) {
1494 set_target(*code); 1493 set_target(*code);
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
1933 code = isolate()->stub_cache()->ComputeKeyedStoreField( 1932 code = isolate()->stub_cache()->ComputeKeyedStoreField(
1934 name, receiver, index, transition, strict_mode); 1933 name, receiver, index, transition, strict_mode);
1935 break; 1934 break;
1936 } 1935 }
1937 // fall through. 1936 // fall through.
1938 case NORMAL: 1937 case NORMAL:
1939 case CONSTANT_FUNCTION: 1938 case CONSTANT_FUNCTION:
1940 case CALLBACKS: 1939 case CALLBACKS:
1941 case INTERCEPTOR: 1940 case INTERCEPTOR:
1942 case CONSTANT_TRANSITION: 1941 case CONSTANT_TRANSITION:
1943 case ELEMENTS_TRANSITION:
1944 // Always rewrite to the generic case so that we do not 1942 // Always rewrite to the generic case so that we do not
1945 // repeatedly try to rewrite. 1943 // repeatedly try to rewrite.
1946 code = (strict_mode == kStrictMode) 1944 code = (strict_mode == kStrictMode)
1947 ? generic_stub_strict() 1945 ? generic_stub_strict()
1948 : generic_stub(); 1946 : generic_stub();
1949 break; 1947 break;
1950 case HANDLER: 1948 case HANDLER:
1951 case NULL_DESCRIPTOR: 1949 case NULL_DESCRIPTOR:
1952 UNREACHABLE(); 1950 UNREACHABLE();
1953 return; 1951 return;
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after
2639 #undef ADDR 2637 #undef ADDR
2640 }; 2638 };
2641 2639
2642 2640
2643 Address IC::AddressFromUtilityId(IC::UtilityId id) { 2641 Address IC::AddressFromUtilityId(IC::UtilityId id) {
2644 return IC_utilities[id]; 2642 return IC_utilities[id];
2645 } 2643 }
2646 2644
2647 2645
2648 } } // namespace v8::internal 2646 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/ia32/macro-assembler-ia32.cc ('k') | src/mark-compact.cc » ('j') | src/objects.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698