由punpcklqdq xmm引起的阀门错误,需要修复mem吗?

发布于 2025-02-06 07:00:52 字数 630 浏览 2 评论 0原文

punpcklqdq

punpcklqdq xmm1,xmm2/m128
__ m128i _mm _unpacklo_epi64(__ M128i A,__m128i b)

描述从下半部的下半部 a和b,并将结果存储在dst。

在这里,有用的数据是A和B的一半,即__M128i本身,此命令支持直接由内存地址访问的第二个操作参数,例如: PUNPCKLQDQ XMM0,[R0+2*R1]

一个问题是一个问题,如果保留的内存具有B的低端边界,但B的一半不高,则会触发阀门错误,例如: 对16号尺寸的阅读无效。

我的问题是:该无效的阅读可能会进一步引起什么样的问题(我们在阅读后不使用它)?它需要修复吗?

punpcklqdq is defined as :

PUNPCKLQDQ xmm1, xmm2/m128
__m128i _mm_unpacklo_epi64(__m128i a, __m128i b)
enter image description here

Description Unpack and interleave 64-bit integers from the low half of
a and b, and store the results in dst.

Here the useful data are low half of a and b, which is __m128i itself, and this command support the second operation parameter as accessed by memory address directly, like:
punpcklqdq xmm0, [r0+2*r1].

Here come one question, if the reserved memory has the boundary of low half of b, but not high half of b, it will trigger valgrind error, like:
Invalid read of size 16.

My question is: what kind of issue could be caused further by this invalid read (we do not use it after read)? Does it need fix?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文