diff options
| -rw-r--r-- | gen_code.c | 14 | ||||
| -rw-r--r-- | node.c | 2 | ||||
| -rw-r--r-- | scope.c | 1 | ||||
| -rw-r--r-- | tree.h | 1 | 
4 files changed, 10 insertions, 8 deletions
| @@ -66,14 +66,14 @@ ptree *t;  	if ((!t->r) && (!t->l) && t->label == 0){  		switch (t->type) {  		case ID: -			fprintf(stdout, "mov\t%d(%%rbp), %s\n", +			fprintf(stdout, "movq\t%d(%%rbp), %s\n",  					- t->attr.nval->offset * OFFSET_SIZE, *reg_ptr);  			break;  		case INUM: -			fprintf(stdout, "mov\t$%d, %s\n",t->attr.ival, *reg_ptr); +			fprintf(stdout, "movq\t$%d, %s\n",t->attr.ival, *reg_ptr);  			break;  		default: -			fprintf(stdout, "mov OTHER"); +			fprintf(stdout, "movq OTHER");  		}  	}  	/*case 0 @@ -82,13 +82,13 @@ ptree *t;  		/*TODO check if correct*/  		switch (t->type) {  		case ID: -			fprintf(stdout, "mov\t%s, %s\n",t->attr.nval->name, *reg_ptr); +			fprintf(stdout, "movq\t%s, %s\n",t->attr.nval->name, *reg_ptr);  			break;  		case INUM: -			fprintf(stdout, "mov\t$%d, %s\n",t->attr.ival, *reg_ptr); +			fprintf(stdout, "movq\t$%d, %s\n",t->attr.ival, *reg_ptr);  			break;  		default: -			fprintf(stdout, "mov OTHER"); +			fprintf(stdout, "movq OTHER");  		}  	}  	/*case 1 @@ -149,7 +149,7 @@ ptree *t;  			gen_label(t->r);  			print_tree(t);  			GEN_EXPR(t->r); -			fprintf(stdout, "mov %s, %d(%%rbp)\n", *reg_ptr, +			fprintf(stdout, "movq %s, %d(%%rbp)\n", *reg_ptr,  					- t->l->attr.nval->offset * OFFSET_SIZE);  		} else {  			yyerror(FLOAT_ERROR); @@ -20,6 +20,8 @@ char *str;  	p->func_info = NULL;  	p->array_info = NULL; +	p->offset = 0; +  	return p;  } @@ -21,7 +21,6 @@ scope* mkscope()  	p->prev = NULL;  	p->ret_var= NULL; -	p->offset = 2;  	return p;  } @@ -29,6 +29,7 @@ ptree* mkinum(int);  ptree* mkrnum(float);  ptree* mkop(int, int, ptree*, ptree*); +int update_offsets(ptree*, int);  void update_type_info(ptree*, ptree*);  void set_ret_type(ptree*); | 
