Commit Graph

4957 Commits

Author SHA1 Message Date
sgjesse@chromium.org
bd208976d7 Update the bits reserved for the gap size in the depotimization table
On ARM the a constant pool can be emitted during the gap code generation which leads to larger gap code size

BUG=v8:1018
Review URL: http://codereview.chromium.org/6125004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 19:43:38 +00:00
kmillikin@chromium.org
32254e5324 Change the hydrogen timing data to include zone allocation.
Review URL: http://codereview.chromium.org/6190002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 14:16:47 +00:00
ricow@chromium.org
b4ea8c7f5e Enable sharding of individual testsuites in tools/test.py
This patch enables two new flags for the tools/test.py script;
--shard-count - giving the ability to split the tests to be run
into shard-count chunks.
--shard-run - giving the ability to specify which of the shards to actually run.

Example
  tools/test.py -j15 --shard-count=2 --shard-run=1 mozilla
would split the mozilla tests into two chunks and run the tests in the first chunk

Running:
  tools/test.py -j15 --shard-count=2 --shard-run=1 mozilla
  tools/test.py -j15 --shard-count=2 --shard-run=2 mozilla
is equivalent (in terms of test coverage) of just running:
  tools/test.py -j15 mozilla

In addition, tests are now sorted before they are returned from the
test specific ListTests methods (sputnik and mozilla tests where
already sorted before they where returned).

This change is needed to split a single test suite over two slaves on
the waterfall.


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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 13:54:42 +00:00
ager@chromium.org
cd4ae721e2 ARM: Implement delete operation in lithium codegen.
I'm using the post call generator for the macro assembler
InvokeBuiltin call to be consistent with the ia32 version. It only
generates one call, but using the post call generator it should be
easier to catch if we change that at some point.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:24:19 +00:00
fschneider@chromium.org
f89ce8159a Split LInstruction into multiple variant to make our LIR more compact.
This change introduces LTemplateInstruction which is a specialized version
of LInstruction and takes one template parameter to indicate whether the
instruction produces a result operand.

All instruction that do not have a result inherit from LTemplateInstruction<0>.
Instructions that have a result operand from LTemplateInstruction<1>

All the Define* function only operate on instructions with a result.

For this to work I also refactored the places where we do 

  LInstruction* result = new Lxyy

into

  Lxyz* result = new Lxyz 



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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:19:15 +00:00
sgjesse@chromium.org
16336d5a68 ARM: Set status for flaky test
BUG=v8:1032
TEST=Mozila ecma/Date/15.9.3.1-1.js
Review URL: http://codereview.chromium.org/6212002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:01:28 +00:00
sandholm@chromium.org
c260e4f731 Simplify Join and speedup joining arrays of numbers.
Review URL: http://codereview.chromium.org/6173004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 11:44:54 +00:00
whesse@chromium.org
a139094016 Crankshaft: Move LParallelMove to lithium.h, add LGap to lithium-x64.h.
Review URL: http://codereview.chromium.org/6132002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 11:31:21 +00:00
sgjesse@chromium.org
cb6a070629 ARM: Mozilla test is now passing after r6236
BUG=Mozilla ecma/TypeConversion/9.2
TEST=v8:1023
Review URL: http://codereview.chromium.org/6210002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 10:22:26 +00:00
ager@chromium.org
026842c50d Landing for Martin Maly.
Fix xcode project. 
Add missing files (lithium.cc, lithium.h, lithium-x64.cc). 
Add 64 bit targets to "All" targets group for Xcode build. 

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:17:05 +00:00
kmillikin@chromium.org
3d4395bab4 Prepare push to trunk. Now working on version 3.0.8.
Review URL: http://codereview.chromium.org/6152002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:05:34 +00:00
ager@chromium.org
5e3381c9c7 Landing for Martyn Capewell.
ARM: Fix comparison of NaN values.

Enables the cumulative exception flag when comparing values, and uses it to
detect NaN results.

BUG=1023
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:04:30 +00:00
sandholm@chromium.org
6dd671d6c2 Make better use of the %_FastAsciiArrayJoin function.
Review URL: http://codereview.chromium.org/6100005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:00:48 +00:00
ager@chromium.org
d9e5078bbc Landing for Martin Maly.
Implement DoCallKeyed for arm lithium compiler.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:59:13 +00:00
sgjesse@chromium.org
09628fc97c Add failing test to expectations to get the bot greener
BUG=v8:1031
TEST=mozilla ecma/TypeConversion/9.2
Review URL: http://codereview.chromium.org/6146006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:37:55 +00:00
ricow@chromium.org
cd6bd8c4fa Revert 6220 (generic descriptor support in Object.defineOwnProperty)
This change caused a webkit failure in http/tests/security/xss-DENIED-defineProperty.html.

 I will look into this and reapply when I find a solution.




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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:20:54 +00:00
sgjesse@chromium.org
dae44fd3ee ARM: Fix lithium codegeneration of TypeofIs
The previous implementation was incomplete and wrong.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 14:27:32 +00:00
ricow@chromium.org
22d1249b68 Disable flaky test on x64 when running with --crankshaft.
mjsunit/compiler/simple-osr is flaky.

Disabling for now until we get osr in place on the x64 port.

Bug 1026 created to track this:
http://code.google.com/p/v8/issues/detail?id=1026


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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:53:20 +00:00
whesse@chromium.org
50eaaf4be4 Speed up a regression test regress-3249650.js so it does not timeout.
Review URL: http://codereview.chromium.org/6175001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:52:36 +00:00
sgjesse@chromium.org
97621e7e32 ARM: Implement lithium codegen for DoTypeof, DoTypeofIs and DoSmiUntag
Review URL: http://codereview.chromium.org/6174001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:44:05 +00:00
sandholm@chromium.org
ba4f9faec5 Aviod double checking IS_STRING when joining arrays.
Review URL: http://codereview.chromium.org/5977013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:21:34 +00:00
lrn@chromium.org
90fd0ee897 Change interpretation of malformed \c? escapes in RegExp to match JSC.
Review URL: http://codereview.chromium.org/6171001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:35:42 +00:00
karlklose@chromium.org
e74b0ae7db ARM: Support DoCallGlobal in lithium code generator.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:34:39 +00:00
sgjesse@chromium.org
cce04b9071 Added a few new debugger tests.
Patch by Mark Lam from Hewlett-Packard Development Company, LP

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:59:41 +00:00
whesse@chromium.org
7c94bf13b9 Create platform-independent lithium files, move LGapResolver and LGapNode there
Review URL: http://codereview.chromium.org/6121001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:22 +00:00
ricow@chromium.org
08cd803827 Landing for Peter Hallam
First cut at bug 992 

Fixes JS portion of DefineOwnProperty when there is 
an existing property and the new descriptor is generic. 

Makes code follow spec steps more closely. 

Fixes typo for check for unchanged enumerable in step 6. 

Adds regression test. 

Codereview url: http://codereview.chromium.org/6035014/




git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:09 +00:00
ricow@chromium.org
b02ff71824 Fix win64 build (int conversion)
Review URL: http://codereview.chromium.org/6083014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:51:44 +00:00
sgjesse@chromium.org
426f13e084 Fix GC issue in instanceof stub
The the call of the builtin in InstanceofStub was not correctly protected with an internal frame leading to the return address being handled as a pointer during GC.

Marked the Instanceof stub as allowing stub calls (the RecordWriteStub was removed some days ago).

This issue was not caught by the assertion designed for this when debug mode is run with --debug-code (which out tests always does) as generating code for Abort set the allow stub calls flag to true. This has been fixed by restoring the allow stub calls flag correctly.
Review URL: http://codereview.chromium.org/6097010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:37:26 +00:00
fschneider@chromium.org
bfecc95694 Revert r6194: Clean up code for type feedback a bit.
This causes a big performance regression. I'll investigate.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:36:27 +00:00
kmillikin@chromium.org
12b34fa927 Move IsArgumentsMarker from class MaybeObject to Object.
Since we never need to ask it of a MaybeObject, put it with the other
oddball testers in class Object for consistency.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:06:28 +00:00
whesse@chromium.org
f39ff5c679 X64 Crankshaft: Implement some methods in LInstruction, update mjsunit test expectations.
Review URL: http://codereview.chromium.org/6118002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 09:47:16 +00:00
sgjesse@chromium.org
a6c5fa6993 ARM implementations of LoadElements, LoadKeyedFastElement, StoreNamedField, StoreKeyedFastElement.
BUG=none
TEST=none

Patch by Martyn Capewell from ARM Ltd.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 07:33:46 +00:00
karlklose@chromium.org
1eb68a859f Fix presubmit (r6209).
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 16:20:45 +00:00
fschneider@chromium.org
5fbaece14c Use a separate marker value to allocate the arguments object on deoptimzation.
Before we used the hole value for this purpose, but this does not work once we
start using the hole value for other purposes in the optimizing compiler.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 15:53:56 +00:00
karlklose@chromium.org
d4bbad8e4e ARM: Support DoCheckInstanceType in lithium codegenerator.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 15:25:03 +00:00
kmillikin@chromium.org
8945e02d86 Fix disassembly comment for CallFunctionStub.
The comment was printing the entire minor key but labeling it with 'argc'.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 14:13:40 +00:00
karlklose@chromium.org
1152cab095 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
2011-01-06 14:02:46 +00:00
lrn@chromium.org
a50e69bda5 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
2011-01-06 14:00:50 +00:00
kmillikin@chromium.org
dde853a4ad 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
2011-01-06 13:48:12 +00:00
whesse@chromium.org
2655060546 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
2011-01-06 13:29:22 +00:00
sgjesse@chromium.org
7cc0667457 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
2011-01-06 13:27:10 +00:00
sgjesse@chromium.org
2957881a26 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
2011-01-06 13:14:32 +00:00
danno@chromium.org
90445b33a4 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
2011-01-06 12:53:59 +00:00
sgjesse@chromium.org
2b7596a516 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
2011-01-06 12:41:41 +00:00
sgjesse@chromium.org
82b9758e9a 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
2011-01-06 12:34:35 +00:00
sgjesse@chromium.org
68ddff5f90 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
2011-01-06 12:21:06 +00:00
sgjesse@chromium.org
7c0c72eb2c 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
2011-01-06 10:56:23 +00:00
fschneider@chromium.org
35533bee36 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
2011-01-06 10:10:26 +00:00
ager@chromium.org
87209d787a 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
2011-01-06 08:59:02 +00:00
ager@chromium.org
af09d94ecd 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
2011-01-06 08:56:29 +00:00