anchor.diff:               st_computed_verify[verP], noAction);
   
   `else
  -        // WEAK: just check computed XXX don't verify fence for now
  -        when(st_computed_verify[verP], noAction);
  +        // WEAK: just check computed or fence
  +        when(st_computed_verify[verP] || st_memFunc[verP] == Fence, noAction);
   `endif
   
           // mark as verified and move verify ptr
  
positive.code:         endfunction
          Vector#(StQSize, Bool) overlapSts = map(isOverlapSt,
                                                  genWith(fromInteger));
          // FIXME DEBUG: Search older fences in SQ
          function Bool isFence(StQTag i);
              Bool valid_older = validOlderSts[i];
              return valid_older && st_memFunc[i] == Fence;
          endfunction
          Vector#(StQSize, Bool) fences = map(isFence, genWith(fromInteger));
  
          // search the youngest store, and derive issue result
          // FIXME DEBUG: we first search for fences in SQ
          if(findYoungestSt(fences) matches tagged Valid .fenceTag) begin
              issRes = Stall (StQ);
              ld_depStQDeq_issue[tag] <= Valid (fenceTag); 
          end
          else if(findYoungestSt(overlapSts) matches tagged Valid .stTag) begin
              // find an overlaping SQ entry, check its type
              case(st_memFunc[stTag])
                  Sc, Amo: begin
  
negative.code:                      "addr BE should be naturally aligned");
              doAssert(st_specBits_deqSt[deqP] == 0,
                       "must have zero spec bits");
          end
  
          // remove entry
  