Mercurial > hg > CbC > old > device
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,®_arg,&freg_arg); | 2056 increment_function_arg(e3,&nargs,®_arg,&freg_arg); |