Mercurial > hg > CbC > old > device
comparison mc-codegen.c @ 104:c21aeb12b78b
*** empty log message ***
author | kono |
---|---|
date | Mon, 17 Mar 2003 20:57:01 +0900 |
parents | f849af4b5ea9 |
children | 7e3d59e56a53 |
comparison
equal
deleted
inserted
replaced
103:f849af4b5ea9 | 104:c21aeb12b78b |
---|---|
467 n = (NMTBL*)caddr(args); | 467 n = (NMTBL*)caddr(args); |
468 type = n->ty; | 468 type = n->ty; |
469 if (scalar(type)) { | 469 if (scalar(type)) { |
470 if(reg_var<max_input_register_var) { | 470 if(reg_var<max_input_register_var) { |
471 n->sc = REGISTER; | 471 n->sc = REGISTER; |
472 if ((n->dsp = get_input_register_var(reg_var++)) <0) { | 472 n->dsp = cadr(get_input_register_var(reg_var)); |
473 error(-1); return; | 473 regv[reg_var]= 1; |
474 } | 474 regs[reg_var]= INPUT_REG; |
475 reg_var++; | 475 reg_var++; |
476 cadddr(fnptr->dsp)=size_of_int; | 476 cadddr(fnptr->dsp)=size_of_int; |
477 } | 477 } |
478 } else if ((type==FLOAT||type==DOUBLE)&&stmode==REGISTER) { | 478 } else if ((type==FLOAT||type==DOUBLE)&&stmode==REGISTER) { |
479 if(freg_var<max_input_fregister_var) { | 479 if(freg_var<max_input_fregister_var) { |
480 n->sc = DREGISTER; | 480 n->sc = DREGISTER; |
481 if ((n->dsp = get_input_fregister_var(freg_var++)) <0) { | 481 n->dsp = cadr(get_input_fregister_var(freg_var)); |
482 error(-1); return; | 482 fregv[reg_var]= 1; |
483 } | 483 fregs[reg_var]= INPUT_REG; |
484 freg_var++; | 484 freg_var++; |
485 cadddr(fnptr->dsp)=size_of_double; | 485 cadddr(fnptr->dsp)=size_of_double; |
486 } | 486 } |
487 } | 487 } |
488 args = cadr(args); | 488 args = cadr(args); |
713 fregs = 0; | 713 fregs = 0; |
714 for (e3 = reverse0(caddr(e1)); e3; e3 = cadr(e3)) { | 714 for (e3 = reverse0(caddr(e1)); e3; e3 = cadr(e3)) { |
715 e2 = car(e3); sz = size(ty=caddr(e3)); | 715 e2 = car(e3); sz = size(ty=caddr(e3)); |
716 if (scalar(ty) && | 716 if (scalar(ty) && |
717 regs < MAX_CODE_INPUT_REGISTER_VAR) { | 717 regs < MAX_CODE_INPUT_REGISTER_VAR) { |
718 target=list4(list2(REGISTER,get_input_register_var(regs++)), | 718 target=list4(get_input_register_var(regs++), |
719 target,ty,e2); | 719 target,ty,e2); |
720 } else if ((ty==DOUBLE||ty==FLOAT) && | 720 } else if ((ty==DOUBLE||ty==FLOAT) && |
721 fregs < MAX_CODE_INPUT_DREGISTER_VAR) { | 721 fregs < MAX_CODE_INPUT_DREGISTER_VAR) { |
722 target=list4(list2(DREGISTER,get_input_fregister_var(fregs++)), | 722 target=list4(get_input_fregister_var(fregs++), |
723 target,ty,e2); | 723 target,ty,e2); |
724 } else { | 724 } else { |
725 target=list4(list2(LVAR,0), target,ty,e2); | 725 target=list4(list2(LVAR,0), target,ty,e2); |
726 arg_size += sz; | 726 arg_size += sz; |
727 } | 727 } |