graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java Fri Nov 14 23:17:58 2014
--- new/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java Fri Nov 14 23:17:58 2014
*** 1002,1011 ****
--- 1002,1031 ----
append(new AMD64BitManipulationOp(LBSR, result, asAllocatable(value)));
}
return result;
}
+ public Value emitCountLeadingZeros(Value value) {
+ Variable result = newVariable(LIRKind.derive(value).changeType(Kind.Int));
+ if (value.getKind().getStackKind() == Kind.Int) {
+ append(new AMD64BitManipulationOp(ILZCNT, result, asAllocatable(value)));
+ } else {
+ append(new AMD64BitManipulationOp(LLZCNT, result, asAllocatable(value)));
+ }
+ return result;
+ }
+
+ public Value emitCountTrailingZeros(Value value) {
+ Variable result = newVariable(LIRKind.derive(value).changeType(Kind.Int));
+ if (value.getKind().getStackKind() == Kind.Int) {
+ append(new AMD64BitManipulationOp(ITZCNT, result, asAllocatable(value)));
+ } else {
+ append(new AMD64BitManipulationOp(LTZCNT, result, asAllocatable(value)));
+ }
+ return result;
+ }
+
@Override
public Value emitMathAbs(Value input) {
Variable result = newVariable(LIRKind.derive(input));
switch (input.getKind()) {
case Float:
graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File