* src/threads/native/threads.c: Init and dump the above flags.
* src/vm/vm.c: Change the THREAD_IN_NATIVE_FLAG accordingly.
* src/vm/jit/codegen-common.c: Same as above.
--HG--
branch : exact-gc
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: headers.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: headers.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: java_lang_reflect_Field.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: java_lang_reflect_Field.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: threads.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: threads.c 7489 2007-03-08 17:12:56Z michi $
*/
thread->index = 0;
+#if defined(ENABLE_GC_CACAO)
+ thread->flags |= THREAD_FLAG_IN_NATIVE;
+ thread->gc_critical = false;
+#endif
+
/* TODO destroy all those things */
pthread_mutex_init(&(thread->joinmutex), NULL);
pthread_cond_init(&(thread->joincond), NULL);
FREE(tempthread, threadobject);
threads_init_threadobject(mainthreadobj);
-
threads_set_current_threadobject(mainthreadobj);
-
lock_init_execution_env(mainthreadobj);
mainthreadobj->next = mainthreadobj;
#if defined(__DARWIN__)
thread->mach_thread = mach_thread_self();
#endif
+
+ threads_init_threadobject(thread);
threads_set_current_threadobject(thread);
/* insert the thread into the threadlist and the threads table */
utf_display_printable_ascii(name);
printf("\" ");
+ if (thread->flags & THREAD_FLAG_JAVA)
+ printf("java ");
+
+ if (thread->flags & THREAD_FLAG_INTERNAL)
+ printf("internal ");
+
if (thread->flags & THREAD_FLAG_DAEMON)
printf("daemon ");
+#if defined(ENABLE_GC_CACAO)
+ if (thread->flags & THREAD_FLAG_IN_NATIVE)
+ printf("in-native ");
+
+ if (thread->gc_critical)
+ printf("GC-CRITICAL");
+#endif
+
#if SIZEOF_VOID_P == 8
printf("prio=%d tid=0x%016lx\n", t->priority, (ptrint) thread->tid);
#else
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: threads.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: threads.h 7489 2007-03-08 17:12:56Z michi $
*/
#define THREAD_FLAG_JAVA 0x01 /* a normal Java thread */
#define THREAD_FLAG_INTERNAL 0x02 /* CACAO internal thread */
#define THREAD_FLAG_DAEMON 0x04 /* daemon thread */
+#define THREAD_FLAG_IN_NATIVE 0x08 /* currently executing native code */
struct threadobject {
Cell *_global_sp; /* stack pointer for interpreter */
#endif
+#if defined(ENABLE_GC_CACAO)
+ bool gc_critical;
+#endif
+
dumpinfo_t dumpinfo; /* dump memory info structure */
};
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
## 02110-1301, USA.
##
-## $Id: Makefile.am 7483 2007-03-08 13:17:40Z michi $
+## $Id: Makefile.am 7486 2007-03-08 13:50:07Z twisti $
## Process this file with automake to produce Makefile.in
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: builtin.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: builtin.h 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
- $Id: simplereg.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: simplereg.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: patcher.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: patcher.c 7486 2007-03-08 13:50:07Z twisti $
*/
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 7407 2007-02-26 19:12:03Z michi $
+ $Id: codegen-common.c 7489 2007-03-08 17:12:56Z michi $
*/
LOCALREFTABLE = lrt;
#endif
+
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ /* set the native world flag */
+
+ THREADOBJECT->flags |= THREAD_FLAG_IN_NATIVE;
+#endif
}
lrt = (localref_table *) (datasp - sizeof(stackframeinfo) -
sizeof(localref_table));
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ /* clear the native world flag */
+
+ THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
+#endif
+
/* remove current stackframeinfo from chain */
psfi = STACKFRAMEINFO;
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: emit.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: emit.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: patcher.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: patcher.c 7486 2007-03-08 13:50:07Z twisti $
*/
Changes:
- $Id: inline.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: inline.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: intrp.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: intrp.h 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: patcher.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: patcher.c 7486 2007-03-08 13:50:07Z twisti $
*/
Christian Ullrich
Edwin Steiner
- $Id: codegen.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: codegen.c 7486 2007-03-08 13:50:07Z twisti $
*/
Authors: Andreas Krall
Christian Thalinger
- $Id: codegen.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: codegen.h 7486 2007-03-08 13:50:07Z twisti $
*/
Authors: Christian Thalinger
- $Id: emit.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: emit.c 7486 2007-03-08 13:50:07Z twisti $
*/
Changes:
- $Id: emit.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: emit.h 7486 2007-03-08 13:50:07Z twisti $
*/
Changes:
- $Id: md-abi.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: md-abi.h 7486 2007-03-08 13:50:07Z twisti $
*/
Changes:
- $Id: md-asm.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: md-asm.h 7486 2007-03-08 13:50:07Z twisti $
*/
Changes:
- $Id: patcher.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: patcher.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: stack.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: stack.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: typecheck.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: typecheck.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: typeinfo.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: typeinfo.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: emit.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: emit.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: md-abi.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: md-abi.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: md.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: md.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: patcher.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: patcher.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: jit_interface.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: jit_interface.h 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: resolve.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: resolve.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: resolve.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: resolve.h 7486 2007-03-08 13:50:07Z twisti $
*/
{
java_objectheader *o;
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
+#endif
+
#if defined(ENABLE_JIT)
# if defined(ENABLE_INTRP)
if (opt_intrp)
o = intrp_asm_vm_call_method(m, vmargscount, vmargs);
#endif
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags |= THREAD_FLAG_IN_NATIVE;
+#endif
+
return o;
}
{
s4 i;
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
+#endif
+
#if defined(ENABLE_JIT)
# if defined(ENABLE_INTRP)
if (opt_intrp)
i = intrp_asm_vm_call_method_int(m, vmargscount, vmargs);
#endif
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags |= THREAD_FLAG_IN_NATIVE;
+#endif
+
return i;
}
{
s8 l;
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
+#endif
+
#if defined(ENABLE_JIT)
# if defined(ENABLE_INTRP)
if (opt_intrp)
l = intrp_asm_vm_call_method_long(m, vmargscount, vmargs);
#endif
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags |= THREAD_FLAG_IN_NATIVE;
+#endif
+
return l;
}
{
float f;
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
+#endif
+
#if defined(ENABLE_JIT)
# if defined(ENABLE_INTRP)
if (opt_intrp)
f = intrp_asm_vm_call_method_float(m, vmargscount, vmargs);
#endif
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags |= THREAD_FLAG_IN_NATIVE;
+#endif
+
return f;
}
{
double d;
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
+#endif
+
#if defined(ENABLE_JIT)
# if defined(ENABLE_INTRP)
if (opt_intrp)
d = intrp_asm_vm_call_method_double(m, vmargscount, vmargs);
#endif
+#if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
+ THREADOBJECT->flags |= THREAD_FLAG_IN_NATIVE;
+#endif
+
return d;
}
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: classcache.c 7441 2007-03-02 23:13:10Z michi $
+ $Id: classcache.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: descriptor.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: descriptor.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: linker.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: linker.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: method.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: method.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: method.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: method.h 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: options.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: options.c 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: options.h 7483 2007-03-08 13:17:40Z michi $
+ $Id: options.h 7486 2007-03-08 13:50:07Z twisti $
*/
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: statistics.c 7483 2007-03-08 13:17:40Z michi $
+ $Id: statistics.c 7486 2007-03-08 13:50:07Z twisti $
*/
##
## Authors: Christian Thalinger
##
-## $Id: Makefile.am 7441 2007-03-02 23:13:10Z michi $
+## $Id: Makefile.am 7486 2007-03-08 13:50:07Z twisti $
## Process this file with automake to produce Makefile.in