|  |  |  | Orc Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
void (*OrcOpcodeEmulateFunc) (OrcOpcodeExecutor *ex,void *user); struct OrcOpcodeExecutor; struct OrcOpcodeSet; struct OrcRuleSet; struct OrcStaticOpcode; struct OrcTarget; #define ORC_OPCODE_N_ARGS #define ORC_STATIC_OPCODE_ACCUMULATOR #define ORC_STATIC_OPCODE_N_DEST #define ORC_STATIC_OPCODE_N_SRC OrcStaticOpcode * orc_opcode_find_by_name (const char *name); void orc_opcode_init (void); int orc_opcode_register_static (OrcStaticOpcode *sopcode,char *prefix); int orc_opcode_set_find_by_name (OrcOpcodeSet *opcode_set,const char *name); OrcOpcodeSet * orc_opcode_set_get (const char *name); OrcRuleSet * orc_rule_set_new (OrcOpcodeSet *opcode_set,OrcTarget *target,unsigned int required_flags); const char * orc_target_get_asm_preamble (const char *target); OrcTarget * orc_target_get_by_name (const char *target_name); OrcTarget * orc_target_get_default (void); unsigned int orc_target_get_default_flags (OrcTarget *target); const char * orc_target_get_name (OrcTarget *target); OrcRule * orc_target_get_rule (OrcTarget *target,OrcStaticOpcode *opcode,unsigned int target_flags); void orc_target_register (OrcTarget *target);
struct OrcOpcodeExecutor {
};
The OrcOpcodeExecutor structure has no public members
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;
};
struct OrcTarget {
  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];
};
int orc_opcode_register_static (OrcStaticOpcode *sopcode,char *prefix);
int orc_opcode_set_find_by_name (OrcOpcodeSet *opcode_set,const char *name);
OrcRuleSet * orc_rule_set_new (OrcOpcodeSet *opcode_set,OrcTarget *target,unsigned int required_flags);
OrcRule * orc_target_get_rule (OrcTarget *target,OrcStaticOpcode *opcode,unsigned int target_flags);