[kaffe] CVS kaffe (robilad): Fixes for accessor macros on
sparc-netbsd2
Kaffe CVS
cvs-commits at kaffe.org
Sun Jul 3 18:06:12 PDT 2005
PatchSet 6691
Date: 2005/07/04 00:41:36
Author: robilad
Branch: HEAD
Tag: (none)
Log:
Fixes for accessor macros on sparc-netbsd2
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.
Also unified them to use macros provided by netbsd that
are portable among different platforms to get SP and PC.
Members:
ChangeLog:1.4215->1.4216
config/sparc/netbsd1/jit-md.h:1.2->1.3
config/sparc/netbsd1/md.h:1.5->1.6
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4215 kaffe/ChangeLog:1.4216
--- kaffe/ChangeLog:1.4215 Mon Jul 4 00:03:33 2005
+++ kaffe/ChangeLog Mon Jul 4 00:41:36 2005
@@ -1,3 +1,11 @@
+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.
+ Also unified them to use macros provided by netbsd that
+ are portable among different platforms to get SP and PC.
+
2005-07-03 Dalibor Topic <robilad at kaffe.org>
Updated the address of the FSF in the GPL,
Index: kaffe/config/sparc/netbsd1/jit-md.h
diff -u kaffe/config/sparc/netbsd1/jit-md.h:1.2 kaffe/config/sparc/netbsd1/jit-md.h:1.3
--- kaffe/config/sparc/netbsd1/jit-md.h:1.2 Sun Mar 21 21:54:01 2004
+++ kaffe/config/sparc/netbsd1/jit-md.h Mon Jul 4 00:41:41 2005
@@ -5,6 +5,9 @@
* Copyright (c) 1996, 1997
* Transvirtual Technologies, Inc. All rights reserved.
*
+ * Copyright (c) 2005
+ * The kaffe.org's developers. See ChangeLog for details.
+ *
* See the file "license.terms" for information on usage and redistribution
* of this file.
*/
@@ -12,6 +15,9 @@
#ifndef __sparc_netbsd_jit_md_h
#define __sparc_netbsd_jit_md_h
+/* mcontext.h gives us macros to access ucontext/mcontext */
+#include <sys/ucontext.h>
+
/**/
/* Include common information. */
/**/
@@ -23,11 +29,13 @@
/* Function prototype for signal handlers */
#define EXCEPTIONPROTO \
- int sig, int code, struct sigcontext* ctx
+ int sig, int code, ucontext_t* ctx
/* Get the first exception frame from a signal handler */
#define EXCEPTIONFRAME(f, c) \
- (f).retbp = (c)->sc_sp; \
- (f).retpc = (c)->sc_pc
+ (f).retbp = _UC_MACHINE_SP(((ucontext_t *)(c))); \
+ (f).retpc = _UC_MACHINE_PC(((ucontext_t *)(c)))
+
+
-#endif
+#endif /* include guard */
Index: kaffe/config/sparc/netbsd1/md.h
diff -u kaffe/config/sparc/netbsd1/md.h:1.5 kaffe/config/sparc/netbsd1/md.h:1.6
--- kaffe/config/sparc/netbsd1/md.h:1.5 Mon Jun 27 12:01:27 2005
+++ kaffe/config/sparc/netbsd1/md.h Mon Jul 4 00:41:41 2005
@@ -12,15 +12,29 @@
#ifndef __sparc_netbsd1_md_h
#define __sparc_netbsd1_md_h
+#include <signal.h>
+
#include "sparc/common.h"
#include "sparc/threads.h"
-#undef SA_SIGINFO
-#define SIGNAL_ARGS(sig, sc) int sig, int code, struct sigcontext* sc
-#define SIGNAL_CONTEXT_POINTER(scp) struct sigcontext* scp
-#define GET_SIGNAL_CONTEXT_POINTER(scp) (scp)
-#define SIGNAL_PC(scp) ((scp)->sc_pc)
-#define STACK_POINTER(scp) ((scp)->sc_sp)
+#include <sys/ucontext.h>
+
+/* older netbsd's could have this macro missing, so we provide it */
+#ifdef _UC_MACHINE_SP
+/* this is for 32bit it doesn't take in account 64bit */
+#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_O6])
+#endif
+#ifdef _UC_MACHINE_PC
+#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PC])
+#endif
+
+#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) _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