r600g: add POW instruction
[mesa.git] / src / mesa / slang / slang_vartable.h
1
2 #ifndef SLANG_VARTABLE_H
3 #define SLANG_VARTABLE_H
4
5 #include "main/glheader.h"
6 #include "slang_utility.h"
7
8 struct slang_ir_storage_;
9
10 typedef struct slang_var_table_ slang_var_table;
11
12 struct slang_variable_;
13
14 extern slang_var_table *
15 _slang_new_var_table(GLuint maxRegisters);
16
17 extern void
18 _slang_delete_var_table(slang_var_table *vt);
19
20 extern void
21 _slang_push_var_table(slang_var_table *parent);
22
23 extern void
24 _slang_pop_var_table(slang_var_table *t);
25
26 extern void
27 _slang_add_variable(slang_var_table *t, struct slang_variable_ *v);
28
29 extern struct slang_variable_ *
30 _slang_find_variable(const slang_var_table *t, slang_atom name);
31
32 extern GLboolean
33 _slang_alloc_var(slang_var_table *t, struct slang_ir_storage_ *store);
34
35 extern GLboolean
36 _slang_alloc_temp(slang_var_table *t, struct slang_ir_storage_ *store);
37
38 extern void
39 _slang_free_temp(slang_var_table *t, struct slang_ir_storage_ *store);
40
41 extern GLboolean
42 _slang_is_temp(const slang_var_table *t, const struct slang_ir_storage_ *store);
43
44
45 #endif /* SLANG_VARTABLE_H */