Dont use rAsm implicitly in x64Assembler
commit2d3b8e6056936d2bd5d84fc7bf39ddc7f6160a35
authorEdwin Smith <smith@fb.com>
Mon, 17 Mar 2014 17:46:30 +0000 (17 10:46 -0700)
committerSara Golemon <sgolemon@fb.com>
Thu, 27 Mar 2014 20:55:26 +0000 (27 13:55 -0700)
tree447214248da7f66344acf80dff13fd043afb4e30
parentfe1dd93b03b5276d9e9b5b94b875669d4370dea9
Dont use rAsm implicitly in x64Assembler

This removes the implicit uses of rAsm from X64Assembler,
and moves the definition to abi-x64.h.  Some mentions of
rAsm were hoisted, but most involved doing stores, so those
were converted to store two 32-bit immediates (without
using a scratch register) when possible.

The Immed wrapper class now only allows 32-bit immediates,
and a new Immed64 wrapper is available for immediates whose
compile-time-type (vm-compile time) is 64 bits.

Reviewed By: @ottoni

Differential Revision: D1224706
26 files changed:
hphp/runtime/base/datatype.h
hphp/runtime/base/ref-data.h
hphp/runtime/vm/jit/abi-x64.h
hphp/runtime/vm/jit/arg-group.cpp
hphp/runtime/vm/jit/arg-group.h
hphp/runtime/vm/jit/code-gen-arm.cpp
hphp/runtime/vm/jit/code-gen-arm.h
hphp/runtime/vm/jit/code-gen-helpers-x64.cpp
hphp/runtime/vm/jit/code-gen-helpers-x64.h
hphp/runtime/vm/jit/code-gen-x64.cpp
hphp/runtime/vm/jit/code-gen-x64.h
hphp/runtime/vm/jit/debug-guards.cpp
hphp/runtime/vm/jit/extra-data.h
hphp/runtime/vm/jit/func-prologues-x64.cpp
hphp/runtime/vm/jit/ir-translator.cpp
hphp/runtime/vm/jit/phys-reg.cpp
hphp/runtime/vm/jit/phys-reg.h
hphp/runtime/vm/jit/reg-alloc.cpp
hphp/runtime/vm/jit/service-requests-x64.cpp
hphp/runtime/vm/jit/translator-inline.h
hphp/runtime/vm/jit/type.h
hphp/runtime/vm/jit/unique-stubs-x64.cpp
hphp/runtime/vm/native.h
hphp/util/asm-x64.h
hphp/util/immed.h
hphp/util/test/asm.cpp