]> foleosoft.com Git - QAnsel.git/commitdiff
Fri Aug 2 08:04:44 PM EDT 2024
authormiha-q <>
Sat, 3 Aug 2024 00:04:44 +0000 (20:04 -0400)
committermiha-q <>
Sat, 3 Aug 2024 00:04:44 +0000 (20:04 -0400)
build.sh
src/bytecode.c

index 898e2ea052a84e4ff360a22d84a740922e1b1b25..2952cffd1be0aa8b035d73fd4681bcfbc9d2f48b 100644 (file)
--- a/build.sh
+++ b/build.sh
@@ -92,6 +92,6 @@ else
 fi
 
 cd ../obj
-fcmd="$fcmd -lm $cflags" 
+fcmd="$fcmd -g -lm $cflags"
 echo "$fcmd"
 $($fcmd)
index a908facb06ba63f1b90f4bd70c2b23adf89b9124..5413a98cbb76d738154d90a7d978df9b8ad33846 100644 (file)
@@ -1009,8 +1009,32 @@ int qansel_efficiency(QBytecode* program, int programSize, int head)
        int tmpscore = 0;
        int idx = head;
 
+       /*
+       printf("--------------------------------\n");
        for (int i = 0; i < programSize; i++)
        {
+               if (i != -1)
+               {
+                       printf("%02X: %s\n", i, qansel_instruction_to_string(program[i].op));
+               }
+               else
+               {
+                       printf("%02X: ERR\n", i);
+               }
+       }
+       printf("================================\n");
+       printf("%i\n", head);
+       for (int i = 0; i < programSize; i++)
+       {
+               printf("%i -> %i\n", i, program[i].next);
+       }
+       printf("================================\n");
+       */
+
+       for (int i = 0; i < programSize; i++)
+       {
+               //printf("%02X: %s (%i)\n", i, qansel_instruction_to_string(program[idx].op), idx);
+
                switch (program[idx].op)
                {
                        case QANSEL_INSTRUCTION_X:
@@ -1044,7 +1068,9 @@ int qansel_efficiency(QBytecode* program, int programSize, int head)
                                if (tmpscore > 1) score += tmpscore;
                                tmpscore = 0;
                }
+               int oidx = idx;
                idx = program[idx].next;
+               if (idx == -1) break;
        }
        return score;
 }
@@ -1185,10 +1211,12 @@ void qansel_reorder(QAnselContext* ctx, unsigned char* program, int programSize)
        int head[2];
        head[0] = 0;
        head[1] = 0;
+
        for (int reorid = 0; reorid < 2; reorid++)
        {
                while (1)
                {
+                       head[reorid] = 0;
                        //find the next unchecked instruction
                        int found = -1;
                        int idx = head[reorid];