From: miha-q <> Date: Sat, 3 Aug 2024 00:04:44 +0000 (-0400) Subject: Fri Aug 2 08:04:44 PM EDT 2024 X-Git-Url: http://www.foleosoft.com/?a=commitdiff_plain;h=19afdb61083e59388031162e0b0ac8d3c4ecadeb;p=QAnsel.git Fri Aug 2 08:04:44 PM EDT 2024 --- diff --git a/build.sh b/build.sh index 898e2ea..2952cff 100644 --- 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) diff --git a/src/bytecode.c b/src/bytecode.c index a908fac..5413a98 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -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];