日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 部 : 概念と方法
第 1 章:Macro-32コードの移植の準備
第 2 章:MACROコンパイラのプラットフォームごとの動作
第 3 章:ソースに対する推奨される変更と必要な変更
第 4 章:移植したコードの性能改善
第 5 章:MACROの64ビット・アドレッシングのサポート
第 2 部:リファレンス・セクション
付録 A :MACROコンパイラの修飾子
付録 B :専用の指示文
付録 C :MACROコンパイラ・ビルトイン
付録 D :VAXからAlphaまたはI64への移植用のマクロ
付録 E :64ビット・アドレッシング用のマクロ
索引
PDF
OpenVMS ホーム
HP OpenVMS MACRO コンパイラポーティングおよびユーザーズ・ガイド

HP OpenVMS MACRO コンパイラ
ポーティングおよびユーザーズ・ガイド


目次 索引




イメージの初期化時に $LOCK_PAGE_INIT マクロによってロックされるコード・セクションの先頭をマークします。

形式

$LOCKED_PAGE_START

このマクロには,パラメータはありません。


説明

$LOCKED_PAGE_START は $LOCKED_PAGE_END とともに使用され,イメージの初期化時に $LOCK_PAGE_INIT マクロによって初期化されるコードを線引きします。これらのマクロで線引きされたコードには,ルーチン全体が含まれている必要があります。実行がいずれかのマクロを超えたり,ロックされたコードから外に分岐したり,外からロックされたコードの中に分岐することはできません。ロックされたコード・セクションの中に分岐した場合や,ロックされたコード・セクションから外に分岐しようとした場合,またはマクロを超えて実行しようとした場合は,コンパイラによってエラーが出力されます。


以下のマクロは,オンザフライのロックダウンで使用されます。

  • $LOCK_PAGE

  • $UNLOCK_PAGE




オンザフライでロックするコード・セクションの先頭をマークします。

形式

$LOCK_PAGE [error]


パラメータ



[error]

いずれかの $LKWSET 呼び出しが失敗した場合に分岐するアドレスです。

説明

このマクロは,実行可能コードにインラインで配置され,この後で $UNLOCK_PAGE マクロを呼び出す必要があります。 $LOCK_PAGE/$UNLOCK_PAGE マクロのペアは,個別の psect に個別のルーチンを作成します。 $LOCK_PAGE は,この個別のルーチンのページとリンケージ・セクションをワーキング・セットにロックして,JSR でそこにジャンプします。このマクロとそれに対応する $UNLOCK_PAGE マクロの間のすべてのコードが,ロックされるルーチンに入れられ,ロックダウンされます。

このマクロでは,すべてのレジスタが保護されます。ただし,エラー・アドレス・パラメータが指定されており,いずれかの呼び出しが失敗すると,R0 には失敗した呼び出しの状態が設定されます。 R1 には,コードをロックするための呼び出しに失敗した場合は 0,その呼び出しは成功したものの,リンケージ・セクションをロックするための呼び出しが失敗した場合には 1 が設定されます。

error パラメータを使用する場合は, error ラベルは $LOCK_PAGE と $UNLOCK_PAGE のペアの外側に配置する必要があります。これは, $LOCK_PAGE と $UNLOCK_PAGE で作成されたサブルーチンを呼び出す前にエラー・ルーチンに分岐するためです。

ロックされるコードは個別のルーチンになり,スタック・コンテキストは同じでなくなるため,ルーチン内でのローカル・スタック・ストレージを参照しているときには,すべて変更する必要があります。また,ルーチンの他の部分から,ロックされるコードに分岐したり,逆にロックされるコードからルーチンの他の部分に分岐することはできません。




オンザフライでロックするコード・セクションの終わりをマークします。

形式

$UNLOCK_PAGE [error][,LINK_SECT]


パラメータ



[error]

いずれかの $ULKWSET 呼び出しが失敗した場合に分岐するエラー・アドレスです。

[link_sect]

$LOCK_PAGE マクロを実行したときの実際のリンケージ psect がデフォルトのリンケージ psect $LINKAGE でなかった場合に戻るリンケージ psect です。

説明

$UNLOCK_PAGE は,$LOCK_PAGE マクロと $UNLOCK_PAGE マクロのペアで作成された,ロックされるルーチンから戻り,ページとリンケージ・セクションをワーキング・セットからアンロックします。このマクロは,実行可能コード内で,$LOCK_PAGE マクロの後にインラインで配置します。

このマクロでは,すべてのレジスタが保護されます。ただし,エラー・アドレス・パラメータが指定されており,いずれかの呼び出しが失敗すると,R0 には失敗した呼び出しの状態が設定されます。 R1 には,コードをアンロックするための呼び出しに失敗した場合は 0,その呼び出しは成功したものの,リンケージ・セクションをアンロックするための呼び出しが失敗した場合には 1 が設定されます。

error パラメータを使用する場合は, error ラベルは $LOCK_PAGE と $UNLOCK_PAGE のペアの外側に配置する必要があります。これは, $LOCK_PAGE と $UNLOCK_PAGE で作成されたサブルーチンから戻った後でエラー・ルーチンに分岐するためです。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.