Top

低レベル中間語(MachNode)用のクラス (MachOper, MachNode, MachIdealNode, MachTypeNode, MachBreakpointNode, MachConstantBaseNode, MachConstantNode, MachUEPNode, MachPrologNode, MachEpilogNode, MachNopNode, MachSpillCopyNode, MachNullCheckNode, MachProjNode, MachIfNode, MachFastLockNode, MachReturnNode, MachSafePointNode, MachCallNode, MachCallJavaNode, MachCallStaticJavaNode, MachCallDynamicJavaNode, MachCallRuntimeNode, MachCallLeafNode, MachHaltNode, MachTempNode, labelOper, methodOper)

これらは, C2 JIT Compiler 用の低レベル中間語.

概要(Summary)

C2 JIT Compiler 用の低レベル中間語は MachNode クラスのサブクラスとして表現されている. また命令のオペランドは MachOper クラスのサブクラスとして表現されている

ただし, MachNode クラス/MachOper クラスのサブクラスの大半は AD ファイルで定義されている. そのため, ここでは MachNode 関連の基底クラス, 及び AD ファイルで定義できない MachNode クラス (MachIdealNode クラス及びそのサブクラス) が定義されている.

クラス一覧(class list)


MachNode

概要(Summary)

低レベル中間語における命令を表す Node クラスの基底クラス. 低レベル中間語の Node は MachNode クラスのサブクラスとして表現されている.

(低レベル中間語であるため, 多くの MachNode クラスでは 1つの MachNode オブジェクトが 1つのマシン語命令に対応する. ただし多数のマシン語命令に対応するような大きな MachNode もある)

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照) (なお, AD ファイル以外で定義されているサブクラスも存在する).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachNode---------------------------------------
    // Base type for all machine specific nodes.  All node classes generated by the
    // ADLC inherit from this class.
    class MachNode : public Node {

使われ方(Usage)

使用する際には, rule() メソッド等をオーバーライドしたサブクラスを作ればいい.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      virtual uint rule() const = 0;        // Machine-specific opcode

内部構造(Internal structure)

スーパークラスである Node クラスのフィールドに加えて, 以下のフィールドを持つ.

オペランドの個数

オペランドを表す MachOper の配列

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      // Array of complex operand pointers.  Each corresponds to zero or
      // more leafs.  Must be set by MachNode constructor to point to an
      // internal array of MachOpers.  The MachOper array is sized by
      // specific MachNodes described in the ADL.
      uint _num_opnds;
      MachOper **_opnds;

詳細(Details)

See: here for details


MachOper

概要(Summary)

低レベル中間語における「オペランド」を表すクラスの基底クラス (e.g. レジスタ, 即値, メモリアドレス(アドレッシングモード), etc).

MachNode が作るグラフ上では, 各 MachNode オブジェクトの MachNode::_opnds フィールドに格納されている.

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (OPERANDS 節を参照) (なお, AD ファイル以外で定義されているサブクラスも存在する).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //---------------------------MachOper------------------------------------------
    class MachOper : public ResourceObj {

使われ方(Usage)

使用する際には, opcode() メソッド等をオーバーライドしたサブクラスを作ればいい.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      // Opcode
      virtual uint opcode() const = 0;

詳細(Details)

See: here for details


MachTypeNode

概要(Summary)

MachNode クラスのサブクラスの1つ.

型情報を持つ MachNode クラスの基底クラス.

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachTypeNode----------------------------
    // Machine Nodes that need to retain a known Type.
    class MachTypeNode : public MachNode {

内部構造(Internal structure)

スーパークラスである MachNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      const Type *_bottom_type;

詳細(Details)

See: here for details


MachIdealNode

概要(Summary)

MachNode クラスのサブクラスの1つ.

通常の MachNode クラスは AD ファイル内で定義され Matcher によって Ideal から生成される. MachIdealNode はそれ以外の MachNode クラスの基底クラス (これらは C++ で書かれたソースコード中で明示的に生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachIdealNode----------------------------
    // Machine specific versions of nodes that must be defined by user.
    // These are not converted by matcher from ideal nodes to machine nodes
    // but are inserted into the code by the compiler.
    class MachIdealNode : public MachNode {

詳細(Details)

See: here for details


MachBreakpointNode

概要(Summary)

MachIdealNode クラスの具象サブクラスの1つ.

ブレークポイント命令を表す.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachBreakpointNode----------------------------
    // Machine breakpoint or interrupt Node
    class MachBreakpointNode : public MachIdealNode {

使われ方(Usage)

Compile::Output() 内で(のみ)生成されている.

なお, 現在は以下の箇所に埋め込まれている模様.

詳細(Details)

See: here for details


MachConstantBaseNode

概要(Summary)

MachIdealNode クラスの具象サブクラスの1つ.

constant table のアドレスを表す (See: Compile::ConstantTable).

ただし現状では sparc 上でしか意味を持たない (x86 では MachConstantBaseNode::emit() は空) (See: MachConstantBaseNode::emit(), Compile::ConstantTable::calculate_offsets_and_size()).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachConstantBaseNode--------------------------
    // Machine node that represents the base address of the constant table.
    class MachConstantBaseNode : public MachIdealNode {

使われ方(Usage)

インスタンスの格納場所(where its instances are stored)

各 Compile オブジェクトの _mach_constant_base_node フィールドに(のみ)格納されている (ただし, MachConstantBaseNode オブジェクトの生成自体は実際に必要になるまで遅延されている).

生成箇所(where its instances are created)

Compile::mach_constant_base_node() 内で(のみ)生成されている (= 初めて使用される時まで生成が遅延されている).

詳細(Details)

See: here for details


MachConstantNode

概要(Summary)

MachNode クラスのサブクラスの1つ.

constant table 中の定数値を表す MachNode クラスの基底クラス (See: Compile::ConstantTable, Compile::Constant).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachConstantNode-------------------------------
    // Machine node that holds a constant which is stored in the constant table.
    class MachConstantNode : public MachNode {

内部構造(Internal structure)

スーパークラスである MachNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      Compile::Constant _constant;  // This node's constant.

詳細(Details)

See: here for details


MachUEPNode

概要(Summary)

MachIdealNode クラスの具象サブクラスの1つ.

"Unvalidated Entry Point (または Unverified Entry Point)" の処理を表す MachIdealNode

(なお Unvalidated Entry Point とは, Inline Caching 用のエントリポイント. このエントリポイントに到達した段階では型が正しいかどうかは判明しておらず, ここで type check を受けて実際のエントリポイント(VEP(verified entry point))へと進む).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachUEPNode-----------------------------------
    // Machine Unvalidated Entry Point Node
    class MachUEPNode : public MachIdealNode {

使われ方(Usage)

Compile::Output() 内で(のみ)生成されている.

(メソッドの先頭に埋め込まれる)

内部構造(Internal structure)

MachUEPNode::emit() に "Unvalidated Entry Point" 処理を出力するルーチンが実装されている.

詳細(Details)

See: here for details


MachPrologNode

概要(Summary)

MachIdealNode クラスの具象サブクラスの1つ.

メソッド開始時の処理を表す (e.g. レジスタの退避, スタックフレームの確保, etc).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachPrologNode--------------------------------
    // Machine function Prolog Node
    class MachPrologNode : public MachIdealNode {

使われ方(Usage)

Compile::Output() 内で(のみ)生成されている.

(StartNode と置き換えられる形で, メソッドの先頭に埋め込まれる) (See: StartNode)

内部構造(Internal structure)

MachPrologNode::emit() にメソッド開始時処理を出力するルーチンが実装されている.

詳細(Details)

See: here for details


MachEpilogNode

概要(Summary)

MachIdealNode クラスの具象サブクラスの1つ.

メソッド終了時(return直前)の処理を表す (e.g. レジスタの復帰, スタックフレームの破棄, etc).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachEpilogNode--------------------------------
    // Machine function Epilog Node
    class MachEpilogNode : public MachIdealNode {

使われ方(Usage)

Compile::Output() 内で(のみ)生成されている.

(コンパイル対象のメソッドから exit する Node (e.g. ReturnNode, RethrowNode, TailCallNode, etc) の直前に挿入される)

内部構造(Internal structure)

MachEpilogNode::emit() にメソッド終了時処理を出力するルーチンが実装されている.

詳細(Details)

See: here for details


MachNopNode

概要(Summary)

MachIdealNode クラスの具象サブクラスの1つ.

NOP 命令を表す.

(これはパディングを入れる際などに使用されている)

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachNopNode-----------------------------------
    // Machine function Nop Node
    class MachNopNode : public MachIdealNode {

使われ方(Usage)

インスタンスの格納場所(where its instances are stored)

(フィールド内に格納されているインスタンスも存在する)

生成箇所(where its instances are created)

以下の箇所で(のみ)生成されている.

(Scheduling::_nop フィールドの初期化用)

(これは AD ファイルから生成される関数)

内部構造(Internal structure)

MachNopNode::emit() に NOP 命令を出力するルーチンが実装されている.

詳細(Details)

See: here for details


MachSpillCopyNode

概要(Summary)

MachIdealNode クラスの具象サブクラスの1つ.

レジスタ割り当てでスピルが発生した場合のコピー処理を表す.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachSpillCopyNode------------------------------
    // Machine SpillCopy Node.  Copies 1 or 2 words from any location to any
    // location (stack or register).
    class MachSpillCopyNode : public MachIdealNode {

使われ方(Usage)

以下の箇所で(のみ)生成されている.

内部構造(Internal structure)

MachSpillCopyNode::emit() にコピー処理を出力するルーチンが実装されている.

詳細(Details)

See: here for details


MachNullCheckNode

概要(Summary)

MachIdealNode クラスの具象サブクラスの1つ.

NULL かどうかの暗黙的な検査処理(implicit null check)を表す.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachNullChkNode--------------------------------
    // Machine-dependent null-pointer-check Node.  Points a real MachNode that is
    // also some kind of memory op.  Turns the indicated MachNode into a
    // conditional branch with good latency on the ptr-not-null path and awful
    // latency on the pointer-is-null path.

    class MachNullCheckNode : public MachIdealNode {

使われ方(Usage)

Block::implicit_null_check() 内で(のみ)生成されている.

内部構造(Internal structure)

MachNullCheckNode::emit() に検査処理を出力するルーチンが実装されている (といっても implicit null check なので何もしない).

詳細(Details)

See: here for details


MachProjNode

概要(Summary)

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachProjNode----------------------------------
    // Machine-dependent Ideal projections (how is that for an oxymoron).  Really
    // just MachNodes made by the Ideal world that replicate simple projections
    // but with machine-dependent input & output register masks.  Generally
    // produced as part of calling conventions.  Normally I make MachNodes as part
    // of the Matcher process, but the Matcher is ill suited to issues involving
    // frame handling, so frame handling is all done in the Ideal world with
    // occasional callbacks to the machine model for important info.
    class MachProjNode : public ProjNode {

使われ方(Usage)

インスタンスの格納場所(where its instances are stored)

生成箇所(where its instances are created)

使用箇所(where its instances are used)

内部構造(Internal structure)

詳細(Details)

See: here for details


MachIfNode

概要(Summary)

MachNode クラスのサブクラスの1つ.

Ideal における IfNode/CountedLoopEndNode/etc(?#TODO) の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachIfNode-------------------------------------
    // Machine-specific versions of IfNodes
    class MachIfNode : public MachNode {

内部構造(Internal structure)

スーパークラスである MachNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      float _prob;                  // Probability branch goes either way
      float _fcnt;                  // Frequency counter

詳細(Details)

See: here for details


MachFastLockNode

概要(Summary)

MachNode クラスのサブクラスの1つ.

Ideal における FastLockNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachFastLockNode-------------------------------------
    // Machine-specific versions of FastLockNodes
    class MachFastLockNode : public MachNode {

内部構造(Internal structure)

スーパークラスである MachNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      BiasedLockingCounters* _counters;

詳細(Details)

See: here for details


MachReturnNode

概要(Summary)

MachNode クラスのサブクラスの1つ.

Ideal における ReturnNode/Rethrow/TailCallNode/etc(?#TODO) の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照) (なお, AD ファイル以外で定義されているサブクラスも存在する).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachReturnNode--------------------------------
    // Machine-specific versions of subroutine returns
    class MachReturnNode : public MachNode {

内部構造(Internal structure)

スーパークラスである MachNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      RegMask *_in_rms;             // Input register masks, set during allocation
      ReallocMark _nesting;         // assertion check for reallocations
      const TypePtr* _adr_type;     // memory effects of call or return

詳細(Details)

See: here for details


MachSafePointNode

概要(Summary)

MachReturnNode クラスのサブクラスの1つ.

Ideal における SafePointNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

(何故 MachReturnNode のサブクラスかというと... ?? #TODO)

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照) (なお, AD ファイル以外で定義されているサブクラスも存在する).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachSafePointNode-----------------------------
    // Machine-specific versions of safepoints
    class MachSafePointNode : public MachReturnNode {

内部構造(Internal structure)

スーパークラスである MachReturnNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      OopMap*         _oop_map;     // Array of OopMap info (8-bit char) for GC
      JVMState*       _jvms;        // Pointer to list of JVM State Objects
      uint            _jvmadj;      // Extra delta to jvms indexes (mach. args)

詳細(Details)

See: here for details


MachCallNode

概要(Summary)

MachSafePointNode クラスのサブクラスの1つ.

Ideal における CallNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachCallNode----------------------------------
    // Machine-specific versions of subroutine calls
    class MachCallNode : public MachSafePointNode {

内部構造(Internal structure)

スーパークラスである MachSafePointNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      const TypeFunc *_tf;        // Function type
      address      _entry_point;  // Address of the method being called
      float        _cnt;          // Estimate of number of times called
      uint         _argsize;      // Size of argument block on stack

詳細(Details)

See: here for details


MachCallJavaNode

概要(Summary)

MachCallNode クラスのサブクラスの1つ.

Ideal における CallJavaNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachCallJavaNode------------------------------
    // "Base" class for machine-specific versions of subroutine calls
    class MachCallJavaNode : public MachCallNode {

内部構造(Internal structure)

スーパークラスである MachCallNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      ciMethod* _method;             // Method being direct called
      int        _bci;               // Byte Code index of call byte code
      bool       _optimized_virtual; // Tells if node is a static call or an optimized virtual
      bool       _method_handle_invoke;   // Tells if the call has to preserve SP

詳細(Details)

See: here for details


MachCallStaticJavaNode

概要(Summary)

MachCallJavaNode クラスのサブクラスの1つ.

Ideal における CallStaticJavaNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachCallStaticJavaNode------------------------
    // Machine-specific versions of monomorphic subroutine calls
    class MachCallStaticJavaNode : public MachCallJavaNode {

内部構造(Internal structure)

スーパークラスである MachCallJavaNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      const char *_name;            // Runtime wrapper name

詳細(Details)

See: here for details


MachCallDynamicJavaNode

概要(Summary)

MachCallJavaNode クラスのサブクラスの1つ.

Ideal における CallDynamicJavaNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachCallDynamicJavaNode------------------------
    // Machine-specific versions of possibly megamorphic subroutine calls
    class MachCallDynamicJavaNode : public MachCallJavaNode {

内部構造(Internal structure)

スーパークラスである MachCallJavaNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      int _vtable_index;

詳細(Details)

See: here for details


MachCallRuntimeNode

概要(Summary)

MachCallJavaNode クラスのサブクラスの1つ.

Ideal における CallRuntimeNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照) (なお, AD ファイル以外で定義されているサブクラスも存在する).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachCallRuntimeNode----------------------------
    // Machine-specific versions of subroutine calls
    class MachCallRuntimeNode : public MachCallNode {

内部構造(Internal structure)

スーパークラスである MachCallJavaNode クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      const char *_name;            // Printable name, if _method is NULL

詳細(Details)

See: here for details


MachCallLeafNode

概要(Summary)

MachCallRuntimeNode クラスのサブクラス.

Ideal における CallLeafNode/CallLeafNoFPNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照) (なお, AD ファイル以外で定義されているサブクラスも存在する).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    class MachCallLeafNode: public MachCallRuntimeNode {

内部構造(Internal structure)

このクラスで新たに定義されたフィールドはない.

詳細(Details)

See: here for details


MachHaltNode

概要(Summary)

MachReturnNode クラスのサブクラス.

Ideal における HaltNode の MachNode 版 (上記の Ideal からはこのクラス(のサブクラス)が生成される).

なお, このクラス自体は abstract class であり, 実際に使われるのはサブクラス. サブクラスは AD ファイル内で定義されている (INSTRUCTIONS 節を参照).

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachHaltNode-----------------------------------
    // Machine-specific versions of halt nodes
    class MachHaltNode : public MachReturnNode {

内部構造(Internal structure)

このクラスで新たに定義されたフィールドはない.

詳細(Details)

See: here for details


MachTempNode

概要(Summary)

MachNode クラスの具象サブクラスの1つ.

ADLC が使用する temporary register を表現するための MachNode.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------MachTempNode-----------------------------------
    // Node used by the adlc to construct inputs to represent temporary registers
    class MachTempNode : public MachNode {

使われ方(Usage)

ADLC が生成する各 MachNode クラスの MachNode::Expand() 内で使用されている模様 (なお, MachNode::Expand() はひとつの MachNode を複数の MachNodes に分割したい時に使うメソッド). (#TODO 他の使用箇所)

詳細(Details)

See: here for details


labelOper

概要(Summary)

MachOper クラスの具象サブクラスの1つ.

このクラスは, ブランチ命令の飛び先となる「ラベル」を表す.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------labelOper--------------------------------------
    // Machine-independent version of label operand
    class labelOper : public MachOper {

使われ方(Usage)

生成箇所(where its instances are created)

以下の箇所で生成されている. (#TODO 他の生成箇所)

(これは ADLC が生成する関数)

内部構造(Internal structure)

スーパークラスである MachOper クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      // Supported for fixed size branches
      Label* _label;                // Label for branch(es)

      uint _block_num;

詳細(Details)

See: here for details


methodOper

概要(Summary)

MachOper クラスの具象サブクラスの1つ.

このクラスは, メソッド呼び出し命令が使用する「メソッドの先頭アドレス」を表す.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
    //------------------------------methodOper--------------------------------------
    // Machine-independent version of method operand
    class methodOper : public MachOper {

使われ方(Usage)

生成箇所(where its instances are created)

以下の箇所で生成されている. (#TODO 他の生成箇所)

(これは ADLC が生成する関数)

(これは ADLC が生成する関数)

内部構造(Internal structure)

スーパークラスである MachOper クラスのフィールドに加えて, 以下のフィールドを持つ.

    ((cite: hotspot/src/share/vm/opto/machnode.hpp))
      intptr_t _method;             // Address of method

詳細(Details)

See: here for details



This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.