Mercurial > hg > CbC > old > device
changeset 758:7a19e49db6ac
i64 continue.. struct
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 16 Nov 2010 20:50:22 +0900 |
parents | 7cb7dd01507f |
children | b03d486a8a3e |
files | mc-codegen.c |
diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mc-codegen.c Tue Nov 16 19:44:54 2010 +0900 +++ b/mc-codegen.c Tue Nov 16 20:50:22 2010 +0900 @@ -4467,13 +4467,22 @@ e=list3n(LVAR,cadr(e) + dsp,ncaddr(e)); /* may have attribute */ break; case INDIRECT: - e=list2(INDIRECT,list3(ADD,cadr(e),list2(CONST,dsp))); + if (lp64) + e=list2(INDIRECT,list3(LADD,cadr(e),llist2(LCONST,dsp))); + else + e=list2(INDIRECT,list3(ADD,cadr(e),list2(CONST,dsp))); break; case IVAR: - e=list3(ADD,e,list2(CONST,dsp)); + if (lp64) + e=list3(LADD,e,llist2(LCONST,dsp)); + else + e=list3(ADD,e,list2(CONST,dsp)); break; default: - e=list2(INDIRECT,list3(ADD,e,list2(CONST,dsp))); + if (lp64) + e=list2(INDIRECT,list3(LADD,e,llist2(LCONST,dsp))); + else + e=list2(INDIRECT,list3(ADD,e,list2(CONST,dsp))); } } else { switch(car(e)) {