core | glapi | vbo | math | shader | swrast | swrast_setup | tnl | tnl_dd

prog_instruction.c File Reference

#include "main/glheader.h"
#include "main/imports.h"
#include "main/mtypes.h"
#include "prog_instruction.h"

Data Structures

struct  instruction_info
 Basic info about each instruction. More...

Functions

void _mesa_init_instructions (struct prog_instruction *inst, GLuint count)
 Initialize program instruction fields to defaults.
struct prog_instruction_mesa_alloc_instructions (GLuint numInst)
 Allocate an array of program instructions.
struct prog_instruction_mesa_realloc_instructions (struct prog_instruction *oldInst, GLuint numOldInst, GLuint numNewInst)
 Reallocate memory storing an array of program instructions.
struct prog_instruction_mesa_copy_instructions (struct prog_instruction *dest, const struct prog_instruction *src, GLuint n)
 Copy an array of program instructions.
void _mesa_free_instructions (struct prog_instruction *inst, GLuint count)
 Free an array of instructions.
GLuint _mesa_num_inst_src_regs (gl_inst_opcode opcode)
 Return the number of src registers for the given instruction/opcode.
GLuint _mesa_num_inst_dst_regs (gl_inst_opcode opcode)
 Return the number of dst registers for the given instruction/opcode.
GLboolean _mesa_is_tex_instruction (gl_inst_opcode opcode)
GLboolean _mesa_check_soa_dependencies (const struct prog_instruction *inst)
 Check if there's a potential src/dst register data dependency when using SOA execution.
const char * _mesa_opcode_string (gl_inst_opcode opcode)
 Return string name for given program opcode.

Variables

static struct instruction_info InstInfo [MAX_OPCODE]
 Instruction info.


Function Documentation

struct prog_instruction* _mesa_alloc_instructions ( GLuint  numInst  )  [read]

Allocate an array of program instructions.

Parameters:
numInst number of instructions
Returns:
pointer to instruction memory

GLboolean _mesa_check_soa_dependencies ( const struct prog_instruction inst  ) 

Check if there's a potential src/dst register data dependency when using SOA execution.

Example: MOV T, T.yxwz; This would expand into: MOV t0, t1; MOV t1, t0; MOV t2, t3; MOV t3, t2; The second instruction will have the wrong value for t0 if executed as-is.

struct prog_instruction* _mesa_copy_instructions ( struct prog_instruction dest,
const struct prog_instruction src,
GLuint  n 
) [read]

Copy an array of program instructions.

Parameters:
dest pointer to destination.
src pointer to source.
n number of instructions to copy.
Returns:
pointer to destination.

void _mesa_free_instructions ( struct prog_instruction inst,
GLuint  count 
)

Free an array of instructions.

void _mesa_init_instructions ( struct prog_instruction inst,
GLuint  count 
)

Initialize program instruction fields to defaults.

Parameters:
inst first instruction to initialize
count number of instructions to initialize

GLboolean _mesa_is_tex_instruction ( gl_inst_opcode  opcode  ) 

GLuint _mesa_num_inst_dst_regs ( gl_inst_opcode  opcode  ) 

Return the number of dst registers for the given instruction/opcode.

GLuint _mesa_num_inst_src_regs ( gl_inst_opcode  opcode  ) 

Return the number of src registers for the given instruction/opcode.

const char* _mesa_opcode_string ( gl_inst_opcode  opcode  ) 

Return string name for given program opcode.

struct prog_instruction* _mesa_realloc_instructions ( struct prog_instruction oldInst,
GLuint  numOldInst,
GLuint  numNewInst 
) [read]

Reallocate memory storing an array of program instructions.

This is used when we need to append additional instructions onto an program.

Parameters:
oldInst pointer to first of old/src instructions
numOldInst number of instructions at <oldInst>
numNewInst desired size of new instruction array.
Returns:
pointer to start of new instruction array.


Variable Documentation

struct instruction_info InstInfo[MAX_OPCODE] [static]

Instruction info.

Note:
Opcode should equal array index!


Generated on Sun Sep 27 06:48:02 2009 for Mesa Vertex and Fragment Program code by  doxygen 1.5.4