linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

準仮想化 - PVOP_CALLEEx()

概要

準仮想環境下で実行される命令の置き換え、及び実行するための命令を生成し、実行した値を取得する

詳細

PVOP_CALLEE0、PVOP_CALLEE1、PVOP_CALLEE2のいずれかに該当し以下の処理を行う

返り値の型を示すrettypeと実行する命令が含まれる構造体op_を引数として受け取り、以下の引数を__PVOP_CALLEESAVE()に渡して実行し、準仮想環境下で実行される命令を生成する

  • 返り値の型を示す : rettype
  • 実行する命令を含む構造体 : op
  • 生成されるアセンブラの前に実行する命令 : "" (空文字)
  • 生成されるアセンブラの後に実行する命令 : "" (空文字)

尚、xが1以上の場合はPVOP_CALL_ARGx()に対応する引数を渡し生成した命令を、x数分引数に追加する