X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fbackends%2Fjvm%2Fgenerator-jvm.h;h=d5abe38fe3fa39a99a0ce38bdd363ea7d3f91bae;hb=f89bbec89e4dd5c7cd15954f0c02370fb9127518;hp=3ccc9f50ac3cbdfd6563aab5d0ef208320e90a27;hpb=238463393ee054792c7d75374ce6f874a6963ce3;p=dsw-obn.git diff --git a/src/backends/jvm/generator-jvm.h b/src/backends/jvm/generator-jvm.h index 3ccc9f5..d5abe38 100644 --- a/src/backends/jvm/generator-jvm.h +++ b/src/backends/jvm/generator-jvm.h @@ -1,6 +1,7 @@ #define MAX_REGISTERS 256 -struct gen_register_file { +struct gen_register_file +{ struct { bool used; @@ -8,18 +9,35 @@ struct gen_register_file { } reg[MAX_REGISTERS]; int num_used; int max_used; - struct gen_register_file * up; }; +struct gen_stack +{ + int pointer; + int max_pointer; +}; + +struct gen_class +{ + FILE * fp; + gen_proc_t * p; +}; + + + + struct gen_proc_t { + int label_id; struct gen_register_file * rf; + struct gen_stack * stack; + struct gen_class * class; }; struct gen_type_t { int rec_id; - FILE * fp; + struct gen_class * class; }; struct gen_var_t @@ -34,13 +52,11 @@ struct gen_block_t struct gen_context_t { - gen_module_t * m; - struct gen_register_file * rf; - int label_id; + gen_module_t * current_m; }; struct gen_module_t { + struct gen_class * class; int rec_id; - FILE * fp; };