anchor.diff:  		     hitReg <= tlp.hit;
   		     TLPMemoryIO3DWHeader hdr_3dw = unpack(tlp.data);
   		     Vector#(4, Bit#(32)) vec = unpack(0);
  +		     Vector#(4, Bit#(32)) tlpvec = unpack(tlp.data);
   		     if (!tlp.sof) begin
  -			for (Integer i = 0; i < 4; i = i+1) begin
  -			   if (tlp.be[(i+1)*4-1:i*4] == 4'hf) begin
  -			      vec[i] = tlp.data[(i+1)*32-1:i*32];
  -			   end
  +			let count = tlpWordCount(tlp);
  +			for (Integer i = 0; i < count; i = i+1) begin
  +			   vec[i] = tlpvec[count-1-i];
   			end
  -			let count = tlpWordCount(tlp);
   			completionMimo.enq(count, vec);
   			completionTagMimo.enq(count, replicate(lastTag));
   		     end
  
positive.code: 	  hdr_4dw.lastbe = 0;
  	  tlp.data = pack(hdr_4dw);
  
  	  interruptSecondHalf <= True;
         end
  
         if (sendInterrupt)
  	  tlpOutFifo.enq(tlp);
      endrule
  
  //    rule interruptTlpDataOut if (interruptSecondHalf);
  //       TLPData#(16) tlp = defaultValue;
  //       tlp.sof = False;
  //       tlp.eof = True;
  //       tlp.hit = 7'h00;
  //       tlp.be = 16'hf000;
  //       tlp.data[7+8*15:8*12] = byteSwap(interruptDataReg);
  //       tlpOutFifo.enq(tlp);
  //       interruptSecondHalf <= False;
  //       interruptRequestedReg <= False;
  //    endrule
  
      interface Put tlp_in;
          method Action put(TLPData#(16) tlp);
  
negative.code:         timerReg <= timerReg - 1;
      endrule
  
      rule interruptTlpOut if (interruptRequestedReg && !interruptSecondHalf);
         TLPData#(16) tlp = defaultValue;
         tlp.sof = True;
         tlp.eof = False;
         tlp.hit = 7'h00;
         tlp.be = 16'hffff;
  
         let sendInterrupt = False;
         let interruptRequested = interruptRequestedReg;
  
         if (interruptAddrReg == '0) begin
  	  // do not write to 0 -- it wedges the host
  	  interruptRequested = False;
         end
         else if (interruptAddrReg[63:32] == '0) begin
            TLPMemoryIO3DWHeader hdr_3dw = defaultValue();
            hdr_3dw.format = MEM_WRITE_3DW_DATA;
  	  //hdr_3dw.pkttype = MEM_READ_WRITE;
  