Mercurial > hg > CbC > old > device
diff mc-codegen.c @ 458:0bc9f3273aa7
*** empty log message ***
author | kono |
---|---|
date | Wed, 01 Dec 2004 23:14:50 +0900 |
parents | b8f95294eb77 |
children | 2a49dfe59540 |
line wrap: on
line diff
--- a/mc-codegen.c Wed Dec 01 22:04:36 2004 +0900 +++ b/mc-codegen.c Wed Dec 01 23:14:50 2004 +0900 @@ -2317,8 +2317,20 @@ extern void cmpdimm(int e, int csreg,int label,int cond) { - if (!chk) - code_cmpdimm(e, csreg,label,cond); + if (!chk) { + if (car(csreg)==CONST) { + switch(cond) { + case 1: case 0: + if (cond ^ (cadr(csreg)==e)) gen_jmp(label); + break; + case LT: + if ((cadr(csreg)>e)) gen_jmp(label); + break; + } + } else if (car(csreg)==REGISTER) { + code_cmpdimm(e, cadr(csreg),label,cond); + } else error(-1); + } } extern int