| opcodes.h | | opcodes.h | |
| UNARY_SB(absb, "ORC_ABS(%s)") | | UNARY_SB(absb, "ORC_ABS(%s)") | |
| BINARY_SB(addb, "%s + %s") | | BINARY_SB(addb, "%s + %s") | |
| BINARY_SB(addssb, "ORC_CLAMP_SB(%s + %s)") | | BINARY_SB(addssb, "ORC_CLAMP_SB(%s + %s)") | |
|
| BINARY_UB(addusb, "ORC_CLAMP_UB(%s + %s)") | | BINARY_UB(addusb, "ORC_CLAMP_UB((uint8_t)%s + (uint8_t)%s)") | |
| BINARY_SB(andb, "%s & %s") | | BINARY_SB(andb, "%s & %s") | |
| BINARY_SB(andnb, "%s & (~%s)") | | BINARY_SB(andnb, "%s & (~%s)") | |
| BINARY_SB(avgsb, "(%s + %s + 1)>>1") | | BINARY_SB(avgsb, "(%s + %s + 1)>>1") | |
|
| BINARY_UB(avgub, "(%s + %s + 1)>>1") | | BINARY_UB(avgub, "((uint8_t)%s + (uint8_t)%s + 1)>>1") | |
| BINARY_SB(cmpeqb, "(%s == %s) ? (~0) : 0") | | BINARY_SB(cmpeqb, "(%s == %s) ? (~0) : 0") | |
| BINARY_SB(cmpgtsb, "(%s > %s) ? (~0) : 0") | | BINARY_SB(cmpgtsb, "(%s > %s) ? (~0) : 0") | |
| UNARY_SB(copyb, "%s") | | UNARY_SB(copyb, "%s") | |
| BINARY_SB(maxsb, "ORC_MAX(%s, %s)") | | BINARY_SB(maxsb, "ORC_MAX(%s, %s)") | |
| BINARY_UB(maxub, "ORC_MAX(%s, %s)") | | BINARY_UB(maxub, "ORC_MAX(%s, %s)") | |
| BINARY_SB(minsb, "ORC_MIN(%s, %s)") | | BINARY_SB(minsb, "ORC_MIN(%s, %s)") | |
| BINARY_UB(minub, "ORC_MIN(%s, %s)") | | BINARY_UB(minub, "ORC_MIN(%s, %s)") | |
| BINARY_SB(mullb, "(%s * %s) & 0xff") | | BINARY_SB(mullb, "(%s * %s) & 0xff") | |
| BINARY_SB(mulhsb, "(%s * %s) >> 8") | | BINARY_SB(mulhsb, "(%s * %s) >> 8") | |
| BINARY_UB(mulhub, "(%s * %s) >> 8") | | BINARY_UB(mulhub, "(%s * %s) >> 8") | |
| | | | |
| skipping to change at line 32 | | skipping to change at line 32 | |
| BINARY_UB(shrub, "((uint8_t)%s) >> %s") | | BINARY_UB(shrub, "((uint8_t)%s) >> %s") | |
| UNARY_SB(signb, "ORC_CLAMP(%s,-1,1)") | | UNARY_SB(signb, "ORC_CLAMP(%s,-1,1)") | |
| BINARY_SB(subb, "%s - %s") | | BINARY_SB(subb, "%s - %s") | |
| BINARY_SB(subssb, "ORC_CLAMP_SB(%s - %s)") | | BINARY_SB(subssb, "ORC_CLAMP_SB(%s - %s)") | |
| BINARY_UB(subusb, "ORC_CLAMP_UB((uint8_t)%s - (uint8_t)%s)") | | BINARY_UB(subusb, "ORC_CLAMP_UB((uint8_t)%s - (uint8_t)%s)") | |
| BINARY_SB(xorb, "%s ^ %s") | | BINARY_SB(xorb, "%s ^ %s") | |
| | | | |
| UNARY_SW(absw, "ORC_ABS(%s)") | | UNARY_SW(absw, "ORC_ABS(%s)") | |
| BINARY_SW(addw, "%s + %s") | | BINARY_SW(addw, "%s + %s") | |
| BINARY_SW(addssw, "ORC_CLAMP_SW(%s + %s)") | | BINARY_SW(addssw, "ORC_CLAMP_SW(%s + %s)") | |
|
| BINARY_UW(addusw, "ORC_CLAMP_UW(%s + %s)") | | BINARY_UW(addusw, "ORC_CLAMP_UW((uint16_t)%s + (uint16_t)%s)") | |
| BINARY_SW(andw, "%s & %s") | | BINARY_SW(andw, "%s & %s") | |
| BINARY_SW(andnw, "%s & (~%s)") | | BINARY_SW(andnw, "%s & (~%s)") | |
| BINARY_SW(avgsw, "(%s + %s + 1)>>1") | | BINARY_SW(avgsw, "(%s + %s + 1)>>1") | |
|
| BINARY_UW(avguw, "(%s + %s + 1)>>1") | | BINARY_UW(avguw, "((uint16_t)%s + (uint16_t)%s + 1)>>1") | |
| BINARY_SW(cmpeqw, "(%s == %s) ? (~0) : 0") | | BINARY_SW(cmpeqw, "(%s == %s) ? (~0) : 0") | |
| BINARY_SW(cmpgtsw, "(%s > %s) ? (~0) : 0") | | BINARY_SW(cmpgtsw, "(%s > %s) ? (~0) : 0") | |
| UNARY_SW(copyw, "%s") | | UNARY_SW(copyw, "%s") | |
| BINARY_SW(maxsw, "ORC_MAX(%s, %s)") | | BINARY_SW(maxsw, "ORC_MAX(%s, %s)") | |
| BINARY_UW(maxuw, "ORC_MAX(%s, %s)") | | BINARY_UW(maxuw, "ORC_MAX(%s, %s)") | |
| BINARY_SW(minsw, "ORC_MIN(%s, %s)") | | BINARY_SW(minsw, "ORC_MIN(%s, %s)") | |
| BINARY_UW(minuw, "ORC_MIN(%s, %s)") | | BINARY_UW(minuw, "ORC_MIN(%s, %s)") | |
| BINARY_SW(mullw, "(%s * %s) & 0xffff") | | BINARY_SW(mullw, "(%s * %s) & 0xffff") | |
| BINARY_SW(mulhsw, "(%s * %s) >> 16") | | BINARY_SW(mulhsw, "(%s * %s) >> 16") | |
| BINARY_UW(mulhuw, "(%s * %s) >> 16") | | BINARY_UW(mulhuw, "(%s * %s) >> 16") | |
| BINARY_SW(orw, "%s | %s") | | BINARY_SW(orw, "%s | %s") | |
| BINARY_SW(shlw, "%s << %s") | | BINARY_SW(shlw, "%s << %s") | |
| BINARY_SW(shrsw, "%s >> %s") | | BINARY_SW(shrsw, "%s >> %s") | |
| BINARY_UW(shruw, "%s >> %s") | | BINARY_UW(shruw, "%s >> %s") | |
| UNARY_SW(signw, "ORC_CLAMP(%s,-1,1)") | | UNARY_SW(signw, "ORC_CLAMP(%s,-1,1)") | |
| BINARY_SW(subw, "%s - %s") | | BINARY_SW(subw, "%s - %s") | |
| BINARY_SW(subssw, "ORC_CLAMP_SW(%s - %s)") | | BINARY_SW(subssw, "ORC_CLAMP_SW(%s - %s)") | |
|
| BINARY_UW(subusw, "ORC_CLAMP_UW(%s - %s)") | | BINARY_UW(subusw, "ORC_CLAMP_UW((uint16_t)%s - (uint16_t)%s)") | |
| BINARY_SW(xorw, "%s ^ %s") | | BINARY_SW(xorw, "%s ^ %s") | |
| | | | |
| UNARY_SL(absl, "ORC_ABS(%s)") | | UNARY_SL(absl, "ORC_ABS(%s)") | |
| BINARY_SL(addl, "%s + %s") | | BINARY_SL(addl, "%s + %s") | |
| BINARY_SL(addssl, "ORC_CLAMP_SL((int64_t)%s + (int64_t)%s)") | | BINARY_SL(addssl, "ORC_CLAMP_SL((int64_t)%s + (int64_t)%s)") | |
| BINARY_UL(addusl, "ORC_CLAMP_UL((uint64_t)%s + (uint64_t)%s)") | | BINARY_UL(addusl, "ORC_CLAMP_UL((uint64_t)%s + (uint64_t)%s)") | |
| BINARY_SL(andl, "%s & %s") | | BINARY_SL(andl, "%s & %s") | |
| BINARY_SL(andnl, "%s & (~%s)") | | BINARY_SL(andnl, "%s & (~%s)") | |
| BINARY_SL(avgsl, "(%s + %s + 1)>>1") | | BINARY_SL(avgsl, "(%s + %s + 1)>>1") | |
|
| BINARY_UL(avgul, "(%s + %s + 1)>>1") | | BINARY_UL(avgul, "((uint32_t)%s + (uint32_t)%s + 1)>>1") | |
| BINARY_SL(cmpeql, "(%s == %s) ? (~0) : 0") | | BINARY_SL(cmpeql, "(%s == %s) ? (~0) : 0") | |
| BINARY_SL(cmpgtsl, "(%s > %s) ? (~0) : 0") | | BINARY_SL(cmpgtsl, "(%s > %s) ? (~0) : 0") | |
| UNARY_SL(copyl, "%s") | | UNARY_SL(copyl, "%s") | |
| BINARY_SL(maxsl, "ORC_MAX(%s, %s)") | | BINARY_SL(maxsl, "ORC_MAX(%s, %s)") | |
| BINARY_UL(maxul, "ORC_MAX(%s, %s)") | | BINARY_UL(maxul, "ORC_MAX(%s, %s)") | |
| BINARY_SL(minsl, "ORC_MIN(%s, %s)") | | BINARY_SL(minsl, "ORC_MIN(%s, %s)") | |
| BINARY_UL(minul, "ORC_MIN(%s, %s)") | | BINARY_UL(minul, "ORC_MIN(%s, %s)") | |
| BINARY_SL(mulll, "(%s * %s) & 0xffffffff") | | BINARY_SL(mulll, "(%s * %s) & 0xffffffff") | |
| BINARY_SL(mulhsl, "((int64_t)%s * (int64_t)%s) >> 32") | | BINARY_SL(mulhsl, "((int64_t)%s * (int64_t)%s) >> 32") | |
| BINARY_UL(mulhul, "((uint64_t)%s * (uint64_t)%s) >> 32") | | BINARY_UL(mulhul, "((uint64_t)%s * (uint64_t)%s) >> 32") | |
| | | | |
| skipping to change at line 101 | | skipping to change at line 101 | |
| UNARY_WB(convsuswb, "ORC_CLAMP_UB(%s)") | | UNARY_WB(convsuswb, "ORC_CLAMP_UB(%s)") | |
| UNARY_WB(convusswb, "ORC_CLAMP_SB(%s)") | | UNARY_WB(convusswb, "ORC_CLAMP_SB(%s)") | |
| UNARY_WB(convuuswb, "ORC_CLAMP_UB(%s)") | | UNARY_WB(convuuswb, "ORC_CLAMP_UB(%s)") | |
| UNARY_LW(convlw, "%s") | | UNARY_LW(convlw, "%s") | |
| UNARY_LW(convssslw, "ORC_CLAMP_SW(%s)") | | UNARY_LW(convssslw, "ORC_CLAMP_SW(%s)") | |
| UNARY_LW(convsuslw, "ORC_CLAMP_UW(%s)") | | UNARY_LW(convsuslw, "ORC_CLAMP_UW(%s)") | |
| UNARY_LW(convusslw, "ORC_CLAMP_SW(%s)") | | UNARY_LW(convusslw, "ORC_CLAMP_SW(%s)") | |
| UNARY_LW(convuuslw, "ORC_CLAMP_UW(%s)") | | UNARY_LW(convuuslw, "ORC_CLAMP_UW(%s)") | |
| | | | |
| BINARY_BW(mulsbw, "%s * %s") | | BINARY_BW(mulsbw, "%s * %s") | |
|
| BINARY_BW(mulubw, "%s * %s") | | BINARY_BW(mulubw, "(uint8_t)%s * (uint8_t)%s") | |
| BINARY_WL(mulswl, "%s * %s") | | BINARY_WL(mulswl, "%s * %s") | |
|
| BINARY_WL(muluwl, "%s * %s") | | BINARY_WL(muluwl, "(uint16_t)%s * (uint16_t)%s") | |
| | | | |
|
| BINARY_WL(mergewl, "(%s << 16) | (%s)") | | BINARY_WL(mergewl, "((uint16_t)%s) | ((uint16_t)%s << 16)") | |
| BINARY_BW(mergebw, "(%s << 8) | (%s)") | | BINARY_BW(mergebw, "((uint8_t)%s) | ((uint8_t)%s << 8)") | |
| UNARY_WB(select0wb, "(%s >> 8)&0xff") | | UNARY_WB(select0wb, "(uint16_t)%s & 0xff") | |
| UNARY_WB(select1wb, "%s & 0xff") | | UNARY_WB(select1wb, "((uint16_t)%s >> 8)&0xff") | |
| UNARY_LW(select0lw, "(%s >> 16)&0xffff") | | UNARY_LW(select0lw, "(uint32_t)%s & 0xffff") | |
| UNARY_LW(select1lw, "%s & 0xffff") | | UNARY_LW(select1lw, "((uint32_t)%s >> 16)&0xffff") | |
| UNARY_UW(swapw, "ORC_SWAP_W(%s)") | | UNARY_UW(swapw, "ORC_SWAP_W(%s)") | |
| UNARY_UL(swapl, "ORC_SWAP_L(%s)") | | UNARY_UL(swapl, "ORC_SWAP_L(%s)") | |
| | | | |
End of changes. 9 change blocks. |
| 14 lines changed or deleted | | 14 lines changed or added | |
|
| orcprogram.h | | orcprogram.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| typedef struct _OrcProgram OrcProgram; | | typedef struct _OrcProgram OrcProgram; | |
| typedef struct _OrcCompiler OrcCompiler; | | typedef struct _OrcCompiler OrcCompiler; | |
| typedef struct _OrcRule OrcRule; | | typedef struct _OrcRule OrcRule; | |
| typedef struct _OrcRuleSet OrcRuleSet; | | typedef struct _OrcRuleSet OrcRuleSet; | |
| typedef struct _OrcConstant OrcConstant; | | typedef struct _OrcConstant OrcConstant; | |
| typedef struct _OrcFixup OrcFixup; | | typedef struct _OrcFixup OrcFixup; | |
| typedef struct _OrcTarget OrcTarget; | | typedef struct _OrcTarget OrcTarget; | |
| | | | |
| typedef void (*OrcOpcodeEmulateFunc)(OrcOpcodeExecutor *ex, void *user); | | typedef void (*OrcOpcodeEmulateFunc)(OrcOpcodeExecutor *ex, void *user); | |
| typedef void (*OrcRuleEmitFunc)(OrcCompiler *p, void *user, OrcInstruction
*insn); | | typedef void (*OrcRuleEmitFunc)(OrcCompiler *p, void *user, OrcInstruction
*insn); | |
|
| | | typedef void (*OrcExecutorFunc)(OrcExecutor *ex); | |
| | | | |
| #define ORC_N_REGS (32*4) | | #define ORC_N_REGS (32*4) | |
| #define ORC_N_INSNS 100 | | #define ORC_N_INSNS 100 | |
| #define ORC_N_VARIABLES 64 | | #define ORC_N_VARIABLES 64 | |
| #define ORC_N_REGISTERS 20 | | #define ORC_N_REGISTERS 20 | |
| #define ORC_N_FIXUPS 20 | | #define ORC_N_FIXUPS 20 | |
| #define ORC_N_CONSTANTS 20 | | #define ORC_N_CONSTANTS 20 | |
| #define ORC_N_LABELS 20 | | #define ORC_N_LABELS 20 | |
| | | | |
| #define ORC_GP_REG_BASE 32 | | #define ORC_GP_REG_BASE 32 | |
| | | | |
| skipping to change at line 72 | | skipping to change at line 73 | |
| orc_debug_print(ORC_DEBUG_ERROR, __FILE__, ORC_FUNCTION, __LINE__, __VA_A
RGS__); \ | | orc_debug_print(ORC_DEBUG_ERROR, __FILE__, ORC_FUNCTION, __LINE__, __VA_A
RGS__); \ | |
| } while (0) | | } while (0) | |
| | | | |
| #define ORC_COMPILER_ERROR(compiler, ...) do { \ | | #define ORC_COMPILER_ERROR(compiler, ...) do { \ | |
| compiler->error = TRUE; \ | | compiler->error = TRUE; \ | |
| compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE; \ | | compiler->result = ORC_COMPILE_RESULT_UNKNOWN_PARSE; \ | |
| orc_debug_print(ORC_DEBUG_ERROR, __FILE__, ORC_FUNCTION, __LINE__, __VA_A
RGS__); \ | | orc_debug_print(ORC_DEBUG_ERROR, __FILE__, ORC_FUNCTION, __LINE__, __VA_A
RGS__); \ | |
| } while (0) | | } while (0) | |
| | | | |
| enum { | | enum { | |
|
| ORC_TARGET_C_C99 = (1<<0) | | ORC_TARGET_C_C99 = (1<<0), | |
| | | ORC_TARGET_C_BARE = (1<<1) | |
| }; | | }; | |
| | | | |
| enum { | | enum { | |
| ORC_TARGET_ALTIVEC_ALTIVEC = (1<<0) | | ORC_TARGET_ALTIVEC_ALTIVEC = (1<<0) | |
| }; | | }; | |
| | | | |
| typedef enum { | | typedef enum { | |
| ORC_VAR_TYPE_TEMP, | | ORC_VAR_TYPE_TEMP, | |
| ORC_VAR_TYPE_SRC, | | ORC_VAR_TYPE_SRC, | |
| ORC_VAR_TYPE_DEST, | | ORC_VAR_TYPE_DEST, | |
| | | | |
| skipping to change at line 168 | | skipping to change at line 170 | |
| #define ORC_COMPILE_RESULT_IS_FATAL(x) ((x) >= 0x200) | | #define ORC_COMPILE_RESULT_IS_FATAL(x) ((x) >= 0x200) | |
| | | | |
| /** | | /** | |
| * OrcVariable: | | * OrcVariable: | |
| * | | * | |
| * The OrcVariable structure has no public members | | * The OrcVariable structure has no public members | |
| */ | | */ | |
| struct _OrcVariable { | | struct _OrcVariable { | |
| /*< private >*/ | | /*< private >*/ | |
| char *name; | | char *name; | |
|
| | | char *type_name; | |
| | | | |
| int size; | | int size; | |
| OrcVarType vartype; | | OrcVarType vartype; | |
| | | | |
| int used; | | int used; | |
| int first_use; | | int first_use; | |
| int last_use; | | int last_use; | |
| int replaced; | | int replaced; | |
| int replacement; | | int replacement; | |
| | | | |
| int alloc; | | int alloc; | |
| int is_chained; | | int is_chained; | |
| int is_aligned; | | int is_aligned; | |
| int is_uncached; | | int is_uncached; | |
| | | | |
| int value; | | int value; | |
| | | | |
| int ptr_register; | | int ptr_register; | |
| int ptr_offset; | | int ptr_offset; | |
|
| | | int mask_alloc; | |
| | | int aligned_data; | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * OrcRule: | | * OrcRule: | |
| * | | * | |
| * The OrcRule structure has no public members | | * The OrcRule structure has no public members | |
| */ | | */ | |
| struct _OrcRule { | | struct _OrcRule { | |
| /*< private >*/ | | /*< private >*/ | |
| OrcRuleEmitFunc emit; | | OrcRuleEmitFunc emit; | |
| | | | |
| skipping to change at line 302 | | skipping to change at line 307 | |
| int n_const_vars; | | int n_const_vars; | |
| int n_temp_vars; | | int n_temp_vars; | |
| int n_accum_vars; | | int n_accum_vars; | |
| | | | |
| char *name; | | char *name; | |
| char *asm_code; | | char *asm_code; | |
| | | | |
| unsigned char *code; | | unsigned char *code; | |
| void *code_exec; | | void *code_exec; | |
| int code_size; | | int code_size; | |
|
| | | | |
| | | void *backup_func; | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * OrcCompiler: | | * OrcCompiler: | |
| * | | * | |
| * The OrcCompiler structure has no public members | | * The OrcCompiler structure has no public members | |
| */ | | */ | |
| struct _OrcCompiler { | | struct _OrcCompiler { | |
| /*< private >*/ | | /*< private >*/ | |
| OrcProgram *program; | | OrcProgram *program; | |
| | | | |
| skipping to change at line 351 | | skipping to change at line 358 | |
| int long_jumps; | | int long_jumps; | |
| int use_frame_pointer; | | int use_frame_pointer; | |
| | | | |
| char *asm_code; | | char *asm_code; | |
| int asm_code_len; | | int asm_code_len; | |
| | | | |
| int is_64bit; | | int is_64bit; | |
| int tmpreg; | | int tmpreg; | |
| int exec_reg; | | int exec_reg; | |
| int gp_tmpreg; | | int gp_tmpreg; | |
|
| | | | |
| | | int need_mask_regs; | |
| }; | | }; | |
| | | | |
| /** | | /** | |
| * OrcOpcodeExecutor: | | * OrcOpcodeExecutor: | |
| * | | * | |
| * The OrcOpcodeExecutor structure has no public members | | * The OrcOpcodeExecutor structure has no public members | |
| */ | | */ | |
| struct _OrcOpcodeExecutor { | | struct _OrcOpcodeExecutor { | |
| /*< private >*/ | | /*< private >*/ | |
| int src_values[ORC_STATIC_OPCODE_N_SRC]; | | int src_values[ORC_STATIC_OPCODE_N_SRC]; | |
| | | | |
| skipping to change at line 431 | | skipping to change at line 440 | |
| void orc_mmx_init (void); | | void orc_mmx_init (void); | |
| void orc_sse_init (void); | | void orc_sse_init (void); | |
| void orc_arm_init (void); | | void orc_arm_init (void); | |
| void orc_powerpc_init (void); | | void orc_powerpc_init (void); | |
| void orc_c_init (void); | | void orc_c_init (void); | |
| | | | |
| OrcCompileResult orc_program_compile (OrcProgram *p); | | OrcCompileResult orc_program_compile (OrcProgram *p); | |
| OrcCompileResult orc_program_compile_for_target (OrcProgram *p, OrcTarget *
target); | | OrcCompileResult orc_program_compile_for_target (OrcProgram *p, OrcTarget *
target); | |
| OrcCompileResult orc_program_compile_full (OrcProgram *p, OrcTarget *target
, | | OrcCompileResult orc_program_compile_full (OrcProgram *p, OrcTarget *target
, | |
| unsigned int flags); | | unsigned int flags); | |
|
| | | void orc_program_set_backup_function (OrcProgram *p, OrcExecutorFunc func); | |
| void orc_program_free (OrcProgram *program); | | void orc_program_free (OrcProgram *program); | |
| | | | |
| int orc_program_find_var_by_name (OrcProgram *program, const char *name); | | int orc_program_find_var_by_name (OrcProgram *program, const char *name); | |
| | | | |
| int orc_program_add_temporary (OrcProgram *program, int size, const char *n
ame); | | int orc_program_add_temporary (OrcProgram *program, int size, const char *n
ame); | |
| int orc_program_dup_temporary (OrcProgram *program, int i, int j); | | int orc_program_dup_temporary (OrcProgram *program, int i, int j); | |
| int orc_program_add_source (OrcProgram *program, int size, const char *name
); | | int orc_program_add_source (OrcProgram *program, int size, const char *name
); | |
| int orc_program_add_destination (OrcProgram *program, int size, const char
*name); | | int orc_program_add_destination (OrcProgram *program, int size, const char
*name); | |
| int orc_program_add_constant (OrcProgram *program, int size, int value, con
st char *name); | | int orc_program_add_constant (OrcProgram *program, int size, int value, con
st char *name); | |
| int orc_program_add_parameter (OrcProgram *program, int size, const char *n
ame); | | int orc_program_add_parameter (OrcProgram *program, int size, const char *n
ame); | |
| int orc_program_add_accumulator (OrcProgram *program, int size, const char
*name); | | int orc_program_add_accumulator (OrcProgram *program, int size, const char
*name); | |
|
| | | void orc_program_set_type_name (OrcProgram *program, int var, const char *t
ype_name); | |
| | | | |
| OrcExecutor * orc_executor_new (OrcProgram *program); | | OrcExecutor * orc_executor_new (OrcProgram *program); | |
| void orc_executor_free (OrcExecutor *ex); | | void orc_executor_free (OrcExecutor *ex); | |
| void orc_executor_set_program (OrcExecutor *ex, OrcProgram *program); | | void orc_executor_set_program (OrcExecutor *ex, OrcProgram *program); | |
| void orc_executor_set_array (OrcExecutor *ex, int var, void *ptr); | | void orc_executor_set_array (OrcExecutor *ex, int var, void *ptr); | |
| void orc_executor_set_array_str (OrcExecutor *ex, const char *name, void *p
tr); | | void orc_executor_set_array_str (OrcExecutor *ex, const char *name, void *p
tr); | |
| void orc_executor_set_param (OrcExecutor *ex, int var, int value); | | void orc_executor_set_param (OrcExecutor *ex, int var, int value); | |
| void orc_executor_set_param_str (OrcExecutor *ex, const char *name, int val
ue); | | void orc_executor_set_param_str (OrcExecutor *ex, const char *name, int val
ue); | |
| int orc_executor_get_accumulator (OrcExecutor *ex, int var); | | int orc_executor_get_accumulator (OrcExecutor *ex, int var); | |
| int orc_executor_get_accumulator_str (OrcExecutor *ex, const char *name); | | int orc_executor_get_accumulator_str (OrcExecutor *ex, const char *name); | |
| | | | |
| skipping to change at line 484 | | skipping to change at line 495 | |
| | | | |
| const char *orc_program_get_asm_code (OrcProgram *program); | | const char *orc_program_get_asm_code (OrcProgram *program); | |
| const char *orc_target_get_asm_preamble (const char *target); | | const char *orc_target_get_asm_preamble (const char *target); | |
| | | | |
| void orc_compiler_append_code (OrcCompiler *p, const char *fmt, ...) | | void orc_compiler_append_code (OrcCompiler *p, const char *fmt, ...) | |
| ORC_GNU_PRINTF(2,3); | | ORC_GNU_PRINTF(2,3); | |
| | | | |
| void orc_target_register (OrcTarget *target); | | void orc_target_register (OrcTarget *target); | |
| OrcTarget *orc_target_get_by_name (const char *target_name); | | OrcTarget *orc_target_get_by_name (const char *target_name); | |
| int orc_program_get_max_var_size (OrcProgram *program); | | int orc_program_get_max_var_size (OrcProgram *program); | |
|
| | | int orc_program_get_max_array_size (OrcProgram *program); | |
| | | | |
| #endif | | #endif | |
| | | | |
End of changes. 9 change blocks. |
| 1 lines changed or deleted | | 13 lines changed or added | |
|
| orcx86.h | | orcx86.h | |
| | | | |
| skipping to change at line 53 | | skipping to change at line 53 | |
| void orc_x86_emit_and_imm_memoffset (OrcCompiler *compiler, int size, int v
alue, int offset, int reg); | | void orc_x86_emit_and_imm_memoffset (OrcCompiler *compiler, int size, int v
alue, int offset, int reg); | |
| void orc_x86_emit_add_imm_reg (OrcCompiler *compiler, int size, int value,
int reg); | | void orc_x86_emit_add_imm_reg (OrcCompiler *compiler, int size, int value,
int reg); | |
| void orc_x86_emit_and_imm_reg (OrcCompiler *compiler, int size, int value,
int reg); | | void orc_x86_emit_and_imm_reg (OrcCompiler *compiler, int size, int value,
int reg); | |
| void orc_x86_emit_sub_reg_reg (OrcCompiler *compiler, int size, int reg1, i
nt reg2); | | void orc_x86_emit_sub_reg_reg (OrcCompiler *compiler, int size, int reg1, i
nt reg2); | |
| void orc_x86_emit_sub_memoffset_reg (OrcCompiler *compiler, int size, | | void orc_x86_emit_sub_memoffset_reg (OrcCompiler *compiler, int size, | |
| int offset, int reg, int destreg); | | int offset, int reg, int destreg); | |
| void orc_x86_emit_cmp_reg_memoffset (OrcCompiler *compiler, int size, int r
eg1, | | void orc_x86_emit_cmp_reg_memoffset (OrcCompiler *compiler, int size, int r
eg1, | |
| int offset, int reg); | | int offset, int reg); | |
| void orc_x86_emit_cmp_imm_memoffset (OrcCompiler *compiler, int size, int v
alue, | | void orc_x86_emit_cmp_imm_memoffset (OrcCompiler *compiler, int size, int v
alue, | |
| int offset, int reg); | | int offset, int reg); | |
|
| | | void orc_x86_emit_test_imm_memoffset (OrcCompiler *compiler, int size, int | |
| | | value, | |
| | | int offset, int reg); | |
| void orc_x86_emit_emms (OrcCompiler *compiler); | | void orc_x86_emit_emms (OrcCompiler *compiler); | |
| void orc_x86_emit_ret (OrcCompiler *compiler); | | void orc_x86_emit_ret (OrcCompiler *compiler); | |
| void orc_x86_emit_jle (OrcCompiler *compiler, int label); | | void orc_x86_emit_jle (OrcCompiler *compiler, int label); | |
| void orc_x86_emit_je (OrcCompiler *compiler, int label); | | void orc_x86_emit_je (OrcCompiler *compiler, int label); | |
| void orc_x86_emit_jne (OrcCompiler *compiler, int label); | | void orc_x86_emit_jne (OrcCompiler *compiler, int label); | |
| void orc_x86_emit_jmp (OrcCompiler *compiler, int label); | | void orc_x86_emit_jmp (OrcCompiler *compiler, int label); | |
| void orc_x86_emit_label (OrcCompiler *compiler, int label); | | void orc_x86_emit_label (OrcCompiler *compiler, int label); | |
| void orc_x86_emit_align (OrcCompiler *compiler); | | void orc_x86_emit_align (OrcCompiler *compiler); | |
| void orc_x86_emit_prologue (OrcCompiler *compiler); | | void orc_x86_emit_prologue (OrcCompiler *compiler); | |
| void orc_x86_emit_epilogue (OrcCompiler *compiler); | | void orc_x86_emit_epilogue (OrcCompiler *compiler); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 3 lines changed or added | |
|