| Index: src/compiler/arm/code-generator-arm.cc
 | 
| diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc
 | 
| index 5900955e78fd9d2eb8e7d00f0cf19695dc8fd069..a57f1beec2d5a198fc79790a6037844aaeb33068 100644
 | 
| --- a/src/compiler/arm/code-generator-arm.cc
 | 
| +++ b/src/compiler/arm/code-generator-arm.cc
 | 
| @@ -395,6 +395,14 @@ Condition FlagsConditionToCondition(FlagsCondition condition) {
 | 
|      __ dmb(ISH);                                                      \
 | 
|    } while (0)
 | 
|  
 | 
| +#define ASSEMBLE_ATOMIC_STORE_INTEGER(asm_instr)                      \
 | 
| +  do {                                                                \
 | 
| +    __ dmb(ISH);                                                      \
 | 
| +    __ asm_instr(i.InputRegister(2),                                  \
 | 
| +                 MemOperand(i.InputRegister(0), i.InputRegister(1))); \
 | 
| +    __ dmb(ISH);                                                      \
 | 
| +  } while (0)
 | 
| +
 | 
|  void CodeGenerator::AssembleDeconstructFrame() {
 | 
|    __ LeaveFrame(StackFrame::MANUAL);
 | 
|  }
 | 
| @@ -1274,6 +1282,16 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
 | 
|      case kAtomicLoadWord32:
 | 
|        ASSEMBLE_ATOMIC_LOAD_INTEGER(ldr);
 | 
|        break;
 | 
| +
 | 
| +    case kAtomicStoreWord8:
 | 
| +      ASSEMBLE_ATOMIC_STORE_INTEGER(strb);
 | 
| +      break;
 | 
| +    case kAtomicStoreWord16:
 | 
| +      ASSEMBLE_ATOMIC_STORE_INTEGER(strh);
 | 
| +      break;
 | 
| +    case kAtomicStoreWord32:
 | 
| +      ASSEMBLE_ATOMIC_STORE_INTEGER(str);
 | 
| +      break;
 | 
|    }
 | 
|    return kSuccess;
 | 
|  }  // NOLINT(readability/fn_size)
 | 
| 
 |