jarin
d9cabb9b22
[turbofan] Fix matching of the lea instruction.
...
Resets the scaled exponent to 0 when the scaling match fails.
BUG=
Review URL: https://codereview.chromium.org/756643002
Cr-Commit-Position: refs/heads/master@{#25491}
2014-11-24 17:45:33 +00:00
danno
4f1cc51555
[turbofan]: remove optimization of adds/subs to inc and dec
...
They generally cause regressions on most modern Intel chips. Replace them with
addl/subl.
Review URL: https://codereview.chromium.org/737153003
Cr-Commit-Position: refs/heads/master@{#25466}
2014-11-21 13:18:46 +00:00
Daniel Clifford
5a494cf00c
[turbofan]: More optimizations to add and subtract operations on x64
...
- Use "leal" for subtraction of integer constant when non-constant input to
subtract is used more than once.
- Use "incl", "decl", and "addl" when they are smaller/cheaper than their
leal/addl/subl equivalant.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/738073002
Cr-Commit-Position: refs/heads/master@{#25439}
2014-11-20 13:48:46 +00:00
danno@chromium.org
9a58807030
[turbofan] Optimize add operations to use 'leal' instruction on x64
...
Add MemoryOperandMatcher that recognizes node clusters in the form
[%r1 + %r2*SCALE + OFFSET] and explicit support in the x64 Int32Add
selector to use it to translate complex adds to 'leal' instructions.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/704713003
Cr-Commit-Position: refs/heads/master@{#25223}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-07 16:47:45 +00:00
bmeurer@chromium.org
1ef9e22900
[x64] 64-bit shift left by 32 or more covers sign/zero extend.
...
TEST=unittests
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/704703002
Cr-Commit-Position: refs/heads/master@{#25123}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 05:58:15 +00:00
bmeurer@chromium.org
498920f91c
[turbofan] Also optimize unsigned division by constant.
...
TEST=cctest,mjsunit,unittests
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/697663003
Cr-Commit-Position: refs/heads/master@{#25061}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-03 10:05:46 +00:00
bmeurer@chromium.org
948ce2141e
[turbofan] First step towards correctified 64-bit addressing.
...
Also remove the LEA matching from x64, since it was never really
effective. We'll optimize that once we're correct.
TEST=cctest,unittests
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/652363006
Cr-Commit-Position: refs/heads/master@{#25024}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-31 06:41:41 +00:00
bmeurer@chromium.org
548fb46331
[x86] Fix register constraints for multiply-high.
...
TEST=mjsunit/compiler,unittests
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/671393002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-24 09:36:40 +00:00
bmeurer@chromium.org
81877a6440
[turbofan] Optimize division/modulus by constant.
...
TEST=cctest,mjsunit,unittests
R=dcarney@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/654833002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-14 11:57:06 +00:00
dcarney@chromium.org
e7a635c853
[turbofan] fix vreg mapping for instruction selector tests
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/636543002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-06 14:30:55 +00:00
dcarney@chromium.org
b3d426889d
[turbofan] intel lea add multiply matchers
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/614013002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-01 10:47:14 +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