亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cc3.c

?? MIPS系列CPU下的測試代碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
        }
      }
    else is[ST] = addsym(sname, FUNCTION, INT, 0, 0, &glbptr, AUTOEXT);
    return 0;
    }
  if(constant(is) == 0) experr();
  return 0;
  }

experr() {
  error("invalid expression");
  gen(GETw1n, 0);
  skip();
  }
 
callfunc(ptr)  char *ptr; {      /* symbol table entry or 0 */
  int nargs, const, val;
  nargs = 0;
  blanks();                      /* already saw open paren */
  while(streq(lptr, ")") == 0) {
    if(endst()) break;
    if(ptr) {
      expression(&const, &val);
      gen(PUSH1, 0);
      }
    else {
      gen(PUSH1, 0);
      expression(&const, &val);
      gen(SWAP1s, 0);            /* don't push addr */
      }
    nargs = nargs + BPW;         /* count args*BPW */
    if(match(",") == 0) break;
    }
  need(")");
  if(streq(ptr + NAME, "CCARGC") == 0) gen(ARGCNTn, nargs >> LBPW);
  if(ptr) gen(CALLm, ptr);
  else    gen(CALL1, 0);
  gen(ADDSP, csp + nargs);
  }

/*
** true if is2's operand should be doubled
*/
double(oper, is1, is2) int oper, is1[], is2[]; {
  if((oper != ADD12 && oper != SUB12)
  || (is1[TA] >> 2 != BPW)
  || (is2[TA])) return 0;
  return 1;
  }

step(oper, is, oper2) int oper, is[], oper2; {
  fetch(is);
  gen(oper, is[TA] ? (is[TA] >> 2) : 1);
  store(is);
  if(oper2) gen(oper2, is[TA] ? (is[TA] >> 2) : 1);
  }

store(is)  int is[]; {
  char *ptr;
  if(is[TI]) {                    /* putstk */
    if(is[TI] >> 2 == 1)
         gen(PUTbp1, 0);
    else gen(PUTwp1, 0);
    }
  else {                          /* putmem */
    ptr = is[ST];
    if(ptr[IDENT] != POINTER
    && ptr[TYPE] >> 2 == 1)
         gen(PUTbm1, ptr);
    else gen(PUTwm1, ptr);
    }
  }

fetch(is) int is[]; {
  char *ptr;
  ptr = is[ST];
  if(is[TI]) {                                   /* indirect */
    if(is[TI] >> 2 == BPW)     gen(GETw1p,  0);
    else {
      if(ptr[TYPE] & UNSIGNED) gen(GETb1pu, 0);
      else                     gen(GETb1p,  0);
      }
    } 
  else {                                         /* direct */
    if(ptr[IDENT] == POINTER
    || ptr[TYPE] >> 2 == BPW)  gen(GETw1m,  ptr); 
    else {
      if(ptr[TYPE] & UNSIGNED) gen(GETb1mu, ptr);
      else                     gen(GETb1m,  ptr);
      }
    }
  }

constant(is)  int is[]; {
  int offset;
  if     (is[TC] = number(is + CV)) gen(GETw1n,  is[CV]);
  else if(is[TC] = chrcon(is + CV)) gen(GETw1n,  is[CV]);
  else if(string(&offset))          gen(POINT1l, offset);
  else return 0;
  return 1;
  }

number(value)  int *value; {
  int k, minus;
  k = minus = 0;
  while(1) {
    if(match("+")) ;
    else if(match("-")) minus = 1;
    else break;
    }
  if(isdigit(ch) == 0) return 0;
  if(ch == '0') {
    while(ch == '0') inbyte();
    if(toupper(ch) == 'X') {
      inbyte();
      while(isxdigit(ch)) {
        if(isdigit(ch))
             k = k*16 + (inbyte() - '0');
        else k = k*16 + 10 + (toupper(inbyte()) - 'A');
        }
      }
    else while (ch >= '0' && ch <= '7')
      k = k*8 + (inbyte() - '0');
    }
  else while (isdigit(ch)) k = k*10 + (inbyte() - '0');
  if(minus) {
    *value = -k;
    return (INT);
    }
  if((*value = k) < 0) return (UINT);
  else                 return (INT);
  }

chrcon(value)  int *value; {
  int k;
  k = 0;
  if(match("'") == 0) return 0;
  while(ch != '\'') k = (k << 8) + (litchar() & 255);
  gch();
  *value = k;
  return (INT);
  }

string(offset) int *offset; {
  char c;
  if(match(quote) == 0) return 0;
  *offset = litptr;
  while (ch != '"') {
    if(ch == 0) break;
    stowlit(litchar(), 1);
    }
  gch();
  litq[litptr++] = 0;
  return 1;
  }

stowlit(value, size) int value, size; {
  if((litptr+size) >= LITMAX) {
    error("literal queue overflow");
    abort(ERRCODE);
    }
  putint(value, litq+litptr, size);
  litptr += size;
  }

litchar() {
  int i, oct;
  if(ch != '\\' || nch == 0) return gch();
  gch();
  switch(ch) {
    case 'n': gch(); return NEWLINE;
    case 't': gch(); return  9;  /* HT */
    case 'b': gch(); return  8;  /* BS */
    case 'f': gch(); return 12;  /* FF */
    }
  i = 3;
  oct = 0;
  while((i--) > 0 && ch >= '0' && ch <= '7')
    oct = (oct << 3) + gch() - '0';
  if(i == 2) return gch();
  else       return oct;
  }

/***************** pipeline functions ******************/

/*
** skim over terms adjoining || and && operators
*/
skim(opstr, tcode, dropval, endval, level, is)
  char *opstr;
  int tcode, dropval, endval, (*level)(), is[]; {
  int k, droplab, endlab;
  droplab = 0;
  while(1) {
    k = down1(level, is);
    if(nextop(opstr)) {
      bump(opsize);
      if(droplab == 0) droplab = getlabel();
      dropout(k, tcode, droplab, is);
      }
    else if(droplab) {
      dropout(k, tcode, droplab, is);
      gen(GETw1n, endval);
      gen(JMPm, endlab = getlabel());
      gen(LABm, droplab);
      gen(GETw1n, dropval);
      gen(LABm, endlab);
      is[TI] = is[TA] = is[TC] = is[CV] = is[SA] = 0;
      return 0;
      }
    else return k;
    }
  }

/*
** test for early dropout from || or && sequences
*/
dropout(k, tcode, exit1, is)
  int k, tcode, exit1, is[]; {
  if(k) fetch(is);
  else if(is[TC]) gen(GETw1n, is[CV]);
  gen(tcode, exit1);          /* jumps on false */
  } 

/*
** drop to a lower level
*/
down(opstr, opoff, level, is)
  char *opstr;  int opoff, (*level)(), is[]; {
  int k;
  k = down1(level, is);
  if(nextop(opstr) == 0) return k;
  if(k) fetch(is);
  while(1) {
    if(nextop(opstr)) {
      int is2[7];     /* allocate only if needed */
      bump(opsize);
      opindex += opoff;
      down2(op[opindex], op2[opindex], level, is, is2);
      }
    else return 0;
    }
  }

/*
** unary drop to a lower level
*/
down1(level, is) int (*level)(), is[]; {
  int k, *before, *start;
  setstage(&before, &start);
  k = (*level)(is);
  if(is[TC]) clearstage(before, 0);  /* load constant later */
  return k;
  }

/*
** binary drop to a lower level
*/
down2(oper, oper2, level, is, is2)
  int oper, oper2, (*level)(), is[], is2[]; {
  int *before, *start;
  char *ptr;
  setstage(&before, &start);
  is[SA] = 0;                     /* not "... op 0" syntax */
  if(is[TC]) {                    /* consant op unknown */
    if(down1(level, is2)) fetch(is2);
    if(is[CV] == 0) is[SA] = snext;
    gen(GETw2n, is[CV] << double(oper, is2, is));
    }
  else {                          /* variable op unknown */
    gen(PUSH1, 0);                /* at start in the buffer */
    if(down1(level, is2)) fetch(is2);
    if(is2[TC]) {                 /* variable op constant */
      if(is2[CV] == 0) is[SA] = start;
      csp += BPW;                 /* adjust stack and */
      clearstage(before, 0);      /* discard the PUSH */
      if(oper == ADD12) {         /* commutative */
        gen(GETw2n, is2[CV] << double(oper, is, is2));
        }
      else {                      /* non-commutative */
        gen(MOVE21, 0);
        gen(GETw1n, is2[CV] << double(oper, is, is2));
        }
      }
    else {                        /* variable op variable */
      gen(POP2, 0);
      if(double(oper, is, is2)) gen(DBL1, 0);
      if(double(oper, is2, is)) gen(DBL2, 0);
      }
    }
  if(oper) {
    if(nosign(is) || nosign(is2)) oper = oper2;
    if(is[TC] = is[TC] & is2[TC]) {               /* constant result */
      is[CV] = calc(is[CV], oper, is2[CV]);
      clearstage(before, 0);  
      if(is2[TC] == UINT) is[TC] = UINT;
      }
    else {                                        /* variable result */
      gen(oper, 0);
      if(oper == SUB12
      && is [TA] >> 2 == BPW
      && is2[TA] >> 2 == BPW) { /* difference of two word addresses */
        gen(SWAP12, 0);
        gen(GETw1n, 1);
        gen(ASR12, 0);          /* div by 2 */
        }
      is[OP] = oper;            /* identify the operator */
      }
    if(oper == SUB12 || oper == ADD12) {
      if(is[TA] && is2[TA])     /*  addr +/- addr */
        is[TA] = 0;
      else if(is2[TA]) {        /* value +/- addr */
        is[ST] = is2[ST];
        is[TI] = is2[TI];
        is[TA] = is2[TA];
        }
      }
    if(is[ST] == 0 || ((ptr = is2[ST]) && (ptr[TYPE] & UNSIGNED)))
      is[ST] = is2[ST];
    }
  }

/*
** unsigned operand?
*/
nosign(is) int is[]; {
  char *ptr;
  if(is[TA]
  || is[TC] == UINT
  || ((ptr = is[ST]) && (ptr[TYPE] & UNSIGNED))
    ) return 1;
  return 0;
  }

/*
** calcualte signed constant result
*/
calc(left, oper, right) int left, oper, right; {
  switch(oper) {
    case ADD12: return (left  +  right); 
    case SUB12: return (left  -  right);
    case MUL12: return (left  *  right); 
    case DIV12: return (left  /  right);
    case MOD12: return (left  %  right); 
    case EQ12:  return (left  == right); 
    case NE12:  return (left  != right);
    case LE12:  return (left  <= right); 
    case GE12:  return (left  >= right);
    case LT12:  return (left  <  right); 
    case GT12:  return (left  >  right);
    case AND12: return (left  &  right);
    case OR12:  return (left  |  right);
    case XOR12: return (left  ^  right); 
    case ASR12: return (left  >> right); 
    case ASL12: return (left  << right);
    } 
  return (calc2(left, oper, right));
  }

/*
** calcualte unsigned constant result
*/
calc2(left, oper, right) unsigned left, right; int oper; {
  switch(oper) {
    case MUL12u: return (left  *  right); 
    case DIV12u: return (left  /  right);
    case MOD12u: return (left  %  right); 
    case LE12u:  return (left  <= right); 
    case GE12u:  return (left  >= right);
    case LT12u:  return (left  <  right); 
    case GT12u:  return (left  >  right);
    } 
  return (0);
  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区三区鸳鸯浴 | 九九视频精品免费| 久久精品日产第一区二区三区高清版| 色综合色狠狠天天综合色| 全国精品久久少妇| 一区二区三区中文在线| 久久久久久久性| 7777精品伊人久久久大香线蕉| 丁香婷婷综合色啪| 久久成人18免费观看| 亚洲国产精品视频| 自拍视频在线观看一区二区| 欧美精品一区视频| 欧美美女网站色| 91国产免费看| 色综合久久久久网| 99综合影院在线| 国产精品 欧美精品| 麻豆精品一区二区综合av| 亚洲与欧洲av电影| 亚洲欧美在线视频| 久久久蜜桃精品| 欧美第一区第二区| 91精品国产色综合久久久蜜香臀| 色久综合一二码| 91视频一区二区| 波多野结衣视频一区| 国产风韵犹存在线视精品| 精品写真视频在线观看| 久久狠狠亚洲综合| 美女网站一区二区| 日本免费新一区视频| 午夜不卡av免费| 亚洲高清一区二区三区| 亚洲视频综合在线| 亚洲人成网站在线| 一区二区三区在线播| 亚洲精品成人在线| 亚洲最新视频在线观看| 亚洲精品国产精品乱码不99 | 亚洲人成网站色在线观看| 国产精品午夜春色av| 欧美激情一区不卡| 国产精品理论在线观看| 欧美激情综合在线| 国产精品国产a| 亚洲天堂网中文字| 亚洲午夜精品久久久久久久久| 亚洲伦理在线精品| 亚洲二区视频在线| 日韩精品久久久久久| 美女网站在线免费欧美精品| 韩国av一区二区三区在线观看 | 色综合婷婷久久| 91视频观看视频| 欧美性视频一区二区三区| 欧美日韩在线免费视频| 欧美一区二区在线免费观看| 精品国产三级a在线观看| 国产色产综合产在线视频| 成人免费在线视频| 亚洲h精品动漫在线观看| 日本中文字幕不卡| 国产在线精品一区二区夜色| 高清视频一区二区| 色琪琪一区二区三区亚洲区| 欧美高清视频一二三区| 欧美精品一区二区三区四区| 欧美国产一区二区在线观看 | 国产精品久久久久久一区二区三区| 一区在线观看视频| 五月天精品一区二区三区| 久久se精品一区精品二区| 国产成人99久久亚洲综合精品| 色综合一个色综合亚洲| 日韩一区二区三| 国产精品色哟哟网站| 亚洲国产日韩精品| 国产综合色产在线精品| 色婷婷综合中文久久一本| 欧美一区三区四区| 日韩毛片精品高清免费| 久久综合综合久久综合| 91在线观看视频| 日韩一区二区在线观看视频| 国产精品久久久久久久久免费樱桃 | 国产乱人伦精品一区二区在线观看| av网站免费线看精品| 日韩欧美激情在线| 亚洲色图制服诱惑 | 久久www免费人成看片高清| aaa欧美大片| 精品国精品国产| 亚洲精品成人悠悠色影视| 国产精品综合在线视频| 欧美性感一类影片在线播放| 久久精品亚洲乱码伦伦中文| 亚洲在线一区二区三区| 成人久久久精品乱码一区二区三区| 欧美日韩五月天| 综合久久国产九一剧情麻豆| 久久精品国产亚洲一区二区三区| 欧洲中文字幕精品| 国产精品不卡在线观看| 麻豆国产精品一区二区三区| 欧美在线制服丝袜| 国产日韩影视精品| 激情文学综合插| 在线播放国产精品二区一二区四区| 国产精品第一页第二页第三页| 日本成人在线网站| 在线观看日韩精品| 亚洲色大成网站www久久九九| 国产真实乱偷精品视频免| 6080yy午夜一二三区久久| 亚洲欧美另类图片小说| 暴力调教一区二区三区| 国产人成亚洲第一网站在线播放| 轻轻草成人在线| 欧美日韩精品一二三区| 亚洲综合区在线| 91麻豆福利精品推荐| 国产精品久久一级| 成人免费视频免费观看| 久久精品夜夜夜夜久久| 精品一区二区免费视频| 日韩欧美在线网站| 青青草原综合久久大伊人精品优势| 欧美日韩小视频| 香蕉成人伊视频在线观看| 精品视频1区2区| 亚洲一区免费视频| 欧美羞羞免费网站| 亚洲成在人线免费| 欧美日韩三级在线| 同产精品九九九| 制服丝袜亚洲播放| 男女男精品视频网| 日韩精品专区在线影院重磅| 热久久久久久久| 精品国产三级a在线观看| 黑人巨大精品欧美一区| 久久久综合九色合综国产精品| 精品亚洲欧美一区| 国产无一区二区| www.欧美日韩国产在线| 亚洲日本青草视频在线怡红院| 91社区在线播放| 亚洲精品中文在线观看| 欧美日韩国产免费一区二区| 免费在线观看一区二区三区| 日韩精品资源二区在线| 国产精品中文字幕一区二区三区| 国产日韩欧美一区二区三区乱码 | 蜜臀av性久久久久蜜臀aⅴ流畅| 制服丝袜中文字幕一区| 国内精品嫩模私拍在线| 国产精品素人一区二区| 91免费看视频| 五月天激情综合| 久久天天做天天爱综合色| 处破女av一区二区| 亚洲综合在线观看视频| 51精品秘密在线观看| 国产一区二区伦理| 日韩毛片高清在线播放| 在线91免费看| 国产传媒一区在线| 亚洲男同性视频| 欧美日本在线播放| 国产精品白丝jk黑袜喷水| 亚洲精品视频在线观看网站| 欧美日本一道本在线视频| 国产在线精品一区在线观看麻豆| 亚洲日本电影在线| 日本成人在线视频网站| 欧美三级电影精品| 欧美在线观看禁18| 视频一区欧美日韩| 久久久久久亚洲综合影院红桃| av综合在线播放| 日韩av中文字幕一区二区 | 色综合久久久久| 国产成人精品亚洲午夜麻豆| 一色桃子久久精品亚洲| 欧美一级欧美三级在线观看| 粉嫩在线一区二区三区视频| 一区二区三区 在线观看视频 | 久久一留热品黄| 在线观看国产一区二区| 国精产品一区一区三区mba视频 | 亚洲成人一区在线| 精品盗摄一区二区三区| 在线看一区二区| 国产成人免费xxxxxxxx| 亚洲va在线va天堂| 亚洲私人黄色宅男| 亚洲精品一区二区三区四区高清| 欧美视频日韩视频在线观看| 成人黄色一级视频|