Commit Graph

18602 Commits

Author SHA1 Message Date
jarin@chromium.org
00e90b7e6e Remove deoptimization by patching the call stack.
We go back to patching the code for lazy deoptimization because ICs need the on-stack return address to read/update the IC address/state.

The change also fixes bunch of tests, mostly by adding more deoptimization points.

(We still need to add code to ensure lazy deopt patching does not overwrite ICs and other lazy deopts; this is coming next.)

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 09:21:39 +00:00
rossberg@chromium.org
b2a8ad2c69 Fix over-long line
TBR=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 09:11:57 +00:00
bmeurer@chromium.org
72bf3ad950 [turbofan] Remove extra attributes from SimplifiedOperatorBuilder methods.
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 09:09:45 +00:00
rossberg@chromium.org
be33a79d21 Fixpoint typing has to consider all imprecise nodes
R=jarin@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 09:03:59 +00:00
v8-autoroll@chromium.org
fa3c92bd48 [Auto-roll] Bump up version to 3.29.63.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-13 09:31:36 +00:00
machenbach@chromium.org
f7ed963a9e Whitespace change to kick off bots.
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-13 07:35:04 +00:00
yangguo@chromium.org
a5027daf1c Revert "Remove V8_HOST_CAN_READ_UNALIGNED and its uses."
This reverts r23915.

TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 21:11:09 +00:00
arv@chromium.org
6b660f2812 ES6: String(symbol) should work like symbol.toString
Using String as a function and passing a symbol should return the
same  value as if Symbol.prototype.toString was called.

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-string-constructor-string-value

BUG=v8:3554
LOG=Y
R=rossberg@chromium.org, rossberg

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 16:17:27 +00:00
ulan@chromium.org
c44a69d985 Revert r23916, r23917 for breaking 64-bit tests.
"Use unsigned type bitsets to limit undefined behaviour".

TBR=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 16:13:05 +00:00
ulan@chromium.org
dcf84d88b7 [turbofan] Use correct register_save_area_size with OOL constant pool.
Follow-up to r23843.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 15:09:51 +00:00
arv@chromium.org
477b75f1cb Arrow functions: Cleanup handling of the prototype property
The old code did not work correctly in case of optimizations. I
found this out when implementing concise methods and we now plumb
through the function kind so we know what kind of Map to create for
the function.

BUG=v8:2700
LOG=y
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 15:07:43 +00:00
v8-autoroll@chromium.org
cfcad1d303 [Auto-roll] Bump up version to 3.29.62.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 15:01:46 +00:00
mstarzinger@chromium.org
1823249261 Cleanup and simplify TurboFan generic lowering.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 14:49:07 +00:00
rossberg@chromium.org
c90c951b6c Fix tests
TBR=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 13:36:08 +00:00
rossberg@chromium.org
98dc857e2f Use unsigned type bitsets to limit undefined behaviour
R=bmeurer@chromium.org, svenpanne@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 13:03:53 +00:00
yangguo@chromium.org
a5b4beffd0 Remove V8_HOST_CAN_READ_UNALIGNED and its uses.
R=jkummerow@chromium.org
BUG=chromium:412967
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 12:42:02 +00:00
bmeurer@chromium.org
578aeb0b0c [turbofan] Some common operators are globally shared singletons.
TEST=compiler-unittests,cctest
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 11:59:26 +00:00
mstarzinger@chromium.org
9a2ca5ed15 Enable typed pipeline on ARM and ARM64 for TurboFan.
R=bmeurer@chromium.org
BUG=v8:3553
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 11:32:05 +00:00
sigurds@chromium.org
4ec63ff97e Reland
- "Switch inlining to use simplified instead of machine loads."
- "Add copy support in inliner."

Reland fixes:
 - size_t conversion for 64bit arches
 - Don't call front() on empty vector
   (triggers assertion on windows)
 - turbo_inlining now implies turbo_types, as
   it requires simplified lowering.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 11:06:37 +00:00
jarin@chromium.org
e401262400 Reland "Change the order of arguments of the (One|Two)ByteSeqStringSetChar intrinsic."
This relands commit r23899.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 10:58:43 +00:00
yangguo@chromium.org
d6c7c3f875 Simplify test-debug/ProcessDebugMessagesThreaded and add debug output.
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 10:47:32 +00:00
mstarzinger@chromium.org
ab27b867c5 Allow more runtime functions to accept Int32s instead of Smis.
R=yangguo@chromium.org
TEST=mjsunit/array-join

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 10:43:27 +00:00
v8-autoroll@chromium.org
3f1fc7796c [Auto-roll] Bump up version to 3.29.61.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 10:01:31 +00:00
baptiste.afsa@arm.com
bca9d01dc5 [turbofan] Tests and fixes for ARM64 load/store with immediate offset.
R=bmeurer@chromium.org, ulan@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 09:31:26 +00:00
baptiste.afsa@arm.com
42054156ce [turbofan] Fix double register swap in ARM and ARM64 backends.
R=bmeurer@chromium.org, mstarzinger@chromium.org
BUG=v8:3553
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 09:18:43 +00:00
marja@chromium.org
eb19fc013a Add script streaming API.
Blink will use this API to stream script data into V8 as the scripts
load. During loading, V8 can already parse the scripts. They will be then
compiled and executed when the loading is complete.

This is a reincarnation of https://codereview.chromium.org/366153002/
with fixes.

BUG=
R=jochen@chromium.org, rossberg@chromium.org, svenpanne@chromium.org, yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 09:12:08 +00:00
bmeurer@chromium.org
4de58e49fd [arm] Disable --turbo-types by default instead of ignoring the flag.
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 08:50:38 +00:00
jarin@chromium.org
bc0674d0a7 Revert "Change the order of arguments of the (One|Two)ByteSeqStringSetChar intrinsic."
This reverts commit r23899.

TBR=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 08:49:22 +00:00
jkummerow@chromium.org
b4375b77ec Fix Smi vs. HeapObject confusion in HConstants.
Representation and HType should agree with each other.

BUG=chromium:412215
LOG=y
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 08:44:14 +00:00
weiliang.lin@intel.com
9e9328bd56 X87: Eliminate Turbofan shims with CodeFactory
port r23877.

original commit message:

  Turbofan needs a code handle and a CallInterfaceDescriptor. At the same time we spread knowledge about how to create the initial IC code object too widely. Consolidate code creation and unify it with a descriptor via CodeFactory.

BUG=
R=weiliang.lin@intel.com

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 08:43:27 +00:00
jarin@chromium.org
91e97f8371 Change the order of arguments of the (One|Two)ByteSeqStringSetChar intrinsic.
This makes the syntactic order consistent with the evaluation order.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 08:18:29 +00:00
weiliang.lin@intel.com
0ada8cfe03 X87: Added CallInterfaceDescriptors to all code stubs.
port r23854.

original commit message:

  Added CallInterfaceDescriptors to all code stubs. A handful
  of code stubs are too complex to be described this way, and
  they are encoded with the macro
  DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR().

  Along the way:
  * allowed inheritance of CallInterfaceDescriptors.
  * Defined static Register methods for some of the new
    CallInterfaceDescriptors. We could go a lot further here, but
    it doesn't have to be done immediately.
  * Added Representation arrays to some CallInterfaceDescriptors,
    especially where future hydrogen versions of the stubs could
    benefit from this knowledge.

BUG=
R=weiliang.lin@intel.com

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 07:51:39 +00:00
bmeurer@chromium.org
78f3df63c6 [turbofan] Most simplified operators are globally shared singletons.
TEST=compiler-unittests,cctest
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 07:06:50 +00:00
weiliang.lin@intel.com
788c535476 X87: Rename ascii to one-byte where applicable.
port r23840.

original commit message:

  Rename ascii to one-byte where applicable.

BUG=
R=weiliang.lin@intel.com

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 07:02:11 +00:00
weiliang.lin@intel.com
e3ab5b5824 X87: Get CallInterfaceDescriptor directly from CodeStub.
port r23778.

original commit message:

  Get CallInterfaceDescriptor directly from CodeStub.

BUG=
R=weiliang.lin@intel.com

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 06:41:13 +00:00
bmeurer@chromium.org
baa5a2d623 Disable typed pipeline for non-turbofan arch's after r23859.
BUG=
R=bmeurer@chromium.org

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

Patch from Paul Lind <paul.lind@imgtec.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 05:49:01 +00:00
v8-autoroll@chromium.org
e709585e76 [Auto-roll] Bump up version to 3.29.60.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 05:01:15 +00:00
bmeurer@chromium.org
04a5401950 [turbofan] Mark operator constructors as const in MachineOperatorBuilder.
TEST=compiler-unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 04:35:19 +00:00
weiliang.lin@intel.com
ad05a1db17 X87: Initialize CodeStubInterfaceDescriptor in the constructor.
port r23773.

original commit message:

  Initialize CodeStubInterfaceDescriptor in the constructor.

BUG=
R=weiliang.lin@intel.com

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 02:12:15 +00:00
weiliang.lin@intel.com
77e53fc884 X87: Encapsulate megamorphic load/tail-call in hydrogen
port r23772.

original commit message:

  To aid vector-based load ic work, we need to be able to handle
  the megamorphic load case in hydrogen. A simple approach is to
  wrap the probe activity in a hydrogen instruction.

  The instruction is novel in that it always tail-calls away.

BUG=
R=weiliang.lin@intel.com

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

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 01:39:25 +00:00
v8-autoroll@chromium.org
52eadef745 [Auto-roll] Bump up version to 3.29.58.0
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 20:31:35 +00:00
balazs.kilvady@imgtec.com
9f44180db7 MIPS: Turbofan needs a code handle and a CallInterfaceDescriptor.
Port r23877 (bd09296)

Original commit message:
At the same time we spread knowledge about how to create the initial IC code object too widely. Consolidate code creation and unify it with a descriptor via CodeFactory.

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 17:02:28 +00:00
mstarzinger@chromium.org
b930ef1012 Fix typed lowering of JSAdd on non-number inputs.
R=rossberg@chromium.org
TEST=mjsunit/regress/regress-3476

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 16:09:21 +00:00
jkummerow@chromium.org
9951770a30 Nuke support for running MSan without a simulator.
We've abandoned that approach. The ARM64 simulator is the only supported way of
running V8 under MSan.

R=jkummerow@chromium.org

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

Patch from Sergey Matveev <earthdok@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 15:19:17 +00:00
mstarzinger@chromium.org
d27e94818a Also disable typed pipeline on ARM after r23859.
R=ulan@chromium.org
BUG=v8:3553
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 15:13:59 +00:00
rossberg@chromium.org
0d2e95d45b Update test262-es6
R=yangguo@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 13:39:37 +00:00
mvstanton@chromium.org
af495313d4 Turbofan needs a code handle and a CallInterfaceDescriptor. At the same time we spread knowledge about how to create the initial IC code object too widely. Consolidate code creation and unify it with a descriptor via CodeFactory.
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 13:18:58 +00:00
yangguo@chromium.org
90dc5c9e66 Do not use wide reads in CopyCharsUnsigned.
R=jkummerow@chromium.org
BUG=chromium:412967
LOG=Y

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 12:51:05 +00:00
mstarzinger@chromium.org
4bee89e03c Fix typed lowering of ToBoolean on NaN input.
R=rossberg@chromium.org
TEST=webkit/convert-nan-to-bool

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 12:38:16 +00:00
yangguo@chromium.org
9dcf34033b Expect access check in JSObject::DefineAccessor.
R=ulan@chromium.org, verwaest@chromium.org
BUG=chromium:411793
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 12:16:33 +00:00