]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - code.c
Move some things around
[xonotic/gmqcc.git] / code.c
diff --git a/code.c b/code.c
index 35f758a22526f966cc00c7a28c45c74c0ee0d43a..84f664816d5b0930bd1d3e165927af23405e8ee2 100644 (file)
--- a/code.c
+++ b/code.c
@@ -21,6 +21,7 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
+#include <string.h>
 #include "gmqcc.h"
 
 /*
@@ -28,7 +29,7 @@
  * or qcint; however, it's incredibly unsafe for two reasons.
  * 1) The compilers aliasing optimization can legally make it unstable
  *    (it's undefined behaviour).
- * 
+ *
  * 2) The cast itself depends on fresh storage (newly allocated in which
  *    ever function is using the cast macros), the contents of which are
  *    transferred in a way that the obligation to release storage is not
@@ -141,6 +142,7 @@ static void code_create_header(code_t *code, prog_header *code_header) {
     code_header->strings.offset    = code_header->globals.offset    + (sizeof(int32_t)                * vec_size(code->globals));
     code_header->strings.length    = vec_size(code->chars);
     code_header->version           = 6;
+    code_header->skip              = 0;
 
     if (OPTS_OPTION_BOOL(OPTION_FORCECRC))
         code_header->crc16         = OPTS_OPTION_U16(OPTION_FORCED_CRC);
@@ -171,7 +173,7 @@ static void code_create_header(code_t *code, prog_header *code_header) {
     /*
      * These are not part of the header but we ensure LE format here to save on duplicated
      * code.
-     */  
+     */
     util_endianswap(code->statements, vec_size(code->statements), sizeof(prog_section_statement));
     util_endianswap(code->defs,       vec_size(code->defs),       sizeof(prog_section_def));
     util_endianswap(code->fields,     vec_size(code->fields),     sizeof(prog_section_field));
@@ -183,7 +185,7 @@ static void code_create_header(code_t *code, prog_header *code_header) {
  * Same principle except this one allocates memory and writes the lno(optional) and the dat file
  * directly out to allocated memory. Which is actually very useful for the future library support
  * we're going to add.
- */   
+ */
 bool code_write_memory(code_t *code, uint8_t **datmem, size_t *sizedat, uint8_t **lnomem, size_t *sizelno) {
     prog_header code_header;
     uint32_t    offset  = 0;
@@ -353,7 +355,7 @@ bool code_write(code_t *code, const char *filename, const char *lnofile) {
             for (;;) {
                 if (code->statements[j].opcode != INSTR_DONE)
                     util_debug("GEN", "        %-12s {% 5i,% 5i,% 5i}\n",
-                        asm_instr[code->statements[j].opcode].m,
+                        util_instr_str[code->statements[j].opcode],
                         code->statements[j].o1.s1,
                         code->statements[j].o2.s1,
                         code->statements[j].o3.s1