127c127
< // Only loads and store conditionals perform the writeback
---
> // Only loads, store conditionals and atomics perform the writeback
129c129,130
< assert(inst->isLoad() || inst->isStoreConditional());
---
> assert(inst->isLoad() || inst->isStoreConditional() ||
> inst->isAtomic());
131c132
< if (inst->isStore()) {
---
> if (inst->isStore() || inst->isAtomic()) {
136a138,139
> // This is a regular store (i.e., not store conditionals and
> // atomics), so it can complete without writing back
277c280
< assert(inst->isLoad() || inst->isStore());
---
> assert(inst->isLoad() || inst->isStore() || inst->isAtomic());
617,618c620,621
< if (store_inst->isStoreConditional()) {
< // Store conditionals need to set themselves as able to
---
> if (store_inst->isStoreConditional() || store_inst->isAtomic()) {
> // Store conditionals and Atomics need to set themselves as able to
754,755c757,758
< if (inst->isStoreConditional()) {
< /* Only store conditionals need a writeback. */
---
> if (inst->isStoreConditional() || inst->isAtomic()) {
> /* Only store conditionals and atomics need a writeback. */