浏览代码

+ added more ebx saving to cpuid invocations

git-svn-id: trunk@4147 -
florian 19 年之前
父节点
当前提交
81b98c9d82
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      rtl/i386/i386.inc

+ 4 - 0
rtl/i386/i386.inc

@@ -55,9 +55,11 @@ function sse_support : boolean;
     if cpuid_support then
     if cpuid_support then
      begin
      begin
         asm
         asm
+          pushl %ebx
           movl $1,%eax
           movl $1,%eax
           cpuid
           cpuid
           movl %edx,_edx
           movl %edx,_edx
+          popl %ebx          
         end;
         end;
         sse_support:=((_edx and $2000000)<>0) and os_supports_sse;
         sse_support:=((_edx and $2000000)<>0) and os_supports_sse;
      end
      end
@@ -77,9 +79,11 @@ function mmx_support : boolean;
      if cpuid_support then
      if cpuid_support then
        begin
        begin
           asm
           asm
+             pushl %ebx
              movl $1,%eax
              movl $1,%eax
              cpuid
              cpuid
              movl %edx,_edx
              movl %edx,_edx
+             popl %ebx            
           end;
           end;
           mmx_support:=(_edx and $800000)<>0;
           mmx_support:=(_edx and $800000)<>0;
        end
        end