libvx32/Linux: fix 64-bit bug - vx32 - Local 9vx git repository for patches.
Log
Files
Refs
---
commit 7f5a3dad3dce6818d439861aac4e4865241dec9e
parent 3dabeec6b12fbb5764779bb4e233b262a6f2689f
Author: Russ Cox 
Date:   Wed,  9 Jul 2008 13:47:23 -0400

libvx32/Linux: fix 64-bit bug

Diffstat:
  src/libvx32/linux.c                 |       7 ++++---

1 file changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/src/libvx32/linux.c b/src/libvx32/linux.c
@@ -129,6 +129,7 @@ static void dumpsigcontext(struct sigcontext *ctx)
 
 #ifdef i386
 #define        VX32_BELIEVE_EIP        (ctx->ds == vs - 8)
+#define        ctxeip eip
 #else
 #define        VX32_BELIEVE_EIP        (ctx->cs == FLATCODE)
 
@@ -141,7 +142,7 @@ static void dumpsigcontext(struct sigcontext *ctx)
 #define        edi rdi
 #define        esp rsp
 #define        ebp rbp
-#define        eip rip
+#define        ctxeip rip
 #endif
 
 static void
@@ -177,7 +178,7 @@ int vx32_sighandler(int signo, siginfo_t *si, void *v)
                 : "=r" (vs));
         
         if(0) vxprint("vx32_sighandler signo=%d eip=%#x esp=%#x vs=%#x\n",
-                signo, ctx->eip, ctx->esp, vs);
+                signo, ctx->ctxeip, ctx->esp, vs);
 
         if ((vs & 15) != 15)        // 8 (emu), LDT, RPL=3
                 return 0;
@@ -204,7 +205,7 @@ int vx32_sighandler(int signo, siginfo_t *si, void *v)
         // dumpsigcontext(ctx);
 
         if (VX32_BELIEVE_EIP)
-                trapeip = ctx->eip;
+                trapeip = ctx->ctxeip;
         else
                 trapeip = 0xffffffff;