Commit Graph

8 Commits

Author SHA1 Message Date
fschneider@chromium.org
64bc213c2a Check for negative 0 when deciding whether a constant has type Integer32.
Review URL: http://codereview.chromium.org/1225005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-24 16:37:27 +00:00
fschneider@chromium.org
764d8a9530 Fix Win32 build.
Use correct constants for min/max-int.

Review URL: http://codereview.chromium.org/1239004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-24 15:55:15 +00:00
fschneider@chromium.org
51495beb78 Store type information with constants.
Instead of testing the value of a constant frame element to determine
the type we compute its type information at construction time.

This speeds up querying the type information during code generation.

This change also adds support for Integer32 constants and sets 
the type information accordingly.

Review URL: http://codereview.chromium.org/1277001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-24 15:29:41 +00:00
fschneider@chromium.org
3503ee2ae4 Add primitive type and string type to the number info.
This change adds two new type attributes to  the lattice
defined in the class NumberInfo. Currently the new types
are not used yet.

I plan to rename NumberInfo into TypeInfo as a separate change.

Review URL: http://codereview.chromium.org/1249002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-24 12:34:27 +00:00
erik.corry@gmail.com
00a44ae51a Make more use of the NumberInfo data.
Makes NumberInfo into a real class.
Fix bug where NumberInfo was lost in ToRegister.
Allow 17 bits in safe Smis instead of 16.
Review URL: http://codereview.chromium.org/668151

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-05 23:54:13 +00:00
mikhail.naganov@gmail.com
dcef87af66 Enable passing of script data via script creation methods.
Patch by Andrey Kosyakov <caseq@chromium.org>
Original issue http://codereview.chromium.org/606053

TBR=sgjesse@chromium.org

Review URL: http://codereview.chromium.org/608013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 15:15:31 +00:00
fschneider@chromium.org
fc67ad346a Pass the complete number type information into the GenericBinaryOpStub.
Currently we only pass a boolean parameter indicating whether
the input operands to the GenericBinaryOpStub are guaranteed
to be numbers or not. 

Instead we pass the complete number type as a parameters. This 
allows to use more precise type information for code generation
in the stub.

Also make the computation of the result type more precise and correct on both ia32 and x64.

Review URL: http://codereview.chromium.org/593110

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-16 13:03:16 +00:00
fschneider@chromium.org
dbe99e405a Introduce number type information in the virtual frame.
Each frame element gets a new attribute with number type information. A frame element can be: 

- smi 
- heap number 
- number (i.e. either of the above) 
- or something else. 

The type information is propagated along with all virtual frame operations. 
Results popped from the frame carry the number information with them.

Two optimizations in the code generator make use of the new 
information: 
- GenericBinaryOpSyub omits map checks if input operands are numbers. 
- Boolean conversion for numbers: Emit inline code for converting a number (smi or heap number) to boolean. Do not emit call to ToBoolean stub in this case.


Review URL: http://codereview.chromium.org/545007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-15 14:24:38 +00:00