Fix DoDeferredNumberTagU to keep the value in xmm1 instead of xmm0 on x64.
authorvegorov@chromium.org <vegorov@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 23 Aug 2012 16:14:01 +0000 (16:14 +0000)
committervegorov@chromium.org <vegorov@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 23 Aug 2012 16:14:01 +0000 (16:14 +0000)
commit106a83252d56ae9f0cbba3086ef2f83cefab3aec
treebe2b4eb08e235e35b9e24e6c11ee14f57782add8
parent6095c38fa3cc6cae54ac30a7593ac49e89d5f2dd
Fix DoDeferredNumberTagU to keep the value in xmm1 instead of xmm0 on x64.

xmm0 is not saved across runtime call on x64 because MacroAssembler::EnterExitFrameEpilogue preserves only allocatable XMM registers unlike on ia32 where it preserves all registers.

Cleanup handling of shifts: SHR can deoptimize only when its a shift by 0, all other shift never deoptimize.

Fix type inference for i-to-t change instruction. On X64 this ensures that write-barrier is generated correctly.

R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/10868032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/arm/lithium-arm.cc
src/hydrogen-instructions.cc
src/hydrogen.cc
src/ia32/lithium-ia32.cc
src/x64/lithium-codegen-x64.cc
src/x64/lithium-x64.cc
test/mjsunit/compiler/uint32.js