【基于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
  • 3531

ARMV7 NEON汇编指令详解中文版(NEON VFP MMX)

  • 2011年02月21日 11:27
  • 5.66MB
  • 下载

ANDROID NDK文档系列--(09)CPU Features

Android NDK CPU Features detection library:   Android NDK CPU特性检测库: -----------------------...
  • superfang119
  • superfang119
  • 2013年01月18日 11:12
  • 1903

vfp程序自毁代码

VFP程序自毁代码2007-11-24 14:16有时候我们在编写程序的时候为了达到一定的目的需要程序本身进行自我销毁,但VFP是顺序执行代码的,用一般的删除文件的命令当然根本是不行的,但 我们知道D...
  • ZWPzym19790304
  • ZWPzym19790304
  • 2009年12月08日 10:01
  • 2825

Using hardware VFP instructions

转自:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0483c/BABBGHDB.html Using hardw...
  • lijiatong1005
  • lijiatong1005
  • 2013年09月11日 10:54
  • 788

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

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

ARM和NEON指令

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

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

作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWel...
  • AllenWells
  • AllenWells
  • 2015年07月06日 16:57
  • 1852

vfp数据库系统概述

  • 2013年06月15日 20:22
  • 3.76MB
  • 下载

arm中的汇编语言之ARM指令集

一:ARM指令集的分类:       ARM指令集可以分为六类:跳转指令,数据处理指令,程序状态寄存器传输指令,LOAD/STORE指令,协处理器指令和异常中断指令。 在ARM中有两种方式来实现...
  • ldessoo
  • ldessoo
  • 2015年03月03日 22:23
  • 685
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【基于Android的ARM汇编语言系列】之六:NEON指令集与VFP指令集
举报原因:
原因补充:

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