Fix unaligned accesses in back_edge tables.
authorpalfia@homejinni.com <palfia@homejinni.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 19 Jul 2013 14:46:23 +0000 (14:46 +0000)
committerpalfia@homejinni.com <palfia@homejinni.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 19 Jul 2013 14:46:23 +0000 (14:46 +0000)
commit4c3269a43d8f515d6b378d3c22778b53d1b47675
treee536fcfdc38ded3a83f1cf7b5831ae7b414623b5
parentac2b8c04f3a0edcb2b83f41c9560368efbf689b7
Fix unaligned accesses in back_edge tables.

This patch fixes the step size of masm->pc_ in back_edge tables to words (4 bytes) to ensure 4 bytes alignment for read/write operations. Read and write of words (4 bytes) data from aligned space (address % 4 == 0) is more efficient on all platforms and especially on MIPS where without this alignment fix a kernel exception handler is used for every unaligned access.

This patch increases the size of back_edge tables by 3 bytes in every row. By the test it seem the back_edge table quite small in every/most cases (maximal length is 18 so in that case there are only 54 additional bytes with this patch).

BUG=

Patch from Douglas Leung <Douglas.Leung@imgtec.com>

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/deoptimizer.cc
src/full-codegen.cc
src/full-codegen.h
src/objects.cc
src/runtime.cc