olivf@chromium.org
7873f35eb2
Hydrogenisation of binops
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/24072013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-01 15:24:56 +00:00
bmeurer@chromium.org
70b8e2d013
Turn the NumberToStringStub into a hydrogen stub.
...
This adds a BuildLookupNumberStringCache() in Hydrogen, which will
be used by the hydrogen version of StringAddStub, in addition to the
hydrogen version of NumberToStringStub.
R=mvstanton@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=16874
Review URL: https://codereview.chromium.org/23726041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-24 09:31:07 +00:00
machenbach@chromium.org
576515ebf3
Revert "Turn the NumberToStringStub into a hydrogen stub."
...
This reverts commit 16874 for breaking the tests.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/23440064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 11:22:35 +00:00
bmeurer@chromium.org
9c48fbda75
Turn the NumberToStringStub into a hydrogen stub.
...
This adds a BuildLookupNumberStringCache() in Hydrogen, which will
be used by the hydrogen version of StringAddStub, in addition to the
hydrogen version of NumberToStringStub.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/23726041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-23 10:58:45 +00:00
mvstanton@chromium.org
1b576e1e86
Some cleanup fixes
...
* Consolidated CopyJSObject and CopyJSObjectWithAllocationSite
* Factory.h helper for struct maps.
* BuildFastLiteral shouldn't create allocation sites in pretenuring mode.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/24255005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-20 09:27:40 +00:00
bmeurer@chromium.org
45bd2f50cd
Move NumberToStringStub::GenerateLookupNumberStringCache to the MacroAssembler.
...
This renames the method to LookupNumberStringCache() and puts it into
the MacroAssembler in preparation of the NumberToStringStub Hydrogen
conversion.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/23618056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 06:07:23 +00:00
mstarzinger@chromium.org
ff2719a075
Remove obsolete Runtime_CreateObjectLiteralShallow.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/24096019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-18 15:08:17 +00:00
dcarney@chromium.org
0e90c68908
reland 16744: add context save for GenerateFastApiCall
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23903053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 11:37:48 +00:00
dcarney@chromium.org
c09d00d1b0
revert 16744 for breaking build
...
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/24196002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 07:53:56 +00:00
dcarney@chromium.org
0020146f24
add context save for GenerateFastApiCall
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23461039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 07:19:50 +00:00
dcarney@chromium.org
564a9a68b8
remove getcurrent from stubs
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23756009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-13 10:23:04 +00:00
verwaest@chromium.org
ea77a8edc0
Use regular map-checks to guard string-length loading.
...
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23702039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-13 09:57:48 +00:00
yangguo@chromium.org
e4c179e2d3
Use xorps to break the cvtsi2sd unnecessary dependence due to its partially written
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/23654026
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-13 07:59:48 +00:00
mvstanton@chromium.org
5521e2e825
Bugfix: array constructors that expect a type feedback cell that points
...
to an AllocationSite were being passed the undefined object in some
cases. Clearly separate the cases where we have an AllocationSite and
where we don't in the general ArrayConstructorStub.
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23477071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 17:59:41 +00:00
yangguo@chromium.org
cb10ceb19d
Reland "Clean up after r16292 (disable optimization for StringWrappers)."
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/23619036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 16:17:58 +00:00
yangguo@chromium.org
ad25a2969d
Revert "Clean up after r16292 (disable optimization for StringWrappers)."
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23600040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 11:15:12 +00:00
yangguo@chromium.org
996813cca2
Clean up after r16292 (disable optimization for StringWrappers).
...
R=jochen@chromium.org
BUG=v8:2855
Review URL: https://codereview.chromium.org/22891028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 10:55:57 +00:00
verwaest@chromium.org
dcad4b8d08
Delete useless CompileStoreGlobal
...
StoreGlobal stubs are generated by Hydrogen now
BUG=
R=verwaest@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23881004
Patch from Weiliang Lin <weiliang.lin2@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16653 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 13:34:07 +00:00
dcarney@chromium.org
0a6d15453c
remove most uses of Isolate::Current in arch specific files
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/24031003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 10:51:06 +00:00
olivf@chromium.org
3483c257d2
Revert TranscendentalCacheStub changes in r16615.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23889013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-10 13:28:21 +00:00
olivf@chromium.org
f1b908d566
Move ToInt conversions to the MacroAssembler for x64
...
+ Prevent truncating TaggedToI from bailing out.
(This is a port of r16464)
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/23938003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-10 12:37:30 +00:00
yangguo@chromium.org
ecbfcd7e06
Turn interrupt and stack check into builtins.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23480013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-30 11:24:58 +00:00
hpayer@chromium.org
9d8684f8de
Fix Cluster Fuzz stack frame corruption bug.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/23596002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-27 13:31:15 +00:00
mvstanton@chromium.org
7fea193609
Convert FastNewClosureStub into hydrogen.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/22562002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-27 11:55:08 +00:00
haitao.feng@intel.com
a6d17b4fb5
Introduce StackArgumentsAccessor class for X64
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/21123008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-27 01:21:39 +00:00
jkummerow@chromium.org
88e74d525a
Delete dead FloatingPointHelper functions
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/22914034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:06:49 +00:00
svenpanne@chromium.org
bc6fe88030
Desugar bitwise negation into XOR and kill all UnaryOp stuff.
...
R=mstarzinger@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/22184004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:34:51 +00:00
haitao.feng@intel.com
dfda85a91a
Introduce PopReturnAddressTo and PushReturnAddressFrom macro-assembler instructions for X64
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/21477002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 13:42:02 +00:00
loislo@chromium.org
d2c443b774
Extract hardcoded error strings into a single place and replace them with enum.
...
I'd like to propagate bailout reason to cpu profiler.
So I need to save it into heap object SharedFunctionInfo.
But:
1) all bailout reason strings spread across all the sources.
2) they are native strings and if I convert them into String then I may have a performance issue.
3) one byte is enough for 184 bailout reasons. Otherwise we need 8 bytes for the pointer.
Also I think it would be nice to have error strings collected in one place.
In that case we will get additional benefits:
It allows us to keep this set of messages under control.
It gives us a chance to internationalize them.
It slightly reduces the binary footprint.
From the other hand the developers have to add new strings into that enum.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/20843012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:53:11 +00:00
bmeurer@chromium.org
c4f77b3e40
Turn ToNumberStub into a hydrogen code stub.
...
R=danno@chromium.org , hpayer@chromium.org
Review URL: https://codereview.chromium.org/19793005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-23 06:02:54 +00:00
bmeurer@chromium.org
fe83bc3622
Fix invalid SMI test in x64 ToNumberStub::Generate().
...
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19927002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 06:13:45 +00:00
bmeurer@chromium.org
5e85399572
Cleanup StringAddFlags.
...
Avoid duplication of StringAddFlags in the platform specific code stubs header files.
Fix the inverted flag logic, replacing it with a scheme that is easier to understand.
Depends on: https://codereview.chromium.org/19541003
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/19492006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:52:42 +00:00
bmeurer@chromium.org
784e233ea9
Cleanup useless parameter object_is_smi for NumberToStringStub::GenerateLookupNumberStringCache().
...
object_is_smi was always false so there's no need to actually have it.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/19541007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:42:57 +00:00
mvstanton@chromium.org
3761e0388d
With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test. ( https://code.google.com/p/v8/source/detail?r=15358 ) But that change caused a regression, so here is an improvement:
...
Put the internalized string types in the lower 64 entries of
INSTANCE_TYPE, and non-internalized string types in the next 64 entries.
This way we can restore the single bit check.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/19749004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 11:29:11 +00:00
danno@chromium.org
76cbaf407f
x64 support for d-to-i (truncated)
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18333012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-19 08:21:41 +00:00
bmeurer@chromium.org
410b4b2db4
Reland "Turn ElementsTransitionAndStore stub into a HydrogenCodeStub".
...
Fix the invalid array length check, replacing it with a check of
the elements pointer similar to TransitionElementsKindStub.
Refactor common code from ElementsTransitionAndStoreStub and TransitionElementsKindStub into BuildTransitionElementsKind() helper method.
Add test case for the MD5 computation that used to crash before,
and a small test case for the specific issue.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19367003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:37:20 +00:00
danno@chromium.org
5713ca0d8f
Revert 15635: Turn ElementsTransitionAndStore stub into a HydrogenCodeStub
...
Causes breakage in crypto-(sha1|md5) SunSpider
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19214002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 15:23:52 +00:00
bmeurer@chromium.org
6c13f097d6
Turn ElementsTransitionAndStore stub into a HydrogenCodeStub.
...
R=danno@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18881004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:29:00 +00:00
verwaest@chromium.org
a9fd01d567
- Makes a common superclass for Load and Store stub compiler.
...
- Splits all non-normal Store ICs into handler and IC.
- Ensures monomorphic store ICs go polymorphic.
- Feeds polymorphic type feedback into count operation.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14142005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 08:22:41 +00:00
mvstanton@chromium.org
23695eb86e
Rename AllocationSite::payload to AllocationSite::transition_info
...
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/18749004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 15:00:12 +00:00
mvstanton@chromium.org
c1e19bfc35
Bugfix: The general array constructor stub did not handle the case
...
properly when it is called with a function pointer in the type cell,
instead assuming that an AllocationSite object should be present. The
case where this can happen is if the cell is uninitialized, then the
first constructor call made is to the Array function of a different
context. In that case, we'll store the function pointer in the cell,
and then go ahead and call the array constructor stub too. The bug is
fixed by checking for the AllocationSite object map. If not found, the
constructor stub goes forward with a default ElementsKind, just as in
several other cases.
A test in allocation-site-info.js was beefed up to make sure the state
chain described above is traversed.
BUG=
R=hpayer@chromium.org , hpayer@google.com
Review URL: https://codereview.chromium.org/18277006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 14:41:54 +00:00
mvstanton@chromium.org
67d9051bcd
Create AllocationSite objects, pointed to by AllocationSiteInfo.
...
This creates a platform where we can do additional things with allocation sites,
other than just aid in reducing array transitions.
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/15094018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-08 10:02:16 +00:00
danno@chromium.org
345cc98a25
Generate StoreGlobal stubs with Hydrogen
...
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
R=rossberg@chromium.org , ulan@chromium.org
Committed: http://code.google.com/p/v8/source/detail?r=15419
Review URL: https://codereview.chromium.org/16925008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:34:02 +00:00
yangguo@chromium.org
02674ee414
Keep two empty lines between declarations for cpp files
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18509003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
olivf@chromium.org
240c7aced9
Convert UnaryOpStub to a HydrogenCodeStub
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18712002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:26:22 +00:00
olivf@chromium.org
950a372834
Revert "Convert UnaryOpStub to a HydrogenCodeStub"
...
The problem is the HCallConstantFunction which is not context sensitive, so we leak the builtin. We first need a Hydrogen version of __ IvokeBuiltin.
BUG=
R=danno@chromium.org , machenbach@chromium.org
Review URL: https://codereview.chromium.org/18650003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 19:57:25 +00:00
jkummerow@chromium.org
77c582d253
Format stack layout comments for X64
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/18607002
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:36:49 +00:00
olivf@chromium.org
0d2fed8f26
Convert UnaryOpStub to a HydrogenCodeStub
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17229005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:56:53 +00:00
danno@chromium.org
77c20c30a3
Revert r15419: "Generate StoreGlobal stubs with Hydrogen"
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18357004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:12:21 +00:00
danno@chromium.org
a3bce19868
Generate StoreGlobal stubs with Hydrogen
...
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/16925008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:22:13 +00:00