7
私はアマチュアJVMの実装に取り組んでいます。仕様のすべてのオペコードのテストカバレッジを確認しようとしています。私は最後の数にそれを下げましたが、nop
とswap
は私を逃れています。例えば、ここにswap
を使用する場合があります簡単な関数です:javac 1.6に 'スワップ'と 'nop'オペコードを強制的に適用するJavaコードはありますか?
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
任意のアイデア?
Jasminがないクラスファイルフォーマットのより曖昧な機能をサポートしているので、KrakatauアセンブラはJVMテストケースを生成するためにより有用であると思います。 (私はそれを発表した)開示。しかし、このような単純なことのために、ジャスミンは十分です。 – Antimony