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 }