【Androidに基づくARMアセンブリ言語シリーズ】の六:NEONコマンドセットとVFPコマンドセット


作者:郭嘉メールボックス:[email protected]ブログ:http://blog.csdn.net/allenwells github:https://github.com/AllenWell
【AndroidベースのARMアセンブリ言語シリーズ】チャプターリスト
【AndroidベースのARMアセンブリ言語シリーズ】の一つ:ARMアセンブリ言語の冒頭「AndroidベースのARMアセンブリ言語シリーズ」の二:C/C++プログラム生成ARMアセンブリプログラムの過程分析【AndroidベースのARMアセンブリ言語シリーズ】の三:ARMアセンブリ言語構造【AndroidベースのARMアセンブリ言語シリーズ】の四:ARM方式プロセッサのアドレス指定【Androidに基づくARMアセンブリ言語シリーズ】の5:ARMコマンドセットとThumbコマンドセット【Androidに基づくARMアセンブリ言語シリーズ】の6:NEONコマンドセットとVFPコマンドセット
NEON命令セットとVFP命令セットはARM命令セットの拡張であり、マルチメディアプログラミングと浮動小数点演算に多く使われています.
Androidプラットフォームは、NEON命令セットとVFP命令セットを使用しています.
Android NDKは、r 3バージョンから、NEON命令セットとVFP命令セットに対するサポートも追加されています.使用方法は以下の通りです.
1運転時に、プロセッサがNEON指令セットとVFP指令セットをサポートしているかどうかを検出します.
Android NDKは、実行時に、プロセッサがNEON命令セットとVFPコマンドセットをサポートしているかどうかを検出するために、cputfeatureライブラリを提供します.
(1)まずAndroid.mkに以下の内容を追加する.
$(call import-module, android/cpufeatures)
(2)その後、C/C++コードにヘッダファイルcpu-feature s.hファイルを含みます.このファイルには以下の関数が含まれています.
  • android ugut CpuFamily():プロセッサ家族情報を取得し、ARMプロセッサに対して、この関数は常に定数値ANDROID_CPU_uFAMILYuARMを返します.
  • android ugut CputFeature():プロセッササポートのコマンドセットを検出し、NEONコマンドセットをサポートすると、返ってくる64ビットのデータの中にANDROIDu CPU_UARM_UFEATUREuNEONフラグがセットされます.VFPv 3コマンドセットをサポートすると、返ってくる64ビットのデータの中にANDROIDu CPU_UARMFEATFP_EUREEEUREEEEEEEURがセットされます.
  • android ugut CpuCount():プロセッサのコア数を取得する.
  • zはAndroid.mkに内容を追加するだけで使えます.
    TARGET_ARCH_ABI:=armeabi-v7a
    LOCAL_ARM_:=true