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

Side by Side Diff: src/ic.cc

Issue 101413006: Implement in-heap backing store for typed arrays. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Platform ports Created 6 years, 11 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 1828 matching lines...) Expand 10 before | Expand all | Expand 10 after
1839 return generic_stub(); 1839 return generic_stub();
1840 } 1840 }
1841 } 1841 }
1842 1842
1843 // If the store mode isn't the standard mode, make sure that all polymorphic 1843 // If the store mode isn't the standard mode, make sure that all polymorphic
1844 // receivers are either external arrays, or all "normal" arrays. Otherwise, 1844 // receivers are either external arrays, or all "normal" arrays. Otherwise,
1845 // use the generic stub. 1845 // use the generic stub.
1846 if (store_mode != STANDARD_STORE) { 1846 if (store_mode != STANDARD_STORE) {
1847 int external_arrays = 0; 1847 int external_arrays = 0;
1848 for (int i = 0; i < target_receiver_maps.length(); ++i) { 1848 for (int i = 0; i < target_receiver_maps.length(); ++i) {
1849 if (target_receiver_maps[i]->has_external_array_elements()) { 1849 if (target_receiver_maps[i]->has_external_array_elements() ||
1850 target_receiver_maps[i]->has_fixed_typed_array_elements()) {
1850 external_arrays++; 1851 external_arrays++;
1851 } 1852 }
1852 } 1853 }
1853 if (external_arrays != 0 && 1854 if (external_arrays != 0 &&
1854 external_arrays != target_receiver_maps.length()) { 1855 external_arrays != target_receiver_maps.length()) {
1855 TRACE_GENERIC_IC(isolate(), "KeyedIC", 1856 TRACE_GENERIC_IC(isolate(), "KeyedIC",
1856 "unsupported combination of external and normal arrays"); 1857 "unsupported combination of external and normal arrays");
1857 return generic_stub(); 1858 return generic_stub();
1858 } 1859 }
1859 } 1860 }
(...skipping 1369 matching lines...) Expand 10 before | Expand all | Expand 10 after
3229 #undef ADDR 3230 #undef ADDR
3230 }; 3231 };
3231 3232
3232 3233
3233 Address IC::AddressFromUtilityId(IC::UtilityId id) { 3234 Address IC::AddressFromUtilityId(IC::UtilityId id) {
3234 return IC_utilities[id]; 3235 return IC_utilities[id];
3235 } 3236 }
3236 3237
3237 3238
3238 } } // namespace v8::internal 3239 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698