Andreas Krall EMAIL: cacao@complang.tuwien.ac.at
Mark Probst EMAIL: cacao@complang.tuwien.ac.at
- Last Change: 1996/12/03
+ Last Change: 2003/02/12
*******************************************************************************/
{(functionptr) asm_builtin_checkarraycast, "checkarraycast"},
{(functionptr) asm_builtin_aastore, "aastore"},
{(functionptr) builtin_new, "new"},
- {(functionptr) builtin_anewarray, "anewarray"},
+ {(functionptr) builtin_anewarray, "anewarray"},
{(functionptr) builtin_newarray_array, "newarray_array"},
+#ifdef __I386__
+ /*
+ * have 2 parameters (needs stack manipulation)
+ */
+ {(functionptr) asm_builtin_anewarray, "anewarray"},
+ {(functionptr) asm_builtin_newarray_array, "newarray_array"},
+#endif
{(functionptr) builtin_newarray_boolean, "newarray_boolean"},
{(functionptr) builtin_newarray_char, "newarray_char"},
{(functionptr) builtin_newarray_float, "newarray_float"},
return 0;
*/
- return (unsigned) (sub->baseval - super->baseval) <=
- (unsigned) (super->diffval);
+ return (unsigned) (sub->vftbl->baseval - super->vftbl->baseval) <=
+ (unsigned) (super->vftbl->diffval);
}
#ifdef TRACE_ARGS_NUM
-void builtin_trace_args(long a0, long a1, long a2, long a3, long a4, long a5,
+void builtin_trace_args(s8 a0, s8 a1, s8 a2, s8 a3, s8 a4, s8 a5,
#if TRACE_ARGS_NUM > 6
- long a6, long a7,
+ s8 a6, s8 a7,
#endif
methodinfo *method)
{
- sprintf (logtext, " ");
+ int i;
+ for (i=0; i<methodindent; i++)
+ logtext[i] = '\t';
sprintf (logtext+methodindent, "called: ");
utf_sprint (logtext+strlen(logtext), method->class->name);
sprintf (logtext+strlen(logtext), ".");
switch (method->paramcount) {
#if TRACE_ARGS_NUM > 6
case 8:
- sprintf(logtext+strlen(logtext), "%lx, %lx, %lx, %lx, %lx, %lx, %lx, %lx",
+ sprintf(logtext+strlen(logtext), "%llx, %llx, %llx, %llx, %llx, %llx, %llx, %llx",
a0, a1, a2, a3, a4, a5, a6, a7);
break;
case 7:
- sprintf(logtext+strlen(logtext), "%lx, %lx, %lx, %lx, %lx, %lx, %lx",
+ sprintf(logtext+strlen(logtext), "%llx, %llx, %llx, %llx, %llx, %llx, %llx",
a0, a1, a2, a3, a4, a5, a6);
break;
#endif
case 6:
- sprintf(logtext+strlen(logtext), "%lx, %lx, %lx, %lx, %lx, %lx",
+ sprintf(logtext+strlen(logtext), "%llx, %llx, %llx, %llx, %llx, %llx",
a0, a1, a2, a3, a4, a5);
break;
case 5:
- sprintf(logtext+strlen(logtext), "%lx, %lx, %lx, %lx, %lx",
+ sprintf(logtext+strlen(logtext), "%llx, %llx, %llx, %llx, %llx",
a0, a1, a2, a3, a4);
break;
case 4:
- sprintf(logtext+strlen(logtext), "%lx, %lx, %lx, %lx",
- a0, a1, a2, a3);
+ sprintf(logtext+strlen(logtext), "%llx, %llx, %llx, %llx",
+ a0, a1, a2, a3);
break;
case 3:
- sprintf(logtext+strlen(logtext), "%lx, %lx, %lx", a0, a1, a2);
+ sprintf(logtext+strlen(logtext), "%llx, %llx, %llx", a0, a1, a2);
break;
case 2:
- sprintf(logtext+strlen(logtext), "%lx, %lx", a0, a1);
+ sprintf(logtext+strlen(logtext), "%llx, %llx", a0, a1);
break;
case 1:
- sprintf(logtext+strlen(logtext), "%lx", a0);
+ sprintf(logtext+strlen(logtext), "%llx", a0);
break;
}
sprintf (logtext+strlen(logtext), ")");
methodindent++;
}
-void builtin_displaymethodstop(methodinfo *method, long l, double d, float f)
+void builtin_displaymethodstop(methodinfo *method, s8 l, double d, float f)
{
+ int i;
+ for (i=0; i<methodindent; i++)
+ logtext[i] = '\t';
methodindent--;
- sprintf (logtext, " ");
sprintf (logtext+methodindent, "finished: ");
utf_sprint (logtext+strlen(logtext), method->class->name);
sprintf (logtext+strlen(logtext), ".");
void builtin_displaymethodexception(methodinfo *method)
{
- sprintf (logtext, " ");
+ int i;
+ for (i=0; i<methodindent; i++)
+ logtext[i] = '\t';
sprintf (logtext+methodindent, "exception abort: ");
utf_sprint (logtext+strlen(logtext), method->class->name);
sprintf (logtext+strlen(logtext), ".");