--- old/src/jdk.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/ValueUtil.java 2016-05-18 23:01:48.000000000 +0200 +++ new/src/jdk.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/ValueUtil.java 2016-05-18 23:01:48.000000000 +0200 @@ -22,9 +22,6 @@ */ package jdk.vm.ci.code; -import java.util.ArrayList; -import java.util.List; - import jdk.vm.ci.meta.AllocatableValue; import jdk.vm.ci.meta.JavaConstant; import jdk.vm.ci.meta.JavaValue; @@ -111,73 +108,4 @@ return asRegister(value); } } - - public static boolean sameRegister(Value v1, Value v2) { - return isRegister(v1) && isRegister(v2) && asRegister(v1).equals(asRegister(v2)); - } - - public static boolean sameRegister(Value v1, Value v2, Value v3) { - return sameRegister(v1, v2) && sameRegister(v1, v3); - } - - /** - * Checks if all the provided values are different physical registers. The parameters can be - * either {@link Register registers}, {@link Value values} or arrays of them. All values that - * are not {@link RegisterValue registers} are ignored. - */ - public static boolean differentRegisters(Object... values) { - List registers = collectRegisters(values, new ArrayList()); - for (int i = 1; i < registers.size(); i++) { - Register r1 = registers.get(i); - for (int j = 0; j < i; j++) { - Register r2 = registers.get(j); - if (r1.equals(r2)) { - return false; - } - } - } - return true; - } - - private static List collectRegisters(Object[] values, List registers) { - for (Object o : values) { - if (o instanceof Register) { - registers.add((Register) o); - } else if (o instanceof Value) { - if (isRegister((Value) o)) { - registers.add(asRegister((Value) o)); - } - } else if (o instanceof Object[]) { - collectRegisters((Object[]) o, registers); - } else { - throw new IllegalArgumentException("Not a Register or Value: " + o); - } - } - return registers; - } - - /** - * Subtract sets of registers (x - y). - * - * @param x a set of register to subtract from. - * @param y a set of registers to subtract. - * @return resulting set of registers (x - y). - */ - public static Value[] subtractRegisters(Value[] x, Value[] y) { - ArrayList result = new ArrayList<>(x.length); - for (Value i : x) { - boolean append = true; - for (Value j : y) { - if (ValueUtil.sameRegister(i, j)) { - append = false; - break; - } - } - if (append) { - result.add(i); - } - } - Value[] resultArray = new Value[result.size()]; - return result.toArray(resultArray); - } }