Commit Graph

410 Commits

Author SHA1 Message Date
chunyang.dai
f7e92b037b X87: split api call stubs into accessor and function call stubs
port 6950ead0b0

original commit message:

  split api call stubs into accessor and function call stubs

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26122}
2015-01-19 05:06:38 +00:00
cdai2
1b3490adab X87: ES6 computed property names
port 74e38e34b3.

original commit message:

   This adds support for computed property names, under the flag
   --harmony-computed-property-names, for both object literals and classes.

   This is a revert of the revert, 7d48fd9dc2.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26090}
2015-01-16 05:25:18 +00:00
jarin
ac04d777d6 [turbofan] Allow deoptimization for JSToNumber operator.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26053}
2015-01-14 13:09:32 +00:00
jochen
0959123e57 Remove "extra checks"
Instead, just use DCHECKs. The builders that want them in release mode
should already be useding dcheck_always_on anyways

BUG=none
R=machenbach@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26001}
2015-01-08 16:29:39 +00:00
ulan
eff42215f0 Use weak cell in monomorphic KeyedStore IC.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25923}
2014-12-22 13:38:17 +00:00
chunyang.dai
b4302150b1 X87: fix one test case failure under debug mode.
This issue is exposed by CL https://codereview.chromium.org/807273003.

  The DeoptimizeIf(...) function will generate more Assembler code and the
  distance between the link point and the bind point is larger then near
  link distance (127) for labels.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25914}
2014-12-22 07:04:47 +00:00
chunyang.dai
ab7622a094 X87: [turbofan] Remove the no-context hack for JSToNumber.
port d211608a3e

original commit message:
  [turbofan] Remove the no-context hack for JSToNumber.

  The ToNumberStub is now able to handle all plain primitives (Numbers,
  Booleans, Null, Undefined and Strings) without context access.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25833}
2014-12-16 07:14:00 +00:00
Michael Stanton
22302b5179 Hydrogen code stubs for vector-based ICs.
This patch finally allows running and passing tests with vector-based
Load and KeyedLoad ICs.

BUG=
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25800}
2014-12-12 13:56:35 +00:00
svenpanne
71bb00e261 Consistently use only one of virtual/OVERRIDE/FINAL.
FINAL implies OVERRIDE, which in turn implies virtual, so there's no need to use
more than one of these. The Google C++ style guide even requires this, see
http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Inheritance.

While we're here, port r24662 to x87.

The net result is that v8 compiles again with a current clang.

BUG=v8:3753
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25792}
2014-12-12 10:44:25 +00:00
ulan
35ff259b63 Refactor Map::ConstructionCount.
This combines Map::DoneInobjectSlackTracking and Map::ConstructionCount into one more generic 4-bit counter.

Counter values from 15 down to 8 are used for in-object slack tracking, values from 7 down to 0 are free to be used for a new counter when in-object slack tracking is inactive.

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

Cr-Commit-Position: refs/heads/master@{#25689}
2014-12-05 15:28:22 +00:00
mstarzinger
aae8fe7550 Cleanup deoptimizer relocation slot preparation.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25680}
2014-12-05 13:02:13 +00:00
cdai2
ed95aaaba4 X87: Use weak cells to embed maps in store handler.
port 3fc9c9b665

original commit message:

  Use weak cells to embed maps in store handler.
  BUG=v8:3629
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#25649}
2014-12-04 04:32:07 +00:00
ulan
2ac522ab15 Reland parts of 'Use weak cells in map checks in polymorphic ICs'
This relands macroassembler instructions and weak cell caching and
does not include parts that caused "Linux ASan LSan" test failures.

BUG=v8:3663
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25615}
2014-12-02 14:25:26 +00:00
machenbach
d9c83f6bd0 Revert of Use weak cells in map checks in polymorphic ICs. (patchset #8 id:140001 of https://codereview.chromium.org/753993003/)
Reason for revert:
[Sheriff] Speculative revert for breaking chromium asan (roll blocker):
http://build.chromium.org/p/client.v8/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/1683

Original issue's description:
> Use weak cells in map checks in polymorphic ICs.
>
> BUG=v8:3663
> LOG=N

TBR=mvstanton@chromium.org,akos.palfi@imgtec.com,weiliang.lin@intel.com,ulan@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=v8:3663

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

Cr-Commit-Position: refs/heads/master@{#25597}
2014-12-02 08:17:05 +00:00
ulan
45a36948e1 Use weak cells in map checks in polymorphic ICs.
BUG=v8:3663
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25581}
2014-12-01 10:41:14 +00:00
Chunyang Dai
f89acb647f X87: harmony-scoping: make assignment to 'const' a late error.
port 6ac4de87a8

original commit message:
  harmony-scoping: make assignment to 'const' a late error.

  Per TC39 Nov 2014 decision. This patch also changes behavior for "legacy const":
  assignments to sloppy const in strict mode is now also a type error. This fixes
  v8:2243 and also brings us in compliance with other engines re assignment to function
  names (see updated webkit test), but might have bigger implications. That change can
  easily be reverted by changing Variable::IsSignallingAssignmentToConst.

BUG=
R=dslomov@chromium.org, weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25532}
2014-11-27 07:10:51 +00:00
mstarzinger
7aad1d2e42 Revert "Remove deprecated ShouldSelfOptimize machinery."
This reverts commit 9da92c1a33 because of performance regressions.

R=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25467}
2014-11-21 17:28:38 +00:00
mstarzinger
9da92c1a33 Remove deprecated ShouldSelfOptimize machinery.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25459}
2014-11-21 11:23:52 +00:00
Michael Stanton
cfa1f94781 Revert "Re-land r25392 Use a stub in crankshaft for grow store arrays."
Due to performance issue.
TBR=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25421}
2014-11-19 14:08:43 +00:00
ishell
f3d1888fdb PropertyDetails cleanup: NORMAL property type merged with FIELD.
First step towards replacing PropertyType with two enums: {DATA,ACCESSOR} x {CONST,WRITABLE}.

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

Cr-Commit-Position: refs/heads/master@{#25417}
2014-11-19 11:45:34 +00:00
chunyang.dai
b3176392b9 X87: Re-land r25392 Use a stub in crankshaft for grow store arrays.
port 47f55baeaf (r25397)

original commit message:

  Re-land r25392 Use a stub in crankshaft for grow store arrays.

  Code was vulnerable to different evaluation order in Clang.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25414}
2014-11-19 09:28:17 +00:00
Chunyang Dai
c10ab10105 X87: Leaving a generator via an exception causes it to close
port 24a7ee877e1fe2ba0a52d69061946aeda7c26c10 (r25297)

original commit message:

  Leaving a generator via an exception causes it to close

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25316}
2014-11-13 09:00:15 +00:00
dslomov@chromium.org
eacdfa0b7a Various clean-ups after top-level lexical declarations are done.
1. Global{Context,Scope}=>Script{Context,Scope}
2. Enable fixed tests
3. Update comments

R=rossberg@chromium.org
BUG=v8:2198
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25291}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 11:35:18 +00:00
weiliang.lin@intel.com
5e8399cbca X87: ES6: Add support for super in object literals
port 721ff07f5901a9bf9ccacf0356a2c10dc452f32d (r25271).

original commit message:

  ES6: Add support for super in object literals

  This only available under --harmony-classes

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25280}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 08:33:09 +00:00
yangguo@chromium.org
4fd9ba9042 Reland "Fix stepping in for-loops."
BUG=v8:3634
LOG=N
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25279}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-12 08:26:42 +00:00
jkummerow@chromium.org
d3b68cf370 Fix has_constant_parameter_count() confusion in LReturn
BUG=chromium:431602
LOG=y
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25249}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 15:25:50 +00:00
yangguo@chromium.org
4a6d092fdf Revert "Fix stepping in for-loops."
TBR=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25233}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 09:36:16 +00:00
yangguo@chromium.org
3bed0a171a Fix stepping in for-loops.
R=ulan@chromium.org
BUG=v8:3634
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25231}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 09:08:11 +00:00
weiliang.lin@intel.com
50a829b3cf X87: Try avoiding MISS for callic monomorphic case.
port 6412c8ba70f2331aae0f21b968dd051b2320b947 (r25207)

original commit message:

  Try avoiding MISS for callic monomorphic case.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25230}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 05:51:14 +00:00
weiliang.lin@intel.com
406fa443e7 X87: Turn ToNumberStub into a PlatformCodeStub again.
port b6737c56eaf51d63ab83b6529f657c15f834623c (r25187)

original commit message:

  Turn ToNumberStub into a PlatformCodeStub again.

  The HydrogenCodeStub is too expensive and there's no easy way to reduce
  this cost, so turning it into a PlatformCodeStub solves that problem until
  we can use TurboFan for code stubs.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25227}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 04:53:43 +00:00
weiliang.lin@intel.com
28d6001c05 X87: fix one GC issue.
The incorrect parameter number is set when recording safepoint.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25226}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-10 04:47:42 +00:00
weiliang.lin@intel.com
813b071b30 Set the FPU precision control to double-precision.
The default double precision control of FPU is extended double-precision.
While the number definition for JavaScript is double-precision. We use
the FPU control word to set the doulbe precision and replace the original
solution which store the data to memory and load it again.

This patch also fixes the error that Sunspider 1.0.2 can not run with V8 if
sse2 support is disabled.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25125}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 06:21:50 +00:00
weiliang.lin@intel.com
c12a127fae X87: [turbofan] Add AllocateHeapNumberStub to avoid runtime call.
port ee95552f291d3c1fff78bc4f8d8621e84976e5c9 (r25107)

original commit message:
  [turbofan] Add AllocateHeapNumberStub to avoid runtime call.

BUG=
R=bmeurer@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25124}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 06:10:37 +00:00
weiliang.lin@intel.com
120d9d521a X87: EmitCreateIteratorResult loads map from function's context
port r24987

original commit message:

  EmitCreateIteratorResult loads map from function's context

  Caching or serialization can cause full-codegen output to be shared
  between contexts. CreateIteratorResult, however, was doing the wrong
  thing by creating results with the map that was current when the code
  was generated. Instead, we should chase pointers to load the right map
  from the function's context.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25000}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-30 03:46:19 +00:00
weiliang.lin@intel.com
b4981c69f1 X87: Classes: Add super support in methods and accessors
port r24976.

original commit message:

  Classes: Add super support in methods and accessors
  This is done by installing the [[HomeObject]] on the method and the
  accessor functions.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#24999}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-30 02:01:45 +00:00
yangguo@chromium.org
a51f05b6df Reland "X87: Classes: Add basic support for properties."
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24967}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-29 09:24:42 +00:00
yangguo@chromium.org
439b24777c Revert "X87: Classes: Add basic support for properties."
This reverts r24964.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24965}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-29 09:02:42 +00:00
weiliang.lin@intel.com
7bda975e6a X87: Classes: Add basic support for properties.
commit r24934.

original commit message:

  This adds the properties to the prototype and the constructor.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#24963}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-29 08:01:40 +00:00
weiliang.lin@intel.com
73ef8581ff X87: Use shared function info for eval cache key.
port r24927.

original commit message:

 Use shared function info for eval cache key.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#24961}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-29 07:20:13 +00:00
jarin@chromium.org
23df66ee24 Add more missing deopts
BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24886}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-26 10:25:48 +00:00
weiliang.lin@intel.com
70a11f5697 X87: Classes: implement 'new super'.
port r24825.

original commit message:

  Classes: implement 'new super'.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 07:34:20 +00:00
adamk@chromium.org
98e0eac76f Speed up creation of Objects whose prototype has dictionary elements
This speeds up both the case from the bug (using Object.create) but also
takes care ofthe "{ __proto__: obj  }" syntax, which was previously (and
erroneously) being treated the same as setting the prototype dynamically
from script using the __proto__ setter or Object.setPrototypeOf.

BUG=chromium:422754
LOG=y
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 18:16:35 +00:00
dslomov@chromium.org
af97f09b94 Spread the knowledge!
R=arv@chromium.org, mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-22 08:06:43 +00:00
weiliang.lin@intel.com
1306839894 X87: vector-based ICs did not update type feedback counts correctly.
port r24732.

original commit message:

  vector-based ICs did not update type feedback counts correctly.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 08:28:00 +00:00
weiliang.lin@intel.com
d367c25c85 X87: ReceiverCheckMode needs to be utilized further.
port r24704.

original commit message:

  ReceiverCheckMode needs to be utilized further.

  The parameter wasn't being passed appropriately, and there was an extra
   opportunity to use mode RECEIVER_IS_STRING in SubStringStub.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 04:12:53 +00:00
weiliang.lin@intel.com
66febc0aa0 X87: Tick processor: Print C++ entry points.
port r24700.

original commit message:

  Tick processor: Print C++ entry points

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 04:06:06 +00:00
weiliang.lin@intel.com
48a7db0609 X87: Implement the new semantics for 'super(...)'
original commit message:

  Implement the new semantics for 'super(...)'

  Per the latest ES6 draft, super(...) translates into a call
   to function's prototype.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 02:00:50 +00:00
weiliang.lin@intel.com
4b7c0c05c5 X87: Make disassembler string tables read-only.
port r24672.

original commit message:

  Move them from .data to .rodata.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-20 01:58:46 +00:00
weiliang.lin@intel.com
d8ae78539f X87: Eliminate special keyed load string stub in favor of uniform handlers
port r24661.

original commit message:

  Eliminate special keyed load string stub in favor of uniform handlers.

  KeyedLoadIC installs a special case if the receiver is a string.
  Although there are several maps for strings, in practice we seem to
  be able to treat them individually because a given KeyedLoad site
  only sees 1-2 string types

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-17 05:23:14 +00:00
weiliang.lin@intel.com
ef6ffa2a01 X87: Implement inline %_IsJSProxy() for full codegen and Hydrogen.
port r24636.

original commit message:

  Implement inline %_IsJSProxy() for full codegen and Hydrogen
  Saving a runtime call for many builtin functions.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-16 06:24:47 +00:00
weiliang.lin@intel.com
c704369eab X87: Support for super assignments in for..in.
port r24560.

original commit message:
  Support for super assignments in for..in.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 02:55:29 +00:00
rmcilroy@chromium.org
08941c0140 Refactor FrameAndConstantPoolScope and ConstantPoolUnavailableScope to be architecture independent
Move the FrameAndConstantPoolScope and ConstantPoolUnavailableScope out of the arm architecture directory to enable them to be used on all architectures.

R=rmcilroy@chromium.org

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

Patch from André Baixo <baixo@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 14:41:33 +00:00
weiliang.lin@intel.com
52e156a866 X87: Introduce FeedbackVectorSlot type - better than int.
port r24528.

original commit message:

  Introduce FeedbackVectorSlot type - better than int.

  It's good to have typing around this value.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-13 01:54:44 +00:00
weiliang.lin@intel.com
ed5f2f814c X87: Teach TurboFan to call vector-based ICs.
port r24519.

original commit message:

  Teach TurboFan to call vector-based ICs.

  Additional static information needs to be passed to Load and KeyedLoad calls if
  --vector-ics is turned on

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-11 06:00:44 +00:00
weiliang.lin@intel.com
c493ac26be X87: Fix uninitialized FixedArray potentially being left behind by ElementsTransitionGenerator::Generate.
port r24498.

original commit message:
  Fix uninitialized FixedArray potentially being left behind by ElementsTransitionGenerator::Generate.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 06:04:31 +00:00
weiliang.lin@intel.com
35ab21900c X87: Keyed stores to super where key is a name.
port r24490.

original commit message:
   Keyed stores to super where key is a name.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-10 05:44:13 +00:00
weiliang.lin@intel.com
c09abc87ab X87: Updates to maintain flag --vector-ics
port r24548.

original commit message:

   Updates to maintain flag --vector-ics

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 07:05:20 +00:00
weiliang.lin@intel.com
956591293c X87: Support for super keyed loads where key is a name.
port r24403.

original commit message:

  Support for super keyed loads where key is a name.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 06:21:42 +00:00
weiliang.lin@intel.com
5c0bd0cb00 X87: [turbofan] support all shift operands on ia32
port r24387.

original commit message:
  [turbofan] support all shift operands on ia32

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 06:13:22 +00:00
weiliang.lin@intel.com
8fdae69d9f X87: Replace OStream with std::ostream.
port r24319.

original commit message:

  Replace OStream with std::ostream.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 06:11:22 +00:00
weiliang.lin@intel.com
84bd2a5f72 X87: [turbofan] IA: Uint32ToFloat64 supports mem operand.
port r24318.

original commit message:
  [turbofan] IA: Uint32ToFloat64 supports mem operand.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 06:08:25 +00:00
jkummerow@chromium.org
b6f82c734c Remove FLAG_opt_safe_uint32_operations.
It has been turned on by default for a long time, and hydrogenized BinaryOpStubs actually depend on it being turned on.

BUG=v8:3487
LOG=n
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 13:15:23 +00:00
ishell@chromium.org
85d7140de0 Hydrogenize (and share) part of StoreTransition handler as a StoreTransitionStub and StoreField handler simplification.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 14:54:14 +00:00
bmeurer@chromium.org
3eebdc3264 Replace OStream with std::ostream.
Review URL: https://codereview.chromium.org/618643002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:29:32 +00:00
weiliang.lin@intel.com
7ead464238 X87: Support count operations on super named properties.
port r24290.

original commit message:

   Support count operations on super named properties.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 07:22:29 +00:00
jarin@chromium.org
5b742b356d Adding more missing deoptimization points in Turbofan.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:37:58 +00:00
ishell@chromium.org
171e62e589 ExtendStorageStub added, it is aimed for extending objects backing store when it runs out of space.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 13:11:27 +00:00
weiliang.lin@intel.com
baae3f8e1e X87: Stores and compound assignments for named super properties.
port r24268.

original commit message:

    Stores and compound assignments for named super properties.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 11:08:06 +00:00
weiliang.lin@intel.com
6a7cc6cc61 X87: fix the Sqrt issue.
The test mjsunit/regress/regress-sqrt compares the result of Math.sqrt function
   when using full-compiler and crankshaft compiler seperately. But according to
   glibc bug fixing(https://sourceware.org/bugzilla/show_bug.cgi?id=14032). The
   glibc implementation of std::sqrt() (It is invoked in the generated code when
   full-compiler is used.) will change since glibc 2.19.

   In order to keep consistence of Math.sqrt translation in crankshaft compiler
   and the pass of mjsunit/regress/regress-sqrt. we translate the Math.sqrt func
   by calling the runtime function.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 08:39:05 +00:00
weiliang.lin@intel.com
31c39284ef X87: convert disassembler to use OStream.
port r24214.

original commit message:

  convert disassembler to use OStream.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-26 01:12:13 +00:00
weiliang.lin@intel.com
944c70efb1 X87: fix the bug which is introduced by R24169.
Two more DeoptimizeIf(...) are added so the branch distance changed.
    we need to use Label::kFar.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-25 12:57:14 +00:00
yangguo@chromium.org
2a67e48f0e Move i18n-related runtime functions into a separate file.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-25 07:16:15 +00:00
weiliang.lin@intel.com
5a49981ef8 X87: add part of backend support for X87.
port r24179.  we add the corresponding function implementation to pass
   the compilation.

original commit message:

   [turbofan] Add backend support for float32.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-25 02:55:39 +00:00
weiliang.lin@intel.com
9b06bf6047 X87: Refactor bailout reasons and disable optimization in more cases.
port r24161.

original commit message:
  Refactor bailout reasons and disable optimization in more cases.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 15:29:00 +00:00
weiliang.lin@intel.com
8e6e09c169 X87: fixed branch distances.
port r24151.

original commit message:

  Forgot a few kNear occurences, only happens with --deopt-every-n-times.
  Death to manual jump distance calculation! :-P

BUG=
R=svenpanne@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 15:17:20 +00:00
weiliang.lin@intel.com
ab04540061 X87: Made the detailed reason for deopts mandatory on x87. Unified and improved things.
port r24146.

original commit message:
   Made the detailed reason for deopts mandatory on ia32. Unified and improved things.

   The number of different detail strings has been reduced a bit without
   any loss of information. Furthermore, DoubleToI is a bit more
   informative now. Tiny reason fixes.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 08:33:39 +00:00
weiliang.lin@intel.com
efe4852d5d X87: Removed superfluous deopt for ROR on ia32.
port r24133.   On X87 this check should be unnecessary too.

original commit message:
    Removed superfluous deopt for ROR on ia32.

    We only synthesize a ROR when we have an expression with a toplevel
    '|', which returns a signed value by definition, so deopting on
    negative values is not needed. ia32 was the only platform where this
    was done, all other didn't have the check.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 02:37:53 +00:00
jkummerow@chromium.org
9583236d84 Fix method dispatch in Keyed/StoreIC, and JumpIfNotUniqueName usage
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 09:20:36 +00:00
weiliang.lin@intel.com
803761a9f9 X87: Further improve deopt reason output
port r24123.  R24123 does not cover all required code change in X87.

original commit message:
   Further improve deopt reason output.
   * Make the detailed deopt reason mandatory on x64, other platforms will
     follow in separate CLs.

   * Extracted and improved jump table entry sharing logic: When --trace-deopt
     is on, we get separate entries for different deopt reasons. This enables
     us to distinguish the several reasons single instructions can have.

   * Don't emit superfluous jump table comments: The bailout ID is still visible,
     and the jump table entry number is not interesting (but easy to determine
     if really needed).

   * Unify the internal name of the jump table member across platforms.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-23 03:55:35 +00:00
svenpanne@chromium.org
7384467552 Further improve deopt reason output.
* Make the detailed deopt reason mandatory on x64, other platforms
  will follow in separate CLs.

* Extracted and improved jump table entry sharing logic: When
  --trace-deopt is on, we get separate entries for different deopt
  reasons. This enables us to distinguish the several reasons single
  instructions can have.

* Don't emit superfluous jump table comments: The bailout ID is still
  visible, and the jump table entry number is not interesting (but
  easy to determine if really needed).

* Unify the internal name of the jump table member across platforms.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 14:16:38 +00:00
svenpanne@chromium.org
bc609aff70 Merge RecordComment invocations into DeoptimizeIf calls.
This way the deoptimization reasons are actually threaded through to
the jump table. Tiny cleanup of related MIPS/MIPS64 code on the way.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 09:50:12 +00:00
svenpanne@chromium.org
cebe41bd23 Emit source positions in deopt comments, too.
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 09:05:22 +00:00
svenpanne@chromium.org
e76254071e Introduce a class to carry around a deoptimization reason.
As discussed in https://codereview.chromium.org/582743002/, here a
mechanical refactoring...

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 06:36:57 +00:00
weiliang.lin@intel.com
45a7148678 X87: enable the crankshaft compiler for X87 port.
BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-20 05:08:58 +00:00
weiliang.lin@intel.com
b2f5677499 X87: Implement loads and calls from 'super'.
port r24078.

orginal commit message:
   Implement loads and calls from 'super'

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 13:44:24 +00:00
svenpanne@chromium.org
33ddb37ba3 Removed confusing defensive programming in GenerateJumpTable.
For a given address/type pair we should always find a deoptimization
bailout ID, otherwise something is wrong. This was already asserted on
ARM, but we now do this consistently on all platforms.

Removed some usesless naming creativity on the way.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 11:06:59 +00:00
weiliang.lin@intel.com
ae6a25ae4d X87: When serializer is enalbed, we disable the X87 stack check to reduce the code size.
The reason is that the big code size will leads to test-serialize test cases fail
     when debug mode and snapshot=off.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 09:27:45 +00:00
weiliang.lin@intel.com
4120dd8de2 X87: Convert KeyedLoad indexed interceptor case to a Handler.
port r24042.

original commit message:

  Convert KeyedLoad indexed interceptor case to a Handler.

  Currently, KeyedLoads on objects with indexed interceptors are handled with a
  special stub. Instead, key on the map and handler mechanism for more uniform
  treatment.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 06:33:37 +00:00
weiliang.lin@intel.com
bf18738539 X87: Move state sentinels into TypeFeedbackVector.
port r24037.

original commit message:

  Move state sentinels into TypeFeedbackVector.

  These sentinels were in the wrong place, living in only tangentially related class TypeFeedbackInfo, but they codify state in the TypeFeedbackVector.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 06:31:33 +00:00
svenpanne@chromium.org
264c7fe3cd Emit comment with instruction+reason before deopt calls.
Note that we still need to migrate from sometimes emitting those
comments by hand to passing a reason explicitly, but this can be done
incrementally in separate CLs.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-19 06:27:06 +00:00
svenpanne@chromium.org
80d9d6df30 Thread the Lithium instruction down to DeoptimizeIf and friends.
This is a purely mechanical refactoring and a first step towards being
able to report more helpful deoptimization reasons. With this
refactoring, we know at least the mnemonic of the instruction causing
the deopt, although this is not used yet. Future steps will be using
the mnemonic, passing additional explicit deopt reasons and removing
the fragile machinery of searching for code comments.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 09:53:08 +00:00
titzer@chromium.org
f6807d7897 Rename Runtime_CompileUnoptimized to Runtime_CompileLazy, because that is what it does. Split Compiler::GetUnoptimizedCode into two variants, one for lazy compilation (which can return optimized code!) and the other that actually returns unoptimized code.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 15:29:42 +00:00
svenpanne@chromium.org
ac1b9b11dc Fixed deopt reasons in TaggedToI.
Every DeoptimizeIf should be preceded by a RecordComment explaining
the reason. In the long run, the reason should be an argument of
DeoptimizeIf, but we're not there yet.

On x87, things are a bit ugly due to some pushing/popping, so if
somebody feels inclined to improve this: Feel free. Probably the right
approach would be reloading instead of the push/pop horror.

Another thing is our inconsistent handling of the "done" continuation
of deferred code on the various platforms, I made tiny changes on the
way, but this should better be unified somehow, with all those
micro-optimizations removed.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 09:51:17 +00:00
weiliang.lin@intel.com
ac6074707a X87: Removing ic.h from code-stubs.h
port r23977.

original commit message:

  Removing ic.h from code-stubs.h

  CodeStubs use state types defined in ic.h, but this has the unfortunate effect of spreading ic.h all over the place. Instead, define these shared state types in ic-public.h and allow ic.h to concern itself with internal state change of the ICs.

  More work could/should be done here, but this is a first step.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 05:21:36 +00:00
verwaest@chromium.org
3a448aac19 The value register in storefield(smi) is not used as a temp
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 09:47:45 +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
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
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
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
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
weiliang.lin@intel.com
ca2d970a45 X87: Do not cache CodeStubInterfaceDescriptor on the isolate.
port r23744.

original commit message:

  Do not cache CodeStubInterfaceDescriptor on the isolate.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 05:30:19 +00:00
arv@chromium.org
45d8e74cd6 ES6: Add support for method shorthand in object literals
This is governed by the harmony-object-literals flag.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 16:39:42 +00:00
weiliang.lin@intel.com
d79d1f782f X87: Unify JSEntryStub and JSConstructEntryStub, and some more code stub cleanups.
port r23742.

original commit message:

  Unify JSEntryStub and JSConstructEntryStub, and some more code stub cleanups.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 07:17:23 +00:00
weiliang.lin@intel.com
850580317b X87: Introduce code stub constructors for stub keys.
port r23716.

original commit message:

  Introduce code stub constructors for stub keys.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 02:44:43 +00:00
bmeurer@chromium.org
dab61bc310 Replace our home-grown BitCast with bit_cast from Chrome/Google3.
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 09:11:11 +00:00
weiliang.lin@intel.com
7d160cd9f2 X87: Fix build
BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 14:29:21 +00:00
svenpanne@chromium.org
051972d240 Generalized division via multiplication.
We can now compute the magic numbers for all combinations of 32bit and
64bit (un)signed multiplications.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 11:48:47 +00:00
weiliang.lin@intel.com
547589e280 X87: Remove dead code for inline string hashing.
port r23689.

original commit message:

  Remove dead code for inline string hashing.

  This has become obsolete since hydrogenized StringAdd.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 07:29:08 +00:00
weiliang.lin@intel.com
c8f1f20477 X87: CallDescriptors::InitializeForIsolate() is no longer needed.
port r23652.

original commit message:

  CallDescriptors::InitializeForIsolate() is no longer needed.

  CallInterfaceDescriptors initialize themselves lazily. Soon we can also tear
  down the CodeStubInterfaceDescriptor explicit initialization step.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 07:25:00 +00:00
weiliang.lin@intel.com
7cecf80c43 X87: Clean up code stubs and ensure distinct major keys.
port r23655.

original commit message:

  Clean up code stubs and ensure distinct major keys.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 07:07:07 +00:00
weiliang.lin@intel.com
48c61115ec X87: Minor-key-ify remaining code stubs
port r23643.

original commit message:

  Minor-key-ify remaining code stubs

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 06:41:24 +00:00
weiliang.lin@intel.com
276c2a0dec X87: enable snapshot
Tweak LConstantD and LStoreKeyed to avoid fp register spilling

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 05:22:41 +00:00
weiliang.lin@intel.com
7a690932aa X87: Make concrete classes for individual call descriptors
port r23639

original commit message:

  Make concrete classes for individual call descriptors. The
  ic-convention classes that hold register specifications are
  merged into these new call descriptor classes, which should
  represent a final home for that information.

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 02:11:31 +00:00
weiliang.lin@intel.com
65ef6c05e1 X87: Unify some PlatformCodeStubs
port r23631.

original commit message:

  Unify some PlatformCodeStubs

BUG=
R=weiliang.lin@intel.com

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 05:37:17 +00:00
weiliang.lin@intel.com
327d2389cc X87: First step to cleanup the power-of-2 mess
port r23617.

original commit message:

   First step to cleanup the power-of-2 mess

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 07:48:57 +00:00
weiliang.lin@intel.com
61805bd570 X87: Minor-key-ify four stubs.
port r23605.

orginal commit message:
  - Minor-key-ify four stubs.
  - ICCompareStub
  - BinaryOpICStub
  - CompareNilICStub - VectorLoadStub

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 04:18:06 +00:00
weiliang.lin@intel.com
25eb303c05 X87: Use Chrome compatible naming for compiler specifics.
port r23579.

This CL includes the part of changes for X87 port which is missed in r23579.
(https://codereview.chromium.org/526223002).

original commit message:

  Use Chrome compatible naming for compiler specifics.
  Less useless creativity is best creativity!

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 09:40:42 +00:00
bmeurer@chromium.org
30f18f0f7d Use Chrome compatible naming for compiler specifics.
Less useless creativity is best creativity!

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 07:07:52 +00:00
weiliang.lin@intel.com
3d763dfdc9 X87: InterfaceDescriptor becomes CallInterfaceDescriptor.
port r23560.

original commit message:

  InterfaceDescriptor becomes CallInterfaceDescriptor.

  There was no difference between these two classes in a hierarchical relationship.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 03:43:04 +00:00
weiliang.lin@intel.com
b96d68c039 X87: Multiple stubs can point to the same calling convention
port r23546.

original commit message:
   Multiple stubs can point to the same calling convention

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 02:42:36 +00:00
weiliang.lin@intel.com
5c782b9d8c X87: Refactoring InterfaceDescriptors away from code-stubs.h
port r23515.

original commit message:
  Refactoring InterfaceDescriptors away from code-stubs.h

  Clean up and create seperation between the concept of a call descriptor and a
  code stub interface descriptor. The former is just concerned with how to call,
  but the latter has many extra hints related to code generation and deoptimization
  for the implementation of a particular code stub.

BUG=
R=mvstanton@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 14:00:25 +00:00
jarin@chromium.org
a668cd6fc8 Context deoptimization and removal of the deoptimization block in Turbofan
This adds context deoptimization to Turbofan and Crankshaft (also submitted separately as https://codereview.chromium.org/515723004/).

The second patchset removes the deoptimization/continuation block from calls.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 09:31:14 +00:00
weiliang.lin@intel.com
425568d616 X87: Minor-key-ify BinaryOpICWithAllocationSiteStub.
port r23444.

original commit message:
  Minor-key-ify BinaryOpICWithAllocationSiteStub.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 03:24:49 +00:00
weiliang.lin@intel.com
18235ae336 X87: Minor-key-ify new LoadICTrampolineStub.
port r23409.

original commit message:
  Minor-key-ify new LoadICTrampolineStub.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 08:15:14 +00:00
weiliang.lin@intel.com
eab8bdde23 X87: Added vector-based loadic hydrogen stubs. Not yet callable.
port r23405.

original commit message:
  Added vector-based loadic hydrogen stubs. Not yet callable.
  The next step is to integrate the use of vector[slot] into the IC
  infrastructure so it can do the right thing for a vector-based ic.
   Then these stubs can be installed. For now, they immediately bail
   out to the miss handler.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 07:58:51 +00:00
weiliang.lin@intel.com
24b5e5063b X87: Minor-key-ify CallICStub and CallIC_ArrayStub.
port r23403.

original commit message:
  Minor-key-ify CallICStub and CallIC_ArrayStub.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 07:33:29 +00:00
weiliang.lin@intel.com
246b01efdc X87: Change more PlatformCodeStubs to encode properties in the minor key.
port r23394.

original commit message:
  Change more PlatformCodeStubs to encode properties in the minor key.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 06:33:40 +00:00
weiliang.lin@intel.com
ef21aa93b7 X87: Move register conventions out of the IC classes.
port r23391.

original commit message:
  Move register conventions out of the IC classes.
  A change to a convention shouldn't require recompilation of ic.h/.cc.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 04:49:41 +00:00
bmeurer@chromium.org
90c8932596 Replace our homegrown ARRAY_SIZE() with Chrome's arraysize().
Our own ARRAY_SIZE() was pretty bad at error checking. If you use
arrasize() in a wrong way, the compiler will issue an error instead of
silently doing the wrong thing. The previous ARRAY_SIZE() macro is still
available as ARRAYSIZE_UNSAFE() similar to Chrome.

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 09:19:24 +00:00
weiliang.lin@intel.com
beec274d40 X87: Eliminate code duplication in lithium calls to vector-based LoadICs
port r23359.

original commit message:
  Eliminate code duplication in lithium calls to vector-based LoadICs

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 06:16:14 +00:00
weiliang.lin@intel.com
8681a11022 X87: Move handler compilers to handler-compiler
port r23346.

original commit message:
  Move handler compilers to handler-compiler

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 03:56:24 +00:00
yangguo@chromium.org
899fe964ad Encode CEntryStub properties in the minor key.
Eventually, all stubs should encode its properties in the minor key
so that stubs can be restored directly from the stub key.

R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 13:09:02 +00:00
weiliang.lin@intel.com
d171b9d535 x87: Move IC code into a subdir and move ic-compilation related code from stub-cache into ic-compiler
port r23306.

original commit message:
   Move IC code into a subdir and move ic-compilation related code from stub-cache into ic-compiler.

BUG=
R=verwaest@chromium.org, weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 09:00:04 +00:00
jarin@chromium.org
d8295050d2 Fix deoptimization address patching in Turbofan to use safepoints.
Since the deopt patch address needs to be available during GC to
resolve safepoints, we need to move it to the code object (instead of
the deoptimization input data) - accessing a separate fixed array
is not safe during GC. This CL adds a deoptimization_pc field to
each safepoint. The fields points to the deoptimization block.

The CL also fixes wrong register allocator constraints for
frame states on calls. These should always live on the stack
because registers are not preserved during a call.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 07:02:19 +00:00
verwaest@chromium.org
3baab5e688 Rewrite StoreIC handling using the LookupIterator. Continued from patch 494153002
BUG=
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 11:38:21 +00:00
weiliang.lin@intel.com
3170fbb305 X87: Use LookupIterator for CompileLoadInterceptor and delete Object::Lookup
port r23168.

original commit message:

 Use LookupIterator for CompileLoadInterceptor and delete Object::Lookup

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 04:56:54 +00:00
yangguo@chromium.org
84edfa3d0c Purge unused internalized string accessors.
R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 07:54:19 +00:00
mstarzinger@chromium.org
44247036a7 Fix newly discovered presubmit errors.
R=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 13:33:35 +00:00
weiliang.lin@intel.com
7a86e30c34 X87: fix one patch porting error in R22957.
BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-08 12:38:20 +00:00
weiliang.lin@intel.com
284d23dbb5 X87: We should never allocate a 0-sized buffer, so never grow from 0.
port r22947

original commit message:

   We should never allocate a 0-sized buffer, so never grow from 0.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 08:20:00 +00:00
weiliang.lin@intel.com
b40af26eec X87: Always use the StoreFieldStub to do the actual storing.
port r22931.

original commit message:

  Always use the StoreFieldStub to do the actual storing.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 08:11:11 +00:00
weiliang.lin@intel.com
5fef5b2cc3 X87: Hydrogenize (and share) StoreField except heapobject (for now)
port r22909.

original commit message:

  Hydrogenize (and share) StoreField except heapobject (for now)

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 07:12:27 +00:00
weiliang.lin@intel.com
ed97194cfb X87: Check that external references are registered in the serializer.
port r22896

original commit message:
  Check that external references are registered in the serializer.
  Inspired by a patch by Slava Chigrin <vchigrin@yandex-team.ru>;

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 07:06:52 +00:00
verwaest@chromium.org
a6384ade6b Get rid of the "spare buffer" cache.
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 16:56:52 +00:00
yangguo@chromium.org
46bda34130 Abstract out fetching of break_address in debug mode
If the platform has a variable length call sequence
more than simple offset math is required. This can
be true with out of line constant pools on PowerPC.

BUG=
R=yangguo@chromium.org

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

Patch from Andrew Low <andrew_low@ca.ibm.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 13:56:58 +00:00
jkummerow@chromium.org
10603eff29 Fix disassembly of sar(_, imm8)
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 08:19:36 +00:00
verwaest@chromium.org
5aaf1487da Load constants from the DescriptorArray
BUG=
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 08:02:21 +00:00
jkummerow@chromium.org
e051112fc6 Restore performance of accesses to JSGlobalProxy after r22802
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 10:44:17 +00:00
verwaest@chromium.org
5a2de1fced Remove special frontend for callbacks with slow-mode holders.
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 10:27:10 +00:00
jochen@chromium.org
c608c2f0be Move a bunch of GC related files to heap/ subdirectory
BUG=none
R=hpayer@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 08:18:22 +00:00
weiliang.lin@intel.com
6306a52e0b X87: Cleanup in stub-cache.cc; remove unused ArrayLength store ICs.
port r22805

original commit message:

  Cleanup in stub-cache.cc; remove unused ArrayLength store ICs.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 03:24:18 +00:00
weiliang.lin@intel.com
20fcfc98f6 X87: Avoid one repeated property lookup when computing load ICs.
r22802 touches X87 port but it is not changed completely.

port r22802.

original commit message:
  Avoid one repeated property lookup when computing load ICs.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 03:20:18 +00:00
bmeurer@chromium.org
d07a2eb806 Rename ASSERT* to DCHECK*.
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.

R=jochen@chromium.org, svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
verwaest@chromium.org
838c0ab285 Reuse the nonexistent handler frontend for transition handlers
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 10:47:10 +00:00
mstarzinger@chromium.org
ab1cb70c8d Ensure LModByPowerOf2I only gets environment when it deopts.
R=svenpanne@chromium.org
TEST=mozilla (with new --always-opt)

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 08:47:15 +00:00
jkummerow@chromium.org
84525e2b2f Avoid one repeated property lookup when computing load ICs.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 08:34:56 +00:00
weiliang.lin@intel.com
956cd1c76c X87: Unify InstanceofStub interface descriptors
port r22755.

original commit message:
  Unify InstanceofStub interface descriptors

BUG=
R=mstarzinger@chromium.org, weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-01 08:03:28 +00:00
weiliang.lin@intel.com
f806dc5262 X87: Land the Fan (disabled)
port r22709.

This patch only covers the code change of orginal X87 port.
For the changes under ./src/compiler/ and ./tools/gyp/v8.gyp file,
I will submit it in another seperate patch.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-01 07:42:06 +00:00
weiliang.lin@intel.com
cd2a39e3ab X87: Remove keyed_store_calling convention and friends
port r22706.

original commit message:
  Remove keyed_store_calling convention and friends

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-01 01:58:56 +00:00
weiliang.lin@intel.com
633403d151 X87: Encapsulate the holder in the PropertyHolderCompilers
port r22704.

original commit message:
  Encapsulate the holder in the PropertyHolderCompilers

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-31 10:39:35 +00:00
weiliang.lin@intel.com
cb857ec1bf X87: Encapsulate type in the PropertyHandlerCompiler
port r22700.

original commit message:
  Encapsulate type in the PropertyHandlerCompiler

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-31 09:01:32 +00:00
danno@chromium.org
a1383e2250 Land the Fan (disabled)
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00
weiliang.lin@intel.com
29f2cf231b X87: Only generate a single normal IC per kind per slow-mode map.
port r22680

original commit message:

  only generate a single normal IC per kind per slow-mode map.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 09:28:43 +00:00
weiliang.lin@intel.com
5372a2a769 X87: Clean up name distinction between Keyed ICs and Element Handlers
port r22679.

original commit message:

  Clean up name distinction between Keyed ICs and Element Handlers

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 09:04:42 +00:00
weiliang.lin@intel.com
39f82ac371 X87: Remove all compilation related interface from the StubCache
port r22678.

original commit message:
   Remove all compilation related interface from the StubCache

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 08:25:26 +00:00
weiliang.lin@intel.com
339efcbbe4 X87: CallIC customization stubs must accept that a vector slot is cleared.
port r22668.

original commit message:
  CallIC customization stubs must accept that a vector slot is cleared.

  The CallIC Array custom IC stub read from the type vector, expecting
  to get an AllocationSite. But there are paths in the system where a type
  vector can be re-created with default values, even though we currently
  grant an exception to clearing of vector slots with AllocationSites in
  them at gc time.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 08:21:42 +00:00
ishell@chromium.org
e7e87c686b Formatting rules violation fixed
TBR=weiliang.lin@intel.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 07:41:09 +00:00
weiliang.lin@intel.com
49e83ec903 X87: Inline Math.fround in optimized code.
port r22665.

original commit message:
 Inline Math.fround in optimized code.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 06:46:25 +00:00
mstarzinger@chromium.org
c0f6b34199 Support for dynamic write-barrier counters everywhere.
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-29 14:38:39 +00:00
weiliang.lin@intel.com
ea31635e66 X87: Restructure the IC / Handler compilers
port r22622.

original commit message:
  Restructure the IC / Handler compilers.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-29 07:54:38 +00:00
yangguo@chromium.org
029b8a2379 For-of on null or undefined is an error
The latest ES6 draft changed the behavior of for-of on null / undefined,
which for once is a simplification.

R=rossberg@chromium.org
BUG=

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

Patch from Andy Wingo <wingo@igalia.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 13:40:08 +00:00
verwaest@chromium.org
f6c6f15e6a X87: Always use the LoadStubCompiler for Load handlers, also for keyedload handlers
port r22551.

original commit message:
  Always use the LoadStubCompiler for Load handlers, also for keyedload handlers

BUG=
R=verwaest@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 09:13:04 +00:00
verwaest@chromium.org
24c2a018f6 X87: Only to the relevant checks in LoadFunctionPrototype
port r22550.

original commit message:
  Only to the relevant checks in LoadFunctionPrototype

BUG=
R=verwaest@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 09:12:34 +00:00
verwaest@chromium.org
f135cfa263 X87: Move function prototype handling into a special handler rather than IC
port r22526.

original commit message:
  Move function prototype handling into a special handler rather than IC

  Adjust hydrogen handling of function.prototype to be based on map feedback.
  Handle non-instance prototype loading using an IC rather than in the hydrogen
  instruction. In the future, remove the special instruction and replace by multiple
  hydrogen instructions.

BUG=
R=verwaest@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-24 09:11:59 +00:00
yangguo@chromium.org
fc5b5f2dc5 Propagate serialization flag to inner functions.
R=mvstanton@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 09:35:06 +00:00
mvstanton@chromium.org
37ebdc7da5 X87: Introduce FLAG_vector_ics.
port r22500.

original commit message:

  Introduce FLAG_vector_ics.

  When FLAG_vector_ics is true, then AST nodes that use Load and KeyedLoad ICs
  will allocate a type vector slot to store feedback information. Full codegen
  will emit a load of the slot into a register if the flag is on.

  Support is incomplete, right now the IC doesn't know how to use the feedback
  slot.

BUG=
R=mvstanton@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 07:48:19 +00:00
rossberg@chromium.org
2dc3d0bdc6 Remove harmony-typeof
This was an early experiment in the Harmony era that turned out to
not be compatible with the web.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 10:20:54 +00:00
weiliang.lin@intel.com
02247b18c0 X87: Cache IC handlers on the prototype's map if possible
port r22483

original commit message:

  Cache IC handlers on the prototype's map if possible

  instead of on the receiver's map. Lazily overwrite cached handler if it is
  identical to the handler that just missed.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-21 02:57:42 +00:00
Jacob.Bramley@arm.com
38cb7830aa Unravel kHeapObjectTagSize from the stub cache.
The stub cache used kHeapObjectTagSize to scale indices, but there
doesn't appear to be a direct need for this. Instead, the stub cache has
its own kCacheIndexShift quantity.

BUG=
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 09:57:39 +00:00
weiliang.lin@intel.com
2bb3f96570 X87: StubCallInterfaceDescriptor takes a context register.
port r22448

original commit message:
  StubCallInterfaceDescriptor and CallInterfaceDescriptor are unified under a base class InterfaceDescriptor.

  Handling of the context register had to be massaged to effect the unification. This will make it easier
  to call hydrogen code stubs directly from crankshaft.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-18 03:15:48 +00:00
mstarzinger@chromium.org
5963ae48a8 Rename [Load/Delete]ContextSlot for consistency after r22379.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 12:03:33 +00:00
weiliang.lin@intel.com
3150bf3870 X87: Drop unnecessary receiver validity checks from {Load,Store}IC_Normal
port r22391

original commit message:
   Drop unnecessary receiver validity checks from {Load,Store}IC_Normal.

   Since these builtins are used as handlers after a map check/dispatch, they don't need to check the receiver again.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-16 03:12:29 +00:00
mstarzinger@chromium.org
5874bd08c0 Allow embedding of ConsString objects into code.
R=yangguo@chromium.org
BUG=v8:2803
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 10:51:12 +00:00
weiliang.lin@intel.com
1ca4454aeb X87: Use the same registers for StoreIC and KeyedStoreIC.
port r22387

original commit message:
  Use the same registers for StoreIC and KeyedStoreIC.

  Based on https://codereview.chromium.org/389283002 ("Use register parameters in ElementsTransitionGenerator") which must land first.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 10:41:23 +00:00
weiliang.lin@intel.com
2aad6f0024 X87: Use register parameters in ElementsTransitionGenerator
port r22384

original commit message:
 Use register parameters in ElementsTransitionGenerator
x

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 09:46:10 +00:00
weiliang.lin@intel.com
23887bf978 X87: Clean up and update const / var
port r22379

original commit message:
This CL simplifies var / const by ensuring the behavior is consistent in itself,
and with regular JS semantics; between regular var/const and eval-ed var/const.

Legacy const is changed so that a declaration declares a configurable, but non-writable, slot,
 and the initializer reconfigures it (when possible) to non-configurable non-writable. This
 avoids the need for "the hole" as marker value in JSContextExtensionObjects and GlobalObjects.
Undefined is used instead.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-15 08:37:37 +00:00
weiliang.lin@intel.com
9d047839b5 X87: Use a register spec for StoreIC and KeyedStoreIC.
port r22328

original commit message:

  Use a register spec for StoreIC and KeyedStoreIC.

  This continues refactoring already applied for LoadIC in r22035 (https://code.google.com/p/v8/source/detail?r=22035).

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 07:47:58 +00:00
weiliang.lin@intel.com
d837dd7eb4 X87: Fix computed properties on object literals with a double as propertyname.
port r22255.

original commit message:

  Fix computed properties on object literals with a double as propertyname.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 05:48:37 +00:00
weiliang.lin@intel.com
393ccfb5a8 X87: Only create arguments-maps in the bootstrapper, remove now obsolete ValueType flag.
port r22245.

orginal commit message:

  Only create arguments-maps in the bootstrapper, remove now obsolete ValueType flag.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 05:40:59 +00:00
weiliang.lin@intel.com
31134fafef X87: More OStreamsUse OStreams more often
port r22232

original commit message:

This is a mostly mechanical CL (more than 90% Emacs macros and
query-replace-regexp) moving FILE*/StringStream*-based APIs to
OStream-based APIs. There are a few places where this had to stop,
otherwise the CL would be even bigger, but this can easily and
incrementally cleaned up later.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-08 05:24:52 +00:00
weiliang.lin@intel.com
7fe8e6ec90 X87: Error in CallFunctionNoFeedback ia32 made less efficient code
port r22191.

original commit message:
  Error in CallFunctionNoFeedback ia32 made less efficient code

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-04 07:30:45 +00:00
weiliang.lin@intel.com
598e2f9fc0 X87: Start using OStreams.
port r22179

original commit message:

Note that until everything is OStream-based, there are a few places
where we have to do some impedance matching. A few accessors had to be
const-corrected on the way.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-04 07:00:01 +00:00
weiliang.lin@intel.com
537b7fa325 X87: Clean up the global object naming madness.
port r22117

original message:

  Clean up the global object naming madness.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-02 07:07:22 +00:00
ishell@chromium.org
2c94151e6e Reland r22082 "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-01 15:02:31 +00:00
weiliang.lin@intel.com
d8fb9b9f12 X87: KeyedLoadIC should have same register spec as LoadIC.
port r22103.

original commit message:
On arm, arm64 and x64 there is a different register specification between LoadIC and KeyedLoadIC.

It would be nicer if these are the same, allowing some key optimizations.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-01 13:34:18 +00:00
jochen@chromium.org
584f13ab03 Add missing cpu.h includes to mips/x87
BUG=none
TBR=yangguo@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 15:37:07 +00:00