tmp_ucp[4] = (j >> 24) & 0xff;
}
}
- if ((flags & JITC_PHASE1) == 0) {
+ if ((flags & JITC_PHASE1) == 0) { // Phase 0ならば
i = jitCompGetLabelNum(&w, src + 2);
if (label[i].opt != 0 && w.err == 0) {
- w.err = JITC_ERR_LABELREDEF;
+ w.err = JITC_ERR_LABELREDEF; // すでに同じ値のラベルがあればエラー
goto err_w;
}
- if (w.prefix != 0) {
+ if (w.prefix != 0) { // CND命令の直後にラベルは設置できない
w.err = JITC_ERR_PREFIX;
goto err_w;
}
w.prefix = 0;
}
j = 0;
- if ((flags & JITC_PHASE1) != 0 || (((flags & JITC_PHASE1) == 0) && label[i].opt != 0)) // labelç\95ªå\8f·iã\81\8c確ä¿\9dã\81\95ã\82\8cã\81¦ã\81\84ã\82\8cã\81° (ã\81\93ã\81®ifæ\96\87ã\81¯æ\84\8få\91³ã\82\92ã\81ªã\81\95ã\81ªã\81\84)
+ if ((flags & JITC_PHASE1) != 0 || (((flags & JITC_PHASE1) == 0) && label[i].opt != 0)) // labelç\95ªå\8f·iã\81\8c確ä¿\9dã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\80\81Phase 1ã\81ªã\82\89
j = label[i].p - (w.dst + 4); // j はとび先の相対番地
jitCompPutImm32(w.dst, j); // JMP もしくは JZ 命令のアドレス部を記述
#if (jitCompA0001_OPTIMIZE_JMP != 0)
}
// 以下のjitCompile()呼び出しでは第二引数をq1-2にした方がよいのではないか?
- i = jitCompiler(q, q1, p0 + 2, p1, p0, label, JITC_MAXLABELS, level, di1_serial, 0);
+ i = jitCompiler(q, q1, p0 + 2, p1, p0, label, JITC_MAXLABELS, level, di1_serial, 0); // ラベルのチェック
if (i != 0){
return 2;
}