OrcOpcode: Orc Reference Manual

## OrcOpcode OrcOpcode — Operations |

## Functions

void | (*OrcOpcodeEmulateFunc) ()

## Types and Values

struct | OrcOpcodeExecutor
struct | OrcOpcodeSet
struct | OrcRuleSet
struct | OrcStaticOpcode
| OrcTarget
#define | ORC_OPCODE_N_ARGS
#define | ORC_STATIC_OPCODE_ACCUMULATOR
#define | ORC_STATIC_OPCODE_N_DEST
#define | ORC_STATIC_OPCODE_N_SRC

## Description

## Functions

### OrcOpcodeEmulateFunc ()

    void
    (*OrcOpcodeEmulateFunc) (OrcOpcodeExecutor *ex,
                             void *user);

## Types and Values

### struct OrcOpcodeExecutor

    struct OrcOpcodeExecutor {
    };

The OrcOpcodeExecutor structure has no public members

### struct OrcOpcodeSet

    struct OrcOpcodeSet {
    };

The OrcOpcodeSet structure has no public members

### struct OrcRuleSet

    struct OrcRuleSet {
    };

The OrcRuleSet structure has no public members

### struct OrcStaticOpcode

    struct OrcStaticOpcode {
      char name[16];
      unsigned int flags;
      int dest_size[ORC_STATIC_OPCODE_N_DEST];
      int src_size[ORC_STATIC_OPCODE_N_SRC];
      OrcOpcodeEmulateNFunc emulateN;
    };

### OrcTarget

    typedef struct {
      const char *name;
      orc_bool executable;
      int data_register_offset;

      unsigned int (*get_default_flags)(void);
      void (*compiler_init)(OrcCompiler *compiler);
      void (*compile)(OrcCompiler *compiler);

      OrcRuleSet rule_sets[ORC_N_RULE_SETS];
      int n_rule_sets;

      const char * (*get_asm_preamble)(void);
      void (*load_constant)(OrcCompiler *compiler, int reg, int size, int value);
      const char * (*get_flag_name)(int shift);
      void (*flush_cache) (OrcCode *code);
      void (*load_constant_long)(OrcCompiler *compiler, int reg,
          OrcConstant *constant);

      void *_unused[5];
    } OrcTarget;

### ORC_OPCODE_N_ARGS

    #define ORC_OPCODE_N_ARGS 4

### ORC_STATIC_OPCODE_ACCUMULATOR

    #define ORC_STATIC_OPCODE_ACCUMULATOR (1<<0)

### ORC_STATIC_OPCODE_N_DEST

    #define ORC_STATIC_OPCODE_N_DEST 2

### ORC_STATIC_OPCODE_N_SRC

    #define ORC_STATIC_OPCODE_N_SRC 4