Commit Graph

15323 Commits

Author SHA1 Message Date
haitao.feng@intel.com
23af599c18 Don't need a temp register for StoreKeyed double
save a gap move

BUG=
R=danno@chromium.org

Review URL: https://codereview.chromium.org/174693002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 02:21:03 +00:00
plind44@gmail.com
6cf22a6041 MIPS: Eliminate extended mode, and other modes clean-up
Port r19800 (4402a23)

Original commit message:
- Merge LanguageMode and StrictModeFlag enums
- Make harmony-scoping depend only on strict mode
- Free some bits on the way
- Plus additional clean-up and renaming

BUG=

Review URL: https://codereview.chromium.org/195693002

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 22:16:56 +00:00
rmcilroy@chromium.org
0896bd70a2 Revert "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."
This reverts r19825 for breaking ia32.debug checks.

Original Review URL: https://codereview.chromium.org/183803022

Update serializer to be able to deal with ool constant pool.

TBR=ulan@chromium.org

Review URL: https://codereview.chromium.org/195373004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 21:46:26 +00:00
rmcilroy@chromium.org
f9288fca53 Update serializer to be able to deal with ool constant pool.
This CL depends on CL https://codereview.chromium.org/179813005/ landing first.

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/190883002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 20:52:00 +00:00
rmcilroy@chromium.org
38732785dd Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool.
The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/183803022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 20:31:23 +00:00
plind44@gmail.com
ab2493e428 MIPS: Mode clean-up pt 1: rename classic/non-strict mode to sloppy mode.
Port r19799 (8fb4c93)

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/194613005

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 20:28:28 +00:00
rmcilroy@chromium.org
fadc74ec04 Clean up ARM mov 32bit immediate code in preparation for out of line constant pool.
R=rodolph.perfetta@arm.com, ulan@chromium.org

Review URL: https://codereview.chromium.org/138503002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 20:17:02 +00:00
plind44@gmail.com
5d473db176 MIPS: Cleanup some of the range uses in ModI/DivI.
Port r19796 (2b8ff32)

BUG=v8:3204
LOG=y
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/194863004

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 19:04:14 +00:00
dslomov@chromium.org
8af219477a Revert "Reland "Enable Object.observe by default""
This reverts commit r19736 for breaking browser_tests on ChromiumOS.

TBR=rossberg@chromium.org,rafaelw@chromium.org

Review URL: https://codereview.chromium.org/195603002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 18:36:15 +00:00
dslomov@chromium.org
f6dac13dcb Revert "Enable Object.observe by default"
This reverts commit r19734 for breeaking ChromiumOS browser tests.
'OpenSpecialTypes/FileManagerBrowserTest.Test/3' started to time out,
bisecting the roll led to this change.
http://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%282%29/builds/22224

TBR=rafaelw@chromium.org,rossberg@chromium.org
BUG=v8:2409
LOG=Y

Review URL: https://codereview.chromium.org/195123005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 18:15:44 +00:00
baptiste.afsa@arm.com
59914900f3 A64: Tidy up a few TODOs.
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/195363003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 17:31:40 +00:00
m.m.capewell@googlemail.com
6f1adba226 A64: UseRegisterAtStart for rhs of LMulS
BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/191283002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 17:12:34 +00:00
rossberg@chromium.org
85800eff3f Fix issue with getOwnPropertySymbols and hidden properties
When getting the symbols of an object we need to ignore the hidden
properties of the prototype object since the hidden properties are
represented by a single string key and we will not include that hidden
string in the found names.

BUG=350864
LOG=Y
R=rossberg@chromium.org

Review URL: https://codereview.chromium.org/192883005

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 16:46:35 +00:00
marja@chromium.org
534245c9a5 Move ParseArguments to ParserBase and add tests.
Notes:
- PreParser didn't produce "too_many_arguments"; now it does.
- The argument count in the error message was wrong; fixed it.

BUG=v8:3126
LOG=N
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/194503004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 16:30:47 +00:00
rossberg@chromium.org
94b5180db0 API support for promises
R=svenpanne@chromium.org
BUG=

Review URL: https://codereview.chromium.org/194663003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 16:17:20 +00:00
ulan@chromium.org
5b5cd79a79 Fix kraken/oscillator performance regression after r19635.
Evict previously optimized code after new optimization.

BUG=v8:3202
LOG=N
R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/189263009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 15:50:41 +00:00
baptiste.afsa@arm.com
b27e6d02be A64: Tidy up a couple of TODOs.
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/189883006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 15:50:01 +00:00
ulan@chromium.org
0b7d4778b8 Invalidate OS-specific datetime cache on configuration change notification
When V8 is informed that the system's date time configuration has changed,
it should also drop its OS-specific caches of time zone information

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/193933002

Patch from James Robinson <jamesr@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 15:46:56 +00:00
m.m.capewell@googlemail.com
7a8ccc0bdf A64: Improve constraints for StoreNamedField
Improve register constraints for cases that don't need write barriers, and
remove TODOs.

BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/189373006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 15:46:31 +00:00
baptiste.afsa@arm.com
797c75e7b1 A64: Debug code should assert on unexpected situation.
R=jochen@chromium.org
BUG=

Review URL: https://codereview.chromium.org/184533002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 15:41:27 +00:00
marja@chromium.org
cf820126b9 Move ParseObjectLiteral to ParserBase.
BUG=v8:3126
LOG=N
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/192993002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 15:40:41 +00:00
dcarney@chromium.org
62fc099334 fix bad access check check
R=verwaest@chromium.org

BUG=

Review URL: https://codereview.chromium.org/195163002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 15:12:47 +00:00
baptiste.afsa@arm.com
5b662703ab A64: Add and use a double register which holds the 0.0 value.
This patch also modify the crankshaft allocatable double registers because
we need this register to be callee saved to be efficient.

R=jochen@chromium.org

Review URL: https://codereview.chromium.org/190663009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 15:03:36 +00:00
dslomov@chromium.org
5961614702 Revert "Enable concurrent sweeping."
This reverts commit r19792 for breaking ARM tests.

TBR=hpayer@chromium.org

Review URL: https://codereview.chromium.org/194553003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 14:59:19 +00:00
rossberg@chromium.org
34ac7d13ed Work around Windows name clobbering
TBR=dslomov@chromium.org
BUG=

Review URL: https://codereview.chromium.org/194753006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 14:56:42 +00:00
rossberg@chromium.org
8e3f3cee9e Eliminate extended mode, and other modes clean-up
- Merge LanguageMode and StrictModeFlag enums
- Make harmony-scoping depend only on strict mode
- Free some bits on the way
- Plus additional clean-up and renaming

R=ulan@chromium.org
BUG=

Review URL: https://codereview.chromium.org/181543002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 14:41:22 +00:00
rossberg@chromium.org
3f702d4bf9 Mode clean-up pt 1: rename classic/non-strict mode to sloppy mode
R=mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/177683002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 14:39:08 +00:00
yangguo@chromium.org
6e1507331e Fix bug in constant folding object comparisons.
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/195063002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 13:34:01 +00:00
bmeurer@chromium.org
4ac0876a8c Cleanup some of the range uses in ModI/DivI.
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/191293013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 11:57:27 +00:00
svenpanne@chromium.org
bd96b9ffce Updated constants.
No idea when they got out-of-sync...

TBR=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/194953002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 11:56:04 +00:00
hpayer@chromium.org
d9090c0284 Do not run AddInstructionChangesNewSpacePromotion test in release mode.
BUG=
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/194663004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 11:53:40 +00:00
yangguo@chromium.org
dda0aa88b0 Revert "Mark mjsunit/string-case as flaky."
This reverts r19760 since the issue has been fixed in r19755.

R=dslomov@google.com, dslomov@chromium.org
BUG=v8:3208
LOG=N

Review URL: https://codereview.chromium.org/194823002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 11:38:53 +00:00
hpayer@chromium.org
fd2f351237 Enable concurrent sweeping.
BUG=
R=jochen@chromium.org

Review URL: https://codereview.chromium.org/166683002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 11:37:53 +00:00
yangguo@chromium.org
c865b1351a Do not overwrite already optimized code.
BUG=
R=ulan@chromium.org

Review URL: https://codereview.chromium.org/189603006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 11:37:02 +00:00
hpayer@chromium.org
9819cfd29c Make sure tagged binary op instructions change new space promotion.
BUG=
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/194883003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 11:36:55 +00:00
rossberg@chromium.org
dc14b1648c Silence Win warnings
TBR=bmeurer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/194893002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 10:53:13 +00:00
rossberg@chromium.org
8b0e0442bb PromiseCoerce should ignore primitive values.
PromiseCource(x) should return "not a thenable" if Type(x) is not Object
even if x.then exists.

BUG=347095
LOG=Y
R=rossberg@chromium.org

Review URL: https://codereview.chromium.org/194403002

Patch from Yutaka Hirano <yhirano@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 10:41:18 +00:00
mvstanton@chromium.org
819d9f62d0 Fix for 350887: CHECK failure on new_length->IsSmi()
In ElementsAccessorBase::SetLengthImpl for a dictionary array, we try to
optimize setting array length if the new length is a smi. However, we
refuse to set an array length to less than the index of the highest
non-configurable array element. This index may be outside of smi range.

Handle this case accordingly.

BUG=350887
LOG=N
R=dslomov@chromium.org

Review URL: https://codereview.chromium.org/194803002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 10:30:10 +00:00
rossberg@chromium.org
9abfab09fa Types: cache lub bitset to avoid heap access
R=verwaest@chromium.org
BUG=

Review URL: https://codereview.chromium.org/186743002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 10:28:38 +00:00
jochen@chromium.org
364c02e738 Fix compilation on win after r19784
TBR=dcarney@chromium.org
BUG=

Review URL: https://codereview.chromium.org/194703002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 09:35:24 +00:00
jochen@chromium.org
00ba711658 Use a per-isolate cache for the date object JS bits
The old per-context cache made it difficult for the embedder to notify
v8 of date/time configuration changes. The embedder had to enter all
contexts for the isolate and notify v8 for each context.

With the new per-isolate cache, the embedder only needs to notify v8
once per isolate.

BUG=348856
LOG=y
R=dcarney@chromium.org, ulan@chromium.org
TEST=cctest/test-date

Review URL: https://codereview.chromium.org/189913023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 09:04:14 +00:00
titzer@chromium.org
91a2aa6a2c Add MacroAssembler::Move(reg, immediate) on IA32.
BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/188463003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 08:52:48 +00:00
bmeurer@chromium.org
a7ead16719 Really skip dead blocks in GVN
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/194413002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 08:14:38 +00:00
machenbach@chromium.org
b5f3020caa Prepare push to trunk. Now working on version 3.25.8.
R=dslomov@chromium.org
TBR=dslomov@chromium.org

Review URL: https://codereview.chromium.org/194493002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 07:52:05 +00:00
haitao.feng@intel.com
7d64ff66c3 Refactor lithium operand declaration a little bit.
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/186543002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 02:55:06 +00:00
plind44@gmail.com
fe909b47ea MIPS: Reland "Handle non-power-of-2 divisors in division-like operations".
Port r19749 (4880ed9)

Original commit message:
Fixed the flooring div bug and added a test case.

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/192743006

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 19:50:36 +00:00
rmcilroy@chromium.org
a199ba80ef Differentate between code target pointers and heap pointers in constant pools.
Separate out code target pointers from normal heap pointer entries in constant
pool arrays so that the GC can correctly relocate these pointers using the
appropriate mechanism.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/183883011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 19:05:43 +00:00
rmcilroy@chromium.org
9cfd807cba Special case the recording of constant pool entries in the slot buffer.
This CL enables RelocInfo pointers which live in the constant pool to be treated
as normal pointers by the slot buffer, avoiding the requirement of creating fake
RelocInfo objects during UpdateSlots() in order to update these slots.  This
is possible because constant pool entries are just pointers and don't require
the RelocInfo machinary to be updated.

EmbeddedObject constant pool entries can be added untyped to the slot buffer,
while code targets are still typed in order to correctly update the target
address based on the relocated code object.

Note: this is required in order to enable OOL constant pool support on Arm, but
should be benifitial for the current inline constant pool used by Arm code.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/179813005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 18:47:57 +00:00
rmcilroy@chromium.org
d625eb34be Deal with filler object map pointers in the ool constant pool correctly.
This CL updates
StoreBuffer::FindPointersToNewSpaceOnPage such that it skips  constant pool array objects.  Constant Pool Arrays should never have pointers to the new space and might contain pointers to the FreeSpace map (e.g., due to code
being generated which needs to do a map-check on a FreeSpace object) which would incorrectly treated as a filler object if processed by FindPointersToNewSpaceOnPage().

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/183553003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 18:44:19 +00:00
jacob.bramley@arm.com
19a04c3a69 A64: Use a scope utility to allocate scratch registers.
This replaces Tmp0() and Tmp1() with a more flexible scratch register
pool. A scope-based utility can temporarily acquire registers from this
pool as needed.

We no longer have to worry about whether to use Tmp0(), Tmp1() or
something else; the scope can just get the next available scratch
register.

BUG=
R=jochen@chromium.org, rmcilroy@chromium.org

Review URL: https://codereview.chromium.org/164793003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 16:25:15 +00:00