comparison mc-code-powerpc.c @ 408:b4375f895fd5

ARM struct copy, alloca fix
author kono
date Mon, 18 Oct 2004 23:44:38 +0900
parents 5b76a2bc1177
children 32c1914308db
comparison
equal deleted inserted replaced
407:dafb9110d70b 408:b4375f895fd5
1586 clear_ptr_cache(); 1586 clear_ptr_cache();
1587 code_save_stacks(); 1587 code_save_stacks();
1588 printf("\tli r5,%d\n",length); 1588 printf("\tli r5,%d\n",length);
1589 printf("\tmr r4,%s\n",frn); 1589 printf("\tmr r4,%s\n",frn);
1590 printf("\tmr r3,%s\n",trn); 1590 printf("\tmr r3,%s\n",trn);
1591 //if (offset)
1592 // code_add(3,offset,3);
1591 /* overrap must be allowed */ 1593 /* overrap must be allowed */
1592 printf("\tbl L_%s$stub\n",memmove); 1594 printf("\tbl L_%s$stub\n",memmove);
1593 extern_define(memmove,0,FUNCTION,1); 1595 extern_define(memmove,0,FUNCTION,1);
1594 fix=0; 1596 fix=0;
1595 set_ireg(RET_REGISTER,0); 1597 set_ireg(RET_REGISTER,0);
2044 arg = get_register_var(0); 2046 arg = get_register_var(0);
2045 g_expr_u(assign_expr0(arg,list2(ADDRESS,car(e3)),INT,INT)); 2047 g_expr_u(assign_expr0(arg,list2(ADDRESS,car(e3)),INT,INT));
2046 car(e3)=arg; 2048 car(e3)=arg;
2047 reg_arg_list = list2(arg,reg_arg_list); 2049 reg_arg_list = list2(arg,reg_arg_list);
2048 if (car(arg)==REGISTER) use_input_reg(cadr(arg),1); 2050 if (car(arg)==REGISTER) use_input_reg(cadr(arg),1);
2051 else car(e3) = rvalue_t(arg,INT);
2049 } 2052 }
2050 } 2053 }
2051 stargs = list4(e3,stargs,nargs,reg_arg); 2054 stargs = list4(e3,stargs,nargs,reg_arg);
2052 } 2055 }
2053 increment_function_arg(e3,&nargs,&reg_arg,&freg_arg); 2056 increment_function_arg(e3,&nargs,&reg_arg,&freg_arg);