Index: runtime/vm/assembler_x64.cc |
diff --git a/runtime/vm/assembler_x64.cc b/runtime/vm/assembler_x64.cc |
index 47264617575354a1d78050f755a01309c9b91f68..9920440318054592693ee6c048b4f201161d937c 100644 |
--- a/runtime/vm/assembler_x64.cc |
+++ b/runtime/vm/assembler_x64.cc |
@@ -928,6 +928,14 @@ void Assembler::xorq(Register dst, const Address& address) { |
} |
+void Assembler::xorq(const Address& dst, Register src) { |
+ AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
+ EmitOperandREX(src, dst, REX_W); |
+ EmitUint8(0x31); |
+ EmitOperand(src & 7, dst); |
+} |
+ |
+ |
void Assembler::addl(Register dst, Register src) { |
AssemblerBuffer::EnsureCapacity ensured(&buffer_); |
Operand operand(src); |
@@ -1501,6 +1509,12 @@ void Assembler::LoadObject(Register dst, const Object& object) { |
} |
+void Assembler::StoreObject(const Address& dst, const Object& object) { |
+ LoadObject(TMP, object); |
+ movq(dst, TMP); |
srdjan
2012/07/23 16:18:59
The code can be better for Smi.
|
+} |
+ |
+ |
void Assembler::PushObject(const Object& object) { |
if (object.IsSmi()) { |
pushq(Immediate(reinterpret_cast<int64_t>(object.raw()))); |