【基于Android的ARM汇编语言系列】之六:NEON指令集与VFP指令集

原创 2015年07月06日 16:57:14

作者:郭嘉
邮箱:allenwells@163.com
博客: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汇编语言系列】之五:ARM指令集与Thumb指令集
【基于Android的ARM汇编语言系列】之六:NEON指令集与VFP指令集

NEON指令集与VFP指令集是ARM指令集的扩展,多用于多媒体编程和浮点运算。

一 Android平台使用NEON指令集与VFP指令集

Android NDK从r3版本开始也添加了对NEON指令集与VFP指令集的支持。使用方法如下所示:

1 运行时检测处理器是否支持NEON指令集与VFP指令集

Android NDK提供了一个cpufeatures的库来让开发者在运行时检测处理器是否支持NEON指令集与VFP指令集。要使用cpufeatures库,

(1) 首先在Android.mk中添加以下内容:

$(call import-module, android/cpufeatures)

(2) 然后在C/C++代码中包含头文件cpu-features.h文件。该文件包含以下函数。

  • android_getCpuFamily():获取处理器家族信息,对于ARM处理器,该函数始终返回常量值ANDROID_CPU_FAMILY_ARM。
  • android_getCpuFeatures():检测处理器支持的指令集,如果支持NEON指令集,则返回的64位数据中ANDROID_CPU_ARM_FEATURE_NEON标志就会被置位。如果支持VFPv3指令集,则返回的64位数据中ANDROID_CPU_ARM_FEATURE_VFPv3标志就会被置位。
  • android_getCpuCount():获取处理器的核心数。

z只需要在Android.mk添加一下内容即可使用。

TARGET_ARCH_ABI:=armeabi-v7a
LOCAL_ARM_:=true

相关文章推荐

ARM VFP

ARM的vector float-point遵循IEEE754-1985的标准。单精度浮点数用32位表示 双精度浮点数用2个32位数表示 ...
  • cpuwolf
  • cpuwolf
  • 2009年11月06日 14:15
  • 3437

ARM多媒体编程与浮点计算(NEON和VFP)指令集

NEON和VFP指令集是ARM指令集的扩展,多用于多媒体编程与浮点计算。从Android原生程序开发包(Android NDK)r3开始,加入了对NEON与VFP指令的支持,如果想使用NEON指令集,...

Android最简单的基于FFmpeg的例子(三)---编译FFmpeg成一个SO库

FFmpeg使用第三步,编译FFmpeg成一个SO库. 编译环境 Mac OS X Capitan 10.11.3NDK-r10e (64-bit)FFmpeg 3.0 ...

Android NEON指令学习

转自http://blog.csdn.net/chshplp_liaoping/article/details/12752749 在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目...

(NEON实例一)ARM处理器NEON编程及优化技巧——数据加载和存储

ARM处理器NEON编程及优化技巧——数据加载和存储   ARM的NEON协处理器技术是一个64/128-bit的混合SIMD架构,用于加速包括视频编码解码、音频解码编码、3D图像、语音和图像...

arm neon指令集说明

  • 2017年08月30日 11:51
  • 12KB
  • 下载

ARM assembly guide(含neon指令集)

  • 2012年06月16日 00:30
  • 1.32MB
  • 下载

ARM NEON 基本指令集介绍

寄存器 ARMV7架构包含: 16个通用寄存器(32bit),R0-R1516个NEON寄存器(128bit),Q0-Q15(同时也可以被视为32个64bit的寄存器,D0-D31) 1...

ARM和neon指令集

在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目前在移动上使用最多的是ARM芯片。 ARM是微处理器行业的一家知名企业,其芯片结构有:armv5、armv6、armv7和ar...

ARM汇编语言指令集(3) .

常数 There is no single instruction which will load a 32 bit immediate constant into a register witho...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【基于Android的ARM汇编语言系列】之六:NEON指令集与VFP指令集
举报原因:
原因补充:

(最多只允许输入30个字)