staticfinalint ITER = 100000; // ~ Tier4CompileThreshold + compilation time
// dummy volatile variable publicstaticvolatilelong c = 0;
// C2 is expected to generate test bit instruction on the test staticvoid tstBitLong(long value) { if (1L == (1L & value)) {
c++;
} else {
c--;
}
}
// C2 is expected to generate test bit instruction on the test staticvoid tstBitInt(int value) { if (1 == (1 & value)) {
c++;
} else {
c--;
}
}
publicstaticvoid main(String[] args) throws Exception { if (args.length == 0) { // Fork VMs to check their debug compiler output
runTest("tstBitLong");
runTest("tstBitInt");
} if (args.length > 0) { // We are in a forked VM to execute the named test
String testName = args[0]; switch (testName) { case"tstBitLong": for (int i = 0; i < ITER; i++) {
tstBitLong(i % 2);
} break; case"tstBitInt": for (int i = 0; i < ITER; i++) {
tstBitInt(i % 2);
} break; default: thrownew RuntimeException("unexpected test name " + testName);
}
}
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.