Sven Panne
e4c5b84652
Contribution of PowerPC port (continuation of 422063005)
...
Contribution of PowerPC port (continuation of 422063005). The inital patch
covers the core changes to the common files. Subsequent patches will cover
changes to common files to support AIX and to update the ppc directories so
they are current with the changes in the rest of the project.
This is based off of the GitHub repository
https://github.com/andrewlow/v8ppc
BUG=
R=svenpanne@chromium.org , danno@chromium.org , sevnpanne@chromium.org
Review URL: https://codereview.chromium.org/817143002
Cr-Commit-Position: refs/heads/master@{#26091}
2015-01-16 07:42:15 +00:00
machenbach
7d478d9621
Revert of Remove obsolete V8_INFINITY macro. (patchset #3 id:40001 of https://codereview.chromium.org/798413003/ )
...
Reason for revert:
Speculative revert. This seems to block the current roll: https://codereview.chromium.org/819653003/
I retried several times, also with a new roll. The error is internal - but that doesn't make much of a difference.
Original issue's description:
> Remove obsolete V8_INFINITY macro.
>
> Use std::numeric_limits consistently.
>
> R=svenpanne@chromium.org
>
> Committed: https://crrev.com/31c66e2d53569c4e229d55483d28208491e73612
> Cr-Commit-Position: refs/heads/master@{#25897}
TBR=svenpanne@chromium.org ,bmeurer@chromium.org
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/813813003
Cr-Commit-Position: refs/heads/master@{#25912}
2014-12-20 13:17:35 +00:00
bmeurer
31c66e2d53
Remove obsolete V8_INFINITY macro.
...
Use std::numeric_limits consistently.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/798413003
Cr-Commit-Position: refs/heads/master@{#25897}
2014-12-19 07:18:00 +00:00
jkummerow
76aab824fe
Reduce impact of HParameter inputs on HPhi representation selection
...
This is a follow-up to r25153.
BUG=v8:3766
LOG=n
Review URL: https://codereview.chromium.org/807273003
Cr-Commit-Position: refs/heads/master@{#25885}
2014-12-18 14:50:07 +00:00
svenpanne
bb65d40dbf
Fixed -fsanitize=float-cast-overflow problems.
...
BUG=v8:3773
LOG=y
Review URL: https://codereview.chromium.org/809293003
Cr-Commit-Position: refs/heads/master@{#25880}
2014-12-18 11:13:04 +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
11a950fcf7
Fixed race condition in HBranch::observed_input_representation.
...
Non-numeric static local variables are not thread-safe, and the case
at hand was a premature optimization anyway: The generated code for
the check in question is exactly the same when unfolded.
BUG=chromium:420483
Review URL: https://codereview.chromium.org/756903003
Cr-Commit-Position: refs/heads/master@{#25502}
2014-11-25 14:47:32 +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
Michael Stanton
47f55baeaf
Re-land r25392 Use a stub in crankshaft for grow store arrays.
...
Code was vulnerable to different evaluation order in Clang.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/726693004
Cr-Commit-Position: refs/heads/master@{#25397}
2014-11-18 14:31:00 +00:00
Michael Stanton
77ee440af1
Revert "Use a stub in crankshaft for grow store arrays."
...
This reverts commit d40204f84c
.
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/735653003
Cr-Commit-Position: refs/heads/master@{#25393}
2014-11-18 13:08:07 +00:00
Michael Stanton
d40204f84c
Use a stub in crankshaft for grow store arrays.
...
We were deopting without learning anything.
BUG=v8:3417
LOG=N
R=danno@chromium.org
Review URL: https://codereview.chromium.org/368263003
Cr-Commit-Position: refs/heads/master@{#25392}
2014-11-18 12:32:24 +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
wingo@igalia.com
5044c510cb
Don't print inlined function ID in --trace-hydrogen
...
FunctionLiteral has two purposes: it is a unit of compilation, and it is
also an expression. Its id() is only for the latter purpose, used by
the continuation of the closure, not by the closure itself.
When we inline, we treat the FunctionLiteral as a unit of compilation,
not as an expression, and as such the FunctionLiteral doesn't have any
meaningful ID. The right thing to do is not to access the ID when
printing the hydrogen expression.
R=svenpanne@chromium.org , vegorov@google.com
BUG=v8:3680
LOG=N
Review URL: https://codereview.chromium.org/716793003
Cr-Commit-Position: refs/heads/master@{#25267}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 15:54:20 +00:00
dslomov@chromium.org
e4d1839612
harmony-scoping: Implement LoadIC handler for loads from global contexts.
...
R=ishell@chromium.org , adamk@chromium.org , rossberg@chromium.org , verwaest@chromium.org
BUG=v8:2198
LOG=N
Review URL: https://codereview.chromium.org/696783005
Cr-Commit-Position: refs/heads/master@{#25259}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-11 11:16:43 +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
jkummerow@chromium.org
f96e386d9a
Replace C++ bitfields with our own BitFields
...
Shave this yak from orbit, it's the only way to be sure.
BUG=chromium:427616
LOG=n
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/700963002
Cr-Commit-Position: refs/heads/master@{#25148}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 12:41:46 +00:00
yangguo@chromium.org
0e1124842a
Tweaks to the code serializer.
...
- consider the source string as a special sort of back reference.
- use repeat op code for more root members.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/674883002
Cr-Commit-Position: refs/heads/master@{#24871}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 13:12:09 +00:00
jkummerow@chromium.org
8d283eddc0
Drop some unused code
...
Bonus: fix bitrot in (disabled) Hydrogen-BCH
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/623513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 10:52:12 +00:00
yangguo@chromium.org
983205d5fd
Reland "Use symbols instead of hidden properties for i18n markers."
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/618213002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 11:53:29 +00:00
yangguo@chromium.org
63851465f2
Revert "Use symbols instead of hidden properties for i18n markers."
...
This reverts r24345.
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/618123005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 07:33:53 +00:00
yangguo@chromium.org
153ec0329e
Use symbols instead of hidden properties for i18n markers.
...
Also refactor symbols in the root list.
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/614083002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 07:08:39 +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
jkummerow@chromium.org
b4375b77ec
Fix Smi vs. HeapObject confusion in HConstants.
...
Representation and HType should agree with each other.
BUG=chromium:412215
LOG=y
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/556563005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 08:44:14 +00:00
mvstanton@chromium.org
6e1ebdcbc3
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.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/535873002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 12:51:29 +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
verwaest@chromium.org
2a37ab79ad
Fixed inlining of constant values
...
Use CopyToRepresentation to elide HForceRepresentation of HConstant
BUG=v8:3529
LOG=y
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/507613002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 11:34:25 +00:00
verwaest@chromium.org
ef0068558a
Rename IsDontDelete to IsConfigurable (and invert conditions)
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/494063002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-21 09:34:47 +00:00
verwaest@chromium.org
21b9394c41
Further reduce LookupResult usage
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/488073002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 15:08:20 +00:00
bmeurer@chromium.org
b15a082d56
Fix implementation of bit count functions.
...
The bit counting functions provided by CompilerIntrinsics were undefined
for zero, which was easily overlooked and unsafe in general. Also their
implementation was kinda hacky and mostly untested. Fixed the
implementation and moved the functions to base/bits.h.
TEST=base-unittests,cctest,compiler-unittests,mjsunit
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/494633002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 12:10:41 +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
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
yangguo@chromium.org
6a2e0cd2a1
Check for negative zero in floor when compiling with MSVC.
...
R=danno@chromium.org
BUG=v8:3477
LOG=N
Review URL: https://codereview.chromium.org/429603003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-29 14:20:05 +00:00
yangguo@chromium.org
a8a02a51f1
Inline Math.fround in optimized code.
...
R=svenpanne@chromium.org
BUG=v8:3469
LOG=N
Review URL: https://codereview.chromium.org/425943002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-29 11:34:08 +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
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
svenpanne@chromium.org
1e2d3ecb35
Make UBSan happy.
...
This involves avoiding signed multiplication overflow, shifting too
far and overflow during negation.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/382153003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-11 12:12:58 +00:00
dusan.milosavljevic@rt-rk.com
a0f6878a06
Add mips64 port.
...
Summary:
- Changes in common code are mainly boilerplate changes,
gyp and test status files updates.
- On mips64 simulator all tests pass from all test units.
- Current issues: mjsunit JS debugger tests fail randomly on HW in release mode.
Corresponding tests are skipped on HW.
- Skipped tests on mips64: test-heap/ReleaseOverReservedPages, mjsunit/debug-*
TEST=
BUG=
R=danno@chromium.org , plind44@gmail.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/371923006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-09 11:08:26 +00:00
svenpanne@chromium.org
018ef484b9
More OStreamsUse OStreams more often.
...
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.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/363323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-07 09:57:29 +00:00
svenpanne@chromium.org
d7934d1fbe
Start using OStreams.
...
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.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/334763003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 07:18:30 +00:00
jochen@chromium.org
a4506cd3f2
Move platform abstraction to base library
...
Also split v8-core independent methods from checks.h to base/logging.h and
merge v8checks with the rest of checks.
The CPU::FlushICache method is moved to CpuFeatures::FlushICache
RoundUp and related methods are moved to base/macros.h
Remove all layering violations from src/libplatform
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/358363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 13:25:46 +00:00
mvstanton@chromium.org
c0179a50da
Re-land "Clusterfuzz identified overflow check needed in dehoisting."
...
BUG=380092
LOG=N
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/335063005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-23 09:09:05 +00:00
rodolph.perfetta@arm.com
736a17f8f4
ARM: Avoid duplicate vmla when merging vmul and vadd
...
Avoid generating duplicate vmla instructions for vmul/vadd sequences where the
vmul has more than one use.
For example: function f(a, b, c) { return (a * b) + c + (a * b); }
Previously, this would produce a vmul for the subexpression (a * b), then vmla
for (a * b) + c, then vmla for (a * b) + [(a * b) + c].
Now it produces vmul, vadd, vadd, as expected.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/323423003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 11:26:17 +00:00
mstarzinger@chromium.org
fec6e62dfb
Check alpha-sorting of includes during presubmit.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/333013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-20 08:40:11 +00:00
ishell@chromium.org
6dc967e2e0
Bugfix in inlined versions of Array.indexOf() and Array.lastIndexOf() with a regression test.
...
BUG=chromium:381534
LOG=N
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/319343002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-10 09:01:45 +00:00
ulan@chromium.org
c8b2fa454a
Preliminary support for block contexts in hydrogen.
...
Patch from Steven Keuchel <keuchel@chromium.org>
BUG=v8:2198
LOG=N
TEST=mjsunit/harmony/block-let-crankshaft.js
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/307593002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-05 07:33:01 +00:00
ishell@chromium.org
13918334f8
Revert "Folding of bounded dynamic size allocations with const size allocations."
...
This reverts r21675.
TBR=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/311173002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-04 15:21:35 +00:00
ishell@chromium.org
d0cd026821
Folding of bounded dynamic size allocations with const size allocations.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/301973014
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-04 13:39:02 +00:00
ishell@chromium.org
4473edd7f1
Implemented folding of constant size allocation followed by dynamic size allocation.
...
Manually folded allocations (JSArray, JSRegExpResult) are split into two separate allocations.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/304153009
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-04 09:35:41 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
bmeurer@chromium.org
77130247ac
Handle HCheckInstanceType and HIsStringAndBranch in check elimination.
...
R=ishell@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=21593
Review URL: https://codereview.chromium.org/300423003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-02 12:17:05 +00:00