Commit Graph

58228 Commits

Author SHA1 Message Date
iposva@chromium.org
49c5ed0029 Fix a missing peephole optimization in ia32 code exposed with Kevin's
change.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-13 20:15:17 +00:00
whesse@chromium.org
dcf8ef2842 Fix lint error in codegen-ia32.cc.
Review URL: http://codereview.chromium.org/7264

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-13 10:46:11 +00:00
kmillikin@chromium.org
b2d18f3321 Add a VirtualFrame class to the IA32 code generator. All frame
accesses (eg, parameters, locals, and the expression stack elements)
and mutation (pushes and pops) go through the virtual frame.

The frame initially contains no state, and directly emits instructions
in the obvious way.  It is not currently used for deferred code.
Review URL: http://codereview.chromium.org/7076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-13 07:56:13 +00:00
bak@chromium.org
dc892fa748 - Omit frame pointers when using GCC.
Review URL: http://codereview.chromium.org/7078

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 13:15:59 +00:00
bak@chromium.org
80098968d8 - Inlined JSArray::SetContent.
- Implemented Runtime_KeyedGetProperty to make slow case faster.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 10:27:44 +00:00
kasperl@chromium.org
8df739da6d Improve profiler output to make it easier to see the
anonymous functions.
Review URL: http://codereview.chromium.org/7075

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 09:26:40 +00:00
kasperl@chromium.org
be8762564e Introduce a special kind of frames for construct frames, e.g.
the trampoline frames introduced for invoking functions through
the new keyword.
Review URL: http://codereview.chromium.org/7223

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 09:09:38 +00:00
erik.corry@gmail.com
8bfbe2c0aa Move const qualifies around to avoid GCC warnings. (GCC 4.3.2)
Patch by Seo Sanghyeon sanxiyn@gmail.com, reviewed by Erik Corry.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 08:33:06 +00:00
kasperl@chromium.org
9a63d930e3 Add codegen-arm.h and codegen-ia32.h to VS project file.
Review URL: http://codereview.chromium.org/7063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 06:40:11 +00:00
kasperl@chromium.org
f6f72f83e6 Fix typo.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 06:37:49 +00:00
kasperl@chromium.org
1c89cef32d Make strict equality checks faster on IA32 by doing
more work in the CompareStub. I'll port this to ARM
once I'm satisfied with the performance improvements.
Review URL: http://codereview.chromium.org/7014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 06:26:35 +00:00
iposva@chromium.org
89c762edf4 Simplify CodeGenerator hierarchy by not using a base class.
There is nothing virtual about a CodeGenerator since we
either generate code for one platform or for the other.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-10 00:00:52 +00:00
bak@chromium.org
015af31d5f - Optimized JSArray allocation in runtime system by using NewJSArrayWithElements.
Review URL: http://codereview.chromium.org/7013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-09 13:34:17 +00:00
christian.plesner.hansen@gmail.com
dc32c82ce9 Reverted the changes to jscre because the arm cross-compiler dies with
an internal error when compiling templateified jscre.  We really need
to update that damn arm compiler.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-09 12:18:48 +00:00
erik.corry@gmail.com
89ac41aff9 If an allocation is so huge that we cannot code the size needed in the failure
object then we just return an out of memory failure object (instead of a retry
after GC failure object).  Not all places that checked for retry-after-GC were
able to handle an immediate out of memory failure.

This fixes http://code.google.com/p/v8/issues/detail?id=70
Review URL: http://codereview.chromium.org/6340

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-09 11:26:37 +00:00
christian.plesner.hansen@gmail.com
a7230abb92 - Specialized jscre on the type of the string involved.
- Specialized jscre on the type of the string involved.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-09 10:30:33 +00:00
whesse@chromium.org
4f7b6654d4 This change rewrites some of the code to add properties to an object.
It removes the ReplaceConstantFunction code, and replaces it with
new ConvertDescriptorToField code, that is also used in other places.
Functions CopyRemove and CopyReplace on DescriptorArray are removed.
Function AddFastProperty is simplified by removing the 
CONSTANT_TRANSITION case.
Review URL: http://codereview.chromium.org/6528

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-09 08:57:32 +00:00
christian.plesner.hansen@gmail.com
76b1efea2d - Specialized slow-case string equality nine ways based on the
underlying string representation of the two strings involved.
- Renamed ascii and two byte string classes to sequential ascii and
  sequential two byte, and renamed IsAscii and friends to
  IsAsciiRepresentation.  This is to make a clear distinction between
  strings with an ascii/two-byte representation, of which there is
  four, and flat sequential ascii/two-byte string.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-09 08:08:04 +00:00
kasperl@chromium.org
f6a2696483 Fix typo in comment (issue 108).
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-09 06:55:08 +00:00
kasperl@chromium.org
1aee7c79aa Fix typo in include/v8.h (issue 108) and mark test-spaces/LargeObjectSpace as flaky on ARM (issue 113). TBR=ager@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-09 05:39:00 +00:00
kasperl@chromium.org
b314b46b09 Make sure to check that the function prototype is a
real JavaScript object before looking for it in the
prototype chain during instanceof checks.
Review URL: http://codereview.chromium.org/6579

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-08 14:03:53 +00:00
kasperl@chromium.org
77643dbef6 Improve the generated code for the instanceof operator,
and extended the instanceof test case.
Review URL: http://codereview.chromium.org/6341

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-08 13:33:16 +00:00
kasperl@chromium.org
614d78367f Minor adjustments to the object migration code: When copying
large objects we use memcpy. If this turns out to be a wash
on the benchmarks, I'd be happy to rip it out again.
Review URL: http://codereview.chromium.org/6576

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-08 09:01:10 +00:00
erik.corry@gmail.com
079a607442 Fix incorrect short cut test that assumed ASCII strings could be Latin1.
Review URL: http://codereview.chromium.org/6542

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-08 08:05:14 +00:00
sgjesse@chromium.org
a834f77210 Fixed wrong filename in Visual Studio project file.
Review URL: http://codereview.chromium.org/6336

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-08 07:36:44 +00:00
kmillikin@chromium.org
5d7f354384 Moved the function GetValue from the code generator to the Reference
helper class.

As a consequence, also removed the optional Reference from the code
generator state and got rid of some state-dependent behavior in the
code generator.
Review URL: http://codereview.chromium.org/6538

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-08 07:24:06 +00:00
kasperl@chromium.org
d0b27552dc Fix broken build.
Review URL: http://codereview.chromium.org/6305

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 14:00:28 +00:00
bak@chromium.org
f9ec0d2589 - Changed the stack size in PreallocatedMemoryThread from 16K to 32K
to make flexo happy.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 13:26:24 +00:00
lrn@chromium.org
5aac3a5b9c KMP algorithm is still left in the source. If this change checks out to be faster, it should be removed.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 13:25:49 +00:00
christian.plesner.hansen@gmail.com
097d35065a Rolled back eager hash calculation during flattening. Introduced
eager flattening of really short strings and lookup of one-character
strings in the one-character symbol cache.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 13:04:56 +00:00
bak@chromium.org
6a76d3c448 -Fixed regression in S15.5.5.1_A5.js.
I eliminated the fast case check in ToPrimitive.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 12:06:48 +00:00
kmillikin@chromium.org
6afa5c64b7 Move code generation for storing to a reference out of the AST nodes, and
onto the platform-specific Reference class defined in codegen-*.cc.  This
removes all of the static code generator functions.
Review URL: http://codereview.chromium.org/6527

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 11:19:44 +00:00
bak@chromium.org
5058924d85 - Added %IsArrayClass, %IsDateClass, and %IsStringClass.
- Added the FLOOR macro that only works on Number objects.
- Added LocalTimeNoCheck in the date code to eliminate some isNaN checks.
- Change computation of four_year_cycle_table to load time.
- Added fast case check to EQUALS and STRICT_EQUALS.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 10:54:50 +00:00
bak@chromium.org
734328bdd9 - Fixed the parameter pasing to SharedStoreIC_ExtendStorage
for keyed store ic.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 10:32:39 +00:00
christian.plesner.hansen@gmail.com
17096cab78 Calculate string hash during flattening and convert flat strings to
symbols.


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 10:10:03 +00:00
bak@chromium.org
9dadae1bfb - Fixed Issue 3201: Embedded Google Calendar crashes the renderer
ExtendStorage did not work with keyed store IC.
- Reduced instructions generated when performing a tail call to 
  kSharedStoreIC_ExtendStorage
- Moved test/mjsunit/bugs/bug-109.js
  to test/mjsunit/keyed-storage-extend.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 09:28:04 +00:00
lrn@chromium.org
ca7668ee32 Fixed typo
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 09:04:23 +00:00
kmillikin@chromium.org
5c80e6a83a Document (and assert) some of the safe-but-brittle implicit assumptions
about references in the code generators.
Review URL: http://codereview.chromium.org/6301

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 08:47:15 +00:00
lrn@chromium.org
c7c7b8b0e7 Fast direct-access version of KPM string match.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 08:11:44 +00:00
kasperl@chromium.org
f7174fd151 Add reproducible failing test case for bug 109.
Review URL: http://codereview.chromium.org/6300

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 08:11:38 +00:00
ager@chromium.org
c1ec605496 Adding Paolo Giarrusso to AUTHORS file for his hash code patch.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 07:26:06 +00:00
sgjesse@chromium.org
3a41911303 Removed some debug code related to issue 1308895 which was fixed in CL
http://codereview.chromium.org/6271.
Review URL: http://codereview.chromium.org/6299

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-07 07:23:24 +00:00
kmillikin@chromium.org
ca0924349d DeclareContextSlot took an extra completely random argument from the
stack which was returned and always pushed back.

Removed it.
Review URL: http://codereview.chromium.org/6802

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 16:57:38 +00:00
sgjesse@chromium.org
47439f3274 Skip the test debug-scripts-request on ARM in debug mode. It has consistently
been running for more than 3 minutes on Arm�g.g.
Review URL: http://codereview.chromium.org/6273

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 15:16:53 +00:00
sgjesse@chromium.org
167d7b4504 Marked a test parsing on ARM as parsing.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 14:30:24 +00:00
kasperl@chromium.org
35a7d677b0 Fix lint issue.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 13:37:27 +00:00
sgjesse@chromium.org
c0e04e1e86 Fixed unsafe code where a GC could occour after a Handle had been deferenced.
instances->set(i, *GetScriptWrapper(script));

GetScriptWrapper can call GC. The failure have only been seen on ARM, where
the g++ compiler pulls out the object from the instances handle to a register
before calling GetScriptWrapper causing set to be called on an object which
may have moved.

Marked a test on ARM as no longer flaky, whereas two other fails consistently
but that is no longer related to the problem fixed above.

BUG=1308895
Review URL: http://codereview.chromium.org/6271

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 13:20:27 +00:00
ager@chromium.org
3840bf2c08 The constructor properties on the prototypes of error objects should
not be enumerable.
Review URL: http://codereview.chromium.org/6270

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 12:53:02 +00:00
kasperl@chromium.org
892b0cac3c Refactor the arguments access code to make it easier to read.
Review URL: http://codereview.chromium.org/6491

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 11:04:03 +00:00
kasperl@chromium.org
bc66e45c53 Use String::kHashShift instead of kHashShift. TBR=ager@chromium.org.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2008-10-06 09:43:24 +00:00