[ros-diffs] [tkreuzer] 45313: unimplement a bunch or intrinsics for msc, as we cannot use inline asm.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Fri Jan 29 06:23:59 CET 2010


Author: tkreuzer
Date: Fri Jan 29 06:23:59 2010
New Revision: 45313

URL: http://svn.reactos.org/svn/reactos?rev=45313&view=rev
Log:
unimplement a bunch or intrinsics for msc, as we cannot use inline asm.

Modified:
    branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h?rev=45313&r1=45312&r2=45313&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/include/internal/amd64/intrin_i.h [iso-8859-1] Fri Jan 29 06:23:59 2010
@@ -177,9 +177,7 @@
            IN ULONG Var1,
            IN ULONG Var2)
 {
-    __asm mov eax, Var1;
-    __asm mov edx, Var2;
-    __asm wrmsr;
+    __writemsr(Register, (ULONG64)Var1 <<32 | Var2);
 }
 
 ULONGLONG
@@ -188,10 +186,10 @@
            IN ULONG Var1,
            IN ULONG Var2)
 {
-    __asm mov eax, Var1;
-    __asm mov edx, Var2;
-    __asm rdmsr;
-}
+    return __readmsr(Register);
+}
+
+#define UNIMPLEMENTED DbgPrint("unimplemented!!!\n");
 
 VOID
 FORCEINLINE
@@ -201,98 +199,91 @@
            OUT PULONG Var3,
            OUT PULONG Var4)
 {
-    __asm mov eax, Operation;
-    __asm cpuid;
-    __asm mov [Var1], eax;
-    __asm mov [Var2], ebx;
-    __asm mov [Var3], ecx;
-    __asm mov [Var4], edx;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386FnInit(VOID)
 {
-    __asm fninit;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386HaltProcessor(VOID)
 {
-    __asm hlt;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386GetInterruptDescriptorTable(OUT KDESCRIPTOR Descriptor)
 {
-    __asm sidt Descriptor;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetInterruptDescriptorTable(IN KDESCRIPTOR Descriptor)
 {
-    __asm lidt Descriptor;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386GetGlobalDescriptorTable(OUT KDESCRIPTOR Descriptor)
 {
-    __asm sgdt Descriptor;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetGlobalDescriptorTable(IN KDESCRIPTOR Descriptor)
 {
-    __asm lgdt Descriptor;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386GetLocalDescriptorTable(OUT USHORT Descriptor)
 {
-    __asm sldt Descriptor;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetLocalDescriptorTable(IN USHORT Descriptor)
 {
-    __asm lldt Descriptor;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SaveFlags(IN ULONG Flags)
 {
-    __asm pushf;
-    __asm pop Flags;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386RestoreFlags(IN ULONG Flags)
 {
-    __asm push Flags;
-    __asm popf;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetTr(IN USHORT Tr)
 {
-    __asm ltr Tr;
+    UNIMPLEMENTED;
 }
 
 USHORT
 FORCEINLINE
 Ke386GetTr(IN USHORT Tr)
 {
-    __asm str Tr;
+    UNIMPLEMENTED;
 }
 
 //
@@ -302,8 +293,7 @@
 FORCEINLINE
 Ke386SetCr2(IN ULONG Value)
 {
-    __asm mov eax, Value;
-    __asm mov cr2, eax;
+    UNIMPLEMENTED;
 }
 
 //
@@ -313,90 +303,84 @@
 FORCEINLINE
 Ke386GetDr0(VOID)
 {
-    __asm mov eax, dr0;
+    UNIMPLEMENTED;
 }
 
 ULONG
 FORCEINLINE
 Ke386GetDr1(VOID)
 {
-    __asm mov eax, dr1;
+    UNIMPLEMENTED;
 }
 
 ULONG
 FORCEINLINE
 Ke386GetDr2(VOID)
 {
-    __asm mov eax, dr2;
+    UNIMPLEMENTED;
 }
 
 ULONG
 FORCEINLINE
 Ke386GetDr3(VOID)
 {
-    __asm mov eax, dr3;
+    UNIMPLEMENTED;
 }
 
 ULONG
 FORCEINLINE
 Ke386GetDr6(VOID)
 {
-    __asm mov eax, dr6;
+    UNIMPLEMENTED;
 }
 
 ULONG
 FORCEINLINE
 Ke386GetDr7(VOID)
 {
-    __asm mov eax, dr7;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetDr0(IN ULONG Value)
 {
-    __asm mov eax, Value;
-    __asm mov dr0, eax;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetDr1(IN ULONG Value)
 {
-    __asm mov eax, Value;
-    __asm mov dr1, eax;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetDr2(IN ULONG Value)
 {
-    __asm mov eax, Value;
-    __asm mov dr2, eax;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetDr3(IN ULONG Value)
 {
-    __asm mov eax, Value;
-    __asm mov dr3, eax;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetDr6(IN ULONG Value)
 {
-    __asm mov eax, Value;
-    __asm mov dr6, eax;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetDr7(IN ULONG Value)
 {
-    __asm mov eax, Value;
-    __asm mov dr7, eax;
+    UNIMPLEMENTED;
 }
 
 //
@@ -406,60 +390,56 @@
 FORCEINLINE
 Ke386GetSs(VOID)
 {
-    __asm mov ax, ss;
+    UNIMPLEMENTED;
 }
 
 USHORT
 FORCEINLINE
 Ke386GetFs(VOID)
 {
-    __asm mov ax, fs;
+    UNIMPLEMENTED;
 }
 
 USHORT
 FORCEINLINE
 Ke386GetDs(VOID)
 {
-    __asm mov ax, ds;
+    UNIMPLEMENTED;
 }
 
 USHORT
 FORCEINLINE
 Ke386GetEs(VOID)
 {
-    __asm mov ax, es;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetSs(IN USHORT Value)
 {
-    __asm mov ax, Value;
-    __asm mov ss, ax;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetFs(IN USHORT Value)
 {
-    __asm mov ax, Value;
-    __asm mov fs, ax;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetDs(IN USHORT Value)
 {
-    __asm mov ax, Value;
-    __asm mov ds, ax;
+    UNIMPLEMENTED;
 }
 
 VOID
 FORCEINLINE
 Ke386SetEs(IN USHORT Value)
 {
-    __asm mov ax, Value;
-    __asm mov es, ax;
+    UNIMPLEMENTED;
 }
 
 #else




More information about the Ros-diffs mailing list