"instruction [sn:%lli] at the head of the ROB, PC %#x.\n",
                     head_inst->seqNum, head_inst->readPC());
 
-#if !FULL_SYSTEM
             // Hack to make sure syscalls/memory barriers/quiesces
             // aren't executed until all stores write back their data.
             // This direct communication shouldn't be used for
             // anything other than this.
-            if (inst_num > 0 || iewStage->hasStoresToWB())
-#else
             if ((head_inst->isMemBarrier() || head_inst->isWriteBarrier() ||
                     head_inst->isQuiesce()) &&
                 iewStage->hasStoresToWB())
-#endif
             {
                 DPRINTF(Commit, "Waiting for all stores to writeback.\n");
                 return false;
+            } else if (inst_num > 0) {
+                DPRINTF(Commit, "Waiting to become head of commit.\n");
+                return false;
             }
 
             toIEW->commitInfo[tid].nonSpecSeqNum = head_inst->seqNum;
 
             }
 
             toRename->iewInfo[tid].dispatchedToLSQ++;
-#if FULL_SYSTEM
         } else if (inst->isMemBarrier() || inst->isWriteBarrier()) {
             // Same as non-speculative stores.
             inst->setCanCommit();
             instQueue.insertBarrier(inst);
             add_to_iq = false;
-#endif
         } else if (inst->isNonSpeculative()) {
             DPRINTF(IEW, "[tid:%i]: Issue: Nonspeculative instruction "
                     "encountered, skipping.\n", tid);
 
             "storeHead: %i addr: %#x\n",
             load_idx, store_idx, storeHead, req->getPaddr());
 
-#if FULL_SYSTEM
     if (req->isLocked()) {
         // Disable recording the result temporarily.  Writing to misc
         // regs normally updates the result, but this is not the
         TheISA::handleLockedRead(load_inst.get(), req);
         load_inst->recordResult = true;
     }
-#endif
 
     while (store_idx != -1) {
         // End once we've reached the top of the LSQ