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

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

?? createbcode.jrag

?? JDK1.4編譯器后端
?? JRAG
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
  public void ExprStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    getExpr().createBCode(gen);    if(needsPop())      getExpr().type().emitPop(gen);  }  syn lazy DefaultCase SwitchStmt.defaultCase() {    for(int i= 0; i < getBlock().getNumStmt(); i++) {      if(getBlock().getStmt(i) instanceof DefaultCase)        return (DefaultCase)getBlock().getStmt(i);    }    return null;  }  syn lazy int SwitchStmt.end_label() = hostType().constantPool().newLabel();  public void SwitchStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    int cond_label = hostType().constantPool().newLabel();    int switch_label = hostType().constantPool().newLabel();    gen.emitGoto(cond_label);    getBlock().createBCode(gen);    if(canCompleteNormally())      gen.emitGoto(end_label());    gen.addLabel(cond_label);    getExpr().createBCode(gen);    TreeMap map = new TreeMap();    for(int i = 0; i < getBlock().getNumStmt(); i++) {      if(getBlock().getStmt(i) instanceof ConstCase) {        ConstCase ca = (ConstCase)getBlock().getStmt(i);        map.put(new Integer(ca.getValue().constant().intValue()), ca);      }            }    long low = map.isEmpty() ? 0 : ((Integer)map.firstKey()).intValue();    long high = map.isEmpty() ? 0 : ((Integer)map.lastKey()).intValue();    long tableSwitchSize = 8L + (high - low + 1L) * 4L;    long lookupSwitchSize = 4L + map.size() * 8L;    gen.addLabel(switch_label);    if(tableSwitchSize < lookupSwitchSize) {      gen.emit(Bytecode.TABLESWITCH);      int pad = emitPad(gen);      int defaultOffset = defaultOffset(gen, switch_label);      if(defaultOffset == 0) {        defaultOffset = 1 + pad + 4 + 4 + 4 + 4 * (int)(high - low + 1);      }      gen.add4(defaultOffset);      gen.add4((int)low);      gen.add4((int)high);      for(long i = low; i <= high; i++) {        ConstCase ca = (ConstCase)map.get(new Integer((int)i));        if(ca != null) {          int offset = gen.addressOf(ca.label(gen))            - gen.addressOf(switch_label);          gen.add4(offset);        }        else {          gen.add4(defaultOffset);        }      }    }    else {      gen.emit(Bytecode.LOOKUPSWITCH);      int pad = emitPad(gen);      int defaultOffset = defaultOffset(gen, switch_label);      if(defaultOffset == 0) {        defaultOffset = 1 + pad + 4 + 4 + 8 * numCase();      }      gen.add4(defaultOffset);      gen.add4(map.size());      for(Iterator iter = map.values().iterator(); iter.hasNext(); ) {        ConstCase ca = (ConstCase)iter.next();        gen.add4(ca.getValue().constant().intValue());        int offset = gen.addressOf(ca.label(gen))          - gen.addressOf(switch_label);        gen.add4(offset);      }    }    gen.addLabel(end_label());  }  syn int SwitchStmt.numCase() {    int result = 0;    for(int i = 0; i < getBlock().getNumStmt(); i++)      if(getBlock().getStmt(i) instanceof Case)        result++;    return result;  }  private int SwitchStmt.emitPad(CodeGeneration gen) {    int pad = (4 - (gen.pos() % 4)) % 4;    for(int i = 0; i < pad; i++)      gen.emit(Bytecode.NOP);    if(gen.pos() % 4 != 0)      throw new Error("Switch not at 4-byte boundary:" + gen.pos());    return pad;  }  private int SwitchStmt.defaultOffset(CodeGeneration gen, int switch_label) {    boolean hasDefault = defaultCase() != null;    if(hasDefault) {      int offset = gen.addressOf(defaultCase().label(gen))        - gen.addressOf(switch_label);      return offset;    }    return 0;  }  syn lazy int Case.label(CodeGeneration gen) = hostType().constantPool().newLabel();  public void Case.createBCode(CodeGeneration gen) {    gen.addLabel(label(gen));  }  syn lazy int IfStmt.else_branch_label() = hostType().constantPool().newLabel();  syn lazy int IfStmt.then_branch_label() = hostType().constantPool().newLabel();  public void IfStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    int elseBranch = else_branch_label();    int thenBranch = then_branch_label();    int endBranch = hostType().constantPool().newLabel();    getCondition().emitEvalBranch(gen);    gen.addLabel(thenBranch);    //if(getCondition().canBeTrue()) {      getThen().createBCode(gen);      if(getThen().canCompleteNormally() && hasElse() /*&& getCondition().canBeFalse()*/)        gen.emitGoto(endBranch);    //}    gen.addLabel(elseBranch);    if(hasElse() /*&& getCondition().canBeFalse()*/)      getElse().createBCode(gen);    gen.addLabel(endBranch);  }  syn lazy int WhileStmt.cond_label() = hostType().constantPool().newLabel();  syn lazy int WhileStmt.end_label() = hostType().constantPool().newLabel();  syn lazy int WhileStmt.stmt_label() = hostType().constantPool().newLabel();  public void WhileStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    gen.addLabel(cond_label());    getCondition().emitEvalBranch(gen);    gen.addLabel(stmt_label());    if(getCondition().canBeTrue()) {      getStmt().createBCode(gen);      if(getStmt().canCompleteNormally())        gen.emitGoto(cond_label());    }    gen.addLabel(end_label());  }  syn lazy int DoStmt.begin_label() = hostType().constantPool().newLabel();  syn lazy int DoStmt.cond_label() = hostType().constantPool().newLabel();  syn lazy int DoStmt.end_label() = hostType().constantPool().newLabel();  public void DoStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    gen.addLabel(begin_label());    getStmt().createBCode(gen);    gen.addLabel(cond_label());    getCondition().emitEvalBranch(gen);    gen.addLabel(end_label());  }  syn lazy int ForStmt.cond_label() = hostType().constantPool().newLabel();  syn lazy int ForStmt.begin_label() = hostType().constantPool().newLabel();  syn lazy int ForStmt.update_label() = hostType().constantPool().newLabel();  syn lazy int ForStmt.end_label() = hostType().constantPool().newLabel();  public void ForStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    for (int i=0; i<getNumInitStmt(); i++) {      getInitStmt(i).createBCode(gen);    }    gen.addLabel(cond_label());    getCondition().emitEvalBranch(gen);    if(getCondition().canBeTrue()) {      gen.addLabel(begin_label());      getStmt().createBCode(gen);      gen.addLabel(update_label());	      for (int i=0; i<getNumUpdateStmt(); i++)        getUpdateStmt(i).createBCode(gen);      gen.emitGoto(cond_label());    }    if(canCompleteNormally()) {      gen.addLabel(end_label());    }    gen.addVariableScopeLabel(variableScopeEndLabel(gen));  }    syn int Stmt.break_label() {    throw new UnsupportedOperationException("Can not break at this statement of type " + getClass().getName());  }  eq ForStmt.break_label() = end_label();  eq WhileStmt.break_label() = end_label();  eq DoStmt.break_label() = end_label();  eq LabeledStmt.break_label() = end_label();  eq SwitchStmt.break_label() = end_label();  eq TryStmt.break_label() =  label_finally();  public void BreakStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    for(Iterator iter = finallyList().iterator(); iter.hasNext(); ) {      FinallyHost stmt = (FinallyHost)iter.next();      gen.emitJsr(stmt.label_finally_block());    }    gen.emitGoto(targetStmt().break_label());  }  syn int Stmt.continue_label() {    throw new UnsupportedOperationException("Can not continue at this statement");  }  eq ForStmt.continue_label() = update_label();  eq WhileStmt.continue_label() = cond_label();  eq DoStmt.continue_label() = cond_label();  eq LabeledStmt.continue_label() = getStmt().continue_label();  eq TryStmt.continue_label() = label_finally();  public void ContinueStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    for(Iterator iter = finallyList().iterator(); iter.hasNext(); ) {      FinallyHost stmt = (FinallyHost)iter.next();      gen.emitJsr(stmt.label_finally_block());    }    gen.emitGoto(targetStmt().continue_label());  }  public void ReturnStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    if(hasResult()) {      TypeDecl type = null;      BodyDecl b = enclosingBodyDecl();      if(b instanceof MethodDecl) {        type = ((MethodDecl)b).type();      }      else {        throw new Error("Can not create code that returns value within non method");      }      getResult().createBCode(gen);      getResult().type().emitCastTo(gen, type);      if(!finallyList().isEmpty()) {        type.emitStoreLocal(gen, resultSaveLocalNum());      }      for(Iterator iter = finallyList().iterator(); iter.hasNext(); ) {        FinallyHost stmt = (FinallyHost)iter.next();        gen.emitJsr(stmt.label_finally_block());      }      if(!finallyList().isEmpty()) {        type.emitLoadLocal(gen, resultSaveLocalNum());      }      type.emitReturn(gen);    }    else {      for(Iterator iter = finallyList().iterator(); iter.hasNext(); ) {        FinallyHost stmt = (FinallyHost)iter.next();        gen.emitJsr(stmt.label_finally_block());      }      gen.emitReturn();    }  }  public void ThrowStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    getExpr().createBCode(gen);    gen.emitThrow();  }  syn lazy int FinallyHost.label_finally_block();  syn lazy int TryStmt.label_begin() = hostType().constantPool().newLabel();  syn lazy int TryStmt.label_block_end() = hostType().constantPool().newLabel();  syn lazy int TryStmt.label_end() = hostType().constantPool().newLabel();  syn lazy int TryStmt.label_finally() = hostType().constantPool().newLabel();  eq TryStmt.label_finally_block() = hostType().constantPool().newLabel();  syn lazy int TryStmt.label_exception_handler() = hostType().constantPool().newLabel();  syn lazy int TryStmt.label_catch_end() = hostType().constantPool().newLabel();  public void TryStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    gen.addLabel(label_begin());    getBlock().createBCode(gen);    if(getBlock().canCompleteNormally())      gen.emitGoto(label_finally());    gen.addLabel(label_block_end());    for(int i = 0; i < getNumCatchClause(); i++) {      getCatchClause(i).createBCode(gen);      if(getCatchClause(i).getBlock().canCompleteNormally()) {        if(!hasFinally())          gen.emitGoto(label_finally());        else          gen.emitGoto(label_catch_end());      }    }        gen.addLabel(label_catch_end());    if(hasFinally() && getNumCatchClause() > 0) {      gen.emitJsr(label_finally_block());      if(canCompleteNormally())        gen.emitGoto(label_end());    }        gen.addLabel(label_finally());    if(hasFinally()) {      if(getBlock().canCompleteNormally()) {        gen.emitJsr(label_finally_block());        if(canCompleteNormally())          gen.emitGoto(label_end());      }      gen.addLabel(label_exception_handler());      emitExceptionHandler(gen);      gen.addLabel(label_finally_block());      emitFinallyBlock(gen);    }    gen.addLabel(label_end());    gen.createExceptionTable(this);  }  syn lazy int CatchClause.label() = hostType().constantPool().newLabel();  public void CatchClause.createBCode(CodeGeneration gen) {    gen.addLabel(label());    // add 1 to stack depth    gen.changeStackDepth(1);    getParameter().type().emitStoreLocal(gen, getParameter().localNum());    getBlock().createBCode(gen);  }  syn lazy int SynchronizedStmt.label_begin() = hostType().constantPool().newLabel();  syn lazy int SynchronizedStmt.label_end() = hostType().constantPool().newLabel();  syn lazy int SynchronizedStmt.label_finally() = hostType().constantPool().newLabel();  eq SynchronizedStmt.label_finally_block() = hostType().constantPool().newLabel();  syn lazy int SynchronizedStmt.label_exception_handler() = hostType().constantPool().newLabel();  public void SynchronizedStmt.createBCode(CodeGeneration gen) {    super.createBCode(gen);    getExpr().createBCode(gen);    emitMonitorEnter(gen);    gen.addLabel(label_begin());    getBlock().createBCode(gen);    gen.addLabel(label_finally());    if(getBlock().canCompleteNormally()) {      gen.emitJsr(label_finally_block());      gen.emitGoto(label_end());    }    gen.addLabel(label_exception_handler());    emitExceptionHandler(gen);    gen.addLabel(label_finally_block());    emitFinallyBlock(gen);    gen.addLabel(label_end());    gen.createExceptionTable(this);  }  public void AssertStmt.createBCode(CodeGeneration gen) {    throw new UnsupportedOperationException("Assert not implemented yet");  }  public void LocalClassDeclStmt.createBCode(CodeGeneration gen) {  }  public void ClassAccess.createBCode(CodeGeneration gen) {    if(prevExpr().type().isPrimitiveType() || prevExpr().type().isVoid()) {      TypeDecl typeDecl = lookupType("java.lang", prevExpr().type().primitiveClassName());      SimpleSet c = typeDecl.memberFields("TYPE");      FieldDeclaration f = (FieldDeclaration)c.iterator().next();      f.emitLoadField(gen, typeDecl);    }    else {      FieldDeclaration f = hostType().topLevelType().createStaticClassField(prevExpr().type().referenceClassFieldName());      // add method to perform lookup as a side-effect      MethodDecl m = hostType().topLevelType().createStaticClassMethod();      int next_label = hostType().constantPool().newLabel();      int end_label = hostType().constantPool().newLabel();      f.emitLoadField(gen, hostType());      gen.emitBranchNonNull(next_label);            // emit string literal            StringLiteral.push(gen, prevExpr().type().jvmName());      m.emitInvokeMethod(gen, hostType());      gen.emitDup();      f.emitStoreField(gen, hostType());      gen.emitGoto(end_label);      gen.addLabel(next_label);      gen.changeStackDepth(-1);      f.emitLoadField(gen, hostType());      gen.addLabel(end_label);    }  }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91老师国产黑色丝袜在线| 性欧美疯狂xxxxbbbb| 欧美www视频| 91麻豆精品在线观看| 日韩亚洲欧美一区| 国产乱码精品一品二品| 日日夜夜精品视频免费| 国产精品天天摸av网| 日韩美一区二区三区| 成人av高清在线| 美女国产一区二区| 亚洲最新在线观看| 中文字幕一区二区在线观看| 国产网红主播福利一区二区| 欧美三级日韩三级| 国产视频不卡一区| 成人av资源站| 91在线无精精品入口| 美美哒免费高清在线观看视频一区二区| 一区二区三区四区视频精品免费| 国产精品国产精品国产专区不蜜| 中文字幕高清一区| 一区二区久久久久久| 亚洲高清视频的网址| 日韩二区三区四区| 国产一区二区三区不卡在线观看| 丁香六月综合激情| 91精品福利在线| 欧美日韩高清一区二区三区| 日韩一级大片在线| 激情小说欧美图片| 九色综合国产一区二区三区| 蜜臀久久久99精品久久久久久| 亚洲另类春色国产| 91理论电影在线观看| 中文字幕欧美激情| 国产精品羞羞答答xxdd| 欧美一区二区视频免费观看| 中文字幕乱码久久午夜不卡| 亚洲成在人线免费| 99久久精品国产导航| 在线成人小视频| 亚洲精品国产无天堂网2021 | 奇米在线7777在线精品| 国产69精品一区二区亚洲孕妇| 欧美日韩在线播放| 国产精品色眯眯| 蜜臀av一区二区在线观看| 欧美亚洲精品一区| 中文字幕一区二区三区av| 国产成人午夜视频| 亚洲精品在线三区| 亚洲亚洲精品在线观看| 99久久精品国产观看| 久久蜜桃av一区精品变态类天堂| 国产一区 二区 三区一级| 日韩欧美另类在线| 成人一区二区三区中文字幕| 精品国产精品一区二区夜夜嗨| 裸体一区二区三区| 精品国产乱码久久久久久图片| 一个色在线综合| 欧美日本在线观看| 美女视频黄久久| 欧美久久婷婷综合色| 一区二区三区加勒比av| 色综合天天视频在线观看 | aaa亚洲精品| 亚洲成人动漫精品| 精品日韩一区二区| 成人在线综合网| 久久99久久久欧美国产| 7799精品视频| 国产乱一区二区| 欧美精品一级二级| 国产91精品精华液一区二区三区 | 图片区日韩欧美亚洲| 久久日韩粉嫩一区二区三区| 欧美性猛片aaaaaaa做受| 国产激情一区二区三区四区| 亚洲妇女屁股眼交7| 精品粉嫩超白一线天av| 国产乱子伦视频一区二区三区| 日韩视频一区在线观看| 国产91精品一区二区麻豆亚洲| 三级亚洲高清视频| 天天操天天色综合| 欧美国产日韩亚洲一区| 日韩美女主播在线视频一区二区三区| 亚洲精品在线免费观看视频| 欧美日韩一二三| 首页综合国产亚洲丝袜| 成人免费一区二区三区在线观看| 欧美视频一区二区三区在线观看 | jlzzjlzz国产精品久久| 国产91丝袜在线播放九色| 奇米一区二区三区av| 麻豆国产欧美一区二区三区| 秋霞影院一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 午夜成人免费电影| 麻豆91在线看| 成人v精品蜜桃久久一区| 91色在线porny| 成人91在线观看| 91亚洲国产成人精品一区二区三 | 一区二区欧美国产| 亚洲国产一区二区a毛片| 亚洲免费在线观看视频| 亚洲国产另类精品专区| 一区二区高清在线| 精品一区二区久久久| 欧美在线观看视频一区二区 | 日韩一区二区三| 亚洲黄色小视频| 国产一区二区在线视频| 在线观看亚洲精品| 日韩小视频在线观看专区| 国产精品乱子久久久久| 日韩电影一区二区三区四区| 99久久精品久久久久久清纯| 欧美日韩一区三区四区| 亚洲视频在线一区二区| 韩国精品久久久| 日韩视频免费观看高清在线视频| 亚洲精品一二三区| 国产传媒日韩欧美成人| 国产精品初高中害羞小美女文| 久久av老司机精品网站导航| 6080国产精品一区二区| 久久久www成人免费毛片麻豆| 麻豆精品视频在线观看| 91精品国产色综合久久ai换脸| 欧美激情一区三区| 国产成人免费在线视频| 国产亚洲视频系列| 国产成人午夜精品影院观看视频 | 91精品久久久久久蜜臀| 亚洲va欧美va天堂v国产综合| 成人免费看的视频| 中文字幕一区二区三区不卡 | 欧美影院一区二区三区| 亚洲综合色丁香婷婷六月图片| 色综合天天综合给合国产| 国产亚洲污的网站| 成人免费视频免费观看| 亚洲电影欧美电影有声小说| 日韩免费观看高清完整版| 九九在线精品视频| 欧美日韩国产在线播放网站| 亚洲chinese男男1069| 欧美日韩激情一区二区| 蜜桃视频在线观看一区| 久久综合给合久久狠狠狠97色69| 亚洲高清免费视频| 欧美一级欧美一级在线播放| 国产在线视频一区二区| 亚洲在线观看免费视频| 国产校园另类小说区| 欧美日韩一区二区三区高清| 国产精品91xxx| 麻豆一区二区在线| 亚洲一区二区三区四区在线免费观看| 欧美高清dvd| 在线亚洲一区二区| 日韩精品久久理论片| 亚洲欧洲精品成人久久奇米网| 欧美午夜影院一区| 国产美女在线观看一区| 亚洲va国产天堂va久久en| 国产精品入口麻豆原神| 欧美精品一区二| 日韩精品中文字幕一区 | 国产欧美一区二区三区在线看蜜臀 | 亚洲国产高清在线观看视频| 欧美一区二区三区四区在线观看| 成人性生交大片免费看中文| 三级亚洲高清视频| 亚洲精品成人在线| 久久综合999| 久久麻豆一区二区| 欧美国产精品一区| 国产午夜亚洲精品羞羞网站| 国产精品第13页| 亚洲五码中文字幕| 日本不卡一二三区黄网| 亚洲成在线观看| 麻豆91在线播放| 久色婷婷小香蕉久久| 免费在线观看视频一区| 亚洲国产aⅴ天堂久久| 夜夜爽夜夜爽精品视频| 亚洲va韩国va欧美va精品| 视频精品一区二区| 精品一区二区三区在线视频| 成人高清视频在线| 欧美精品自拍偷拍动漫精品| 国产无一区二区| 经典三级一区二区| 国产·精品毛片|