【问题标题】:Getting Illegal Instruction error for SHA1MSG1 instruction获取 SHA1MSG1 指令的非法指令错误
【发布时间】:2018-04-04 15:44:45
【问题描述】:

SHA1MSG1 是 Intel 指令,用于计算计算 SHA1 哈希值的步骤。我按如下方式使用它(在 AT&T 语法中):

sha1msg1    %xmm14, %xmm13

我可以编译我的代码。当我运行我的代码时,它给出了一个错误:

Illegal instruction (core dumped)

我使用ida pro 调试了我的代码,但这条指令出现如下错误:

401839: got SIGILL signal (Illegal instruction) (exc.code 4, tid 48292)

我试图找到该指令的使用示例,但没有找到。我想我根据specification 正确使用了它。知道我做错了什么吗?

顺便说一句,我使用的是 Ubuntu 64 位。

【问题讨论】:

  • 你的cpu型号是什么?难道是它根本不支持这个指令? /proc/cpuinfo 中有 sha 标志吗?
  • 这是我的 CPU 信息:Intel(R) Xeon(R) CPU E5645 @ 2.40GHz
  • 看起来您的处理器不支持该指令。 It was Introduced on Intel Goldmont microarchitecture.
  • 哦,我明白了。谢谢。如何将您的评论标记为答案?我应该吗?

标签: assembly x86-64


【解决方案1】:

您的处理器似乎不支持 SHA1MSG1 指令。
它是与Goldmont microarchitecture 一起引入的,因此它的服务器处理器必须是Denverton family(2016) 或更高版本。

您的 Intel(R) Xeon(R) CPU E5645 来自 Westmere family(2010),因此它不支持该指令。

维基百科有a list of the different microarchitectures

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 2021-08-19
    • 2014-03-31
    • 1970-01-01
    • 2014-07-18
    • 2018-08-10
    • 2013-04-22
    • 1970-01-01
    相关资源
    最近更新 更多