sreq ( MQを使用した右シフト拡張) 命令
目的
汎用レジスターの内容を指定されたビット数だけ左に回転させ、生成されたマスクの制御下にある MQ レジスターの内容と結果をマージし、回転されたワードを MQ レジスターに入れ、マージされた結果を別の汎用レジスターに入れます。
注: SREQ 命令は、POWER ® ファミリー・アーキテクチャーでのみサポートされます。
構文
| ビット | VALUE |
|---|---|
| 0 - 5 | 31 |
| 6 - 10 | RS |
| 11 - 15 | RA |
| 16 - 20 | RB |
| 21 - 30 | 729 |
| 31 | RC |
description
SREQ 命令は、ソース汎用レジスター (GPR) の内容を 「RS」 左側に 32 から N ビット分だけ回転させます。ここで、 N は GPR 要求ブロックのビット 27 から 31 に指定されたシフト量であり、ローテーションされたワードを、生成されたマスクの下の MQ レジスターの内容とマージされたワード RA とはにマージされ、ローテートされたワードを MQ レジスターに保管します。 マスクは、 N ゼロとそれに続く 32 マイナス N の 1 で構成されます。
SREQ 命令には 2 つの構文形式があります。 各シンタックス・フォームは、条件レジスター・フィールド 0 に対して異なる影響を与えます。
| 項目 | 説明 | |||
|---|---|---|---|---|
| シンタックス・フォーム | オーバーフロー 例外 (OE) | 固定小数点 例外レジスター | 記録 ビット (Rc) | 条件 レジスター・フィールド 0 |
| SREQ | なし | なし | 0 | なし |
| SREQ | なし | なし | 1 | LT、GT、EQ、SO |
SREQ 命令の 2 つの構文形式は、固定小数点例外レジスターには影響しません。 構文形式でレコード (Rc) ビットが 1 に設定されている場合、命令は条件レジスター・フィールド 0 の「より小 (LT) ゼロ」、「より大 (GT) ゼロ」、「等しい (EQ) ゼロ」、および要約オーバーフロー (SO) ビットに影響します。
パラメーター
| 項目 | 説明 |
|---|---|
| RA | 操作の結果が保管されるターゲット汎用レジスターを指定します。 |
| rs | 操作のソース汎用レジスターを指定します。 |
| rb | 操作のソース汎用レジスターを指定します。 |
例
- 以下のコードは、GPR 4 の内容を左側に 28 ビット回転させ、ローテーションされたデータを生成されたマスクの下の MQ レジスターの内容とマージし、ローテーションされたワードを MQ レジスターに入れ、結果を GPR 6 に入れます。
# Assume GPR 4 contains 0x9000 300F. # Assume GPR 7 contains 0x0000 0004. # Assume the MQ Register contains 0xEFFF FFFF. sreq 6,4,7 # GPR 6 now contains 0xE900 0300. # The MQ Register now contains 0xF900 0300. - 以下のコードは、GPR 4 の内容を左に 28 ビット回転させ、ローテーションされたデータを生成されたマスクの下の MQ レジスターの内容とマージし、ローテーションされたワードを MQ レジスターに入れ、結果を GPR 6 に入れ、演算の結果を反映するように条件レジスター・フィールド 0 を設定します。
# Assume GPR 4 contains 0xB00 300F. # Assume GPR 18 contains 0x0000 0004. # Assume the MQ Register contains 0xEFFF FFFF sreq. 6,4,18 # GPR 6 now contains 0xEB00 0300. # The MQ Register now contains 0xFB00 0300. # Condition Register Field 0 now contains 0x8.