Mercurial > hg-old > index.cgi
comparison src/lwasm.h @ 101:f59c0916753d
Fixed relative branches and PCR addressing to handle constant intra-section references properly
author | lost |
---|---|
date | Fri, 23 Jan 2009 03:36:27 +0000 |
parents | 81fc353d4d69 |
children | 0ee5f65bccf9 |
comparison
equal
deleted
inserted
replaced
100:579ac3697918 | 101:f59c0916753d |
---|---|
194 __lwasm_E__ void lwasm_emit(asmstate_t *as, lwasm_line_t *l, int b); | 194 __lwasm_E__ void lwasm_emit(asmstate_t *as, lwasm_line_t *l, int b); |
195 __lwasm_E__ void lwasm_emitop(asmstate_t *as, lwasm_line_t *l, int o); | 195 __lwasm_E__ void lwasm_emitop(asmstate_t *as, lwasm_line_t *l, int o); |
196 __lwasm_E__ int lwasm_lookupreg2(const char *reglist, char **str); | 196 __lwasm_E__ int lwasm_lookupreg2(const char *reglist, char **str); |
197 __lwasm_E__ int lwasm_lookupreg3(const char *rlist, const char **str); | 197 __lwasm_E__ int lwasm_lookupreg3(const char *rlist, const char **str); |
198 | 198 |
199 __lwasm_E__ lwasm_expr_stack_t *lwasm_evaluate_expr(asmstate_t *as, lwasm_line_t *l, const char *inp, const char **outp); | 199 __lwasm_E__ lwasm_expr_stack_t *lwasm_evaluate_expr(asmstate_t *as, lwasm_line_t *l, const char *inp, const char **outp, int flags); |
200 | 200 |
201 | 201 |
202 // return next context number and update it | 202 // return next context number and update it |
203 __lwasm_E__ int lwasm_next_context(asmstate_t *as); | 203 __lwasm_E__ int lwasm_next_context(asmstate_t *as); |
204 | 204 |
205 // also throw an error on expression eval failure | 205 // also throw an error on expression eval failure |
206 // return 0 on ok, -1 on error, 1 if a complex expression was returned | 206 // return 0 on ok, -1 on error, 1 if a complex expression was returned |
207 #define EXPR_NOFLAG 0 | 207 #define EXPR_NOFLAG 0 |
208 #define EXPR_PASS1CONST 1 // no forward references on pass 1 | 208 #define EXPR_PASS1CONST 1 // no forward references on pass 1 |
209 | 209 #define EXPR_SECTCONST 2 // resolve symbols local to section |
210 #define EXPR_REEVAL 4 // re-evaluate the expression | |
210 __lwasm_E__ int lwasm_expr_result(asmstate_t *as, lwasm_line_t *l, char **inp, int flag, int *val); | 211 __lwasm_E__ int lwasm_expr_result(asmstate_t *as, lwasm_line_t *l, char **inp, int flag, int *val); |
211 __lwasm_E__ int lwasm_expr_result2(asmstate_t *as, lwasm_line_t *l, char **inp, int flag, int *val, int slot); | 212 __lwasm_E__ int lwasm_expr_result2(asmstate_t *as, lwasm_line_t *l, char **inp, int flag, int *val, int slot); |
212 | 213 |
213 #undef __lwasm_E__ | 214 #undef __lwasm_E__ |
214 | 215 |