__sxtab16 コンパイラ組み込み関数

このコンパイラ組み込み関数を使用して、コンパイラによって生成される命令ストリームに SXTAB16 命令を挿入します。第 2 オペランド(ビット位置 [7:0] および [23:16])から 2 つの 8 ビット値を抽出して、それぞれ 16 ビットに符号拡張し、その果を第 1 オペランドに加算することができます。

unsigned int __sxtab16(unsigned int val1, unsigned int val2)

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

val1

抽出されて符号拡張された値が加算される値を保持します。

val2

抽出されて符号拡張される 2 つの 8 ビット値を保持します。

__sxtab16 コンパイラ組み込み関数は、val1 val2 を加算した結果を返します。加算を実行する前に、val2[7:0] と val2[23:16] の 8 ビット値があらかじめ抽出されて、符号拡張されます。

例:

unsigned int extract_sign_extend_and_add(unsigned int val1, unsigned int val2)
{
  unsigned int res;

    res = __sxtab16(val1,val2); /* res[15:0]
                                    = val1[15:0] + SignExtended(val2[7:0])

                                   res[31:16]
                                    = val1[31:16] + SignExtended(val2[23:16])
                                 */
    return res;
}

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711