UMULL、UMLAL、SMULL、SMLAL

符号付き/符号なし long 乗算命令と任意に指定できる積算命令です(32 ビット× 32 ビットを実行し、64 ビットの積算値と結果を返します)。

Show/hide構文

Op{S}{cond} RdLo, RdHi, Rn, Rm

各項目には以下の意味があります。

Op

UMULLUMLALSMULL、または SMLAL のいずれかを指定します。

S

任意に指定できる接尾文字です。A32 状態でのみ使用できます。S が指定されている場合は、演算結果に基づいて条件フラグが更新されます。

cond

任意の条件コードを指定します。

RdLoRdHi

デスティネーションレジスタを指定します。UMLAL および SMLAL では、これらのレジスタに累算値も保存されます。RdLoRdHi には、それぞれ異なるレジスタを指定する必要があります。

Rn、Rm

オペランドを保持する ARM レジスタを指定します。

Show/hide使用法

UMULL 命令は RnRm の値を符号なし整数と解釈します。これらの整数を乗算して、演算結果の下位 32 ビットを RdLo に返し、上位 32 ビットを RdHi に返します。

UMLAL 命令は RnRm の値を符号なし整数と解釈します。これらの整数を乗算して得られた 64 ビットの演算結果を、RdHiRdLo が保持している 64 ビットの符号なし整数に加算します。

SMULL 命令は、RnRm の値を、2 の補数となる符号付き整数と解釈します。これらの整数を乗算して、演算結果の下位 32 ビットを RdLo に返し、上位 32 ビットを RdHi に返します。

SMLAL 命令は、RnRm の値を、2 の補数となる符号付き整数と解釈します。これらの整数を乗算して得られた 64 ビットの演算結果を、RdHiRdLo が保持している 64 ビットの符号付き整数に加算します。

Show/hideレジスタの制約条件

レジスタには PC は使用できません。

A32 命令での SP の使用は非推奨です。T32 命令では SP は使用できません。

Show/hide条件フラグ

S が指定されている場合、これらの命令では、以下のようになります。

  • 結果に応じて N フラグおよび Z フラグを更新します。

  • C フラグまたは V フラグは更新しません。

Show/hide可用性

これらの 32 ビット命令は A32 および T32 で使用できます。

T32 にはこれらの命令の 16 ビットバージョンはありません。

Show/hide

    UMULL       r0, r4, r5, r6
    UMLALS      r4, r5, r3, r8

Show/hide関連項目

Copyright © 2014 ARM. All rights reserved.ARM DUI 0802AJ
Non-ConfidentialID061814