index b404fca454e4d62bd85c1ba6471bce291c0abe1b..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;
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;