![]() |
![]() |
![]() |
Orc Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
void (*OrcOpcodeEmulateFunc) (OrcOpcodeExecutor *ex
,void *user
); 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 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; };
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;
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
);