Index: src/compiler/ia32/code-generator-ia32.cc |
diff --git a/src/compiler/ia32/code-generator-ia32.cc b/src/compiler/ia32/code-generator-ia32.cc |
index 5f0ad29c86975bce9124f1c350093c3bdd8601a5..3410e7b014fe4a4282de3bd6feec4d25e0451fc8 100644 |
--- a/src/compiler/ia32/code-generator-ia32.cc |
+++ b/src/compiler/ia32/code-generator-ia32.cc |
@@ -1280,6 +1280,24 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction( |
} |
break; |
} |
+ case kIA32Xchgb: { |
+ size_t index = 0; |
+ Operand operand = i.MemoryOperand(&index); |
+ __ xchg_b(i.InputRegister(index), operand); |
+ break; |
+ } |
+ case kIA32Xchgw: { |
+ size_t index = 0; |
+ Operand operand = i.MemoryOperand(&index); |
+ __ xchg_w(i.InputRegister(index), operand); |
+ break; |
+ } |
+ case kIA32Xchgl: { |
+ size_t index = 0; |
+ Operand operand = i.MemoryOperand(&index); |
+ __ xchg(i.InputRegister(index), operand); |
+ break; |
+ } |
case kCheckedLoadInt8: |
ASSEMBLE_CHECKED_LOAD_INTEGER(movsx_b); |
break; |
@@ -1331,6 +1349,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; |
} |