Index: src/compiler/x64/code-generator-x64.cc |
diff --git a/src/compiler/x64/code-generator-x64.cc b/src/compiler/x64/code-generator-x64.cc |
index 18ac9f9f3215b848d3a532098e8f577b909d0860..4d3a83a44ba4808a9a2943df1da11086a4c099fb 100644 |
--- a/src/compiler/x64/code-generator-x64.cc |
+++ b/src/compiler/x64/code-generator-x64.cc |
@@ -1718,6 +1718,24 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
} |
break; |
} |
+ case kX64Xchgb: { |
+ size_t index = 0; |
+ Operand operand = i.MemoryOperand(&index); |
+ __ xchgb(i.InputRegister(index), operand); |
+ break; |
+ } |
+ case kX64Xchgw: { |
+ size_t index = 0; |
+ Operand operand = i.MemoryOperand(&index); |
+ __ xchgw(i.InputRegister(index), operand); |
+ break; |
+ } |
+ case kX64Xchgl: { |
+ size_t index = 0; |
+ Operand operand = i.MemoryOperand(&index); |
+ __ xchgl(i.InputRegister(index), operand); |
+ break; |
+ } |
case kCheckedLoadInt8: |
ASSEMBLE_CHECKED_LOAD_INTEGER(movsxbl); |
break; |
@@ -1768,6 +1786,9 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
case kAtomicLoadInt16: |
case kAtomicLoadUint16: |
case kAtomicLoadWord32: |
+ case kAtomicStoreWord8: |
+ case kAtomicStoreWord16: |
+ case kAtomicStoreWord32: |
UNREACHABLE(); // Won't be generated by instruction selector. |
break; |
} |