Java バイトコードには DUP2 や SWAP はあっても
SWAP2 はない.
double と long は 2 ワードを使うので,これらがスタックの一番上に
あると,SWAP は使えない.
double val, double val, object ref1, object ref2
を
object ref1, object ref2, double val, double val
にしたい場合は以下のようにすればよい.
DUP2_X2 POP2
DUP2_X2 とすると
double val, double val, object ref1, object ref2, double val, double val[/srv] になり,これに対して POP2 すると [src]object ref1, object ref2, double val, double val
となる.
こんなこと書いても理解できる人は少数なんだろうな.