【问题标题】:Using ARM NEON instructions on a legacy assember在旧式汇编器上使用 ARM NEON 指令
【发布时间】:2012-12-07 18:53:29
【问题描述】:

我有一个适用于 Windows Mobile 6 的 Visual Studio 2008 C++03 项目,我想在其中实现一个 ARM-NEON 版本的 memcpy。

ARM Info Center 提供了一个实现:

; NEON memory copy with preload
NEONCopyPLD
      PLD [r1, #0xC0]
      VLDM r1!,{d0-d7}
      VSTM r0!,{d0-d7}
      SUBS r2,r2,#0x40
      BGE NEONCopyPLD

很遗憾,VS2008 ARM 汇编器不支持 NEON 指令集(尽管我的处理器是基于 ARM Cortex-A8)。

有什么方法可以为这些指令提供字节码,以便 ARM 汇编程序接受它?我可以在 DCB 或 DCD 中输入正确的值吗?

谢谢

【问题讨论】:

    标签: assembly arm neon


    【解决方案1】:

    您可以将 DCI 指令用于“十六进制指令”:

    http://msdn.microsoft.com/en-us/library/ms863606.aspx

    【讨论】:

    • 也许我用错了,但是当我用DCI 0xE1A00000 ; mov r0, r0(一个占位符,直到我可以得到 VLDM 操作码)替换 VLDM 命令时,我得到“错误 A0051:未知操作码:DCI "
    • RVCT assembler guide 列出了一些。在ARM模式下,DCD等价于DCI;或者DCB 也应该可以工作。
    • 谢谢。我正在寻找 LVDM 和 VSTM(NEON 指令)的 ARM 操作码。你能推荐一个资源吗? ARM ARM 是“受限访问”infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0406b/…
    • 没关系,我找到了。在 ARM 网站上注册是免费的
    • 用gcc编译代码,然后使用objdump获取机器码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2022-08-11
    • 2015-11-22
    • 1970-01-01
    相关资源
    最近更新 更多