Mercurial > hg > CbC > old > device
diff mc-code-mips.c @ 556:ef225b589888 s-dandy-work
s-dandy fix
emit_copy register parallel rassign
struct init alignment
MIPS fregister save
author | kono |
---|---|
date | Fri, 06 Jan 2006 21:19:13 +0900 (2006-01-06) |
parents | ac181d7f9c82 |
children | d6ff45d719a5 |
line wrap: on
line diff
--- a/mc-code-mips.c Fri Jan 06 01:16:52 2006 +0900 +++ b/mc-code-mips.c Fri Jan 06 21:19:13 2006 +0900 @@ -26,7 +26,7 @@ #define __inline__\n\ #define __STDC__ 1\n\ #define __SIZE_TYPE__ int\n\ -#define __externsion__\n\ +#define __extension__\n\ #define __attribute__(a)\n\ #define __flexarr\n\ #define __WCHAR_TYPE__ int\n\ @@ -1542,6 +1542,7 @@ char *trn; char *drn; char *memmove = "memmove"; + int l; int dreg = get_register(); if (!dreg) error(-1); drn = register_name(dreg); @@ -1587,10 +1588,11 @@ } clear_ptr_cache(); code_save_stacks(); + + l = list3(4,0,to); + l = list3(5,l,from); + parallel_rassign(l); printf("\tli $6,%d\n",length>0?length:-length); - printf("\tmove $5,%s\n",frn); - // offset should not be used - printf("\tmove $4,%s\n",trn); /* overrap must be allowed */ if (is_code(fnptr)) { printf("\tla\t$25,%s\n",memmove); @@ -5269,7 +5271,7 @@ for(i=0;i<freg_sp;i++) { if ((reg=freg_stack[i])>=0) { code_dassign_lvar( - (freg_stack[i]=new_lvar(SIZE_OF_DOUBLE)),reg,1); + (freg_stack[i]=new_lvar(SIZE_OF_FLOAT)),reg,0); freg_stack[i]= freg_stack[i]-REG_LVAR_OFFSET; free_register(reg); }