10

私はアマチュア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

何か案は?

4

1 に答える 1

7

なし。Java言語仕様は、そのような保証を提供しません。Jasmin(バイトコードアセンブラ)を使用して、独自のJavaバイトコードを記述できます。

于 2012-03-15T15:02:43.347 に答える