sreq ( MQを使用した右シフト拡張) 命令

目的

汎用レジスターの内容を指定されたビット数だけ左に回転させ、生成されたマスクの制御下にある MQ レジスターの内容と結果をマージし、回転されたワードを MQ レジスターに入れ、マージされた結果を別の汎用レジスターに入れます。

注: SREQ 命令は、POWER ® ファミリー・アーキテクチャーでのみサポートされます。

構文

ビット VALUE
0 - 5 31
6 - 10 RS
11 - 15 RA
16 - 20 RB
21 - 30 729
31 RC
POWER ® ファミリー 
SREQ RA とは, 「RS」, 要求ブロック
SREQ RA とは, 「RS」, 要求ブロック

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 操作のソース汎用レジスターを指定します。

  1. 以下のコードは、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.
    
  2. 以下のコードは、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.