12.37 __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;
}
関連する参考文書
10.153 ARMv6 SIMD コンパイラ組み込み関数
関連情報
SXTAB16
ARM 命令と Thumb 命令の概要
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.