code: public boolean compareAndSet(long encoded, int hi, int lo) {
          long update = encode(hi, lo);
          return compareAndSet(encoded, update);
      }
docs: Atomically sets the values to the given updated values only if
  the current encoded value {@code ==} the expected encoded value.
  
  @param encoded the expected encoded value
  @param hi      the new hi value
  @param lo      the new lo value
  @return {@code true} if successful. False return indicates that
  the actual encoded value was not equal to the expected encoded value.