/* src/cacaoh/headers.c - functions for header generation
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* create remarks */
fprintf(file, "\n/*\n * Class: ");
- utf_fprint_printable_ascii(file, m->class->name);
+ utf_fprint_printable_ascii(file, m->clazz->name);
fprintf(file, "\n * Method: ");
utf_fprint_printable_ascii(file, m->name);
fprintf(file, "\n * Signature: ");
fprintf(file, "JNIEXPORT ");
printtype(utf_ptr, "", "_handle");
fprintf(file, " JNICALL Java_");
- printID(m->class->name);
+ printID(m->clazz->name);
chain_addlast(ident_chain, m->name);
if (!(m->flags & ACC_STATIC)) {
fprintf(file, ", struct ");
- printID(m->class->name);
+ printID(m->clazz->name);
fprintf(file, "* this");
} else {
/* fill the temporary structure used for searching the tree */
- tmpnmn.classname = m->class->name;
+ tmpnmn.classname = m->clazz->name;
tmpnmn.name = m->name;
tmpnmn.descriptor = m->descriptor;
if (opt_verbosejni) {
printf("[Dynamic-linking native method ");
- utf_display_printable_ascii_classname(m->class->name);
+ utf_display_printable_ascii_classname(m->clazz->name);
printf(".");
utf_display_printable_ascii(m->name);
printf(" ... ");
/* generate method symbol string */
- name = native_method_symbol(m->class->name, m->name);
+ name = native_method_symbol(m->clazz->name, m->name);
/* generate overloaded function (having the types in it's name) */
#if defined(ENABLE_LTDL)
/* Get the classloader. */
- cl = class_get_classloader(m->class);
+ cl = class_get_classloader(m->clazz);
/* normally addresses are aligned to 4, 8 or 16 bytes */
/* Get filename. */
if (!(m->flags & ACC_NATIVE)) {
- if (m->class->sourcefile)
- filename = (java_lang_String *) javastring_new(m->class->sourcefile);
+ if (m->clazz->sourcefile)
+ filename = (java_lang_String *) javastring_new(m->clazz->sourcefile);
else
filename = NULL;
}
/* get declaring class name */
declaringclass =
- _Jv_java_lang_Class_getName(LLNI_classinfo_wrap(m->class));
+ _Jv_java_lang_Class_getName(LLNI_classinfo_wrap(m->clazz));
/* Fill the java.lang.StackTraceElement object. */
/* Calculate the slot. */
- slot = m - m->class->methods;
+ slot = m - m->clazz->methods;
#if defined(WITH_CLASSPATH_GNU)
/* Set Java object instance fields. */
- LLNI_field_set_cls(rvmc, clazz, m->class);
+ LLNI_field_set_cls(rvmc, clazz, m->clazz);
LLNI_field_set_val(rvmc, slot, slot);
LLNI_field_set_ref(rvmc, annotations, method_get_annotations(m));
LLNI_field_set_ref(rvmc, parameterAnnotations, method_get_parameterannotations(m));
/* Set Java object instance fields. */
- LLNI_field_set_cls(rc, clazz , m->class);
+ LLNI_field_set_cls(rc, clazz , m->clazz);
LLNI_field_set_ref(rc, parameterTypes , method_get_parametertypearray(m));
LLNI_field_set_ref(rc, exceptionTypes , method_get_exceptionarray(m));
LLNI_field_set_val(rc, modifiers , m->flags & ACC_CLASS_REFLECT_MASK);
/* Calculate the slot. */
- slot = m - m->class->methods;
+ slot = m - m->clazz->methods;
#if defined(WITH_CLASSPATH_GNU)
/* Set Java object instance fields. */
- LLNI_field_set_cls(rvmm, clazz, m->class);
+ LLNI_field_set_cls(rvmm, clazz, m->clazz);
/* The name needs to be interned */
/* XXX implement me better! */
#elif defined(WITH_CLASSPATH_SUN)
- LLNI_field_set_cls(rm, clazz, m->class);
+ LLNI_field_set_cls(rm, clazz, m->clazz);
/* The name needs to be interned */
/* XXX implement me better! */
class the method belongs to. For static methods the obj
parameter is ignored. */
- if (!(m->flags & ACC_STATIC) && o && (!builtin_instanceof(o, m->class))) {
+ if (!(m->flags & ACC_STATIC) && o && (!builtin_instanceof(o, m->clazz))) {
exceptions_throw_illegalargumentexception();
return NULL;
}
/* Create a Java object. */
- o = builtin_new(m->class);
+ o = builtin_new(m->clazz);
if (o == NULL)
return NULL;
/* Check if method class is initialized. */
- if (!(m->class->state & CLASS_INITIALIZED))
- if (!initialize_class(m->class))
+ if (!(m->clazz->state & CLASS_INITIALIZED))
+ if (!initialize_class(m->clazz))
return NULL;
/* Call the Java method. */
code = ste->code;
m = code->m;
- c = m->class;
+ c = m->clazz;
/* allocate a new StackTraceElement */
if (oa == NULL)
return NULL;
- array_objectarray_element_set(oa, 0, (java_handle_t *) LLNI_classinfo_wrap(m->class));
+ array_objectarray_element_set(oa, 0, (java_handle_t *) LLNI_classinfo_wrap(m->clazz));
array_objectarray_element_set(oa, 1, javastring_new(m->name));
array_objectarray_element_set(oa, 2, javastring_new(m->descriptor));
char *buf;
s4 len;
- len = strlen(msg) + utf_bytes(m->class->name) + strlen(".") +
+ len = strlen(msg) + utf_bytes(m->clazz->name) + strlen(".") +
utf_bytes(m->name) + utf_bytes(m->descriptor) + strlen("0");
buf = MNEW(char, len);
strcpy(buf, msg);
- utf_cat_classname(buf, m->class->name);
+ utf_cat_classname(buf, m->clazz->name);
strcat(buf, ".");
utf_cat(buf, m->name);
utf_cat(buf, m->descriptor);
/* If everything is public, there is nothing to check. */
- if ((m->class->flags & ACC_PUBLIC) && (m->flags & ACC_PUBLIC))
+ if ((m->clazz->flags & ACC_PUBLIC) && (m->flags & ACC_PUBLIC))
return true;
/* Get the caller's class. */
/* Check access rights. */
- if (!access_is_accessible_member(callerclass, m->class, m->flags)) {
+ if (!access_is_accessible_member(callerclass, m->clazz, m->flags)) {
msglen =
- utf_bytes(m->class->name) +
+ utf_bytes(m->clazz->name) +
strlen(".") +
utf_bytes(m->name) +
utf_bytes(m->descriptor) +
msg = MNEW(char, msglen);
- utf_copy_classname(msg, m->class->name);
+ utf_copy_classname(msg, m->clazz->name);
strcat(msg, ".");
utf_cat_classname(msg, m->name);
utf_cat_classname(msg, m->descriptor);
if (m != NULL)
msglen =
- strlen("(class: ") + utf_bytes(m->class->name) +
+ strlen("(class: ") + utf_bytes(m->clazz->name) +
strlen(", method: ") + utf_bytes(m->name) +
strlen(" signature: ") + utf_bytes(m->descriptor) +
strlen(") ") + strlen("0");
if (m != NULL) {
strcpy(msg, "(class: ");
- utf_cat_classname(msg, m->class->name);
+ utf_cat_classname(msg, m->clazz->name);
strcat(msg, ", method: ");
utf_cat(msg, m->name);
strcat(msg, " signature: ");
msglen = 0;
if (m != NULL)
- msglen = strlen("(class: ") + utf_bytes(m->class->name) +
+ msglen = strlen("(class: ") + utf_bytes(m->clazz->name) +
strlen(", method: ") + utf_bytes(m->name) +
strlen(" signature: ") + utf_bytes(m->descriptor) +
strlen(") Expecting to find longest-------typename on stack")
if (m != NULL) {
strcpy(msg, "(class: ");
- utf_cat_classname(msg, m->class->name);
+ utf_cat_classname(msg, m->clazz->name);
strcat(msg, ", method: ");
utf_cat(msg, m->name);
strcat(msg, " signature: ");
if (!(c->state & CLASS_LOADED))
/* use the methods' classloader */
if (!load_class_from_classloader(c->name,
- m->class->classloader))
+ m->clazz->classloader))
goto exceptions_handle_exception_return;
/* XXX I think, if it is not linked, we can be sure
/* src/vm/jit/alpha/codegen.c - machine code generator for Alpha
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* decide which monitor enter function to call */
if (m->flags & ACC_STATIC) {
- disp = dseg_add_address(cd, &m->class->object.header);
+ disp = dseg_add_address(cd, &m->clazz->object.header);
M_ALD(REG_A0, REG_PV, disp);
}
else {
}
else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * lm->class->index;
+ sizeof(methodptr*) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* implicit null-pointer check */
/* src/vm/jit/alpha/patcher.c - Alpha code patching functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* patch interfacetable index */
*((s4 *) (ra + 4)) |= (s4) ((OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * m->class->index) & 0x0000ffff);
+ sizeof(methodptr*) * m->clazz->index) & 0x0000ffff);
/* patch method offset */
*((s4 *) (ra + 4 + 4)) |=
- (s4) ((sizeof(methodptr) * (m - m->class->methods)) & 0x0000ffff);
+ (s4) ((sizeof(methodptr) * (m - m->clazz->methods)) & 0x0000ffff);
md_icacheflush(NULL, 0);
/* src/vm/jit/arm/codegen.c - machine code generator for Arm
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* get the correct lock object */
if (m->flags & ACC_STATIC) {
- disp = dseg_add_address(cd, &m->class->object.header);
+ disp = dseg_add_address(cd, &m->clazz->object.header);
M_DSEG_LOAD(REG_A0, disp);
}
else {
}
else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * lm->class->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ sizeof(methodptr*) * lm->clazz->index;
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* implicit null-pointer check */
our ENABLE_SOFTFLOAT define */
if (iptr->opc == ICMD_BUILTIN && d != TYPE_VOID && IS_FLT_DBL_TYPE(d)) {
#if 0 && !defined(NDEBUG)
- dolog("BUILTIN that returns float or double (%s.%s)", m->class->name->text, m->name->text);
+ dolog("BUILTIN that returns float or double (%s.%s)", m->clazz->name->text, m->name->text);
#endif
/* we cannot use this macro, since it is not defined
in ENABLE_SOFTFLOAT M_CAST_FLT_TO_INT_TYPED(d,
/* this depends on gcc; it is independent from our ENABLE_SOFTFLOAT define */
if (md->returntype.type != TYPE_VOID && IS_FLT_DBL_TYPE(md->returntype.type)) {
#if 0 && !defined(NDEBUG)
- dolog("NATIVESTUB that returns float or double (%s.%s)", m->class->name->text, m->name->text);
+ dolog("NATIVESTUB that returns float or double (%s.%s)", m->clazz->name->text, m->name->text);
#endif
/* we cannot use this macro, since it is not defined in ENABLE_SOFTFLOAT */
/* M_CAST_FLT_TO_INT_TYPED(md->returntype.type, REG_FRESULT, REG_RESULT_TYPED(md->returntype.type)); */
/* src/vm/jit/arm/patcher.c - ARM code patching functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* patch interfacetable index */
- gen_resolveload(*((s4 *) (ra + 1 * 4)), (s4) (OFFSET(vftbl_t, interfacetable[0]) - sizeof(methodptr*) * m->class->index));
+ gen_resolveload(*((s4 *) (ra + 1 * 4)), (s4) (OFFSET(vftbl_t, interfacetable[0]) - sizeof(methodptr*) * m->clazz->index));
/* patch method offset */
- gen_resolveload(*((s4 *) (ra + 2 * 4)), (s4) (sizeof(methodptr) * (m - m->class->methods)));
+ gen_resolveload(*((s4 *) (ra + 2 * 4)), (s4) (sizeof(methodptr) * (m - m->clazz->methods)));
/* synchronize instruction cache */
void codegen_disassemble_stub(methodinfo *m, u1 *start, u1 *end)
{
printf("Stub code: ");
- if (m->class != NULL)
- utf_fprint_printable_ascii_classname(stdout, m->class->name);
+ if (m->clazz != NULL)
+ utf_fprint_printable_ascii_classname(stdout, m->clazz->name);
else
printf("NULL");
printf(".");
/* Return a wrapped classinfo for static methods. */
if (m->flags & ACC_STATIC)
- return (java_handle_t *) LLNI_classinfo_wrap(m->class);
+ return (java_handle_t *) LLNI_classinfo_wrap(m->clazz);
else
return NULL;
}
/* src/vm/jit/i386/codegen.c - machine code generator for i386
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
s1 = rd->memuse;
if (m->flags & ACC_STATIC) {
- M_MOV_IMM(&m->class->object.header, REG_ITMP1);
+ M_MOV_IMM(&m->clazz->object.header, REG_ITMP1);
}
else {
M_ALD(REG_ITMP1, REG_SP, cd->stackframesize * 8 + 4 + align_off);
}
else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr) * lm->class->index;
+ sizeof(methodptr) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
d = md->returntype.type;
}
/* src/vm/jit/i386/patcher.c - i386 code patching functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* patch interfacetable index */
*((s4 *) (ra + 2 + 2)) = (s4) (OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr) * m->class->index);
+ sizeof(methodptr) * m->clazz->index);
/* patch method offset */
*((s4 *) (ra + 2 + 6 + 2)) =
- (s4) (sizeof(methodptr) * (m - m->class->methods));
+ (s4) (sizeof(methodptr) * (m - m->clazz->methods));
return true;
}
/* call parse pass */
- DOLOG( log_message_class("Parsing ", m->class) );
+ DOLOG( log_message_class("Parsing ", m->clazz) );
if (!parse(jd)) {
return false;
}
syncvar = inline_new_temp_variable(iln->ctx->resultjd, TYPE_ADR);
n_ins = inline_instruction(iln, ICMD_ACONST, o_iptr);
- n_ins->sx.val.c.cls = callee->m->class;
+ n_ins->sx.val.c.cls = callee->m->clazz;
n_ins->dst.varindex = syncvar;
n_ins->flags.bits |= INS_FLAG_CLASS;
}
n_ins = master->inlined_iinstr_cursor++;
if (iln->m->flags & ACC_STATIC) {
n_ins->opc = ICMD_ACONST;
- n_ins->sx.val.c.cls = iln->m->class;
+ n_ins->sx.val.c.cls = iln->m->clazz;
n_ins->flags.bits = INS_FLAG_CLASS;
}
else {
/* get synchronization object */
if (m->flags & ACC_STATIC) {
- syncobj = (java_objectheader *) m->class;
+ syncobj = (java_objectheader *) m->clazz;
}
else {
syncobj = (java_objectheader *) access_local_cell(-framesize + SIZEOF_VOID_P);
#if defined(ENABLE_THREADS)
if (checksync && code_is_synchronized(code)) {
if (m->flags & ACC_STATIC) {
- gen_ACONST(cd, (java_objectheader *) m->class);
+ gen_ACONST(cd, (java_objectheader *) m->clazz);
}
else {
gen_ALOAD(cd, 0);
#if defined(ENABLE_THREADS)
if (checksync && code_is_synchronized(code)) {
if (m->flags & ACC_STATIC) {
- gen_ACONST(cd, (java_objectheader *) m->class);
+ gen_ACONST(cd, (java_objectheader *) m->clazz);
} else {
gen_ALOAD(cd, index2offset(m->maxlocals));
}
#if defined(ENABLE_THREADS)
if (checksync && code_is_synchronized(code)) {
if (m->flags & ACC_STATIC) {
- gen_ACONST(cd, (java_objectheader *) m->class);
+ gen_ACONST(cd, (java_objectheader *) m->clazz);
} else {
gen_ALOAD(cd, index2offset(m->maxlocals));
}
#if defined(ENABLE_THREADS)
if (checksync && code_is_synchronized(code)) {
if (m->flags & ACC_STATIC) {
- gen_ACONST(cd, (java_objectheader *) m->class);
+ gen_ACONST(cd, (java_objectheader *) m->clazz);
} else {
gen_ALOAD(cd, index2offset(m->maxlocals));
}
md = lm->parseddesc;
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * lm->class->index;
+ sizeof(methodptr*) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
gen_INVOKEINTERFACE(cd, s1, s2, md->paramslots, lm);
}
av_ptr(alist, _Jv_JNIEnv *, _Jv_env);
if (m->flags & ACC_STATIC)
- av_ptr(alist, classinfo *, m->class);
+ av_ptr(alist, classinfo *, m->clazz);
for (i = 0, p = sp + md->paramslots; i < md->paramcount; i++) {
switch (md->paramtypes[i].type) {
/* for static methods, pass class pointer */
if (m->flags & ACC_STATIC)
- *pvalues++ = &m->class;
+ *pvalues++ = &m->clazz;
/* pass parameter to native function */
/* src/vm/jit/intrp/disass.c - disassembler wrapper for interpreter
- Copyright (C) 1996-2005, 2006 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
+ Copyright (C) 1996-2005, 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Contact: cacao@cacaojvm.org
-
- Authors: Andreas Krall
- Reinhard Grafl
-
- Changes: Christian Thalinger
- Anton Ertl
- Edwin Steiner
-
*/
void printarg_am (methodinfo * am )
{
if (am) {
- utf_fprint_printable_ascii_classname(vm_out, am->class->name);
+ utf_fprint_printable_ascii_classname(vm_out, am->clazz->name);
fprintf(vm_out, ".");
utf_fprint_printable_ascii(vm_out, am->name);
utf_fprint_printable_ascii(vm_out, am->descriptor);
/* src/vm/jit/intrp/patcher.c - Interpreter code patching functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* patch interfacetable index */
ip[1] = (OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * m->class->index);
+ sizeof(methodptr*) * m->clazz->index);
/* patch methodinfo and method offset */
ip[4] = (ptrint) m;
- ip[2] = (sizeof(methodptr) * (m - m->class->methods));
+ ip[2] = (sizeof(methodptr) * (m - m->clazz->methods));
return true;
}
otherwise we could run into a deadlock with <clinit>'s that
call static methods of it's own class. */
- if ((m->flags & ACC_STATIC) && !(m->class->state & CLASS_INITIALIZED)) {
+ if ((m->flags & ACC_STATIC) && !(m->clazz->state & CLASS_INITIALIZED)) {
#if !defined(NDEBUG)
if (initverbose)
- log_message_class("Initialize class ", m->class);
+ log_message_class("Initialize class ", m->clazz);
#endif
- if (!initialize_class(m->class))
+ if (!initialize_class(m->clazz))
return NULL;
/* check if the method has been compiled during initialization */
dynamically-generated bytecodes. */
# if defined(ENABLE_VERIFIER)
- if (class_issubclass(m->class, class_sun_reflect_MagicAccessorImpl))
+ if (class_issubclass(m->clazz, class_sun_reflect_MagicAccessorImpl))
jd->flags &= ~JITDATA_FLAG_VERIFY;
# endif
#endif
/* src/vm/jit/m68k/codegen.c
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* call lock_monitor_enter function */
if (checksync && code_is_synchronized(code)) {
if (m->flags & ACC_STATIC) {
- M_AMOV_IMM((&m->class->object.header), REG_ATMP1);
+ M_AMOV_IMM((&m->clazz->object.header), REG_ATMP1);
} else {
/* for non-static case the first arg is the object */
M_ALD(REG_ATMP1, REG_SP, cd->stackframesize + 4);
s1 = 0;
s2 = 0;
} else {
- s1 = OFFSET(vftbl_t, interfacetable[0]) - sizeof(methodptr*) * lm->class->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s1 = OFFSET(vftbl_t, interfacetable[0]) - sizeof(methodptr*) * lm->clazz->index;
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* load object pointer (==argument 0) */
M_ALD(REG_ATMP1, REG_SP, 0);
/* src/vm/jit/m68k/patcher.c - m68k patcher functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
assert( *((uint32_t*)ra) == 0x246f0000 );
/* patch interfacetable index (first #0) */
- disp = OFFSET(vftbl_t, interfacetable[0]) - sizeof(methodptr*) * m->class->index;
+ disp = OFFSET(vftbl_t, interfacetable[0]) - sizeof(methodptr*) * m->clazz->index;
/* XXX this disp is negative, check!
* assert( (disp & 0x0000ffff) == disp);*/
*((uint16_t *) (ra + 5 * 2)) = disp;
/* patch method offset (second #0) */
- disp = sizeof(methodptr) * (m - m->class->methods);
+ disp = sizeof(methodptr) * (m - m->clazz->methods);
assert( (disp & 0x0000ffff) == disp);
*((uint16_t *) (ra + 7 * 2)) = disp;
/* src/vm/jit/mips/codegen.c - machine code generator for MIPS
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* get correct lock object */
if (m->flags & ACC_STATIC) {
- disp = dseg_add_address(cd, &m->class->object.header);
+ disp = dseg_add_address(cd, &m->clazz->object.header);
M_ALD(REG_A0, REG_PV, disp);
disp = dseg_add_functionptr(cd, LOCK_monitor_enter);
M_ALD(REG_ITMP3, REG_PV, disp);
}
else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * lm->class->index;
+ sizeof(methodptr*) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* implicit null-pointer check */
/* src/vm/jit/mips/patcher.c - MIPS code patching functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
*((s4 *) (ra + 1 * 4)) |=
(s4) ((OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * m->class->index) & 0x0000ffff);
+ sizeof(methodptr*) * m->clazz->index) & 0x0000ffff);
/* patch method offset */
*((s4 *) (ra + 2 * 4)) |=
- (s4) ((sizeof(methodptr) * (m - m->class->methods)) & 0x0000ffff);
+ (s4) ((sizeof(methodptr) * (m - m->clazz->methods)) & 0x0000ffff);
/* synchronize instruction cache */
/* src/vm/jit/optimizing/dominators.c - dominators and dominance frontier
- Copyright (C) 2005, 2006 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
+ Copyright (C) 2005, 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
- Contact: cacao@complang.tuwien.ac.at
-
- Authors: Christian Ullrich
+*/
-*/
#include "mm/memory.h"
#include "toolbox/bitvector.h"
int *itnr;
bool found;
- fprintf(stderr, "%s/%s: \n", jd->m->class->name->text, jd->m->name->text);
+ fprintf(stderr, "%s/%s: \n", jd->m->clazz->name->text, jd->m->name->text);
gd = graph_init(jd->basicblockcount);
for (bptr = jd->basicblocks; bptr; bptr = bptr->next) {
/* src/vm/jit/lsra.inc - lifetime anaylsis
- Copyright (C) 2005, 2006 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
+ Copyright (C) 2005, 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
- Contact: cacao@complang.tuwien.ac.at
-
- Authors: Christian Ullrich
-
- $Id: lifetimes.c $
-
*/
+
#include <stdio.h>
#include <stdlib.h>
atime++;
diff += 1000000;
}
- printf("%8li %s.%s.%s\n",diff, m->class->name->text, m->name->text,
+ printf("%8li %s.%s.%s\n",diff, m->clazz->name->text, m->name->text,
m->descriptor->text);
}
#endif
/* src/vm/jit/optimizing/lsra.inc - linear scan register allocator
- Copyright (C) 2005, 2006 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
+ Copyright (C) 2005, 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
- Contact: cacao@complang.tuwien.ac.at
-
- Authors: Christian Ullrich
+*/
- $Id: lsra.c $
-*/
#include "config.h"
#include <stdio.h>
#if defined(LSRA_DEBUG_CHECK) || defined(LSRA_DEBUG_VERBOSE)
#if defined(LSRA_DEBUG_VERBOSE)
if (compileverbose) {
- printf("%s %s ",m->class->name->text, m->name->text);
+ printf("%s %s ",m->clazz->name->text, m->name->text);
if (code_is_leafmethod(jd->code))
printf("**Leafmethod**");
printf("\n");
}
#endif
- if (strcmp(m->class->name->text,"java/lang/String")==0)
+ if (strcmp(m->clazz->name->text,"java/lang/String")==0)
if (strcmp(m->name->text,"toLowerCase")==0)
#if defined(LSRA_DEBUG_VERBOSE)
if (compileverbose)
if ((in[in_d] != out[out_d]) ||
(VAR(in[in_d])->flags != VAR(out[out_d])->flags)) {
printf("Method: %s %s\n",
- m->class->name->text, m->name->text);
+ m->clazz->name->text, m->name->text);
printf("Error: Stack Varnum Mismatch BBin %3i BBout %3i Stackdepth %3i\n", i, pred, in_d);
if (compileverbose)
printf("Error: Stack Varnum Mismatch BBin %3i BBout %3i Stackdepth %3i\n", i, pred, in_d);
#if defined(SSA_DEBUG_CHECK) || defined(SSA_DEBUG_VERBOSE)
# if defined(SSA_DEBUG_VERBOSE)
if (compileverbose) {
- printf("%s %s ",m->class->name->text, m->name->text);
+ printf("%s %s ",m->clazz->name->text, m->name->text);
if (code_is_leafmethod(jd->code))
printf("**Leafmethod**");
printf("\n");
}
# endif
- if (strcmp(m->class->name->text,"spec/benchmarks/_213_javac/Parser")==0)
+ if (strcmp(m->clazz->name->text,"spec/benchmarks/_213_javac/Parser")==0)
if (strcmp(m->name->text,"parseTerm")==0)
# if defined(SSA_DEBUG_VERBOSE)
if (compileverbose)
#ifdef SSA_DEBUG_VERBOSE
if (compileverbose)
printf("dce: %s %s:at BB %3i II %3i NOP-<%s\n",
- m->class->name->text, m->name->text,
+ m->clazz->name->text, m->name->text,
lt->def->b_index, lt->def->iindex,
icmd_table[iptr->opc].name);
#endif
#if 1
static inline bool test_do_verbose(jitdata *jd) {
return strcmp(jd->m->name->text, "close") == 0 &&
- strcmp(jd->m->class->name->text, "antlr/PreservingFileWriter") == 0;
+ strcmp(jd->m->clazz->name->text, "antlr/PreservingFileWriter") == 0;
}
static bool do_verbose = 0;
#define WHEN do_verbose
#if defined(SSA_DEBUG_CHECK) || defined(SSA_DEBUG_VERBOSE)
# if defined(SSA_DEBUG_VERBOSE)
if (compileverbose) {
- printf("%s %s ",jd->m->class->name->text, jd->m->name->text);
+ printf("%s %s ",jd->m->clazz->name->text, jd->m->name->text);
if (code_is_leafmethod(jd->code))
printf("**Leafmethod**");
printf("\n");
}
# endif
- if (strcmp(jd->m->class->name->text,"fp")==0)
+ if (strcmp(jd->m->clazz->name->text,"fp")==0)
if (strcmp(jd->m->name->text,"testfloat")==0)
# if defined(SSA_DEBUG_VERBOSE)
if (compileverbose)
/* src/vm/jit/parse.c - parser for JavaVM to intermediate code translation
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
pushconstantitem:
#if defined(ENABLE_VERIFIER)
- if (i >= m->class->cpcount) {
+ if (i >= m->clazz->cpcount) {
exceptions_throw_verifyerror(m,
"Attempt to access constant outside range");
return false;
}
#endif
- switch (m->class->cptags[i]) {
+ switch (m->clazz->cptags[i]) {
case CONSTANT_Integer:
- OP_LOADCONST_I(((constant_integer *) (m->class->cpinfos[i]))->value);
+ OP_LOADCONST_I(((constant_integer *) (m->clazz->cpinfos[i]))->value);
break;
case CONSTANT_Long:
- OP_LOADCONST_L(((constant_long *) (m->class->cpinfos[i]))->value);
+ OP_LOADCONST_L(((constant_long *) (m->clazz->cpinfos[i]))->value);
break;
case CONSTANT_Float:
- OP_LOADCONST_F(((constant_float *) (m->class->cpinfos[i]))->value);
+ OP_LOADCONST_F(((constant_float *) (m->clazz->cpinfos[i]))->value);
break;
case CONSTANT_Double:
- OP_LOADCONST_D(((constant_double *) (m->class->cpinfos[i]))->value);
+ OP_LOADCONST_D(((constant_double *) (m->clazz->cpinfos[i]))->value);
break;
case CONSTANT_String:
- OP_LOADCONST_STRING(literalstring_new((utf *) (m->class->cpinfos[i])));
+ OP_LOADCONST_STRING(literalstring_new((utf *) (m->clazz->cpinfos[i])));
break;
case CONSTANT_Class:
- cr = (constant_classref *) (m->class->cpinfos[i]);
+ cr = (constant_classref *) (m->clazz->cpinfos[i]);
if (!resolve_classref(m, cr, resolveLazy, true, true, &c))
return false;
case BC_anewarray:
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- compr = (constant_classref *) class_getconstant(m->class, i, CONSTANT_Class);
+ compr = (constant_classref *) class_getconstant(m->clazz, i, CONSTANT_Class);
if (compr == NULL)
return false;
i = SUCK_BE_U2(m->jcode + bcindex + 1);
j = SUCK_BE_U1(m->jcode + bcindex + 3);
- cr = (constant_classref *) class_getconstant(m->class, i, CONSTANT_Class);
+ cr = (constant_classref *) class_getconstant(m->clazz, i, CONSTANT_Class);
if (cr == NULL)
return false;
case BC_getfield:
case BC_putfield:
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- fmi = class_getconstant(m->class, i, CONSTANT_Fieldref);
+ fmi = class_getconstant(m->clazz, i, CONSTANT_Fieldref);
if (fmi == NULL)
return false;
return false;
if (result != resolveSucceeded) {
- uf = resolve_create_unresolved_field(m->class, m, iptr);
+ uf = resolve_create_unresolved_field(m->clazz, m, iptr);
if (uf == NULL)
return false;
OP_PREPARE_ZEROFLAGS(opcode);
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- fmi = class_getconstant(m->class, i, CONSTANT_Methodref);
+ fmi = class_getconstant(m->clazz, i, CONSTANT_Methodref);
if (fmi == NULL)
return false;
OP_PREPARE_FLAGS(opcode, INS_FLAG_CHECK);
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- fmi = class_getconstant(m->class, i, CONSTANT_Methodref);
+ fmi = class_getconstant(m->clazz, i, CONSTANT_Methodref);
goto invoke_nonstatic_method;
OP_PREPARE_ZEROFLAGS(opcode);
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- fmi = class_getconstant(m->class, i, CONSTANT_InterfaceMethodref);
+ fmi = class_getconstant(m->clazz, i, CONSTANT_InterfaceMethodref);
goto invoke_nonstatic_method;
OP_PREPARE_ZEROFLAGS(opcode);
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- fmi = class_getconstant(m->class, i, CONSTANT_Methodref);
+ fmi = class_getconstant(m->clazz, i, CONSTANT_Methodref);
invoke_nonstatic_method:
if (fmi == NULL)
}
}
else {
- um = resolve_create_unresolved_method(m->class, m, fmi,
+ um = resolve_create_unresolved_method(m->clazz, m, fmi,
(opcode == BC_invokestatic),
(opcode == BC_invokespecial));
case BC_new:
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- cr = class_getconstant(m->class, i, CONSTANT_Class);
+ cr = class_getconstant(m->clazz, i, CONSTANT_Class);
if (cr == NULL)
return false;
case BC_checkcast:
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- cr = class_getconstant(m->class, i, CONSTANT_Class);
+ cr = class_getconstant(m->clazz, i, CONSTANT_Class);
if (cr == NULL)
return false;
case BC_instanceof:
i = SUCK_BE_U2(m->jcode + bcindex + 1);
- cr = class_getconstant(m->class, i, CONSTANT_Class);
+ cr = class_getconstant(m->clazz, i, CONSTANT_Class);
if (cr == NULL)
return false;
/* get or test the lock object */
if (m->flags & ACC_STATIC) {
- disp = dseg_add_address(cd, &m->class->object.header);
+ disp = dseg_add_address(cd, &m->clazz->object.header);
M_ALD(REG_A0, REG_PV, disp);
}
else {
}
else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * lm->class->index;
+ sizeof(methodptr*) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* implicit null-pointer check */
/* src/vm/jit/powerpc/patcher.c - PowerPC code patching functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* patch interfacetable index */
disp = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * m->class->index;
+ sizeof(methodptr*) * m->clazz->index;
/* XXX TWISTI: check displacement */
/* patch method offset */
- disp = sizeof(methodptr) * (m - m->class->methods);
+ disp = sizeof(methodptr) * (m - m->clazz->methods);
/* XXX TWISTI: check displacement */
/* src/vm/jit/powerpc64/codegen.c - machine code generator for 64-bit PowerPC
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* get or test the lock object */
if (m->flags & ACC_STATIC) {
- p = dseg_add_address(cd, &m->class->object.header);
+ p = dseg_add_address(cd, &m->clazz->object.header);
M_ALD(REG_A0, REG_PV, p);
}
else {
} else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * lm->class->index;
+ sizeof(methodptr*) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* implicit null-pointer check */
/* src/vm/jit/powerpc64/patcher.c - PowerPC64 code patching functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* patch interfacetable index */
disp = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * m->class->index;
+ sizeof(methodptr*) * m->clazz->index;
/* XXX TWISTI: check displacement */
/* patch method offset */
- disp = sizeof(methodptr) * (m - m->class->methods);
+ disp = sizeof(methodptr) * (m - m->clazz->methods);
/* XXX TWISTI: check displacement */
case F_NAME:
return get_string(arg->get.result, m->name->text);
case F_KLASS:
- return get_obj(arg->get.result, classinfo_func, state->root, m->class);
+ return get_obj(arg->get.result, classinfo_func, state->root, m->clazz);
case F_PARAM_TYPES:
return get_iter(arg->get.result, param_types_iter_func, state->root, m);
case F_PARAMS:
/* decide which monitor enter function to call */
if (m->flags & ACC_STATIC) {
- disp = dseg_add_address(cd, &m->class->object.header);
+ disp = dseg_add_address(cd, &m->clazz->object.header);
M_ALD_DSEG(REG_A0, disp);
}
else {
}
else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * lm->class->index;
+ sizeof(methodptr*) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* Implicit null-pointer check */
m = (*(codeinfo **)(pv + CodeinfoPointer))->m;
log_println(
"Java method: class %s, method %s, descriptor %s.",
- m->class->name->text, m->name->text, m->descriptor->text
+ m->clazz->name->text, m->name->text, m->descriptor->text
);
}
/* src/vm/jit/s390/patcher.c - s390 code patching functions
- Copyright (C) 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
+ Copyright (C) 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* get interfacetable index */
idx = (s4) (OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr) * m->class->index);
+ sizeof(methodptr) * m->clazz->index);
ASSERT_VALID_IMM(idx);
/* get method offset */
off =
- (s4) (sizeof(methodptr) * (m - m->class->methods));
+ (s4) (sizeof(methodptr) * (m - m->clazz->methods));
ASSERT_VALID_DISP(off);
/* compose full name of method */
len =
- utf_bytes(m->class->name) +
+ utf_bytes(m->clazz->name) +
1 +
utf_bytes(m->name) +
utf_bytes(m->descriptor) +
method_name = DMNEW(char, len);
- utf_cat_classname(method_name, m->class->name);
+ utf_cat_classname(method_name, m->clazz->name);
strcat(method_name, ".");
utf_cat(method_name, m->name);
utf_cat(method_name, m->descriptor);
/* src/vm/jit/sparc64/codegen.c - machine code generator for Sparc
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
/* get correct lock object */
if (m->flags & ACC_STATIC) {
- disp = dseg_add_address(cd, &m->class->object.header);
+ disp = dseg_add_address(cd, &m->clazz->object.header);
M_ALD(REG_OUT0, REG_PV, disp);
disp = dseg_add_functionptr(cd, LOCK_monitor_enter);
M_ALD(REG_ITMP3, REG_PV, disp);
}
else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * lm->class->index;
+ sizeof(methodptr*) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* implicit null-pointer check */
/* src/vm/jit/mips/patcher.c - SPARC code patching functions
- Copyright (C) 1996-2005, 2006 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
+ Copyright (C) 1996-2005, 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
*((s4 *) (ra + 1 * 4)) |=
(s4) ((OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * m->class->index) & 0x00001fff);
+ sizeof(methodptr*) * m->clazz->index) & 0x00001fff);
/* patch method offset */
*((s4 *) (ra + 2 * 4)) |=
- (s4) ((sizeof(methodptr) * (m - m->class->methods)) & 0x00001fff);
+ (s4) ((sizeof(methodptr) * (m - m->clazz->methods)) & 0x00001fff);
/* synchronize instruction cache */
md_icacheflush(ra + 1 * 4, 2 * 4);
}
-else {
+ else {
/* patch interfacetable index */
*((s4 *) (sp + 3 * 8 + 4)) |=
(s4) ((OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr*) * m->class->index) & 0x00001fff);
+ sizeof(methodptr*) * m->clazz->index) & 0x00001fff);
/* patch method offset */
*((s4 *) (ra + 2 * 4)) |=
- (s4) ((sizeof(methodptr) * (m - m->class->methods)) & 0x00001fff);
+ (s4) ((sizeof(methodptr) * (m - m->clazz->methods)) & 0x00001fff);
/* synchronize instruction cache */
/* For GNU Classpath we also need to skip
VMThrowable.fillInStackTrace(). */
- if ((m->class == class_java_lang_VMThrowable) &&
+ if ((m->clazz == class_java_lang_VMThrowable) &&
(m->name == utf_fillInStackTrace))
continue;
#endif
if (skip_init == true) {
if ((m->name == utf_init) &&
- (class_issubclass(m->class, class_java_lang_Throwable))) {
+ (class_issubclass(m->clazz, class_java_lang_Throwable))) {
continue;
}
else {
stacktrace_stackframeinfo_next(&tmpsfi)) {
m = tmpsfi.code->m;
- c = m->class;
+ c = m->clazz;
/* Skip builtin methods. */
stacktrace_stackframeinfo_next(&tmpsfi)) {
m = tmpsfi.code->m;
- cl = class_get_classloader(m->class);
+ cl = class_get_classloader(m->clazz);
if (cl != NULL)
return cl;
/* Store the class in the array. */
- data[i] = (java_object_t *) m->class;
+ data[i] = (java_object_t *) m->clazz;
i++;
}
m = tmpsfi.code->m;
- if (m->class == class_java_security_PrivilegedAction) {
+ if (m->clazz == class_java_security_PrivilegedAction) {
CYCLES_STATS_END(stacktrace_getCurrentClass);
return NULL;
}
- if (m->class != NULL) {
+ if (m->clazz != NULL) {
CYCLES_STATS_END(stacktrace_getCurrentClass);
- return m->class;
+ return m->clazz;
}
}
/* NOTE: We use a LLNI-macro here, because a classinfo is not
a handle. */
- LLNI_array_direct(classes, i) = (java_object_t *) m->class;
+ LLNI_array_direct(classes, i) = (java_object_t *) m->clazz;
/* Store the name in the array. */
if (m->flags & ACC_METHOD_BUILTIN)
printf("NULL");
else
- utf_display_printable_ascii_classname(m->class->name);
+ utf_display_printable_ascii_classname(m->clazz->name);
printf(".");
utf_display_printable_ascii(m->name);
}
else {
printf("(");
- utf_display_printable_ascii(m->class->sourcefile);
+ utf_display_printable_ascii(m->clazz->sourcefile);
printf(":%d)\n", linenumber);
}
}
(exact GC) we should check if the address is on the GC
heap. */
- if ((m->class != NULL) &&
- (m->class->name == utf_new_char("sun/misc/Unsafe")))
+ if ((m->clazz != NULL) &&
+ (m->clazz->name == utf_new_char("sun/misc/Unsafe")))
break;
/* Cast to java.lang.Object. */
strlen("-2147483647-") + /* INT_MAX should be sufficient */
TRACEJAVACALLINDENT +
strlen("called: ") +
- ((m->class == NULL) ? strlen("NULL") : utf_bytes(m->class->name)) +
+ ((m->clazz == NULL) ? strlen("NULL") : utf_bytes(m->clazz->name)) +
strlen(".") +
utf_bytes(m->name) +
utf_bytes(m->descriptor);
strcpy(logtext + pos, "called: ");
- if (m->class != NULL)
- utf_cat_classname(logtext, m->class->name);
+ if (m->clazz != NULL)
+ utf_cat_classname(logtext, m->clazz->name);
else
strcat(logtext, "NULL");
strcat(logtext, ".");
strlen("-2147483647-") + /* INT_MAX should be sufficient */
TRACEJAVACALLINDENT +
strlen("finished: ") +
- ((m->class == NULL) ? strlen("NULL") : utf_bytes(m->class->name)) +
+ ((m->clazz == NULL) ? strlen("NULL") : utf_bytes(m->clazz->name)) +
strlen(".") +
utf_bytes(m->name) +
utf_bytes(m->descriptor) +
logtext[pos++] = '\t';
strcpy(logtext + pos, "finished: ");
- if (m->class != NULL)
- utf_cat_classname(logtext, m->class->name);
+ if (m->clazz != NULL)
+ utf_cat_classname(logtext, m->clazz->name);
else
strcat(logtext, "NULL");
strcat(logtext, ".");
if (m) {
logtextlen +=
- utf_bytes(m->class->name) +
+ utf_bytes(m->clazz->name) +
strlen(".") +
utf_bytes(m->name) +
utf_bytes(m->descriptor) +
logtextlen += strlen(")(0x12345678) at position 0x12345678 (");
#endif
- if (m->class->sourcefile == NULL)
+ if (m->clazz->sourcefile == NULL)
logtextlen += strlen("<NO CLASSFILE INFORMATION>");
else
- logtextlen += utf_bytes(m->class->sourcefile);
+ logtextlen += utf_bytes(m->clazz->sourcefile);
logtextlen += strlen(":65536)");
strcat(logtext, " thrown in ");
if (m) {
- utf_cat_classname(logtext, m->class->name);
+ utf_cat_classname(logtext, m->clazz->name);
strcat(logtext, ".");
utf_cat(logtext, m->name);
utf_cat(logtext, m->descriptor);
(ptrint) code->entrypoint, (ptrint) pos);
#endif
- if (m->class->sourcefile == NULL)
+ if (m->clazz->sourcefile == NULL)
strcat(logtext, "<NO CLASSFILE INFORMATION>");
else
- utf_cat(logtext, m->class->sourcefile);
+ utf_cat(logtext, m->clazz->sourcefile);
sprintf(logtext + strlen(logtext), ":%d)", 0);
}
METHOD,
/* XXX make this more efficient, use class_java_lang_Throwable
* directly */
- class_get_classref(METHOD->class,utf_java_lang_Throwable),
+ class_get_classref(METHOD->clazz,utf_java_lang_Throwable),
&OP1->typeinfo);
IPTR->flags.bits |= INS_FLAG_UNRESOLVED;
}
return_tail:
TYPECHECK_COUNT(stat_ins_primitive_return);
- if (STATE->initmethod && METHOD->class != class_java_lang_Object) {
+ if (STATE->initmethod && METHOD->clazz != class_java_lang_Object) {
/* Check if the 'this' instance has been initialized. */
LOG("Checking <init> marker");
#if defined(TYPECHECK_VARIABLESBASED)
/* src/vm/jit/verify/typecheck-common.c - shared verifier code
- Copyright (C) 1996-2005, 2006 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
+ Copyright (C) 1996-2005, 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Contact: cacao@cacaojvm.org
-
- Authors: Edwin Steiner
-
- Changes:
-
*/
if (state->initmethod && newthis)
TYPEINFO_INIT_NEWOBJECT(v->typeinfo, NULL);
else
- typeinfo_init_classinfo(&(v->typeinfo), state->m->class);
+ typeinfo_init_classinfo(&(v->typeinfo), state->m->clazz);
}
skip = 1;
/* src/vm/jit/verify/typecheck-fields.inc - type checking for field ICMDs
- Copyright (C) 1996-2005, 2006 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
+ Copyright (C) 1996-2005, 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Contact: cacao@cacaojvm.org
-
- Authors: Edwin Steiner
-
- Changes:
-
*/
if (result != resolveSucceeded) {
if (!uf) {
- uf = resolve_create_unresolved_field(state->m->class,
+ uf = resolve_create_unresolved_field(state->m->clazz,
state->m, state->iptr);
if (!uf)
EXCEPTION;
/* record the subtype constraints for this field access */
if (!resolve_constrain_unresolved_field(
- uf, state->m->class, state->m,
+ uf, state->m->clazz, state->m,
instanceti, valueti))
EXCEPTION; /* XXX maybe wrap exception? */
/* src/vm/jit/verify/typecheck-invoke.inc - type checking for invocations
- Copyright (C) 1996-2005, 2006 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
+ Copyright (C) 1996-2005, 2006, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Contact: cacao@cacaojvm.org
-
- Authors: Edwin Steiner
-
-
*/
if (IS_FMIREF_RESOLVED(mref)) {
mi = mref->p.method;
- mclassname = mi->class->name;
+ mclassname = mi->clazz->name;
}
else {
mi = NULL;
if (ins)
initclass = ins[-1].sx.val.c;
else
- initclass.cls = state->m->class;
+ initclass.cls = state->m->clazz;
LOGSTR("\t\tclass: "); LOGNAME(initclass); LOGNL;
}
}
/* the current class is linked, so must be its superclass. thus we can be */
/* sure that resolving will be trivial. */
if (mi) {
- cls = mi->class;
+ cls = mi->clazz;
}
else {
if (!resolve_classref(state->m,mref->p.classref,resolveLazy,false,true,&cls))
/* if lazy resolving did not succeed, it's not one of the allowed classes */
/* otherwise we check it directly */
- if (cls == NULL || (cls != state->m->class && cls != state->m->class->super)) {
+ if (cls == NULL || (cls != state->m->clazz && cls != state->m->clazz->super)) {
TYPECHECK_VERIFYERROR_bool("<init> calling <init> of the wrong class");
}
/* impose loading constraints */
if (result == resolveSucceeded) {
- /* XXX state->m->class may have to be wrong when inlining */
- if (!resolve_method_loading_constraints(state->m->class, mi))
+ /* XXX state->m->clazz may have to be wrong when inlining */
+ if (!resolve_method_loading_constraints(state->m->clazz, mi))
return false;
}
/* resolution must be deferred */
if (!um) {
- um = resolve_create_unresolved_method(state->m->class, state->m,
+ um = resolve_create_unresolved_method(state->m->clazz, state->m,
mref,
invokestatic,
invokespecial);
GENERATED /* may use stack[1] ... stack[1] */
GENERATED
GENERATED
-# line 349 "src/vm/jit/verify/icmds.c"
+# line 347 "src/vm/jit/verify/icmds.c"
GENERATED if (IPTR->flags.bits & INS_FLAG_CLASS) {
GENERATED /* a java.lang.Class reference */
GENERATED TYPEINFO_INIT_JAVA_LANG_CLASS(DST->typeinfo,IPTR->sx.val.c);
GENERATED /* may use stack[1] ... stack[1] */
GENERATED
GENERATED
-# line 93 "src/vm/jit/verify/icmds.c"
+# line 91 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_aload);
GENERATED
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 260 "src/vm/jit/verify/icmds.c"
+# line 258 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_INT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 270 "src/vm/jit/verify/icmds.c"
+# line 268 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_LONG))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 255 "src/vm/jit/verify/icmds.c"
+# line 253 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_FLOAT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 250 "src/vm/jit/verify/icmds.c"
+# line 248 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_DOUBLE))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 115 "src/vm/jit/verify/icmds.c"
+# line 113 "src/vm/jit/verify/icmds.c"
GENERATED
# if !defined(TYPECHECK_TYPEINFERER)
GENERATED if (!TYPEINFO_MAYBE_ARRAY_OF_REFS(OP1->typeinfo))
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 239 "src/vm/jit/verify/icmds.c"
+# line 237 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BOOLEAN)
GENERATED && !TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BYTE))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 245 "src/vm/jit/verify/icmds.c"
+# line 243 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_CHAR))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 265 "src/vm/jit/verify/icmds.c"
+# line 263 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_SHORT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 108 "src/vm/jit/verify/icmds.c"
+# line 106 "src/vm/jit/verify/icmds.c"
GENERATED TYPEINFO_COPY(OP1->typeinfo, DST->typeinfo);
GENERATED
# line 479 "src/vm/jit/verify/typecheck-stackbased-gen.inc"
GENERATED /* may use stack[-2] ... stack[0] */
GENERATED
GENERATED
-# line 296 "src/vm/jit/verify/icmds.c"
+# line 294 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_INT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-3] ... stack[0] */
GENERATED
GENERATED
-# line 306 "src/vm/jit/verify/icmds.c"
+# line 304 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_LONG))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-2] ... stack[0] */
GENERATED
GENERATED
-# line 291 "src/vm/jit/verify/icmds.c"
+# line 289 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_FLOAT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-3] ... stack[0] */
GENERATED
GENERATED
-# line 286 "src/vm/jit/verify/icmds.c"
+# line 284 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_DOUBLE))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-2] ... stack[0] */
GENERATED
GENERATED
-# line 311 "src/vm/jit/verify/icmds.c"
+# line 309 "src/vm/jit/verify/icmds.c"
GENERATED /* we just check the basic input types and that the */
GENERATED /* destination is an array of references. Assignability to */
GENERATED /* the actual array must be checked at runtime, each time the */
GENERATED /* may use stack[-2] ... stack[0] */
GENERATED
GENERATED
-# line 275 "src/vm/jit/verify/icmds.c"
+# line 273 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BOOLEAN)
GENERATED && !TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BYTE))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED /* may use stack[-2] ... stack[0] */
GENERATED
GENERATED
-# line 281 "src/vm/jit/verify/icmds.c"
+# line 279 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_CHAR))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[-2] ... stack[0] */
GENERATED
GENERATED
-# line 301 "src/vm/jit/verify/icmds.c"
+# line 299 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_SHORT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 704 "src/vm/jit/verify/icmds.c"
+# line 676 "src/vm/jit/verify/icmds.c"
GENERATED /* we pop 1 */
GENERATED CHECK_CAT1(stack[0]);
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 709 "src/vm/jit/verify/icmds.c"
+# line 681 "src/vm/jit/verify/icmds.c"
GENERATED /* we pop either 11 or 2 */
GENERATED if (IS_CAT1(stack[0]))
GENERATED CHECK_CAT1(stack[-1]);
GENERATED /* may use stack[0] ... stack[1] */
GENERATED
GENERATED
-# line 724 "src/vm/jit/verify/icmds.c"
+# line 696 "src/vm/jit/verify/icmds.c"
GENERATED /* we dup 1 */
GENERATED CHECK_CAT1(stack[0]);
GENERATED
GENERATED /* may use stack[-1] ... stack[1] */
GENERATED
GENERATED
-# line 731 "src/vm/jit/verify/icmds.c"
+# line 703 "src/vm/jit/verify/icmds.c"
GENERATED /* we dup 1 */
GENERATED CHECK_CAT1(stack[0]);
GENERATED /* we skip 1 */
GENERATED /* may use stack[-2] ... stack[1] */
GENERATED
GENERATED
-# line 742 "src/vm/jit/verify/icmds.c"
+# line 714 "src/vm/jit/verify/icmds.c"
GENERATED /* we dup 1 */
GENERATED CHECK_CAT1(stack[0]);
GENERATED /* we skip either 11 or 2 */
GENERATED /* may use stack[-1] ... stack[2] */
GENERATED
GENERATED
-# line 755 "src/vm/jit/verify/icmds.c"
+# line 727 "src/vm/jit/verify/icmds.c"
GENERATED /* we dup either 11 or 2 */
GENERATED if (IS_CAT1(stack[0]))
GENERATED CHECK_CAT1(stack[-1]);
GENERATED /* may use stack[-2] ... stack[2] */
GENERATED
GENERATED
-# line 764 "src/vm/jit/verify/icmds.c"
+# line 736 "src/vm/jit/verify/icmds.c"
GENERATED /* we dup either 11 or 2 */
GENERATED if (IS_CAT1(stack[0]))
GENERATED CHECK_CAT1(stack[-1]);
GENERATED /* may use stack[-3] ... stack[2] */
GENERATED
GENERATED
-# line 778 "src/vm/jit/verify/icmds.c"
+# line 750 "src/vm/jit/verify/icmds.c"
GENERATED /* we dup either 11 or 2 */
GENERATED if (IS_CAT1(stack[0]))
GENERATED CHECK_CAT1(stack[-1]);
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 715 "src/vm/jit/verify/icmds.c"
+# line 687 "src/vm/jit/verify/icmds.c"
GENERATED CHECK_CAT1(stack[0]);
GENERATED CHECK_CAT1(stack[-1]);
GENERATED
GENERATED /* may use stack[1] ... stack[1] */
GENERATED
GENERATED
-# line 393 "src/vm/jit/verify/icmds.c"
+# line 391 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
GENERATED /* may use stack[1] ... stack[2] */
GENERATED
GENERATED
-# line 399 "src/vm/jit/verify/icmds.c"
+# line 397 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
GENERATED /* may use stack[1] ... stack[2] */
GENERATED
GENERATED
-# line 405 "src/vm/jit/verify/icmds.c"
+# line 403 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
GENERATED superblockend = true;
GENERATED
GENERATED
-# line 390 "src/vm/jit/verify/icmds.c"
+# line 388 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 586 "src/vm/jit/verify/icmds.c"
+# line 558 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED tbptr = IPTR->sx.s23.s3.jsrtarget.block;
GENERATED
GENERATED superblockend = true;
GENERATED
GENERATED
-# line 607 "src/vm/jit/verify/icmds.c"
+# line 579 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED CHECK_LOCAL_TYPE(IPTR->s1.varindex, TYPE_RET);
GENERATED if (!TYPEINFO_IS_PRIMITIVE(STATE->locals[IPTR->s1.varindex].typeinfo))
GENERATED /* may use stack[1] ... stack[1] */
GENERATED
GENERATED
-# line 457 "src/vm/jit/verify/icmds.c"
+# line 429 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_switch);
GENERATED
GENERATED /* may use stack[1] ... stack[1] */
GENERATED
GENERATED
-# line 473 "src/vm/jit/verify/icmds.c"
+# line 445 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_switch);
GENERATED
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 539 "src/vm/jit/verify/icmds.c"
+# line 511 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_INT)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 544 "src/vm/jit/verify/icmds.c"
+# line 516 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_LNG)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 549 "src/vm/jit/verify/icmds.c"
+# line 521 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_FLT)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
GENERATED /* may use stack[-1] ... stack[0] */
GENERATED
GENERATED
-# line 554 "src/vm/jit/verify/icmds.c"
+# line 526 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_DBL)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 514 "src/vm/jit/verify/icmds.c"
+# line 486 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_areturn);
GENERATED if (!TYPEINFO_IS_REFERENCE(OP1->typeinfo))
GENERATED VERIFY_ERROR("illegal instruction: ARETURN on non-reference");
GENERATED superblockend = true;
GENERATED
GENERATED
-# line 559 "src/vm/jit/verify/icmds.c"
+# line 531 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_VOID)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
GENERATED return_tail:
GENERATED TYPECHECK_COUNT(stat_ins_primitive_return);
GENERATED
- GENERATED if (STATE->initmethod && METHOD->class != class_java_lang_Object) {
+ GENERATED if (STATE->initmethod && METHOD->clazz != class_java_lang_Object) {
GENERATED /* Check if the 'this' instance has been initialized. */
GENERATED LOG("Checking <init> marker");
GENERATED
GENERATED /* variable number of outslots! */
GENERATED
GENERATED
-# line 158 "src/vm/jit/verify/icmds.c"
+# line 156 "src/vm/jit/verify/icmds.c"
GENERATED stack = typecheck_stackbased_verify_fieldaccess(STATE, NULL, NULL, stack);
GENERATED if (stack == NULL)
GENERATED EXCEPTION;
GENERATED /* variable number of inslots! */
GENERATED
GENERATED
-# line 140 "src/vm/jit/verify/icmds.c"
+# line 138 "src/vm/jit/verify/icmds.c"
GENERATED CHECK_STACK_DEPTH(1);
GENERATED if (!IS_CAT1(stack[0])) {
GENERATED /* (stack depth >= 2 is guaranteed) */
GENERATED /* variable number of outslots! */
GENERATED
GENERATED
-# line 151 "src/vm/jit/verify/icmds.c"
+# line 149 "src/vm/jit/verify/icmds.c"
GENERATED CHECK_STACK_TYPE(stack[0], TYPE_ADR);
GENERATED stack = typecheck_stackbased_verify_fieldaccess(STATE, stack, NULL, stack-1);
GENERATED if (stack == NULL)
GENERATED /* variable number of inslots! */
GENERATED
GENERATED
-# line 128 "src/vm/jit/verify/icmds.c"
+# line 126 "src/vm/jit/verify/icmds.c"
GENERATED CHECK_STACK_DEPTH(2);
GENERATED if (!IS_CAT1(stack[0])) {
GENERATED CHECK_STACK_DEPTH(3);
GENERATED /* variable number of outslots! */
GENERATED
GENERATED
-# line 630 "src/vm/jit/verify/icmds.c"
+# line 602 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_invoke);
GENERATED
GENERATED INSTRUCTION_GET_METHODDESC(IPTR, md);
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 233 "src/vm/jit/verify/icmds.c"
+# line 231 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_ARRAY(OP1->typeinfo)
GENERATED && OP1->typeinfo.typeclass.cls != pseudo_class_Arraystub)
GENERATED VERIFY_ERROR("illegal instruction: ARRAYLENGTH on non-array");
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 493 "src/vm/jit/verify/icmds.c"
+# line 465 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_athrow);
GENERATED r = typeinfo_is_assignable_to_class(&OP1->typeinfo,
GENERATED CLASSREF_OR_CLASSINFO(class_java_lang_Throwable));
GENERATED METHOD,
GENERATED /* XXX make this more efficient, use class_java_lang_Throwable
GENERATED * directly */
- GENERATED class_get_classref(METHOD->class,utf_java_lang_Throwable),
+ GENERATED class_get_classref(METHOD->clazz,utf_java_lang_Throwable),
GENERATED &OP1->typeinfo);
GENERATED IPTR->flags.bits |= INS_FLAG_UNRESOLVED;
GENERATED }
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 367 "src/vm/jit/verify/icmds.c"
+# line 365 "src/vm/jit/verify/icmds.c"
GENERATED
# if !defined(TYPECHECK_TYPEINFERER)
GENERATED /* returnAddress is not allowed */
GENERATED /* may use stack[0] ... stack[0] */
GENERATED
GENERATED
-# line 379 "src/vm/jit/verify/icmds.c"
+# line 377 "src/vm/jit/verify/icmds.c"
GENERATED /* returnAddress is not allowed */
GENERATED if (!TYPEINFO_IS_REFERENCE(OP1->typeinfo))
GENERATED VERIFY_ERROR("Illegal instruction: INSTANCEOF on non-reference");
GENERATED /* variable number of inslots! */
GENERATED
GENERATED
-# line 668 "src/vm/jit/verify/icmds.c"
+# line 640 "src/vm/jit/verify/icmds.c"
GENERATED if (!typecheck_stackbased_multianewarray(STATE, stack, stackfloor))
GENERATED EXCEPTION;
GENERATED stack -= (IPTR->s1.argcount - 1);
GENERATED /* may use stack[1] ... stack[1] */
GENERATED
GENERATED
-# line 391 "src/vm/jit/verify/icmds.c"
+# line 389 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
GENERATED /* variable number of outslots! */
GENERATED
GENERATED
-# line 684 "src/vm/jit/verify/icmds.c"
+# line 656 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_builtin);
GENERATED if (!typecheck_stackbased_verify_builtin(STATE, stack, stackfloor))
GENERATED EXCEPTION;
/* src/vm/jit/verify/typecheck-stackbased.c - stack-based verifier
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
if (state.initmethod)
TYPEINFO_INIT_NEWOBJECT(dst->typeinfo, NULL);
else
- typeinfo_init_classinfo(&(dst->typeinfo), state.m->class);
+ typeinfo_init_classinfo(&(dst->typeinfo), state.m->clazz);
skip = 1;
}
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 355 "src/vm/jit/verify/icmds.c"
+# line 347 "src/vm/jit/verify/icmds.c"
GENERATED if (IPTR->flags.bits & INS_FLAG_CLASS) {
GENERATED /* a java.lang.Class reference */
GENERATED TYPEINFO_INIT_JAVA_LANG_CLASS(DST->typeinfo,IPTR->sx.val.c);
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 90 "src/vm/jit/verify/icmds.c"
+# line 82 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_stack);
GENERATED COPYTYPE(IPTR->s1, IPTR->dst);
GENERATED DST->type = OP1->type;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 89 "src/vm/jit/verify/icmds.c"
+# line 81 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_stack);
GENERATED COPYTYPE(IPTR->s1, IPTR->dst);
GENERATED DST->type = OP1->type;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 99 "src/vm/jit/verify/icmds.c"
+# line 91 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_aload);
GENERATED
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 121 "src/vm/jit/verify/icmds.c"
+# line 113 "src/vm/jit/verify/icmds.c"
GENERATED
# if !defined(TYPECHECK_TYPEINFERER)
GENERATED if (!TYPEINFO_MAYBE_ARRAY_OF_REFS(OP1->typeinfo))
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 114 "src/vm/jit/verify/icmds.c"
+# line 106 "src/vm/jit/verify/icmds.c"
GENERATED TYPEINFO_COPY(OP1->typeinfo, DST->typeinfo);
GENERATED
# line 356 "src/vm/jit/verify/typecheck-typeinferer-gen.inc"
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 414 "src/vm/jit/verify/icmds.c"
+# line 406 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
GENERATED superblockend = true;
GENERATED
GENERATED
-# line 396 "src/vm/jit/verify/icmds.c"
+# line 388 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 587 "src/vm/jit/verify/icmds.c"
+# line 553 "src/vm/jit/verify/icmds.c"
GENERATED TYPEINFO_INIT_RETURNADDRESS(DST->typeinfo, BPTR->next);
GENERATED REACH(IPTR->sx.s23.s3.jsrtarget);
GENERATED
GENERATED superblockend = true;
GENERATED
GENERATED
-# line 604 "src/vm/jit/verify/icmds.c"
+# line 570 "src/vm/jit/verify/icmds.c"
GENERATED
# if !defined(TYPECHECK_TYPEINFERER)
GENERATED /* check returnAddress variable */
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 463 "src/vm/jit/verify/icmds.c"
+# line 429 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_switch);
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 479 "src/vm/jit/verify/icmds.c"
+# line 445 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_switch);
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 230 "src/vm/jit/verify/icmds.c"
+# line 222 "src/vm/jit/verify/icmds.c"
GENERATED if (!handle_fieldaccess(state, NULL, NULL))
GENERATED return false;
GENERATED maythrow = true;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 224 "src/vm/jit/verify/icmds.c"
+# line 216 "src/vm/jit/verify/icmds.c"
GENERATED if (!handle_fieldaccess(state, VAROP(iptr->s1), NULL))
GENERATED return false;
GENERATED maythrow = true;
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 626 "src/vm/jit/verify/icmds.c"
+# line 592 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_invoke);
GENERATED if (!handle_invocation(state))
GENERATED EXCEPTION;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 373 "src/vm/jit/verify/icmds.c"
+# line 365 "src/vm/jit/verify/icmds.c"
GENERATED
# if !defined(TYPECHECK_TYPEINFERER)
GENERATED /* returnAddress is not allowed */
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 669 "src/vm/jit/verify/icmds.c"
+# line 635 "src/vm/jit/verify/icmds.c"
GENERATED if (!handle_multianewarray(STATE))
GENERATED EXCEPTION;
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 684 "src/vm/jit/verify/icmds.c"
+# line 650 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_builtin);
GENERATED if (!handle_builtin(state))
GENERATED EXCEPTION;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 355 "src/vm/jit/verify/icmds.c"
+# line 347 "src/vm/jit/verify/icmds.c"
GENERATED if (IPTR->flags.bits & INS_FLAG_CLASS) {
GENERATED /* a java.lang.Class reference */
GENERATED TYPEINFO_INIT_JAVA_LANG_CLASS(DST->typeinfo,IPTR->sx.val.c);
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 90 "src/vm/jit/verify/icmds.c"
+# line 82 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_stack);
GENERATED COPYTYPE(IPTR->s1, IPTR->dst);
GENERATED DST->type = OP1->type;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 89 "src/vm/jit/verify/icmds.c"
+# line 81 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_stack);
GENERATED COPYTYPE(IPTR->s1, IPTR->dst);
GENERATED DST->type = OP1->type;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 99 "src/vm/jit/verify/icmds.c"
+# line 91 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_aload);
GENERATED
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 266 "src/vm/jit/verify/icmds.c"
+# line 258 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_INT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 276 "src/vm/jit/verify/icmds.c"
+# line 268 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_LONG))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 261 "src/vm/jit/verify/icmds.c"
+# line 253 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_FLOAT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 256 "src/vm/jit/verify/icmds.c"
+# line 248 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_DOUBLE))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 121 "src/vm/jit/verify/icmds.c"
+# line 113 "src/vm/jit/verify/icmds.c"
GENERATED
# if !defined(TYPECHECK_TYPEINFERER)
GENERATED if (!TYPEINFO_MAYBE_ARRAY_OF_REFS(OP1->typeinfo))
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 245 "src/vm/jit/verify/icmds.c"
+# line 237 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BOOLEAN)
GENERATED && !TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BYTE))
GENERATED VERIFY_ERROR("Array type mismatch");
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 251 "src/vm/jit/verify/icmds.c"
+# line 243 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_CHAR))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 271 "src/vm/jit/verify/icmds.c"
+# line 263 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_SHORT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 114 "src/vm/jit/verify/icmds.c"
+# line 106 "src/vm/jit/verify/icmds.c"
GENERATED TYPEINFO_COPY(OP1->typeinfo, DST->typeinfo);
GENERATED
# line 493 "src/vm/jit/verify/typecheck-variablesbased-gen.inc"
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 414 "src/vm/jit/verify/icmds.c"
+# line 406 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 302 "src/vm/jit/verify/icmds.c"
+# line 294 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_INT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 312 "src/vm/jit/verify/icmds.c"
+# line 304 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_LONG))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 297 "src/vm/jit/verify/icmds.c"
+# line 289 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_FLOAT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 292 "src/vm/jit/verify/icmds.c"
+# line 284 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_DOUBLE))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 317 "src/vm/jit/verify/icmds.c"
+# line 309 "src/vm/jit/verify/icmds.c"
GENERATED /* we just check the basic input types and that the */
GENERATED /* destination is an array of references. Assignability to */
GENERATED /* the actual array must be checked at runtime, each time the */
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 281 "src/vm/jit/verify/icmds.c"
+# line 273 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BOOLEAN)
GENERATED && !TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_BYTE))
GENERATED VERIFY_ERROR("Array type mismatch");
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 287 "src/vm/jit/verify/icmds.c"
+# line 279 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_CHAR))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 307 "src/vm/jit/verify/icmds.c"
+# line 299 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo,ARRAYTYPE_SHORT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED superblockend = true;
GENERATED
GENERATED
-# line 396 "src/vm/jit/verify/icmds.c"
+# line 388 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_branch);
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 587 "src/vm/jit/verify/icmds.c"
+# line 553 "src/vm/jit/verify/icmds.c"
GENERATED TYPEINFO_INIT_RETURNADDRESS(DST->typeinfo, BPTR->next);
GENERATED REACH(IPTR->sx.s23.s3.jsrtarget);
GENERATED
GENERATED superblockend = true;
GENERATED
GENERATED
-# line 604 "src/vm/jit/verify/icmds.c"
+# line 570 "src/vm/jit/verify/icmds.c"
GENERATED
# if !defined(TYPECHECK_TYPEINFERER)
GENERATED /* check returnAddress variable */
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 463 "src/vm/jit/verify/icmds.c"
+# line 429 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_switch);
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 479 "src/vm/jit/verify/icmds.c"
+# line 445 "src/vm/jit/verify/icmds.c"
GENERATED /* {RESULTNOW} */
GENERATED TYPECHECK_COUNT(stat_ins_switch);
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 545 "src/vm/jit/verify/icmds.c"
+# line 511 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_INT)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 550 "src/vm/jit/verify/icmds.c"
+# line 516 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_LNG)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 555 "src/vm/jit/verify/icmds.c"
+# line 521 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_FLT)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 560 "src/vm/jit/verify/icmds.c"
+# line 526 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_DBL)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 520 "src/vm/jit/verify/icmds.c"
+# line 486 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_areturn);
GENERATED if (!TYPEINFO_IS_REFERENCE(OP1->typeinfo))
GENERATED VERIFY_ERROR("illegal instruction: ARETURN on non-reference");
GENERATED superblockend = true;
GENERATED
GENERATED
-# line 565 "src/vm/jit/verify/icmds.c"
+# line 531 "src/vm/jit/verify/icmds.c"
GENERATED if (STATE->returntype.type != TYPE_VOID)
GENERATED VERIFY_ERROR("Return type mismatch");
GENERATED
GENERATED return_tail:
GENERATED TYPECHECK_COUNT(stat_ins_primitive_return);
GENERATED
- GENERATED if (STATE->initmethod && METHOD->class != class_java_lang_Object) {
+ GENERATED if (STATE->initmethod && METHOD->clazz != class_java_lang_Object) {
GENERATED /* Check if the 'this' instance has been initialized. */
GENERATED LOG("Checking <init> marker");
GENERATED
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 230 "src/vm/jit/verify/icmds.c"
+# line 222 "src/vm/jit/verify/icmds.c"
GENERATED if (!handle_fieldaccess(state, NULL, NULL))
GENERATED return false;
GENERATED maythrow = true;
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 176 "src/vm/jit/verify/icmds.c"
+# line 168 "src/vm/jit/verify/icmds.c"
GENERATED if (!handle_fieldaccess(state, NULL, VAROP(iptr->s1)))
GENERATED return false;
GENERATED maythrow = true;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 224 "src/vm/jit/verify/icmds.c"
+# line 216 "src/vm/jit/verify/icmds.c"
GENERATED if (!handle_fieldaccess(state, VAROP(iptr->s1), NULL))
GENERATED return false;
GENERATED maythrow = true;
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 170 "src/vm/jit/verify/icmds.c"
+# line 162 "src/vm/jit/verify/icmds.c"
GENERATED if (!handle_fieldaccess(state, VAROP(iptr->s1), VAROP(iptr->sx.s23.s2)))
GENERATED return false;
GENERATED maythrow = true;
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 626 "src/vm/jit/verify/icmds.c"
+# line 592 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_invoke);
GENERATED if (!handle_invocation(state))
GENERATED EXCEPTION;
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 239 "src/vm/jit/verify/icmds.c"
+# line 231 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_ARRAY(OP1->typeinfo)
GENERATED && OP1->typeinfo.typeclass.cls != pseudo_class_Arraystub)
GENERATED VERIFY_ERROR("illegal instruction: ARRAYLENGTH on non-array");
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 499 "src/vm/jit/verify/icmds.c"
+# line 465 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_athrow);
GENERATED r = typeinfo_is_assignable_to_class(&OP1->typeinfo,
GENERATED CLASSREF_OR_CLASSINFO(class_java_lang_Throwable));
GENERATED METHOD,
GENERATED /* XXX make this more efficient, use class_java_lang_Throwable
GENERATED * directly */
- GENERATED class_get_classref(METHOD->class,utf_java_lang_Throwable),
+ GENERATED class_get_classref(METHOD->clazz,utf_java_lang_Throwable),
GENERATED &OP1->typeinfo);
GENERATED IPTR->flags.bits |= INS_FLAG_UNRESOLVED;
GENERATED }
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 373 "src/vm/jit/verify/icmds.c"
+# line 365 "src/vm/jit/verify/icmds.c"
GENERATED
# if !defined(TYPECHECK_TYPEINFERER)
GENERATED /* returnAddress is not allowed */
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 385 "src/vm/jit/verify/icmds.c"
+# line 377 "src/vm/jit/verify/icmds.c"
GENERATED /* returnAddress is not allowed */
GENERATED if (!TYPEINFO_IS_REFERENCE(OP1->typeinfo))
GENERATED VERIFY_ERROR("Illegal instruction: INSTANCEOF on non-reference");
# define DST VAROP(iptr->dst)
GENERATED
GENERATED
-# line 669 "src/vm/jit/verify/icmds.c"
+# line 635 "src/vm/jit/verify/icmds.c"
GENERATED if (!handle_multianewarray(STATE))
GENERATED EXCEPTION;
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 326 "src/vm/jit/verify/icmds.c"
+# line 318 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_INT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 331 "src/vm/jit/verify/icmds.c"
+# line 323 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_LONG))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 336 "src/vm/jit/verify/icmds.c"
+# line 328 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_BOOLEAN)
GENERATED && !TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_BYTE))
GENERATED VERIFY_ERROR("Array type mismatch");
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 342 "src/vm/jit/verify/icmds.c"
+# line 334 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_CHAR))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 347 "src/vm/jit/verify/icmds.c"
+# line 339 "src/vm/jit/verify/icmds.c"
GENERATED if (!TYPEINFO_MAYBE_PRIMITIVE_ARRAY(OP1->typeinfo, ARRAYTYPE_SHORT))
GENERATED VERIFY_ERROR("Array type mismatch");
GENERATED
GENERATED maythrow = true;
GENERATED
GENERATED
-# line 203 "src/vm/jit/verify/icmds.c"
+# line 195 "src/vm/jit/verify/icmds.c"
GENERATED /* XXX this mess will go away with const operands */
GENERATED INSTRUCTION_GET_FIELDREF(state->iptr, fieldref);
GENERATED constvalue.type = fieldref->parseddesc.fd->type;
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 182 "src/vm/jit/verify/icmds.c"
+# line 174 "src/vm/jit/verify/icmds.c"
GENERATED /* XXX this mess will go away with const operands */
GENERATED INSTRUCTION_GET_FIELDREF(state->iptr, fieldref);
GENERATED constvalue.type = fieldref->parseddesc.fd->type;
# define OP1 VAROP(iptr->s1)
GENERATED
GENERATED
-# line 684 "src/vm/jit/verify/icmds.c"
+# line 650 "src/vm/jit/verify/icmds.c"
GENERATED TYPECHECK_COUNT(stat_ins_builtin);
GENERATED if (!handle_builtin(state))
GENERATED EXCEPTION;
/* decide which monitor enter function to call */
if (m->flags & ACC_STATIC) {
- M_MOV_IMM(&m->class->object.header, REG_A0);
+ M_MOV_IMM(&m->clazz->object.header, REG_A0);
}
else {
M_TEST(REG_A0);
}
else {
s1 = OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr) * lm->class->index;
+ sizeof(methodptr) * lm->clazz->index;
- s2 = sizeof(methodptr) * (lm - lm->class->methods);
+ s2 = sizeof(methodptr) * (lm - lm->clazz->methods);
}
/* implicit null-pointer check */
/* src/vm/jit/x86_64/patcher.c - x86_64 code patching functions
- 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
+ Copyright (C) 1996-2005, 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
*((int32_t *) (ra + 3 + 3)) =
(int32_t) (OFFSET(vftbl_t, interfacetable[0]) -
- sizeof(methodptr) * m->class->index);
+ sizeof(methodptr) * m->clazz->index);
/* patch method offset */
*((int32_t *) (ra + 3 + 7 + 3)) =
- (int32_t) (sizeof(methodptr) * (m - m->class->methods));
+ (int32_t) (sizeof(methodptr) * (m - m->clazz->methods));
return true;
}
Resolve a symbolic class reference if necessary
- NOTE: If given, refmethod->class is used as the referring class.
+ NOTE: If given, refmethod->clazz is used as the referring class.
Otherwise, cls.ref->referer is used.
IN:
/* being the same, so the referer usually is cls.ref->referer. */
/* There is one important case where it is not: When we do a */
/* deferred assignability check to a formal argument of a method, */
- /* we must use refmethod->class (the caller's class) to resolve */
+ /* we must use refmethod->clazz (the caller's class) to resolve */
/* the type of the formal argument. */
- referer = (refmethod) ? refmethod->class : cls.ref->referer;
+ referer = (refmethod) ? refmethod->clazz : cls.ref->referer;
if (!resolve_class_from_name(referer, refmethod, cls.ref->name,
mode, checkaccess, link, &c))
if (supertype.cls == class_java_lang_Object
|| (CLASSREF_OR_CLASSINFO_NAME(supertype) == utf_java_lang_Object
- && refmethod->class->classloader == NULL))
+ && refmethod->clazz->classloader == NULL))
{
return resolveSucceeded;
}
/* get the classinfos and the field type */
- referer = refmethod->class;
+ referer = refmethod->clazz;
assert(referer);
declarer = fi->class;
return resolveFailed;
}
- /* XXX check that class of field == refmethod->class */
+ /* XXX check that class of field == refmethod->clazz */
initclass = referer; /* XXX classrefs */
assert(initclass->state & CLASS_LINKED);
/* the class containing the reference */
- referer = refmethod->class;
+ referer = refmethod->clazz;
assert(referer);
/* check if the field itself is already resolved */
/* the class containing the reference */
- referer = ref->referermethod->class;
+ referer = ref->referermethod->clazz;
assert(referer);
/* check if the field itself is already resolved */
/* get referer and declarer classes */
- referer = refmethod->class;
+ referer = refmethod->clazz;
assert(referer);
- declarer = mi->class;
+ declarer = mi->clazz;
assert(declarer);
assert(referer->state & CLASS_LINKED);
/* get the classinfos and the method descriptor */
- referer = refmethod->class;
+ referer = refmethod->clazz;
assert(referer);
- declarer = mi->class;
+ declarer = mi->clazz;
assert(declarer);
/* check static */
{ /* XXX clean up */
instruction *ins = (instruction *) TYPEINFO_NEWOBJECT_INSTRUCTION(*instanceti);
classref_or_classinfo initclass = (ins) ? ins[-1].sx.val.c
- : CLASSREF_OR_CLASSINFO(refmethod->class);
+ : CLASSREF_OR_CLASSINFO(refmethod->clazz);
tip = &tinfo;
if (!typeinfo_init_class(tip, initclass))
return false;
result = resolve_lazy_subtype_checks(refmethod,
tip,
- CLASSREF_OR_CLASSINFO(mi->class),
+ CLASSREF_OR_CLASSINFO(mi->clazz),
resolveLinkageError);
if (result != resolveSucceeded)
return result;
/* check protected access */
- /* XXX use other `declarer` than mi->class? */
+ /* XXX use other `declarer` than mi->clazz? */
if (((mi->flags & ACC_PROTECTED) != 0)
- && !SAME_PACKAGE(mi->class, refmethod->class))
+ && !SAME_PACKAGE(mi->clazz, refmethod->clazz))
{
result = resolve_lazy_subtype_checks(refmethod,
tip,
- CLASSREF_OR_CLASSINFO(refmethod->class),
+ CLASSREF_OR_CLASSINFO(refmethod->clazz),
resolveIllegalAccessError);
if (result != resolveSucceeded)
return result;
/* the method definition. Since container is the same as, */
/* or a subclass of declarer, we also constrain declarer */
/* by transitivity of loading constraints. */
- name = mi->class->name;
+ name = mi->clazz->name;
}
else {
name = paramtypes[i].classref->name;
/* The caller (referer) and the callee (container) must agree */
/* on the types of the parameters. */
if (!classcache_add_constraint(referer->classloader,
- mi->class->classloader, name))
+ mi->clazz->classloader, name))
return false; /* exception */
}
}
/* The caller (referer) and the callee (container) must agree */
/* on the return type. */
if (!classcache_add_constraint(referer->classloader,
- mi->class->classloader,
+ mi->clazz->classloader,
md->returntype.classref->name))
return false; /* exception */
}
/* the class containing the reference */
- referer = refmethod->class;
+ referer = refmethod->clazz;
assert(referer);
/* check if the method itself is already resolved */
/* the class containing the reference */
- referer = ref->referermethod->class;
+ referer = ref->referermethod->clazz;
assert(referer);
/* check if the method itself is already resolved */
if (IS_FMIREF_RESOLVED(ref->methodref)) {
mi = ref->methodref->p.method;
- container = mi->class;
+ container = mi->clazz;
goto resolved_the_method;
}
if (!resolve_method_loading_constraints(referer, mi))
return false;
- declarer = mi->class;
+ declarer = mi->clazz;
assert(declarer);
assert(referer->state & CLASS_LINKED);
"accessing field of uninitialized object");
return false;
}
- /* XXX check that class of field == refmethod->class */
- initclass = refmethod->class; /* XXX classrefs */
+ /* XXX check that class of field == refmethod->clazz */
+ initclass = refmethod->clazz; /* XXX classrefs */
assert(initclass->state & CLASS_LOADED);
assert(initclass->state & CLASS_LINKED);
/* XXX clean this up */
instanceref = IS_FMIREF_RESOLVED(methodref)
- ? class_get_self_classref(methodref->p.method->class)
+ ? class_get_self_classref(methodref->p.method->clazz)
: methodref->p.classref;
#ifdef RESOLVE_VERBOSE
{ /* XXX clean up */
instruction *ins = (instruction *) TYPEINFO_NEWOBJECT_INSTRUCTION(*instanceti);
classref_or_classinfo initclass = (ins) ? ins[-1].sx.val.c
- : CLASSREF_OR_CLASSINFO(refmethod->class);
+ : CLASSREF_OR_CLASSINFO(refmethod->clazz);
tip = &tinfo;
if (!typeinfo_init_class(tip, initclass))
return false;
tip = instanceti;
}
- if (!unresolved_subtype_set_from_typeinfo(refmethod->class, refmethod,
+ if (!unresolved_subtype_set_from_typeinfo(refmethod->clazz, refmethod,
&(ref->instancetypes),tip,instanceref->name))
return false;
UNRESOLVED_SUBTYPE_SET_EMTPY(ref->paramconstraints[j]);
}
assert(ref->paramconstraints);
- if (!unresolved_subtype_set_from_typeinfo(refmethod->class, refmethod,
+ if (!unresolved_subtype_set_from_typeinfo(refmethod->clazz, refmethod,
ref->paramconstraints + i,&(param->typeinfo),
md->paramtypes[i+instancecount].classref->name))
return false;
UNRESOLVED_SUBTYPE_SET_EMTPY(ref->paramconstraints[j]);
}
assert(ref->paramconstraints);
- if (!unresolved_subtype_set_from_typeinfo(refmethod->class, refmethod,
+ if (!unresolved_subtype_set_from_typeinfo(refmethod->clazz, refmethod,
ref->paramconstraints + i - instancecount,&(param->typeinfo),
md->paramtypes[i].classref->name))
return false;
fprintf(file,"unresolved_field(%p):\n",(void *)ref);
if (ref) {
fprintf(file," referer : ");
- utf_fprint_printable_ascii(file,ref->referermethod->class->name); fputc('\n',file);
+ utf_fprint_printable_ascii(file,ref->referermethod->clazz->name); fputc('\n',file);
fprintf(file," refmethod : ");
utf_fprint_printable_ascii(file,ref->referermethod->name); fputc('\n',file);
fprintf(file," refmethodd: ");
fprintf(file,"unresolved_method(%p):\n",(void *)ref);
if (ref) {
fprintf(file," referer : ");
- utf_fprint_printable_ascii(file,ref->referermethod->class->name); fputc('\n',file);
+ utf_fprint_printable_ascii(file,ref->referermethod->clazz->name); fputc('\n',file);
fprintf(file," refmethod : ");
utf_fprint_printable_ascii(file,ref->referermethod->name); fputc('\n',file);
fprintf(file," refmethodd: ");
/* src/vmcore/annotation.c - class annotations
- Copyright (C) 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
+ Copyright (C) 2006, 2007, 2008
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
assert(m != NULL);
LLNI_classinfo_field_get(
- m->class, method_annotationdefaults, annotationdefaults);
+ m->clazz, method_annotationdefaults, annotationdefaults);
if (!annotation_load_attribute_body(
cb, &annotationdefault,
}
if (annotationdefault != NULL) {
- slot = m - m->class->methods;
+ slot = m - m->clazz->methods;
annotationdefaults = annotation_bytearrays_insert(
annotationdefaults, slot, annotationdefault);
}
LLNI_classinfo_field_set(
- m->class, method_annotationdefaults, annotationdefaults);
+ m->clazz, method_annotationdefaults, annotationdefaults);
}
return true;
assert(m != NULL);
LLNI_classinfo_field_get(
- m->class, method_parameterannotations, parameterannotations);
+ m->clazz, method_parameterannotations, parameterannotations);
if (!annotation_load_attribute_body(
cb, &annotations,
}
if (annotations != NULL) {
- slot = m - m->class->methods;
+ slot = m - m->clazz->methods;
parameterannotations = annotation_bytearrays_insert(
parameterannotations, slot, annotations);
}
LLNI_classinfo_field_set(
- m->class, method_parameterannotations, parameterannotations);
+ m->clazz, method_parameterannotations, parameterannotations);
}
return true;
return false;
}
- LLNI_classinfo_field_set(
- cb->class, annotations, (java_handle_t*)annotations);
+ LLNI_classinfo_field_set(cb->class, annotations, (java_handle_t*)annotations);
return true;
}
assert(m != NULL);
LLNI_classinfo_field_get(
- m->class, method_annotations, method_annotations);
+ m->clazz, method_annotations, method_annotations);
if (!annotation_load_attribute_body(
cb, &annotations,
}
if (annotations != NULL) {
- slot = m - m->class->methods;
+ slot = m - m->clazz->methods;
method_annotations = annotation_bytearrays_insert(
method_annotations, slot, annotations);
}
LLNI_classinfo_field_set(
- m->class, method_annotations, method_annotations);
+ m->clazz, method_annotations, method_annotations);
}
return true;
classinfo *cg;
classinfo *cs;
- cg = mg->class;
- cs = ms->class;
+ cg = mg->clazz;
+ cs = ms->clazz;
/* overriding a final method is illegal */
MCOPY(am, im, methodinfo, 1);
am->vftblindex = (vftbllength++);
- am->class = c;
+ am->clazz = c;
am->flags |= ACC_MIRANDA;
noabstractmethod2:
methodinfo *m = &c->methods[i];
m->parseddesc =
descriptor_pool_parse_method_descriptor(descpool, m->descriptor,
- m->flags, class_get_self_classref(m->class));
+ m->flags, class_get_self_classref(m->clazz));
if (!m->parseddesc)
return false;
clone->name = utf_clone;
clone->descriptor = utf_void__java_lang_Object;
clone->parseddesc = clonedesc;
- clone->class = c;
+ clone->clazz = c;
/* parse the descriptor to get the register allocation */
/* all fields of m have been zeroed in load_class_from_classbuffer */
- m->class = c;
+ m->clazz = c;
if (!suck_check_classbuffer_size(cb, 2 + 2 + 2))
return false;
/* Get the method from the virtual function table. Is this an
interface method? */
- if (m->class->flags & ACC_INTERFACE) {
- pmptr = vftbl->interfacetable[-(m->class->index)];
- mptr = pmptr[(m - m->class->methods)];
+ if (m->clazz->flags & ACC_INTERFACE) {
+ pmptr = vftbl->interfacetable[-(m->clazz->index)];
+ mptr = pmptr[(m - m->clazz->methods)];
}
else {
mptr = vftbl->table[m->vftblindex];
java_handle_t *method_annotations; /* all methods' unparsed annotations */
/* of the declaring class */
- c = m->class;
+ c = m->clazz;
slot = m - c->methods;
annotations = NULL;
/* parameter annotations of */
/* the declaring class */
- c = m->class;
+ c = m->clazz;
slot = m - c->methods;
parameterAnnotations = NULL;
/* annotation default values of */
/* the declaring class */
- c = m->class;
+ c = m->clazz;
slot = m - c->methods;
annotationDefault = NULL;
return;
}
- if (m->class != NULL)
- utf_display_printable_ascii_classname(m->class->name);
+ if (m->clazz != NULL)
+ utf_display_printable_ascii_classname(m->clazz->name);
else
printf("NULL");
printf(".");
methoddesc *parseddesc; /* parsed descriptor */
- classinfo *class; /* class, the method belongs to */
+ classinfo *clazz; /* class, the method belongs to */
s4 vftblindex; /* index of method in virtual function */
/* table (if it is a virtual method) */
s4 maxstack; /* maximum stack depth of method */
/* macro for accessing the class name of a method reference */
#define METHODREF_CLASSNAME(fmiref) \
- (IS_FMIREF_RESOLVED(fmiref) ? (fmiref)->p.method->class->name \
+ (IS_FMIREF_RESOLVED(fmiref) ? (fmiref)->p.method->clazz->name \
: (fmiref)->p.classref->name)
/* macro for accessing the class name of a method reference */