Clemens Hammacher
3d76d2a2dc
[cctest] Refactor CallHelper to use variadic templates
...
Instead of explicitly instantiating six copies of each function for
zero to five arguments, define them as variadic template.
This avoids the arbitrary limit to five arguments, and avoids lots of
code duplication.
Drive-by fix: [iwyu] Add missing include.
R=mstarzinger@chromium.org
Change-Id: Id7edde3611ddfade16c7afbbf4b9000cedd76468
Reviewed-on: https://chromium-review.googlesource.com/496247
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45130}
2017-05-05 12:05:45 +00:00
mbrandy
3bb5b67204
PPC64: [simulator] Do not sign-extend uint32_t call parameters.
...
R=bmeurer@chromium.org , titzer@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1918503002
Cr-Commit-Position: refs/heads/master@{#35766}
2016-04-25 14:03:58 +00:00
jyan
3b5e84ab0e
S390: Initial test changes and files checkin.
...
R=danno@chromium.org ,jkummerow@chromium.org,jochen@chromium.org,joransiu@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
BUG=
Review URL: https://codereview.chromium.org/1805533002
Cr-Commit-Position: refs/heads/master@{#34795}
2016-03-15 18:09:36 +00:00
ahaas
f8e068e926
[wasm] Replace the BufferedRawMachineAssemblerTester in the WasmRunner.
...
The BufferedRawMachineAssemblerTester caused problems for the
Int64Lowering. Instead we construct a TF graph now which is compiled by
Pipeline::GenerateCodeForTesting.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1702023002
Cr-Commit-Position: refs/heads/master@{#34107}
2016-02-18 09:55:49 +00:00
ahaas
44b520f57f
Implement the BufferedRawMachineAssemblerTester.
...
This utility makes it possible to test TF graphs that accept parameters of any machine type (even int64 and float64), which are previously problematic due to the complexity of C calling conventions.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/1423133005
Cr-Commit-Position: refs/heads/master@{#31698}
2015-10-30 21:32:49 +00:00
mstarzinger
9ada38b4c6
Remove obsolete src/v8.h include from compiler cctests.
...
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/1417163004
Cr-Commit-Position: refs/heads/master@{#31632}
2015-10-28 13:32:30 +00:00
titzer
17f4c5bbaf
Reland: [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack.
...
OCL: https://codereview.chromium.org/1263033004/
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1284893002
Cr-Commit-Position: refs/heads/master@{#30115}
2015-08-11 15:23:17 +00:00
yangguo
31a3f68da9
Revert of [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack. (patchset #7 id:120001 of https://codereview.chromium.org/1263033004/ )
...
Reason for revert:
This CL breaks MIPS (roll blocker).
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20mipsel%20-%20sim/builds/2061/steps/Check/logs/Run_Int32_Select_1
Original issue's description:
> [turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack.
>
> R=jarin@chromium.org
> BUG=
>
> Committed: https://crrev.com/71409be5395f867bbca0f6998bf6caa175cd8192
> Cr-Commit-Position: refs/heads/master@{#30091}
TBR=jarin@chromium.org ,titzer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1284853002
Cr-Commit-Position: refs/heads/master@{#30101}
2015-08-11 06:48:46 +00:00
titzer
71409be539
[turbofan] Various fixes to allow unboxed doubles as arguments in registers and on the stack.
...
R=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1263033004
Cr-Commit-Position: refs/heads/master@{#30091}
2015-08-10 14:14:36 +00:00
titzer
2c3e35120f
[test] Refactor call-tester to use c-signature.h.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1146173005
Cr-Commit-Position: refs/heads/master@{#28763}
2015-06-02 15:01:06 +00:00
titzer
1a23f031e8
[turbofan] Tester improvements; use CSignature and simplify ReturnValueTraits.
...
R=bmeurer@chromium.org ,mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1150083006
Cr-Commit-Position: refs/heads/master@{#28733}
2015-06-01 15:55:04 +00:00
titzer
30ef6b7a69
[turbofan] Clean up cctest "framework" for dealing with native calls.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1164603002
Cr-Commit-Position: refs/heads/master@{#28703}
2015-05-29 14:05:49 +00:00
bmeurer
4486c47d9b
[clang] Use -Wshorten-64-to-32 to enable warnings about 64bit to 32bit truncations.
...
Currently only the Win64 bots report this warnings, which adds quite
some overhead to the development process. With this flag we also get
compiler warnings about implicit 64bit to 32bit truncations when
building with clang on Linux/x64 and Mac/x64.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/1111733002
Cr-Commit-Position: refs/heads/master@{#28093}
2015-04-28 06:53:41 +00:00
dusan.milosavljevic
30dcf800df
Make ParameterTraits specializations for 32-bit integers valid for all arches.
...
TEST=
BUG=
Review URL: https://codereview.chromium.org/1031113002
Cr-Commit-Position: refs/heads/master@{#27441}
2015-03-25 14:21:29 +00:00
dusan.milosavljevic
17ada20c17
MIPS64: Unify and improve Word32 compares to use same instructions as Word64 compares.
...
The CL enables the same instructions are selected for Word32 and Word64 compare
operations which is possible due to a fact 32-bit inputs and produced values
are always sign-extended.
TEST=
BUG=
Review URL: https://codereview.chromium.org/1005123002
Cr-Commit-Position: refs/heads/master@{#27212}
2015-03-16 11:00:12 +00:00
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
Dusan Milosavljevic
ae9130ebbb
MIPS64: Add turbofan support for mips64.
...
TEST=
BUG=
R=danno@chromium.org , paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/732403002
Cr-Commit-Position: refs/heads/master@{#25424}
2014-11-19 15:44:46 +00:00
paul.lind@imgtec.com
f9b39f29fb
MIPS: Add turbofan support for mips32.
...
BUG=
R=bmeurer@chromium.org , dusan.milosavljevic@imgtec.com
Review URL: https://codereview.chromium.org/601723002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-02 15:48:48 +00:00
titzer@chromium.org
e1a948a6f8
Convert Linkage to use MachineSignature.
...
This simplifies the handling of MachineTypes for parameters and returns
used in tests, and overall improves the regularity with which they
are handled in both tests and in CallDescriptor.
R=bmeurer@chromium.org , jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/530783002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 10:13:21 +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
bmeurer@chromium.org
66dd869980
[turbofan] Add backend support for signed loads.
...
Also rename the arch opcodes to match their native counterparts.
TEST=compiler-unittests,cctest
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/505713002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 10:35:38 +00:00
titzer@chromium.org
9803a72417
Unify MachineType and RepType.
...
MachineType now tracks both the representation and the value type of machine quantities and is used uniformly throughout TurboFan.
These types can now express uint8, int8, uint16, and int16, i.e. signed and unsigned smallish integers. Note that currently only uint8 and uint16 are implemented in the TF backends.
R=bmeurer@chromium.org , mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/470593002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 09:19:54 +00:00
titzer@chromium.org
6fa2cee262
Move MachineRepresentation to machine-type.h and rename to MachineType in preparation for merging it with RepType.
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/456333002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 15:55:28 +00:00
titzer@chromium.org
670df5063b
Implement representation selection as part of SimplifiedLowering. Representation selection also
...
requires inserting explicit representation change nodes to be inserted in the graph. Such nodes
are pure, but also need to be lowered to machine operators. They need to be scheduled first, to
determine the control input for any branches inside.
This CL requires extensive testing. More tests to follow.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/425003004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 09:40:02 +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