Changes: Edwin Steiner
Christian Thalinger
- $Id: builtin.h 4792 2006-04-19 01:05:18Z edwin $
+ $Id: builtin.h 5251 2006-08-18 13:01:00Z twisti $
*/
#include "arch.h"
#include "toolbox/logging.h"
-#if defined(USE_THREADS)
-# if defined(NATIVE_THREADS)
-# include "threads/native/threads.h"
-# else
-# include "threads/green/threads.h"
-# endif
+#if defined(ENABLE_THREADS)
+# include "threads/native/threads.h"
#endif
#include "vm/jit/stacktrace.h"
struct builtintable_entry {
s4 opcode; /* opcode which is replaced */
functionptr fp; /* function pointer of builtin */
- char *descriptor;
- char *name;
+ char *cclassname; /* char name of the class */
+ char *cname; /* char name of the function */
+ char *cdescriptor; /* char name of the descriptor */
+ utf *classname; /* class of the function */
+ utf *name; /* name of the function */
+ utf *descriptor; /* descriptor of the function */
+ bool checkexception; /* check for exception after return */
methoddesc *md;
};
builtintable_entry *builtintable_get_internal(functionptr fp);
builtintable_entry *builtintable_get_automatic(s4 opcode);
+bool builtintable_replace_function(instruction *iptr);
+
/**********************************************************************/
/* BUILTIN FUNCTIONS */
void builtin_displaymethodstop(methodinfo *m, s8 l, double d, float f);
/* NOT AN OP */
-#if defined(USE_THREADS)
-void builtin_monitorenter(java_objectheader *o);
-#define BUILTIN_monitorenter (functionptr) builtin_monitorenter
-void builtin_staticmonitorenter(classinfo *c);
-#define BUILTIN_staticmonitorenter (functionptr) builtin_staticmonitorenter
-void builtin_monitorexit(java_objectheader *o);
-#define BUILTIN_monitorexit (functionptr) builtin_monitorexit
-#endif
-
s4 builtin_idiv(s4 a, s4 b);
#define BUILTIN_idiv (functionptr) builtin_idiv
s4 builtin_irem(s4 a, s4 b);
java_arrayheader *builtin_clone_array(void *env, java_arrayheader *o);
/* NOT AN OP */
-/* this is a wrapper for calls from asmpart */
-java_objectheader **builtin_asm_get_exceptionptrptr(void);
+bool builtin_arraycopy(java_arrayheader *src, s4 srcStart,
+ java_arrayheader *dest, s4 destStart, s4 len);
+#define BUILTIN_arraycopy (functionptr) builtin_arraycopy
-#if defined(USE_THREADS) && defined(NATIVE_THREADS)
-static inline java_objectheader **builtin_get_exceptionptrptr(void);
-
-inline java_objectheader **builtin_get_exceptionptrptr(void)
-{
- return &THREADINFO->_exceptionptr;
-}
-#endif
+s8 builtin_currenttimemillis(void);
+#define BUILTIN_currenttimemillis (functionptr) builtin_currenttimemillis
#if defined(ENABLE_CYCLES_STATS)
void builtin_print_cycles_stats(FILE *file);