ObjFW  Diff

Differences From Artifact [1b9d36f2fa]:

To Artifact [3c4e0fe6ea]:


294
295
296
297
298
299
300
301

302
303

304
305
306
307
308
309
310
294
295
296
297
298
299
300

301
302

303
304
305
306
307
308
309
310







-
+

-
+







	/*
	 * This workaround is required by older GCC versions when using -fPIC,
	 * as ebx is a special register in PIC code. Yes, GCC is indeed not
	 * able to just push a register onto the stack before the __asm__ block
	 * and to pop it afterwards.
	 */
	__asm__ (
	    "xchgl	%%ebx, %%edi\n\t"
	    "xchg{l}	{ %%ebx, %%edi | edi, ebx }\n\t"
	    "cpuid\n\t"
	    "xchgl	%%edi, %%ebx"
	    "xchg{l}	{ %%edi, %%ebx | ebx, edi }"
	    : "=a"(regs.eax), "=D"(regs.ebx), "=c"(regs.ecx), "=d"(regs.edx)
	    : "a"(eax), "c"(ecx)
	);
# else
	memset(&regs, 0, sizeof(regs));
# endif