第 2 オペランドのハーフワードを交換した上で、上位ハーフワードの加算と下位ハーフワードの減算を実行することができます。その結果に基づいて、APSR の GE ビットが設定されます。
構文
unsigned int __sasx(unsigned int
val1
, unsigned int
val2
)
各項目には以下の意味があります。
-
val1
-
減算用の第 1 オペランドを下位ハーフワードに、加算用の第 1 オペランドを上位ハーフワードに保持します。
-
val2
-
減算用の第 2 オペランドを上位ハーフワードに、加算用の第 2 オペランドを下位ハーフワードに保持します。
戻り値
__sasx
コンパイラ組み込み関数は、以下を返します。
戻り値のバイトごとに、演算の結果に基づいて、APSR.GE の各ビットがセットまたはクリアされます。
res
が戻り値の場合、以下のようになります。
例
unsigned int exchange_subtract_add(unsigned int val1, unsigned int val2)
{
unsigned int res;
res = __sasx(val1,val2); /* res[15:0] = val1[15:0] - val2[31:16]
res[31:16] = val1[31:16] + val2[15:0]
*/
return res;
}