diff options
| author | jiang <30155751@qq.com> | 2014-05-04 13:18:31 +0800 |
|---|---|---|
| committer | jiang <30155751@qq.com> | 2014-05-04 13:18:31 +0800 |
| commit | 5e56fb635a23484d8fda8b54a40900d0a54b0ba1 (patch) | |
| tree | 6f7491150cfe01700c9863946906203adad0de13 /il-gen.c | |
| parent | 089dea355a28da44376ce4f5195baa4b4e0b217d (diff) | |
| download | tinycc-5e56fb635a23484d8fda8b54a40900d0a54b0ba1.tar.gz tinycc-5e56fb635a23484d8fda8b54a40900d0a54b0ba1.tar.bz2 | |
Return to: e20c1eb99e1003c1e59522c136dbb15c52d7cc7c
1: The new patch for the other machines still have the problem.
2: libcrt Rename (what if gcc had libcrt as well)
3: parse_number exact problem
4: VT_VLS is to allow tcc
Compile the following
int b = 9;
struct st {
int a;
int b [b]
};
struct st st1;
st1.b [8] = 9;
printf ("% d \ n", st1.b [8]);
tcc a problem. Due to problems in front, and now can not be improved
5: they commit much, bug difficult to lock, you can not let other people help develop.
6: ('\ t') too
Thanks to Michael and Ray
Their criticism I have benefited!
Diffstat (limited to 'il-gen.c')
| -rw-r--r-- | il-gen.c | 15 |
1 files changed, 1 insertions, 14 deletions
@@ -516,7 +516,7 @@ int gtst(int inv, int t) break; } t = out_opj(c, t); - } else if (v == VT_JMP || v == VT_JMPI) { + } else { /* VT_JMP || VT_JMPI */ /* && or || optimization */ if ((v & 1) == inv) { /* insert vtop->c jump list in t */ @@ -529,19 +529,6 @@ int gtst(int inv, int t) t = gjmp(t); gsym(vtop->c.i); } - } else { - if (is_float(vtop->t)) { - vpushi(0); - gen_op(TOK_NE); - } - if ((vtop->r & (VT_VALMASK | VT_LVAL | VT_FORWARD)) == VT_CONST) { - /* constant jmp optimization */ - if ((vtop->c.i != 0) != inv) - t = gjmp(t); - } else { - v = gv(RC_INT); - t = out_opj(IL_OP_BRTRUE - inv, t); - } } vtop--; return t; |
