Я работаю над любительской реализацией JVM и пытаюсь убедиться, что у меня есть тестовое покрытие для всех кодов операций. в спец. Я дошел до последних нескольких, но nop
и swap
ускользали от меня. Например, вот простая функция, которая может использовать swap
:
static int do_swap() {
int a = 56;
int b = 32;
return b%a;
}
Но байт-код, созданный javac 1.6
, позволяет избежать подкачки вместо локального хранилища:
static int do_swap();
Code:
0: bipush 56
2: istore_0
3: bipush 32
5: istore_1
6: iload_1
7: iload_0
8: irem
9: ireturn
Есть идеи?
]