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