* src/vm/jit/arm/codegen.c: Remove hack for return value in float registers.
[cacao.git] / src / vm / jit / builtin.hpp
index 2a03455299c52069529db48f81d0e9b410789cb4..0be24ea74bb2be5a3f4be7ff511dafacb35deb5c 100644 (file)
@@ -36,9 +36,9 @@ typedef struct builtintable_entry builtintable_entry;
 #include "arch.h"
 #include "md-abi.h"
 
-#include "toolbox/logging.h"
+#include "toolbox/logging.hpp"
 
-#include "vm/descriptor.h"
+#include "vm/descriptor.hpp"
 #include "vm/utf8.h"
 
 
@@ -77,6 +77,7 @@ struct builtintable_entry {
        utf         *name;                  /* name of the function               */
        utf         *descriptor;            /* descriptor of the function         */
        methoddesc  *md;
+       functionptr  emit_fastpath;         /* emitter for fast-path code         */
 };
 
 
@@ -125,6 +126,26 @@ bool builtintable_replace_function(void *iptr);
  * ICMD_BUILTIN3.)
  */
 
+#if USES_NEW_SUBTYPE
+bool fast_subtype_check(struct _vftbl *, struct _vftbl *);
+#endif
+
+/* From lock.hpp: bool lock_monitor_enter(java_handle_t *); */
+#define LOCK_monitor_enter          (functionptr) lock_monitor_enter
+#if defined(__X86_64__)
+# define EMIT_FASTPATH_monitor_enter (functionptr) emit_fastpath_monitor_enter
+#else
+# define EMIT_FASTPATH_monitor_enter (functionptr) NULL
+#endif
+
+/* From lock.hpp: bool lock_monitor_exit(java_handle_t *); */
+#define LOCK_monitor_exit          (functionptr) lock_monitor_exit
+#if defined(__X86_64__)
+# define EMIT_FASTPATH_monitor_exit (functionptr) emit_fastpath_monitor_exit
+#else
+# define EMIT_FASTPATH_monitor_exit (functionptr) NULL
+#endif
+
 bool builtin_instanceof(java_handle_t *obj, classinfo *c);
 /* NOT AN OP */
 bool builtin_checkcast(java_handle_t *obj, classinfo *c);
@@ -164,14 +185,9 @@ java_handle_t *builtin_escape_reason_new(classinfo *c);
 java_object_t *builtin_fast_new(classinfo *c);
 #define BUILTIN_FAST_new (functionptr) builtin_fast_new
 
-java_handle_t *builtin_newarray(int32_t size, classinfo *arrayclass);
-/* NOT AN OP */
-java_handle_t *builtin_java_newarray(int32_t size, java_handle_t *arrayclass);
+java_handle_array_t *builtin_java_newarray(int32_t size, java_handle_t *arrayclass);
 #define BUILTIN_newarray (functionptr) builtin_java_newarray
 
-java_handle_objectarray_t *builtin_anewarray(int32_t size, classinfo *componentclass);
-/* NOT AN OP */
-
 java_handle_booleanarray_t *builtin_newarray_boolean(int32_t size);
 #define BUILTIN_newarray_boolean (functionptr) builtin_newarray_boolean
 java_handle_chararray_t *builtin_newarray_char(int32_t size);