]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - ir.h
Merge branch 'master' of github.com:graphitemaster/gmqcc
[xonotic/gmqcc.git] / ir.h
diff --git a/ir.h b/ir.h
index 95fdd57520d50ec724e10cc8969175d5dd454bf7..a7f41d0c79f80da57d137305ef09b81a7b317d4f 100644 (file)
--- a/ir.h
+++ b/ir.h
@@ -52,6 +52,7 @@ typedef struct ir_value_s {
         float    vfloat;
         int      vint;
         vector   vvec;
+        int32_t  ivec[3];
         char    *vstring;
         struct ir_value_s *vpointer;
         struct ir_function_s *vfunc;
@@ -305,6 +306,11 @@ typedef struct ir_builder_s
     MEM_VECTOR_MAKE(ir_function*, functions);
     MEM_VECTOR_MAKE(ir_value*, globals);
     MEM_VECTOR_MAKE(ir_value*, fields);
+
+    MEM_VECTOR_MAKE(const char*, filenames);
+    MEM_VECTOR_MAKE(qcint,       filestrings);
+    /* we cache the #IMMEDIATE string here */
+    qcint str_immediate;
 } ir_builder;
 
 ir_builder* ir_builder_new(const char *modulename);
@@ -313,8 +319,10 @@ void        ir_builder_delete(ir_builder*);
 bool ir_builder_set_name(ir_builder *self, const char *name);
 
 MEM_VECTOR_PROTO(ir_builder, ir_function*, functions);
-MEM_VECTOR_PROTO(ir_builder, ir_value*, globals);
-MEM_VECTOR_PROTO(ir_builder, ir_value*, fields);
+MEM_VECTOR_PROTO(ir_builder, ir_value*,    globals);
+MEM_VECTOR_PROTO(ir_builder, ir_value*,    fields);
+MEM_VECTOR_PROTO(ir_builder, const char*,  filenames);
+MEM_VECTOR_PROTO(ir_builder, qcint,        filestrings);
 
 ir_function* ir_builder_get_function(ir_builder*, const char *fun);
 ir_function* ir_builder_create_function(ir_builder*, const char *name, int outtype);