MIPS64: Fix register access on stack in RegExp if 16-bit offset is exceeded.

BUG=
TEST=test-regexp/MacroAssemblerNativeLotsOfRegisters
MIPS64: Fix loading constants with li() macro.

Added new test.

TEST=cctest/test-macro-assembler-mips64/LoadConstants
BUG=
MIPS64: Add a cast to TEST(LoadConstants) to make Mentor compiler happy.

Compiling with mentor gcc 4.8.1 failed when passing array pointer thru
CALL_GENERATED_CODE macro. Simple cast fixes it.

Also fixed un-related too-long line.
MIPS64: Add operands for smi untagging in macro-assembler.
MIPS64: Add SmiLoadUntag(), SmiLoadScale(), SmiScale(), etc.

Intent is to allow Loading, Untagging, and Shifting/Scaling to
be combined. This should allow common source for mips32 & mips64
for these operations.

Though unifying the ports is no longer a short-term goal, these
changes should improve readability, even if just used on mips64.

Note that the optimizations around these are different for mips32
and mips64, and the intent is to minimize total instructions on
both platforms.

Includes one example usage from Dusan's prior CL.
MIPS64: Fix TODO smi ops to use SmiUntag, SmiScale.

These are the simple, mechanical cases. No optimization
is achieved (as we could with SmiLoadUntag).
MIPS64: Optimize address loading in li() macro to use less instructions.

The optimization relies on the fact that on 64-bit systems (x64, mips64) only
first 48 bits that contain complete information of address are used.

Fixed all code patching sites accordingly.

New test cctest/test-macro-assembler-mips64/LoadAddress added.
MIPS: Fix register usage after r21822.

The at register is no longer in usage, so changed it to "scratch".

BUG=
R=plind44@gmail.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Specially handle the key of the LoadKeyed and StoreKeyed instruction for x32 port.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Update Lithium AddI, SubI, MulI, BitI, ShiftI, MathMinMax to support x32 port.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fixed undefined behavior in RNG.

We're basically trading undefined behavior for implementation defined
behavior, which should be OK for UBSan. :-) The generated code should
be identical, at least I checked that for GCC 4.6.3 on x64.

BUG=377790
LOG=y
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
X87: Fixed flooring division by a power of 2, once again...

port r21769

original message:
    Avoid right shifts by zero bits: On ARM it actually means shifting by
    32 bits (correctness issue) and on other platforms they are useless
    (performance issue). This is fix for the fix in r20544.

    BUG=v8:3259
    LOG=y
R=weiliang.lin@intel.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
GVN fix, preventing loads hoisting above stores to the same field when HObjectAccess's representation is not the same.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Disable regress/regress-2653 until deopt_every_n_garbage_collections is fixed.

BUG=3389
LOG=N
R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Mark timed range in the profile plot.

R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Use generic representation when normalizing boilerplate properties

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Allow all Names to be fast property names

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Emulate MLS on pre-ARMv6T2. Cleaned up thumbee vs. thumb2 confusion.

This should unbreak things on the Raspberry Pi.

LOG=y
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Merge branch 'dm-mips64' into mips64-gbl

Conflicts:
	src/mips64/assembler-mips64-inl.h
	src/mips64/assembler-mips64.cc
	src/mips64/code-stubs-mips64.cc
	src/mips64/codegen-mips64.cc
	src/mips64/debug-mips64.cc
	src/mips64/full-codegen-mips64.cc
	src/mips64/lithium-codegen-mips64.cc
	src/mips64/macro-assembler-mips64.cc
	src/mips64/stub-cache-mips64.cc
	test/cctest/test-macro-assembler-mips64.cc
Remove one more arch-specific target name.

One more target had the architecture added to its name since r14209
originally landed and was missed when that change was reverted. Remove
the architecture from v8_libbase as well.

BUG=
R=jkummerow@chromium.org

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

Patch from Richard Coles <torne@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00