erik.corry@gmail.com [Wed, 2 Feb 2011 14:14:55 +0000 (14:14 +0000)]
Fix code generation bug on ARM in classic codegen.
Review URL: http://codereview.chromium.org/6246045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6579
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 2 Feb 2011 14:08:30 +0000 (14:08 +0000)]
Fix x64 DEBUG build.
TBR=whesse@chromium
Review URL: http://codereview.chromium.org/6349049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6578
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 2 Feb 2011 14:02:58 +0000 (14:02 +0000)]
Fix bug in object literals with large array indexes as strings.
Review URL: http://codereview.chromium.org/6410028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6577
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 2 Feb 2011 13:55:29 +0000 (13:55 +0000)]
Partial fix for V8 issue 1079.
Record a safepoint with a deoptimization id for throw in optimized code. We
don't seem to much care what the AST ID is because we will not be using it
for lazy deoptimization (throw doesn't return to the point of throw). For
hygiene we use the actual ID of the throw expression. Throw is no longer a
control-flow instruction, but it's followed by an unconditional abnormal
exit. This is required to insert a simulate between the throw and the exit.
Make our optimized treatment of Function.prototype.apply act like a call and
have side effects. This ensures that it will get a lazy deoptimization
environment. Use that deoptimization ID in the safepoint for the call.
Deleting a property was also missing a deoptimization ID, though there was a
deoptimization environment assigned to the instruction. Record the
environment and use the deoptimization ID at the safepoint.
Review URL: http://codereview.chromium.org/6250105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6576
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 2 Feb 2011 13:32:18 +0000 (13:32 +0000)]
GDBJIT: emit .eh_frame section on x64.
This enables proper stack unwinding on x64.
Currently this requires V8 to be compiled without snapshot and --gdbjit-full to be enabled.
Original patch by Sanjoy Das (http://codereview.chromium.org/6371011/)
Review URL: http://codereview.chromium.org/6250104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6575
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 2 Feb 2011 13:31:52 +0000 (13:31 +0000)]
A MessageObject is a purely internal object to hold information about
an error message that needs to be generated and reported. This change
hides all of the error information from JavaScript code so user
callbacks cannot get hold of it.
Review URL: http://codereview.chromium.org/6368051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6574
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 2 Feb 2011 12:54:58 +0000 (12:54 +0000)]
Fix Math.pow(-0, 0.5) and Math.pow(-0, -0.5). These are not equal to sqrt(-0) and 1/sqrt(-0). Add tests for these cases. Fixes V8 issue 1088.
BUG=1088
TEST=test/mjsunit/math-pow.js
Review URL: http://codereview.chromium.org/6368050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6573
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 2 Feb 2011 11:58:24 +0000 (11:58 +0000)]
Extract platform independent part of RevertStackCheckCode.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6349046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6572
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 2 Feb 2011 10:30:41 +0000 (10:30 +0000)]
ARM: Refactor duplicated floating point code in type recording binary operation stub.
Review URL: http://codereview.chromium.org/6334045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6570
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 2 Feb 2011 09:52:57 +0000 (09:52 +0000)]
Require typed input representation for HTypeof hydrogen instruction.
BUG=http://code.google.com/p/chromium/issues/detail?id=71647
TEST=test/mjsunit/regress/regress-71647.js
Review URL: http://codereview.chromium.org/6410025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6566
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 2 Feb 2011 09:40:09 +0000 (09:40 +0000)]
This fixes the issue with the deoptimizer trashing the reloc info before patching the code.
If we, immediately after the deoptimization, but before actually
running the patched code, get a compacting GC, the addresses from the
calls might no longer be valid.
I have validated that this works by patching the existing code to
always do a compacting gc after we finish deoptimizing. I will create
a real regression test for this, but this includes additional code for
allowing us to force a deopt/opt from javascript test code. I will
land this in a seperate change.
Review URL: http://codereview.chromium.org/6349043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6565
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 2 Feb 2011 08:14:06 +0000 (08:14 +0000)]
Revert revision 6555 as it causes win32 debug to fail.
Review URL: http://codereview.chromium.org/6349044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6564
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 1 Feb 2011 20:47:53 +0000 (20:47 +0000)]
Switch from template functions overloading to partial template specialization.
This should fix compilation on old GCC.
Review URL: http://codereview.chromium.org/6350012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6563
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peterhal@chromium.org [Tue, 1 Feb 2011 20:08:01 +0000 (20:08 +0000)]
Revert "Fix bugs 992 and 1083"
This reverts commit 6561 as the new assert caused failures in sputnik.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6562
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peterhal@chromium.org [Tue, 1 Feb 2011 17:08:14 +0000 (17:08 +0000)]
Fix bugs 992 and 1083
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 tests.
Fixes errors in object-define-property test
Don't normalize the JSGlobalProxy. Gets webkit http/tests/security/xss-DENIED-defineProperty.html working.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6561
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 1 Feb 2011 16:38:25 +0000 (16:38 +0000)]
ARM: Add multiplication and modulus to the type recording binary operation stub.
For now the smi part only handles power of two right hand side operands.
Fixed a bug when loading floating point value into core registers with VFP supported.
Review URL: http://codereview.chromium.org/6312059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6560
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 1 Feb 2011 16:20:04 +0000 (16:20 +0000)]
Fix Xcode project.
TBR=ager@chromium.org
Code review URL: http://codereview.chromium.org/6286016/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6559
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 1 Feb 2011 16:08:44 +0000 (16:08 +0000)]
Fix error message name.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6558
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 1 Feb 2011 14:33:23 +0000 (14:33 +0000)]
Fix control flow resolution bug in lithium register allocator.
Review URL: http://codereview.chromium.org/6312057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6556
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 1 Feb 2011 13:29:37 +0000 (13:29 +0000)]
Compare JSObjects by identity immediately.
When invoking EQUALS JS builtin, 1st argument is passed as a receiver and
if it's a global object, it gets overwritten with global proxy object and
thus one gets incorrect results.
BUG=v8::1082
Review URL: http://codereview.chromium.org/6287018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6555
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 1 Feb 2011 12:39:02 +0000 (12:39 +0000)]
Temporary disable comparison of optimizability of code objects in some cases.
With crankshaft, a code object can change its optimizability: it can start as
optimizable code object, but later we can find out it was a bad idea to
optimize it. Alas, currently we don't have a proper event to communicate
this back to logger. Hence we temporary allow a code object to be viewed
as optimizable judging from logs while being unoptimizable judging from
heap traversal.
Review URL: http://codereview.chromium.org/6250054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6553
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 1 Feb 2011 12:31:16 +0000 (12:31 +0000)]
Avoid callbacks to user code during error formatting in a couple of
other situations.
Do not use overwritten Object.prototype.hasOwnProperty and
Array.prototype.pop. Do not use split and join in the error formatting
implementation. They are too big to control and their generality is
not needed.
Review URL: http://codereview.chromium.org/6287041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6552
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 1 Feb 2011 11:18:45 +0000 (11:18 +0000)]
Change OSR stack check patching to use the stack check table.
Change OSR stack check patching to use the stack check table to iterate over the calls to stack guards platform independent. Introduce Deoptimizer::PatchStackCheckAt for each platform to perform the platform specific patch at a given pc.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6392027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6551
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 31 Jan 2011 22:35:27 +0000 (22:35 +0000)]
Fix V8 bug 1084: allow "\0" in strict mode as valid escape sequence.
http://code.google.com/p/v8/issues/detail?id=1084
Code Review URL: http://codereview.chromium.org/6386014/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6550
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 31 Jan 2011 14:54:53 +0000 (14:54 +0000)]
ArraySplice builtin should return empty array and not alter receiver if invoked with no arguments.
Review URL: http://codereview.chromium.org/6357025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6540
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 31 Jan 2011 13:49:15 +0000 (13:49 +0000)]
Perform security checks before fetching the value in Object.getOwnPropertyDescriptor.
Review URL: http://codereview.chromium.org/6386022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6539
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 31 Jan 2011 13:33:09 +0000 (13:33 +0000)]
Add entries for build products of OOM dump utility into .gitignore.
Review URL: http://codereview.chromium.org/6409008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6538
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 31 Jan 2011 12:37:19 +0000 (12:37 +0000)]
Fix typo in Changelog, date in version.cc.
Review URL: http://codereview.chromium.org/6287016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6535
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 31 Jan 2011 12:36:54 +0000 (12:36 +0000)]
Fix a bug in the placement of minus-zero checks and in GVN.
1. The placement of checks for negative zero has to be computed after
all conversion instructions have been inserted. I separated the code
into its own phase.
2. GVN need to take instruction flags into account when comparing
instructions for redundancy.
Review URL: http://codereview.chromium.org/6260035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6534
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 31 Jan 2011 10:25:44 +0000 (10:25 +0000)]
Prepare push to trunk. Now working on version 3.1.1.
Review URL: http://codereview.chromium.org/6347035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6532
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 31 Jan 2011 10:16:28 +0000 (10:16 +0000)]
ARM: Add support for DoMathAbs with double inputs.
Adds vabs instruction to simulator, assembler, disassembler and tests.
BUG=none
TEST=Added to cctest.
Review URL: http://codereview.chromium.org/6366016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6531
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 31 Jan 2011 09:58:12 +0000 (09:58 +0000)]
Adding vendor prefix to Locale class (becoming v8Locale) to minimize risk of future changes.
Review URL: http://codereview.chromium.org/6332022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6530
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 28 Jan 2011 17:24:10 +0000 (17:24 +0000)]
Fix bug in tail call of builtin in the ToNumber stub on ARM.
Review URL: http://codereview.chromium.org/6255017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6529
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 28 Jan 2011 15:07:04 +0000 (15:07 +0000)]
Revert "Add custom typed ICs for pixel array loads. "
This change caused failures in (out of bounds) keyed loads of strings.
TBR'd.
Review URL: http://codereview.chromium.org/6298019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6528
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 28 Jan 2011 14:18:26 +0000 (14:18 +0000)]
Introduce ToNumber stub and use it in non-optimized code for to-number conversion.
This stub is used for increment/decrement operations and unary plus.
The resulting code is more compact and faster than calling a JS builtin.
Review URL: http://codereview.chromium.org/6350021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6527
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 28 Jan 2011 14:06:20 +0000 (14:06 +0000)]
Add custom typed ICs for pixel array loads.
Review URL: http://codereview.chromium.org/6323002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6526
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 28 Jan 2011 13:41:19 +0000 (13:41 +0000)]
Clarify some details of global objects implementation.
Review URL: http://codereview.chromium.org/6386011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6525
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 28 Jan 2011 10:33:10 +0000 (10:33 +0000)]
Avoid using Function.prototype.call in a number of places in our
builtins files. We should always use %_CallFunction for a couple of
reasons: it cannot be overwritten and it does not wrap basic types in
wrapper objects.
Review URL: http://codereview.chromium.org/6349018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6524
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 28 Jan 2011 07:55:43 +0000 (07:55 +0000)]
Prepare push to trunk. Now working on version 3.1.0.
Review URL: http://codereview.chromium.org/6286014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6520
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 27 Jan 2011 18:21:07 +0000 (18:21 +0000)]
Revert "Unification: introduce ExternalReference::pending_exception_address()."
This reverts r6518.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6359015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6519
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 27 Jan 2011 18:10:45 +0000 (18:10 +0000)]
Unification: introduce ExternalReference::pending_exception_address().
Review URL: http://codereview.chromium.org/6335016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6518
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 27 Jan 2011 16:41:43 +0000 (16:41 +0000)]
Implement DoGlobalReceiver and DoCheckFunction lithium instructions on x64
Review URL: http://codereview.chromium.org/6277024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6517
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 27 Jan 2011 16:17:13 +0000 (16:17 +0000)]
Do not set result_ prematurely.
If ConfigureGlobalObjects below will fail, we still decide that initialidation
went smoothly as we check emptiness of result_ handle to see if initialisation
failed or not.
Review URL: http://codereview.chromium.org/6347021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6516
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 27 Jan 2011 14:25:37 +0000 (14:25 +0000)]
Better name for ShouldReturnException which actually should be ShouldReportException.
Review URL: http://codereview.chromium.org/6368019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6515
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 27 Jan 2011 14:04:07 +0000 (14:04 +0000)]
Cleanup unused code from the type oracle.
Review URL: http://codereview.chromium.org/6135004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6514
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 27 Jan 2011 13:17:34 +0000 (13:17 +0000)]
Fix id for HandleScope::DeleteExtensions and Factory::arguments_marker() in serializer.
Review URL: http://codereview.chromium.org/6357020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6513
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 27 Jan 2011 13:02:48 +0000 (13:02 +0000)]
X64 Crankshaft: Added yet more operations.
Added operations:
DoStoreGlobal
DoLoadNamedField
DoStoreNamedField
DoCheckPrototypeMaps
DoEnterInlined
Review URL: http://codereview.chromium.org/6308019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6512
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 27 Jan 2011 12:31:24 +0000 (12:31 +0000)]
Fix test expectations from r6509
Review URL: http://codereview.chromium.org/6286011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6511
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 27 Jan 2011 11:58:31 +0000 (11:58 +0000)]
X64 Crankshaft: Reapply reverted operations with DoLoadGlobal disabled.
Review URL: http://codereview.chromium.org/6397002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6510
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 27 Jan 2011 11:55:58 +0000 (11:55 +0000)]
Change an invalid assert
BUG=v8:1079
Review URL: http://codereview.chromium.org/6332019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6509
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 27 Jan 2011 08:35:39 +0000 (08:35 +0000)]
Fix reintroduction of global variables that have been deleted.
Deletion of global properties puts 'the hole' in the global property
cell and updates the property details in the property dictionary with
the information that the property has been deleted. When setting
global properties that have been deleted in generated code we just
store the new value in the global property cell. This does not update
the property details in the property dictionary. Therefore, it looks
like the property is not there eventhough it was just reintroduced.
Perform 'the hole' checks in generated code for global property stores
and bail out of ICs and optimized code if storing to a property cell
that contains 'the hole'.
Review URL: http://codereview.chromium.org/6306014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6508
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Thu, 27 Jan 2011 03:22:08 +0000 (03:22 +0000)]
ARM: Implement DoInstanceOfAndBranch in the lithium code generator.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6364007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6507
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 26 Jan 2011 21:15:46 +0000 (21:15 +0000)]
ARM: Try to fix broken commit r6504
Commit contained wrong assert and was missing call to the runtime system for MUL.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6338019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6506
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 26 Jan 2011 20:48:48 +0000 (20:48 +0000)]
Refactor recording of safepoints.
Refactor SafepointTableBuilder::DefineSafepoint and ARM LCodeGen::RecordSafepoint to use an enum for different kinds of safepoints. This change removes a lot of duplicated code and makes it easier to include new kinds of safepoints in the future. The remaining variants of LCodeGen::RecordSafepoint remain as a convinient way to record common safepoint kinds.
BUG=http://code.google.com/p/v8/issues/detail?id=1043
TEST=none
Review URL: http://codereview.chromium.org/6341008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6505
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 26 Jan 2011 20:25:33 +0000 (20:25 +0000)]
ARM: Add multiplication to the type recording binary operation stub
Review URL: http://codereview.chromium.org/6391004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6504
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Wed, 26 Jan 2011 19:21:46 +0000 (19:21 +0000)]
Strict mode eval/arguments LHS.
Review URL: http://codereview.chromium.org/6335013/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6503
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Wed, 26 Jan 2011 18:15:43 +0000 (18:15 +0000)]
Compress Variable class.
Link: http://codereview.chromium.org/6246019/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6502
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Wed, 26 Jan 2011 18:10:26 +0000 (18:10 +0000)]
Strict mode: function constructor tests.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6501
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 26 Jan 2011 17:32:02 +0000 (17:32 +0000)]
Remove the HInstruction utilities taking flag mask arguments.
It is a type error to treat a flag (an enum) as if it were a flag mask (an
int derived from shifting a bit by the enum value). It is error prone to
have functions that take flag mask arguments because they will silently
accept flags.
Review URL: http://codereview.chromium.org/6373011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6500
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 26 Jan 2011 17:30:22 +0000 (17:30 +0000)]
Use more detailed compilation info for inlined functions.
Construct the statically-known compilation info for inlined functions using
the target closure (which knows about its scope chain) and not from the
shared function info (which doesn't).
Review URL: http://codereview.chromium.org/6397004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6499
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 26 Jan 2011 15:28:17 +0000 (15:28 +0000)]
Fix issue 1076 by resetting labels of switch-clauses before use.
If we compile a function literal twice with the full code generator,
we must make sure that the labels embedded in the AST are reset.
BUG=1076
Review URL: http://codereview.chromium.org/6339014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6496
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 26 Jan 2011 15:16:13 +0000 (15:16 +0000)]
Fix another message object leak.
Review URL: http://codereview.chromium.org/6269021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6495
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 26 Jan 2011 15:02:02 +0000 (15:02 +0000)]
Fix indentation.
TBR=serya@chromium.org
Review URL: http://codereview.chromium.org/6260021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6494
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 26 Jan 2011 14:51:21 +0000 (14:51 +0000)]
Change the default implementation of DataEquals for Hydrogen instructions.
The former default was true. The new default is false and the default
implementation is UNREACHABLE so it asserts in debug builds. The function
is overridden in all concrete instruction classes that might have the flag
kUseGVN set.
Review URL: http://codereview.chromium.org/6255013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6493
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 26 Jan 2011 13:54:25 +0000 (13:54 +0000)]
X64 Crankshaft: Fix compilation error on Windows X64.
Review URL: http://codereview.chromium.org/6338018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6492
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 26 Jan 2011 13:37:51 +0000 (13:37 +0000)]
Clean up Hydrogen's HLoadFunctionPrototype.
This instruction was setting an incorrect collection of Changes/Depends
flags.
Review URL: http://codereview.chromium.org/6399002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6491
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 26 Jan 2011 13:26:36 +0000 (13:26 +0000)]
ARM: Fix the test expectations
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6253013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6490
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 26 Jan 2011 13:24:19 +0000 (13:24 +0000)]
X64 Crankshaft: Remove relative jump to deoptimization code. Fixes logical error, and compilation error on Windows.
Review URL: http://codereview.chromium.org/6310018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6489
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 26 Jan 2011 12:31:35 +0000 (12:31 +0000)]
ARM: Fix the type recording binary operation stub subtract
Failure exposed by Sputning tests where the generic case tried to string add for subtract.
Review URL: http://codereview.chromium.org/6339013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6488
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 26 Jan 2011 10:25:43 +0000 (10:25 +0000)]
Disable all code motion on the final optimization attempt.
Before, we disabled code motion for check instructions on the final
optimization attempt. It is unsafe to prevent movement of check
instructions but to allow movement of instructions that assume the checks
were performed.
Review URL: http://codereview.chromium.org/6378012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6485
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 26 Jan 2011 09:52:25 +0000 (09:52 +0000)]
ARM: Make the ARM hardware builder green
Fix a bug in the --debug-code alignment check in the C entry stub.
Don't force the --debug-code flag in the ARM disassembler tests. The framework does support passing flags and the test runner will when running tests in debug mode.
Skip some deserialization tests which crashes from time to time.
Review URL: http://codereview.chromium.org/6393007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6484
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 26 Jan 2011 08:32:54 +0000 (08:32 +0000)]
ARM: Merging constants in simulator and assembler header files and other cleanup.
First stab at a general ARM cleanup patch. It merges ARM constants so that they can be used across simulator, assembler and disassembler, and tidies up some syntax and ambiguities.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6274009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6483
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 26 Jan 2011 08:12:56 +0000 (08:12 +0000)]
Minor cleanup: Use MaybeObject instead of bool and Failure** in
stub cache generation.
Review URL: http://codereview.chromium.org/6392003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6480
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 26 Jan 2011 08:03:48 +0000 (08:03 +0000)]
Revert r6543 and r6441.
This fixes a crash in the code generator.
BUG=1074
Review URL: http://codereview.chromium.org/6258020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6479
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 26 Jan 2011 08:00:51 +0000 (08:00 +0000)]
Fix presumbit.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6250031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6478
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 26 Jan 2011 07:44:45 +0000 (07:44 +0000)]
ARM: Change BranchOnSmi/BranchOnNotSmi to JumpIfSmi/JumpIfNotSmi
Review URL: http://codereview.chromium.org/6272019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6477
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 26 Jan 2011 07:41:02 +0000 (07:41 +0000)]
ARM: Add subtract to the type recording binary operation stub.
Review URL: http://codereview.chromium.org/6324013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6476
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 25 Jan 2011 18:42:35 +0000 (18:42 +0000)]
Strict mode object property validation.
Review URL: http://codereview.chromium.org/6335010/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6475
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 25 Jan 2011 17:21:45 +0000 (17:21 +0000)]
Strict mode parameter validation.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6474
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 25 Jan 2011 16:37:18 +0000 (16:37 +0000)]
Revert change 6468: X64 Crankshaft functions added.
Review URL: http://codereview.chromium.org/6260018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6473
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 25 Jan 2011 15:51:10 +0000 (15:51 +0000)]
Support StringLength in hydrogen (similar to ArrayLength).
To avoid deopts a few extra changes were needed:
o Enable megamorphic state for special property loads on
primitives. We used to flip between monomorphic stubs.
o Extract pure string (no string wrapper support) version of the
string length stub.
Review URL: http://codereview.chromium.org/6334015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6472
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 25 Jan 2011 14:52:35 +0000 (14:52 +0000)]
ARM: Initial type recording binary operation stub
This implements the type recording binary operation stub for ARM. This first iteration only supports ADD. Handling of 32-bit integers is currently not implemented but just transitions. The generic case for now delegates to the generic binary operation stub.
Review URL: http://codereview.chromium.org/6342019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6471
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 25 Jan 2011 14:03:20 +0000 (14:03 +0000)]
X64 Crankshaft: Added some functions needed for delta-blue.
Review URL: http://codereview.chromium.org/6262013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6468
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 25 Jan 2011 13:59:23 +0000 (13:59 +0000)]
Prepare push to trunk. Now working on version 3.0.12.
Review URL: http://codereview.chromium.org/6324012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6467
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 25 Jan 2011 13:32:36 +0000 (13:32 +0000)]
Update regression test.
With SVN r6465 (reverting changes to scopes), a regression test for
deleting parameter variables has to change to reflect a semantic
change. It is now again possible to delete parameters from a function
that uses 'with' or 'try...catch'.
Review URL: http://codereview.chromium.org/6307014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6466
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 25 Jan 2011 13:01:45 +0000 (13:01 +0000)]
Revert "Reapply change to with/arguments interaction."
Revert this change again. Somewhat mysteriously we sometimes get empty
contexts that we do not expect in the context chain.
Review URL: http://codereview.chromium.org/6372013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6465
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 25 Jan 2011 12:59:43 +0000 (12:59 +0000)]
Fixed typo in calling Thread::set_name() on freebsd.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6287004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6464
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 25 Jan 2011 12:56:04 +0000 (12:56 +0000)]
Prepend the tools directory to python module path
This works around possible collisions with modules installed in the system
python directories.
See Gentoo Linux bug report:
http://bugs.gentoo.org/349794
Patch by Mike Gilbert <floppymaster@gmail.com>
Review URL: http://codereview.chromium.org/6253009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6463
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 25 Jan 2011 12:50:18 +0000 (12:50 +0000)]
Add compilation guard to new x64-only file, for Mac platform.
Review URL: http://codereview.chromium.org/6249016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6462
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 25 Jan 2011 12:35:06 +0000 (12:35 +0000)]
Adding GC hooks to support LiveObjectList functionality.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6287004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6461
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 25 Jan 2011 12:28:45 +0000 (12:28 +0000)]
Script changes so that we can build debug/release with
liveobjectlist=on/off and objectprint=on/off.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6267007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6460
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 25 Jan 2011 12:21:03 +0000 (12:21 +0000)]
Fix bug 1070: set correct holder for primitive checks.
Code generated for checks starting with primitive receivers skips one step
in the usual prototype checking algorithm, so the holder must always be set.
Not setting the holder did not cause an immediate failure because our
primitives have additional hidden prototypes before the real prototypes.
These extra objects in the chain usually contain no properties and so
allowed the right holders to be selected.
Review URL: http://codereview.chromium.org/6353014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6459
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 25 Jan 2011 12:17:02 +0000 (12:17 +0000)]
Do not shuffle parameters when doing sub on ia32 and arm.
Review URL: http://codereview.chromium.org/6283012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6458
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 25 Jan 2011 12:14:56 +0000 (12:14 +0000)]
IA32: Refactor common string add code.
Review URL: http://codereview.chromium.org/6279011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6457
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 25 Jan 2011 11:33:03 +0000 (11:33 +0000)]
Implement x64 lithium instructions DoGlobalObject and DoSub
Review URL: http://codereview.chromium.org/6324011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6456
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 25 Jan 2011 11:30:47 +0000 (11:30 +0000)]
X64 Crankshaft: Added a bunch of operations.
Review URL: http://codereview.chromium.org/6366010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6455
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 25 Jan 2011 11:25:30 +0000 (11:25 +0000)]
Disable MSVC warning that default array initializers now work properly.
Review URL: http://codereview.chromium.org/6272017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6454
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 25 Jan 2011 10:35:57 +0000 (10:35 +0000)]
Port to ARM and x64: Record the lazy deoptimization environmnent only at LLazyBailout-instructions.
This is a port of the change http://codereview.chromium.org/6348016/
to ARM and x64 platform.
Review URL: http://codereview.chromium.org/6350011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6453
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 25 Jan 2011 10:10:36 +0000 (10:10 +0000)]
Port new version of ParallelMove's LGapResolver to X64.
Review URL: http://codereview.chromium.org/6366003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6452
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 25 Jan 2011 08:59:16 +0000 (08:59 +0000)]
Port changes from x64 deoptimizer to ia32 and remove commented out code from last patch.
Review URL: http://codereview.chromium.org/6368013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6451
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00