"データ処理装置であって、データを処理するための処理回路と、プログラム命令に応答して、前記データを処理するように、前記処理回路を制御するための制御信号を生成する、命令デコーダと、前記処理回路の現在の条件状態を記憶するための状態記憶装置であって、前記現在の条件状態は、前記データの処理の際、修正可能である、状態記憶装置と、を備え、前記プログラム命令は、条件付き比較命令を含み、前記命令デコーダは、前記条件付き比較命令に応答して、i前記現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、ii前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を前記条件付き比較命令によって指定された失敗条件状態に設定することと、を含む、条件付き比較演算を行うように、前記処理回路を制御するための制御信号を生成する、データ処理装置。前記状態記憶装置は、状態レジスタを備える、請求項1に記載のデータ処理装置。前記現在の条件状態は、前記状態記憶装置内に記憶された少なくとも1つの条件コードフラグの値を備える、請求項1および2のいずれかに記載のデータ処理装置。前記条件付き比較命令は、前記試験条件を指定するためのフィールドを含む、請求項1から3のいずれか一項に記載のデータ処理装置。前記失敗条件状態は、前記条件付き比較命令によって、即値として指定される、請求項1から4のいずれか一項記載のデータ処理装置。前記即値は、前記条件付き比較命令を備える、プログラムのプログラマによって設定される、プログラム可能値である、請求項5に記載のデータ処理装置。前記即値は、前記条件付き比較命令を備えるプログラムのコンパイラによって設定される、プログラム可能値であって、前記コンパイラは、前記条件付き比較命令のための前記失敗条件状態によって合格されるべき所望の条件に応じて、前記プログラム可能値を選択する、請求項5に記載のデータ処理装置。前記失敗条件状態は、Nビットの失敗条件状態値として指定され、Nは、ゼロより大きい任意の整数であって、前記現在の条件状態は、Nビットの値によって表され、前記命令デコーダは、前記現在の条件状態が、前記試験条件に失敗する場合、前記Nビットの失敗条件状態値を前記状態記憶装置に書き込むように、前記処理回路を制御する、請求項1から7のいずれか一項に記載のデータ処理装置。前記現在の条件状態は、所定の条件状態を含む、複数の条件状態のうちのいずれかに設定可能であって、前記現在の条件状態は、前記試験条件が、前記失敗条件状態として、前記所定の条件状態を指定する条件付き比較命令に失敗する場合、前記所定の条件状態にのみ設定することができる、請求項1から8のいずれか一項に記載のデータ処理装置。前記条件付き比較命令は、前記第1のオペランドおよび前記第2のオペランドを指定するための第1および第2のオペランドフィールドを含む、請求項1から9のいずれか一項請求項に記載のデータ処理装置。前記第1および第2のオペランドフィールドのうちの少なくとも1つは、前記第1のオペランドまたは前記第2のオペランドを記憶する、記憶場所を指定する、請求項10に記載のデータ処理装置。前記命令デコーダは、前記第1および第2のオペランドフィールドのうちの少なくとも1つに応答して、ゼロの値を有する前記第1および第2のオペランドのうちの対応する1つによって、前記条件付き比較演算を行うように、前記処理回路を制御するためのビット値の所定の組み合わせを指定する、請求項11に記載のデータ処理装置。前記第1および第2のオペランドフィールドのうちの1つは、前記第1のオペランドまたは前記第2のオペランドとして、即値を指定する、請求項10から12のいずれかの請求項に記載のデータ処理装置。前記比較演算は、a前記第2のオペランドを前記第1のオペランドから減算すること、b前記第1のオペランドを前記第2のオペランドに加算すること、cビット排他論理和演算を前記第1のオペランドおよび前記第2のオペランドに行うこと、dビット論理積演算を前記第1のオペランドおよび前記第2のオペランドに行うこと、e前記第1のオペランド、前記第2のオペランド、および前記状態記憶装置の桁上げビットを加算すること、fビット論理和演算を前記第1のオペランドおよび前記第2のオペランドに行うこと、のうちの任意の1つを含む、請求項1から13のいずれか一項に記載のデータ処理装置。データ処理装置であって、データを処理するための処理手段と、プログラム命令に応答して、制御信号を生成するための命令デコーダ手段であって、前記制御信号は、前記データを処理するように、前記処理手段を制御するためのものである、命令デコーダ手段と、前記処理手段の現在の条件状態を記憶するための状態記憶手段であって、前記現在の条件状態は、前記データの処理の際、修正可能である、状態記憶手段と、を備え、前記プログラム命令は、条件付き比較命令を含み、前記命令デコーダ手段は、前記条件付き比較命令に応答して、i前記現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、ii前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を前記条件付き比較命令によって指定された失敗条件状態に設定することと、を含む、条件付き比較演算を行うように、前記処理手段を制御するための制御信号を生成する、データ処理装置。データ処理方法であって、条件付き比較命令を含む、プログラム命令に応答して、データを処理するように、処理回路を制御するための制御信号を生成するステップと、前記処理回路の現在の条件状態を記憶するステップであって、前記現在の条件状態は、前記データの処理の際、修正可能である、ステップと、前記条件付き比較命令に応答して、i前記現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、ii前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を前記条件付き比較命令によって指定された失敗条件状態に設定することと、を含む、条件付き比較演算を行うように、前記処理回路を制御するための制御信号を生成するステップと、を含む、方法。データ処理装置による実行のためのプログラム命令のシーケンスをコンパイルする方法であって、前記プログラム命令のシーケンスは、2つのオペランドに無条件比較演算を行い、前記データ処理装置の現在の条件状態を前記無条件比較演算の際に生成された結果の条件状態に設定するように、前記データ処理装置を制御するための無条件比較命令と、i前記データ処理装置の前記現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、ii前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、を含む、条件付き比較演算を行うように、前記データ処理装置を制御するための少なくとも1つの条件付き比較命令と、を含み、前記方法は、a1つ以上の論理積または論理和演算を使用して、論理的に組み合わせられたN個の比較演算の連鎖シーケンスを定義する、データの入力を受信するステップであって、Nは、1より大きい整数であって、前記N個の比較演算はそれぞれ、個別のオペランドが、個別の所定の基準を満たすかどうかを試験する、ステップと、b前記連鎖シーケンスの第1の比較演算に対応する前記無条件比較命令を生成するステップと、c2とNとの間のiの各整数値に対して、i前記連鎖シーケンスのi番目の比較演算が、論理積演算または論理和演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられるかどうか判定する段階であって、前記部分的連鎖シーケンスは、前記連鎖シーケンスの前記第1の比較演算からi-1番目の比較演算を備える段階と、ii前記i番目の比較演算が、論理積演算を使用して、前記部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、前記i番目の比較演算に対応する条件付き比較命令を生成する段階であって、前記条件付き比較命令は、前記試験条件として、前記i-1番目の比較演算の前記所定の基準が満たされる時、合格される条件を指定し、前記失敗条件状態として、満たされていない、前記i番目の比較演算の前記所定の基準に対応する条件状態を指定する段階と、iii前記i番目の比較演算が、論理和演算を使用して、前記部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、前記i番目の比較演算に対応する条件付き比較命令を生成するステップであって、前記条件付き比較命令は、前記試験条件として、前記i-1番目の比較演算の前記所定の基準が満たされない時、合格する条件を指定し、前記失敗条件状態として、満たされている、前記i番目の比較演算の前記所定の基準に対応する条件状態を指定する段階と、を行う、ステップと、dプログラム命令のシーケンスとして、ステップbで生成された少なくとも前記無条件比較命令と、ステップcで生成されたN-1個の前記条件付き比較命令と、を出力するステップと、を含む、方法。データ処理装置で実行するコンピュータプログラムによって提供される仮想マシンであって、請求項1から14のいずれかに記載のデータ処理装置に従って、命令実行環境を提供する、仮想マシン。コンピュータによって実行されると、請求項17の方法を行うように、前記コンピュータを制御する、コンピュータプログラムを記憶する、非一時的コンピュータ記憶媒体。コンピュータプログラムを記憶する、非一時的コンピュータ記憶媒体であって、前記コンピュータプログラムは、条件付き比較演算を行うように、処理回路を制御するための条件付き比較命令を備え、前記条件付き比較演算は、i前記処理回路の現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、前記現在の条件状態を前記比較演算の際に生成された結果の条件状態に設定することと、ii前記現在の条件状態が、前記試験条件に失敗する場合、前記現在の条件状態を前記条件付き比較命令によって指定された失敗条件状態に設定することと、を含む、非一時的コンピュータ記憶媒体。第1の側面に照らして、本発明は、データ処理装置であって、データを処理するための処理回路と、プログラム命令に応答して、データを処理するように、処理回路を制御するための制御信号を生成する、命令デコーダと、処理回路の現在の条件状態を記憶するための状態記憶装置であって、現在の条件状態は、データの処理の際、修正可能である、状態記憶装置と、を備え、プログラム命令は、条件付き比較命令を含み、命令デコーダは、条件付き比較命令に応答して、i現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、ii現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、を備える、条件付き比較演算を行うように、処理回路を制御するための制御信号を生成する、データ処理装置を提供する。本技法は、処理回路の現在の条件状態が、試験条件に合格するかどうかを判定するように、処理回路を制御する、条件付き比較命令を提供する。現在の条件状態が、試験条件に合格または失敗するかどうかに関わらず、現在の条件状態は、更新される。現在の条件状態のための新しい値は、現在の条件状態が、試験条件に合格または失敗したかどうかに応じて、異なる方法で判定される。現在の条件状態が、試験条件に合格した場合、比較演算は、第1のオペランドおよび第2のオペランドに行われ、現在の条件状態は、比較演算の際に生成された結果の条件状態に設定される。一方、現在の条件状態が、試験条件に失敗する場合、現在の条件状態は、条件付き比較命令によって指定された失敗条件状態に設定される。現在の条件状態が、試験条件に失敗する場合、現在の条件状態を置換する、特定の失敗条件状態値を指定するための能力によって、条件付き比較命令は、異なる種類の比較の連鎖シーケンスを試験するために使用することが可能となる。これは、連鎖内の1つの比較に対応する条件付き比較命令に対して、失敗条件状態が、連鎖内の次の比較を試験するために要求される特定の条件状態を設定するために使用することができるためである。故に、条件付き比較命令は、連鎖シーケンス内の関係が、同一種類の関係に変換することができる時でも、使用することができる。例えば、形式S==TU>=0||A=BC>Dのシーケンスは、試験される個々の関係==,>=,=,>が、異なり、相互に変換することができない場合でも、試験することができる。これは、条件付き比較命令が、すでに知られている条件付き比較命令より広くに使用することができ、故に、コンパイラによって、より容易に使用可能であることを意味する。状態記憶装置は、現在の条件状態を記憶するための任意の種類の記憶場所であり得る。一例示的な実施形態では、状態記憶装置は、状態レジスタを備えてもよい。装置の現在の条件状態は、状態記憶装置内に記憶された少なくとも1つの条件コードフラグの値を備えてもよい。例えば、条件コードフラグは、前の比較が、負の値、ゼロ値、桁上げ、または桁あふれをもたらしたかどうかを示すために提供されてもよい。次いで、後の比較は、後の比較の結果が、先の比較および後の比較の両方に依存するように、条件フラグの値に条件付きで行うことができる。これによって、先および後の比較が、ともに連鎖され、組み合わせられた論理条件を形成することが可能となる。条件付き比較命令は、試験条件を指定するためのフィールドを含んでもよい。試験条件は、条件付き比較命令を含む、プログラムのプログラマによって、直接、指定され得る、または条件付き比較命令が、所望の論理式を表す、プログラム命令のシーケンスの一部である時、コンパイラによって、自動的に生成され得る。失敗条件状態は、条件付き比較命令によって、即値として、指定されてもよい。したがって、即値は、条件付き比較命令の実行時の現在の条件状態が、試験条件に失敗する場合、現在の条件状態に設定されるべき値を示す。失敗条件状態を表す即値は、条件付き比較命令を備えるプログラムのプログラマによって設定される、プログラム可能値であってもよい。これは、プログラマに、失敗条件状態の直接制御を提供する。また、失敗条件状態を表す即値は、条件付き比較命令を備えるプログラムのコンパイラによって設定される、プログラム可能値であってもよく、コンパイラは、条件付き比較命令のための失敗条件状態が、その後、合格すべき、所望の条件に応じて、プログラム可能値を選択する。この場合、コンパイラは、所望の条件が何であるかを判定することができ、試験条件に失敗する場合、現在の条件状態に書き込まれるべきプログラム可能値に変換する。例えば、所望の条件が、EQ条件である場合、コンパイラは、試験条件に失敗する場合、条件フラグに書き込まれると、EQ条件を満たす、プログラム可能値を選択することができる。複数の可能性として考えられるプログラム可能値がそれぞれ、所望の条件を満たす場合、コンパイラは、どのプログラム可能値が使用されるかを選択するための選択基準を適用し、特定のソースコードが、コンパイラによって、毎回、同様にコンパイルされることを確実にするように配列されてもよい。例えば、コンパイラは、所望の条件を満たす、最大または最小可能値を選択する、または失敗条件状態値として、使用するための1つの値を選択するための任意の他のルールを適用することができる。失敗条件状態値は、Nビットの失敗条件状態値として指定されてもよく、Nは、ゼロより大きい任意の整数であって、現在の条件状態は、Nビットの値によって、表されてもよい。命令デコーダは、現在の条件状態が、試験条件に失敗する場合、Nビットの失敗条件状態値を状態記憶装置に書き込むように、処理回路を制御してもよい。失敗条件状態および現在の条件状態は、失敗条件状態値の特定のビットが、現在の条件状態が、試験条件に失敗する時、現在の条件状態を更新するために、状態記憶装置に単純に書き込まれ得るように、同様にエンコードされてもよい。一例示的な実施形態では、現在の条件状態は、所定の条件状態を含む、複数の条件状態のうちのいずれかに設定可能であってもよく、現在の条件状態は、試験条件に失敗条件状態として、所定の条件状態を指定する条件付き比較命令に失敗する場合、所定の条件状態にのみ、設定されてもよい。条件付き比較命令が、その試験条件に失敗すると、現在の条件状態は、命令内に指定された失敗条件状態に設定される。条件付き比較命令が、その試験条件に合格すると、比較演算が行われ、現在の条件状態が比較演算の結果に従って更新される。比較演算から生じる、更新された条件状態は、失敗条件状態と同一であり得るため、試験条件が合格または失敗したかどうかどうか、正確に判定することは、不可能であり得る。したがって、一例示的な実施形態では、通常処理演算から生じることができない、所定の条件状態が、提供されてもよい。所定の条件状態は、その失敗条件状態として、所定の条件を指定する条件付き比較命令がその試験条件に失敗する場合、処理回路が所定の条件状態にのみ置かれることができるように、条件付き比較命令に対して排他的である。故に、条件付き比較命令の実行後、所定の条件状態が生じたかどうかを試験することによって、失敗条件として、所定の条件状態を指定する条件付き比較命令が、その試験条件に合格または失敗したかどうかを判定することが可能である。これは、例えば、特定のデータ値がデータ値の所与の範囲内にあるかどうかを試験するために、有用であり得る。条件付き比較命令は、第1のオペランドおよび第2のオペランドを指定するための第1および第2のオペランドフィールドを含んでもよい。第1および第2のオペランドフィールドのうちの少なくとも1つは、第1のオペランドまたは第2のオペランドを記憶する記憶場所を指定してもよい。オペランドを記憶するための記憶場所例えば、レジスタの数を指定することによって、オペランドフィールドは、命令エンコーディング内のオペランドフィールドのために利用可能なビットの数より大きいビットの数を有するオペランドを識別するために使用することができる。さらに、オペランドフィールド内の記憶場所を参照することによって、同一命令の複数の実行中で異なる変数オペランドを指定することが可能となる。命令デコーダは、ゼロの値を有する第1および第2のオペランドのうちの対応する1つによって、条件付き比較演算を行うように、処理回路を制御するためのビット値の所定の組み合わせを指定するオペランドフィールドのうちの1つに応答するように構成されてもよい。例えば、すべて1のビット値例えば、0b11111は、ゼロオペランドを示すために、ビットの所定の組み合わせとして、使用することができる。故に、ビット値の所定の組み合わせは、命令デコーダによって、記憶場所指定子として、解釈されないが、代わりに、ゼロの値を識別するために使用される。これは、ゼロ値との比較が、共通であるため有用であって、したがって、命令構文内において、そのような比較を直接エンコードするための能力は、記憶場所にアクセスし、ゼロオペランドを取得する必要性を、多くの場合、回避することができることを意味する。第1および第2のオペランドフィールドのうちの1つは、第1のオペランドまたは第2のオペランドとして、即値を指定してもよい。本命令形式は、変数値と固定値との間の比較のために有用であり得る。この場合、オペランドフィールドのうちの1つは、変数オペランドを記憶する記憶場所を指定するために使用することができ、他のオペランドフィールドは、固定値を表す、即値を指定するために使用することができる。条件付き比較命令の試験条件が、満たされる場合、処理回路によって行われる比較演算は、種々の形式を有してもよい。例えば、比較演算は、以下の任意の1つを備えてもよい。a第2のオペランドを第1のオペランドから減算することb第1のオペランドを第2のオペランドに加算することcビット排他論理和演算を第1のオペランドおよび第2のオペランドに行うことdビット論理積演算を第1のオペランドおよび第2のオペランドに行うことe第1のオペランド、第2のオペランド、および状態記憶装置の桁上げビットを加算することfビット論理和演算を第1のオペランドおよび第2のオペランドに行うこと。比較演算はまた、第1および第2のオペランドに行われる、別の算術または論理演算を備えてもよい。別の側面に照らして、本発明は、データ処理装置であって、データを処理するための処理手段と、プログラム命令に応答して、制御信号を生成するための命令デコーダ手段であって、制御信号は、データを処理するように、処理手段を制御するためのものである、手段と、処理手段の現在の条件状態を記憶するための状態記憶手段であって、現在の条件状態は、データの処理の際、修正可能である、手段と、を備え、プログラム命令は、条件付き比較命令を含み、命令デコーダ手段は、条件付き比較命令に応答して、i現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、ii現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、を備える、条件付き比較演算を行うように、処理手段を制御するための制御信号を生成する、データ処理装置を提供する。さらなる側面に照らして、本発明は、データ処理方法であって、条件付き比較命令を含む、プログラム命令に応答して、データを処理するように、処理回路を制御するための制御信号を生成するステップと、処理回路の現在の条件状態を記憶するステップであって、現在の条件状態は、データの処理の際、修正可能である、ステップと、条件付き比較命令に応答して、i現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、ii現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、を含む、条件付き比較演算を行うように、処理回路を制御するための制御信号を生成するステップと、を含む、方法を提供する。さらに別の側面に照らして、本発明は、データ処理装置による実行のためのプログラム命令のシーケンスをコンパイルする方法であって、プログラム命令のシーケンスは、2つのオペランドに無条件比較演算を行い、データ処理装置の現在の条件状態を無条件比較演算の際に生成された結果の条件状態に設定するように、データ処理装置を制御するための無条件比較命令と、iデータ処理装置の現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、ii現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、を備える、条件付き比較演算を行うように、データ処理装置を制御するための少なくとも1つの条件付き比較命令と、を含み、a1つ以上の論理積または論理和演算を使用して、論理的に組み合わせられたN個の比較演算の連鎖シーケンスを定義する、データの入力を受信するステップであって、Nは、1より大きい整数であって、N個の比較演算はそれぞれ、個別のオペランドが、個別の所定の基準を満たすかどうかを試験する、ステップと、b連鎖シーケンスの第1の比較演算に対応する無条件比較命令を生成するステップと、c2とNとの間のiの各整数値に対して、i連鎖シーケンスのi番目の比較演算が、論理積演算または論理和演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられるかどうかを判定するステップであって、部分的連鎖シーケンスは、連鎖シーケンスの第1からi-1番目の比較演算を備える、ステップと、iii番目の比較演算が、論理積演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、i番目の比較演算に対応する条件付き比較命令を生成するステップであって、条件付き比較命令は、試験条件として、i-1番目の比較演算の所定の基準が満たされる時、合格される条件を指定し、失敗条件状態として、満たされていない、i番目の比較演算の所定の基準に対応する条件状態を指定する、ステップと、iiii番目の比較演算が、論理和演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、i番目の比較演算に対応する条件付き比較命令を生成するステップであって、条件付き比較命令は、試験条件として、i-1番目の比較演算の所定の基準が満たされない時、合格される条件を指定し、失敗条件状態として、満たされている、i番目の比較演算の所定の基準に対応する条件状態を指定する、ステップと、を行う、ステップと、dプログラム命令のシーケンスとして、ステップbで生成された少なくとも無条件比較命令と、ステップcで生成されたN-1個の条件付き比較命令と、を出力するステップと、を含む、方法を提供する。本技法の条件付き比較命令は、1つ以上の論理積または論理和演算を使用して、論理的に組み合わせられる、N個の比較演算の連鎖シーケンスを表すために使用されてもよい。N個の比較演算はそれぞれ、個別のオペランドが、所定の基準を満たすかどうかを試験する。本技法の条件付き比較命令によって、異なる基準が、比較演算のそれぞれにおいて試験可能となる。例えば、比較演算のうちの1つは、あるオペランドが、別のオペランドより大きいかどうかを試験することができ、次の比較演算は、あるオペランドが、別のオペランドと等しいかどうかを試験してもよく、さらなる比較演算は、あるオペランドが、別のオペランドと等しくないかどうかを試験してもよい。用語基準は、特定の比較例えば、A>B、またはC==Dによって試験される関係を示すために使用される一方、用語条件は、条件付き比較命令の比較演算が、行われるかどうかを制御する試験例えば、現在の条件状態が、HI状態であるかどうかを確認するための試験、Zフラグが、前の結果がゼロであったことを示すように設定されるかどうかを確認するための試験、またはNフラグが、前の結果が負であったことを示すように設定されるかどうかを確認するための試験を示すことに留意されたい。N個の比較演算の連鎖シーケンスを表すプログラム命令のシーケンスは、各比較演算に対して、比較命令を生成することによって、ステップ毎に構築されてもよいNは、1より大きい整数である。各比較演算は、所定の基準例えば、A<Bを指定し、論理積または論理和演算によって、前の比較演算の部分的連鎖シーケンスの結果にリンクされる。連鎖シーケンス内の第1の比較演算に対して、無条件比較命令が、生成される。i番目の比較演算iは、2とNとの間の任意の整数であるに対して、条件付き比較命令が、生成され、i番目の条件付き比較命令の試験条件および失敗条件状態は、i番目の比較演算が、論理積演算または論理和演算を使用して、第1からi-1番目の比較演算を備える、部分的連鎖シーケンスの結果と論理的に組み合わせられるかどうかに依存する。i番目の比較演算が、論理積演算を使用して、前の比較演算の部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、i番目の条件付き比較命令は、i-1番目の比較の所定の基準が満たされると、試験条件として、条件が合格したと指定し、失敗条件状態として、i番目の比較演算の所定の基準に対応する条件状態が満たされていないと指定する。これは、i-1番目の所定の基準が、失敗結果をもたらす場合、i番目の条件付き比較命令が、その試験条件に失敗し、したがって、その独自の失敗条件状態を返す一方、i-1番目の所定の基準比較演算が、合格結果をもたらす場合、i番目の比較演算が、その試験条件に合格し、i番目の所定の基準が満たされたかどうかに応じて、結果の条件状態をもたらすことを確実にする。したがって、i番目およびi-1番目の比較の組み合わせは、論理積演算のために要求される挙動である、i-1番目およびi番目の所定の基準の両方が、満たされる場合のみ、合格結果をもたらす。一方、i番目の比較演算が、論理和演算を使用して、部分的連鎖シーケンスの結果と論理的に組み合わせられる場合、条件付き比較命令は、i番目の比較演算に対応して、生成され、条件付き比較命令は、試験条件として、i-1番目の比較演算の所定の基準演算が満たされない時、合格される条件を指定し、失敗条件状態として、満たされている、i番目の比較演算の所定の基準に対応する条件状態を指定する。これは、i-1番目の所定の基準が満たされる場合、i番目の条件付き比較命令が、その試験条件に失敗し、したがって、その失敗条件状態として、満たされている、i番目の所定の基準に対応する合格条件状態をもたらすことを確実にする。一方、i-1番目の比較が、その所定の基準を満たさない場合、i番目の条件付き比較命令が、その試験条件に合格し、したがって、i番目の所定の基準が満たされたかどうかに応じて、結果の条件状態をもたらす。これは、全体的結果が、i-1番目およびi番目の所定の基準のうちの任意の1つが、満たされる限り、i番目の所定の基準と関連付けられた合格条件となることを意味する。これは、論理和演算のために要求される挙動である。故に、本形式の条件付き比較命令のストリングを生成することによって、比較の連鎖シーケンスは、プログラム命令のシーケンスに変換することができる。次いで、生成された命令のシーケンスが、出力される。無条件比較命令および条件付き比較命令が生成される時間の順序は、重要ではないことを理解されたい。例えば、命令は、比較演算の連鎖シーケンスに対応する時間の順序で生成され得るすなわち、カウンタiは、2からNにインクリメントされる。代替として、命令は、連鎖シーケンスの逆の時間の順序カウンタは、Nから2にデクリメントされる、または任意の他の時間の順序で生成され得る。命令が生成された時間の順序に関わらず、生成された命令のプログラムの順番は、同一であって、第1の命令は、連鎖内の第1の比較演算に対応する無条件比較命令であって、第2の命令は、連鎖内の第2の比較演算に対応する条件付き比較命令等となる。コンピュータ記憶媒体は、コンピュータによって実行されると、前述のように、プログラム命令のシーケンスをコンパイルする方法を行うように、コンピュータを制御する、コンピュータプログラムを記憶するために提供されてもよい。別の側面に照らして、本発明は、i処理回路の現在の条件状態が、試験条件に合格する場合、第1のオペランドおよび第2のオペランドに比較演算を行い、現在の条件状態を比較演算の際に生成された結果の条件状態に設定することと、ii現在の条件状態が、試験条件に失敗する場合、現在の条件状態を条件付き比較命令によって指定された失敗条件状態に設定することと、を備える、条件付き比較演算を行うように、処理回路を制御するための条件付き比較命令を備える、コンピュータプログラムを記憶する、非一時的コンピュータ記憶媒体を提供する。次に、本発明の実施形態が、付随の図面を参照して、単なる一例として、説明される。図1は、データ処理装置2を図示する。装置2は、処理データを処理するための処理回路4を備える。処理回路は、種々の構成要素、例えば、レジスタバンク6、加算器8、シフタ10、および乗算器12を備えてもよい。加算器8、シフタ10、および乗算器12は、集合的に、レジスタバンク6内に記憶されたデータを処理し、処理結果をレジスタバンク6に書き込む。処理回路4は、本構成に限定されず、典型的には、簡潔さのために例証されていない多くの他の構成要素を備えることを理解される。データ処理装置2は、プログラム命令に応答してデータを処理するように、処理回路4を制御するための制御信号を生成するデコーダ14を備える。データ処理装置2は、処理回路4の少なくとも現在の条件状態を含む、状態データを記憶するための状態記憶装置15を備える。図1の実施形態では、状態記憶装置15は、状態レジスタであるが、記憶場所はまた、他の形式の記憶場所を備えてもよい。図1では、状態レジスタ15は、処理回路4内に図示されているが、他の実施形態では、状態レジスタ15は、装置2の別の部分内に位置してもよい。一実施形態では、現在の条件状態は、状態レジスタ15内に記憶される、一式の条件コードフラグによって示される。条件コードフラグは、処理回路4によって生成される、前の処理結果の条件を示す。図2に示される例示的な実施形態では、状態レジスタ15の条件コードフラグは、前の処理結果が負の数であったかどうかを示すための負のフラグNと、前の処理結果がゼロであったかどうかを示すためのゼロのフラグZと、前の処理結果が生成された時、桁上げが生じたかどうかを示すための桁上げフラグCと、前の処理結果を生成する時、桁あふれが生じたかどうかを示すための桁あふれフラグVと、を含む。故に、条件コードフラグの値は、前の処理結果に関する情報を提供する。フラグは、負の数、ゼロ値、桁上げ、または桁あふれが生じたことを示すように設定される、そうでないことを示すようにクリアされる、またはその逆であってもよい。条件コードフラグN、Z、C、Vの異なる組み合わせによって表される情報の実施形態については、図8および10を参照されたい。図3Aは、本技法に従う、条件付き比較命令CCMPの例示的な構文を図示する。条件付き比較命令は、試験条件、2つのオペランド、および失敗条件状態を指定するためのフィールドを有する。命令デコーダ14は、条件付き比較命令に応答して、状態レジスタ15内に記憶された現在の条件状態が、条件付き比較命令と関連付けられた試験条件condを満たすかどうか判定するように、処理回路4を制御する。現在の条件状態が、試験条件を満たす場合、処理回路4は、2つのオペランドに比較演算を行い、処理結果に基づいて、現在の条件状態を更新する例えば、比較演算が、負の値をもたらす場合、条件フラグNを設定することができる。条件付き比較命令の実行時の現在の条件状態が、試験条件を満たさない場合、比較演算は、行われず、条件付き比較命令によって指定された失敗条件状態値が、状態レジスタ15に書き込まれ、現在の条件状態を更新する。図3Bは、図3Aの条件付き比較命令の例示的なエンコーディングを図示する。本実施形態では、命令は、試験条件を指定するための4ビットフィールドと、オペランドレジスタを指定するための2つの5ビットフィールドと、失敗条件状態を指定するための4ビットフィールドと、を含む。他のビット数が、所望に応じて、各フィールドのために使用されてもよいことを理解される。本実施形態では、4ビット試験条件識別子0b0000は、EQ条件を示す。命令が実行されると、条件コードが試験され、EQ試験条件を満たすかどうか確認される。EQ試験条件が満たされる場合、オペランドレジスタ本実施形態では、レジスタR2およびR9内に記憶される値が比較され、条件コードが、比較の結果に基づいて、更新される。EQ試験条件が満たされない場合、失敗条件状態値本実施形態では、0b0001が、条件コードNZCVに書き込まれる。図3Aの構文では、条件付き比較命令は、レジスタ指定子Rn、Rmを使用して、オペランドの両方を指定する。レジスタ指定子Rn、Rmは、比較されるべきオペランドを記憶する、レジスタバンク6のレジスタを識別する。比較されるべきオペランドは、整数または浮動小数点数であってもよい。図4Aに示されるような別の例示的な構文では、オペランドopのうちの1つは、条件付き比較命令内の即値として、指定されてもよい。これは、変数および定数が、相互に比較されるべき時、有用であり得る。図4Bは、図4Aに示される構文を有する命令の例示的なエンコーディングを示す。試験条件例えば、LTが満たされる場合、オペランドレジスタ例えば、R7内に記憶される値は、即値例えば、19と比較され、条件コードは、比較に応じて、更新される。試験条件が満たされない場合、失敗条件状態値0b0000が、条件コードNZCVに書き込まれる。オペランドが、レジスタ指定子を使用して指定される時、命令デコーダ14は、任意に、レジスタ内に記憶されるオペランドではなく、ゼロペランドを示すように、特定のレジスタ指定子値を解釈するように構成することができる。例えば、図3の実施形態では、レジスタ指定子Rmが、すべて1のビット値0b11111を指定する時、これは、レジスタRn内に記憶されるオペランドが、処理回路4によって、ゼロ値と比較されるべきであることを示すために使用され得る。図3および4の構文の両方では、失敗条件状態は、試験条件に失敗する場合、状態レジスタ15の条件コードフラグに書き込まれるべきビット値を表す、即値として指定される。例えば、図2に示されるようなNZCV条件コードフラグを使用することによって、0b0100の失敗条件状態を表す即値は、0が、負、桁上げ、および桁あふれフラグN、C、Vに書き込まれるべきであって、1が、ゼロのフラグZに書き込まれるべきであることを示すことができる。このように、条件付き比較命令は、試験条件に失敗した場合、採用されるべき条件状態を直接指定する。これによって、条件付き比較命令は、現在の条件状態を続く条件付き命令によって使用するために準備ができた適切な値に設定するために使用することを可能にするため、有用である。図5は、本技法の条件付き比較命令を使用する、データ処理の方法を図示する。ステップ50では、命令デコーダ14は、命令のシーケンスの次の命令をデコードする。ステップ60では、デコーダ14は、次の命令が、条件付き比較命令であるかどうかを判定する。次の命令が、条件付き比較命令ではない場合、ステップ70において、命令デコーダ14は、次の命令に対応する制御信号を生成し、次の命令に対応する演算を行うように、処理回路4を制御する。次いで、処理は、ステップ80に進み、処理されるべき命令がさらに存在するかどうか判定される。さらなる命令が処理されるべき場合、方法は、ステップ50に戻り、次の命令がデコードされる。処理されるべき命令がこれ以上存在しない場合、方法は、終了する。一方、ステップ60において、次の命令が、条件付き比較命令である場合、命令デコーダ14は、条件付き比較演算を行うように、処理回路4を制御するための制御信号を生成する。ステップ90において、処理回路4は、状態レジスタ15の条件コードフラグによって表される現在の状態が、条件付き比較命令と関連付けられた試験条件に合格するかどうかを判定する。現在の条件状態が、試験条件に合格する場合、ステップ100において、処理回路4は、第1および第2のオペランドに比較演算を行うように制御される。次いで、ステップ110において、状態レジスタ15が、現在の条件状態を、ステップ100において、比較演算を行う際に生成された結果の条件状態に設定するように更新される。一方、ステップ90において、現在の条件状態が、試験条件に合格しなかった場合、ステップ120において、現在の条件状態は、条件付き比較命令によって指定される失敗条件状態に設定される。例えば、条件付き比較命令によって指定された即値は、状態レジスタ15の条件コードフラグに書き込まれる。現在の条件状態が、ステップ90において、試験条件に合格したかどうかに関わらず、方法は、ステップ80に進み、処理されるべきさらなる命令が存在するかどうか判定される。別の命令が処理されるべき場合、方法は、再び、ステップ50に戻る。そうでなければ、方法は、終了する。図5は、条件付き比較命令の現在の条件状態が、試験条件に合格するかどうかに関わらず、現在の条件状態を表す条件コードフラグが更新されることを示す試験条件に失敗する場合、no-op命令として作用する、前の条件付き命令とは対照的に。現在の条件状態の更新された値は、現在の条件状態が、試験条件に合格するかどうかに依存する。現在の条件状態が、試験条件に合格する場合、更新される条件状態は、第1および第2のオペランドを比較する結果に基づいて判定される一方、現在の条件状態が、試験条件に合格しなかった場合、更新される値は、条件付き比較命令によって指定された失敗条件状態となる。本種類の命令は、現在の条件状態が、試験条件に合格しなかった場合、現在の条件状態が更新されるべき失敗条件状態を指定するための能力によって、これらの命令が、異なる種類の論理関係を試験する、一連の連鎖比較演算を表すために使用可能となるため、有用である。それぞれ、ステップ90~120図5に従って処理されるが、ステップ100において、異なる比較演算を使用する、種々の種類の条件付き比較命令が、提供されてもよい。これらの種類の条件付き比較命令の実施形態は、図6Aから6Fに示される。図6Aから6Fは、第1および第2のオペランドが、レジスタ指定子を使用して識別される、形式の命令を図示するが、オペランドの1つが、即値として指定される、これらの命令のそれぞれの代替形式もまた、提供することができる。また、これらの命令の構文は、以下に説明されるように、即値immとしてではなく、所望に応じて、条件ニーモニックとして、失敗条件状態を指定するように、修正することができる。図6Aは、条件付き比較肯定命令CCMPを図示する。条件付き比較肯定命令によって指定される試験条件を合格する場合、処理回路4は、第2のオペランドを第1のオペランドから減算し、結果の条件状態を条件フラグに書き込むように制御される一方、試験条件に失敗する場合、命令内で指定された失敗条件状態immが、条件フラグに書き込まれる。本種類の命令は、第1のオペランドが、第2のオペランド以上であるかどうかを試験するために有用であり得る。図6Bは、条件付き比較否定命令CCMNを図示する。命令によって指定される試験条件が、現在の条件状態によって合格される場合、第1および第2のオペランドは、ともに加算され、結果の条件状態が、条件フラグに書き込まれる一方、現在の条件状態が、試験条件に合格しない場合、失敗条件状態immは、条件フラグに書き込まれる。本種類の命令は、第1のオペランドが、第2のオペランドを-1で乗算することによって得られる値より大きいかどうかを試験するために有用であり得る第1および第2のオペランドを加算することは、-1第2のオペランドを第1のオペランドから減算することと同等であるため。図6Cは、条件付き等価試験命令CTEQを図示する。本種類の命令が、実行される時、命令によって指定される試験条件を合格する場合、処理回路4は、第1および第2のオペランドに排他的論理和演算を行い、結果の条件状態を条件フラグに書き込むように構成される一方、試験条件に失敗する場合、命令によって指定される失敗条件状態immは、条件フラグに書き込まれる。本種類の命令は、第1のオペランドが、第2のオペランドに等しいかどうかを試験するために使用することができる。図6Dは、条件付きビット試験命令CTSTを図示する。本種類の命令が実行される時、試験条件を合格する場合、処理回路4は、第1および第2のオペランドにビット論理積演算を行い、結果の条件状態を条件フラグに書き込む一方、試験条件に失敗する場合、失敗条件状態immが、条件フラグに書き込まれる。本種類の命令は、第2のオペランド内の1ビットの位置に対応する第1のオペランドのビットがすべてゼロである、またはすべてゼロではないかどうかを試験するために使用することができる。特に有用なケースは、第2のオペランドが、きっかり1つの1ビットを含む時、および命令が、第1のオペランドの対応するビットが0または1かどうか試験する時である。図6Eは、桁上げを伴う条件付き加算命令CADCを図示する。本命令が実行される時、試験条件を合格する場合、処理回路4は、第1のオペランド、第2のオペランド、および状態レジスタ15内の桁上げフラグCの現在の値を加算し、本加算から生じる結果の条件状態を条件フラグに書き込むように制御される。一方、試験条件に失敗する場合、失敗条件状態immは、他の種類の条件付き比較命令に関して、条件フラグに書き込まれる。加算桁上げ演算は、マルチワード加算の第2、第3、またはさらなるワードを表すために使用することができ、桁上げビットは、マルチワード加算の前のワードが、桁上げをもたらしたかどうかを示す。図6Fは、実行されると、第1および第2のオペランドのビット論理和を行うように但し、試験条件に合格することを条件とする、処理回路4を制御する、条件付きビット論理和試験命令CORRTを図示する。ビット論理和から生じる結果の条件状態は、条件フラグに書き込まれる。一方、試験条件に失敗する場合、失敗条件状態immは、条件フラグに書き込まれる。そのような命令は、2つのレジスタ両方とも、ゼロ値を記憶するかどうかを試験するために使用することができる。これは、特に、倍幅データ値が、ゼロに等しいかどうか試験するために有用であり得る。例えば、倍幅128ビット値RnHi/Loは、2つの64ビットレジスタRnHiおよびRnLoを使用して、記憶することができる。倍幅値の上位および下位部のビット論理和は、両方の部分がゼロに等しい場合のみゼロ値を有するため、ビット論理和試験命令によって、ダブル値の半分の両方とも、単一命令を使用して、ゼロに対して試験可能となる。これは、ゼロに対して倍幅値の各部分を個々に比較するより効率的であり得る。故に、形式RnHi/Lo=0RmHi/Lo==0の式は、2つの命令を使用して、効率的に評価することができる。ORRTRnHi,RnLo;//Z=1ifRnHi/Lo=0,andZ=0otherwiseCORRTNE,RmHi,RmLo,0//Z=1ifORRTsetZto0ANDRmHi/Lo=0,//Z=0otherwise任意の特定の実施形態では、命令デコーダは、これらの命令のうちの任意の1つ以上に応答して、対応する種類の条件付き比較演算を行うように、処理回路4を制御してもよいことを理解される。例えば、特定の実施形態では、デコーダ14は、他の種類の条件付き比較命令ではなく、例えば、図6Aおよび6Bに示される種類の条件付き比較命令に応答するように構成され得る。一連の条件付き比較命令は、比較演算の連鎖シーケンスを表すために使用することができ、シーケンス内の各比較演算は、論理積または論理和演算例えば、シーケンスA<BC==D||E>=Fを使用して、すべての前の比較演算の組み合わせられた結果と論理的に組み合わせられる。各比較演算は、特定の基準を試験する例えば、前述の実施形態では、第1の比較演算は、A<Bかどうかの基準を試験し、第2の比較演算は、C=Dかどうかの基準を試験し、第3の比較演算は、E>Fかどうかの基準を試験する。以前に周知の条件付き命令と異なり、本技法の条件比較命令は、連鎖比較演算が、2つ以上の種類の基準を試験する時に使用することができる。図7Aおよび7Bは、比較演算の特定の連鎖シーケンスを比較命令のシーケンスに変換するための方法の実施形態を示す。そのような方法は、例えば、比較演算のシーケンスを定義する入力を受信し、プログラム命令の対応するシーケンスを生成する、コンパイラによって、行うことができる。図7Aは、そのような方法の第1の実施形態を図示する。ステップ200では、N個の比較演算の連鎖シーケンスを定義するデータが、入力されるNは、1より大きい任意の整数である。ステップ202では、カウント変数iは、Nに等しくなるように設定される。ステップ204では、連鎖シーケンスのi番目の比較を連鎖シーケンスの第1からi-1番目の比較の組み合わせられた結果と組み合わせる、論理演算が、論理積または論理和演算であるかどうか判定される。例えば、シーケンスA<BC==D||E>=Fでは、i=3の時、シーケンスE>=Fのi番目の比較は、論理和演算||を介して、1番目からi-1番目の比較A<BC==Dの組み合わせに連鎖され、i=2の時、シーケンスC==Dのi番目の比較は、論理積演算を介して、i-1番目の比較A<Bに連鎖される。ステップ204において、i番目の比較演算および第1からi-1番目の比較演算の部分的連鎖が、論理積演算によってリンクされていると判定される場合、ステップ206において、条件付き比較命令が、i番目の比較演算のために生成され、試験条件condはi-1番目の比較が、その所定の基準を満たす時、合格される条件に設定され、失敗条件状態値は、満たされていない、i番目の比較の基準に対応する、任意の値に設定される。例えば、前述の実施形態において、i=2の時、i-1番目の比較A<Bが、その所定の基準を満たす時、合格される条件は、これが、A<Bであることを示すため、条件LTである図8参照-符号付き比較を仮定する。故に、第2の条件付き比較命令演算のための試験条件は、LTである。また、i=2の場合、i番目の比較C==Dの基準は、CがDと等しくない、すなわち、Zフラグが設定されない、図8に示されるNE状態である時、満たされない。故に、i番目の条件付き比較命令の失敗条件状態値は、クリアであるZフラグをもたらす、値の任意の組み合わせに設定することができる例えば、0b0000。一方、ステップ204において、i番目の比較演算および第1からi-1番目の比較演算の部分的連鎖を組み合わせる論理演算が、論理和演算である場合、ステップ208において、条件付き比較命令が、i番目の比較演算のために生成され、試験条件は、i-1番目の比較演算が、その基準を満たさない時、合格される条件に設定され、失敗条件状態値は、満たされている、i番目の比較の基準に対応する任意の値に設定される。例えば、前述の例示的なシーケンスにおいて、i=3の場合、i-1番目の比較演算C==Dが、その基準を満たさない時、合格される条件は、図8の状態NEであって、したがって、第3の条件付き比較演算のための試験条件は、NEに設定される。また、i=3の場合、i番目の比較E>=Fのための基準は、Eが、F以上である時例えば、割り当てられた比較のためのGE状態において-図8参照、満たされる。故に、失敗条件状態値は、GE状態に対応する、条件フラグ値の任意の組み合わせに設定することができる例えば、図8を参照すると、ビットNおよびVは、同一であって、すべての他のビットは、任意の値-例えば、0b0000を有し得る。論理演算が、論理積または論理和演算であったかどうかに関わらず、ステップ210において、カウント変数iが、判定され、ステップ212において、新しいカウント変数iが、2以上であるかどうか判定される。新しいカウント変数iが、2以上である場合、ステップ204から212は、別の条件付き比較命令が、別の比較演算のために生成されるように、iの新しい値のために反復される。このように、条件付き比較命令は、連鎖シーケンスの第2からN番目の比較演算のそれぞれのために生成される。ステップ212において、iが、2より小さい場合、方法は、ステップ214に進み、無条件比較命令が、連鎖シーケンスの第1の比較のために生成される。例えば、前述のシーケンスでは、次いで、無条件比較命令が、生成され、A<Bであるかどうか判定し、比較結果に従って、条件コードフラグを更新する。ステップ216では、すべての生成された命令は、比較演算の連鎖シーケンスを表す、命令のシーケンスを形成するように、生成の逆の順序で出力される。図7Bは、比較演算に対応する命令のシーケンスを生成する方法の代替実施形態を図示する。図7Aの対応するステップと同じ、図7Bのステップは、図7Aと同一参照番号を使用して、標識されている。図7Bは、命令が、図7Aにおけるように、逆の順序ではなく、連鎖シーケンス内の対応する比較演算の順序で生成されるという点において、図7Aと異なる。連鎖シーケンスの第1の比較演算のための無条件比較命令は、図7Bのステップ214において生成される。次いで、カウント変数iは、ステップ220において、2の値に初期化される。次いで、図7Aの対応するステップと同じ、ステップ204から208が、i番目の比較演算のために行われ、iが、ステップ226において、Nより大きくなるまで、Iが、ステップ222において、連続的にインクリメントされる間、反復される。これは、条件付き比較命令が、連鎖内の第2からN番目の比較演算のために生成されることを意味する。iが、Nより大きくなると、ステップ230において、生成された命令が、ステップ230において、生成の順序で出力され、プログラム命令のシーケンスを形成する。図7Aおよび7Bから分かるように、第1の比較演算のための無条件比較命令および第2からΝ番目の比較演算のための条件付き比較命令が生成される順序は、条件付き比較命令が、第2からΝ番目の比較演算のそれぞれのために生成され、無条件比較命令が、第1の比較演算のために生成され、および生成される命令が、正しいプログラム順序で出力される限り、特に、重要ではない。図7Aおよび7Bに示されるもの以外の生成順序もまた、可能であることは、当業者によって理解される。図7Aおよび7Bのステップ214において生成された無条件比較命令は、条件付き命令に対して、異なる構文を有する、命令であってもよい。例えば、無条件比較命令は、命令デコーダが、オペランドを比較し比較結果に従って、条件コードフラグNZCVを更新するために、処理回路4を制御するための制御信号を生成するように、2つのオペランドを指定する構文を有してもよい。無条件比較命令構文は、図3、4、または6に示される、条件付き比較命令構文の試験条件および失敗条件状態を省略してもよい。図8のAL常時、合格される条件状態は、そのような実施形態では、省略されてもよい。代替として、無条件比較命令および条件付き比較命令は、共通の構文を有してもよく、無条件比較命令は、試験条件condを、条件フラグの値に関わらず、常時、満たされる条件状態に設定することによって、図3、4、および6のうちのいずれかに示される、条件付き比較命令構文から形成される。例えば、無条件命令に対して、試験条件condは、命令が、常時、その条件コードに合格するようにこの場合、失敗条件状態は、決して必要とされないため、任意の値に設定されてもよい、図8の常時条件状態ALと等しくなるように設定され得る。故に、同一種類の命令構文は、その命令のために指定する試験条件に応じて、無条件比較命令および条件付き比較命令の両方として、使用することができる。これは、命令エンコーディング空間の使用の効率を改善することができる。図8は、それぞれ、特定の条件サフィックスまたは、条件ニーモニックによって指定される、特定の条件状態を表す、条件コードフラグの異なる組み合わせを示す、表を図示する。例えば、PL状態は、前の処理結果が、正またはゼロのいずれかであったことを示し、クリアである、N条件フラグによって指定される。故に、NZCVビット値0b0xxxここでは、xは、0または1のいずれかの任意の組み合わせは、N個のビットクリアを有し、したがって、PL状態を示すことができる。図7Aおよび7Bの方法は、以下により詳細に説明される。以下の個々の比較の連鎖シーケンスである、if試験を有すると仮定する。ifs==tu>=0||a=bc>dここでは、実施形態の目的のため、s、t、およびuが、符号付き変数であって、a、b、c、およびdが、符号なし変数であることのみ仮定するこれらは、等しく、符号なし変数であり得る。そのような連鎖シーケンスのためのコードシーケンスを生成するための好適なルールセットは、以下である。1.結果は、常時、連鎖内の最終の個々の比較のための好適な条件によって、反映される。2.連鎖シーケンスが、単一個々の比較のみ含む場合、その2つのオペランドに無条件比較CMP命令を使用する図7Aおよび7Bのステップ214参照。無条件比較命令は、比較結果に応じて、図8の条件状態のうちの1つをもたらすように定義される。3.そうでなければ、連鎖シーケンスは、ある付加的個々の比較と論理積または論理和演算される、より短い連鎖シーケンスから成る。4.連鎖シーケンスが、ある付加的比較と論理積演算される、より短い連鎖シーケンスから成る場合、図7Aおよび7Bのステップ206参照より短い連鎖シーケンスのための命令シーケンスをもたらし、以下をさらに付け加える。CCMPcond,op1,op2,immここでは、condは、合格する時、より短い連鎖シーケンスによってもたらされる条件であって、op1およびop2は、付加的比較のための2つのオペランドであって、immは、付加的比較からの所望の失敗結果に対応する、N、Z、C、V条件フラグ値の任意のセットである。これは、より短い連鎖シーケンスが、その失敗条件をもたらす場合、付加的比較が、その独自の失敗条件をもたらし、より短い連鎖シーケンスが、その合格条件をもたらす場合、付加的比較が、付加的比較において、論理積演算を行うための正しい挙動である、個々の試験の結果に応じて、その独自の失敗結果またはその独自の合格結果のいずれかをもたらすことを確実にする。5.連鎖シーケンスが、付加的比較と論理和演算される、より短い連鎖シーケンスから成る場合、図7Aおよび7Bのステップ208参照より短い連鎖シーケンスのための命令シーケンスをもたらし、以下をさらに付け加えるCCMPcond,op1,op2,immここでは、condは、失敗される時、より短い連鎖シーケンスによってもたらされる条件であって、op1およびop2は、付加的比較のための2つのオペランドであって、immは、付加的比較からの所望の合格結果に対応する、N、Z、C、V条件フラグ値の任意のセットである。より短い連鎖シーケンスが、その合格条件をもたらす場合、付加的比較が、その独自の合格条件をもたらし、より短い連鎖シーケンスが、その失敗条件をもたらす場合、付加的比較は、付加的比較内で論理和演算を行うための正しい挙動である、個々の試験の結果に応じて、その独自の失敗結果またはその独自の合格結果のいずれかをもたらすことを確実にする。s==tu>=0||a=bc>dのためのコードシーケンスを生成する前述の実施形態に対して、これを示す。シーケンスの最終比較は、符号なし>であって、したがって、ルール1に従って、合格するすなわち、真である場合、図8のHI条件をもたらし、失敗するすなわち、偽である場合、図8のLS条件をもたらすことを目的とする。故に、目的は、以下となる。...コードシーケンスについては未定...//NowhaveHIifs==tu>=0||a=bc>d//isTRUE,LSotherwise連鎖シーケンスs==tu>=0||a=bc>dは、付加的比較c>dと論理積演算される、より短い連鎖シーケンスs==tu>=0||a=bである。前述のルール4に従う。より短い連鎖シーケンスは、その最終比較として、a=試験を有し、したがって、合格する場合、NE条件をもたらす。付加的比較の所望の失敗結果は、LS=C=0||Z=1である。その条件を満たす、フラグのNZCVセットの任意の値、例えば、NZCV=0b0000を取り上げる。次いで、コードシーケンスは、以下に対して、1つのステップで展開することができる。...コードシーケンスについては未定...//NowhaveNEifs==tu>=0||a=bisTRUE,EQ//otherwiseCCMPNE,Rc,Rd,0b0000//NowhaveHIifs==tu>=0||a=bc>d//isTRUE,LSotherwise連鎖シーケンスs==tu>=0||a=bは、付加的比較a=bと論理和演算される、より短い連鎖シーケンスs==tu>=0である。前述のルール5に従う。より短い連鎖シーケンスは、その最終比較として、符号付き>=試験を有し、したがって、失敗する場合、LT条件をもたらす。付加的比較の所望の合格結果は、NE=Z==0である。その条件を満たすフラグのNZCVセットの任意の値、例えば、NZCV=0b0000を取り上げる。次いで、コードシーケンスは、以下に対して、第2のステップで展開することができる。...コードシーケンスについては未定...//NowhaveGEifs==tu>=0isTRUE、LTotherwiseCCMPLT,Ra,Rb,0b0000//NowhaveNEifs==tu>=0||a=bisTRUE,EQ//otherwiseCCMPNE,Rc,Rd,0b0000//NowhaveHIifs==tu>=0||a=bc>d//isTRUE,LSotherwise連鎖シーケンスs==tu>=0は、付加的比較u>=0と論理積演算される、より短い連鎖シーケンスs==tである。前述のルール4に従う。より短い連鎖シーケンスは、その最終比較として、==試験を有し、したがって、合格する場合、EQ条件をもたらす。付加的比較の所望の失敗結果は、LT=N=Vである。その条件を満たす、フラグのNZCVセットの任意の値、例えば、NZCV=0b0001を取り上げる。次いで、コードシーケンスは、以下に対して、第3のステップで展開することができる。...コードシーケンスについては未定...//NowhaveEQifs==tisTRUE,NEotherwiseCCMPEQ,Ru,0,0b0001//NowhaveGEifs==tu>=0isTRUE,LTotherwiseCCMPLT,Ra,Rb,0b0000//NowhaveNEifs==tu>=0||a=bisTRUE,EQ//otherwiseCCMPNE,Rc,Rd,0b0000//NowhaveHIifs==tu>=0||a-bc>d//isTRUE,LSotherwise最後に、連鎖シーケンスs==tは、単一比較のみであって、したがって、前述のルール2に従って、前述のように、それに対して、無条件比較命令を使用する。これは、フルコードシーケンスをもたらす。CMPRs,Rt//NowhaveEQifs==tisTRUE,NEotherwiseCCMPEQ,Ru,0、0b0001//NowhaveGEifs==tu>-0isTRUE,LTotherwiseCCMPLT,Ra,Rb,0b0000//NowhaveNEifs==tu>=0||a=bisTRUE,EQ//otherwiseCCMPNE,Rc,Rd,0b0000//NowhaveHIifs==tu>=0||a=bc>d//isTRUE,LSotherwise前述の技法は、所望の論理式を、式を評価するためのプログラム命令のシーケンスに変換するために、コンパイラによって行われてもよい。命令は、正しいプログラム順序で出力される限り、任意の特定の順序で判定または生成される必要はなく、したがって、生成方法の異なる実施形態も可能である図7Aおよび7B参照。前述の実施形態では、失敗条件状態は、状態レジスタ15内の条件コードに書き込まれるべきビット値の組み合わせを指定する即値として、命令構文によって指定される。しかしながら、代替として、構文は、図8に示されるように、HI、LS、PL等の条件ニーモニックサフィックスとして、失敗条件状態を指定することができる。この命令形式では、次いで、プログラマは、失敗条件状態に所望される条件ニーモニックを指定してもよく、アセンブラは、命令をアセンブルする時、これを特定の即値に変換してもよい。故に、命令デコーダ14の観点から、命令の視点は、他の実施形態と同一であるが、プログラマの視点から、命令構文は、異なる条件状態の意味が、条件コード値からより、ニーモニックからより明白に理解することができるため、より直感的である。特定の条件ニーモニックに応答して、アセンブラは、ニーモニックによって示される条件状態を保持させるように、条件フラグに書き込むことができる、任意の失敗条件状態値を選択してもよい。同一条件に対応する複数の可能性として考えられる即値が存在する場合、アセンブラは、条件に対応する値を選択するためのルールが提供されてもよい。例えば、アセンブラは、ソースコードが、毎回、同様にアセンブルされることを確実にするために、最大または最小利用可能値を選択し得る。例えば、図8では、EQ状態を満たす最大可能値は、0b1111であるZビットセットを伴う。したがって、失敗条件状態が、条件ニーモニックとして指定される実施形態では、前述の実施形態で判定される最終命令シーケンスは、以下のように現れ得る。CMPRs,Rt//NowhaveEQifs==tisTRUE,NEotherwiseCCMPEQ,Ru,0、LT//NowhaveGEifs==tu>=0isTRUE,LTotherwiseCCMPLT,Ra,Rb,NE//NowhaveNEifs==tu>=0||a=bisTRUE,EQ//otherwiseCCMPNE,Rc,Rd,LS//NowhaveHIifs==tu>=0||a=bc>d//isTRUE,LSotherwise図9は、使用され得る、仮想マシン実装を図示する。前述の実施形態は、当該技法をサポートする、具体的処理ハードウェアを動作させるための装置および方法の観点から、本発明を実装するが、また、ハードウェアデバイスのいわゆる仮想マシン実装を提供することも可能である。これらの仮想マシン実装は、仮想マシンプログラム510をサポートする、ホストオペレーティングシステム520を起動する、ホストプロセッサ530上で起動する。典型的には、大型の強力なプロセッサが、合理的速度で実装する、仮想マシン実装を提供するために要求されるが、そのようなアプローチは、互換性または再利用の理由から、別のプロセッサにネイティブなコードを起動することが所望される時等、ある状況において、正当化され得る。仮想マシンプログラム510は、仮想マシンプログラム510によってモデル化されているデバイスである、実際のハードウェアによって提供される、アプリケーションプログラムインターフェースと同一である、アプリケーションプログラム500に、アプリケーションプログラムインターフェースを提供する。したがって、前述のメモリアクセスの制御を含む、プログラム命令は、仮想マシンプログラム510を使用して、仮想マシンハードウェアとのその相互作用をモデル化する、アプリケーションプログラム500内から実行されてもよい。図10は、図8に示される条件状態に対する、任意の拡張子を示す。図10の実施形態では、処理回路4は、条件付き比較命令による排他的使用のためのものである、所定の条件状態MZを含む、いくつかの異なる条件状態のいずれかに設定することができる。処理装置は、通常処理演算の結果として、MZ条件状態に置くことはできない。MZ条件状態は、その失敗条件状態として、MZ条件状態を指定する条件付き比較命令が、その試験条件に失敗する場合のみ、生じる。図10の実施形態では、MZ状態は、設定されている、NおよびZフラグによって表され、-ゼロ結果を示す。-ゼロ結果は、ゼロおよび負の両方ではなく、ゼロまたは負のいずれかである、結果を生成するため、通常処理演算から生じることができない。図10はまた、MZ状態の逆数を示す、OK状態を示す。故に、OK状態は、NおよびZフラグのいずれかがクリアである場合、満たされる。MZ状態は、命令に、先の条件付き比較命令が、その試験条件に合格または失敗したかどうかを試験させるため、有用である。失敗条件状態として、MZ状態を指定する条件付き比較命令が、実行されてもよい。次いで、後続条件付き命令は、条件フラグが、MZ状態またはOK状態にあるかどうか試験してもよい。条件フラグが、MZ状態にある場合、条件付き比較命令は、その試験条件に失敗する一方、条件フラグが、OK状態にある場合、条件付き比較命令は、その試験条件に合格する。図11は、失敗条件状態として、MZ状態を指定する条件付き比較命令が、どのように、変数Xを所与の範囲BOTからTOP内に制約するために使用することができるかの実施形態を示す。Xが、許容可能範囲BOTからTOP内にある場合、Xは、その元の値を留保する。Xが、TOPより大きい場合、Xは、TOPに等しく設定される一方、Xが、BOTより小さい場合、Xは、BOTに等しく設定される。故に、Xは、その最大可能性値がTOPであって、その最小可能値がBOTであるように、制約される。図11は、Xの値における本制約を実装するための例示的な命令のシーケンスを示す。最初に、比較命令CMPX、TOPが実行され、XおよびTOPの値の比較をトリガする。次いで、条件フラグは、比較の結果に基づいて、更新される。X<TOPの場合、条件フラグは、LT条件状態に設定される一方、X≧TOPの場合、条件フラグは、GE条件状態に設定される。次に、条件付き比較命令CCMPLT、X、BOT、MZが実行される。LT試験条件に合格する場合、XおよびBOTが比較され、条件フラグが、比較結果に基づいて、LTおよびGE条件状態のうちの1つに更新される。一方、LT試験条件に失敗する場合、条件フラグは、MZ状態に置かれる。次に、条件付き選択命令CSEL、MZ、X、TOP、Xが実行される。MZ試験条件に合格する場合、Xは、TOPの値を有するように選択される一方、そうでなければ、Xは、その元の値を留保する。最後に、条件付き選択命令CSELLT、X、BOT、Xが実行される。LT試験条件に合格する場合、Xは、BOTの値を有するように選択される一方、そうでなければ、Xは、その元の値を留保する。図11は、X<BOT、BOT≦X≦TOP、およびTOP≦Xである場合のXの可能性として考えられる結果を示す。MZ状態は、CCMP命令が、その試験条件LTに失敗する結果としてのみ生じ得るため、MZ状態の発生は、X≧TOPを示す。MZ状態が、生じなかった場合、CCMPは、その試験条件に合格し、したがって、X<TOPである。次いで、Xが、BOT未満である、またはBOT以上であるかどうかが、LTまたはGE条件状態が、CCMP命令の実行後に生じたかどうかから判定することができる。図10および11は、その試験条件に失敗する条件付き比較命令によってのみ設定することができる、条件状態が、MZ-ゼロ状態であって、NおよびZフラグの両方とも設定される、実施形態を示す。しかしながら、他の実施形態では、通常処理の際に生じることができない、条件フラグ値の任意の組み合わせが、MZ状態の代わりに、使用されてもよい。図10の実施形態では、MZ状態は、図8に示される常時AL状態を置換し、4ビット識別子を使用して識別することができる、合計16個の利用可能条件状態を提供する。他の実施形態では、AL状態およびMZ状態の両方が、提供されてもよいことを理解される。本発明の例証的実施形態が、付随の図面を参照して、本明細書において、詳細に説明されたが、本発明は、それらの詳細な実施形態に限定されず、種々の変更および修正が、添付の請求項によって定義される、発明の範囲から逸脱することなく、当業者によって、行うことができることを理解されたい。"