Blame orc/orccode.h

Packit a43c12
Packit a43c12
#ifndef _ORC_CODE_H_
Packit a43c12
#define _ORC_CODE_H_
Packit a43c12
Packit a43c12
#include <orc/orcutils.h>
Packit a43c12
#include <orc/orclimits.h>
Packit a43c12
#include <orc/orcexecutor.h>
Packit a43c12
#include <orc/orcinstruction.h>
Packit a43c12
Packit a43c12
ORC_BEGIN_DECLS
Packit a43c12
Packit a43c12
typedef struct _OrcCodeChunk OrcCodeChunk;
Packit a43c12
typedef struct _OrcCodeVariable OrcCodeVariable;
Packit a43c12
Packit a43c12
Packit a43c12
struct _OrcCodeVariable {
Packit a43c12
  /*< private >*/
Packit a43c12
  int vartype;
Packit a43c12
  int size;
Packit a43c12
  orc_union64 value;
Packit a43c12
};
Packit a43c12
Packit a43c12
struct _OrcCode {
Packit a43c12
  /*< public >*/
Packit a43c12
  OrcExecutorFunc exec;
Packit a43c12
Packit a43c12
  /*< private >*/
Packit a43c12
  OrcCompileResult result;
Packit a43c12
  char *name;
Packit a43c12
Packit a43c12
  /* for execution */
Packit a43c12
  unsigned char *code;
Packit a43c12
  int code_size;
Packit a43c12
  void *chunk;
Packit a43c12
Packit a43c12
  /* for emulation */
Packit a43c12
  int n_insns;
Packit a43c12
  OrcInstruction *insns;
Packit a43c12
  OrcCodeVariable *vars;
Packit a43c12
  int is_2d;
Packit a43c12
  int constant_n;
Packit a43c12
  int constant_m;
Packit a43c12
};
Packit a43c12
Packit a43c12
Packit a43c12
void orc_code_allocate_codemem (OrcCode *code, int size);
Packit a43c12
Packit a43c12
OrcCode * orc_code_new (void);
Packit a43c12
void orc_code_free (OrcCode *code);
Packit a43c12
Packit a43c12
#ifdef ORC_ENABLE_UNSTABLE_API
Packit a43c12
Packit a43c12
void orc_code_chunk_free (OrcCodeChunk *chunk);
Packit a43c12
Packit a43c12
#endif
Packit a43c12
Packit a43c12
ORC_END_DECLS
Packit a43c12
Packit a43c12
#endif
Packit a43c12