mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 05:51:20 +00:00
Fix LZMA compilation on GCC with position-independent code (PIC) generation enabled
EBX register is used Global Offset Table in PIC http://www.greyhat.ch/lab/downloads/pic.html
This commit is contained in:
parent
bdddea541f
commit
0be30c782c
1 changed files with 16 additions and 0 deletions
|
@ -70,8 +70,24 @@ static void MyCPUID(UInt32 function, UInt32 *a, UInt32 *b, UInt32 *c, UInt32 *d)
|
|||
*c = c2;
|
||||
*d = d2;
|
||||
|
||||
#elif __PIC__
|
||||
|
||||
/* GCC or Clang WITH position-independent code generation */
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"xchgl %%ebx, %1\n"
|
||||
"cpuid\n"
|
||||
"xchgl %%ebx, %1\n"
|
||||
: "=a" (*a) ,
|
||||
"=r" (*b) ,
|
||||
"=c" (*c) ,
|
||||
"=d" (*d)
|
||||
: "0" (function)) ;
|
||||
|
||||
#else
|
||||
|
||||
/* GCC or Clang WITHOUT position-independent code generation */
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"cpuid"
|
||||
: "=a" (*a) ,
|
||||
|
|
Loading…
Reference in a new issue