зеркало из https://github.com/mozilla/gecko-dev.git
In ClassFileWriter.addPush(double) use DNEG to generate more compact code for -0.0 and -1.0
This commit is contained in:
Родитель
f260baaf11
Коммит
b7d4dfaa28
|
@ -844,11 +844,18 @@ public class ClassFileWriter {
|
|||
*/
|
||||
public void addPush(double k)
|
||||
{
|
||||
if (k == 0.0 && 1.0 / k >= 0.0) {
|
||||
// Positive zero
|
||||
if (k == 0.0) {
|
||||
// zero
|
||||
add(ByteCode.DCONST_0);
|
||||
} else if (k == 1.0) {
|
||||
if (1.0 / k < 0) {
|
||||
// Negative zero
|
||||
add(ByteCode.DNEG);
|
||||
}
|
||||
} else if (k == 1.0 || k == -1.0) {
|
||||
add(ByteCode.DCONST_1);
|
||||
if (k < 0) {
|
||||
add(ByteCode.DNEG);
|
||||
}
|
||||
} else {
|
||||
addLoadConstant(k);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче