インタフェースDiscontinuedInstruction.JsrInstruction

すべてのスーパー・インタフェース:
ClassFileElement, CodeElement, DiscontinuedInstruction, Instruction
含まれているインタフェース:
DiscontinuedInstruction

public static sealed interface DiscontinuedInstruction.JsrInstruction extends DiscontinuedInstruction
モデルは、クラス・ファイルのメジャー・バージョン51 (JVMS 4.9.1)以降、Code属性のcode配列から中断されたサブルーチン命令をジャンプします。 対応するopcodesのkindOpcode.Kind.DISCONTINUED_JSRです。 CodeModelの要素をトラバースするときに、CodeElementとして提供されます。

ジャンプ・サブルーチン命令はコンポジットです:

JsrInstruction(Label target)

物理的な制限により、jsr命令はコード要素のリストでラベルを遠すぎてエンコードできません。 このような場合、ClassFile.ShortJumpsOptionは、無効なjsr命令モデルがCodeBuilderによってどのように書き込まれるかを制御します。

ジャンプ・サブルーチン命令はreturnAddress値をオペランド・スタックにプッシュし、astoreシリーズの命令は、この値をローカル変数スロットに格納できます。

APIのノート:
ジャンプ・サブルーチン命令は中止され、StackMapTable属性を使用して(JVMS 4.10.1)タイプによる検証が強制されます。
導入されたバージョン:
24
関連項目:
  • メソッドの詳細

    • target

      Label target()
      ジャンプ・サブルーチン命令のターゲットを返します。
      戻り値:
      ジャンプ・サブルーチン命令のターゲット
    • of

      ジャンプ・サブルーチン命令を返します。
      APIのノート:
      明示的なop引数を使用すると、短いジャンプを回避するためにjsr_w命令を作成できます。
      パラメータ:
      op - 特定のタイプのジャンプ・サブルーチン命令のopcode。Opcode.Kind.DISCONTINUED_JSRの種類である必要があります
      target - サブルーチンのターゲット・ラベル
      戻り値:
      ジャンプ・サブルーチン命令
      スロー:
      IllegalArgumentException - opcodeの種類がOpcode.Kind.DISCONTINUED_JSRでない場合。
    • of

      ジャンプ・サブルーチン命令を返します。
      パラメータ:
      target - サブルーチンのターゲット・ラベル
      戻り値:
      ジャンプ・サブルーチン命令