首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cygwin中.seh_savexmm的无效寄存器

Cygwin中.seh_savexmm的无效寄存器
EN

Stack Overflow用户
提问于 2017-04-01 03:51:19
回答 2查看 3.5K关注 0票数 5

$ make我曾与cygwin一起工作,但得到了编译错误。我不知道什么是无效的.seh_savexmm注册,请帮助我。我在谷歌上搜索了这个问题,但没有发现有很多问题,但没有解决问题。请帮帮我。

代码语言:javascript
复制
perl ./generate-functions.pl -file operationMetadata.csv
g++ -std=c++14 -O3 -Wall -g -mavx512vl -mavx512f -mavx512pf -mavx512er -mavx512cd -fno-common -c int-test.c -o int-test.o
g++ -std=c++14 -O3 -Wall -g -mavx512vl -mavx512f -mavx512pf -mavx512er -mavx512cd -fno-common -c generated-functions.c -o generated-functions.o
/tmp/cczD9mlv.s: Assembler messages:
/tmp/cczD9mlv.s:39: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:41: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:43: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:45: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:47: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:49: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:51: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:53: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:55: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:57: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:59: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:61: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:63: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:65: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:67: Error: invalid register for .seh_savexmm
/tmp/cczD9mlv.s:69: Error: invalid register for .seh_savexmm
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-04 14:46:13

罗斯·里奇是对的。我只解决了添加-fno-异步-展开表。谢谢罗斯。

票数 6
EN

Stack Overflow用户

发布于 2019-01-01 22:55:06

我最近也遇到了这个错误。我找到了另一种方法:使用-ffixed-reg选项禁用xmm16 16.31寄存器的使用。您必须为每个寄存器分别指定它。以下是您必须使用的选项的完整列表:

代码语言:javascript
复制
-ffixed-xmm16 -ffixed-xmm17 -ffixed-xmm18 -ffixed-xmm19
-ffixed-xmm20 -ffixed-xmm21 -ffixed-xmm22 -ffixed-xmm23
-ffixed-xmm24 -ffixed-xmm25 -ffixed-xmm26 -ffixed-xmm27
-ffixed-xmm28 -ffixed-xmm29 -ffixed-xmm30 -ffixed-xmm31

这样做之后,编译器将无法使用它们,因此它必须将一些数据存储在堆栈上,而不是寄存器上。这很可能会导致代码变慢。

您也可以尝试使用-flto标志,有些人报告说,这也有帮助。在我的例子中,它只减少了错误的数量,所以请检查它是否适合您。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43152633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档