1 package valhalla.vector; 2 3 import java.lang.invoke.MethodHandle; 4 import java.lang.invoke.MethodHandles; 5 import java.util.Objects; 6 7 import static valhalla.vector.Utils.*; 8 9 @jvm.internal.value.DeriveValueType 10 //@jvm.internal.Vector 11 public final class Long2 { 12 public static final int SIZE = Long.SIZE << 1; 13 14 public static final int BYTES = SIZE / Byte.SIZE; 15 16 public final long lo, hi; // FIXME: endianness 17 18 private static final Class<?> THIS_CLASS = Long2.class; 19 20 public static final MethodHandle FACTORY = VectorUtils.valueFactory(THIS_CLASS, MethodHandles.lookup()); 21 22 static { 23 run(() -> assertEquals(FACTORY.invokeWithArguments(1, 2), new Long2(1, 2))); 24 } 25 26 public Long2(long lo, long hi) { 27 this.lo = lo; 28 this.hi = hi; 29 } 30 31 @Override 32 public boolean equals(Object o) { 33 if (o instanceof Long2) { 34 Long2 v = (Long2)o; 35 return (this.lo == v.lo) && (this.hi == v.hi); 36 } 37 return false; 38 } 39 40 @Override 41 public int hashCode() { 42 return Objects.hash(lo, hi); 43 } 44 45 @Override 46 public String toString() { 47 return String.format("Long2 {128: 0x%08x | 0x%08x | 0x%08x | 0x%08x :0}", 48 hi >>> 32, hi & 0xFFFFFFFFL, 49 lo >>> 32, lo & 0xFFFFFFFFL); 50 } 51 }