 Chromium Code Reviews
 Chromium Code Reviews Issue 10805053:
  Add spill slot locations.  (Closed) 
  Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
    
  
    Issue 10805053:
  Add spill slot locations.  (Closed) 
  Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart| Index: runtime/vm/assembler_x64.h | 
| diff --git a/runtime/vm/assembler_x64.h b/runtime/vm/assembler_x64.h | 
| index d081f4c50927b4757587e8f24ef2ed45b47c60df..f8c8b34ee6f7ddd2ac17a737782f7c991dfddbe1 100644 | 
| --- a/runtime/vm/assembler_x64.h | 
| +++ b/runtime/vm/assembler_x64.h | 
| @@ -389,6 +389,7 @@ class Assembler : public ValueObject { | 
| void xorq(Register dst, Register src); | 
| void xorq(Register dst, const Address& address); | 
| + void xorq(const Address& dst, Register src); | 
| 
srdjan
2012/07/23 16:18:59
New assembly functions need test.
 | 
| void addl(Register dst, Register src); | 
| void addl(const Address& address, const Immediate& imm); | 
| @@ -492,6 +493,25 @@ class Assembler : public ValueObject { | 
| cmpxchgq(address, reg); | 
| } | 
| + // Issue memory to memory move through a TMP register. | 
| + void MoveMemory(const Address& dst, const Address& src) { | 
| + movq(TMP, src); | 
| + movq(dst, TMP); | 
| + } | 
| + | 
| + void Exchange(Register reg, const Address& mem) { | 
| + movq(TMP, mem); | 
| + movq(mem, reg); | 
| + movq(reg, TMP); | 
| + } | 
| + | 
| + void Exchange(const Address& mem1, const Address& mem2) { | 
| + movq(TMP, mem1); | 
| + xorq(TMP, mem2); | 
| + xorq(mem1, TMP); | 
| + xorq(mem2, TMP); | 
| + } | 
| + | 
| /* | 
| * Macros for High-level operations and implemented on all architectures. | 
| */ | 
| @@ -508,6 +528,7 @@ class Assembler : public ValueObject { | 
| void Drop(intptr_t stack_elements); | 
| void LoadObject(Register dst, const Object& object); | 
| + void StoreObject(const Address& dst, const Object& obj); | 
| void PushObject(const Object& object); | 
| void CompareObject(Register reg, const Object& object); | 
| void LoadDoubleConstant(XmmRegister dst, double value); |