[kaffe] CVS kaffe (robilad): Fixes for accessor macros on i386-netbsd2

Kaffe CVS cvs-commits at kaffe.org
Sun Jul 3 18:08:07 PDT 2005


PatchSet 6692 
Date: 2005/07/04 00:53:11
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Fixes for accessor macros on i386-netbsd2

2005-07-04  Riccardo Mottola  <rmottola at users.sf.net>

        * config/i386/netbsd1/jit-md.h,
        config/i386/netbsd1/md.h:
        Changed macros to use ucontext_t instead of sigcontext.
        Also unified them to use macros provided by netbsd that
        are portable among different platforms to get SP and PC.

Members: 
	ChangeLog:1.4216->1.4217 
	config/i386/netbsd1/jit-md.h:1.2->1.3 
	config/i386/netbsd1/md.h:1.10->1.11 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4216 kaffe/ChangeLog:1.4217
--- kaffe/ChangeLog:1.4216	Mon Jul  4 00:41:36 2005
+++ kaffe/ChangeLog	Mon Jul  4 00:53:11 2005
@@ -1,5 +1,13 @@
 2005-07-04  Riccardo Mottola  <rmottola at users.sf.net>
 
+	*config/i386/netbsd1/jit-md.h,
+	config/i386/netbsd1/md.h:
+	Changed macros to use ucontext_t instead of sigcontext.
+	Also unified them to use macros provided by netbsd that 
+	are portable among different platforms to get SP and PC.
+
+2005-07-04  Riccardo Mottola  <rmottola at users.sf.net>
+
 	* config/sparc/netbsd1/jit-md.h, 
 	config/sparc/netbsd1/md.h:
 	Changed macros to use ucontext_t instead of sigcontext. 
Index: kaffe/config/i386/netbsd1/jit-md.h
diff -u kaffe/config/i386/netbsd1/jit-md.h:1.2 kaffe/config/i386/netbsd1/jit-md.h:1.3
--- kaffe/config/i386/netbsd1/jit-md.h:1.2	Wed Aug 27 07:04:21 2003
+++ kaffe/config/i386/netbsd1/jit-md.h	Mon Jul  4 00:53:16 2005
@@ -26,7 +26,8 @@
 
 /* Get the first exception frame from a signal handler */
 #define	EXCEPTIONFRAME(f, c)						\
-	(f).retbp = (c)->sc_ebp;					\
-	(f).retpc = (c)->sc_eip + 1
+        (f).retbp = _UC_MACHINE_SP(((ucontext_t *)(c)));                \
+	(f).retpc = _UC_MACHINE_PC(((ucontext_t *)(c)))
+
 
 #endif
Index: kaffe/config/i386/netbsd1/md.h
diff -u kaffe/config/i386/netbsd1/md.h:1.10 kaffe/config/i386/netbsd1/md.h:1.11
--- kaffe/config/i386/netbsd1/md.h:1.10	Sun Apr 24 13:46:08 2005
+++ kaffe/config/i386/netbsd1/md.h	Mon Jul  4 00:53:16 2005
@@ -18,6 +18,9 @@
 #include "i386/common.h"
 #include "i386/threads.h"
 
+#if defined(HAVE_SIGNAL_H)
+#include <signal.h>
+#endif
 #if defined(HAVE_SYS_RESOURCE_H)
 #include <sys/resource.h>
 #endif
@@ -28,17 +31,31 @@
 #include <unistd.h>
 #endif
 
+
+#include <sys/ucontext.h>
+
+/* older netbsd's could have this macro missing, so we provide it */
+#ifdef _UC_MACHINE_SP
+#define _UC_MACHINE_SP(uc)      ((uc)->uc_mcontext.__gregs[_REG_UESP])
+#endif
+#ifdef _UC_MACHINE_PC
+#define _UC_MACHINE_PC(uc)      ((uc)->uc_mcontext.__gregs[_REG_EIP])
+#endif
+
+
 /*
  * Redefine stack pointer offset.
  */
 #undef SP_OFFSET
 #define SP_OFFSET 2
 
-#define SIGNAL_ARGS(sig, sc) int sig, int __code, struct sigcontext *sc
-#define SIGNAL_CONTEXT_POINTER(scp) struct sigcontext *scp
+#define SIGCONTEXT ucontext_t
+
+#define SIGNAL_ARGS(sig, sc) int sig, siginfo_t *__si, void *sc
+#define SIGNAL_CONTEXT_POINTER(scp) SIGCONTEXT *scp
 #define GET_SIGNAL_CONTEXT_POINTER(sc) (sc)
-#define SIGNAL_PC(scp) (scp)->sc_pc
-#define STACK_POINTER(scp) (scp)->sc_sp
+#define SIGNAL_PC(scp) _UC_MACHINE_PC(((SIGCONTEXT *)(scp)))
+#define STACK_POINTER(scp) _UC_MACHINE_SP(((SIGCONTEXT *)(scp)))
 
 #if defined(TRANSLATOR)
 #include "jit-md.h"



More information about the kaffe mailing list