diff options
Diffstat (limited to 'V8Binding/v8/src/x64/assembler-x64.h')
-rw-r--r-- | V8Binding/v8/src/x64/assembler-x64.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/V8Binding/v8/src/x64/assembler-x64.h b/V8Binding/v8/src/x64/assembler-x64.h index 4d341c6..ff87286 100644 --- a/V8Binding/v8/src/x64/assembler-x64.h +++ b/V8Binding/v8/src/x64/assembler-x64.h @@ -447,7 +447,7 @@ class Assembler : public Malloced { // Distance between the address of the code target in the call instruction // and the return address. Checked in the debug build. - static const int kPatchReturnSequenceLength = 3 + kPointerSize; + static const int kCallTargetAddressOffset = 3 + kPointerSize; // Distance between start of patched return sequence and the emitted address // to jump to (movq = REX.W 0xB8+r.). static const int kPatchReturnSequenceAddressOffset = 2; @@ -687,6 +687,10 @@ class Assembler : public Malloced { immediate_arithmetic_op(0x4, dst, src); } + void andl(Register dst, Immediate src) { + immediate_arithmetic_op_32(0x4, dst, src); + } + void decq(Register dst); void decq(const Operand& dst); void decl(Register dst); @@ -721,6 +725,7 @@ class Assembler : public Malloced { void neg(Register dst); void neg(const Operand& dst); + void negl(Register dst); void not_(Register dst); void not_(const Operand& dst); @@ -729,6 +734,10 @@ class Assembler : public Malloced { arithmetic_op(0x0B, dst, src); } + void orl(Register dst, Register src) { + arithmetic_op_32(0x0B, dst, src); + } + void or_(Register dst, const Operand& src) { arithmetic_op(0x0B, dst, src); } @@ -860,6 +869,10 @@ class Assembler : public Malloced { arithmetic_op(0x33, dst, src); } + void xorl(Register dst, Register src) { + arithmetic_op_32(0x33, dst, src); + } + void xor_(Register dst, const Operand& src) { arithmetic_op(0x33, dst, src); } @@ -1049,7 +1062,9 @@ class Assembler : public Malloced { // Check if there is less than kGap bytes available in the buffer. // If this is the case, we need to grow the buffer before emitting // an instruction or relocation information. - inline bool overflow() const { return pc_ >= reloc_info_writer.pos() - kGap; } + inline bool buffer_overflow() const { + return pc_ >= reloc_info_writer.pos() - kGap; + } // Get the number of bytes available in the buffer. inline int available_space() const { return reloc_info_writer.pos() - pc_; } @@ -1279,7 +1294,7 @@ class Assembler : public Malloced { class EnsureSpace BASE_EMBEDDED { public: explicit EnsureSpace(Assembler* assembler) : assembler_(assembler) { - if (assembler_->overflow()) assembler_->GrowBuffer(); + if (assembler_->buffer_overflow()) assembler_->GrowBuffer(); #ifdef DEBUG space_before_ = assembler_->available_space(); #endif |