Commit Graph

60 Commits

Author SHA1 Message Date
bmeurer@chromium.org
f535763763 [turbofan] Implement the correct semantics for integer division/modulus.
Also fix the sdiv/udiv instructions on ARM as a nice side effect.

TEST=cctest,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#24888}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-26 12:50:46 +00:00
svenpanne@chromium.org
3de17c6950 Remove v8stdint.h, it doesn't serve a purpose anymore.
Basically a follow-up to https://codereview.chromium.org/667573005/.

LOG=y
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-21 08:25:14 +00:00
bmeurer@chromium.org
8a00950303 [arm] Drop SMMLS support.
Apparently

 SMMLS r, b, c, a

computes

 r = ((a << 32) - b * c) >> 32

while the documentation is kinda misleading and states that it should
compute

 r = a - ((b * c) >> 32)

The actual behavior is kinda useless, so we drop the instruction again.

TEST=cctest,unittests
TBR=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 07:47:27 +00:00
bmeurer@chromium.org
8950e0a3de [arm] Add support for SMMLA, SMMLS and SMMUL.
TEST=cctest,unittests
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 05:03:04 +00:00
bmeurer@chromium.org
f0452e2193 [turbofan] Add support for ARM64 Ubfx
Support selecting Ubfx for shift-mask and mask-shift operations. Also, rename
the shifts to match the instruction names.

BUG=
R=bmeurer@chromium.org

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

Patch from Martyn Capewell <m.m.capewell@googlemail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-09 09:18:31 +00:00
bmeurer@chromium.org
8617b3acf8 [turbofan] Fix HashCode/Equals for floating point operators.
Those floating point constant operators require bitwise handling of
their parameters, otherwise 0.0 equals -0.0. This is solved in a
general way by adding new base::bit_equal_to and base::bit_hash
function objects.

TEST=unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-08 07:32:07 +00:00
bmeurer@chromium.org
0a6e406927 Further improve hashing of pointers and integers.
Also make sure that the appropriate functions are inlined properly
(using V8_INLINE instead of inline to enforce it even with GCC),
and improve the HashIsOkish unittest.

TEST=unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-07 07:39:19 +00:00
bmeurer@chromium.org
03255440de Don't use identity as hash function for integers.
Also slightly improve hashing of floats/doubles.

TEST=unittests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 15:23:59 +00:00
bmeurer@chromium.org
9440b885ae Add C++11 compatible base::hash function object.
Implement NodeCache in terms of base::hash and std::equal_to in preparation
for HeapConstant caching.

TEST=cctest,unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 12:27:24 +00:00
bmeurer@chromium.org
bfd37ab267 Move unit tests to test/unittests.
As per discussion on the V8 team, this is the place we want them to live,
not following the Chrome Style Guide for this.

BUG=v8:3489
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 08:34:25 +00:00