X-Git-Url: https://deadsoftware.ru/gitweb?p=dsw-obn.git;a=blobdiff_plain;f=src%2Fbackends%2Fjvm%2Fgenerator-jvm.h;h=6786cf44dc05d467128d15ff2c8efb018bcc9e0d;hp=242aa70b10f8f2b17b21926b06de0e9192b7021c;hb=1ef429eea9ba6825395446aac0b5980454ac0383;hpb=6e0d9d632fdf070f9777fe90b9add849562acaf2 diff --git a/src/backends/jvm/generator-jvm.h b/src/backends/jvm/generator-jvm.h index 242aa70..6786cf4 100644 --- a/src/backends/jvm/generator-jvm.h +++ b/src/backends/jvm/generator-jvm.h @@ -28,17 +28,32 @@ struct gen_class enum gen_storage { JVM_STORAGE_UNKNOWN, + /* Обыкновенные Java-переменные */ JVM_STORAGE_REGISTER, JVM_STORAGE_STATIC, JVM_STORAGE_FIELD, - JVM_STORAGE_LOCAL, - JVM_STORAGE_VARPTR + JVM_STORAGE_PARAM, + /* Переменные на которые можно делать указатели без кеширования */ + JVM_STORAGE_REGISTER_VAR, + JVM_STORAGE_STATIC_VAR, + JVM_STORAGE_FIELD_VAR, + JVM_STORAGE_PARAM_VAR, + JVM_STORAGE_PARAM_VARPTR, + /* Локальные переменные доступные локальным функциям */ + JVM_STORAGE_FRAME, + JVM_STORAGE_FRAME_VAR, + JVM_STORAGE_FRAME_PARAM, + JVM_STORAGE_FRAME_PARAM_VAR, + JVM_STORAGE_FRAME_PARAM_VARPTR }; struct gen_proc_t { + char * full_name; int label_id; + gen_var_t * frame_v; + gen_type_t * frame_t; struct gen_register_file * rf; struct gen_stack * stack; struct gen_class * class; @@ -61,7 +76,11 @@ struct gen_var_t enum gen_storage storage; gen_type_t * type; int reg; + + char * name; char * full_name; + gen_proc_t * p; + struct gen_class * class; }; struct gen_context_t