- 13 Feb, 2011 1 commit
-
-
mmaly@chromium.org authored
Strict mode assignment to undefined reference. Simple assignments (x = <value>) use CODE_TARGET_CONTEXT. StoreIC stores its own strictness in extra_ic_state. The strcitness is propagated as further ic stubs are generated. Details: * ReferenceError on assignment to non-resolvable reference in strict mode. * Fix es5conform test expectation file. * Add es5conform test suite into .gitignore. * Fix Xcode project. * Change implemented in virtual frame code generator, as well as full-codegen for all architectures. * Fix debugger test. * Fix comment for CODE_TARGET_CONTEXT * Implement remaining StoreIC stubs to be strict mode aware. * Trace extra_ic_state() for ic code stubs. Code Review URL: http://codereview.chromium.org/6474026/ git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Feb, 2011 2 commits
-
-
mmaly@chromium.org authored
Need to investigate. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mmaly@chromium.org authored
Strict mode assignment to undefined reference. Simple assignments (x = <value>) use CODE_TARGET_CONTEXT. StoreIC stores its own strictness in extra_ic_state. The strcitness is propagated as further ic stubs are generated. Details: * ReferenceError on assignment to non-resolvable reference in strict mode. * Fix es5conform test expectation file. * Add es5conform test suite into .gitignore. * Fix Xcode project. * Change implemented in virtual frame code generator, as well as full-codegen for all architectures. * Fix debugger test. * Fix comment for CODE_TARGET_CONTEXT * Implement remaining StoreIC stubs to be strict mode aware. * Trace extra_ic_state() for ic code stubs. Code Review URL: http://codereview.chromium.org/6474026/ git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Feb, 2011 1 commit
-
-
danno@chromium.org authored
Review URL: http://codereview.chromium.org/6287030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Jan, 2011 1 commit
-
-
erik.corry@gmail.com authored
stub cache generation. Review URL: http://codereview.chromium.org/6392003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Jan, 2011 1 commit
-
-
vitalyr@chromium.org authored
To avoid deopts a few extra changes were needed: o Enable megamorphic state for special property loads on primitives. We used to flip between monomorphic stubs. o Extract pure string (no string wrapper support) version of the string length stub. Review URL: http://codereview.chromium.org/6334015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jan, 2011 1 commit
-
-
kbr@chromium.org authored
conversions for external array types, which implement the Typed Array spec. (Revision of http://codereview.chromium.org/6315004 .) Prefer SSE2 code path on x86 processors. Non-SSE2 processors now make a slow runtime call for float-to-int conversions. Use SSE3 for 32-bit signed and unsigned int array types where possible. The movement of code from ic-arm.cc to stub-cache-arm.cc caused the VFP3 code path to be tested for the first time. Fixed bugs in the register usage and in the constant value stored into integer arrays for NaN and +/-Infinity. Added new truncation test to test-api.cc. Storage of NaN and +/-Inf was already covered. Ran unit tests on x86, x64 and ARM simulator. Tested ia32 and x64 code in Chromium on Mac and Linux respectively with Typed Array unit tests and WebGL content. BUG=http://code.google.com/p/chromium/issues/detail?id=50972 TEST=test-api/ExternalArrays Review URL: http://codereview.chromium.org/6303012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jan, 2011 1 commit
-
-
ager@chromium.org authored
version did not work. TBR=kbr@chromium.org Review URL: http://codereview.chromium.org/6295013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Jan, 2011 2 commits
-
-
kbr@chromium.org authored
conversions for external array types, which implement the Typed Array spec. The new code paths are for SSE3 and SSE2 capable processors. The code for non-SSE2 processors is unchanged for now. The ARM port appears to already be correct. Moved the generation of the external array load and store intrinsics to the stub cache (on all platforms) so that they are generated at run time and can take advantage of CPU features. This functionality is covered by the array-unit-tests.html test in the WebGL conformance test suite: http://khronos.org/webgl/wiki/Testing/Conformance https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/array-unit-tests.html Manually verified all of the SSE3/SSE2/non-SSE2 code paths by enabling each in turn. Tested in Chromium on 32-bit Mac OS X and 64-bit Linux. BUG=http://code.google.com/p/chromium/issues/detail?id=50972 TEST=none (see above) Review URL: http://codereview.chromium.org/6315004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Extra IC state is only two bits and only supported for call IC-s for now. To change its extra state an IC stub jumps to a new miss stub that goes to runtime as usual but then instead of going megamorphic generates a monomorphic stub with the updated state. Review URL: http://codereview.chromium.org/6344005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Dec, 2010 1 commit
-
-
vitalyr@chromium.org authored
Two old id types are replaced by builtin function ids. We can use these in the code generators to emit custom code for the selected functions. Review URL: http://codereview.chromium.org/5767002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Dec, 2010 3 commits
-
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Nov, 2010 1 commit
-
-
ager@chromium.org authored
inline allocation code used the expected number of properties to calculate the number of inobject properties for an object instead of getting the actual number from the initial map. It is safer to use the inobject property count from the initial map in any case because that is the amount the instances will get. I think this disconnect got introduced when adding shrinking of objects. Unfortuntely I haven't been able to create a simple reproduction for a test case but this fixes the webpage that exhibits the crash. I'll see if I can create a reproduction tomorrow. Review URL: http://codereview.chromium.org/5278003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Nov, 2010 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/4760003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Nov, 2010 1 commit
-
-
ager@chromium.org authored
Reduces the number of movw/movt instructions generated in ProbeTable. It improves code size for CompileCallMegamorphic by about 10%. BUG=none TEST=none Review URL: http://codereview.chromium.org/4220004/show git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Oct, 2010 1 commit
-
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/3970005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Sep, 2010 1 commit
-
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/3446024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Sep, 2010 1 commit
-
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/3327022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Sep, 2010 1 commit
-
-
vitalyr@chromium.org authored
We must also check the current context has not changed. The bug reported by Florian. Review URL: http://codereview.chromium.org/3410014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Sep, 2010 1 commit
-
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/3291015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 Aug, 2010 1 commit
-
-
erik.corry@gmail.com authored
fail to allocate because we need a GC. Review URL: http://codereview.chromium.org/3274008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Aug, 2010 1 commit
-
-
vegorov@chromium.org authored
Review URL: http://codereview.chromium.org/3135026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Aug, 2010 1 commit
-
-
ricow@chromium.org authored
This change changes the lazy compilation stub to a builtin and eliminates the argc (argument count for the function for which to create a lazy stub) parameter. Review URL: http://codereview.chromium.org/3146008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Aug, 2010 1 commit
-
-
kaznacheev@chromium.org authored
I could not find a way to introduce simple yet useful assertions, so I removed the assertions that broke tests. The new patch just fixes the actual problem (GC triggered while raw pointers are held in LookupResult). Review URL: http://codereview.chromium.org/3030049 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Aug, 2010 2 commits
-
-
vegorov@chromium.org authored
Review URL: http://codereview.chromium.org/2868108 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kaznacheev@chromium.org authored
In rare cases GC could be called from ComputeCallMiss function thus breaking CallIC::LoadFunction. Review URL: http://codereview.chromium.org/3047027 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Jul, 2010 1 commit
-
-
serya@chromium.org authored
Review URL: http://codereview.chromium.org/2982001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Jul, 2010 1 commit
-
-
serya@chromium.org authored
This change allows generating call-stubs for objects with normal (non-fast) objects in the prototype chain. StubCompiler::CheckPrototypes does ne If the top level object is a normal object the stub is stored in its prototype map. Lookup result of type NORMAL is not covered (since the normal stub currently doesn't check the prototype chain). Review URL: http://codereview.chromium.org/2801018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jun, 2010 1 commit
-
-
ager@chromium.org authored
The IC stub is completely generic, so there will only be one such stub in the system. Added a new overloaded version of the macro assembler RecordWrite method for cases where we have the address we store to computed up front. Review URL: http://codereview.chromium.org/2804029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jun, 2010 1 commit
-
-
kaznacheev@chromium.org authored
This speeds up constructs like this: var zz='replace'; '123'[zz]('3','4'); Review URL: http://codereview.chromium.org/2280007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Jun, 2010 1 commit
-
-
vitalyr@chromium.org authored
As most of call IC code is tied to a context anyway we can save a few dependent loads by having a direct reference to an initial map of a global function. Review URL: http://codereview.chromium.org/2239009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 May, 2010 1 commit
-
-
vitalyr@chromium.org authored
These string methods can be composed from two basic blocks: charCodeAt and fromCharCode, both of which have fast cases for certain types of inputs. In this patch these two blocks are refactored to allow generating the fast cases without having to jump around the slow cases. In the slow cases since they can now be invoked both from inline runtime functions and from IC stubs we either have to save/restore state of the current frame or enter/leave a new internal frame. This is handled by new RuntimeCallHelper interface. Its implementation for virtual frame is based on FrameRegisterState class extracted from DeferredCode class. Review URL: http://codereview.chromium.org/2087009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 May, 2010 1 commit
-
-
vitalyr@chromium.org authored
* All generators are listed in a single place. * Generators are installed as a separate pass in the bootstrapper. * Replaced pointers to generator functions with integer ids. Review URL: http://codereview.chromium.org/1981002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Apr, 2010 1 commit
-
-
podivilov@chromium.org authored
Review URL: http://codereview.chromium.org/1650011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Apr, 2010 1 commit
-
-
ager@chromium.org authored
We need to be careful to check global property cells for the property encountered during lookup. Therefore, the ICs have to be specific to the name of the property if global objects are involved. In principle, this means that we could get a large number of monomorphic ICs for the same map if there is a global object in the prototype chain. However, since this is only done for normal load ICs and not for keyed load ICs I do not expect this to be a problem. I will experiment with it once this goes in. BUG=675 Review URL: http://codereview.chromium.org/1559033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Apr, 2010 2 commits
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/1589035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/1539034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Mar, 2010 1 commit
-
-
erik.corry@gmail.com authored
registration of external references in Proxy objects). I moved the declaration of the two functions to stub-cache.h because with all the types they use it's hard to declare them anywhere else. But the actual definition is still in runtime.cc near to the place where they are used. Review URL: http://codereview.chromium.org/1079012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-