Gertjan Klein wrote:
> Interestingly, if I place a ret after the mov eax, [style] instruction,
> or even comment out the cpuid instruction, I don't get an exception.
> This makes me wonder whether there is something permission-related that
> is different between Python 2.5 and 2.6 -- perhaps the 2.5 executable is
> not allowed to execute that instruction?
>   

No, that doesn't make sense.  I don't think CPUID is a privileged
instruction.  Even if it were, that's talking about CPU privileges,
which do not vary from process to process.

However, I'll bet I know what it is.  CPUID trashes ebx, and in the x86
calling sequence, that's supposed to be saved and restored.  One of the
sets of code is probably storing an error code in ebx and assuming that
it survives the CPU cal.  Try changing the two function headers to this:

GetCpuidEcx   proc   public uses ebx, style:DWORD
...
GetCpuidEdx   proc   public uses ebx, style:DWORD

-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to