/* src/vm/jit/jit.h - code generation header
- Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+ Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
J. Wenninger, Institut f. Computersprachen - TU Wien
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Contact: cacao@cacaojvm.org
-
- Authors: Andreas Krall
- Reinhard Grafl
- Christian Thalinger
- Edwin Steiner
-
- $Id: jit.h 6157 2006-12-08 00:39:25Z edwin $
+ $Id: jit.h 7577 2007-03-25 20:55:06Z twisti $
*/
typedef struct stackelement stackelement;
typedef stackelement *stackptr;
typedef struct basicblock basicblock;
-typedef struct branchref branchref;
typedef struct instruction instruction;
typedef struct insinfo_inline insinfo_inline;
typedef struct exception_entry exception_entry;
#include "vm/types.h"
#include "toolbox/chain.h"
+
#include "vm/global.h"
-#include "vm/method.h"
-#include "vm/references.h"
-#include "vm/resolve.h"
-#include "vm/statistics.h"
+
#include "vm/jit/codegen-common.h"
#include "vm/jit/reg.h"
-#include "vm/jit/stacktrace.h"
#include "vm/jit/replace.h"
#if defined(ENABLE_INLINING)
#include "vm/jit/verify/typeinfo.h"
+#include "vmcore/method.h"
+#include "vmcore/references.h"
+#include "vm/resolve.h"
+
+#if defined(ENABLE_STATISTICS)
+# include "vmcore/statistics.h"
+#endif
+
+
/* common jit/codegen macros **************************************************/
#if defined(ENABLE_STATISTICS)
#define JITDATA_FLAG_REORDER 0x00000010
#define JITDATA_FLAG_INLINE 0x00000020
+#define JITDATA_FLAG_COUNTDOWN 0x00000100
+
#define JITDATA_FLAG_SHOWINTERMEDIATE 0x20000000
#define JITDATA_FLAG_SHOWDISASSEMBLE 0x40000000
#define JITDATA_FLAG_VERBOSECALL 0x80000000
#define JITDATA_HAS_FLAG_INLINE(jd) \
((jd)->flags & JITDATA_FLAG_INLINE)
+#define JITDATA_HAS_FLAG_COUNTDOWN(jd) \
+ ((jd)->flags & JITDATA_FLAG_COUNTDOWN)
+
#define JITDATA_HAS_FLAG_SHOWINTERMEDIATE(jd) \
((jd)->flags & JITDATA_FLAG_SHOWINTERMEDIATE)
s4 *javalocals_end; /* javalocals after inlined body */
/* fields set by replacement point creation ------------------------------*/
+#if defined(ENABLE_REPLACEMENT)
rplpoint *rp; /* replacement point at INLINE_START */
+#endif
/* fields set by the codegen ---------------------------------------------*/
s4 startmpc; /* machine code offset of start of inlining */
} while (0)
-/* branchref *****************************************************************/
-
-struct branchref {
- s4 branchpos; /* patching position in code segment */
- branchref *next; /* next element in branchref list */
-};
-
-
/* data-flow constants for the ICMD table ************************************/
#define DF_0_TO_0 0
void jit_check_basicblock_numbers(jitdata *jd);
#endif
-/* machine dependent functions */
-#if defined(ENABLE_JIT)
-void md_init(void);
-
-u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr);
-
-void md_cacheflush(u1 *addr, s4 nbytes);
-void md_icacheflush(u1 *addr, s4 nbytes);
-void md_dcacheflush(u1 *addr, s4 nbytes);
-#endif
-
-#if defined(ENABLE_INTRP)
-void intrp_md_init(void);
-#endif
-
#endif /* _JIT_H */