* src/mm/cacao-gc/gc.h (gc_suspend): Added prototype.
authormichi <none@none>
Thu, 8 Mar 2007 12:46:19 +0000 (12:46 +0000)
committermichi <none@none>
Thu, 8 Mar 2007 12:46:19 +0000 (12:46 +0000)
* src/vm/signale.c (signale_init) [ENABLE_GC_CACAO]: Handler for SIGUSR1.
* src/vm/signallocal.h: Added prototype for SIGUSR1 handler.

* src/vm/jit/i386/linux/md-os.c (md_signal_handler_sigusr1): Added.

--HG--
branch : exact-gc

34 files changed:
configure.ac
src/cacaoh/headers.c
src/mm/cacao-gc/gc.h
src/native/vm/gnu/java_lang_reflect_Field.c
src/threads/native/threads.c
src/threads/native/threads.h
src/vm/Makefile.am
src/vm/builtin.h
src/vm/jit/allocator/simplereg.c
src/vm/jit/codegen-common.c
src/vm/jit/i386/emit.c
src/vm/jit/i386/linux/md-os.c
src/vm/jit/inline/inline.c
src/vm/jit/intrp/intrp.h
src/vm/jit/intrp/patcher.c
src/vm/jit/s390/codegen.c
src/vm/jit/s390/codegen.h
src/vm/jit/s390/emit.c
src/vm/jit/s390/md-abi.h
src/vm/jit/s390/md-asm.h
src/vm/jit/stack.c
src/vm/jit/verify/typecheck.c
src/vm/jit/verify/typeinfo.c
src/vm/jit/x86_64/emit.c
src/vm/jit/x86_64/md-abi.c
src/vm/jit/x86_64/md.c
src/vm/signal.c
src/vm/signallocal.h
src/vmcore/classcache.c
src/vmcore/descriptor.c
src/vmcore/options.c
src/vmcore/options.h
src/vmcore/statistics.c
tests/regression/Makefile.am

index c2ca770c0ffaab9c23037250ded6543161a94b36..05284e9099bc4a68726a95941f2c8a17c058d101 100644 (file)
@@ -22,7 +22,7 @@ dnl along with this program; if not, write to the Free Software
 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 dnl 02110-1301, USA.
 dnl 
-dnl $Id: configure.ac 7434 2007-03-02 19:44:53Z edwin $
+dnl $Id: configure.ac 7441 2007-03-02 23:13:10Z michi $
 
 dnl Process this file with autoconf to produce a configure script.
 
index 4d779ed437340d3cc53bff0869210e338498724f..830ab0f070567a9dc8af877a5fa399094db0cbbd 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: headers.c 7246 2007-01-29 18:49:05Z twisti $
+   $Id: headers.c 7297 2007-02-07 14:59:56Z twisti $
 
 */
 
index 5c1d423e30af96f1bf34fb2d44d743ac70f6d5ed..fd84ca4e9b11a3506ec215bcb610509fdba82c6c 100644 (file)
 
 /* Global Variables ***********************************************************/
 
+extern bool gc_pending;
 extern bool gc_notify_finalizer;
 
 
+/* Prototypes *****************************************************************/
+
+#if defined(ENABLE_THREADS)
+void gc_suspend(threadobject *thread, ucontext_t *context);
+#endif
+
+
 /* Statistics *****************************************************************/
 
 #if defined(ENABLE_STATISTICS)
index 6290ddbaa11a2924458f571fafc30d43c35e6a5d..89ba2c74f2b5d9d7cd50c8a8aebd7ef4ee2d12ce 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_reflect_Field.c 7441 2007-03-02 23:13:10Z michi $
+   $Id: java_lang_reflect_Field.c 7429 2007-03-01 12:42:16Z twisti $
 
 */
 
index e7841220bc1b90954524374399cdf10895b6d5dd..78ccc0231b955ed88792e086331c7dbc82c77059 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads.c 7338 2007-02-13 00:17:22Z twisti $
+   $Id: threads.c 7356 2007-02-14 11:00:28Z twisti $
 
 */
 
index 0cb2fcf9d67e6475f436646ba6667c3f4595c628..14dbb183a4b0de6fc6aa0d5217edebf25292afb4 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads.h 7338 2007-02-13 00:17:22Z twisti $
+   $Id: threads.h 7356 2007-02-14 11:00:28Z twisti $
 
 */
 
index 7028b97b03c569035b8b4f5be8127c7548127e12..376b55ff1f925b31401377eadf6849e7abdc94dc 100644 (file)
@@ -22,7 +22,7 @@
 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 ## 02110-1301, USA.
 ##
-## $Id: Makefile.am 7289 2007-02-06 08:47:05Z twisti $
+## $Id: Makefile.am 7297 2007-02-07 14:59:56Z twisti $
 
 ## Process this file with automake to produce Makefile.in
 
index a1e9b983963b8f5cf271c7c2b80e64f2b44a2806..3fa01fefb8e6afb92f5fd5df9f57c3dddfcc655f 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: builtin.h 7316 2007-02-10 19:06:54Z twisti $
+   $Id: builtin.h 7356 2007-02-14 11:00:28Z twisti $
 
 */
 
index f3557e08a27f4d3647e8c7e90e1f1ae4f2b63219..c518fe2c858b24f6cbad2bd2c50b984ba5557b0e 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    02111-1307, USA.
 
-   $Id: simplereg.c 7246 2007-01-29 18:49:05Z twisti $
+   $Id: simplereg.c 7297 2007-02-07 14:59:56Z twisti $
 
 */
 
index f46d0d9cab33ec174a5b454e736fc4d823593f6f..7496334bfe433a2e565c69c267835dc137db518b 100644 (file)
@@ -39,7 +39,7 @@
    memory. All functions writing values into the data area return the offset
    relative the begin of the code area (start of procedure).   
 
-   $Id: codegen-common.c 7403 2007-02-25 21:31:58Z pm $
+   $Id: codegen-common.c 7407 2007-02-26 19:12:03Z michi $
 
 */
 
index 215b53643d27fe1afe79f8d0b8b0ac9831d29b24..e41b296a11e09fdb497e16643ff9bd14e0657359 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: emit.c 7316 2007-02-10 19:06:54Z twisti $
+   $Id: emit.c 7356 2007-02-14 11:00:28Z twisti $
 
 */
 
index 58a7afc555ad5c41b73af9f51d5e063773976e6d..9f52f43de21876f91ac663956f91449068478116 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes:
 
-   $Id: md-os.c 5172 2006-07-25 15:33:58Z twisti $
+   $Id: md-os.c 7480 2007-03-08 12:46:19Z michi $
 
 */
 
 
 #include "vm/types.h"
 
+#if defined(ENABLE_GC_CACAO)
+# include "mm/cacao-gc/gc.h"
+#endif
+
 #include "vm/exceptions.h"
 #include "vm/signallocal.h"
 #include "vm/stringlocal.h"
@@ -108,6 +112,43 @@ void md_signal_handler_sigfpe(int sig, siginfo_t *siginfo, void *_p)
 }
 
 
+/* md_signal_handler_sigusr1 ***************************************************
+
+   Signale handler the exact GC to suspend threads.
+
+*******************************************************************************/
+
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+void md_signal_handler_sigusr1(int sig, siginfo_t *siginfo, void *_p)
+{
+       threadobject     *t;
+       executionstate_t *es;
+       ucontext_t       *_uc;
+       mcontext_t       *_mc;
+
+       t = THREADOBJECT;
+       t->es = NEW(executionstate_t); /* TODO: this must be done before!!! */
+       es = t->es;
+
+       _uc = (ucontext_t *) _p;
+       _mc = &_uc->uc_mcontext;
+
+       /* assume there is a GC pending */
+       assert(gc_pending);
+
+       /* fill in the execution state of this thread */
+       es->pc = (u1 *) _mc->gregs[REG_EIP];
+       es->sp = (u1 *) _mc->gregs[REG_ESP];
+       es->pv = (u1 *) NULL;
+
+       /* TODO: int registers are missing */
+
+       /* now suspend the current thread for GC */
+       gc_suspend(t, _uc);
+}
+#endif
+
+
 /* md_signal_handler_sigusr2 ***************************************************
 
    Signal handler for profiling sampling.
index f87dd507eaf135b4e861d6f2933229f8ade26162..febed4904f35ce3939d571228ea78ef3527cb5aa 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes:
 
-   $Id: inline.c 7228 2007-01-19 01:13:48Z edwin $
+   $Id: inline.c 7297 2007-02-07 14:59:56Z twisti $
 
 */
 
index 4fc22fc98f089ae1bfa6450bb8dac2a7f85b113e..e4aa674e09220d60378507a372960fb06a60f351 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: intrp.h 7357 2007-02-14 11:35:59Z twisti $
+   $Id: intrp.h 7368 2007-02-16 11:16:10Z twisti $
 
 */
 
index 6d710635333e0281f13e7baa88b39c7ba5d87924..1e0804591c212277c3e91295d889b284c28b51b7 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: patcher.c 7357 2007-02-14 11:35:59Z twisti $
+   $Id: patcher.c 7368 2007-02-16 11:16:10Z twisti $
 
 */
 
index 055ed6c4bd1bdef41a14f31c4ca3e6d0cce1a6ca..dae01185706f02365b647baec9ab24d98af4a5e9 100644 (file)
@@ -29,7 +29,7 @@
             Christian Ullrich
             Edwin Steiner
 
-   $Id: codegen.c 7441 2007-03-02 23:13:10Z michi $
+   $Id: codegen.c 7429 2007-03-01 12:42:16Z twisti $
 
 */
 
index d0561983d0efcdc6056f978f7f4a6e7ba9ed919b..e2376e13134f815f34bf17cc320158884e208689 100644 (file)
@@ -27,7 +27,7 @@
    Authors: Andreas Krall
             Christian Thalinger
 
-   $Id: codegen.h 7407 2007-02-26 19:12:03Z michi $
+   $Id: codegen.h 7413 2007-02-27 21:51:17Z twisti $
 
 */
 
index a93fab1d3b4f4b87aa5bdd00c8adbd7e65a32b60..4e91c158311821a23b297719670defda2a0b1b27 100644 (file)
@@ -26,7 +26,7 @@
 
    Authors: Christian Thalinger
 
-   $Id: emit.c 7300 2007-02-07 22:06:53Z pm $
+   $Id: emit.c 7355 2007-02-14 10:57:32Z twisti $
 
 */
 
index 4067d1b0e77ed2a784c14ccceca940cb60da2514..680336e68e10ac2562a007ca219921b75c1b9e1a 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes:
 
-   $Id: md-abi.h 7283 2007-02-04 19:41:14Z pm $
+   $Id: md-abi.h 7297 2007-02-07 14:59:56Z twisti $
 
 */
 
index d0158d260938e581edfc62617566d0d9e98e7e95..2e3b95cc445bea0992813c98cb22c25186285976 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes:
 
-   $Id: md-asm.h 7407 2007-02-26 19:12:03Z michi $
+   $Id: md-asm.h 7413 2007-02-27 21:51:17Z twisti $
 
 */
 
index 004bf38725be7a11e51e6b2d94f59c8fbacda1bc..9e5182580f67e1ddf699ea3e05758b415d0f002c 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: stack.c 7441 2007-03-02 23:13:10Z michi $
+   $Id: stack.c 7429 2007-03-01 12:42:16Z twisti $
 
 */
 
index f73efc2ee011ee99034f4a5ee6f32060f695b05d..f21611f5a225dcd5c5a4b8f52835921c180e2e89 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: typecheck.c 7441 2007-03-02 23:13:10Z michi $
+   $Id: typecheck.c 7429 2007-03-01 12:42:16Z twisti $
 
 */
 
index 660a25b1233f5f298040d234105a7faabc784e46..abc8f91d7d1afcb8d3b5b11985b46d28bfd22abb 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: typeinfo.c 7246 2007-01-29 18:49:05Z twisti $
+   $Id: typeinfo.c 7297 2007-02-07 14:59:56Z twisti $
 
 */
 
index 6406a1bbd57a0a741b64489794d6da064d6469f6..b7d792f7fe33de27915169a429964c8c69f9fde4 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: emit.c 7317 2007-02-11 00:02:54Z twisti $
+   $Id: emit.c 7356 2007-02-14 11:00:28Z twisti $
 
 */
 
index 699e6edfa564ba80597ab5e8749be510274d0319..ad14466133d391c32d4af11e2edcd97b0ea54744 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md-abi.c 7381 2007-02-21 18:20:01Z twisti $
+   $Id: md-abi.c 7383 2007-02-21 20:26:52Z twisti $
 
 */
 
index 2d907fdfa1732de4f9a5be4d4c21a8d97279ab4d..e7d4b4735a044915d889f59f15acf79d7ee09d27 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md.c 7284 2007-02-05 00:52:42Z twisti $
+   $Id: md.c 7297 2007-02-07 14:59:56Z twisti $
 
 */
 
index aca4841bc2eab2e55b7af8e3b58cb67cfb3e1ac7..a94b935a89fe2cf0d6524d50c6949c28809d5898 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: signal.c 7344 2007-02-13 12:23:54Z ajordan $
+   $Id: signal.c 7480 2007-03-08 12:46:19Z michi $
 
 */
 
@@ -156,6 +156,14 @@ void signal_init(void)
        sigaction(SIGHUP, &act, NULL);
 #endif
 
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+       /* SIGUSR1 handler for the exact GC to suspend threads */
+
+       act.sa_sigaction = md_signal_handler_sigusr1;
+       act.sa_flags     = SA_SIGINFO;
+       sigaction(SIGUSR1, &act, NULL);
+#endif
+
 #if defined(ENABLE_THREADS) && defined(ENABLE_PROFILING)
        /* SIGUSR2 handler for profiling sampling */
 
index 9cb02fbee3c19efd0257ac7ba2d42fc2c3c3be18..0ded4eafbda307ac47a8e596f3749153be58a27d 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: signallocal.h 7286 2007-02-05 01:07:45Z twisti $
+   $Id: signallocal.h 7480 2007-03-08 12:46:19Z michi $
 
 */
 
@@ -52,6 +52,8 @@ void md_signal_handler_sigsegv(int sig, siginfo_t *siginfo, void *_p);
 void md_signal_handler_sigfpe(int sig, siginfo_t *siginfo, void *_p);
 #endif
 
+void md_signal_handler_sigusr1(int sig, siginfo_t *siginfo, void *_p);
+
 void md_signal_handler_sigusr2(int sig, siginfo_t *siginfo, void *_p);
 
 #endif /* _CACAO_SIGNAL_H */
index 1a9c7d8699e8ed896dd3f1f93021247a2b96f35c..11a6669078b793583b96bea78ce96426e4fb214e 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: classcache.c 7435 2007-03-02 19:45:42Z edwin $
+   $Id: classcache.c 7441 2007-03-02 23:13:10Z michi $
 
 */
 
index 83f1a0c4942feb7636a6c652c98c4d7212c64fb8..674fdc3508ab3772b9a5c27f6f681b9a80ae6251 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: descriptor.c 7329 2007-02-11 21:24:14Z twisti $
+   $Id: descriptor.c 7356 2007-02-14 11:00:28Z twisti $
 
 */
 
index 30892ea02a186c9614e052102855148f8c400dac..19c7329fbb74f31fda788326755b1e047f1eb62a 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: options.c 7338 2007-02-13 00:17:22Z twisti $
+   $Id: options.c 7356 2007-02-14 11:00:28Z twisti $
 
 */
 
index 167570aecf054da9ff43109ceef50c07492dd288..6bcb98c34024037e86a77f8e9d43abe2f9ab49c6 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: options.h 7338 2007-02-13 00:17:22Z twisti $
+   $Id: options.h 7356 2007-02-14 11:00:28Z twisti $
 
 */
 
index d51e1dc154646dffcb35215f5ddfa07b91138208..8023fa62f282e1c09a223dd07862bf6b9076ae17 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: statistics.c 7369 2007-02-16 17:56:40Z twisti $
+   $Id: statistics.c 7370 2007-02-16 18:00:03Z twisti $
 
 */
 
index c02f75e31cb44e9ccb4ec15f13e749b5d18988c1..6a32c19c729b5aecb32c238a3df6d7dff52d5ce3 100644 (file)
@@ -26,7 +26,7 @@
 ##
 ## Authors: Christian Thalinger
 ##
-## $Id: Makefile.am 7433 2007-03-02 19:42:13Z edwin $
+## $Id: Makefile.am 7441 2007-03-02 23:13:10Z michi $
 
 ## Process this file with automake to produce Makefile.in