platform/upstream/v8.git
13 years agoUse hydrogen accessor instead of copying members.
karlklose@chromium.org [Thu, 6 Jan 2011 14:02:46 +0000 (14:02 +0000)]
Use hydrogen accessor instead of copying members.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAvoid calling inherited setters when creating object literals and their boilerplates.
lrn@chromium.org [Thu, 6 Jan 2011 14:00:50 +0000 (14:00 +0000)]
Avoid calling inherited setters when creating object literals and their boilerplates.
Fix issue 1015.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSmall change to stack checks in unoptimized code.
kmillikin@chromium.org [Thu, 6 Jan 2011 13:48:12 +0000 (13:48 +0000)]
Small change to stack checks in unoptimized code.

The stack checks include a loop nesting depth encoded in the code stream
after the call to the stack check stub.  Change the code to jump around this
instruction as well as the call when the stack check is OK.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix errors in x64 crankshaft port, add failing tests to test expectations.
whesse@chromium.org [Thu, 6 Jan 2011 13:29:22 +0000 (13:29 +0000)]
Fix errors in x64 crankshaft port, add failing tests to test expectations.
Review URL: http://codereview.chromium.org/6104004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFixed some tabs left in d8.js
sgjesse@chromium.org [Thu, 6 Jan 2011 13:27:10 +0000 (13:27 +0000)]
Fixed some tabs left in d8.js

TBR=mark.lam@palm.com
Review URL: http://codereview.chromium.org/6029011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMisc debugger enhancements and bug fixes.
sgjesse@chromium.org [Thu, 6 Jan 2011 13:14:32 +0000 (13:14 +0000)]
Misc debugger enhancements and bug fixes.

1. Added gdb style debugger commands (and their shortcuts) for d8.
These include:
- s[tep] : step into the current statement.
- s[tep]i[n]: step into the current statement with the minimum step.
- n[ext] : step to the next statement.
- fin[ish] : step out of the current function.
- cond : setting conditions on breakpoints.
- d[elete] : deletes breakpoints.
- en[able]|dis[able]: enables/disables breakpoints including
exception breakpoints.
- ignore : ignores a breakpoint for a specified period.
- inf[o] ar[gs] : info on arguments of the current function.
- inf[o] lo[cals] : info on local vars of the current function.
- inf[o] br[eakpoints] : info on breakpoints.
- l[ist] : similar to source, but allows the user to continually
dump subsequent lines of source code either in the
forward or backward direction.
- quit / exit / disconnect : terminates the remote debugger
session.

NOTE: Active breakpoints will automatically be disabled when
the remote debugger detaches. This allows v8 to continue to
run without worrying about a loss of a debugger session.

2. Added support for breaking the debugger by simply typing ENTER.
The break command is now optional.

3. Once the debugger is broken, the user can now just type ENTER
to repeat the last command. This is useful to functionality that
needs to be invoked repeatedly e.g. step, list.

4. Added more verbose descriptions in d8's help.

5. Fixed a line and column number offset bug in the listing of breakpoint
line and column numbers.

6. Added a gc command to allow GCs to be requested from the debugger
interface. The plumbing for requesting different types of GCs is
there, but the underlying implementation currently only triggers a
full mark-compact GC. The command also returns the before and after
sizes of the heap.

7. Added trace json, and flags commands that are not published in help.
trace json is used for tracing the debugger packets send from and
received by d8. flags is for setting v8 flags. These are useful for
people debugging v8 itself, but not necessarily users of v8.

8. Added the ability to enable and disable break on all / uncaught
exceptions in to d8.

9. Added a fix to prevent the Debugger Agent from being re-instantiated
if one already exists.

10. Added the ability to filter results of the script command by matching
text or numbers on the results.

11. Added v8 flags to enable/disable the sending of debugger BeforeCompile,
AfterCompile, and ScriptCollected events.

12. Fixed some undefined value bugs that resulted in v8 or the debugger
failing.

13. Added a few minor WEBOS__ customizations (analogous to ANDROID
customizations).

Patch by Mark Lam from Hewlett-Packard Development Company, LP

Review URL: http://codereview.chromium.org/5980006
Review URL: http://codereview.chromium.org/6086010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement DoFunctionLiteral on ARM.
danno@chromium.org [Thu, 6 Jan 2011 12:53:59 +0000 (12:53 +0000)]
Implement DoFunctionLiteral on ARM.
Review URL: http://codereview.chromium.org/6112001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoInstanceof slow case bind is incorrect.
sgjesse@chromium.org [Thu, 6 Jan 2011 12:41:41 +0000 (12:41 +0000)]
Instanceof slow case bind is incorrect.

Currently, the bind for the slow label is after the pushing of the
args registers which renders the args pushing dead code because there
is a Ret preceeding it. The comments also imply that the arg pushing
should be part of the InvokeBuiltins tail call.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUpdate test expectations
sgjesse@chromium.org [Thu, 6 Jan 2011 12:34:35 +0000 (12:34 +0000)]
Update test expectations

The functions with DIV/MOV can get optimized if typefeedback indicate to use a binary op stub.
Review URL: http://codereview.chromium.org/6117001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: Change a number of lithium instruction operands to be in registers
sgjesse@chromium.org [Thu, 6 Jan 2011 12:21:06 +0000 (12:21 +0000)]
ARM: Change a number of lithium instruction operands to be in registers

Using operands which could possible be in stack slots would require a load instruction anyway, so having the register allocator putting them into registers seems most logical.
Review URL: http://codereview.chromium.org/6046014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: Fix a bug in the lithium arguments support
sgjesse@chromium.org [Thu, 6 Jan 2011 10:56:23 +0000 (10:56 +0000)]
ARM: Fix a bug in the lithium arguments support

Got the comparison wrong and fortot to actually set the flags.
Review URL: http://codereview.chromium.org/6085010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoClean up code for type feedback a bit.
fschneider@chromium.org [Thu, 6 Jan 2011 10:10:26 +0000 (10:10 +0000)]
Clean up code for type feedback a bit.

Remove unused functions and parameters and remove the parts of the
code that mention the old GenericBinaryOpStub. It is not used together
with Crankshaft and replaced with TypeRecordingBinaryOpStub.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoLanding for Martin Maly.
ager@chromium.org [Thu, 6 Jan 2011 08:59:02 +0000 (08:59 +0000)]
Landing for Martin Maly.

Add x64 targets to the v8 Xcode project.
Move platform specific files into their own groups.

BUG=
TEST=

Code review URL: http://codereview.chromium.org/5958020/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: support regexp literals in lithium-codegen-arm. Also, update
ager@chromium.org [Thu, 6 Jan 2011 08:56:29 +0000 (08:56 +0000)]
ARM: support regexp literals in lithium-codegen-arm. Also, update
comment on the AllocateInNewSpace macroassembler method.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix an bug in deoptimization after polymorphic calls in effect contexts.
kmillikin@chromium.org [Thu, 6 Jan 2011 07:38:19 +0000 (07:38 +0000)]
Fix an bug in deoptimization after polymorphic calls in effect contexts.

For polymorphic calls (also loads and stores) we construct a type switch
graph that has a basic block merging all the variants.  There is an
environment simulation before the goto at the end of all the predecessor
blocks.  This simulation is used to define the environment on entry to the
successor block, and captures the return value of the call.  In effect
contexts, this value should not be present in the environment.

The fix is to use the AST context to decide whether to have this value in
the join node's environment at all.

BUG=1014

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoARM: support arguments access in lithium-codegen-arm.
sgjesse@chromium.org [Thu, 6 Jan 2011 07:28:51 +0000 (07:28 +0000)]
ARM: support arguments access in lithium-codegen-arm.
Review URL: http://codereview.chromium.org/5989013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd deoptimization support to full-codegen-x64.cc (insert PrepareForBailout in many...
whesse@chromium.org [Wed, 5 Jan 2011 17:09:24 +0000 (17:09 +0000)]
Add deoptimization support to full-codegen-x64.cc (insert PrepareForBailout in many places.)
Review URL: http://codereview.chromium.org/6031014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix bug in instanceof stub
sgjesse@chromium.org [Wed, 5 Jan 2011 14:19:12 +0000 (14:19 +0000)]
Fix bug in instanceof stub

If the instanceof stub was requested to deliver true/false objects as the result instead of 0/1 then 0/1 was actually returned if the builtin INSTANCE_OF ended up being called. This is now fixed.

BUG=v8:1020
TEST=test/mjsunit/regress/regress-1020.js
Review URL: http://codereview.chromium.org/6014013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRevert r6180 as it caused test failures
sgjesse@chromium.org [Wed, 5 Jan 2011 14:03:38 +0000 (14:03 +0000)]
Revert r6180 as it caused test failures

TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/6080009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAvoid double checking for IS_NUMBER by calling NonNumToNum instead of ToNumber
sandholm@chromium.org [Wed, 5 Jan 2011 13:52:00 +0000 (13:52 +0000)]
Avoid double checking for IS_NUMBER by calling NonNumToNum instead of ToNumber
when the argument is known not to be a number.
Review URL: http://codereview.chromium.org/6061008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMisc debugger enhancements and bug fixes.
sgjesse@chromium.org [Wed, 5 Jan 2011 13:47:53 +0000 (13:47 +0000)]
Misc debugger enhancements and bug fixes.

1. Added gdb style debugger commands (and their shortcuts) for d8.
These include:
- s[tep] : step into the current statement.
- s[tep]i[n]: step into the current statement with the minimum step.
- n[ext] : step to the next statement.
- fin[ish] : step out of the current function.
- cond : setting conditions on breakpoints.
- d[elete] : deletes breakpoints.
- en[able]|dis[able]: enables/disables breakpoints including
exception breakpoints.
- ignore : ignores a breakpoint for a specified period.
- inf[o] ar[gs] : info on arguments of the current function.
- inf[o] lo[cals] : info on local vars of the current function.
- inf[o] br[eakpoints] : info on breakpoints.
- l[ist] : similar to source, but allows the user to continually
dump subsequent lines of source code either in the
forward or backward direction.
- quit / exit / disconnect : terminates the remote debugger
session.

NOTE: Active breakpoints will automatically be disabled when
the remote debugger detaches. This allows v8 to continue to
run without worrying about a loss of a debugger session.

2. Added support for breaking the debugger by simply typing ENTER.
The break command is now optional.

3. Once the debugger is broken, the user can now just type ENTER
to repeat the last command. This is useful to functionality that
needs to be invoked repeatedly e.g. step, list.

4. Added more verbose descriptions in d8's help.

5. Fixed a line and column number offset bug in the listing of breakpoint
line and column numbers.

6. Added a gc command to allow GCs to be requested from the debugger
interface. The plumbing for requesting different types of GCs is
there, but the underlying implementation currently only triggers a
full mark-compact GC. The command also returns the before and after
sizes of the heap.

7. Added trace json, and flags commands that are not published in help.
trace json is used for tracing the debugger packets send from and
received by d8. flags is for setting v8 flags. These are useful for
people debugging v8 itself, but not necessarily users of v8.

8. Added the ability to enable and disable break on all / uncaught
exceptions in to d8.

9. Added a fix to prevent the Debugger Agent from being re-instantiated
if one already exists.

10. Added the ability to filter results of the script command by matching
text or numbers on the results.

11. Added v8 flags to enable/disable the sending of debugger BeforeCompile,
AfterCompile, and ScriptCollected events.

12. Fixed some undefined value bugs that resulted in v8 or the debugger
failing.

13. Added a few minor WEBOS__ customizations (analogous to ANDROID
customizations).

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoChange a static_cast to BitCast
sgjesse@chromium.org [Wed, 5 Jan 2011 13:03:21 +0000 (13:03 +0000)]
Change a static_cast to BitCast

Hopefuly this will make the Win32 builder happy

TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/6038007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd private members to lithium classes on X64. Add implementation file lithium-x64.cc.
whesse@chromium.org [Wed, 5 Jan 2011 12:31:31 +0000 (12:31 +0000)]
Add private members to lithium classes on X64.  Add implementation file lithium-x64.cc.
Review URL: http://codereview.chromium.org/6015014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd partially-implemented TypeRecordingBinaryOpStub to x64 platform.
whesse@chromium.org [Wed, 5 Jan 2011 12:28:47 +0000 (12:28 +0000)]
Add partially-implemented TypeRecordingBinaryOpStub to x64 platform.
Review URL: http://codereview.chromium.org/6084010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix comparison bug on ARM.
sgjesse@chromium.org [Wed, 5 Jan 2011 12:06:32 +0000 (12:06 +0000)]
Fix comparison bug on ARM.
Retrieves the result of VFP comparison from the VFP status register.

BUG=none
TEST=none

Patch by Martyn Capewell from ARM Ltd.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix the build breakge on x64 and ARM after r6173
sgjesse@chromium.org [Wed, 5 Jan 2011 12:01:53 +0000 (12:01 +0000)]
Fix the build breakge on x64 and ARM after r6173

The instanceof changes was not fully ported to x64 and ARM.
Review URL: http://codereview.chromium.org/6031013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoDo not transform a/b into a * (1/b) in the parser for integer constants.
fschneider@chromium.org [Wed, 5 Jan 2011 11:25:42 +0000 (11:25 +0000)]
Do not transform a/b into a * (1/b) in the parser for integer constants.

Strength reduction should be performed at a later stage. This
change avoid going to a double representation the case of
integer division.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoOptimize instanceof further
sgjesse@chromium.org [Wed, 5 Jan 2011 11:17:37 +0000 (11:17 +0000)]
Optimize instanceof further

If the instance of is performed against what is beliwed to be a constant global function inline the instance of check and have the call to the instanceof stub in deferred code. The inlined check will be patched by the instanceof stub when called from deferred code. This is indicated by the lithium instruction LInstanceOfKnownGlobal.

To help the patching the delta from the return address to the patch site is placed just below the return address in the edi slot of the pushad/popad ares. This is safe because the edi register (which is pushed last) is a temporary for the lithium instruction.

As the instanceof stub can call other JavaScript an additional marking for saving all double registers have been added.

Also tweaked the instanceof stub to produce true/false objects instead of 0/1 for the case with deferred code.
Review URL: http://codereview.chromium.org/5990005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd exception for test-deoptimization/DeoptimizeBinaryOperationDIV
ricow@chromium.org [Wed, 5 Jan 2011 09:34:45 +0000 (09:34 +0000)]
Add exception for test-deoptimization/DeoptimizeBinaryOperationDIV
under arm with crankchaft.

This test assumes that a specific function is always optimized when
running with crankshaft, but we do not yet support this on arm.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on version 3.0.7.
lrn@chromium.org [Wed, 5 Jan 2011 09:11:20 +0000 (09:11 +0000)]
Prepare push to trunk. Now working on version 3.0.7.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement ARM lithium support for ObjectLiteral.
danno@chromium.org [Wed, 5 Jan 2011 09:04:06 +0000 (09:04 +0000)]
Implement ARM lithium support for ObjectLiteral.
Review URL: http://codereview.chromium.org/6099006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement Lithium ARM support for ArrayLiteral.
danno@chromium.org [Tue, 4 Jan 2011 14:48:25 +0000 (14:48 +0000)]
Implement Lithium ARM support for ArrayLiteral.

TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/5988008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presumbit error
sgjesse@chromium.org [Tue, 4 Jan 2011 14:35:34 +0000 (14:35 +0000)]
Fix presumbit error

TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6046012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove unused policy from register allocator.
fschneider@chromium.org [Tue, 4 Jan 2011 14:35:01 +0000 (14:35 +0000)]
Remove unused policy from register allocator.

DefineSameAsAny is never used and currently does exactly the
same as DefineSameAsFirst.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSet a fixed scratch register for ARM code generation
sgjesse@chromium.org [Tue, 4 Jan 2011 14:32:54 +0000 (14:32 +0000)]
Set a fixed scratch register for ARM code generation

r9 is now set as a fixed scratch register for ARM code generation. removed some unneeded allocation of temporary registers and use the scratch register instead.
Review URL: http://codereview.chromium.org/5976014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAllow getters and setters on JSArray elements.
ricow@chromium.org [Tue, 4 Jan 2011 13:59:34 +0000 (13:59 +0000)]
Allow getters and setters on JSArray elements.

This fixes bug 900

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix the Mac OS debug build
sgjesse@chromium.org [Tue, 4 Jan 2011 13:23:33 +0000 (13:23 +0000)]
Fix the Mac OS debug build
Review URL: http://codereview.chromium.org/6046010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix tab in javascript file.
lrn@chromium.org [Tue, 4 Jan 2011 13:14:39 +0000 (13:14 +0000)]
Fix tab in javascript file.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFirst part of lithium ARM port.
karlklose@chromium.org [Tue, 4 Jan 2011 13:02:51 +0000 (13:02 +0000)]
First part of lithium ARM port.

Implement LoadNamedField, CallConstantFunction, CmpMapAndBranch, JSArrayLength, BoundsCheck, IsNull, CallFunction, and CallStub in the ARM lithium codegenerator.

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoDon't let JSON parsed objects hit inherited setters.
lrn@chromium.org [Tue, 4 Jan 2011 12:19:55 +0000 (12:19 +0000)]
Don't let JSON parsed objects hit inherited setters.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd use_system_v8 option to gyp (off by default),
sgjesse@chromium.org [Tue, 4 Jan 2011 12:14:10 +0000 (12:14 +0000)]
Add use_system_v8 option to gyp (off by default),
as discussed in http://groups.google.com/group/v8-users/browse_thread/thread/33a69c51d8023ced

This will make it easier for Linux distributions
to ship with system-provided V8 library.

Patch by Pawel Hajdan, Jr. <phajdan.jr@chromium.org>

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix Windows compilation
sgjesse@chromium.org [Tue, 4 Jan 2011 12:11:01 +0000 (12:11 +0000)]
Fix Windows compilation

Use strncpy_s instaad of strncpy to avoid warning.
Review URL: http://codereview.chromium.org/6056006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix compile-problem in (currently) unused stand-alone preparser function.
lrn@chromium.org [Tue, 4 Jan 2011 12:07:16 +0000 (12:07 +0000)]
Fix compile-problem in (currently) unused stand-alone preparser function.
Allow object initializers to define getters using string and number literals.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd constraints verification to LAllocator::MarkAsCall().
vegorov@chromium.org [Tue, 4 Jan 2011 11:36:20 +0000 (11:36 +0000)]
Add constraints verification to LAllocator::MarkAsCall().

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presubmit error
sgjesse@chromium.org [Tue, 4 Jan 2011 11:28:17 +0000 (11:28 +0000)]
Fix presubmit error

TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/6093006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix bug that happens when the first non-ASCII character of a literal is at a power...
lrn@chromium.org [Tue, 4 Jan 2011 11:25:59 +0000 (11:25 +0000)]
Fix bug that happens when the first non-ASCII character of a literal is at a power-of-two position.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAddresses some performance regression in the GenericBinaryOpStub on ARM following...
sgjesse@chromium.org [Tue, 4 Jan 2011 11:02:58 +0000 (11:02 +0000)]
Addresses some performance regression in the GenericBinaryOpStub on ARM following Crankshaft introduction.

BUG=none
TEST=none

Patch by Rodolph Perfetta from ARM Ltd.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAvoid using std::string in Max OS platform file.
sgjesse@chromium.org [Tue, 4 Jan 2011 11:02:39 +0000 (11:02 +0000)]
Avoid using std::string in Max OS platform file.
Review URL: http://codereview.chromium.org/6001012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix presubmit error
sgjesse@chromium.org [Tue, 4 Jan 2011 10:25:06 +0000 (10:25 +0000)]
Fix presubmit error

TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/6008010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoCleanup of x64 code. Rearrange functions in ic-x64.cc to match order in ic-ia32...
whesse@chromium.org [Tue, 4 Jan 2011 09:50:35 +0000 (09:50 +0000)]
Cleanup of x64 code.  Rearrange functions in ic-x64.cc to match order in ic-ia32.cc.  Remove unused declarations, and move a constant to assembler-x64.h.
Review URL: http://codereview.chromium.org/6020012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoExport external array data accessors.
ager@chromium.org [Tue, 4 Jan 2011 09:27:46 +0000 (09:27 +0000)]
Export external array data accessors.

BUG=v8:1016
Review URL: http://codereview.chromium.org/6013011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdded labelled thread names to help with some debugging activity. Right now,
sgjesse@chromium.org [Tue, 4 Jan 2011 09:09:50 +0000 (09:09 +0000)]
Added labelled thread names to help with some debugging activity. Right now,
the only platform that it works on is linux (using the prctl API to set the
names of the threads). Other platforms are setup to build properly if the
flag is set, but their thread names are not currently set.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoReorder the functions in stub-cache-x64.cc, so they are in the same order as in stub...
whesse@chromium.org [Tue, 4 Jan 2011 09:02:53 +0000 (09:02 +0000)]
Reorder the functions in stub-cache-x64.cc, so they are in the same order as in stub-cache-ia32.cc.
Review URL: http://codereview.chromium.org/6085006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMove first_artificial_register_ initialization to the right place.
vegorov@chromium.org [Mon, 3 Jan 2011 19:16:29 +0000 (19:16 +0000)]
Move first_artificial_register_ initialization to the right place.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemember required register kind when creating artificial virtual register.
vegorov@chromium.org [Mon, 3 Jan 2011 17:02:15 +0000 (17:02 +0000)]
Remember required register kind when creating artificial virtual register.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix a bug in deoptimization environments.
kmillikin@chromium.org [Mon, 3 Jan 2011 16:57:46 +0000 (16:57 +0000)]
Fix a bug in deoptimization environments.

The function HEnvironment::SetExpressionStackAt did not update the
environment's history.  This function is used to patch the bailout
environment for count operations and global function calls.

Reorganize class HEnvironment to make it fit V8's style a bit better
and to try to add some sanity to which C++ functions are intended to
be inlined.

Remove the flag --trace-environment which merely duplicated data in
the hydrogen.cfg file except without enough context to be useful.

BUG=1004

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove RecordWriteStub from X64 and ARM platforms.
whesse@chromium.org [Mon, 3 Jan 2011 14:59:12 +0000 (14:59 +0000)]
Remove RecordWriteStub from X64 and ARM platforms.
Review URL: http://codereview.chromium.org/5986014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUse the macro assembler Set instead of explicit xor for clearing registers.
sgjesse@chromium.org [Mon, 3 Jan 2011 11:39:22 +0000 (11:39 +0000)]
Use the macro assembler Set instead of explicit xor for clearing registers.
Review URL: http://codereview.chromium.org/6015011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSimplify ScanJsonString.
sandholm@chromium.org [Mon, 3 Jan 2011 10:51:34 +0000 (10:51 +0000)]
Simplify ScanJsonString.
Review URL: http://codereview.chromium.org/6009009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoChanged uncast -1 in unsigned context to use constant kSentinel.
lrn@chromium.org [Mon, 3 Jan 2011 10:28:39 +0000 (10:28 +0000)]
Changed uncast -1 in unsigned context to use constant kSentinel.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd more documentation to Context::New in the API header file.
ager@chromium.org [Mon, 3 Jan 2011 10:17:08 +0000 (10:17 +0000)]
Add more documentation to Context::New in the API header file.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on 3.0.6.
fschneider@chromium.org [Mon, 3 Jan 2011 10:02:17 +0000 (10:02 +0000)]
Prepare push to trunk. Now working on 3.0.6.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoChanged #define symbols in test to OBJECT_PRINT from PRINT_OBJECT
sgjesse@chromium.org [Mon, 3 Jan 2011 09:32:42 +0000 (09:32 +0000)]
Changed #define symbols in test to OBJECT_PRINT from PRINT_OBJECT
because this is actually what is being used.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoLanding for Martin Maly.
ager@chromium.org [Mon, 3 Jan 2011 08:13:37 +0000 (08:13 +0000)]
Landing for Martin Maly.

Fix Xcode project.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdded context sensitive prompt for remote debugger. It now shows "> "
sgjesse@chromium.org [Mon, 3 Jan 2011 07:56:30 +0000 (07:56 +0000)]
Added context sensitive prompt for remote debugger.  It now shows "> "
when the debuggee is running, and "dbg> " when the debuggee is stopped.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoOptimize array-length and fast element loads.
fschneider@chromium.org [Thu, 30 Dec 2010 19:30:42 +0000 (19:30 +0000)]
Optimize array-length and fast element loads.

1. Separating out the instance-type check from the array-length operation.

2. I also changed the bounds-check on keyed loads to use the length property
for JS arrays (like we do for array stores).

The new pattern should use less registers and allow more checks to be eliminated.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoDon't emit a write barrier when storing a known old space value.
vitalyr@chromium.org [Sat, 25 Dec 2010 14:14:16 +0000 (14:14 +0000)]
Don't emit a write barrier when storing a known old space value.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoForce inlining of BodyVisitorBase::IteratePointers.
vitalyr@chromium.org [Fri, 24 Dec 2010 14:44:15 +0000 (14:44 +0000)]
Force inlining of BodyVisitorBase::IteratePointers.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix variable conflict in nested for statement
peter.rybin@gmail.com [Fri, 24 Dec 2010 02:44:35 +0000 (02:44 +0000)]
Fix variable conflict in nested for statement

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix inlining of instanceof stub for ARM (r6093).
karlklose@chromium.org [Thu, 23 Dec 2010 16:33:30 +0000 (16:33 +0000)]
Fix inlining of instanceof stub for ARM (r6093).
Review URL: http://codereview.chromium.org/6055006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoChange scanner buffers to not use utf-8.
lrn@chromium.org [Wed, 22 Dec 2010 20:14:19 +0000 (20:14 +0000)]
Change scanner buffers to not use utf-8.
Make preparser keep its symbol text itself instead of relying on the scanner.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix win64 build.
vitalyr@chromium.org [Wed, 22 Dec 2010 16:07:59 +0000 (16:07 +0000)]
Fix win64 build.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoDo not turn source array elements into writable if doing Array.slice.
antonm@chromium.org [Wed, 22 Dec 2010 15:45:48 +0000 (15:45 +0000)]
Do not turn source array elements into writable if doing Array.slice.

Array.slice doesn't mutate original array, so it's fine with read only data.
Plus nuke unnecessary cast.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoSupport load function prototype in hydrogen/lithium.
vitalyr@chromium.org [Wed, 22 Dec 2010 15:43:32 +0000 (15:43 +0000)]
Support load function prototype in hydrogen/lithium.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoIntroduce NUMBER_IS_FINITE macro to avoid ToNumber() conversion.
sandholm@chromium.org [Wed, 22 Dec 2010 13:19:25 +0000 (13:19 +0000)]
Introduce NUMBER_IS_FINITE macro to avoid ToNumber() conversion.
Review URL: http://codereview.chromium.org/5977006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRefactoring out object printing functions into objects-printer.cc.
sgjesse@chromium.org [Wed, 22 Dec 2010 13:04:47 +0000 (13:04 +0000)]
Refactoring out object printing functions into objects-printer.cc.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoClean up is-ASCII checks.
vitalyr@chromium.org [Wed, 22 Dec 2010 11:31:18 +0000 (11:31 +0000)]
Clean up is-ASCII checks.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoUse Assembler::Set() to assign constants to registers in more places. Commit of...
whesse@chromium.org [Wed, 22 Dec 2010 09:55:19 +0000 (09:55 +0000)]
Use Assembler::Set() to assign constants to registers in more places.  Commit of codereview.chromium.org/6016007/ .

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix a couple of cast errors for gcc-3.4.3. Patch by Ryan Dahl. http://codereview...
erik.corry@gmail.com [Wed, 22 Dec 2010 09:49:26 +0000 (09:49 +0000)]
Fix a couple of cast errors for gcc-3.4.3.  Patch by Ryan Dahl. codereview.chromium.org/5976006/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix assert error in r6083 by allowing stub calls from TranscendentalCacheStub.
whesse@chromium.org [Tue, 21 Dec 2010 15:10:45 +0000 (15:10 +0000)]
Fix assert error in r6083 by allowing stub calls from TranscendentalCacheStub.
Review URL: http://codereview.chromium.org/6021004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAvoid decoding overhead when allocating ascii strings.
ager@chromium.org [Tue, 21 Dec 2010 13:24:23 +0000 (13:24 +0000)]
Avoid decoding overhead when allocating ascii strings.

The assumption is that most utf8 strings allocated are actually ascii
and that if they are not we will encounter a non-ascii char pretty
quickly.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoPrepare push to trunk. Now working on version 3.0.5.
whesse@chromium.org [Tue, 21 Dec 2010 12:05:32 +0000 (12:05 +0000)]
Prepare push to trunk.  Now working on version 3.0.5.
Review URL: http://codereview.chromium.org/6056003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix for issue 1007.
kmillikin@chromium.org [Tue, 21 Dec 2010 11:21:04 +0000 (11:21 +0000)]
Fix for issue 1007.

The Hydrogen environment only tracks values for stack-allocated variables.
It is a precondition of HEnvironment::Lookup(variable) that variable is
stack-allocated.  The check was missing at one call site.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement inlining of instanceof tests on ARM.
karlklose@chromium.org [Tue, 21 Dec 2010 10:52:50 +0000 (10:52 +0000)]
Implement inlining of instanceof tests on ARM.

TBR=sgjesse

BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix leak of a global handle in Debug::Load().
vegorov@chromium.org [Tue, 21 Dec 2010 10:51:50 +0000 (10:51 +0000)]
Fix leak of a global handle in Debug::Load().

Bootstrapper::CreateEnvironment() returns a global handle to the created context so there is no need to create another one explicitly.

BUG=v8:1006

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoImplement HeapIterator that skips over unreachable objects.
mikhail.naganov@gmail.com [Tue, 21 Dec 2010 10:49:40 +0000 (10:49 +0000)]
Implement HeapIterator that skips over unreachable objects.

I'm using it when creating heap snapshots. I decided that it will
be more convenient to have it as a separate piece of code, instead
of embedding into the snapshot generator.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoEnsure that the SSE2 TranscendentalCache stub calls GC if it runs out of memory in...
whesse@chromium.org [Tue, 21 Dec 2010 10:25:51 +0000 (10:25 +0000)]
Ensure that the SSE2 TranscendentalCache stub calls GC if it runs out of memory in new space.  Previously, it would just use an alternate algorithm, that did not cache the result.
Review URL: http://codereview.chromium.org/5996001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoTweak quicksort loop to reduce number of compares slightly.
lrn@chromium.org [Mon, 20 Dec 2010 14:57:51 +0000 (14:57 +0000)]
Tweak quicksort loop to reduce number of compares slightly.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix error in r6083
whesse@chromium.org [Mon, 20 Dec 2010 14:42:05 +0000 (14:42 +0000)]
Fix error in r6083
Review URL: http://codereview.chromium.org/6026004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoTeach C++ ArraySlice builtin to deal with arguments object.
antonm@chromium.org [Mon, 20 Dec 2010 14:41:41 +0000 (14:41 +0000)]
Teach C++ ArraySlice builtin to deal with arguments object.

Array.prototype.slice.call(arguments, ...) idiom is pretty common (up to 97% of invocations
in GMail), so we'd better handle it efficiently too.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAllow 4 more fast properties for objects.
vitalyr@chromium.org [Mon, 20 Dec 2010 14:20:43 +0000 (14:20 +0000)]
Allow 4 more fast properties for objects.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoAdd untagged double versions of Math.sin and Math.cos. Merge classes TranscendentalC...
whesse@chromium.org [Mon, 20 Dec 2010 13:52:14 +0000 (13:52 +0000)]
Add untagged double versions of Math.sin and Math.cos.  Merge classes TranscendentalCacheStub and TranscendentalCacheSSE2Stub.
Review URL: http://codereview.chromium.org/5996002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix GVN for polymorphic loads.
fschneider@chromium.org [Mon, 20 Dec 2010 13:18:47 +0000 (13:18 +0000)]
Fix GVN for polymorphic loads.

They must not be hoisted above the compare-map-and-branch.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMinor optimization in regexp parse.
sandholm@chromium.org [Mon, 20 Dec 2010 10:44:41 +0000 (10:44 +0000)]
Minor optimization in regexp parse.
Review URL: http://codereview.chromium.org/6014002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years ago1. Added support for object printing for release mode using the
sgjesse@chromium.org [Mon, 20 Dec 2010 10:38:19 +0000 (10:38 +0000)]
1. Added support for object printing for release mode using the
   objectprint=on (defaults to off) option (which defines OBJECT_PRINT).
2. Added the ability to print objects to a specified file instead of
   just stdout.
3. Added a use_verbose_printer flag (true by default) to allow some
   object printouts to be less verbose when the flag is false.
4. Fixed a bug in VSNPrintF() where it can potentially write into an
   empty char vector.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoFix smi-comparison to use correct macros in X64-SwapElements.
lrn@chromium.org [Mon, 20 Dec 2010 09:38:56 +0000 (09:38 +0000)]
Fix smi-comparison to use correct macros in X64-SwapElements.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoRemove the atomic/thread safe stuff from the chunk table, since we don't
erik.corry@gmail.com [Fri, 17 Dec 2010 14:50:24 +0000 (14:50 +0000)]
Remove the atomic/thread safe stuff from the chunk table, since we don't
use cross thread synchronization in Crankshaft.
Review URL: http://codereview.chromium.org/5979001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoExtend code printing:
vitalyr@chromium.org [Fri, 17 Dec 2010 14:16:00 +0000 (14:16 +0000)]
Extend code printing:

o Add --print-unopt-code to print unoptimized code before printing
  optimized code based on it. This is useful to see the states of ICs
  and the effects of code patching.

o Use debug function names in disassembly output.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoMark map-transition stores as map-changing instructions.
fschneider@chromium.org [Fri, 17 Dec 2010 13:44:19 +0000 (13:44 +0000)]
Mark map-transition stores as map-changing instructions.

This prevents code motion from hoisting map-checks across such stores
which may result in unnecessary deoptimizations.

In the following example program we would move a map-check from the inner loop out before the outer loop which is not desirable:

function f() {
  var o = {};
  var j = 0;
  o.a = 1;
  do {
    o.b = 6;  // Map transition
    for (var i=0; i<10; i++) {
       o.a = o.b + i;
    }
  } while(++j < 1) {}
}

for (var i = 0; i < 1000000; i++) f();

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

13 years agoWhen setting property on a context extension object do not inherit the
ager@chromium.org [Fri, 17 Dec 2010 13:04:53 +0000 (13:04 +0000)]
When setting property on a context extension object do not inherit the
attributes from an existing property on a prototype object.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00