Ticket #2675: diff

File diff, 889 bytes (added by pstumpf, 10 years ago)
  • x86_x64.cpp

    old new  
    4949#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 150030729
    5050// VC10+ and VC9 SP1: __cpuidex is already available
    5151#elif GCC_VERSION
     52# if defined(__i386__) && defined(__PIC__)
    5253# define __cpuidex(regsArray, level, index)\
     54       __asm__ __volatile__ ("pushl    %%ebx\n" \
     55       " cpuid\n"\
     56       "mov %%ebx,%1\n" \
     57       "popl %%ebx" \
     58       : "=a" ((regsArray)[0]), "=r" ((regsArray)[1]), "=c" ((regsArray)[2]), "=d" ((regsArray)[3])\
     59       : "0" (level), "2" (index));
     60# else
     61# define __cpuidex(regsArray, level, index)\
    5362       __asm__ __volatile__ ("cpuid"\
    5463       : "=a" ((regsArray)[0]), "=b" ((regsArray)[1]), "=c" ((regsArray)[2]), "=d" ((regsArray)[3])\
    5564       : "0" (level), "2" (index));
     65# endif
    5666#else
    5767# error "compiler not supported"
    5868#endif