MIPS64: Fix FillInputFrame() when deoptimize.

TEST: mjsunit/debug-evaluate-arguments
MIPS64: Fix CopyBytes().

TEST: mjsunit/array-join
MIPS64: Fix wrong use SMI in KeyedStoreGenerateGenericHelper().

TEST: mjsunit/setters-on-elements
MIPS64: Fix deoptimize condition in DoUint32ToSmi().

TEST: mjsunit/regress/regress-crbug-309623
MIPS64: Fix incorrect register in EmitIsStringWrapperSafeForDefaultValue().

TEST: mjsuint/regress/regress-760-1
MIPS64: Fix Smi handle in GenerateNegativeLookup().

TEST: mjsunit/regress/regress-2980
MIPS64: Fix store -Infinity to HeapNumber.

TEST: msjunit/regress/regress-2056
MIPS64: Wrong load number of output registers.

TEST: mjsunit/regress/regress-1748
MIPS64: Initial mipsel64 test status.
MIPS64: Fix DoMathFloorOfDiv() when divisor is a negative number.

TEST: mjsunit/math-floor-of-div
MIPS64: Fix load HeapNumber and load negative number.

Exponent part of a heap number may be a negative number, so we must use lw, not lwu.
When use li() to load a negative number, if the number is a int32, must use CONSTANT_SZIE.

TEST: mjsunit/sin-cos
MIPS64: Correct input value in DoDivI()/DoModI() etc.

TEST: mjsunit/harmony/math-hyperbolic
MIPS64: Fix DoMul().

TEST: mjsunit/mul-exhaustive-part1
MIPS64: Fix cctest/HeapNumber build.

TEST: cctest/test-heap/HeapObjects
MIPS64: Fix load Name::kHashFieldOffset.

TEST: cctest/test-cpu-profiler/NativeMethodUninitializedIC
MIPS64: Add atomic_ops
MIPS64: basic build support for MIPS hardware.

This defines two new environment variables in addition to the usual
v8 CC, CXX, AR, etc. These are LDSO_PATH, and LD_R_PATH. See the
wiki page for 64-bit building for complete details.

This is a TEMPORARY workaround for non-existent or incomplete
64-bit support in the userland of the mips64 dev boards I have
used. These can point to non-standard paths, such as libraries
provided by toolchain.

These MUST point to a path that exists on the target board at
runtime:

LDSO_PATH: path to dynamic loader, typically: "/lib64/ld.so.1"
LD_R_PATH: colon separated lib paths, typically: "/lib64:/usr/lib64"
MIPS64: Fix string compare when cpu  can't read unaligned.
MIPS64: Abi changes for n64.

Our early work took a shortcut of staying with the O32
Abi when using the simulator. This change fixes that and
moves to n64 Abi for gnerated code and the simulator.

This is controlled by "#define MIPS_ABI_N64 1" in
constants-mips64.h.

This can be changed to MIPS_ABI_O32, and the simulator will
still work OK [1]. This may seem like a useless feature, but
can be an example for how we can start migrating towards
supporting with 32-bit and 64-bit code in the same codebase.
(There's a LOT more effort to make this actually work, this
is just a starting point).

TODO: n64 does not use argument slots. This code sets
kCArgSlotCount to 0, but does NOT remove many places that
add/sub kCArgsSlotsSize to sp. So we take a performance hit
currently and that must be fixed.

[1] O32 on sim was tested a couple days ago. I will
commit this now, and test tomorrow.
MIPS64: Reorder mthc1/mtc1 to prevent FP register trashing.

An mtc1 in FR=1 mode on mips64 hardware will trash the upper 32-bits
(zero-write) of the destination fpr.

So when using both mtc1 and mthc1, the mtc1 must be used before the
mfhc1.

The manual confirms this behavior:  "The low word in GPR rt is
placed into the low word of FPR fs. If FPRs are 64 bits wide,
bits 63..32 of FPR fs become UNPREDICTABLE."

This bug was not seen on simulator. So I have also fixed the sim
to model this behavior, and verfied that this bug now shows on
the sim (prior to this fix).

TEST=mjsunit/smi-ops.js and about 40 others.