[ros-diffs] [tkreuzer] 34802: make ncitool generate at least valid 64 bit assembly

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Sat Jul 26 03:17:03 CEST 2008


Author: tkreuzer
Date: Fri Jul 25 20:17:03 2008
New Revision: 34802

URL: http://svn.reactos.org/svn/reactos?rev=34802&view=rev
Log:
make ncitool generate at least valid 64 bit assembly

Modified:
    branches/ros-amd64-bringup/reactos/tools/nci/ncitool.c

Modified: branches/ros-amd64-bringup/reactos/tools/nci/ncitool.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools/nci/ncitool.c?rev=34802&r1=34801&r2=34802&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/tools/nci/ncitool.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/tools/nci/ncitool.c [iso-8859-1] Fri Jul 25 20:17:03 2008
@@ -51,6 +51,11 @@
 #define UserModeStub_x86    "    movl $0x%x, %%eax\n" \
                             "    movl $KUSER_SHARED_SYSCALL, %%ecx\n" \
                             "    call *(%%ecx)\n" \
+                            "    ret $0x%x\n\n"
+
+#define UserModeStub_amd64  "    movq $0x%x, %%rax\n" \
+                            "    movq $KUSER_SHARED_SYSCALL, %%rcx\n" \
+                            "    call *(%%rcx)\n" \
                             "    ret $0x%x\n\n"
 
 #define UserModeStub_ppc    "    stwu 1,-16(1)\n" \
@@ -91,6 +96,13 @@
                             "    leal 4(%%esp), %%edx\n" \
                             "    pushfl\n" \
                             "    pushl $KGDT_R0_CODE\n" \
+                            "    call _KiSystemService\n" \
+                            "    ret $0x%x\n\n"
+
+#define KernelModeStub_amd64 "    movq $0x%x, %%rax\n" \
+                            "    leaq 4(%%rsp), %%rdx\n" \
+                            "    pushfq\n" \
+                            "    pushq $KGDT_R0_CODE\n" \
                             "    call _KiSystemService\n" \
                             "    ret $0x%x\n\n"
 
@@ -130,7 +142,7 @@
 struct ncitool_data_t ncitool_data[] = {
 	{ "i386", 4, KernelModeStub_x86, UserModeStub_x86,
 	  ".global _%s@%d\n", "_%s@%d:\n" },
-	{ "amd64", 4, KernelModeStub_x86, UserModeStub_x86,
+	{ "amd64", 4, KernelModeStub_amd64, UserModeStub_amd64,
 	  ".global _%s@%d\n", "_%s@%d:\n" },
 	{ "powerpc", 4, KernelModeStub_ppc, UserModeStub_ppc,
 	  "\t.globl %s\n", "%s:\n" },



More information about the Ros-diffs mailing list