anchor.diff:                  // Figure out if there is new speculation and if there is
                   // speculative renaming happening.
                   Bool new_speculation = False;
  -                Bool speculative_renaming = False;
  -                if (needReplay) begin
  -                    // since we are incrementing the epoch in epochManager
  -                    // without redirecting, we will not need to get a
  -                    // spec tag because no speculation will be done.
  -                    new_speculation = False;
  -                end else if (dInst.execFunc matches tagged Br .br) begin
  +                Bool speculative_renaming = False; // deprecated: this is originally for Ld/St checkpoint
  +                if (dInst.execFunc matches tagged Br .br) begin
                       // This instruction can cause a redirection due to branch
                       // misprediction. Lets claim a checkpoint for this instruction.
                       // If this instruction is a JAL or JRAL instruction, then the
  
positive.code:                 if(specNone && i != 0) begin
                      stop = True;
                  end
                  // When only non-mem inst can speculate, mem inst must be the
                  // first one, otherwise cannot process now
                  //if(dInst.execFunc matches tagged Mem .unused &&& specNonMem &&& i != 0) begin
                  //    stop = True;
                  //end
  `endif
                  // check renaming table can be enq, otherwise cannot process now
                  if(!regRenamingTable.rename[i].canRename) begin
  
negative.code:                 if(isValid(getTrap(x))) begin
                      stop = True;
                  end
                  // for system inst, process in next cycle (in a different rule)
                  if(doReplay(dInst.iType)) begin
                      stop = True;
                  end
  `ifdef SECURITY
  