On Tue, Sep 29, 2015 at 12:40 AM, Martin Nilsson (Opera Mini - AFK!) @
Pike (-) developers forum <10...@lyskom.lysator.liu.se> wrote:
> Well, I didn't actually change the order. But I see that the code in
> cpulib outputs them differently depending on which assembler code is
> used, which is bad of course. Fixing that should make ia32 work with
> all compilers.

Ah, I didn't notice that it varied according to which assembler is
being used. What I saw was this:

#ifdef CL_X86_ASM_STYLE
    __asm {
      mov eax, oper;
      mov edi, cpuid_ptr;
      cpuid;
      mov [edi], eax;
      mov [edi+4], ebx;
      mov [edi+8], edx;
      mov [edi+12], ecx;
    };

which definitely stashes them into memory in order EAX/EBX/EDX/ECX,
which corresponds to the comment. I'm not familiar with the other
syntax, which uses =a, =r, =c, =d, but since you switched those, I'm
assuming they correspond to the Accumulator, Result??, Counter, and
Data registers.

Thanks!

ChrisA
  • 9233989: ec... Chris Angelico
    • 923398... Martin Nilsson (Opera Mini - AFK!) @ Pike (-) developers forum
    • Re: 92... Chris Angelico
      • Re... Martin Nilsson (Opera Mini - AFK!) @ Pike (-) developers forum
      • Re... Chris Angelico

Reply via email to