index d0dabd2d914edf2f7b7168725b6f5730845b14a2..1d634a5ea0ddfcbaad19f707f4521202389ebec6 100644 (file)
case JVM_STORAGE_REGISTER:
case JVM_STORAGE_PARAM:
case JVM_STORAGE_PARAM_VAR:
+ case JVM_STORAGE_FRAME:
+ case JVM_STORAGE_FRAME_VAR:
+ case JVM_STORAGE_FRAME_PARAM:
+ case JVM_STORAGE_FRAME_PARAM_VAR:
jvm_generate(p, 0, 0, ".var %i is %s %s from start to end", reg, name, desc);
break;
case JVM_STORAGE_REGISTER_VAR:
jvm_generate(p, 0, 0, ".var %i is %s [%s from start to end", reg, name, desc);
break;
case JVM_STORAGE_PARAM_VARPTR:
+ case JVM_STORAGE_FRAME_PARAM_VARPTR:
jvm_generate(p, 0, 0, ".var %i is %s [%s from start to end", reg, name, desc);
jvm_generate(p, 0, 0, ".var %i is %s$offset I from start to end", reg + 1, name);
break;
case JVM_STORAGE_FIELD_VAR:
fprintf(v -> class -> fp, ".field public %s [%s\n\n", name, desc);
break;
- case JVM_STORAGE_FRAME:
- case JVM_STORAGE_FRAME_VAR:
- case JVM_STORAGE_FRAME_PARAM:
- case JVM_STORAGE_FRAME_PARAM_VAR:
- case JVM_STORAGE_FRAME_PARAM_VARPTR:
- /* См. ниже jvm_generate_frame_class() */
- break;
default:
gen_error("jvm_generate_var: invalid storage %i", storage);
break;
}
}
+/*
static void
jvm_generate_abstract_frame_class()
{
jvm_destroy_class(class);
}
+*/
static struct gen_class *
jvm_generate_frame_class(oberon_object_t * proc)
abscname = "SYSTEM$FRAME";
cname = jvm_get_field_full_name_safe(proc);
cname = new_string("%s$FRAME", cname);
- class = jvm_create_class(cname);
+ class = jvm_create_class(proc -> gen_proc -> class -> dir, cname);
fp = class -> fp;
class -> full_name = cname;
p = proc -> gen_proc;
- jvm_generate_abstract_frame_class();
+// jvm_generate_abstract_frame_class();
+
class = jvm_generate_frame_class(proc);
t = GC_MALLOC(sizeof *t);