lrn@chromium.org [Mon, 17 Jan 2011 09:36:10 +0000 (09:36 +0000)]
Make invalid break/continue statements an early syntax error.
Previously we delayed the throwing of syntax errors until runtime, so
unreachable errors didn't get reported.
To match a change in JSC, we now stop parsing and report the error immediately.
BUG=69736
TEST=
Review URL: http://codereview.chromium.org/6355006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6341
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 17 Jan 2011 08:11:03 +0000 (08:11 +0000)]
Make closures optimizable by Crankshaft compiler.
Currently only closures which only read from the context are supported.
Review URL: http://codereview.chromium.org/5753005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6340
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 17 Jan 2011 07:26:36 +0000 (07:26 +0000)]
Landing for Martyn Capewell.
ARM: Implement DoInteger32ToDouble in lithium codegen. Clean up
temporary register use.
Code review URL: http://codereview.chromium.org/6257003/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6339
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 17 Jan 2011 07:03:19 +0000 (07:03 +0000)]
Relax verification of JSFunction result caches.
As invocation of a functin may trigger GC and hence clear all the caches,
it's hard to ensure previous invariants.
Current invariant is both a key and a value should be the holes or not holes.
Review URL: http://codereview.chromium.org/6309004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6338
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Sun, 16 Jan 2011 21:29:32 +0000 (21:29 +0000)]
Optimize JSON stringify by allowing QuoteJSONString to prefix with a comma.
Review URL: http://codereview.chromium.org/6335004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6337
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 14 Jan 2011 16:15:40 +0000 (16:15 +0000)]
Fix typo that breaks compilation on x64.
Review URL: http://codereview.chromium.org/6342003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6336
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 14 Jan 2011 16:10:00 +0000 (16:10 +0000)]
Fix accidental change to ia32 in r6329.
Review URL: http://codereview.chromium.org/6362001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6335
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 14 Jan 2011 15:39:18 +0000 (15:39 +0000)]
Avoid trashing the FPSCR when calculating Math.floor
The restoring of FPSCR could restore a random value as the restore point could be jumped to from before FPSCR was loaded.
Review URL: http://codereview.chromium.org/6344002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6332
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 14 Jan 2011 15:24:41 +0000 (15:24 +0000)]
Fix compilation failure on ia32 and x64.
TBR=ager
BUG=
TEST=
Review URL: http://codereview.chromium.org/6359001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6331
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 14 Jan 2011 15:08:44 +0000 (15:08 +0000)]
Disable DivI and ModI again until the bug with SafepointWithRegistersAndDoubles is solved.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6295004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6330
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 14 Jan 2011 15:07:44 +0000 (15:07 +0000)]
X64 Crankshaft: Add DoParallelMove to x64
Review URL: http://codereview.chromium.org/6290004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6329
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 14 Jan 2011 14:51:19 +0000 (14:51 +0000)]
Fix name of the toString method on error objects. Bug caught by layout tests.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/6258004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6328
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 14 Jan 2011 14:03:05 +0000 (14:03 +0000)]
X64: Fix allocated register name table.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6247006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6325
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 14 Jan 2011 13:16:48 +0000 (13:16 +0000)]
X64 Crnakshaft: Added GeneratePrologue implementation.
Review URL: http://codereview.chromium.org/6326003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6324
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 14 Jan 2011 13:14:26 +0000 (13:14 +0000)]
Unthread message handling test. Changing the MessageHandler in a
threaded test is not a good idea as it has an effect on other tests.
Review URL: http://codereview.chromium.org/6273004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6323
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 14 Jan 2011 12:51:04 +0000 (12:51 +0000)]
Make the 'name' property on error prototypes read-only and dont-delete
to avoid leaking of error objects to accessor methods when formatting
error messages internally.
Also, do not call overwritten toString methods on error objects when
formatting messages internally.
Review URL: http://codereview.chromium.org/6272004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6322
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 14 Jan 2011 12:50:03 +0000 (12:50 +0000)]
Move class LGapResolver to the platform specific backend implementation files.
This change is in preparation for introducing platform-specific strategies
for resolving parallel moves.
Review URL: http://codereview.chromium.org/6324003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6321
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Fri, 14 Jan 2011 12:01:57 +0000 (12:01 +0000)]
Unreviewed. Fix whitespaces for r6314.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6315
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Fri, 14 Jan 2011 11:56:14 +0000 (11:56 +0000)]
Tests for setting break points by script id and position.
Review URL: http://codereview.chromium.org/6261009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6314
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 14 Jan 2011 11:54:38 +0000 (11:54 +0000)]
Fix win64 build by using int instead of size_t for position in StringBuilder
Review URL: http://codereview.chromium.org/6353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6313
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 14 Jan 2011 11:48:43 +0000 (11:48 +0000)]
ARM: Implement DoModI stub in the lithium code generator.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6314003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6312
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 14 Jan 2011 11:35:02 +0000 (11:35 +0000)]
Implement DoStackCheck in x64 crankshaft
Review URL: http://codereview.chromium.org/6257002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6311
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 14 Jan 2011 10:57:49 +0000 (10:57 +0000)]
Speed up FastAsciiArrayJoin on ia32 by improving hand-written assembly code.
Review URL: http://codereview.chromium.org/6148007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6310
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 14 Jan 2011 10:50:13 +0000 (10:50 +0000)]
Don't lazily compile functions that are immediately receded by '('.
We heuristically expect those functions to be called immediately.
Review URL: http://codereview.chromium.org/6311005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6309
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 14 Jan 2011 10:49:18 +0000 (10:49 +0000)]
Fix bug when the scanner does a pushback at the end of input.
We don't advance the input cursor past the end of input, so we shouldn't
decrease it when we pushback the kEndOfInput marker.
Review URL: http://codereview.chromium.org/6246004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6308
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 14 Jan 2011 10:33:41 +0000 (10:33 +0000)]
Fix presubmit
Review URL: http://codereview.chromium.org/6326002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6307
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 14 Jan 2011 10:27:25 +0000 (10:27 +0000)]
Add implementations of some more x64 lithium methods.
This puts us very close to being able to compile the empty function.
This changes only has a small number of 64 bit specific assembler instructions.
The remaining changes are much more platform specific and will go in another change.
Review URL: http://codereview.chromium.org/6247005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6306
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 14 Jan 2011 09:45:30 +0000 (09:45 +0000)]
Fix number of result operands for LThrow.
This instruction does not produce a result. We don't need a result
LOperand for it.
Review URL: http://codereview.chromium.org/6306001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6305
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 14 Jan 2011 08:49:52 +0000 (08:49 +0000)]
ARM: Implement DoDivI in the lithium code generator.
This change provides fast code for a few special cases and calls the GenericBinaryOpStub for the rest.
It also changes the register allocation in the generation of lithium instructions to use fixed registers that are compatible with the generic stub. This allocation can be change once we use a more flexible implementation.
Finally, this change provides infrastructure to save double registers at safepoints, which is need to call the stub in deferred code.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6164005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6304
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
podivilov@chromium.org [Thu, 13 Jan 2011 17:32:10 +0000 (17:32 +0000)]
Add function for setting breakpoint by scriptId and position to debugger script
Review URL: http://codereview.chromium.org/6301001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6302
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 13 Jan 2011 15:56:33 +0000 (15:56 +0000)]
Wrap external pointers more carefully.
On 32-bit platforms any pointer with 0 as LSB can be wrapped into Smi. However, on 64-bit
platforms it's currently not the case as x64 Smis must have 0s in lower 32 bit word.
Even worse, macroassembler Move instruction will try to fetch integer value from Smi
and will shift by 32 bits to the right rendering stored pointer incorrect.
BUG=v8:1037
Review URL: http://codereview.chromium.org/6119009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6301
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 13 Jan 2011 14:16:08 +0000 (14:16 +0000)]
Expose receiver check type in call type feedback.
This a preparatory step to support fast function calls on primitive
values. Not really used yet in hydrogen.
Review URL: http://codereview.chromium.org/6263001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6300
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 13 Jan 2011 14:10:26 +0000 (14:10 +0000)]
Fix the xcode build by not including x64 specific code when generating
32 bit code.
Review URL: http://codereview.chromium.org/6249002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6299
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 13 Jan 2011 12:21:47 +0000 (12:21 +0000)]
Landing for Rodolph Perfetta.
Implementing Math.floor and Math.sqrt for crankshaft.
BUG=none
TEST=none
Code review URL: http://codereview.chromium.org/6250002/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6298
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 13 Jan 2011 10:04:02 +0000 (10:04 +0000)]
X64 Crankshaft: Ported lots of boilerplate code.
Small tweaks to make X64 compliant.
A few UNIMPLEMENTED left, but most empty functions call Abort to bail out.
Review URL: http://codereview.chromium.org/6201006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6297
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 13 Jan 2011 09:44:23 +0000 (09:44 +0000)]
Landing for cira@chromium.org
Adding gyp file for all of the experimental extensions (currently i18n-extension only).
Embedder should define icu_src_path to point to their copy of ICU library.
Code review URL: http://codereview.chromium.org/6246003/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6296
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 13 Jan 2011 09:34:19 +0000 (09:34 +0000)]
Landing for Martin Maly.
Fix x64 XCode project files.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6295
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 13 Jan 2011 08:24:19 +0000 (08:24 +0000)]
Revert r6284 and r6283 as they caused the fuzzer tests to fail.
Review URL: http://codereview.chromium.org/6295002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6292
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 13 Jan 2011 06:56:54 +0000 (06:56 +0000)]
Do not allow accessors to intercept getting/setting properties on
error objects under construction and string conversions.
Review URL: http://codereview.chromium.org/6146009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6291
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 13 Jan 2011 00:34:08 +0000 (00:34 +0000)]
Simplify CheckPrototypeMaps.
This instruction only depends on the prototype and the holder and can
completely ignore the receiver and its map.
This change also fixes a small bug on arm where a cell was loaded
instead of the prototype from new space.
Review URL: http://codereview.chromium.org/6094020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6290
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 12 Jan 2011 15:46:39 +0000 (15:46 +0000)]
Use hydrogen accessor in a few more places to save space in the lithium IR.
Review URL: http://codereview.chromium.org/6207007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6288
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 12 Jan 2011 14:32:51 +0000 (14:32 +0000)]
Revert accidental part of codereview.chromium.org/6123007/
6281 that causes a performance regression.
Review URL: http://codereview.chromium.org/6106014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6287
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Wed, 12 Jan 2011 14:16:19 +0000 (14:16 +0000)]
Optimize JSON stringify for arrays.
Review URL: http://codereview.chromium.org/6164004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6286
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Wed, 12 Jan 2011 14:14:14 +0000 (14:14 +0000)]
Allow arguments in safepoints with registers.
This should enable calling runtime functions with arguments from
deferred lithium code.
Review URL: http://codereview.chromium.org/6125007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6285
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 12 Jan 2011 14:00:19 +0000 (14:00 +0000)]
Fix bug in r6283
Make sure that arguments are pushed only once before calling runtime
TEST=11 sputnik tests
Review URL: http://codereview.chromium.org/6151009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6284
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 12 Jan 2011 12:52:15 +0000 (12:52 +0000)]
IA32: Refactor to avoid duplicate code.
Review URL: http://codereview.chromium.org/6226006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6283
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 12 Jan 2011 12:27:39 +0000 (12:27 +0000)]
Add a few more mozilla exceptions under BUG(1032).
These test crashes occasionally as well:
ecma/Date/15.9.3.1-2
ecma/Date/15.9.3.1-3
ecma/Date/15.9.3.1-5
Review URL: http://codereview.chromium.org/6131007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6282
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 12 Jan 2011 11:56:41 +0000 (11:56 +0000)]
Fixes needed to compile on gcc-4.4.1 on ARM. It is still necessary
to add -fno-strict-aliasing.
Review URL: http://codereview.chromium.org/6123007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6281
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 12 Jan 2011 11:53:30 +0000 (11:53 +0000)]
IA32: Remove an invalid assert
Review URL: http://codereview.chromium.org/6129005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6280
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 12 Jan 2011 09:29:20 +0000 (09:29 +0000)]
Landing for Martin Maly.
Fix CalculateEmitStore HashMap use.
The hash maps are setup to store strings or smis but instead Literal is being in them. It seems to only work by accident.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6279
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 12 Jan 2011 08:10:09 +0000 (08:10 +0000)]
ARM: Allow Mozilla test js1_5/GC/regress-203278-2 to tiemout
BUG=v8:1040
TEST=Mozilla test js1_5/GC/regress-203278-2
Review URL: http://codereview.chromium.org/6204005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6278
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 12 Jan 2011 07:47:13 +0000 (07:47 +0000)]
ARM: Always use the overflow flag to check for NaNs participating in a floating point compare.
Looks as if we don't need to use the vcmpe instruction instead of the vcmp, as the overflow FPSCR bit suits our purpose. If we at some point need vcmpe lte's implement it as a separate instruction.
Review URL: http://codereview.chromium.org/6197003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6277
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 11 Jan 2011 15:51:08 +0000 (15:51 +0000)]
Crankshaft: Move LEnvironment and LPointerMap classes to platform-independent lithium.h. Move WriteTranslation method from LEnvironment class to LCodeGen class.
Review URL: http://codereview.chromium.org/6142011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6276
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 11 Jan 2011 15:47:34 +0000 (15:47 +0000)]
Introduce two more template parameter for Lithium instructions for input and temp operands.
Each LInstruction is now a subclass of LTemplateInstruction<R, I, T>
where R is number of outputs, I number of inputs and T number of temps.
This change only actually uses the parameter I for input operands.
Since the parameter T for temps is 0, it incurs no extra cost.
A separate change will introduce using the temps parameter.
Review URL: http://codereview.chromium.org/6215002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6275
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Tue, 11 Jan 2011 14:55:47 +0000 (14:55 +0000)]
Add fine-grained diff implementation to LiveEdit engine.
BUG=1013
TEST=
Review URL: http://codereview.chromium.org/6017008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6274
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 11 Jan 2011 14:38:13 +0000 (14:38 +0000)]
Remove unused Temp() function form LChunkBuilder.
Review URL: http://codereview.chromium.org/6217003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6273
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 11 Jan 2011 14:11:03 +0000 (14:11 +0000)]
Implement DoApplyArguments.
ARM: Implement DoApplyArguments in the lithium code generator.
This patch also introduces an optional SafepointGenerator argument to InvokeFunction, InvokeCode and InvokeProloque.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6164003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6272
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 11 Jan 2011 14:01:53 +0000 (14:01 +0000)]
ARM: Implement ClassOf in the lithium arm backend.
Review URL: http://codereview.chromium.org/6201004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6271
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 11 Jan 2011 13:50:12 +0000 (13:50 +0000)]
Reuse the gap move resolver.
Rather than allocating a fresh gap move resolver for every parallel
move, use a single one per Lithium code generator. This avoids always
reallocating the temporary zone-allocated lists used by the gap move
resolver.
Review URL: http://codereview.chromium.org/6128007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6270
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 11 Jan 2011 13:48:49 +0000 (13:48 +0000)]
SSE2 truncating double-to-i.
Review URL: http://codereview.chromium.org/6049008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6269
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 11 Jan 2011 12:45:25 +0000 (12:45 +0000)]
ARM: Add instructions VFPCompareAndSetFlags and VFPCompareAndLoadFlags to macro assembler
Also removed the SBit from the vcmp instruction as it is not part of the instruction.
Review URL: http://codereview.chromium.org/6117003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6268
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 11 Jan 2011 12:38:19 +0000 (12:38 +0000)]
Visit all roots in the UnreachableObjectsFilter.
If an object is only referenced from DOM wrappers, it can only
be seen if all roots are visited.
Review URL: http://codereview.chromium.org/6226004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6267
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 11 Jan 2011 12:36:09 +0000 (12:36 +0000)]
Add reporting of JS heap size limit to GetHeapStatistics.
I found it useful to know inside the heap profiler to avoid
crashes due to heap overflow.
Review URL: http://codereview.chromium.org/6111007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6266
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 11 Jan 2011 12:32:00 +0000 (12:32 +0000)]
ARM: Add deferred stack overflow checks to goto code generation in ARM
lithium when needed.
Review URL: http://codereview.chromium.org/6192005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6265
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 11 Jan 2011 12:24:18 +0000 (12:24 +0000)]
Add source file lithium-codegen-x64.cc. Add class declarations to lithium-codegen-x64.h.
Review URL: http://codereview.chromium.org/6135008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6264
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 11 Jan 2011 12:20:22 +0000 (12:20 +0000)]
Fix ARM debug build by moving an assert.
Review URL: http://codereview.chromium.org/6127005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6263
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 11 Jan 2011 12:10:11 +0000 (12:10 +0000)]
Use HIR accessor for CheckPrototypeMaps to remove the duplicate members in lithium.
Review URL: http://codereview.chromium.org/6221003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6262
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 11 Jan 2011 11:54:37 +0000 (11:54 +0000)]
ARM: use existing transcendental cache stub for tagged inputs.
Review URL: http://codereview.chromium.org/6167004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6261
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 11 Jan 2011 11:47:30 +0000 (11:47 +0000)]
Fix lint
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6260
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 11 Jan 2011 11:44:16 +0000 (11:44 +0000)]
Fix Solaris build. Patch from Ryan Dahl. See codereview.chromium.org/5968004/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6259
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 11 Jan 2011 11:41:01 +0000 (11:41 +0000)]
Remove duplicate members from some LIR instruction by using the HIR accessors.
Remove unused LOperands from keyed-loads. We do not have multiple representations
for load instructions anymore.
Correct number of output operands as for a couple of instructions form 1 to 0
because they do not produce a result (e.g. PushArgument)
Review URL: http://codereview.chromium.org/6158004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6258
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 11 Jan 2011 11:33:52 +0000 (11:33 +0000)]
X64 Crankshaft: Add LTemplatedInstruction and some derived classes to lithium-x64.cc.
Review URL: http://codereview.chromium.org/6128008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6257
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 11 Jan 2011 11:23:40 +0000 (11:23 +0000)]
Add more bailouts for Array.slice over arguments.
Unfortunately, arguments is pretty much the normal JS object. For now
I am adding more sanity checks (in hope that typically arguments
list is rather short.) However it probably requires more systematic
treatment, for example, we could optimistically copy elements until
we meet first hole and in this case resort to JS builtin.
Review URL: http://codereview.chromium.org/6062006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6256
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 11 Jan 2011 07:55:23 +0000 (07:55 +0000)]
Disable crashing mozilla test from bug 1032 on arm with crankshaft
Review URL: http://codereview.chromium.org/6127004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6255
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 10 Jan 2011 21:10:51 +0000 (21:10 +0000)]
Fix presubmit error - really
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6205003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6254
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 10 Jan 2011 21:03:48 +0000 (21:03 +0000)]
Fix presubmit error
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6206003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 10 Jan 2011 19:43:38 +0000 (19:43 +0000)]
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
kmillikin@chromium.org [Mon, 10 Jan 2011 14:16:47 +0000 (14:16 +0000)]
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
ricow@chromium.org [Mon, 10 Jan 2011 13:54:42 +0000 (13:54 +0000)]
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
ager@chromium.org [Mon, 10 Jan 2011 12:24:19 +0000 (12:24 +0000)]
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
fschneider@chromium.org [Mon, 10 Jan 2011 12:19:15 +0000 (12:19 +0000)]
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
sgjesse@chromium.org [Mon, 10 Jan 2011 12:01:28 +0000 (12:01 +0000)]
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
sandholm@chromium.org [Mon, 10 Jan 2011 11:44:54 +0000 (11:44 +0000)]
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
whesse@chromium.org [Mon, 10 Jan 2011 11:31:21 +0000 (11:31 +0000)]
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
sgjesse@chromium.org [Mon, 10 Jan 2011 10:22:26 +0000 (10:22 +0000)]
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
ager@chromium.org [Mon, 10 Jan 2011 08:17:05 +0000 (08:17 +0000)]
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
kmillikin@chromium.org [Mon, 10 Jan 2011 08:05:34 +0000 (08:05 +0000)]
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
ager@chromium.org [Mon, 10 Jan 2011 08:04:30 +0000 (08:04 +0000)]
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
sandholm@chromium.org [Mon, 10 Jan 2011 08:00:48 +0000 (08:00 +0000)]
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
ager@chromium.org [Mon, 10 Jan 2011 07:59:13 +0000 (07:59 +0000)]
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
sgjesse@chromium.org [Mon, 10 Jan 2011 07:37:55 +0000 (07:37 +0000)]
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
ricow@chromium.org [Mon, 10 Jan 2011 07:20:54 +0000 (07:20 +0000)]
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
sgjesse@chromium.org [Fri, 7 Jan 2011 14:27:32 +0000 (14:27 +0000)]
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
ricow@chromium.org [Fri, 7 Jan 2011 13:53:20 +0000 (13:53 +0000)]
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
whesse@chromium.org [Fri, 7 Jan 2011 13:52:36 +0000 (13:52 +0000)]
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
sgjesse@chromium.org [Fri, 7 Jan 2011 13:44:05 +0000 (13:44 +0000)]
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
sandholm@chromium.org [Fri, 7 Jan 2011 13:21:34 +0000 (13:21 +0000)]
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
lrn@chromium.org [Fri, 7 Jan 2011 12:35:42 +0000 (12:35 +0000)]
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
karlklose@chromium.org [Fri, 7 Jan 2011 12:34:39 +0000 (12:34 +0000)]
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
sgjesse@chromium.org [Fri, 7 Jan 2011 11:59:41 +0000 (11:59 +0000)]
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