annotate mc-code.h @ 335:4f98dc4b5fd8

bit-field continue... code-generation debug
author kono
date Fri, 25 Jun 2004 01:01:41 +0900
parents f25aa4f03198
children 0150de6a3244
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
61
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
1 /* function required by mc-codegen.c
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
2 mc-code-*.c have to provied these
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
3 */
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
4
173
3b33c7daae95 *** empty log message ***
kono
parents: 168
diff changeset
5
144
56211702f298 creg/freg continue
kono
parents: 139
diff changeset
6 #define MAX_MAX 50
56211702f298 creg/freg continue
kono
parents: 139
diff changeset
7 #define INPUT_REG 2 /* input register ( can be reused ) */
56211702f298 creg/freg continue
kono
parents: 139
diff changeset
8 #define USING_REG 1 /* unreusable register usage */
56211702f298 creg/freg continue
kono
parents: 139
diff changeset
9
173
3b33c7daae95 *** empty log message ***
kono
parents: 168
diff changeset
10 extern char *l_include_path[];
3b33c7daae95 *** empty log message ***
kono
parents: 168
diff changeset
11
327
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
12 extern int disp_offset;
254
5aaca4f9d96b *** empty log message ***
kono
parents: 239
diff changeset
13
83
f3f75911d62c *** empty log message ***
kono
parents: 82
diff changeset
14 extern int MAX_REGISTER;
f3f75911d62c *** empty log message ***
kono
parents: 82
diff changeset
15 extern int MAX_REGISTGER_VAR;
f3f75911d62c *** empty log message ***
kono
parents: 82
diff changeset
16 extern int MAX_FREGISTER;
103
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
17
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
18 extern int MAX_INPUT_REGISTER_VAR;
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
19 extern int MAX_CODE_INPUT_REGISTER_VAR;
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
20 extern int MAX_INPUT_DREGISTER_VAR;
138
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
21 extern int MAX_CODE_INPUT_FREGISTER_VAR;
103
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
22 extern int MAX_CODE_INPUT_DREGISTER_VAR;
99
53899975154c *** empty log message ***
kono
parents: 97
diff changeset
23
94
1ad7045741a7 float dbinop fix
kono
parents: 93
diff changeset
24 #define REG_LVAR_OFFSET 2
83
f3f75911d62c *** empty log message ***
kono
parents: 82
diff changeset
25
327
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
26
238
d64e9a6a66bd ia32 long long code written.
kono
parents: 229
diff changeset
27 extern int code_lassop_p;
d64e9a6a66bd ia32 long long code written.
kono
parents: 229
diff changeset
28
327
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
29 /* used by mc-codegen */
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
30
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
31 extern void gexpr_init(void);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
32 extern void emit_init(void); /* called before delcalartion */
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
33 extern void gen_gdecl(char *n, int gpc);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
34
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
35 extern void code_init(); /* called only once */
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
36 extern void emit_reinit(); /* called for each file */
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
37
61
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
38 extern void gexpr_code_init(void);
327
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
39
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
40 extern void code_enter(char *name);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
41 extern void code_enter1(int args);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
42 extern void code_leave(char *name);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
43 extern void enter(char *name);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
44 extern void enter1();
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
45 extern void leave(int control, char *name);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
46 extern void jmp(int l);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
47
105
7e3d59e56a53 save register ( incomplete )
kono
parents: 104
diff changeset
48 extern int get_register_var(NMTBL *n);
138
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
49 extern int get_dregister_var(NMTBL *n,int d);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
50 extern int get_lregister_var(NMTBL *n);
126
1d1612fe705a *** empty log message ***
kono
parents: 119
diff changeset
51 extern int get_input_register_var(int,NMTBL *,int);
138
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
52 extern int get_input_dregister_var(int,NMTBL *,int,int);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
53 extern int get_input_lregister_var(int,NMTBL *,int);
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
54 extern void emit_push();
61
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
55 extern int emit_pop(int type);
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
56 extern void gexpr_code_init();
95
185d2cc6a3a9 *** empty log message ***
kono
parents: 94
diff changeset
57 extern int code_csvalue();
147
cb7aa0089681 creg/ireg done for powerpc.
kono
parents: 144
diff changeset
58 extern void code_gexpr(int e);
287
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
59 extern void code_cmpdimm(int e, int csreg,int label,int cond);
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
60 extern void code_gvar(int e1,int reg);
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
61 extern void code_rgvar(int e1,int reg);
165
kono
parents: 162
diff changeset
62 extern void code_crgvar(int e1,int reg,int sign,int sz);
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
63 extern void code_lvar(int e2,int reg);
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
64 extern void code_register(int e2,int reg);
94
1ad7045741a7 float dbinop fix
kono
parents: 93
diff changeset
65 extern void code_rlvar(int e2,int reg);
165
kono
parents: 162
diff changeset
66 extern void code_crlvar(int e2,int reg,int sign,int sz);
109
e09f9de6f5d3 *** empty log message ***
kono
parents: 108
diff changeset
67 extern void code_fname(NMTBL *n,int reg);
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
68 extern void code_const(int e2,int reg);
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
69 extern void code_neg(int reg);
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
70 extern void code_not(int reg);
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
71 extern void code_lnot(int reg);
168
b1297c82e926 cpostinc removal
kono
parents: 167
diff changeset
72 extern void code_preinc(int e1,int e2,int dir,int sign,int sz,int reg);
b1297c82e926 cpostinc removal
kono
parents: 167
diff changeset
73 extern void code_postinc(int e1,int e2,int dir,int sign,int sz,int reg);
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
74 extern void code_return(int reg);
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
75 extern void code_environment(int reg);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
76 extern void code_bool(int e1,int reg);
287
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
77 extern void code_cmp_crgvar(int e1,int reg,int sz,int label,int cond);
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
78 extern void code_cmp_crlvar(int e1,int reg,int sz,int label,int cond);
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
79 extern void code_cmp_rgvar(int e1,int reg,int label,int cond);
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
80 extern void code_cmp_rlvar(int e1,int reg,int label,int cond);
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
81 extern void code_cmp_register(int e2,int label,int cond);
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
82 extern void code_string(int e1,int reg);
61
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
83 extern void emit_copy(int from,int to,int length,int offset,int value,int det);
94
1ad7045741a7 float dbinop fix
kono
parents: 93
diff changeset
84 extern int function(int e1);
61
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
85 extern void code_frame_pointer(int e3);
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
86 extern void code_fix_frame_pointer(int disp_offset);
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
87 extern void code_jmp(char *s);
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
88 extern void code_indirect_jmp(int e2);
196
5f70abd9453d *** empty log message ***
kono
parents: 195
diff changeset
89
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
90 extern int code_rindirect(int e1, int reg,int offset, int us);
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
91 extern int code_crindirect(int e1, int reg,int offset, int us);
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
92 extern int code_srindirect(int e1, int reg,int offset, int us);
196
5f70abd9453d *** empty log message ***
kono
parents: 195
diff changeset
93 #if FLOAT_CODE
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
94 extern int code_drindirect(int e1, int reg,int offset, int d);
196
5f70abd9453d *** empty log message ***
kono
parents: 195
diff changeset
95 #endif
5f70abd9453d *** empty log message ***
kono
parents: 195
diff changeset
96 #if LONGLONG_CODE
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
97 extern int code_lrindirect(int e1, int reg,int offset, int us);
196
5f70abd9453d *** empty log message ***
kono
parents: 195
diff changeset
98 #endif
5f70abd9453d *** empty log message ***
kono
parents: 195
diff changeset
99
103
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
100 extern void code_assign_gvar(int e2,int reg,int byte);
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
101 extern void code_assign_lvar(int e2,int reg,int byte);
111
7aa449aff3e6 floating point
kono
parents: 109
diff changeset
102 extern void code_assign_register(int e2,int byte,int reg);
118
07b91b625f84 assignment optimization
kono
parents: 116
diff changeset
103 extern void code_assign(int e2,int byte,int reg);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
104 extern void code_register_assop(int e2,int reg,int op,int byte);
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
105 extern void code_assop(int op,int reg,int byte,int sign);
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
106 extern void tosop(int op,int reg,int oreg);
66
0b068058dd67 *** empty log message ***
kono
parents: 61
diff changeset
107 extern void code_opening(char *filename);
0b068058dd67 *** empty log message ***
kono
parents: 61
diff changeset
108 extern void code_closing();
280
affb054fe920 lrexpr fix. rexpr in MIPS fix.
kono
parents: 263
diff changeset
109 extern void rexpr(int e1, int l1, int cond,int t);
61
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
110 extern void jmp(int l);
187
dffcccf8b1cb nested COND
kono
parents: 173
diff changeset
111 extern int code_get_fixed_creg(int reg,int type);
dffcccf8b1cb nested COND
kono
parents: 173
diff changeset
112 extern void code_set_fixed_creg(int reg,int mode,int type);
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
113 extern void code_set_return_register(int mode);
66
0b068058dd67 *** empty log message ***
kono
parents: 61
diff changeset
114 extern void global_table(void);
92
e7f8515ba882 *** empty log message ***
kono
parents: 89
diff changeset
115 extern void code_label(int labelno);
e7f8515ba882 *** empty log message ***
kono
parents: 89
diff changeset
116
189
f53d70110377 immediate instructions.
kono
parents: 187
diff changeset
117 extern int code_const_op_p(int op,int v);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
118 extern void oprtc(int op,int reg,int v);
189
f53d70110377 immediate instructions.
kono
parents: 187
diff changeset
119
61
8ffb8ca3fe34 separation of architecture dependent part.
kono
parents:
diff changeset
120
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
121 #if FLOAT_CODE
81
f94ca1168520 float first try...
kono
parents: 66
diff changeset
122 /* floating point part */
f94ca1168520 float first try...
kono
parents: 66
diff changeset
123
229
d793c84b3679 *** empty log message ***
kono
parents: 221
diff changeset
124 extern void drexpr(int e1, int e2,int l1, int op,int cond);
81
f94ca1168520 float first try...
kono
parents: 66
diff changeset
125 extern int dpop_register();
f94ca1168520 float first try...
kono
parents: 66
diff changeset
126 extern int emit_dpop(int);
138
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
127 extern void code_dregister(int e2,int reg,int d);
287
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
128 extern void code_cmp_dregister(int,int,int,int);
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
129 extern void code_cmp_drgvar(int,int,int,int,int);
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
130 extern void code_cmp_drlvar(int,int,int,int,int);
103
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
131 extern void code_dassign(int,int,int);
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
132 extern void code_dassign_gvar(int,int,int);
f849af4b5ea9 *** empty log message ***
kono
parents: 102
diff changeset
133 extern void code_dassign_lvar(int,int,int);
138
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
134 extern void code_dassign_dregister(int e2,int d,int reg);
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
135 extern void code_dconst(int,int,int);
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
136 extern void code_dneg(int,int);
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
137 extern void code_drgvar(int,int,int);
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
138 extern void code_drlvar(int,int,int);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
139 extern void dtosop(int,int,int);
138
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
140 extern void emit_dpop_free(int,int);
133
7d436c08e949 separate float / double flow
kono
parents: 126
diff changeset
141 extern void emit_dpush(int);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
142 extern void code_i2d();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
143 extern void code_d2i();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
144 extern void code_u2d();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
145 extern void code_d2u();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
146 extern void code_d2f();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
147 extern void code_f2d();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
148 extern void code_f2i();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
149 extern void code_f2u();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
150 extern void code_i2f();
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
151 extern void code_u2f();
133
7d436c08e949 separate float / double flow
kono
parents: 126
diff changeset
152
81
f94ca1168520 float first try...
kono
parents: 66
diff changeset
153
107
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
154 extern void code_dpreinc(int e1,int e2,int d,int reg);
06f72222d6b5 prevent destorying function argument (incomeplete)
kono
parents: 105
diff changeset
155 extern void code_dpostinc(int e1,int e2,int d,int reg);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
156 extern void code_dassop(int op,int reg,int d);
219
6190d24e178c long long code generation level 4
kono
parents: 218
diff changeset
157 extern void code_register_dassop(int reg,int op,int d);
89
917947ffeb7c power pc version
kono
parents: 85
diff changeset
158
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
159 #endif
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
160
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
161 #if LONGLONG_CODE
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
162 /* 64bit int part */
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
163
229
d793c84b3679 *** empty log message ***
kono
parents: 221
diff changeset
164 extern void lrexpr(int e1, int e2,int l1, int op,int cond);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
165 extern int lpop_register();
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
166 extern int emit_lpop();
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
167 extern void code_lregister(int e2,int reg);
287
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
168 extern void code_cmp_lregister(int,int,int);
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
169 extern void code_cmp_lrgvar(int,int,int,int);
a0779a414855 *** empty log message ***
kono
parents: 280
diff changeset
170 extern void code_cmp_lrlvar(int,int,int,int);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
171 extern void code_lassign(int,int);
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
172 extern void code_lassign_gvar(int,int);
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
173 extern void code_lassign_lvar(int,int);
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
174 extern void code_lassign_lregister(int e2,int reg);
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
175 extern void code_lconst(int,int);
212
32f54ab63b35 *** empty log message ***
kono
parents: 205
diff changeset
176 extern void code_lneg(int);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
177 extern void code_lrgvar(int,int);
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
178 extern void code_lrlvar(int,int);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
179 extern void ltosop(int,int,int);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
180 extern void emit_lpop_free(int);
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
181 extern void emit_lpush();
213
kono
parents: 212
diff changeset
182 extern int code_lconst_op_p(int op,int e);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
183 extern void loprtc(int op,int reg, int e);
239
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
184 extern void code_i2ll(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
185 extern void code_i2ull(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
186 extern void code_u2ll(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
187 extern void code_u2ull(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
188 extern void code_ll2i(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
189 extern void code_ll2u(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
190 extern void code_ull2i(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
191 extern void code_ull2u(int reg);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
192 #if FLOAT_CODE
239
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
193 extern void code_d2ll(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
194 extern void code_d2ull(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
195 extern void code_f2ll(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
196 extern void code_f2ull(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
197 extern void code_ll2d(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
198 extern void code_ll2f(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
199 extern void code_ull2d(int reg);
1849e0079f08 ia32 long long continue
kono
parents: 238
diff changeset
200 extern void code_ull2f(int reg);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
201 #endif
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
202
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
203
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
204
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
205
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
206 extern void code_lpreinc(int e1,int e2,int reg);
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
207 extern void code_lpostinc(int e1,int e2,int reg);
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
208 extern void code_lassop(int op,int reg);
219
6190d24e178c long long code generation level 4
kono
parents: 218
diff changeset
209 extern void code_register_lassop(int reg,int op);
195
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
210
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
211 #endif
c193120ee2a6 *** empty log message ***
kono
parents: 189
diff changeset
212
313
f73b93de216a alloca done for ia32, powerpc, mips
kono
parents: 308
diff changeset
213 extern void code_alloca(int e,int reg);
137
9fb09db54436 fix powerpc get_fregister_var's regs error.
kono
parents: 133
diff changeset
214 extern void code_arg_register(NMTBL *fnptr);
89
917947ffeb7c power pc version
kono
parents: 85
diff changeset
215
917947ffeb7c power pc version
kono
parents: 85
diff changeset
216 extern int get_register(void);
138
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
217 extern int get_dregister(int);
205
a50f90d0b63a *** empty log message ***
kono
parents: 196
diff changeset
218 extern int get_lregister(void);
89
917947ffeb7c power pc version
kono
parents: 85
diff changeset
219 extern void free_register(int i) ;
917947ffeb7c power pc version
kono
parents: 85
diff changeset
220 extern int pop_register(void);
917947ffeb7c power pc version
kono
parents: 85
diff changeset
221 extern void emit_pop_free(int xreg);
308
e1d17d6adfcc struct field init (first try, no compile error)
kono
parents: 304
diff changeset
222 extern void emit_data(int e, int t, NMTBL *n);
e1d17d6adfcc struct field init (first try, no compile error)
kono
parents: 304
diff changeset
223 extern void emit_data_closing(NMTBL *n);
e1d17d6adfcc struct field init (first try, no compile error)
kono
parents: 304
diff changeset
224
89
917947ffeb7c power pc version
kono
parents: 85
diff changeset
225
221
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
226 // extern int use_int(int);
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
227 // extern int use_float(int);
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
228 // extern int use_double(int);
ceae585186d9 *** empty log message ***
kono
parents: 219
diff changeset
229 // extern int use_longlong(int);
138
e6e77af048a1 float/dobule configuration
kono
parents: 137
diff changeset
230
300
86255dd7f148 table done. (?)
kono
parents: 287
diff changeset
231 #if CASE_CODE
86255dd7f148 table done. (?)
kono
parents: 287
diff changeset
232 extern int code_table_jump_p();
302
bea7ab2fb218 switch table jump finished.
kono
parents: 300
diff changeset
233 extern void code_table_jump(int table,int csvalue,int delta,int max,int min,int dlabel);
300
86255dd7f148 table done. (?)
kono
parents: 287
diff changeset
234 extern void code_table_open(int table);
86255dd7f148 table done. (?)
kono
parents: 287
diff changeset
235 extern void code_table_value(int label,int table);
86255dd7f148 table done. (?)
kono
parents: 287
diff changeset
236 extern void code_table_close();
86255dd7f148 table done. (?)
kono
parents: 287
diff changeset
237 #endif
86255dd7f148 table done. (?)
kono
parents: 287
diff changeset
238
316
22d92986c7f7 asm, valued statement, local decls continue...
kono
parents: 313
diff changeset
239 #if ASM_CODE
320
183726ccd83d asm minor fix. ia32 table jmp fix.
kono
parents: 316
diff changeset
240
327
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
241 extern void code_asm(char *asm_str,int repl);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
242 extern int code_asm_operand(char *p,int e1,int mode,int repl,int n,int repl0);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
243 extern void code_free_asm_operand(int repl);
320
183726ccd83d asm minor fix. ia32 table jmp fix.
kono
parents: 316
diff changeset
244
316
22d92986c7f7 asm, valued statement, local decls continue...
kono
parents: 313
diff changeset
245 #endif
22d92986c7f7 asm, valued statement, local decls continue...
kono
parents: 313
diff changeset
246
327
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
247 extern void gen_comment(char *s);
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
248
329
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
249 #if BIT_FIELD_CODE
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
250
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
251 /* bit field alignment calcuration */
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
252
331
f25aa4f03198 bit-field continue...
kono
parents: 329
diff changeset
253 extern int code_bit_field_disp(int type,int *offset,int *bfd,int *sz);
329
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
254
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
255 /* bit field value */
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
256
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
257 /* reg contains address of bit_field, result should goto reg */
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
258 extern void code_bit_field(int type,int bit_offset,int reg);
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
259
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
260 /* bit field replacement */
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
261
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
262 extern void code_bit_replace(int value,int lvalue,int type,int bit_offset);
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
263 /* register, register */
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
264
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
265 #endif
4c8f8ef8c0cf bit field continue...
kono
parents: 327
diff changeset
266
327
da2e3f2d127d macro/codegen reorganization
kono
parents: 320
diff changeset
267 /* end */