Mercurial > hg > CbC > old > device
diff mc-codegen.c @ 536:a349f9c2aef5 inline-test-passed
MIPS set_ireg/lreg interferance
author | kono |
---|---|
date | Sat, 31 Dec 2005 14:26:40 +0900 |
parents | 0f24e1dba811 |
children | a6c9ffbf3f08 |
line wrap: on
line diff
--- a/mc-codegen.c Sat Dec 31 03:14:03 2005 +0900 +++ b/mc-codegen.c Sat Dec 31 14:26:40 2005 +0900 @@ -3135,7 +3135,7 @@ str_ret.dsp = 0; str_ret.ty = 0; type=list2(POINTER,t); /* fix all argument's offset */ - sz = size(type); + sz = inmode?1:size(type); for(t=fnptr->dsp;t;t=cadr(t)) { n=(NMTBL *)caddr(t); n->dsp += sz; @@ -3145,7 +3145,9 @@ else { args = 0; def(&str_ret,0); - struct_return = list3(list3(LVAR,str_ret.dsp,0),sz,type); + struct_return = inmode + ?list3(list3(IVAR,str_ret.dsp,0),sz,type) + :list3(list3(LVAR,str_ret.dsp,0),sz,type); caddr(fnptr->ty) = glist2(POINTER,caddr(fnptr->ty)); } type = type_save;