Mercurial > hg > truffle
comparison graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiValueUtil.java @ 4323:df5547057954
Remove LIROpcode and use non-anonymous subclasses of LIRInstruction
author | Christian Wimmer <Christian.Wimmer@Oracle.com> |
---|---|
date | Wed, 25 Jan 2012 14:34:53 -0800 |
parents | 9ce8594bedaf |
children | d89b20486d87 |
comparison
equal
deleted
inserted
replaced
4322:49b33f8fcad7 | 4323:df5547057954 |
---|---|
108 assert value.kind == CiKind.Double; | 108 assert value.kind == CiKind.Double; |
109 return asRegister(value); | 109 return asRegister(value); |
110 } | 110 } |
111 | 111 |
112 | 112 |
113 public static boolean sameRegister(CiValue...values) { | 113 public static boolean sameRegister(CiValue v1, CiValue v2) { |
114 for (int i = 0; i < values.length; i++) { | 114 return isRegister(v1) && isRegister(v2) && asRegister(v1) == asRegister(v2); |
115 for (int j = i + 1; j < values.length; j++) { | |
116 if (isRegister(values[i]) && isRegister(values[j]) && asRegister(values[i]) != asRegister(values[j])) { | |
117 return false; | |
118 } | |
119 } | |
120 } | |
121 return true; | |
122 } | 115 } |
123 | 116 |
124 public static boolean differentRegisters(CiValue...values) { | 117 public static boolean sameRegister(CiValue v1, CiValue v2, CiValue v3) { |
125 for (int i = 0; i < values.length; i++) { | 118 return sameRegister(v1, v2) && sameRegister(v1, v3); |
126 for (int j = i + 1; j < values.length; j++) { | 119 } |
127 if (isRegister(values[i]) && isRegister(values[j]) && asRegister(values[i]) == asRegister(values[j])) { | 120 |
128 return false; | 121 public static boolean differentRegisters(CiValue v1, CiValue v2) { |
129 } | 122 return !isRegister(v1) || !isRegister(v2) || asRegister(v1) != asRegister(v2); |
130 } | 123 } |
131 } | 124 |
132 return true; | 125 public static boolean differentRegisters(CiValue v1, CiValue v2, CiValue v3) { |
126 return differentRegisters(v1, v2) && differentRegisters(v1, v3) && differentRegisters(v2, v3); | |
133 } | 127 } |
134 } | 128 } |