Какой код Java заставит javac 1.6 использовать коды операций swap и nop?

Я работаю над любительской реализацией 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

Есть идеи?

]
8
задан anol 20 May 2014 в 09:40
поделиться