浏览代码

* mm registers 16-31 are also volatile during a call

git-svn-id: trunk@47077 -
florian 5 年之前
父节点
当前提交
ad8b2eaf8a
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      compiler/x86_64/cpupara.pas

+ 2 - 2
compiler/x86_64/cpupara.pas

@@ -1358,9 +1358,9 @@ unit cpupara;
     function tcpuparamanager.get_volatile_registers_mm(calloption : tproccalloption):tcpuregisterset;
     function tcpuparamanager.get_volatile_registers_mm(calloption : tproccalloption):tcpuregisterset;
       begin
       begin
         if x86_64_use_ms_abi(calloption) then
         if x86_64_use_ms_abi(calloption) then
-          result:=[RS_XMM0..RS_XMM5]
+          result:=[RS_XMM0..RS_XMM5,RS_XMM16..RS_XMM31]
         else
         else
-          result:=[RS_XMM0..RS_XMM15];
+          result:=[RS_XMM0..RS_XMM15,RS_XMM16..RS_XMM31];
       end;
       end;