fpu相关内容

在Linux内核中生成和优化文件中的FP/SIMD代码,其中包含KERNEL_FPU_BEGIN()?

我知道禁止在内核中使用任何形式的浮点代码,我们永远不应该使用任何可能生成FP/SIMD指令的GCC标志,但一些使用kernel_fpu_begin()和kernel_fpu_end()的源代码(特别是arch/x86/crypto/*)怎么办? Example 1,example 2。 我有一个老式英特尔酷睿2双核CPU,用于我的64位Linux内核,并且在主要Makefile中我使用 ..

第三方代码正在修改 FPU 控制字

介绍 - 冗长而无聊的部分 (问题在最后) 我对不断更改 FPU 控制字的第三方 COM 组件感到非常头疼. 我的开发环境是Windows和Visual C++ 2008.正常的FPU控制字指定在各种情况下都不应该抛出异常.我已经通过查看 float.h 中的 _CW_DEFAULT 宏以及在启动时查看调试器中的控制字来验证这一点. 每次我调用 COM 对象时,控制字都会在 ..
发布时间:2022-01-21 10:55:57 其他开发

在 Android 上检测 FPU 的存在

我想在 Android 上获得我的移动应用程序的最大性能.我想知道是否有人知道检查手机是否具有 FPU 的技巧. 经过一些研究,似乎在拥有 FPU 的单元上使用 FloatMath 类会比较慢,所以我想两全其美. 大多数较新的手机都有 FPU,但我希望获得设备所能提供的最佳性能. 解决方案 底层是 Linux 内核,至少 Android 的默认配置会挂载 procfs.这意味着 ..
发布时间:2021-12-22 23:38:44 移动开发

AArch64 上 sqrt 函数的性能

出于学术原因,我将在 AArch64 上测试 sqrt 函数的性能.单浮点sqrtf函数的代码: fsqrt s0, s0退 双浮点sqrt函数的代码: fsqrt d0, d0退 我指的是此处 FSQRT 的理论延迟:http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Software_Optimiza ..
发布时间:2021-11-17 22:47:56 其他开发

AArch64 上 sqrt 函数的性能

出于学术原因,我将在 AArch64 上测试 sqrt 函数的性能.单浮点sqrtf函数的代码: fsqrt s0, s0退 双浮点sqrt函数的代码: fsqrt d0, d0退 我指的是此处 FSQRT 的理论延迟:http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Software_Optimiza ..
发布时间:2021-11-17 22:40:22 其他开发

GCC [for ARM] 强制无浮点

我想创建我的嵌入式 C 代码的构建,专门检查浮点运算不是偶然引入的.我已经尝试将 +nofp 添加到我的 [cortex-m3] 处理器架构中,但 GCC for ARM 不喜欢那样(可能是因为 cortex-m3 没有一个浮点单元).我试过指定 -mfpu=none 但这不是允许的选项.我试过将 -lm 离开链接器命令行,但链接器似乎太聪明了,不能被它愚弄,并且正在编译带有 double 的代码 ..
发布时间:2021-11-17 22:23:33 其他开发

ARM 上的快速浮点到 int 转换和浮点精度 (iPhone 3GS/4)

我读过(http://www.stereopsis.com/FPU.html)(什么是最快的方法在 x86 上将 float 转换为 int).有谁知道慢速简单转换(见下面的片段)是否也适用于 ARM 架构? inline int Convert(float x){int i = (int) x;返回我;} 要应用 FPU 文章中提到的一些技巧,您必须设置浮点运算的精度.我如何在 ARM 上执 ..
发布时间:2021-11-17 22:18:26 其他开发

装配:JA 和 JB 工作不正常

由于我的主要操作系统是 linux 并且在 Visual Studio 上有项目,所以我决定使用在线编译器来实现它.我找到了许多人建议的 this.所以这是我的代码: #include 使用命名空间标准;int main(void) {浮动 a = 1;浮动 b = 20.2;浮点数 = 0;浮动 res1 = 0;_asm {飞行时间FCOM bJA迷笛JMP模式迷笛:FST资源输出修改:FS ..
发布时间:2021-09-29 19:40:09 C/C++开发

在lldb中打印FPU寄存器

如何使用lldb打印FPU寄存器? 在gdb中,您将执行类似 p $ st0 的操作,但是在lldb中执行相同操作会导致错误: error:使用未声明的标识符'$ st0' 寄存器读取的st0 也不起作用,并给出错误 error:无效的寄存器名称'st0'.. 解决方案 按照 paulsm4 的建议,使用 register读取--all ,我发现寄存器实际上是 stmm0 到 ..
发布时间:2021-05-30 19:37:13 其他开发

如何将ST(0)移至EAX?

Hullo,我正在学习x86 FPU组装,并且我有 有一个简单的问题,我找不到答案: 如何从 ST(0) (FPU的顶部)转移价值 堆栈)到 EAX 吗? 还: 此代码正确吗: ; multiply (dot) two vectors of 3 floats passed by pointers as arg 1 arg 2 ; passings are ok I think, ..
发布时间:2020-07-14 18:30:41 其他开发

如何清除masm32协处理器(FPU)中的堆栈?

在 masm32 FPU中进行一些操作.但是我无法清除FPU的堆栈,例如之后是ST(0)-ST(7).是否有任何清除堆栈的说明.你能建议什么吗? P.S. 假设清除堆栈以进行进一步的计算. 解决方案 您可以使用FINIT初始化FPU并将数据寄存器ST(0)-ST(7)标记为空(它不会清除其内容虽然) ..
发布时间:2020-06-15 19:17:11 其他开发

如何在信号处理程序中更改FPU上下文(C ++/Linux)

我写了一个信号处理程序来捕获FPE错误.即使发生这种情况,我也需要继续执行.我收到ucontext_t作为参数,我可以将错误的操作数从0更改为另一个值,但是FPU上下文仍然很糟糕,并且我遇到了无限循环? 有人已经在Linux上操纵过ucontext_t结构吗? 我终于找到了一种通过清除ucontext_t的状态标志来处理这些情况的方法,如下所示: ... const long i ..
发布时间:2020-06-15 19:17:10 服务器开发

x87比SSE的优势

我知道x87具有更高的内部精度,这可能是人们所看到的与SSE操作之间的最大差异.但是我想知道,使用x87还有其他好处吗?我有在任何项目中自动键入-mfpmath=sse的习惯,我想知道我是否还缺少x87 FPU提供的其他功能. 解决方案 对于手写asm,x87的某些指令在SSE指令集中不存在. 所有这些都是三角函数,例如fsin,fcos,fatan,fatan2和一些指数/对数. ..
发布时间:2020-06-15 19:17:05 其他开发

FLD浮点指令

根据 http://cs.smith.edu/~thiebaut/ArtOfAssembly/CH14/CH14-4.html#HEADING4-5 14.4.4.1 FLD指令 fld mem_32 fld mem_64 [bx] 我的目标是将常数10存储到我的fPU堆栈中. 为什么我不能这样做? __asm { move bx, 0x0004; fld dword ..
发布时间:2020-06-15 19:17:03 C/C++开发

MXCSR控制寄存器的范围?

我想知道MXCSR控制寄存器中存储的值的生存期是多少(包括用于非常规浮点数的FTZ和DAZ配置):是否在线程范围内,还是CPU/FPU上的所有处理都通用? 我想知道的是,是否需要在线程池的每个线程的开始处或在应用程序中一次设置它(MXCSR),还是会影响应用程序中的其他所有内容和/或系统吗? 感谢您的帮助! 解决方案 是的,您必须在每个线程的开头设置MXCSR寄存器.任何线程都 ..
发布时间:2020-06-15 19:17:01 其他开发

在GPU上检测FPU舍入模式

我一直在研究多精度算术,在Jonathan Richard Shewchuk,“自适应精度浮点算术和快速鲁棒几何谓词",1997年,Discrete& Co.,Ltd.中描述了一种不错的快速算法.计算几何,第305-363页.但是,这些算法都依赖于FPU,使用的是从头到尾的平局决胜制. 在CPU上,这很容易,只要检查或设置FPU状态字就可以了.但是,还没有用于GPU编程的指令. 这就是 ..
发布时间:2020-06-12 19:21:54 其他开发

FPU用于计算超越函数的算法是什么?

现代FPU将使用哪些方法来计算先验函数? 例如,英特尔CPU提供了FSIN,FCOS,FYL2X等指令.我很好奇在硬件中实际使用哪种算法. 我天真的猜测可能是泰勒级数,也许结合了一些查找表,但这不过是一个疯狂的猜测而已.请赐教. P.S.这个问题不仅仅是英特尔硬件. 解决方案 一个开始的地方可能是" 更新08/13/2014 原始链接已损坏.可在此处找到IEEE的 ..
发布时间:2020-05-06 11:11:49 其他开发

如何用汇编语言输入和输出实数

我们使用FPU解决汇编语言中的实数问题。通常我们使用C语言或就绪函数编写输入和输出代码。例如: ;接收控制台的输入和输出描述符 调用GetStdHandle,STD_INPUT_HANDLE mov hConsoleInput,eax 调用GetStdHandle,STD_OUTPUT_HANDLE mov hConsoleOutput,eax 调用ClearScreen ..
发布时间:2018-08-24 18:08:54 其他开发