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)) {