| Index: src/x64/assembler-x64.h
|
| diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h
|
| index d81cb741011ba939b9ba5e08d68ada2cbb3bca25..09d2e7003b324b03207db57bb68c91eb4309e323 100644
|
| --- a/src/x64/assembler-x64.h
|
| +++ b/src/x64/assembler-x64.h
|
| @@ -555,8 +555,21 @@ class Assembler : public AssemblerBase {
|
| // the absolute address of the target.
|
| // These functions convert between absolute Addresses of Code objects and
|
| // the relative displacements stored in the code.
|
| - static inline Address target_address_at(Address pc);
|
| - static inline void set_target_address_at(Address pc, Address target);
|
| + static inline Address target_address_at(Address pc,
|
| + ConstantPoolArray* constant_pool);
|
| + static inline void set_target_address_at(Address pc,
|
| + ConstantPoolArray* constant_pool,
|
| + Address target);
|
| + static inline Address target_address_at(Address pc, Code* code) {
|
| + ConstantPoolArray* constant_pool = code ? code->constant_pool() : NULL;
|
| + return target_address_at(pc, constant_pool);
|
| + }
|
| + static inline void set_target_address_at(Address pc,
|
| + Code* code,
|
| + Address target) {
|
| + ConstantPoolArray* constant_pool = code ? code->constant_pool() : NULL;
|
| + set_target_address_at(pc, constant_pool, target);
|
| + }
|
|
|
| // Return the code target address at a call site from the return address
|
| // of that call in the instruction stream.
|
| @@ -565,8 +578,8 @@ class Assembler : public AssemblerBase {
|
| // This sets the branch destination (which is in the instruction on x64).
|
| // This is for calls and branches within generated code.
|
| inline static void deserialization_set_special_target_at(
|
| - Address instruction_payload, Address target) {
|
| - set_target_address_at(instruction_payload, target);
|
| + Address instruction_payload, Code* code, Address target) {
|
| + set_target_address_at(instruction_payload, code, target);
|
| }
|
|
|
| static inline RelocInfo::Mode RelocInfoNone() {
|
| @@ -937,6 +950,7 @@ class Assembler : public AssemblerBase {
|
| void imul(Register dst, const Operand& src); // dst = dst * src.
|
| void imul(Register dst, Register src, Immediate imm); // dst = src * imm.
|
| // Signed 32-bit multiply instructions.
|
| + void imull(Register src); // edx:eax = eax * src.
|
| void imull(Register dst, Register src); // dst = dst * src.
|
| void imull(Register dst, const Operand& src); // dst = dst * src.
|
| void imull(Register dst, Register src, Immediate imm); // dst = src * imm.
|
| @@ -1381,6 +1395,8 @@ class Assembler : public AssemblerBase {
|
|
|
| void movapd(XMMRegister dst, XMMRegister src);
|
|
|
| + void psllq(XMMRegister reg, byte imm8);
|
| +
|
| void cvttsd2si(Register dst, const Operand& src);
|
| void cvttsd2si(Register dst, XMMRegister src);
|
| void cvttsd2siq(Register dst, XMMRegister src);
|
|
|