# HG changeset patch # User kono # Date 1131436551 -32400 # Node ID f8ba383dbc399f94870922fddebad232c20a0dce # Parent 834b5792bc5f7e63be0761d4795a52e07e1816b6 MIPS float arg/int arg mix fix. diff -r 834b5792bc5f -r f8ba383dbc39 mc-code-arm.c --- a/mc-code-arm.c Tue Nov 08 12:14:44 2005 +0900 +++ b/mc-code-arm.c Tue Nov 08 16:55:51 2005 +0900 @@ -185,12 +185,12 @@ #define lregister_name_low(i) reg_name[regv_l(i)] #define lregister_name_high(i) reg_name[regv_h(i)] -char *rn(i) { return register_name(i); } -char *fn(i) { return fregister_name(i); } -char *lln(i) { return lregister_name_low(i); } -char *lhn(i) { return lregister_name_high(i); } -int ll(i) { return regv_l(i); } -int lh(i) { return regv_h(i); } +char *rn(int i) { return register_name(i); } +char *fn(int i) { return fregister_name(i); } +char *lln(int i) { return lregister_name_low(i); } +char *lhn(int i) { return lregister_name_high(i); } +int ll(int i) { return regv_l(i); } +int lh(int i) { return regv_h(i); } #define is_int_reg(i) (0<=i&&idsp = cadr(reg); regs[n->dsp]= INPUT_REG; reg_var++; + freg_var++; cadddr(args)=SIZE_OF_INT; } } else if (type==FLOAT) { @@ -560,6 +561,7 @@ n->sc = FREGISTER; n->dsp = cadr(reg); regs[n->dsp]= INPUT_REG; + reg_var++; freg_var++; cadddr(args)=size(type); } @@ -1802,7 +1804,7 @@ t = n->ty; if(t==FLOAT) { offset+=SIZE_OF_FLOAT; reg_offset+=1; - if (reg==6||reg==7) { // int register case + if (reg==5||reg==6||reg==7) { // int register case tag = REGISTER; t = INT; } } diff -r 834b5792bc5f -r f8ba383dbc39 test/float.c --- a/test/float.c Tue Nov 08 12:14:44 2005 +0900 +++ b/test/float.c Tue Nov 08 16:55:51 2005 +0900 @@ -375,7 +375,7 @@ } double -test2(double f,int i) +test9(double f,int i) { double g,h; @@ -385,7 +385,7 @@ #endif g = f*2; h = f-0.5; - return h/3-(3.0-(g+3)*test2(f*0.5,i-1)/(h-1)); + return h/3-(3.0-(g+3)*test9(f*0.5,i-1)/(h-1)); }