Mercurial > hg-old > index.cgi
comparison lwasm/insn_gen.c @ 383:848d3cca8078
Fixed imm8 to actually use expression and also fixed gen mode to respect > and <
author | lost@starbug |
---|---|
date | Sat, 15 May 2010 20:01:58 -0600 |
parents | eacdae8a1575 |
children | b8549694b4c9 |
comparison
equal
deleted
inserted
replaced
382:eacdae8a1575 | 383:848d3cca8078 |
---|---|
92 { | 92 { |
93 l -> lint2 = 2; | 93 l -> lint2 = 2; |
94 goto out; | 94 goto out; |
95 } | 95 } |
96 | 96 |
97 if (l -> lint2 != -1) | |
98 goto out; | |
99 | |
97 // if we have a constant now, figure out dp vs nondp | 100 // if we have a constant now, figure out dp vs nondp |
98 if (lw_expr_istype(s, lw_expr_type_int)) | 101 if (lw_expr_istype(s, lw_expr_type_int)) |
99 { | 102 { |
100 v1 = lw_expr_intval(s); | 103 v1 = lw_expr_intval(s); |
101 if (((v1 >> 8) & 0xff) == (l -> dpval & 0xff)) | 104 if (((v1 >> 8) & 0xff) == (l -> dpval & 0xff)) |
433 EMITFUNC(insn_emit_imm8) | 436 EMITFUNC(insn_emit_imm8) |
434 { | 437 { |
435 lw_expr_t e; | 438 lw_expr_t e; |
436 | 439 |
437 lwasm_emitop(l, instab[l -> insn].ops[0]); | 440 lwasm_emitop(l, instab[l -> insn].ops[0]); |
441 e = lwasm_fetch_expr(l, 0); | |
438 lwasm_emitexpr(l, e, 1); | 442 lwasm_emitexpr(l, e, 1); |
439 } | 443 } |