问题标签 [mmx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 将 MMX Intrinsics 转换为 x64 (SSE),我做错了什么?
我了解转换 MMX 32 位 mmx 内在函数不再允许 __m64. 所以我在将这段代码升级到 SSE 时遇到了很大的麻烦。我在另一个 stack-Overflow 帖子上被告知要发布我的代码。也许这个练习也会对其他人有所帮助。
我注释掉了“_mm_empty”,认为这是正确的做法。我在 emmintrin.h 中找到了所有其他 __m128i 操作的类似函数,但仍然有问题。
原32位功能码:
64 位尝试:
gcc - 执行“emms”MMX 指令时出现总线错误
我正在开发一些带有内联汇编的软件的端口,因为我们从X32下的 Debian 维护者那里获取了一些错误报告。该代码在 X86 和 X64 下都很好。
我们在emms
指令中发现了一个总线错误:
根据手册,会引发以下异常:
这是 MMX 状态寄存器中使用的掩码:
我不相信我可以访问控制寄存器来确定实际导致异常的原因,因此我无法定位总线错误的原因。
总线错误的一些潜在原因是什么?或者我该如何进一步解决这个问题?
这是info float
:
这是来自info registers
:
这是 MMX 状态寄存器位的细分:
x86 - 使用 MMX 指令添加压缩字节/字
因此,假设我们有两个包含以下十六进制值的寄存器:AB0890C2
, 4598EE50
. 使用 MMX 指令添加它们会产生什么结果:
假设不使用饱和算法?
根据我的理解,如果你正常添加两个十六进制值,你会得到F0A17F12
,但是我如何使用 MMX 指令为压缩字节和单词添加这个?
assembly - 汇编器 MMX 错误
我正在做我的学校项目:Visual Studio 中的动态 MASM 汇编程序库,它实现了 CaesarCipher 的方法。当我使用控制台应用程序时,一切正常。当我创建 Windows 窗体 UI 时,MMX 函数开始导致错误。
MMX 函数 - 我的项目的问题。我认为在我的项目中没有使用它的意义,但我必须做的一件事是使用 MMX 代码,即使它没用。
在运行良好的控制台中:
在表单应用程序中,它会导致一般错误。
c++ - 使用 MMX 指令处理字符串
我正在尝试实现一个高性能的 C++ 程序,每个周期我将 8 个字节加载到 MMX 寄存器然后处理它们,但是当我到达字符串的末尾时我当然想停止。
所以这是我找到的解决方案,每个循环加载8个字节,将每个字节与\0进行比较,如果有\0则采取预防措施。问题是,如果我的数据是 4 个字节,并且在第一个周期中加载 8 个字节,那么我从另一个应用程序内存空间加载 4 个字节。
这会给我带来麻烦吗?或者只是“噪音”来自这些字节,这对我来说是完全可以接受的,因为我一了解 \0 字符就会处理它。
c++ - 为什么我不能删除 _mm_empty()?
我有一个带有一些 SSE2 指令的 c++ 函数。问题是我在使用 microsoft visual c++ 编译此代码时收到以下链接器错误:
函数“void * __cdecl process(void *)”中引用的未解析外部符号 _m_empty
当我评论 _m_empty 时,我会得到一个运行时错误!但它应该用于 MMX 指令,不是吗?
assembly - x86_64 ASM:movq 的替代品?
是否有另一种方法可以将 qword 放入 mmx 寄存器?
例如,在此代码段中:
我现在可以将其作为 qword 0xaaaaaaaaaaaaaaaa 使用,并使用它进行 pxor 等操作。还有其他方法可以将这些数据放入寄存器中吗?也许通过推/弹出它?
assembly - 装配 MMX 夏季 - pshufw - 错误 A2085
我正在使用 Visual Studio 2005 来练习编写一些汇编代码。我使用 .mmx
.
这是完整的文件
上线:pshufw mm4, mm0, 00011011b ; Retreive the summed value
我收到以下错误:
我知道命令是有效的。谁能告诉我如何解决这个错误。