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