v8/test
svenpanne@chromium.org dbce27047e Fixed and improved code for integral division. Fixed and extended tests.
Arithmetic right shifting is *not* division in two's complement
representation, only in one's complement. So we convert to one's
complement, shift, and go back to two's complement. By permutating the
last steps, one can get efficient branch-free code. This insight comes
from the paleozoic era of computer science, see the paper from 1976:

   Guy Lewis Steele Jr.: "Arithmetic Shifting Considered Harmful"
   ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-378.pdf

This results in better and more correct code than our previous
"neg/shift/neg" dance.

LOG=y
BUG=v8:3151
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 10:45:27 +00:00
..
benchmarks Merge experimental/a64 to bleeding_edge. 2014-02-12 09:19:30 +00:00
cctest A64: fix cctest/test-code-stubs-a64/ConvertDToI. 2014-02-17 17:37:55 +00:00
intl Merge experimental/a64 to bleeding_edge. 2014-02-12 09:19:30 +00:00
message Clean up some A64 specific code in common code that was introduced by A64 merge 2014-02-12 13:27:13 +00:00
mjsunit Fixed and improved code for integral division. Fixed and extended tests. 2014-02-18 10:45:27 +00:00
mozilla Merge experimental/a64 to bleeding_edge. 2014-02-12 09:19:30 +00:00
preparser Merge experimental/a64 to bleeding_edge. 2014-02-12 09:19:30 +00:00
test262 Merge experimental/a64 to bleeding_edge. 2014-02-12 09:19:30 +00:00
webkit Merge experimental/a64 to bleeding_edge. 2014-02-12 09:19:30 +00:00