Mercurial > hg > CbC > old > device
diff mc-code-spu.c @ 716:21f770a3b298
*** empty log message ***
author | kono |
---|---|
date | Fri, 16 Nov 2007 21:46:20 +0900 |
parents | 83e18db76c96 |
children | c1542a2482b1 |
line wrap: on
line diff
--- a/mc-code-spu.c Wed Nov 14 19:36:55 2007 +0900 +++ b/mc-code-spu.c Fri Nov 16 21:46:20 2007 +0900 @@ -250,8 +250,8 @@ #define ARG_LVAR_OFFSET 0x10000000 -#define round16(i) ((i+0xf)&~0xf) -#define round4(i) ((i+3)&~3) +#define round16(i) align(i,16) +#define round4(i) align(i,4) /* @@ -452,6 +452,7 @@ size_of_double = SIZE_OF_DOUBLE; size_of_longlong = SIZE_OF_LONGLONG; endian = ENDIAN; + struct_align = 16; init_src = init_src0; } @@ -2491,13 +2492,7 @@ } clear_ptr_cache(); code_call(e2,fn,jmp); - for(;reg_arg_list;reg_arg_list=cadr(reg_arg_list)) { - arg = car(reg_arg_list); - if (car(arg)==REGISTER||car(arg)==DREGISTER||car(arg)==FREGISTER - ||car(arg)==LREGISTER) - free_register(cadr(arg)); - else if (car(arg)==LVAR&&cadr(arg)<0) free_lvar(cadr(arg)); - } + free_register_var(reg_arg_list); for(i=1;i<MAX_INPUT_REGISTER_VAR;i++) { free_register(i); } @@ -3378,7 +3373,7 @@ } void -align(int t) +code_align(int t) { int d; switch(t) {