Author: tfaber
Date: Sat Feb  4 23:50:32 2017
New Revision: 73688

URL: http://svn.reactos.org/svn/reactos?rev=73688&view=rev
Log:
[BOOTLIB][CRT]
- Fix GCC build

Modified:
    trunk/reactos/boot/environ/lib/arch/i386/transfer.s
    trunk/reactos/sdk/include/crt/mingw32/intrin_x86.h
    trunk/reactos/sdk/include/crt/msc/intrin.h

Modified: trunk/reactos/boot/environ/lib/arch/i386/transfer.s
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/environ/lib/arch/i386/transfer.s?rev=73688&r1=73687&r2=73688&view=diff
==============================================================================
--- trunk/reactos/boot/environ/lib/arch/i386/transfer.s [iso-8859-1] (original)
+++ trunk/reactos/boot/environ/lib/arch/i386/transfer.s [iso-8859-1] Sat Feb  4 
23:50:32 2017
@@ -11,10 +11,10 @@
 #include <asm.inc>
 #include <ks386.inc>
 
-EXTERN _GdtRegister:DWORD
-EXTERN _IdtRegister:DWORD
-EXTERN _BootAppGdtRegister:DWORD
-EXTERN _BootAppIdtRegister:DWORD
+EXTERN _GdtRegister:FWORD
+EXTERN _IdtRegister:FWORD
+EXTERN _BootAppGdtRegister:FWORD
+EXTERN _BootAppIdtRegister:FWORD
 EXTERN _BootApp32Stack:DWORD
 EXTERN _BootApp32EntryRoutine:DWORD
 EXTERN _BootApp32Parameters:DWORD
@@ -39,10 +39,10 @@
     mov ebx, esp
 
     /* Save current GDT/IDT, then load new one */
-    sgdt fword ptr _GdtRegister
-    sidt fword ptr _IdtRegister
-    lgdt fword ptr _BootAppGdtRegister
-    lidt fword ptr _BootAppIdtRegister
+    sgdt _GdtRegister
+    sidt _IdtRegister
+    lgdt _BootAppGdtRegister
+    lidt _BootAppIdtRegister
 
     /* Load the new stack */
     xor ebp, ebp
@@ -62,8 +62,8 @@
     mov esp, ebx
 
     /* Restore old GDT/IDT */
-    lgdt fword ptr _GdtRegister
-    lidt fword ptr _IdtRegister
+    lgdt _GdtRegister
+    lidt _IdtRegister
 
     /* Retore old segments */
     pop ds
@@ -76,6 +76,6 @@
     pop ebp
 
     /* All done */
-    retn
+    ret
 
 END

Modified: trunk/reactos/sdk/include/crt/mingw32/intrin_x86.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/crt/mingw32/intrin_x86.h?rev=73688&r1=73687&r2=73688&view=diff
==============================================================================
--- trunk/reactos/sdk/include/crt/mingw32/intrin_x86.h  [iso-8859-1] (original)
+++ trunk/reactos/sdk/include/crt/mingw32/intrin_x86.h  [iso-8859-1] Sat Feb  4 
23:50:32 2017
@@ -1815,6 +1815,11 @@
        __asm__ __volatile__("sidt %0" : : "m"(*(short*)Destination) : 
"memory");
 }
 
+__INTRIN_INLINE void _sgdt(void *Destination)
+{
+       __asm__ __volatile__("sgdt %0" : : "m"(*(short*)Destination) : 
"memory");
+}
+
 /*** Misc operations ***/
 
 __INTRIN_INLINE void _mm_pause(void)

Modified: trunk/reactos/sdk/include/crt/msc/intrin.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/crt/msc/intrin.h?rev=73688&r1=73687&r2=73688&view=diff
==============================================================================
--- trunk/reactos/sdk/include/crt/msc/intrin.h  [iso-8859-1] (original)
+++ trunk/reactos/sdk/include/crt/msc/intrin.h  [iso-8859-1] Sat Feb  4 
23:50:32 2017
@@ -342,6 +342,19 @@
 #pragma intrinsic(__wbinvd)
 #pragma intrinsic(__lidt)
 #pragma intrinsic(__sidt)
+#if (_MSC_VER >= 1800)
+#pragma intrinsic(_sgdt)
+#else
+__forceinline
+void _sgdt(void *Destination)
+{
+    __asm
+    {
+        mov eax, Destination
+        sgdt [eax]
+    }
+}
+#endif
 #pragma intrinsic(_mm_pause)
 #endif
 #if defined(_M_ARM)


Reply via email to