MIPS: Improve performance of keyed loads/stores which have a HeapNumber index.
authorfschneider@chromium.org <fschneider@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 13 Apr 2012 13:04:51 +0000 (13:04 +0000)
committerfschneider@chromium.org <fschneider@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 13 Apr 2012 13:04:51 +0000 (13:04 +0000)
commit037785baaa15c6180b859cd5fa6a268df4c69857
treec34e753b5bdaa1ba9866ec476dd0ae9f20a8f6f4
parent48777a7f5bee5234d7b77eed3d657122fe9b25dc
MIPS: Improve performance of keyed loads/stores which have a HeapNumber index.

Port r11282 (bd2ab07).

Patch by Daniel Kalmar.

Original commit message:

Some GWT compiled code results in array access that has a heap number (e.g. -0)
as an index. Until now this would result in a generic IC.

For example:

a[-0] === a[0] or

a[0.25 * 4] === a[1]

This change detects heap numbers that are representable as a smi
and converts them. As a result we can still use the fast keyed monomorphic
ICs. Optimized code already handles keyed access with a double-key efficiently.

As a result the frame rate on the reported benchmark improves by roughly 2x.

BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10068012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/mips/stub-cache-mips.cc