v8/src/ia32
vegorov@chromium.org 6703dddac4 Support fast case for-in in Crankshaft.
Only JSObject enumerables with enum cache (fast case properties, no interceptors, no enumerable properties on the prototype) are supported.

HLoadKeyedGeneric with keys produced by for-in enumeration are recognized and rewritten into direct property load by index. For this enum-cache was extended to store property indices in a separate array (see handles.cc).

New hydrogen instructions:

- HForInPrepareMap: checks for-in fast case preconditions and returns map that contains enum-cache;
- HForInCacheArray: extracts enum-cache array from the map;
- HCheckMapValue: map check with HValue map instead of immediate;
- HLoadFieldByIndex: load fast property by it's index, positive indexes denote in-object properties, negative - out of object properties;

Changed hydrogen instructions:

- HLoadKeyedFastElement: added hole check suppression for loads from internal FixedArrays that are knows to have no holes inside.

R=fschneider@chromium.org
BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/9425045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-22 12:47:42 +00:00
..
assembler-ia32-inl.h Include what you use for allocation, api, assembler, and ast. 2012-01-25 16:31:25 +00:00
assembler-ia32.cc Ensure using byte registers for byte instructions on ia32 and x64. 2012-02-16 12:48:02 +00:00
assembler-ia32.h Implement target cache for constructor calls. 2012-01-27 13:03:19 +00:00
builtins-ia32.cc Initial support for count-based profiling 2012-02-14 14:00:31 +00:00
code-stubs-ia32.cc Initial support for count-based profiling 2012-02-14 14:00:31 +00:00
code-stubs-ia32.h Reapply "Add a level of indirection to exception handler addresses." 2011-11-11 13:48:14 +00:00
codegen-ia32.cc Implement KeyedStoreICs to grow arrays on out-of-bound stores. 2012-02-10 12:36:05 +00:00
codegen-ia32.h Porting r10023 and r10054 to x64 (pointer cache for external strings). 2011-11-24 10:16:39 +00:00
cpu-ia32.cc Cosmetic changes ("set up" is a verb, "setup" is a noun). 2012-01-13 13:09:52 +00:00
debug-ia32.cc Fix and adapt debugger for new call target caches. 2012-01-27 16:09:20 +00:00
deoptimizer-ia32.cc Initial support for count-based profiling 2012-02-14 14:00:31 +00:00
disasm-ia32.cc Fix lint 2011-12-02 10:05:20 +00:00
frames-ia32.cc Enhance SafeStackFrameIterator to avoid triggering assertions in debug mode. 2010-09-16 08:23:34 +00:00
frames-ia32.h Support inlining at call-sites with mismatched number of arguments. 2012-01-24 08:43:12 +00:00
full-codegen-ia32.cc Support fast case for-in in Crankshaft. 2012-02-22 12:47:42 +00:00
ic-ia32.cc Fix crash when using --smi-only-arrays and --trace-elements-transitions 2012-02-14 08:38:03 +00:00
lithium-codegen-ia32.cc Support fast case for-in in Crankshaft. 2012-02-22 12:47:42 +00:00
lithium-codegen-ia32.h Cosmetic changes ("set up" is a verb, "setup" is a noun). 2012-01-13 13:09:52 +00:00
lithium-gap-resolver-ia32.cc Avoid embedding new space objects into code objects in the lithium gap resolver. 2011-12-23 10:39:01 +00:00
lithium-gap-resolver-ia32.h Move LOperand class to lithium.h and move implementations out of .h into .cc files. 2011-01-19 13:55:56 +00:00
lithium-ia32.cc Support fast case for-in in Crankshaft. 2012-02-22 12:47:42 +00:00
lithium-ia32.h Support fast case for-in in Crankshaft. 2012-02-22 12:47:42 +00:00
macro-assembler-ia32.cc Support fast case for-in in Crankshaft. 2012-02-22 12:47:42 +00:00
macro-assembler-ia32.h Support fast case for-in in Crankshaft. 2012-02-22 12:47:42 +00:00
regexp-macro-assembler-ia32.cc More spelling changes. 2012-01-16 12:38:59 +00:00
regexp-macro-assembler-ia32.h Drastically reduce the transitive dependencies of jsregexp.h, making it (almost) 2011-07-11 09:12:17 +00:00
simulator-ia32.cc Move backend specific files to separate directories. 2009-04-23 12:06:38 +00:00
simulator-ia32.h This implements per-isolate locking and unlocking, including tests 2011-05-05 18:55:31 +00:00
stub-cache-ia32.cc Fix crashing bugs in store-and-grow IC for double values. 2012-02-14 15:09:49 +00:00