/usr/include/orc-0.4/orc/orccompiler.h is in liborc-0.4-dev 1:0.4.28-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | #ifndef _ORC_COMPILER_H_
#define _ORC_COMPILER_H_
#include <orc/orcutils.h>
#include <orc/orclimits.h>
#include <orc/orcexecutor.h>
#include <orc/orccode.h>
#include <orc/orctarget.h>
#include <orc/orcinstruction.h>
#include <orc/orcvariable.h>
#include <orc/orcconstant.h>
ORC_BEGIN_DECLS
typedef struct _OrcFixup OrcFixup;
#define ORC_ENABLE_ASM_CODE
#ifdef ORC_ENABLE_ASM_CODE
#define ORC_ASM_CODE(compiler,...) orc_compiler_append_code(compiler, __VA_ARGS__)
#else
#define ORC_ASM_CODE(compiler,...)
#endif
#define ORC_COMPILER_ERROR(compiler, ...) do { \
compiler->error = TRUE; \
compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE; \
orc_debug_print(ORC_DEBUG_WARNING, __FILE__, ORC_FUNCTION, __LINE__, __VA_ARGS__); \
} while (0)
#if 0
/* FIXME in orcutils.h since it's needed in orccode.h */
typedef enum {
ORC_COMPILE_RESULT_OK = 0,
ORC_COMPILE_RESULT_UNKNOWN_COMPILE = 0x100,
ORC_COMPILE_RESULT_MISSING_RULE = 0x101,
ORC_COMPILE_RESULT_UNKNOWN_PARSE = 0x200,
ORC_COMPILE_RESULT_PARSE = 0x201,
ORC_COMPILE_RESULT_VARIABLE = 0x202
} OrcCompileResult;
#endif
#define ORC_COMPILE_RESULT_IS_SUCCESSFUL(x) ((x) < 0x100)
#define ORC_COMPILE_RESULT_IS_FATAL(x) ((x) >= 0x200)
/**
* OrcFixup:
*
* The OrcFixup structure has no public members
*/
struct _OrcFixup {
/*< private >*/
unsigned char *ptr;
int type;
int label;
};
/**
* OrcCompiler:
*
* The OrcCompiler structure has no public members
*/
struct _OrcCompiler {
/*< private >*/
OrcProgram *program;
OrcTarget *target;
unsigned int target_flags;
OrcInstruction insns[ORC_N_INSNS];
int n_insns;
OrcVariable vars[ORC_N_COMPILER_VARIABLES];
int n_temp_vars;
int n_dup_vars;
unsigned char *code;
unsigned char *codeptr;
OrcConstant constants[ORC_N_CONSTANTS];
int n_constants;
OrcFixup fixups[ORC_N_FIXUPS];
int n_fixups;
unsigned char *labels[ORC_N_LABELS];
int labels_int[ORC_N_LABELS];
int n_labels;
int error;
char *error_msg;
OrcCompileResult result;
int valid_regs[ORC_N_REGS];
int save_regs[ORC_N_REGS];
int used_regs[ORC_N_REGS];
int alloc_regs[ORC_N_REGS];
int loop_shift;
int long_jumps;
int use_frame_pointer;
char *asm_code;
int asm_code_len;
int is_64bit;
int tmpreg;
int tmpreg2;
int exec_reg;
int gp_tmpreg;
int insn_index;
int unroll_index;
int need_mask_regs;
int unroll_shift;
int alloc_loop_counter;
int allow_gp_on_stack;
int loop_counter;
int size_region;
int has_iterator_opcode;
int offset;
int min_temp_reg;
int max_used_temp_reg;
int insn_shift; /* used when emitting rules */
int max_var_size; /* size of largest var */
int load_params;
void *output_insns;
int n_output_insns;
int n_output_insns_alloc;
};
int orc_compiler_label_new (OrcCompiler *compiler);
int orc_compiler_get_constant (OrcCompiler *compiler, int size, int value);
int orc_compiler_get_constant_long (OrcCompiler *compiler, orc_uint32 a,
orc_uint32 b, orc_uint32 c, orc_uint32 d);
int orc_compiler_try_get_constant_long (OrcCompiler *compiler, orc_uint32 a,
orc_uint32 b, orc_uint32 c, orc_uint32 d);
int orc_compiler_get_temp_constant (OrcCompiler *compiler, int size, int value);
int orc_compiler_get_temp_reg (OrcCompiler *compiler);
int orc_compiler_get_constant_reg (OrcCompiler *compiler);
void orc_compiler_error (OrcCompiler *compiler, const char *fmt, ...);
void orc_compiler_append_code (OrcCompiler *p, const char *fmt, ...)
ORC_GNU_PRINTF(2,3);
#ifdef ORC_ENABLE_UNSTABLE_API
int orc_compiler_flag_check (const char *flag);
extern int _orc_compiler_flag_backup;
extern int _orc_compiler_flag_emulate;
extern int _orc_compiler_flag_debug;
extern int _orc_compiler_flag_randomize;
#endif
ORC_END_DECLS
#endif
|