v8/test/unittests/base
Clemens Hammacher fd306a0658 Allow constexpr RegList construction from Registers
Before, the standard way to create a RegList was either:
RegList list = (1 << 0) | (1 << 1) | ...
or
RegList list = rax.bit() | rdx.bit() | ...

The first way allows to make the RegList constexpr, but needs comments
to document which registers you are referring to, and it has no checks
that all bits you set on the RegList actually belong to valid registers.
The second one uses the symbolic names, hence is much more readable and
makes it harder to construct invalid RegLists. It's not constexpr
though, since the {bit()} method on the register types is not constexpr.

This CL adds a constexpr accessor to get the code and bit of a
constexpr Register, and adds a helper method to create a constexpr
RegList like this:
constexpr RegList list = Register::ListOf<rax, rdx, rdi>();

This new method is used in a number of places to test its
applicability. Other uses of the old pattern remain and can be cleaned
up later.

R=tebbi@chromium.org

Change-Id: Ie7b1d6342dc5f316dcfedd0363b3540ad5e7f413
Reviewed-on: https://chromium-review.googlesource.com/728026
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48887}
2017-10-24 17:30:11 +00:00
..
platform Fix common misspellings 2017-08-02 09:35:28 +00:00
utils Move unit tests to test/unittests. 2014-10-01 08:34:25 +00:00
atomic-utils-unittest.cc [base] Add tests for base::AsAtomicWord::SetBits. 2017-08-16 15:13:02 +00:00
bits-unittest.cc [base] Generalize bits::CountPopulation 2017-10-18 16:16:15 +00:00
cpu-unittest.cc [x86] Disable AVX unless the operating system explicitly claims to support it. 2015-01-27 09:59:24 +00:00
division-by-constant-unittest.cc Remove v8stdint.h, it doesn't serve a purpose anymore. 2014-10-21 08:25:14 +00:00
flags-unittest.cc Remove v8stdint.h, it doesn't serve a purpose anymore. 2014-10-21 08:25:14 +00:00
functional-unittest.cc [turbofan] Fix HashCode/Equals for floating point operators. 2014-10-08 07:32:07 +00:00
ieee754-unittest.cc [builtins] Unify most of the remaining Math builtins. 2016-07-01 11:13:02 +00:00
iterator-unittest.cc Avoid signed/unsigned warning in VC++ 2017 builds 2017-04-24 19:29:59 +00:00
logging-unittest.cc [jumbo] add unittests jumbo support 2017-09-28 22:19:40 +00:00
macros-unittest.cc [base] Align the address hint in VirtualMemory. 2017-07-27 13:50:06 +00:00
ostreams-unittest.cc [ostreams] Extend AsHex and add AsHexBytes 2017-07-25 08:37:46 +00:00
sys-info-unittest.cc Remove NaCl support. 2016-07-27 07:50:31 +00:00
template-utils-unittest.cc Allow constexpr RegList construction from Registers 2017-10-24 17:30:11 +00:00