12.60 __uxtab16 コンパイラ組み込み関数

このコンパイラ組み込み関数を使用して、コンパイラによって生成される命令ストリームに UXTAB16 命令を挿入します。

一方のオペランドから 2 つの 8 ビット値を抽出して、それぞれ 16 ビットにゼロ拡張し、その結果を、もう一方のオペランドの 2 つの 16 ビット値に加算することができます。

構文

unsigned int __uxtab16(unsigned int val1 , unsigned int val2 )
val2 [7:0] と val2 [23:16] は、ゼロ拡張される 2 つの 8 ビット値を保持します。

戻り値

__uxtab16 コンパイラ組み込み関数は、 val2 から抽出された 8 ビット値を 16 ビット値にゼロ拡張した結果を val1 に加算して返します。

unsigned int extend_add(unsigned int val1, unsigned int val2)
{
    unsigned int res;
    res = __uxtab16(val1,val2); /* res[15:0] = ZeroExt(val2[7:0] to 16 bits) 
                                     + val1[15:0]
                                   res[31:16] = ZeroExt(val2[31:16] to 16 bits)
                                     + val1[31:16]
                                 */
    return res;
}
関連する参考文書
10.153 ARMv6 SIMD コンパイラ組み込み関数
関連情報
UXTAB16
ARM 命令と Thumb 命令の概要
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.