首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >asm中的未知寄存器名称'q0‘

asm中的未知寄存器名称'q0‘
EN

Stack Overflow用户
提问于 2014-02-02 19:46:30
回答 1查看 12.8K关注 0票数 20

我正在尝试为最新的ios (iOS 7.0)构建$(ARCHS_STANDARD_32_BIT)架构的iOS项目- armv7,但我得到了以下错误:

代码语言:javascript
复制
Unknown register name 'q0' in asm

在函数中

代码语言:javascript
复制
static void neon_asm_mat4_vec4_mul(const float* __restrict m, const int* __restrict v, int* __restrict output)
      {
        asm volatile
        (
         // Store m & v - avoiding q4-q7 which need to be preserved - q0 = result
         "vldmia %1, { q8-q11 } \n\t"   // q8-q11 = m
         "vldmia %2, { q1 }     \n\t"   // q1     = v

         // Convert v to floats
         "vcvt.f32.s32 q1, q1 \n\t"

         // result = first column of A x V.x
         "vmul.f32 q0, q8, d2[0] \n\t"

         // result += second column of A x V.y
         "vmla.f32 q0, q9, d2[1] \n\t"

         // result += third column of A x V.z
         "vmla.f32 q0, q10, d3[0] \n\t"

         // result += last column of A x V.w
         "vmla.f32 q0, q11, d3[1] \n\t"

         // convert to integer
         "vcvt.s32.f32 q0, q0 \n\t"

         // output = result registers
         "vstmia %0, { q0 }  \n\t"

         : // no output
         : "r" (output), "r" (m), "r" (v)      // input - note *value* of pointer doesn't change
         : "memory", "q0", "q1", "q2", "q3", "q8", "q9", "q10", "q11" //clobber
         );
      }

您可以帮助我更新我的代码,以便它可以为最新的硬件构建,或者只是简单地配置不同的构建设置。我是iOS开发的新手,所以我有点迷路了……

EN

回答 1

Stack Overflow用户

发布于 2014-03-14 11:10:37

尝试在neon_matrix_impl.c和mat4.c中进行更改

#if defined(ARM_NEON)

#if defined(_ARM_ARCH_7)

票数 47
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21510187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档