CACAO
Macros | Enumerations | Functions | Variables
vm.cpp File Reference

Go to the source code of this file.

Macros

#define HEAP_MAXSIZE   128 * 1024 * 1024 /* default 128MB */
 
#define HEAP_STARTSIZE   2 * 1024 * 1024 /* default 2MB */
 
#define STACK_SIZE   512 * 1024 /* default 512kB */
 
#define COMPILE_METHOD
 
#define VM_CALL_ARRAY(name, type)
 
#define VM_CALL_METHOD(name, type)
 
#define VM_CALL_METHOD_VALIST(name, type)
 
#define VM_CALL_METHOD_JVALUE(name, type)
 

Enumerations

enum  {
  OPT_FOO, OPT_JAR, OPT_D32, OPT_D64,
  OPT_CLASSPATH, OPT_D, OPT_VERBOSE, OPT_VERSION,
  OPT_SHOWVERSION, OPT_FULLVERSION, OPT_HELP, OPT_X,
  OPT_XX, OPT_EA, OPT_DA, OPT_EA_NOARG,
  OPT_DA_NOARG, OPT_ESA, OPT_DSA, OPT_JIT,
  OPT_INTRP, OPT_BOOTCLASSPATH, OPT_BOOTCLASSPATH_A, OPT_BOOTCLASSPATH_P,
  OPT_BOOTCLASSPATH_C, OPT_MS, OPT_MX, OPT_XCHECK_JNI,
  OPT_VERBOSE1, OPT_LOG, OPT_CHECK, OPT_LOAD,
  OPT_SHOW, OPT_DEBUGCOLOR, OPT_NOVERIFY, OPT_XVERIFY_ALL,
  OPT_XVERIFY_NONE, OPT_IFCONV, OPT_SS, OPT_FILTER_VERBOSECALL_INCLUDE,
  OPT_FILTER_VERBOSECALL_EXCLUDE, OPT_FILTER_SHOW_METHOD, DUMMY
}
 

Functions

static void usage (void)
 
static void Xusage (void)
 
static void version (bool opt_exit)
 
static void fullversion (void)
 
static char * vm_get_mainclass_from_jar (char *mainstring)
 
static void vm_compile_method (char *mainname)
 
static void vm_compile_all (void)
 
bool VM_create (JavaVM **p_vm, void **p_env, void *vm_args)
 C wrapper for VM::create. More...
 
static void write_logfiles ()
 
void vm_run (JavaVM *vm, JavaVMInitArgs *vm_args)
 
int vm_destroy (JavaVM *vm)
 
void vm_exit (s4 status)
 
void vm_shutdown (s4 status)
 
void vm_exit_handler (void)
 
void vm_abort_disassemble (void *pc, int count, const char *text,...)
 
static java_handle_tvm_call_array (methodinfo *m, uint64_t *array)
 
java_handle_tvm_call_method_objectarray (methodinfo *m, java_handle_t *o, java_handle_objectarray_t *params)
 
JNIEnvVM_get_jnienv ()
 
void vm_abort (const char *text,...)
 

Variables

s4 vms = 0
 
static classinfomainclass = NULL
 
opt_struct opts []
 

Macro Definition Documentation

#define COMPILE_METHOD

Definition at line 568 of file vm.cpp.

#define HEAP_MAXSIZE   128 * 1024 * 1024 /* default 128MB */

Definition at line 117 of file vm.cpp.

#define HEAP_STARTSIZE   2 * 1024 * 1024 /* default 2MB */

Definition at line 118 of file vm.cpp.

#define STACK_SIZE   512 * 1024 /* default 512kB */

Definition at line 119 of file vm.cpp.

#define VM_CALL_ARRAY (   name,
  type 
)
Value:
static type vm_call##name##_array(methodinfo *m, uint64_t *array) \
{ \
methoddesc *md; \
void *pv; \
type value; \
\
assert(m->code != NULL); \
\
md = m->parseddesc; \
pv = m->code->entrypoint; \
STATISTICS(count_calls_native_to_java++); \
\
value = asm_vm_call_method##name(pv, array, md->memuse); \
\
return value; \
}
#define pv
Definition: md-asm.hpp:65
#define STATISTICS(x)
Wrapper for statistics only code.
Definition: statistics.hpp:975
java_object_t * asm_vm_call_method(void *pv, uint64_t *array, int32_t stackargs)
typedef void(JNICALL *jvmtiEventSingleStep)(jvmtiEnv *jvmti_env
JNIEnv jclass jobject const char * name
Definition: jvmti.h:312
#define return

Definition at line 2330 of file vm.cpp.

#define VM_CALL_METHOD (   name,
  type 
)
Value:
type vm_call_##name(methodinfo *m, java_handle_t *o, ...) \
{ \
va_list ap; \
type value; \
\
va_start(ap, o); \
value = vm_call_##name##_valist(m, o, ap); \
va_end(ap); \
\
return value; \
}
JNIEnv jclass jobject const char * name
Definition: jvmti.h:312
#define return

Definition at line 2382 of file vm.cpp.

#define VM_CALL_METHOD_JVALUE (   name,
  type 
)
Value:
const jvalue *args) \
{ \
uint64_t *array; \
type value; \
\
if (m->code == NULL) \
if (!jit_compile(m)) \
return 0; \
\
\
DumpMemoryArea dma; \
\
array = argument_vmarray_from_jvalue(m, o, args); \
value = vm_call##name##array(m, array); \
\
\
return value; \
}
uint64_t * argument_vmarray_from_jvalue(methodinfo *m, java_handle_t *o, const jvalue *args)
Definition: argument.cpp:470
#define THREAD_NATIVEWORLD_EXIT
Definition: thread.hpp:209
u1 * jit_compile(methodinfo *m)
Definition: jit.cpp:274
java_handle_t * vm_call_method(methodinfo *m, java_handle_t *o,...)
JNIEnv jclass jobject const char * name
Definition: jvmti.h:312
#define return
#define THREAD_NATIVEWORLD_ENTER
Definition: thread.hpp:208

Definition at line 2446 of file vm.cpp.

#define VM_CALL_METHOD_VALIST (   name,
  type 
)
Value:
va_list ap) \
{ \
uint64_t *array; \
type value; \
\
if (m->code == NULL) \
if (!jit_compile(m)) \
return 0; \
\
\
DumpMemoryArea dma; \
\
array = argument_vmarray_from_valist(m, o, ap); \
value = vm_call##name##array(m, array); \
\
\
return value; \
}
#define THREAD_NATIVEWORLD_EXIT
Definition: thread.hpp:209
u1 * jit_compile(methodinfo *m)
Definition: jit.cpp:274
java_handle_t * vm_call_method(methodinfo *m, java_handle_t *o,...)
JNIEnv jclass jobject const char * name
Definition: jvmti.h:312
uint64_t * argument_vmarray_from_valist(methodinfo *m, java_handle_t *o, va_list ap)
Definition: argument.cpp:384
#define return
#define THREAD_NATIVEWORLD_ENTER
Definition: thread.hpp:208

Definition at line 2409 of file vm.cpp.

Enumeration Type Documentation

anonymous enum
Enumerator
OPT_FOO 
OPT_JAR 
OPT_D32 
OPT_D64 
OPT_CLASSPATH 
OPT_D 
OPT_VERBOSE 
OPT_VERSION 
OPT_SHOWVERSION 
OPT_FULLVERSION 
OPT_HELP 
OPT_X 
OPT_XX 
OPT_EA 
OPT_DA 
OPT_EA_NOARG 
OPT_DA_NOARG 
OPT_ESA 
OPT_DSA 
OPT_JIT 
OPT_INTRP 
OPT_BOOTCLASSPATH 
OPT_BOOTCLASSPATH_A 
OPT_BOOTCLASSPATH_P 
OPT_BOOTCLASSPATH_C 
OPT_MS 
OPT_MX 
OPT_XCHECK_JNI 
OPT_VERBOSE1 
OPT_LOG 
OPT_CHECK 
OPT_LOAD 
OPT_SHOW 
OPT_DEBUGCOLOR 
OPT_NOVERIFY 
OPT_XVERIFY_ALL 
OPT_XVERIFY_NONE 
OPT_IFCONV 
OPT_SS 
OPT_FILTER_VERBOSECALL_INCLUDE 
OPT_FILTER_VERBOSECALL_EXCLUDE 
OPT_FILTER_SHOW_METHOD 
DUMMY 

Definition at line 124 of file vm.cpp.

Function Documentation

static void fullversion ( void  )
static

Definition at line 553 of file vm.cpp.

static void usage ( void  )
static

Definition at line 382 of file vm.cpp.

static void version ( bool  opt_exit)
static

Definition at line 529 of file vm.cpp.

void vm_abort ( const char *  text,
  ... 
)

Definition at line 2586 of file vm.cpp.

void vm_abort_disassemble ( void pc,
int  count,
const char *  text,
  ... 
)

Definition at line 2001 of file vm.cpp.

static java_handle_t* vm_call_array ( methodinfo m,
uint64_t *  array 
)
static

Definition at line 2349 of file vm.cpp.

java_handle_t* vm_call_method_objectarray ( methodinfo m,
java_handle_t o,
java_handle_objectarray_t params 
)

Definition at line 2483 of file vm.cpp.

static void vm_compile_all ( void  )
static

Definition at line 2169 of file vm.cpp.

static void vm_compile_method ( char *  mainname)
static

Definition at line 2254 of file vm.cpp.

bool VM_create ( JavaVM **  p_vm,
void **  p_env,
void vm_args 
)

C wrapper for VM::create.

Definition at line 626 of file vm.cpp.

int vm_destroy ( JavaVM vm)

Definition at line 1771 of file vm.cpp.

void vm_exit ( s4  status)

Definition at line 1807 of file vm.cpp.

void vm_exit_handler ( void  )

Definition at line 1903 of file vm.cpp.

JNIEnv* VM_get_jnienv ( )

Definition at line 2584 of file vm.cpp.

static char * vm_get_mainclass_from_jar ( char *  mainstring)
static

Definition at line 2042 of file vm.cpp.

void vm_run ( JavaVM vm,
JavaVMInitArgs *  vm_args 
)

Definition at line 1588 of file vm.cpp.

void vm_shutdown ( s4  status)

Definition at line 1861 of file vm.cpp.

static void write_logfiles ( )
static

Definition at line 1944 of file vm.cpp.

static void Xusage ( void  )
static

Definition at line 432 of file vm.cpp.

Variable Documentation

classinfo* mainclass = NULL
static

Definition at line 107 of file vm.cpp.

opt_struct opts[]

Definition at line 243 of file vm.cpp.

s4 vms = 0

Definition at line 104 of file vm.cpp.