code: private void branchIfDirty(CodeBuilder b, int propNumber,
                                 Label target, boolean branchIfDirty)
      {
          String stateFieldName = StorableGenerator.PROPERTY_STATE_FIELD_NAME + (propNumber >> 4);
          b.loadThis();
          b.loadField(stateFieldName, TypeDesc.INT);
  
          int shift = (propNumber & 0xf) * 2;
          b.loadConstant(StorableGenerator.PROPERTY_STATE_MASK << shift);
          b.math(Opcode.IAND);
          b.loadConstant(StorableGenerator.PROPERTY_STATE_DIRTY << shift);
  
          b.ifComparisonBranch(target, branchIfDirty ? "==" : "!=");
      }
docs: Generates code to branch if a property is dirty.
  
  @param propNumber property number from all properties map
  @param target branch target
  @param when true, branch if dirty; when false, branch when not dirty