summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_assemble.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/shader/slang/slang_assemble.h')
-rw-r--r--src/mesa/shader/slang/slang_assemble.h278
1 files changed, 0 insertions, 278 deletions
diff --git a/src/mesa/shader/slang/slang_assemble.h b/src/mesa/shader/slang/slang_assemble.h
deleted file mode 100644
index d004e66500..0000000000
--- a/src/mesa/shader/slang/slang_assemble.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Mesa 3-D graphics library
- * Version: 6.5.2
- *
- * Copyright (C) 2005-2006 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef SLANG_ASSEMBLE_H
-#define SLANG_ASSEMBLE_H
-
-#include "slang_utility.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif
-
-
-struct slang_operation_;
-
-typedef enum slang_assembly_type_
-{
- /* core */
- slang_asm_none,
- slang_asm_float_copy,
- slang_asm_float_move,
- slang_asm_float_push,
- slang_asm_float_deref,
- slang_asm_float_add, /* a = pop(); b = pop(); push(a + b); */
- slang_asm_float_multiply,
- slang_asm_float_divide,
- slang_asm_float_negate, /* push(-pop()) */
- slang_asm_float_less, /* a = pop(); b = pop(); push(a < b); */
- slang_asm_float_equal_exp,
- slang_asm_float_equal_int,
- slang_asm_float_to_int, /* push(floatToInt(pop())) */
- slang_asm_float_sine, /* push(sin(pop()) */
- slang_asm_float_arcsine,
- slang_asm_float_arctan,
- slang_asm_float_power, /* push(pow(pop(), pop())) */
- slang_asm_float_log2,
- slang_asm_float_floor,
- slang_asm_float_ceil,
- slang_asm_float_noise1, /* push(noise1(pop()) */
- slang_asm_float_noise2, /* push(noise2(pop(), pop())) */
- slang_asm_float_noise3,
- slang_asm_float_noise4,
-
- slang_asm_int_copy,
- slang_asm_int_move,
- slang_asm_int_push,
- slang_asm_int_deref,
- slang_asm_int_to_float,
- slang_asm_int_to_addr,
-
- slang_asm_bool_copy,
- slang_asm_bool_move,
- slang_asm_bool_push,
- slang_asm_bool_deref,
-
- slang_asm_addr_copy,
- slang_asm_addr_push,
- slang_asm_addr_deref,
- slang_asm_addr_add,
- slang_asm_addr_multiply,
-
- slang_asm_vec4_tex1d,
- slang_asm_vec4_tex2d,
- slang_asm_vec4_tex3d,
- slang_asm_vec4_texcube,
- slang_asm_vec4_shad1d,
- slang_asm_vec4_shad2d,
-
- slang_asm_jump,
- slang_asm_jump_if_zero,
-
- slang_asm_enter,
- slang_asm_leave,
-
- slang_asm_local_alloc,
- slang_asm_local_free,
- slang_asm_local_addr,
- slang_asm_global_addr,
-
- slang_asm_call, /* push(ip); jump(inst->param[0]); */
- slang_asm_return,
-
- slang_asm_discard,
- slang_asm_exit,
- /* GL_MESA_shader_debug */
- slang_asm_float_print,
- slang_asm_int_print,
- slang_asm_bool_print,
- /* vec4 */
- slang_asm_float_to_vec4,
- slang_asm_vec4_add,
- slang_asm_vec4_subtract,
- slang_asm_vec4_multiply,
- slang_asm_vec4_divide,
- slang_asm_vec4_negate,
- slang_asm_vec4_dot,
- slang_asm_vec4_copy,
- slang_asm_vec4_deref,
- slang_asm_vec4_equal_int,
- /* not a real assembly instruction */
- slang_asm__last
-} slang_assembly_type;
-
-
-/**
- * An assembly-level shader instruction.
- */
-typedef struct slang_assembly_
-{
- slang_assembly_type type; /**< The instruction opcode */
- GLfloat literal; /**< float literal */
- GLuint param[2]; /**< Two integer/address parameters */
-} slang_assembly;
-
-
-/**
- * A list of slang_assembly instructions
- */
-typedef struct slang_assembly_file_
-{
- slang_assembly *code;
- GLuint count;
- GLuint capacity;
-} slang_assembly_file;
-
-
-extern GLvoid
-_slang_assembly_file_ctr(slang_assembly_file *);
-
-extern GLvoid
-slang_assembly_file_destruct(slang_assembly_file *);
-
-extern GLboolean
-slang_assembly_file_push(slang_assembly_file *, slang_assembly_type);
-
-extern GLboolean
-slang_assembly_file_push_label(slang_assembly_file *,
- slang_assembly_type, GLuint);
-
-extern GLboolean
-slang_assembly_file_push_label2(slang_assembly_file *, slang_assembly_type,
- GLuint, GLuint);
-
-extern GLboolean
-slang_assembly_file_push_literal(slang_assembly_file *,
- slang_assembly_type, GLfloat);
-
-
-typedef struct slang_assembly_file_restore_point_
-{
- GLuint count;
-} slang_assembly_file_restore_point;
-
-
-extern GLboolean
-slang_assembly_file_restore_point_save(slang_assembly_file *,
- slang_assembly_file_restore_point *);
-
-extern GLboolean
-slang_assembly_file_restore_point_load(slang_assembly_file *,
- slang_assembly_file_restore_point *);
-
-
-typedef struct slang_assembly_flow_control_
-{
- GLuint loop_start; /**< for "continue" statement */
- GLuint loop_end; /**< for "break" statement */
- GLuint function_end; /**< for "return" statement */
-} slang_assembly_flow_control;
-
-typedef struct slang_assembly_local_info_
-{
- GLuint ret_size;
- GLuint addr_tmp;
- GLuint swizzle_tmp;
-} slang_assembly_local_info;
-
-typedef enum
-{
- slang_ref_force,
- slang_ref_forbid /**< slang_ref_freelance */
-} slang_ref_type;
-
-/**
- * Holds complete information about vector swizzle - the <swizzle>
- * array contains vector component source indices, where 0 is "x", 1
- * is "y", 2 is "z" and 3 is "w".
- * Example: "xwz" --> { 3, { 0, 3, 2, not used } }.
- */
-typedef struct slang_swizzle_
-{
- GLuint num_components;
- GLuint swizzle[4];
-} slang_swizzle;
-
-typedef struct slang_assembly_name_space_
-{
- struct slang_function_scope_ *funcs;
- struct slang_struct_scope_ *structs;
- struct slang_variable_scope_ *vars;
-} slang_assembly_name_space;
-
-typedef struct slang_assemble_ctx_
-{
- slang_assembly_file *file;
- struct slang_machine_ *mach;
- slang_atom_pool *atoms;
- slang_assembly_name_space space;
- slang_assembly_flow_control flow;
- slang_assembly_local_info local;
- slang_ref_type ref;
- slang_swizzle swz;
-} slang_assemble_ctx;
-
-extern struct slang_function_ *
-_slang_locate_function(const struct slang_function_scope_ *funcs,
- slang_atom name, const struct slang_operation_ *params,
- GLuint num_params,
- const slang_assembly_name_space *space,
- slang_atom_pool *);
-
-extern GLboolean
-_slang_assemble_function(slang_assemble_ctx *, struct slang_function_ *);
-
-extern GLboolean
-_slang_assemble_function2(slang_assemble_ctx * , struct slang_function_ *);
-
-extern GLboolean
-_slang_cleanup_stack(slang_assemble_ctx *, struct slang_operation_ *);
-
-extern GLboolean
-_slang_dereference(slang_assemble_ctx *, struct slang_operation_ *);
-
-extern GLboolean
-_slang_assemble_function_call(slang_assemble_ctx *, struct slang_function_ *,
- struct slang_operation_ *, GLuint, GLboolean);
-
-extern GLboolean
-_slang_assemble_function_call_name(slang_assemble_ctx *, const char *,
- struct slang_operation_ *, GLuint,
- GLboolean);
-
-extern GLboolean
-_slang_assemble_operation(slang_assemble_ctx *, struct slang_operation_ *,
- slang_ref_type);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#include "slang_assemble_assignment.h"
-#include "slang_assemble_typeinfo.h"
-#include "slang_assemble_constructor.h"
-#include "slang_assemble_conditional.h"
-
-#endif