OSDN Git Service

コメントを付けた
authorttwilb <ttwilb@users.sourceforge.jp>
Tue, 18 Mar 2014 12:41:32 +0000 (21:41 +0900)
committerttwilb <ttwilb@users.sourceforge.jp>
Tue, 18 Mar 2014 12:41:32 +0000 (21:41 +0900)
jitcx86.c

index d4f8e4a..c65ed6a 100644 (file)
--- a/jitcx86.c
+++ b/jitcx86.c
@@ -152,13 +152,13 @@ int jitCompiler(unsigned char *dst, unsigned char *dst1, const unsigned char *sr
                                                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;
                                        }
@@ -270,7 +270,7 @@ int jitCompiler(unsigned char *dst, unsigned char *dst1, const unsigned char *sr
                                                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)
@@ -1654,7 +1654,7 @@ int jitc0(unsigned char **qq, unsigned char *q1, const unsigned char *p0, const
        }
        
        // 以下の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;
        }