From d8d07b2a8aa5cf9c5ce877b20351983b1aa8d01d Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 23 Feb 2007 09:36:29 -0700 Subject: label routines for implementing branches, jumps --- src/mesa/shader/slang/slang_label.h | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/mesa/shader/slang/slang_label.h (limited to 'src/mesa/shader/slang/slang_label.h') diff --git a/src/mesa/shader/slang/slang_label.h b/src/mesa/shader/slang/slang_label.h new file mode 100644 index 0000000000..661624f173 --- /dev/null +++ b/src/mesa/shader/slang/slang_label.h @@ -0,0 +1,42 @@ +#ifndef SLANG_LABEL_H +#define SLANG_LABEL_H 1 + +#include "imports.h" +#include "mtypes.h" +#include "prog_instruction.h" + + +struct slang_label_ +{ + char *Name; + GLint Location; + /** + * List of instruction references (numbered starting at zero) which need + * their BranchTarget field filled in with the location eventually + * assigned to the label. + */ + GLuint NumReferences; + GLuint *References; /** Array [NumReferences] */ +}; + +typedef struct slang_label_ slang_label; + + +extern slang_label * +_slang_label_new(const char *name); + +extern void +_slang_label_delete(slang_label *l); + +extern void +_slang_label_add_reference(slang_label *l, GLuint inst); + +extern GLint +_slang_label_get_location(const slang_label *l); + +extern void +_slang_label_set_location(slang_label *l, GLint location, + struct gl_program *prog); + + +#endif /* SLANG_LABEL_H */ -- cgit v1.2.3