DEADSOFTWARE

JVM: Добавлена инициализация статических полей записи при и использовании NEW
[dsw-obn.git] / src / backends / jvm / generator-jvm.h
1 #define MAX_REGISTERS 256
3 struct gen_register_file
4 {
5 struct
6 {
7 bool used;
8 bool wide;
9 } reg[MAX_REGISTERS];
10 int num_used;
11 int max_used;
12 };
14 struct gen_stack
15 {
16 int pointer;
17 int max_pointer;
18 };
20 struct gen_class
21 {
22 char * full_name;
23 FILE * fp;
24 gen_proc_t * p;
25 };
27 enum gen_storage
28 {
29 JVM_STORAGE_UNKNOWN,
30 JVM_STORAGE_REGISTER,
31 JVM_STORAGE_STATIC,
32 JVM_STORAGE_FIELD
33 };
36 struct gen_proc_t
37 {
38 int label_id;
39 struct gen_register_file * rf;
40 struct gen_stack * stack;
41 struct gen_class * class;
42 };
44 struct gen_type_t
45 {
46 int rec_id;
47 struct gen_class * class;
48 };
50 struct gen_var_t
51 {
52 enum gen_storage storage;
53 int reg;
54 char * full_name;
55 char * desc;
56 };
58 struct gen_context_t
59 {
60 gen_module_t * current_m;
61 };
63 struct gen_module_t
64 {
65 struct gen_class * class;
66 int rec_id;
67 };