| 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 8f9b69d2c8b033f7654bbc6f53bd4b5d23934667..1a96a3a4c7950bdc9abbace94c806af4e1fdd954 100644
|
| --- a/src/compiler/x64/code-generator-x64.cc
|
| +++ b/src/compiler/x64/code-generator-x64.cc
|
| @@ -2136,24 +2136,6 @@ 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 kX64Int32x4Splat: {
|
| CpuFeatureScope sse_scope(masm(), SSE4_1);
|
| XMMRegister dst = i.OutputSimd128Register();
|
| @@ -2237,6 +2219,30 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
|
| case kX64StackCheck:
|
| __ CompareRoot(rsp, Heap::kStackLimitRootIndex);
|
| break;
|
| + case kAtomicExchangeInt8: {
|
| + __ xchgb(i.InputRegister(0), i.MemoryOperand(1));
|
| + __ movsxbl(i.InputRegister(0), i.InputRegister(0));
|
| + break;
|
| + }
|
| + case kAtomicExchangeUint8: {
|
| + __ xchgb(i.InputRegister(0), i.MemoryOperand(1));
|
| + __ movzxbl(i.InputRegister(0), i.InputRegister(0));
|
| + break;
|
| + }
|
| + case kAtomicExchangeInt16: {
|
| + __ xchgw(i.InputRegister(0), i.MemoryOperand(1));
|
| + __ movsxwl(i.InputRegister(0), i.InputRegister(0));
|
| + break;
|
| + }
|
| + case kAtomicExchangeUint16: {
|
| + __ xchgw(i.InputRegister(0), i.MemoryOperand(1));
|
| + __ movzxwl(i.InputRegister(0), i.InputRegister(0));
|
| + break;
|
| + }
|
| + case kAtomicExchangeWord32: {
|
| + __ xchgl(i.InputRegister(0), i.MemoryOperand(1));
|
| + break;
|
| + }
|
| case kAtomicLoadInt8:
|
| case kAtomicLoadUint8:
|
| case kAtomicLoadInt16:
|
|
|