------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1326

Zoltan Herczeg <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]




--- Comment #1 from Zoltan Herczeg <[email protected]>  2012-12-23 07:09:56 
---
Thanks for reporting this. I recently removed the push/pop pair around cpuid,
since GCC seemed enough clever to save/restore these registers. This patch add
this back in 32 bit mode:

        /* AT&T syntax. */
        __asm__ (
                "movl $0x1, %%eax\n"
+#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
+               "push %%ebx\n"
+#endif
                "cpuid\n"
+#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
+               "pop %%ebx\n"
+#endif
                "movl %%edx, %0\n"
                : "=g" (features)
                :
 #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
-               : "%eax", "%ebx", "%ecx", "%edx"
+               : "%eax", "%ecx", "%edx"
 #else
                : "%rax", "%rbx", "%rcx", "%rdx"
 #endif

The question is, does this workaround only needed for GCC in 32 bit mode, or
Intel C and SunPro C also need it. Daniel could you check it sometimes (the
--disable-static option is important)? Thank you in advance.


-- 
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email

-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to