]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - code.c
What was I thinking... fixing loop's jump creation so it doesn't try creating multipl...
[xonotic/gmqcc.git] / code.c
diff --git a/code.c b/code.c
index fe0833eb598f2d1e233ecff16e777bf0ca1468fa..64b6260d172b946e15aafa227eb6dd00d40a48ae 100644 (file)
--- a/code.c
+++ b/code.c
@@ -147,7 +147,7 @@ void code_test() {
 void code_write() {
     prog_header  code_header;
     FILE        *fp           = NULL;
-    size_t       it           = 1;
+    size_t       it           = 2;
 
     /* see proposal.txt */
     if (opts_omit_nullcode) {}
@@ -208,7 +208,7 @@ void code_write() {
     util_debug("GEN", "FUNCTIONS:\n");
     for (; it < code_functions_elements; it++) {
         size_t j = code_functions_data[it].entry;
-        util_debug("GEN", "    {.entry =% 5d, .firstlocal =% 5d, .locals =% 5d, .profile =% 5d, .name =% 5d, .file =% 5d, .nargs =% 5d, .argsize =%0X }\n",
+        util_debug("GEN", "    {.entry =% 5d, .firstlocal =% 5d, .locals =% 5d, .profile =% 5d, .name =% 5d, .file =% 5d, .nargs =% 5d, .argsize ={%d,%d,%d,%d,%d,%d,%d,%d} }\n",
             code_functions_data[it].entry,
             code_functions_data[it].firstlocal,
             code_functions_data[it].locals,
@@ -216,22 +216,32 @@ void code_write() {
             code_functions_data[it].name,
             code_functions_data[it].file,
             code_functions_data[it].nargs,
-            *((int32_t*)&code_functions_data[it].argsize)
+            code_functions_data[it].argsize[0],
+            code_functions_data[it].argsize[1],
+            code_functions_data[it].argsize[2],
+            code_functions_data[it].argsize[3],
+            code_functions_data[it].argsize[4],
+            code_functions_data[it].argsize[5],
+            code_functions_data[it].argsize[6],
+            code_functions_data[it].argsize[7]
+
         );
         util_debug("GEN", "    NAME: %s\n", &code_chars_data[code_functions_data[it].name]);
         /* Internal functions have no code */
         if (code_functions_data[it].entry >= 0) {
             util_debug("GEN", "    CODE:\n");
             for (;;) {
-                if (code_statements_data[j].opcode != INSTR_DONE &&
-                    code_statements_data[j].opcode != INSTR_RETURN)
-                    util_debug("GEN", "        %s {0x%05d,0x%05d,0x%05d}\n",
+                if (code_statements_data[j].opcode != AINSTR_END)
+                    util_debug("GEN", "        %s {0x%05x,0x%05x,0x%05x}\n",
                         asm_instr[code_statements_data[j].opcode].m,
                         code_statements_data[j].o1.s1,
                         code_statements_data[j].o2.s1,
                         code_statements_data[j].o3.s1
                     );
-                else break;
+                else {
+                    util_debug("GEN", "        DONE  {0x00000,0x00000,0x00000}\n");
+                    break;
+                }
                 j++;
             }
         }