diff options
Diffstat (limited to 'deps/v8/src/x64/assembler-x64.h')
-rw-r--r-- | deps/v8/src/x64/assembler-x64.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/deps/v8/src/x64/assembler-x64.h b/deps/v8/src/x64/assembler-x64.h index 2e373faac5..0d870537ff 100644 --- a/deps/v8/src/x64/assembler-x64.h +++ b/deps/v8/src/x64/assembler-x64.h @@ -215,6 +215,12 @@ struct XMMRegister { return names[index]; } + static XMMRegister from_code(int code) { + ASSERT(code >= 0); + ASSERT(code < kNumRegisters); + XMMRegister r = { code }; + return r; + } bool is_valid() const { return 0 <= code_ && code_ < kNumRegisters; } bool is(XMMRegister reg) const { return code_ == reg.code_; } int code() const { @@ -735,6 +741,10 @@ class Assembler : public AssemblerBase { immediate_arithmetic_op_32(0x0, dst, src); } + void addl(const Operand& dst, Register src) { + arithmetic_op_32(0x01, src, dst); + } + void addq(Register dst, Register src) { arithmetic_op(0x03, dst, src); } @@ -1394,13 +1404,14 @@ class Assembler : public AssemblerBase { static const int kMaximalBufferSize = 512*MB; static const int kMinimalBufferSize = 4*KB; + byte byte_at(int pos) { return buffer_[pos]; } + void set_byte_at(int pos, byte value) { buffer_[pos] = value; } + protected: bool emit_debug_code() const { return emit_debug_code_; } private: byte* addr_at(int pos) { return buffer_ + pos; } - byte byte_at(int pos) { return buffer_[pos]; } - void set_byte_at(int pos, byte value) { buffer_[pos] = value; } uint32_t long_at(int pos) { return *reinterpret_cast<uint32_t*>(addr_at(pos)); } |