- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要构建iOS
的OpenBLAS
库。我选择构建它的 0.3.6
版本。我相信这是该库最新的稳定版本。
您可以在此处找到该库的版本 - https://github.com/xianyi/OpenBLAS/releases
我遇到下一个问题 - 似乎可以在 XCode
中找到的 clang
提供的汇编编译器似乎无法理解 .S 中的某些语法
文件库提供。
我有两个文件(nrm2.S
和 znrm2.S
),它们导致了我所有的麻烦。这是nrm2.S
。我不会提供其他文件,因为那里的错误完全相同。但如果你也想看一下,我会发布它,请告诉我:
/*******************************************************************************
Copyright (c) 2015, The OpenBLAS Project
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. Neither the name of the OpenBLAS project nor the names of
its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*******************************************************************************/
#define ASSEMBLER
#include "common.h"
#define N x0
#define X x1
#define INC_X x2
#define I x3
#if !defined(DOUBLE)
#define SSQ s0
#define SCALE s1
#define REGZERO s5
#define REGONE s6
#else
#define SSQ d0
#define SCALE d1
#define REGZERO d5
#define REGONE d6
#endif
/*******************************************************************************
* Macro definitions
*******************************************************************************/
.macro KERNEL_F1
#if !defined(DOUBLE)
ldr s4, [X], #4
fcmp s4, REGZERO
beq KERNEL_F1_NEXT_\@
fabs s4, s4
fcmp SCALE, s4
bge KERNEL_F1_SCALE_GE_X_\@
fdiv s2, SCALE, s4
fmul s2, s2, s2
fmul s3, SSQ, s2
fadd SSQ, REGONE, s3
fmov SCALE, s4
b KERNEL_F1_NEXT_\@
KERNEL_F1_SCALE_GE_X_\@:
fdiv s2, s4, SCALE
fmla SSQ, s2, v2.s[0]
#else
ldr d4, [X], #8
fcmp d4, REGZERO
beq KERNEL_F1_NEXT_\@
fabs d4, d4
fcmp SCALE, d4
bge KERNEL_F1_SCALE_GE_X_\@
fdiv d2, SCALE, d4
fmul d2, d2, d2
fmul d3, SSQ, d2
fadd SSQ, REGONE, d3
fmov SCALE, d4
b KERNEL_F1_NEXT_\@
KERNEL_F1_SCALE_GE_X_\@:
fdiv d2, d4, SCALE
fmla SSQ, d2, v2.d[0]
#endif
KERNEL_F1_NEXT_\@:
.endm
.macro KERNEL_S1
#if !defined(DOUBLE)
ldr s4, [X]
fcmp s4, REGZERO
beq KERNEL_S1_NEXT
fabs s4, s4
fcmp SCALE, s4
bge KERNEL_S1_SCALE_GE_X
fdiv s2, SCALE, s4
fmul s2, s2, s2
fmul s3, SSQ, s2
fadd SSQ, REGONE, s3
fmov SCALE, s4
b KERNEL_S1_NEXT
KERNEL_S1_SCALE_GE_X:
fdiv s2, s4, SCALE
fmla SSQ, s2, v2.s[0]
#else
ldr d4, [X]
fcmp d4, REGZERO
beq KERNEL_S1_NEXT
fabs d4, d4
fcmp SCALE, d4
bge KERNEL_S1_SCALE_GE_X
fdiv d2, SCALE, d4
fmul d2, d2, d2
fmul d3, SSQ, d2
fadd SSQ, REGONE, d3
fmov SCALE, d4
b KERNEL_S1_NEXT
KERNEL_S1_SCALE_GE_X:
fdiv d2, d4, SCALE
fmla SSQ, d2, v2.d[0]
#endif
KERNEL_S1_NEXT:
add X, X, INC_X
.endm
.macro KERNEL_F8
KERNEL_F1
KERNEL_F1
KERNEL_F1
KERNEL_F1
KERNEL_F1
KERNEL_F1
KERNEL_F1
KERNEL_F1
.endm
.macro INIT_S
#if !defined(DOUBLE)
lsl INC_X, INC_X, #2 // INC_X * SIZE
#else
lsl INC_X, INC_X, #3 // INC_X * SIZE
#endif
.endm
.macro INIT
eor v1.16b, v1.16b, v1.16b // scale=0.0
fmov SSQ, #1.0
fmov REGONE, SSQ
fmov REGZERO, SCALE
.endm
/*******************************************************************************
* End of macro definitions
*******************************************************************************/
PROLOGUE
.align 5
INIT
cmp N, #0
ble .Lnrm2_kernel_L999
cmp INC_X, #0
beq .Lnrm2_kernel_L999
cmp INC_X, #1
bne .Lnrm2_kernel_S_BEGIN
.Lnrm2_kernel_F_BEGIN:
asr I, N, #3 // I = N / 8
cmp I, xzr
ble .Lnrm2_kernel_F1
.Lnrm2_kernel_F8:
KERNEL_F8
subs I, I, #1
bne .Lnrm2_kernel_F8
.Lnrm2_kernel_F1:
ands I, N, #7
ble .Lnrm2_kernel_L999
.Lnrm2_kernel_F10:
KERNEL_F1
subs I, I, #1
bne .Lnrm2_kernel_F10
b .Lnrm2_kernel_L999
.Lnrm2_kernel_S_BEGIN:
INIT_S
mov I, N
.align 5
.Lnrm2_kernel_S10:
KERNEL_S1
subs I, I, #1
bne .Lnrm2_kernel_S10
.Lnrm2_kernel_L999:
fsqrt SSQ, SSQ
fmul SSQ, SCALE, SSQ
ret
EPILOGUE
当编译器尝试处理该文件时,它会给出下一个错误:
<instantiation>:7:2: note: while in macro instantiation
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -arch arm64 -miphoneos-version-min=10.0 -O2 -O2 -DMAX_STACK_ALLOC=2048 -Wall -DF_INTERFACE_GFORT -fPIC -DNO_LAPACK -DNO_LAPACKE -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=8 -DMAX_PARALLEL_NUMBER=1 -DVERSION=\"0.3.6\" -march=armv8-a -DASMNAME=_sgemm_oncopy -DASMFNAME=_sgemm_oncopy_ -DNAME=sgemm_oncopy_ -DCNAME=sgemm_oncopy -DCHAR_NAME=\"sgemm_oncopy_\" -DCHAR_CNAME=\"sgemm_oncopy\" -DNO_AFFINITY -I.. -UDOUBLE -UCOMPLEX -c -UDOUBLE -UCOMPLEX ../kernel/arm64/../generic/gemm_ncopy_4.c -o sgemm_oncopy.o
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
<instantiation>:14:22: error: unknown token in expression
KERNEL_F1_SCALE_GE_X_\@:
^
<instantiation>:7:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
<instantiation>:14:22: error: invalid operand
KERNEL_F1_SCALE_GE_X_\@:
^
<instantiation>:7:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
../kernel/arm64/nrm2.S:87:16: error: unknown token in expression
KERNEL_F1_NEXT_\@:
^
<instantiation>:7:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
../kernel/arm64/nrm2.S:87:16: error: invalid operand
KERNEL_F1_NEXT_\@:
^
<instantiation>:7:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
<instantiation>:4:21: error: unexpected token in argument list
beq KERNEL_F1_NEXT_\@
^
<instantiation>:8:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
<instantiation>:7:27: error: unexpected token in argument list
bge KERNEL_F1_SCALE_GE_X_\@
^
<instantiation>:8:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
<instantiation>:13:19: error: unexpected token in argument list
b KERNEL_F1_NEXT_\@
^
<instantiation>:8:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
<instantiation>:14:22: error: unknown token in expression
KERNEL_F1_SCALE_GE_X_\@:
^
<instantiation>:8:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
<instantiation>:14:22: error: invalid operand
KERNEL_F1_SCALE_GE_X_\@:
^
<instantiation>:8:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
../kernel/arm64/nrm2.S:87:16: error: unknown token in expression
KERNEL_F1_NEXT_\@:
^
<instantiation>:8:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
../kernel/arm64/nrm2.S:87:16: error: invalid operand
KERNEL_F1_NEXT_\@:
^
<instantiation>:8:2: note: while in macro instantiation
KERNEL_F1
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:146:2: note: while in macro instantiation
KERNEL_F8
^
<instantiation>:4:21: error: unexpected token in argument list
beq KERNEL_F1_NEXT_\@
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:159:2: note: while in macro instantiation
KERNEL_F1
^
<instantiation>:7:27: error: unexpected token in argument list
bge KERNEL_F1_SCALE_GE_X_\@
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:159:2: note: while in macro instantiation
KERNEL_F1
^
<instantiation>:13:19: error: unexpected token in argument list
b KERNEL_F1_NEXT_\@
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:159:2: note: while in macro instantiation
KERNEL_F1
^
<instantiation>:14:22: error: unknown token in expression
KERNEL_F1_SCALE_GE_X_\@:
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:159:2: note: while in macro instantiation
KERNEL_F1
^
<instantiation>:14:22: error: invalid operand
KERNEL_F1_SCALE_GE_X_\@:
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:159:2: note: while in macro instantiation
KERNEL_F1
^
../kernel/arm64/nrm2.S:87:16: error: unknown token in expression
KERNEL_F1_NEXT_\@:
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:159:2: note: while in macro instantiation
KERNEL_F1
^
../kernel/arm64/nrm2.S:87:16: error: invalid operand
KERNEL_F1_NEXT_\@:
^
/var/folders/xt/7v6bxk2n19zft1y3yzymdc580000gq/T/nrm2-bd3346.s:159:2: note: while in macro instantiation
KERNEL_F1
当我寻找问题的解释时,我发现了此链接 - https://www.avrfreaks.net/forum/labels-inside-macros .它让我了解到,有问题的 \@
符号是一种标签计数器,它处理 GAS
宏内唯一标签名称的问题。
不幸的是,我对汇编器几乎一无所知,无法自行修复它。所以我想也许这里有组装专家愿意引导我穿过那片“黑暗森林”。
是否有可能 \@
是相对较新的符号,而 Apple 的编译器还不知道它?我应该怎么做才能解决这个问题?
提前致谢!
最佳答案
这是因为 clang 使用集成的 LLVM 汇编器,它不具备 GNU 汇编器的所有功能。使用 -no-integrated-as
编译以改用 GNU 汇编程序。
关于ios - GAS 宏内的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58182880/
所以我使用一个带有整个 block 的标签作为链接,它是一个产品展示,所以你点击它会转到产品页面。现在我创建了一个标签作为链接到购物车页面的按钮。所以我让它工作,但是当我点击购物车按钮时,两个页面都会
根据 Web 标准,创建带有标题 1 的链接的正确代码是什么? 是吗 stackoverflow 或 stackoverflow 谢谢 最佳答案 根据网络标准,您不能将 block 元素放入内
在Java中它是这样写的..当我移植这段代码时...意识到没有这样的东西 break 和continue . 我知道这些命令没有包含在内,因为在使用带有命令的 goto 时必须有一种更简洁的方法来执
我们有一个相当标准的发布过程,使用 Visual Source Safe 在发布之前标记构建。这允许我们在出现任何问题时从该标签中获取,并在需要更改时使用它进行分支。 我们有几个不同的项目,并且总是使
我必须创建一个搜索内容,其中包含搜索框、标题和段落描述。默认情况下,描述被禁用,当我输入一些与描述文本匹配的文本时,描述段落标签应该打开。一些匹配的演示是这样的: [ fiddle ][1] 但默认情
我一直在阅读有关 的文档标签,我似乎无法理解它与简单地使用 有何不同那是 display: none; 文档:template tag 例子 对比 例子
我需要一个脚本来复制当开关按钮打开时标记,当开关按钮关闭时删除标记。我需要一个简单的方法。这是开关按钮: 我试过这个: var change
JSF 是一个 MVC 框架,但我很困惑为什么我们已经有了这么多 HTML 标签还需要 JSF 标签。毫无疑问,JSF 简化了很多事情。我想进一步了解 JSF 中的模型 View 和 Controll
我在这个 website 上看到了那些 html 代码: Homepa
我添加了 photoswipe 插件,可以使用 搜索我的所有照片。标签,如果点击,照片就会变成全屏。我让它工作了,但现在我的导航栏(有 标签)在点击时会触发 photoswipe 插件。 在 ph
标签
我正在尝试截断显示自 的文本标签,但它不工作。我将样式应用于其他标签样式并且它确实有效(我看到的示例中没有一个使用 标签)。我想知道是否有人可以向我解释为什么会这样(我不是最擅长 HTML/CSS
HTML 是这样的: Menu 1 Menu 2 Sub menu 2
我可以更改 TextInputLayout 的位置 float 标签(底部 float 标签)吗?我需要为波纹管 float 标签设置正确的位置。 最佳答案 我解决了我的问题,这是我的 xml:
我的代码是 printMsg : function(data) { $("#message").html(data.bodyText); ... } 这里 data.body
我是 Scrapy 和 Xpath 的初学者,我正在寻找解析具有以下结构的网站 cat1 value1 value2
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及
我必须从 xml 中解析数据。这是我的 xml- 或者它的 url 是:http://mobileecommerce.site247365.com/admin/catdata.xml News f
如何创建应该允许多行数据的标记。不要说使用textarea标签。我知道,但我只想 标记因为标签具有 value 属性。所以当我从 xml 文件获取值时,我应该使用 jquery 语法动态获取.. 最佳
我有一个页面使用我定义的某些样式。 在同一页面上,我刚刚导入了一个使用自己样式的外部 jQuery 插件,例如,包括 。被我自己覆盖的标签样式。 如何确保我的样式表中的样式不会覆盖 jQuery 插件
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我是一名优秀的程序员,十分优秀!