OrcProgram

Functions

orc_program_add_accumulator

int 
orc_program_add_accumulator (OrcProgram * program,
                             int  size,
                             const char * name)

Creates a new variable representing an accumulator.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data value

name

name of variable

Returns (int )

the index of the new variable


orc_program_add_constant

int 
orc_program_add_constant (OrcProgram * program,
                          int  size,
                          int  value,
                          const char * name)

Creates a new variable representing a constant value.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data value

value

the value

name

name of variable

Returns (int )

the index of the new variable


orc_program_add_constant_double

int 
orc_program_add_constant_double (OrcProgram * program,
                                 int  size,
                                 double  value,
                                 const char * name)

Parameters:

program
No description available
size
No description available
value
No description available
name
No description available
Returns (int )
No description available

orc_program_add_constant_float

int 
orc_program_add_constant_float (OrcProgram * program,
                                int  size,
                                float  value,
                                const char * name)

Parameters:

program
No description available
size
No description available
value
No description available
name
No description available
Returns (int )
No description available

orc_program_add_constant_int64

int 
orc_program_add_constant_int64 (OrcProgram * program,
                                int  size,
                                orc_int64 value,
                                const char * name)

Parameters:

program
No description available
size
No description available
value
No description available
name
No description available
Returns (int )
No description available

orc_program_add_constant_str

int 
orc_program_add_constant_str (OrcProgram * program,
                              int  size,
                              const char * value,
                              const char * name)

Parameters:

program
No description available
size
No description available
value
No description available
name
No description available
Returns (int )
No description available

orc_program_add_destination

int 
orc_program_add_destination (OrcProgram * program,
                             int  size,
                             const char * name)

Creates a new variable representing a destination array.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data values

name

name of variable

Returns (int )

the index of the new variable


orc_program_add_destination_full

int 
orc_program_add_destination_full (OrcProgram * program,
                                  int  size,
                                  const char * name,
                                  const char * type_name,
                                  int  alignment)

Creates a new variable representing a destination array.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data values

name

name of variable

type_name
No description available
alignment
No description available
Returns (int )

the index of the new variable


orc_program_add_parameter

int 
orc_program_add_parameter (OrcProgram * program,
                           int  size,
                           const char * name)

Creates a new variable representing a scalar parameter.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data value

name

name of variable

Returns (int )

the index of the new variable


orc_program_add_parameter_double

int 
orc_program_add_parameter_double (OrcProgram * program,
                                  int  size,
                                  const char * name)

Parameters:

program
No description available
size
No description available
name
No description available
Returns (int )
No description available

orc_program_add_parameter_float

int 
orc_program_add_parameter_float (OrcProgram * program,
                                 int  size,
                                 const char * name)

Creates a new variable representing a scalar parameter.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data value

name

name of variable

Returns (int )

the index of the new variable


orc_program_add_parameter_int64

int 
orc_program_add_parameter_int64 (OrcProgram * program,
                                 int  size,
                                 const char * name)

Parameters:

program
No description available
size
No description available
name
No description available
Returns (int )
No description available

orc_program_add_source

int 
orc_program_add_source (OrcProgram * program,
                        int  size,
                        const char * name)

Creates a new variable representing a source array.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data values

name

name of variable

Returns (int )

the index of the new variable


orc_program_add_source_full

int 
orc_program_add_source_full (OrcProgram * program,
                             int  size,
                             const char * name,
                             const char * type_name,
                             int  alignment)

Creates a new variable representing a source array.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data values

name

name of variable

type_name

name of type, or NULL

alignment

alignment in bytes, or 0

Returns (int )

the index of the new variable


orc_program_add_temporary

int 
orc_program_add_temporary (OrcProgram * program,
                           int  size,
                           const char * name)

Creates a new variable holding temporary values.

Parameters:

program

a pointer to an OrcProgram structure

size

size of data values

name

name of variable

Returns (int )

the index of the new variable


orc_program_allocate_register

int 
orc_program_allocate_register (OrcProgram * program,
                               int  is_data)

Parameters:

program
No description available
is_data
No description available
Returns (int )
No description available

orc_program_append

void 
orc_program_append (OrcProgram * p,
                    const char * opcode,
                    int  arg0,
                    int  arg1,
                    int  arg2)

Parameters:

p
No description available
opcode
No description available
arg0
No description available
arg1
No description available
arg2
No description available
Returns (void )
No description available

orc_program_append_2

void 
orc_program_append_2 (OrcProgram * program,
                      const char * name,
                      unsigned int  flags,
                      int  arg0,
                      int  arg1,
                      int  arg2,
                      int  arg3)

Parameters:

program
No description available
name
No description available
flags
No description available
arg0
No description available
arg1
No description available
arg2
No description available
arg3
No description available
Returns (void )
No description available

orc_program_append_dds_str

void 
orc_program_append_dds_str (OrcProgram * program,
                            const char * name,
                            const char * arg1,
                            const char * arg2,
                            const char * arg3)

Parameters:

program
No description available
name
No description available
arg1
No description available
arg2
No description available
arg3
No description available
Returns (void )
No description available

orc_program_append_ds

void 
orc_program_append_ds (OrcProgram * program,
                       const char * opcode,
                       int  arg0,
                       int  arg1)

Appends an instruction to the program, with arguments arg0, arg1, and arg2. The instruction must take 3 operands.

Parameters:

program

a pointer to an OrcProgram structure

opcode
No description available
arg0

index of first variable

arg1

index of second variable

Returns (void )
No description available

orc_program_append_ds_str

void 
orc_program_append_ds_str (OrcProgram * p,
                           const char * opcode,
                           const char * arg0,
                           const char * arg1)

Appends an instruction to the program, with arguments arg0 and arg2. The instruction must take 2 operands.

Parameters:

p
No description available
opcode
No description available
arg0

name of first variable

arg1

name of second variable

Returns (void )
No description available

orc_program_append_str

void 
orc_program_append_str (OrcProgram * p,
                        const char * opcode,
                        const char * arg0,
                        const char * arg1,
                        const char * arg2)

Appends an instruction to the program, with arguments arg0, arg1, and arg2. The instruction must take 3 operands.

Parameters:

p
No description available
opcode
No description available
arg0

name of first variable

arg1

name of second variable

arg2

name of third variable

Returns (void )
No description available

orc_program_append_str_2

void 
orc_program_append_str_2 (OrcProgram * program,
                          const char * name,
                          unsigned int  flags,
                          const char * arg1,
                          const char * arg2,
                          const char * arg3,
                          const char * arg4)

Appends an instruction to the program, with arguments arg0, arg1, arg2, and arg3.

Parameters:

program

a pointer to an OrcProgram structure

name

name of instruction

flags

flags

arg1

name of second variable

arg2

name of third variable

arg3

name of fourth variable

arg4
No description available
Returns (void )
No description available

orc_program_append_str_n

int 
orc_program_append_str_n (OrcProgram * program,
                          const char * name,
                          unsigned int  flags,
                          int  argc,
                          const char ** argv)

Appends an instruction to the program, with any number of arguments. Only 1 <= number <= 6 is supported.

Parameters:

program

a pointer to an OrcProgram structure

name

name of instruction

flags

flags

argc

number of variableds

argv

array of variables

Returns (int )

status code. 0: succesfull <0: malformed opcode (unknown or bad arguments)

0: unknown argument. Then the return value equals to the nth argument. Beware: this is index, not offset (the first is 1).


orc_program_compile

OrcCompileResult
orc_program_compile (OrcProgram * p)

Compiles an Orc program for the current CPU. If successful, executable code for the program was generated and can be executed.

The return value indicates various levels of success or failure. Success can be determined by checking for a true value of the macro ORC_COMPILE_RESULT_IS_SUCCESSFUL on the return value. This indicates that executable code was generated. If the macro ORC_COMPILE_RESULT_IS_FATAL on the return value evaluates to true, then there was a syntactical error in the program. If the result is neither successful nor fatal, the program can still be emulated.

Parameters:

p
No description available
Returns (OrcCompileResult)

an OrcCompileResult


orc_program_compile_for_target

OrcCompileResult
orc_program_compile_for_target (OrcProgram * p,
                                OrcTarget* target)

Compiles an Orc program for the given target, using the default target flags for that target.

Parameters:

p
No description available
target
No description available
Returns (OrcCompileResult)

an OrcCompileResult


orc_program_compile_full

OrcCompileResult
orc_program_compile_full (OrcProgram * p,
                          OrcTarget* target,
                          unsigned int  flags)

Compiles an Orc program for the given target, using the given target flags.

Parameters:

p
No description available
target
No description available
flags
No description available
Returns (OrcCompileResult)

an OrcCompileResult


orc_program_dup_temporary

int 
orc_program_dup_temporary (OrcProgram * program,
                           int  i,
                           int  j)

Internal function.

Parameters:

program

a pointer to an OrcProgram structure

i
No description available
j

index

Returns (int )

the index of the new variable


orc_program_find_var_by_name

int 
orc_program_find_var_by_name (OrcProgram * program,
                              const char * name)

Finds the variable with the name name. If no variable with the given name exists in the program, -1 is returned.

Parameters:

program

a pointer to an OrcProgram structure

name

name of instruction

Returns (int )

the index of the variable


orc_program_free

void 
orc_program_free (OrcProgram * program)

Frees an OrcProgram.

Parameters:

program

a pointer to an OrcProgram structure

Returns (void )
No description available

orc_program_get_asm_code

const char *
orc_program_get_asm_code (OrcProgram * program)

Returns a character string containing the assembly code created by compiling the program. This string is valid until the program is compiled again or the program is freed.

Parameters:

program

a pointer to an OrcProgram structure

Returns (const char *)

a character string


orc_program_get_error

const char *
orc_program_get_error (OrcProgram * program)

Returns a character string containing the error message from compilation. This string is valid until the program is compiled again, the program is freed, or another error is set.

Parameters:

program

a pointer to an OrcProgram structure

Returns (const char *)

a character string


orc_program_get_max_accumulator_size

int 
orc_program_get_max_accumulator_size (OrcProgram * program)

Returns the size of the largest array used in the program.

Parameters:

program

a pointer to an OrcProgram structure

Returns (int )

the number of bytes


orc_program_get_max_array_size

int 
orc_program_get_max_array_size (OrcProgram * program)

Returns the size of the largest array used in the program.

Parameters:

program

a pointer to an OrcProgram structure

Returns (int )

the number of bytes


orc_program_get_name

const char *
orc_program_get_name (OrcProgram * program)

Gets the name of the program. The string is valid until the name is changed or the program is freed.

Parameters:

program

a pointer to an OrcProgram structure

Returns (const char *)

a character string


orc_program_new

OrcProgram *
orc_program_new ()

Create a new OrcProgram. The program should be freed using orc_program_free().

Returns (OrcProgram *)

a pointer to an OrcProgram structure


orc_program_new_as

OrcProgram *
orc_program_new_as (int  size1,
                    int  size2)

Create a new OrcProgram, with an accumulator named "a1" and one source named "s1".

Parameters:

size1

size of destination array members

size2

size of source array members

Returns (OrcProgram *)

a pointer to an OrcProgram structure


orc_program_new_ass

OrcProgram *
orc_program_new_ass (int  size1,
                     int  size2,
                     int  size3)

Create a new OrcProgram, with an accumulator named "a1" and two source named "s1" and "s2".

Parameters:

size1

size of destination array members

size2

size of first source array members

size3

size of second source array members

Returns (OrcProgram *)

a pointer to an OrcProgram structure


orc_program_new_ds

OrcProgram *
orc_program_new_ds (int  size1,
                    int  size2)

Create a new OrcProgram, with a destination named "d1" and one source named "s1".

Parameters:

size1

size of destination array members

size2

size of source array members

Returns (OrcProgram *)

a pointer to an OrcProgram structure


orc_program_new_dss

OrcProgram *
orc_program_new_dss (int  size1,
                     int  size2,
                     int  size3)

Create a new OrcProgram, with a destination named "d1" and two sources named "s1" and "s2".

Parameters:

size1

size of destination array members

size2

size of first source array members

size3

size of second source array members

Returns (OrcProgram *)

a pointer to an OrcProgram structure


orc_program_new_from_static_bytecode

OrcProgram *
orc_program_new_from_static_bytecode (orc_uint8 * bytecode)

Parameters:

bytecode
No description available
Returns (OrcProgram *)
No description available

orc_program_reset

void 
orc_program_reset (OrcProgram * program)

Parameters:

program
No description available
Returns (void )
No description available

orc_program_set_2d

void 
orc_program_set_2d (OrcProgram * program)

Sets a flag on the program indicating that arrays are two dimensional. This causes the compiler to generate code for an OrcExec2D executor.

Parameters:

program

a pointer to an OrcProgram structure

Returns (void )
No description available

orc_program_set_backup_function

void 
orc_program_set_backup_function (OrcProgram * p,
                                 OrcExecutorFunc func)

Normally, if a program cannot be compiled for a particular CPU, Orc will emulate the function, which is typically very slow. This function allows the developer to provide a function that is called instead of resorting to emulation.

Parameters:

p
No description available
func

a function that performs the operations in the program

Returns (void )
No description available

orc_program_set_backup_name

void 
orc_program_set_backup_name (OrcProgram * p,
                             const char * name)

Parameters:

p
No description available
name

a function name that performs the operations in the program

Returns (void )
No description available

orc_program_set_constant_m

void 
orc_program_set_constant_m (OrcProgram * program,
                            int  m)

Parameters:

program
No description available
m
No description available
Returns (void )
No description available

orc_program_set_constant_n

void 
orc_program_set_constant_n (OrcProgram * program,
                            int  n)

Parameters:

program
No description available
n
No description available
Returns (void )
No description available

orc_program_set_error

void 
orc_program_set_error (OrcProgram * program,
                       const char * error)

Stores the error in the program. This string is duplicated. If an error has already been set, this new error is ignored. An error will stay till the next call to _reset, if any.

Parameters:

program

a pointer to an OrcProgram structure

error

an error string

Returns (void )
No description available

orc_program_set_line

void 
orc_program_set_line (OrcProgram * program,
                      unsigned int  line)

Sets the current line of the program.

Parameters:

program

a pointer to an OrcProgram structure

line
No description available
Returns (void )
No description available

orc_program_set_n_maximum

void 
orc_program_set_n_maximum (OrcProgram * ex,
                           int  n)

Parameters:

ex
No description available
n
No description available
Returns (void )
No description available

orc_program_set_n_minimum

void 
orc_program_set_n_minimum (OrcProgram * ex,
                           int  n)

Parameters:

ex
No description available
n
No description available
Returns (void )
No description available

orc_program_set_n_multiple

void 
orc_program_set_n_multiple (OrcProgram * ex,
                            int  n)

Parameters:

ex
No description available
n
No description available
Returns (void )
No description available

orc_program_set_name

void 
orc_program_set_name (OrcProgram * program,
                      const char * name)

Sets the name of the program. The string is copied.

Parameters:

program

a pointer to an OrcProgram structure

name

string to set the name to

Returns (void )
No description available

orc_program_set_sampling_type

void 
orc_program_set_sampling_type (OrcProgram * program,
                               int  var,
                               int  sampling_type)

Parameters:

program
No description available
var
No description available
sampling_type
No description available
Returns (void )
No description available

orc_program_set_type_name

void 
orc_program_set_type_name (OrcProgram * program,
                           int  var,
                           const char * type_name)

Parameters:

program
No description available
var
No description available
type_name
No description available
Returns (void )
No description available

orc_program_set_var_alignment

void 
orc_program_set_var_alignment (OrcProgram * program,
                               int  var,
                               int  alignment)

Parameters:

program
No description available
var
No description available
alignment
No description available
Returns (void )
No description available

orc_program_take_code

OrcCode *
orc_program_take_code (OrcProgram * program)

Parameters:

program
No description available
Returns (OrcCode *)
No description available

Structures

OrcProgram

The OrcProgram structure has no public members


struct (unnamed at /builds/gstreamer/orc/orc/orcprogram.h:28:3)

  struct {
    OrcStaticOpcode *opcode;
    int dest_args[ORC_STATIC_OPCODE_N_DEST];
    int src_args[ORC_STATIC_OPCODE_N_SRC];

    OrcRule *rule;
  } _unused[ORC_N_INSNS]; /* needed for ABI compatibility */

Fields

opcode (OrcStaticOpcode *) –
No description available
dest_args (int[2] ) –
No description available
src_args (int[4] ) –
No description available
rule (OrcRule *) –
No description available

struct (unnamed at /builds/gstreamer/orc/orc/orcprogram.h:37:3)

  struct {
    char *name;
    char *type_name;

    int size;
    OrcVarType vartype;

    int used;
    int first_use;
    int last_use;
    int replaced;
    int replacement;

    int alloc;
    int is_chained;
    int is_aligned;
    int is_uncached;

    int value;

    int ptr_register;
    int ptr_offset;
    int mask_alloc;
    int aligned_data;
    int param_type;
    int load_dest;
  } _unused3[ORC_N_VARIABLES]; /* needed for ABI compatibility */

Fields

name (char *) –
No description available
type_name (char *) –
No description available
size (int ) –
No description available
vartype (OrcVarType) –
No description available
used (int ) –
No description available
first_use (int ) –
No description available
last_use (int ) –
No description available
replaced (int ) –
No description available
replacement (int ) –
No description available
alloc (int ) –
No description available
is_chained (int ) –
No description available
is_aligned (int ) –
No description available
is_uncached (int ) –
No description available
value (int ) –
No description available
ptr_register (int ) –
No description available
ptr_offset (int ) –
No description available
mask_alloc (int ) –
No description available
aligned_data (int ) –
No description available
param_type (int ) –
No description available
load_dest (int ) –
No description available

The results of the search are