| Index: src/x64/assembler-x64.h
|
| diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h
|
| index 22fb34d6fe43bc1a31322895064c14bb6a6cfb2e..9d4694b04209b07864975a18ef8c8b8244311238 100644
|
| --- a/src/x64/assembler-x64.h
|
| +++ b/src/x64/assembler-x64.h
|
| @@ -153,6 +153,7 @@ struct Register {
|
| // Unfortunately we can't make this private in a struct when initializing
|
| // by assignment.
|
| int code_;
|
| +
|
| private:
|
| static const int registerCodeByAllocationIndex[kNumAllocatableRegisters];
|
| static const int allocationIndexByRegisterCode[kNumRegisters];
|
| @@ -390,11 +391,15 @@ class Operand BASE_EMBEDDED {
|
| // this must not overflow.
|
| Operand(const Operand& base, int32_t offset);
|
|
|
| + // Checks whether either base or index register is the given register.
|
| + // Does not check the "reg" part of the Operand.
|
| + bool AddressUsesRegister(Register reg) const;
|
| +
|
| private:
|
| byte rex_;
|
| byte buf_[6];
|
| - // The number of bytes in buf_.
|
| - unsigned int len_;
|
| + // The number of bytes of buf_ in use.
|
| + byte len_;
|
|
|
| // Set the ModR/M byte without an encoded 'reg' register. The
|
| // register is encoded later as part of the emit_operand operation.
|
| @@ -824,6 +829,10 @@ class Assembler : public Malloced {
|
| arithmetic_op_32(0x23, dst, src);
|
| }
|
|
|
| + void andl(Register dst, const Operand& src) {
|
| + arithmetic_op_32(0x23, dst, src);
|
| + }
|
| +
|
| void andb(Register dst, Immediate src) {
|
| immediate_arithmetic_op_8(0x4, dst, src);
|
| }
|
| @@ -1209,6 +1218,9 @@ class Assembler : public Malloced {
|
| void movsd(XMMRegister dst, XMMRegister src);
|
| void movsd(XMMRegister dst, const Operand& src);
|
|
|
| + void movdqa(const Operand& dst, XMMRegister src);
|
| + void movdqa(XMMRegister dst, const Operand& src);
|
| +
|
| void movss(XMMRegister dst, const Operand& src);
|
| void movss(const Operand& dst, XMMRegister src);
|
|
|
| @@ -1249,10 +1261,6 @@ class Assembler : public Malloced {
|
| void emit_sse_operand(XMMRegister dst, Register src);
|
| void emit_sse_operand(Register dst, XMMRegister src);
|
|
|
| - // Use either movsd or movlpd.
|
| - // void movdbl(XMMRegister dst, const Operand& src);
|
| - // void movdbl(const Operand& dst, XMMRegister src);
|
| -
|
| // Debugging
|
| void Print();
|
|
|
|
|