opcodes.h   opcodes.h 
skipping to change at line 85 skipping to change at line 85
BINARY_SL(orl, "%s | %s") BINARY_SL(orl, "%s | %s")
BINARY_SL(shll, "%s << %s") BINARY_SL(shll, "%s << %s")
BINARY_SL(shrsl, "%s >> %s") BINARY_SL(shrsl, "%s >> %s")
BINARY_UL(shrul, "((orc_uint32)%s) >> %s") BINARY_UL(shrul, "((orc_uint32)%s) >> %s")
UNARY_SL(signl, "ORC_CLAMP(%s,-1,1)") UNARY_SL(signl, "ORC_CLAMP(%s,-1,1)")
BINARY_SL(subl, "%s - %s") BINARY_SL(subl, "%s - %s")
BINARY_SL(subssl, "ORC_CLAMP_SL((orc_int64)%s - (orc_int64)%s)") BINARY_SL(subssl, "ORC_CLAMP_SL((orc_int64)%s - (orc_int64)%s)")
BINARY_UL(subusl, "ORC_CLAMP_UL((orc_int64)(orc_uint32)%s - (orc_int64)(orc _uint32)%s)") BINARY_UL(subusl, "ORC_CLAMP_UL((orc_int64)(orc_uint32)%s - (orc_int64)(orc _uint32)%s)")
BINARY_SL(xorl, "%s ^ %s") BINARY_SL(xorl, "%s ^ %s")
UNARY_SQ(copyq, "%s")
UNARY_BW(convsbw, "%s") UNARY_BW(convsbw, "%s")
UNARY_BW(convubw, "(orc_uint8)%s") UNARY_BW(convubw, "(orc_uint8)%s")
UNARY_WB(convwb, "%s") UNARY_WB(convwb, "%s")
UNARY_WB(convhwb, "((orc_uint16)%s)>>8") UNARY_WB(convhwb, "((orc_uint16)%s)>>8")
UNARY_WB(convssswb, "ORC_CLAMP_SB(%s)") UNARY_WB(convssswb, "ORC_CLAMP_SB(%s)")
UNARY_WB(convsuswb, "ORC_CLAMP_UB(%s)") UNARY_WB(convsuswb, "ORC_CLAMP_UB(%s)")
UNARY_WB(convusswb, "ORC_CLAMP_SB((orc_uint16)%s)") UNARY_WB(convusswb, "ORC_CLAMP_SB((orc_uint16)%s)")
UNARY_WB(convuuswb, "ORC_CLAMP_UB((orc_uint16)%s)") UNARY_WB(convuuswb, "ORC_CLAMP_UB((orc_uint16)%s)")
UNARY_WL(convswl, "%s") UNARY_WL(convswl, "%s")
skipping to change at line 124 skipping to change at line 126
BINARY_WL(muluwl, "(orc_uint16)%s * (orc_uint16)%s") BINARY_WL(muluwl, "(orc_uint16)%s * (orc_uint16)%s")
BINARY_WL(mergewl, "((orc_uint16)%s) | ((orc_uint16)%s << 16)") BINARY_WL(mergewl, "((orc_uint16)%s) | ((orc_uint16)%s << 16)")
BINARY_BW(mergebw, "((orc_uint8)%s) | ((orc_uint8)%s << 8)") BINARY_BW(mergebw, "((orc_uint8)%s) | ((orc_uint8)%s << 8)")
UNARY_WB(select0wb, "(orc_uint16)%s & 0xff") UNARY_WB(select0wb, "(orc_uint16)%s & 0xff")
UNARY_WB(select1wb, "((orc_uint16)%s >> 8)&0xff") UNARY_WB(select1wb, "((orc_uint16)%s >> 8)&0xff")
UNARY_LW(select0lw, "(orc_uint32)%s & 0xffff") UNARY_LW(select0lw, "(orc_uint32)%s & 0xffff")
UNARY_LW(select1lw, "((orc_uint32)%s >> 16)&0xffff") UNARY_LW(select1lw, "((orc_uint32)%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)")
UNARY_UQ(swapq, "ORC_SWAP_Q(%s)")
BINARY_F(addf, "ORC_DENORMAL(ORC_DENORMAL(%s) + ORC_DENORMAL(%s))") BINARY_F(addf, "%s + %s")
BINARY_F(subf, "ORC_DENORMAL(ORC_DENORMAL(%s) - ORC_DENORMAL(%s))") BINARY_F(subf, "%s - %s")
BINARY_F(mulf, "ORC_DENORMAL(ORC_DENORMAL(%s) * ORC_DENORMAL(%s))") BINARY_F(mulf, "%s * %s")
BINARY_F(divf, "ORC_DENORMAL(ORC_DENORMAL(%s) / ORC_DENORMAL(%s))") BINARY_F(divf, "%s / %s")
UNARY_F(sqrtf, "sqrt(ORC_DENORMAL(%s))") UNARY_F(sqrtf, "sqrt(%s)")
BINARY_F(maxf, "ORC_MAXF(ORC_DENORMAL(%s),ORC_DENORMAL(%s))") BINARY_FL(cmpeqf, "(%s == %s) ? (~0) : 0")
BINARY_F(minf, "ORC_MINF(ORC_DENORMAL(%s),ORC_DENORMAL(%s))") BINARY_FL(cmpltf, "(%s < %s) ? (~0) : 0")
BINARY_FL(cmpeqf, "(ORC_DENORMAL(%s) == ORC_DENORMAL(%s)) ? (~0) : 0") BINARY_FL(cmplef, "(%s <= %s) ? (~0) : 0")
BINARY_FL(cmpltf, "(ORC_DENORMAL(%s) < ORC_DENORMAL(%s)) ? (~0) : 0")
BINARY_FL(cmplef, "(ORC_DENORMAL(%s) <= ORC_DENORMAL(%s)) ? (~0) : 0") BINARY_D(addd, "%s + %s")
UNARY_FL(convfl, "(int)%s") BINARY_D(subd, "%s - %s")
UNARY_LF(convlf, "%s") BINARY_D(muld, "%s * %s")
BINARY_D(divd, "%s / %s")
UNARY_D(sqrtd, "sqrt(%s)")
BINARY_DQ(cmpeqd, "(%s == %s) ? (~0ULL) : 0")
BINARY_DQ(cmpltd, "(%s < %s) ? (~0ULL) : 0")
BINARY_DQ(cmpled, "(%s <= %s) ? (~0ULL) : 0")
 End of changes. 3 change blocks. 
0 lines changed or deleted 3 lines changed or added


 orc-stdint.h   orc-stdint.h 
#ifndef _ORC_ORC_ORC_STDINT_H #ifndef _ORC_ORC_ORC_STDINT_H
#define _ORC_ORC_ORC_STDINT_H 1 #define _ORC_ORC_ORC_STDINT_H 1
#ifndef _GENERATED_STDINT_H #ifndef _GENERATED_STDINT_H
#define _GENERATED_STDINT_H "orc 0.4.7" #define _GENERATED_STDINT_H "orc 0.4.8"
/* generated using gnu compiler gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revi sion 150839] */ /* generated using gnu compiler gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revi sion 150839] */
#define _STDINT_HAVE_STDINT_H 1 #define _STDINT_HAVE_STDINT_H 1
#include <stdint.h> #include <stdint.h>
#endif #endif
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 orcarm.h   orcarm.h 
skipping to change at line 123 skipping to change at line 123
void orc_arm_emit_xt (OrcCompiler *p, int op, OrcArmCond cond, void orc_arm_emit_xt (OrcCompiler *p, int op, OrcArmCond cond,
int Rd, int Rn, int Rm, int r8); int Rd, int Rn, int Rm, int r8);
void orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond, void orc_arm_emit_pkh (OrcCompiler *p, int op, OrcArmCond cond,
int Rd, int Rn, int Rm, int sh); int Rd, int Rn, int Rm, int sh);
void orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond, void orc_arm_emit_sat (OrcCompiler *p, int op, OrcArmCond cond,
int Rd, int sat, int Rm, int sh, int asr); int Rd, int sat, int Rm, int sh, int asr);
void orc_arm_emit_rv (OrcCompiler *p, int op, OrcArmCond cond, void orc_arm_emit_rv (OrcCompiler *p, int op, OrcArmCond cond,
int Rd, int Rm); int Rd, int Rm);
void orc_arm_emit_nop (OrcCompiler *compiler); void orc_arm_emit_nop (OrcCompiler *compiler);
void orc_arm_flush_cache (OrcCompiler *compiler); void orc_arm_flush_cache (OrcCode *code);
/* ALL cpus */ /* ALL cpus */
/* data procesing instructions */ /* data procesing instructions */
/* <op>{<cond>}{s} {<Rd>}, <Rn>, #imm */ /* <op>{<cond>}{s} {<Rd>}, <Rn>, #imm */
#define orc_arm_emit_and_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_AND,S,Rd,Rn,0,0,imm) #define orc_arm_emit_and_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_AND,S,Rd,Rn,0,0,imm)
#define orc_arm_emit_eor_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_EOR,S,Rd,Rn,0,0,imm) #define orc_arm_emit_eor_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_EOR,S,Rd,Rn,0,0,imm)
#define orc_arm_emit_sub_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_SUB,S,Rd,Rn,0,0,imm) #define orc_arm_emit_sub_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_SUB,S,Rd,Rn,0,0,imm)
#define orc_arm_emit_rsb_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_RSB,S,Rd,Rn,0,0,imm) #define orc_arm_emit_rsb_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_RSB,S,Rd,Rn,0,0,imm)
#define orc_arm_emit_add_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_ADD,S,Rd,Rn,0,0,imm) #define orc_arm_emit_add_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_ADD,S,Rd,Rn,0,0,imm)
#define orc_arm_emit_adc_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_ADC,S,Rd,Rn,0,0,imm) #define orc_arm_emit_adc_i(p,cond,S,Rd,Rn,imm) orc_arm_emit_dp(p,0,c ond,ORC_ARM_DP_ADC,S,Rd,Rn,0,0,imm)
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 orcarray.h   orcarray.h 
skipping to change at line 23 skipping to change at line 23
struct _OrcArray { struct _OrcArray {
void *data; void *data;
int stride; int stride;
int element_size; int element_size;
int n,m; int n,m;
void *alloc_data; void *alloc_data;
int alloc_len; int alloc_len;
}; };
enum {
ORC_PATTERN_RANDOM = 0,
ORC_PATTERN_FLOAT_SMALL,
ORC_PATTERN_FLOAT_SPECIAL,
ORC_PATTERN_FLOAT_DENORMAL
};
OrcArray *orc_array_new (int n, int m, int element_size, int misalignment); OrcArray *orc_array_new (int n, int m, int element_size, int misalignment);
void orc_array_free (OrcArray *array); void orc_array_free (OrcArray *array);
void orc_array_set_pattern (OrcArray *array, int value); void orc_array_set_pattern (OrcArray *array, int value);
void orc_array_set_random (OrcArray *array, OrcRandomContext *context); void orc_array_set_random (OrcArray *array, OrcRandomContext *context);
void orc_array_set_pattern_2 (OrcArray *array, OrcRandomContext *context,
int type);
int orc_array_compare (OrcArray *array1, OrcArray *array2, int flags); int orc_array_compare (OrcArray *array1, OrcArray *array2, int flags);
int orc_array_check_out_of_bounds (OrcArray *array); int orc_array_check_out_of_bounds (OrcArray *array);
#endif #endif
 End of changes. 2 change blocks. 
0 lines changed or deleted 9 lines changed or added


 orcemulateopcodes.h   orcemulateopcodes.h 
skipping to change at line 112 skipping to change at line 112
void emulate_signl (OrcOpcodeExecutor *ex, int i, int n); void emulate_signl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_storel (OrcOpcodeExecutor *ex, int i, int n); void emulate_storel (OrcOpcodeExecutor *ex, int i, int n);
void emulate_subl (OrcOpcodeExecutor *ex, int i, int n); void emulate_subl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_subssl (OrcOpcodeExecutor *ex, int i, int n); void emulate_subssl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_subusl (OrcOpcodeExecutor *ex, int i, int n); void emulate_subusl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_xorl (OrcOpcodeExecutor *ex, int i, int n); void emulate_xorl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_loadq (OrcOpcodeExecutor *ex, int i, int n); void emulate_loadq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_loadpq (OrcOpcodeExecutor *ex, int i, int n); void emulate_loadpq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_storeq (OrcOpcodeExecutor *ex, int i, int n); void emulate_storeq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_splatw3q (OrcOpcodeExecutor *ex, int i, int n); void emulate_splatw3q (OrcOpcodeExecutor *ex, int i, int n);
void emulate_copyq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convsbw (OrcOpcodeExecutor *ex, int i, int n); void emulate_convsbw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convubw (OrcOpcodeExecutor *ex, int i, int n); void emulate_convubw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_splatbw (OrcOpcodeExecutor *ex, int i, int n); void emulate_splatbw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_splatbl (OrcOpcodeExecutor *ex, int i, int n); void emulate_splatbl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convswl (OrcOpcodeExecutor *ex, int i, int n); void emulate_convswl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convuwl (OrcOpcodeExecutor *ex, int i, int n); void emulate_convuwl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convslq (OrcOpcodeExecutor *ex, int i, int n); void emulate_convslq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convulq (OrcOpcodeExecutor *ex, int i, int n); void emulate_convulq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convwb (OrcOpcodeExecutor *ex, int i, int n); void emulate_convwb (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convhwb (OrcOpcodeExecutor *ex, int i, int n); void emulate_convhwb (OrcOpcodeExecutor *ex, int i, int n);
skipping to change at line 146 skipping to change at line 147
void emulate_convuusql (OrcOpcodeExecutor *ex, int i, int n); void emulate_convuusql (OrcOpcodeExecutor *ex, int i, int n);
void emulate_mulsbw (OrcOpcodeExecutor *ex, int i, int n); void emulate_mulsbw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_mulubw (OrcOpcodeExecutor *ex, int i, int n); void emulate_mulubw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_mulswl (OrcOpcodeExecutor *ex, int i, int n); void emulate_mulswl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_muluwl (OrcOpcodeExecutor *ex, int i, int n); void emulate_muluwl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_accw (OrcOpcodeExecutor *ex, int i, int n); void emulate_accw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_accl (OrcOpcodeExecutor *ex, int i, int n); void emulate_accl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_accsadubl (OrcOpcodeExecutor *ex, int i, int n); void emulate_accsadubl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_swapw (OrcOpcodeExecutor *ex, int i, int n); void emulate_swapw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_swapl (OrcOpcodeExecutor *ex, int i, int n); void emulate_swapl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_swapq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_select0wb (OrcOpcodeExecutor *ex, int i, int n); void emulate_select0wb (OrcOpcodeExecutor *ex, int i, int n);
void emulate_select1wb (OrcOpcodeExecutor *ex, int i, int n); void emulate_select1wb (OrcOpcodeExecutor *ex, int i, int n);
void emulate_select0lw (OrcOpcodeExecutor *ex, int i, int n); void emulate_select0lw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_select1lw (OrcOpcodeExecutor *ex, int i, int n); void emulate_select1lw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_mergewl (OrcOpcodeExecutor *ex, int i, int n); void emulate_mergewl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_mergebw (OrcOpcodeExecutor *ex, int i, int n); void emulate_mergebw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_splitql (OrcOpcodeExecutor *ex, int i, int n);
void emulate_splitlw (OrcOpcodeExecutor *ex, int i, int n); void emulate_splitlw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_splitwb (OrcOpcodeExecutor *ex, int i, int n); void emulate_splitwb (OrcOpcodeExecutor *ex, int i, int n);
void emulate_addf (OrcOpcodeExecutor *ex, int i, int n); void emulate_addf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_subf (OrcOpcodeExecutor *ex, int i, int n); void emulate_subf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_mulf (OrcOpcodeExecutor *ex, int i, int n); void emulate_mulf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_divf (OrcOpcodeExecutor *ex, int i, int n); void emulate_divf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_sqrtf (OrcOpcodeExecutor *ex, int i, int n); void emulate_sqrtf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_maxf (OrcOpcodeExecutor *ex, int i, int n); void emulate_maxf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_minf (OrcOpcodeExecutor *ex, int i, int n); void emulate_minf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_cmpeqf (OrcOpcodeExecutor *ex, int i, int n); void emulate_cmpeqf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_cmpltf (OrcOpcodeExecutor *ex, int i, int n); void emulate_cmpltf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_cmplef (OrcOpcodeExecutor *ex, int i, int n); void emulate_cmplef (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convfl (OrcOpcodeExecutor *ex, int i, int n); void emulate_convfl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convlf (OrcOpcodeExecutor *ex, int i, int n); void emulate_convlf (OrcOpcodeExecutor *ex, int i, int n);
void emulate_addd (OrcOpcodeExecutor *ex, int i, int n);
void emulate_subd (OrcOpcodeExecutor *ex, int i, int n);
void emulate_muld (OrcOpcodeExecutor *ex, int i, int n);
void emulate_divd (OrcOpcodeExecutor *ex, int i, int n);
void emulate_sqrtd (OrcOpcodeExecutor *ex, int i, int n);
void emulate_maxd (OrcOpcodeExecutor *ex, int i, int n);
void emulate_mind (OrcOpcodeExecutor *ex, int i, int n);
void emulate_cmpeqd (OrcOpcodeExecutor *ex, int i, int n);
void emulate_cmpltd (OrcOpcodeExecutor *ex, int i, int n);
void emulate_cmpled (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convdl (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convld (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convfd (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convdf (OrcOpcodeExecutor *ex, int i, int n);
#endif #endif
 End of changes. 4 change blocks. 
0 lines changed or deleted 17 lines changed or added


 orcmmx.h   orcmmx.h 
skipping to change at line 181 skipping to change at line 181
#define orc_mmx_emit_pmovsxbw(p,a,b) orc_mmx_emit_660f (p, "pmovsxbw", 0x 3820, a, b) #define orc_mmx_emit_pmovsxbw(p,a,b) orc_mmx_emit_660f (p, "pmovsxbw", 0x 3820, a, b)
#define orc_mmx_emit_pmovsxbd(p,a,b) orc_mmx_emit_660f (p, "pmovsxbd", 0x 3821, a, b) #define orc_mmx_emit_pmovsxbd(p,a,b) orc_mmx_emit_660f (p, "pmovsxbd", 0x 3821, a, b)
#define orc_mmx_emit_pmovsxbq(p,a,b) orc_mmx_emit_660f (p, "pmovsxbq", 0x 3822, a, b) #define orc_mmx_emit_pmovsxbq(p,a,b) orc_mmx_emit_660f (p, "pmovsxbq", 0x 3822, a, b)
#define orc_mmx_emit_pmovsxwd(p,a,b) orc_mmx_emit_660f (p, "pmovsxwd", 0x 3823, a, b) #define orc_mmx_emit_pmovsxwd(p,a,b) orc_mmx_emit_660f (p, "pmovsxwd", 0x 3823, a, b)
#define orc_mmx_emit_pmovsxwq(p,a,b) orc_mmx_emit_660f (p, "pmovsxwq", 0x 3824, a, b) #define orc_mmx_emit_pmovsxwq(p,a,b) orc_mmx_emit_660f (p, "pmovsxwq", 0x 3824, a, b)
#define orc_mmx_emit_pmovsxdq(p,a,b) orc_mmx_emit_660f (p, "pmovsxdq", 0x 3825, a, b) #define orc_mmx_emit_pmovsxdq(p,a,b) orc_mmx_emit_660f (p, "pmovsxdq", 0x 3825, a, b)
#define orc_mmx_emit_pmuldq(p,a,b) orc_mmx_emit_660f (p, "pmuldq", 0x38 28, a, b) #define orc_mmx_emit_pmuldq(p,a,b) orc_mmx_emit_660f (p, "pmuldq", 0x38 28, a, b)
#define orc_mmx_emit_pcmpeqq(p,a,b) orc_mmx_emit_660f (p, "pcmpeqq", 0x3 829, a, b) #define orc_mmx_emit_pcmpeqq(p,a,b) orc_mmx_emit_660f (p, "pcmpeqq", 0x3 829, a, b)
#define orc_mmx_emit_packusdw(p,a,b) orc_mmx_emit_660f (p, "packuswd", 0x 382b, a, b) #define orc_mmx_emit_packusdw(p,a,b) orc_mmx_emit_660f (p, "packusdw", 0x 382b, a, b)
#define orc_mmx_emit_pmovzxbw(p,a,b) orc_mmx_emit_660f (p, "pmovzxbw", 0x 3830, a, b) #define orc_mmx_emit_pmovzxbw(p,a,b) orc_mmx_emit_660f (p, "pmovzxbw", 0x 3830, a, b)
#define orc_mmx_emit_pmovzxbd(p,a,b) orc_mmx_emit_660f (p, "pmovzxbd", 0x 3831, a, b) #define orc_mmx_emit_pmovzxbd(p,a,b) orc_mmx_emit_660f (p, "pmovzxbd", 0x 3831, a, b)
#define orc_mmx_emit_pmovzxbq(p,a,b) orc_mmx_emit_660f (p, "pmovzxbq", 0x 3832, a, b) #define orc_mmx_emit_pmovzxbq(p,a,b) orc_mmx_emit_660f (p, "pmovzxbq", 0x 3832, a, b)
#define orc_mmx_emit_pmovzxwd(p,a,b) orc_mmx_emit_660f (p, "pmovzxwd", 0x 3833, a, b) #define orc_mmx_emit_pmovzxwd(p,a,b) orc_mmx_emit_660f (p, "pmovzxwd", 0x 3833, a, b)
#define orc_mmx_emit_pmovzxwq(p,a,b) orc_mmx_emit_660f (p, "pmovzxwq", 0x 3834, a, b) #define orc_mmx_emit_pmovzxwq(p,a,b) orc_mmx_emit_660f (p, "pmovzxwq", 0x 3834, a, b)
#define orc_mmx_emit_pmovzxdq(p,a,b) orc_mmx_emit_660f (p, "pmovzxdq", 0x 3835, a, b) #define orc_mmx_emit_pmovzxdq(p,a,b) orc_mmx_emit_660f (p, "pmovzxdq", 0x 3835, a, b)
#define orc_mmx_emit_pmulld(p,a,b) orc_mmx_emit_660f (p, "pmuldq", 0x38 40, a, b) #define orc_mmx_emit_pmulld(p,a,b) orc_mmx_emit_660f (p, "pmuldq", 0x38 40, a, b)
#define orc_mmx_emit_phminposuw(p,a,b) orc_mmx_emit_660f (p, "phminposuw", 0x3841, a, b) #define orc_mmx_emit_phminposuw(p,a,b) orc_mmx_emit_660f (p, "phminposuw", 0x3841, a, b)
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 orcpowerpc.h   orcpowerpc.h 
skipping to change at line 93 skipping to change at line 93
void powerpc_emit_stw (OrcCompiler *compiler, int regs, int rega, int offse t); void powerpc_emit_stw (OrcCompiler *compiler, int regs, int rega, int offse t);
void powerpc_emit_stwu (OrcCompiler *compiler, int regs, int rega, int offs et); void powerpc_emit_stwu (OrcCompiler *compiler, int regs, int rega, int offs et);
void powerpc_emit_ret (OrcCompiler *compiler); void powerpc_emit_ret (OrcCompiler *compiler);
void powerpc_emit_b (OrcCompiler *compiler, int label); void powerpc_emit_b (OrcCompiler *compiler, int label);
void powerpc_emit_beq (OrcCompiler *compiler, int label); void powerpc_emit_beq (OrcCompiler *compiler, int label);
void powerpc_emit_bne (OrcCompiler *compiler, int label); void powerpc_emit_bne (OrcCompiler *compiler, int label);
void powerpc_emit_label (OrcCompiler *compiler, int label); void powerpc_emit_label (OrcCompiler *compiler, int label);
void powerpc_add_fixup (OrcCompiler *compiler, int type, unsigned char *ptr , int label); void powerpc_add_fixup (OrcCompiler *compiler, int type, unsigned char *ptr , int label);
void powerpc_do_fixups (OrcCompiler *compiler); void powerpc_do_fixups (OrcCompiler *compiler);
void powerpc_flush (OrcCompiler *compiler); void orc_powerpc_flush_cache (OrcCode *code);
void powerpc_emit_srawi (OrcCompiler *compiler, int regd, int rega, int shi ft, void powerpc_emit_srawi (OrcCompiler *compiler, int regd, int rega, int shi ft,
int record); int record);
void powerpc_emit_655510 (OrcCompiler *compiler, int major, int d, int a, void powerpc_emit_655510 (OrcCompiler *compiler, int major, int d, int a,
int b, int minor); int b, int minor);
void powerpc_emit_D (OrcCompiler *compiler, const char *name,
unsigned int insn, int regd, int rega, int imm);
void powerpc_emit_X (OrcCompiler *compiler, unsigned int insn, int d, int a , void powerpc_emit_X (OrcCompiler *compiler, unsigned int insn, int d, int a ,
int b); int b);
void powerpc_emit_VA (OrcCompiler *compiler, int major, int d, int a, int b void powerpc_emit_VA (OrcCompiler *compiler, const char *name, unsigned int
, insn, int d, int a, int b,
int c, int minor); int c);
void powerpc_emit_VA_2 (OrcCompiler *compiler, const char *name, int major, void powerpc_emit_VA_acb (OrcCompiler *compiler, const char *name, unsigned
int d, int insn, int d, int a, int b,
int a, int b, int c, int minor); int c);
void powerpc_emit_VX (OrcCompiler *compiler, unsigned int insn, int d, int a, void powerpc_emit_VX (OrcCompiler *compiler, unsigned int insn, int d, int a,
int b); int b);
void powerpc_emit_VX_b (OrcCompiler *p, const char *name, unsigned int insn
, int a);
void powerpc_emit_VX_db (OrcCompiler *p, const char *name, unsigned int ins
n, int d, int b);
void powerpc_emit_VX_dbi (OrcCompiler *p, const char *name, unsigned int in
sn, int d, int b, int imm);
void powerpc_emit_VXR (OrcCompiler *compiler, const char *name,
unsigned int insn, int d, int a, int b, int record);
void powerpc_emit_VX_2 (OrcCompiler *p, const char *name, unsigned int insn , void powerpc_emit_VX_2 (OrcCompiler *p, const char *name, unsigned int insn ,
int d, int a, int b); int d, int a, int b);
void powerpc_emit_VX_3 (OrcCompiler *p, const char *name, unsigned int insn , void powerpc_emit_VX_3 (OrcCompiler *p, const char *name, unsigned int insn ,
int d, int a, int b, int c); int d, int a, int b, int c);
void powerpc_emit_VX_3_reg (OrcCompiler *p, const char *name, unsigned int insn, void powerpc_emit_VX_3_reg (OrcCompiler *p, const char *name, unsigned int insn,
int d, int a, int b, int c); int d, int a, int b, int c);
void powerpc_emit_VX_4 (OrcCompiler *p, const char *name, unsigned int insn , void powerpc_emit_VX_4 (OrcCompiler *p, const char *name, unsigned int insn ,
int d, int a); int d, int a);
int powerpc_get_constant (OrcCompiler *p, int type, int value); int powerpc_get_constant (OrcCompiler *p, int type, int value);
int powerpc_get_constant_full (OrcCompiler *p, int value0, int value1, int value2, int value3); int powerpc_get_constant_full (OrcCompiler *p, int value0, int value1, int value2, int value3);
skipping to change at line 157 skipping to change at line 164
#define powerpc_emit_vmaxsb(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsb", 0x10000102, a, b, c) #define powerpc_emit_vmaxsb(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsb", 0x10000102, a, b, c)
#define powerpc_emit_vmaxsh(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsh", 0x10000142, a, b, c) #define powerpc_emit_vmaxsh(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsh", 0x10000142, a, b, c)
#define powerpc_emit_vmaxsw(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsw", 0x10000182, a, b, c) #define powerpc_emit_vmaxsw(p,a,b,c) powerpc_emit_VX_2 (p, "vmaxsw", 0x10000182, a, b, c)
#define powerpc_emit_vminub(p,a,b,c) powerpc_emit_VX_2 (p, "vminub", 0x10000202, a, b, c) #define powerpc_emit_vminub(p,a,b,c) powerpc_emit_VX_2 (p, "vminub", 0x10000202, a, b, c)
#define powerpc_emit_vminsb(p,a,b,c) powerpc_emit_VX_2 (p, "vminsb", 0x10000302, a, b, c) #define powerpc_emit_vminsb(p,a,b,c) powerpc_emit_VX_2 (p, "vminsb", 0x10000302, a, b, c)
#define powerpc_emit_vminsh(p,a,b,c) powerpc_emit_VX_2 (p, "vminsh", 0x10000342, a, b, c) #define powerpc_emit_vminsh(p,a,b,c) powerpc_emit_VX_2 (p, "vminsh", 0x10000342, a, b, c)
#define powerpc_emit_vminsw(p,a,b,c) powerpc_emit_VX_2 (p, "vminsw", 0x10000382, a, b, c) #define powerpc_emit_vminsw(p,a,b,c) powerpc_emit_VX_2 (p, "vminsw", 0x10000382, a, b, c)
#define powerpc_emit_vsldoi(p,a,b,c,d) powerpc_emit_VX_3 (p, "vsldoi", 0x1000002c | (d<<6), a, b, c, d) #define powerpc_emit_vsldoi(p,a,b,c,d) powerpc_emit_VX_3 (p, "vsldoi", 0x1000002c | (d<<6), a, b, c, d)
#define powerpc_emit_vmladduhm(p,a,b,c,d) powerpc_emit_VA_2 (p, "vmladduhm ", 4, a, b, c, d, 34) #define powerpc_emit_vmladduhm(p,a,b,c,d) powerpc_emit_VA (p, "vmladduhm", 0x10000022, a, b, c, d)
#define powerpc_emit_vupkhsb(p,a,b) powerpc_emit_VX_4 (p, "vupkhsb", 0x1000020e, a, b) #define powerpc_emit_vupkhsb(p,a,b) powerpc_emit_VX_4 (p, "vupkhsb", 0x1000020e, a, b)
#define powerpc_emit_vupkhsh(p,a,b) powerpc_emit_VX_4 (p, "vupkhsh", 0x1000024e, a, b) #define powerpc_emit_vupkhsh(p,a,b) powerpc_emit_VX_4 (p, "vupkhsh", 0x1000024e, a, b)
#define powerpc_emit_vperm(p,a,b,c,d) powerpc_emit_VX_3_reg (p, "vperm ", 0x1000002b, a, b, c, d) #define powerpc_emit_vperm(p,a,b,c,d) powerpc_emit_VA (p, "vperm", 0x1 000002b, a, b, c, d)
#endif #endif
 End of changes. 6 change blocks. 
9 lines changed or deleted 19 lines changed or added


 orcprogram.h   orcprogram.h 
skipping to change at line 22 skipping to change at line 22
typedef struct _OrcStaticOpcode OrcStaticOpcode; typedef struct _OrcStaticOpcode OrcStaticOpcode;
typedef struct _OrcInstruction OrcInstruction; typedef struct _OrcInstruction OrcInstruction;
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 struct _OrcCode OrcCode; typedef struct _OrcCode OrcCode;
typedef struct _OrcCodeChunk OrcCodeChunk;
typedef void (*OrcOpcodeEmulateFunc)(OrcOpcodeExecutor *ex, void *user); typedef void (*OrcOpcodeEmulateFunc)(OrcOpcodeExecutor *ex, void *user);
typedef void (*OrcOpcodeEmulateNFunc)(OrcOpcodeExecutor *ex, int index, int n); typedef void (*OrcOpcodeEmulateNFunc)(OrcOpcodeExecutor *ex, int index, int n);
typedef void (*OrcOpcodeEmulate16Func)(OrcOpcodeExecutor *ex); typedef void (*OrcOpcodeEmulate16Func)(OrcOpcodeExecutor *ex);
typedef void (*OrcRuleEmitFunc)(OrcCompiler *p, void *user, OrcInstruction *insn); typedef void (*OrcRuleEmitFunc)(OrcCompiler *p, void *user, OrcInstruction *insn);
typedef void (*OrcExecutorFunc)(OrcExecutor *ex); 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
skipping to change at line 159 skipping to change at line 160
ORC_VAR_T5, ORC_VAR_T5,
ORC_VAR_T6, ORC_VAR_T6,
ORC_VAR_T7, ORC_VAR_T7,
ORC_VAR_T8, ORC_VAR_T8,
ORC_VAR_T9, ORC_VAR_T9,
ORC_VAR_T10, ORC_VAR_T10,
ORC_VAR_T11, ORC_VAR_T11,
ORC_VAR_T12, ORC_VAR_T12,
ORC_VAR_T13, ORC_VAR_T13,
ORC_VAR_T14, ORC_VAR_T14,
ORC_VAR_T15 ORC_VAR_T15,
ORC_VAR_T16
}; };
enum { enum {
ORC_CONST_ZERO, ORC_CONST_ZERO,
ORC_CONST_SPLAT_B, ORC_CONST_SPLAT_B,
ORC_CONST_SPLAT_W, ORC_CONST_SPLAT_W,
ORC_CONST_SPLAT_L, ORC_CONST_SPLAT_L,
ORC_CONST_FULL ORC_CONST_FULL
}; };
enum { enum {
ORC_SAMPLE_REGULAR = 0, ORC_SAMPLE_REGULAR = 0,
ORC_SAMPLE_TRANSPOSED, ORC_SAMPLE_TRANSPOSED,
ORC_SAMPLE_NEAREST, ORC_SAMPLE_NEAREST,
ORC_SAMPLE_BILINEAR, ORC_SAMPLE_BILINEAR,
ORC_SAMPLE_FOUR_TAP ORC_SAMPLE_FOUR_TAP
}; };
enum {
ORC_PARAM_TYPE_INT = 0,
ORC_PARAM_TYPE_FLOAT,
ORC_PARAM_TYPE_INT64,
ORC_PARAM_TYPE_DOUBLE
};
typedef enum { typedef enum {
ORC_COMPILE_RESULT_OK = 0, ORC_COMPILE_RESULT_OK = 0,
ORC_COMPILE_RESULT_UNKNOWN_COMPILE = 0x100, ORC_COMPILE_RESULT_UNKNOWN_COMPILE = 0x100,
ORC_COMPILE_RESULT_MISSING_RULE = 0x101, ORC_COMPILE_RESULT_MISSING_RULE = 0x101,
ORC_COMPILE_RESULT_UNKNOWN_PARSE = 0x200, ORC_COMPILE_RESULT_UNKNOWN_PARSE = 0x200,
ORC_COMPILE_RESULT_PARSE = 0x201, ORC_COMPILE_RESULT_PARSE = 0x201,
ORC_COMPILE_RESULT_VARIABLE = 0x202 ORC_COMPILE_RESULT_VARIABLE = 0x202
skipping to change at line 217 skipping to change at line 226
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; orc_union64 value;
int ptr_register; int ptr_register;
int ptr_offset; int ptr_offset;
int mask_alloc; int mask_alloc;
int aligned_data; int aligned_data;
int is_float_param; int param_type;
int load_dest; int load_dest;
}; };
/** /**
* OrcRule: * OrcRule:
* *
* The OrcRule structure has no public members * The OrcRule structure has no public members
*/ */
struct _OrcRule { struct _OrcRule {
/*< private >*/ /*< private >*/
skipping to change at line 347 skipping to change at line 356
/*< private >*/ /*< private >*/
struct { struct {
OrcStaticOpcode *opcode; OrcStaticOpcode *opcode;
int dest_args[ORC_STATIC_OPCODE_N_DEST]; int dest_args[ORC_STATIC_OPCODE_N_DEST];
int src_args[ORC_STATIC_OPCODE_N_SRC]; int src_args[ORC_STATIC_OPCODE_N_SRC];
OrcRule *rule; OrcRule *rule;
} _unused[ORC_N_INSNS]; /* needed for ABI compatibility */ } _unused[ORC_N_INSNS]; /* needed for ABI compatibility */
int n_insns; int n_insns;
OrcVariable vars[ORC_N_VARIABLES]; struct {
char *name;
char *type_name;
int size;
OrcVarType vartype;
int used;
int first_use;
int last_use;
int replaced;
int replacement;
int alloc;
int is_chained;
int is_aligned;
int is_uncached;
int value;
int ptr_register;
int ptr_offset;
int mask_alloc;
int aligned_data;
int param_type;
int load_dest;
} _unused3[ORC_N_VARIABLES]; /* needed for ABI compatibility */
int n_src_vars; int n_src_vars;
int n_dest_vars; int n_dest_vars;
int n_param_vars; int n_param_vars;
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 *_unused2;
/* The offset of code_exec in this structure is part of the ABI */
void *code_exec; void *code_exec;
int code_size;
OrcInstruction insns[ORC_N_INSNS]; OrcInstruction insns[ORC_N_INSNS];
OrcVariable vars[ORC_N_VARIABLES];
void *backup_func; void *backup_func;
int is_2d; int is_2d;
int constant_n; int constant_n;
int constant_m; int constant_m;
OrcCode *orccode; OrcCode *orccode;
/* Hide this here. Belongs in a Parser object */ /* Hide this here. Belongs in a Parser object */
char *init_function; char *init_function;
skipping to change at line 394 skipping to change at line 431
unsigned int target_flags; unsigned int target_flags;
OrcInstruction insns[ORC_N_INSNS]; OrcInstruction insns[ORC_N_INSNS];
int n_insns; int n_insns;
OrcVariable vars[ORC_N_COMPILER_VARIABLES]; OrcVariable vars[ORC_N_COMPILER_VARIABLES];
int n_temp_vars; int n_temp_vars;
int n_dup_vars; int n_dup_vars;
unsigned char *code;
unsigned char *codeptr; unsigned char *codeptr;
OrcConstant constants[ORC_N_CONSTANTS]; OrcConstant constants[ORC_N_CONSTANTS];
int n_constants; int n_constants;
OrcFixup fixups[ORC_N_FIXUPS]; OrcFixup fixups[ORC_N_FIXUPS];
int n_fixups; int n_fixups;
unsigned char *labels[ORC_N_LABELS]; unsigned char *labels[ORC_N_LABELS];
int n_labels; int n_labels;
skipping to change at line 446 skipping to change at line 484
int min_temp_reg; int min_temp_reg;
int max_used_temp_reg; int max_used_temp_reg;
int insn_shift; /* used when emitting rules */ int insn_shift; /* used when emitting rules */
}; };
#define ORC_SRC_ARG(p,i,n) ((p)->vars[(i)->src_args[(n)]].alloc) #define ORC_SRC_ARG(p,i,n) ((p)->vars[(i)->src_args[(n)]].alloc)
#define ORC_DEST_ARG(p,i,n) ((p)->vars[(i)->dest_args[(n)]].alloc) #define ORC_DEST_ARG(p,i,n) ((p)->vars[(i)->dest_args[(n)]].alloc)
#define ORC_SRC_TYPE(p,i,n) ((p)->vars[(i)->src_args[(n)]].vartype) #define ORC_SRC_TYPE(p,i,n) ((p)->vars[(i)->src_args[(n)]].vartype)
#define ORC_DEST_TYPE(p,i,n) ((p)->vars[(i)->dest_args[(n)]].vartype) #define ORC_DEST_TYPE(p,i,n) ((p)->vars[(i)->dest_args[(n)]].vartype)
#define ORC_SRC_VAL(p,i,n) ((p)->vars[(i)->src_args[(n)]].value) #define ORC_SRC_VAL(p,insn,n) ((p)->vars[(insn)->src_args[(n)]].value.i)
#define ORC_DEST_VAL(p,i,n) ((p)->vars[(i)->dest_args[(n)]].value) #define ORC_DEST_VAL(p,insn,n) ((p)->vars[(insn)->dest_args[(n)]].value.i)
/** /**
* 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];
int dest_values[ORC_STATIC_OPCODE_N_DEST]; int dest_values[ORC_STATIC_OPCODE_N_DEST];
skipping to change at line 487 skipping to change at line 525
void *arrays[ORC_N_VARIABLES]; void *arrays[ORC_N_VARIABLES];
int params[ORC_N_VARIABLES]; int params[ORC_N_VARIABLES];
int accumulators[4]; int accumulators[4];
/* exec pointer is stored in arrays[ORC_VAR_A1] */ /* exec pointer is stored in arrays[ORC_VAR_A1] */
/* row pointers are stored in arrays[i+ORC_VAR_C1] */ /* row pointers are stored in arrays[i+ORC_VAR_C1] */
/* the stride for arrays[x] is stored in params[x] */ /* the stride for arrays[x] is stored in params[x] */
/* m is stored in params[ORC_VAR_A1] */ /* m is stored in params[ORC_VAR_A1] */
/* m_index is stored in params[ORC_VAR_A2] */ /* m_index is stored in params[ORC_VAR_A2] */
/* elapsed time is stored in params[ORC_VAR_A3] */ /* elapsed time is stored in params[ORC_VAR_A3] */
/* source resampling parameters are in params[ORC_VAR_C1..C8] */ /* high half of params is stored in params[ORC_VAR_T1..] */
}; };
/* the alternate view of OrcExecutor */ /* the alternate view of OrcExecutor */
struct _OrcExecutorAlt { struct _OrcExecutorAlt {
/*< private >*/ /*< private >*/
OrcProgram *program; OrcProgram *program;
int n; int n;
int counter1; int counter1;
int counter2; int counter2;
int counter3; int counter3;
void *arrays[ORC_N_ARRAYS]; void *arrays[ORC_N_ARRAYS];
OrcExecutorFunc exec; OrcExecutorFunc exec;
void *unused1[ORC_N_VARIABLES - ORC_N_ARRAYS - 1]; void *unused1[ORC_N_VARIABLES - ORC_N_ARRAYS - 1];
int strides[ORC_N_ARRAYS]; int strides[ORC_N_ARRAYS];
int m; int m;
int m_index; int m_index;
int time; int time;
int unused2; int unused2;
int src_resample[8]; int unused4[8];
int params[ORC_VAR_T1-ORC_VAR_P1]; int params[ORC_VAR_T1-ORC_VAR_P1];
int unused3[ORC_N_VARIABLES - ORC_VAR_T1]; int params_hi[ORC_VAR_T1-ORC_VAR_P1];
int unused3[ORC_N_VARIABLES - ORC_VAR_T9];
int accumulators[4]; int accumulators[4];
}; };
#define ORC_EXECUTOR_EXEC(ex) ((OrcExecutorFunc)((ex)->arrays[ORC_VAR_A1])) #define ORC_EXECUTOR_EXEC(ex) ((OrcExecutorFunc)((ex)->arrays[ORC_VAR_A1]))
#define ORC_EXECUTOR_M(ex) ((ex)->params[ORC_VAR_A1]) #define ORC_EXECUTOR_M(ex) ((ex)->params[ORC_VAR_A1])
#define ORC_EXECUTOR_M_INDEX(ex) ((ex)->params[ORC_VAR_A2]) #define ORC_EXECUTOR_M_INDEX(ex) ((ex)->params[ORC_VAR_A2])
#define ORC_EXECUTOR_TIME(ex) ((ex)->params[ORC_VAR_A3]) #define ORC_EXECUTOR_TIME(ex) ((ex)->params[ORC_VAR_A3])
typedef struct _OrcCodeVariable OrcCodeVariable;
struct _OrcCodeVariable {
/*< private >*/
int vartype;
int size;
orc_union64 value;
};
struct _OrcCode { struct _OrcCode {
/*< private >*/ /*< private >*/
OrcCompileResult result; OrcCompileResult result;
char *name; char *name;
/* for execution */ /* for execution */
OrcExecutorFunc exec; OrcExecutorFunc exec;
unsigned char *code; unsigned char *code;
int code_size; int code_size;
void *chunk;
/* for emulation */ /* for emulation */
int n_insns; int n_insns;
OrcInstruction *insns; OrcInstruction *insns;
OrcVariable *vars; OrcCodeVariable *vars;
int is_2d; int is_2d;
int constant_n; int constant_n;
int constant_m; int constant_m;
}; };
/** /**
* OrcTarget: * OrcTarget:
* *
*/ */
struct _OrcTarget { struct _OrcTarget {
skipping to change at line 555 skipping to change at line 603
unsigned int (*get_default_flags)(void); unsigned int (*get_default_flags)(void);
void (*compiler_init)(OrcCompiler *compiler); void (*compiler_init)(OrcCompiler *compiler);
void (*compile)(OrcCompiler *compiler); void (*compile)(OrcCompiler *compiler);
OrcRuleSet rule_sets[ORC_N_RULE_SETS]; OrcRuleSet rule_sets[ORC_N_RULE_SETS];
int n_rule_sets; int n_rule_sets;
const char * (*get_asm_preamble)(void); const char * (*get_asm_preamble)(void);
void (*load_constant)(OrcCompiler *compiler, int reg, int size, int value ); void (*load_constant)(OrcCompiler *compiler, int reg, int size, int value );
const char * (*get_flag_name)(int shift); const char * (*get_flag_name)(int shift);
void (*flush_cache) (OrcCode *code);
void *_unused[7]; void *_unused[6];
}; };
void orc_init (void); void orc_init (void);
OrcProgram * orc_program_new (void); OrcProgram * orc_program_new (void);
OrcProgram * orc_program_new_ds (int size1, int size2); OrcProgram * orc_program_new_ds (int size1, int size2);
OrcProgram * orc_program_new_dss (int size1, int size2, int size3); OrcProgram * orc_program_new_dss (int size1, int size2, int size3);
OrcProgram * orc_program_new_as (int size1, int size2); OrcProgram * orc_program_new_as (int size1, int size2);
OrcProgram * orc_program_new_ass (int size1, int size2, int size3); OrcProgram * orc_program_new_ass (int size1, int size2, int size3);
OrcStaticOpcode * orc_opcode_find_by_name (const char *name); OrcStaticOpcode * orc_opcode_find_by_name (const char *name);
skipping to change at line 613 skipping to change at line 662
void orc_program_set_backup_function (OrcProgram *p, OrcExecutorFunc func); 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_constant_int64 (OrcProgram *program, int size, orc_int6
4 value, const char *name);
int orc_program_add_constant_float (OrcProgram *program, int size, float va
lue, const char *name);
int orc_program_add_constant_double (OrcProgram *program, int size, double
value, const char *name);
int orc_program_add_constant_str (OrcProgram *program, int size, const char
*value, const 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_parameter_float (OrcProgram *program, int size, const c har *name); int orc_program_add_parameter_float (OrcProgram *program, int size, const c har *name);
int orc_program_add_parameter_double (OrcProgram *program, int size, const
char *name);
int orc_program_add_parameter_int64 (OrcProgram *program, int size, const c
har *name);
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); void orc_program_set_type_name (OrcProgram *program, int var, const char *t ype_name);
void orc_program_set_sampling_type (OrcProgram *program, int var, int sampl ing_type); void orc_program_set_sampling_type (OrcProgram *program, int var, int sampl ing_type);
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_stride (OrcExecutor *ex, int var, int stride); void orc_executor_set_stride (OrcExecutor *ex, int var, int stride);
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);
void orc_executor_set_param_float (OrcExecutor *ex, int var, float value);
void orc_executor_set_param_int64 (OrcExecutor *ex, int var, orc_int64 valu
e);
void orc_executor_set_param_double (OrcExecutor *ex, int var, double value)
;
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);
void orc_executor_set_n (OrcExecutor *ex, int n); void orc_executor_set_n (OrcExecutor *ex, int n);
void orc_executor_set_m (OrcExecutor *ex, int m); void orc_executor_set_m (OrcExecutor *ex, int m);
void orc_executor_emulate (OrcExecutor *ex); void orc_executor_emulate (OrcExecutor *ex);
void orc_executor_run (OrcExecutor *ex); void orc_executor_run (OrcExecutor *ex);
void orc_executor_run_backup (OrcExecutor *ex); void orc_executor_run_backup (OrcExecutor *ex);
OrcOpcodeSet *orc_opcode_set_get (const char *name); OrcOpcodeSet *orc_opcode_set_get (const char *name);
OrcOpcodeSet *orc_opcode_set_get_nth (int opcode_major); OrcOpcodeSet *orc_opcode_set_get_nth (int opcode_major);
skipping to change at line 653 skipping to change at line 711
OrcRuleEmitFunc emit, void *emit_user); OrcRuleEmitFunc emit, void *emit_user);
OrcRule * orc_target_get_rule (OrcTarget *target, OrcStaticOpcode *opcode, OrcRule * orc_target_get_rule (OrcTarget *target, OrcStaticOpcode *opcode,
unsigned int target_flags); unsigned int target_flags);
OrcTarget * orc_target_get_default (void); OrcTarget * orc_target_get_default (void);
unsigned int orc_target_get_default_flags (OrcTarget *target); unsigned int orc_target_get_default_flags (OrcTarget *target);
const char * orc_target_get_name (OrcTarget *target); const char * orc_target_get_name (OrcTarget *target);
const char * orc_target_get_flag_name (OrcTarget *target, int shift); const char * orc_target_get_flag_name (OrcTarget *target, int shift);
int orc_program_allocate_register (OrcProgram *program, int is_data); int orc_program_allocate_register (OrcProgram *program, int is_data);
void orc_compiler_allocate_codemem (OrcCompiler *compiler); void orc_code_allocate_codemem (OrcCode *code, int size);
int orc_compiler_label_new (OrcCompiler *compiler); int orc_compiler_label_new (OrcCompiler *compiler);
int orc_compiler_get_constant (OrcCompiler *compiler, int size, int value); int orc_compiler_get_constant (OrcCompiler *compiler, int size, int value);
int orc_compiler_get_temp_constant (OrcCompiler *compiler, int size, int va lue); int orc_compiler_get_temp_constant (OrcCompiler *compiler, int size, int va lue);
int orc_compiler_get_temp_reg (OrcCompiler *compiler); int orc_compiler_get_temp_reg (OrcCompiler *compiler);
int orc_compiler_get_constant_reg (OrcCompiler *compiler); int orc_compiler_get_constant_reg (OrcCompiler *compiler);
void orc_program_reset (OrcProgram *program);
OrcCode *orc_program_take_code (OrcProgram *program);
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);
const char * orc_target_get_preamble (OrcTarget *target); const char * orc_target_get_preamble (OrcTarget *target);
const char * orc_target_c_get_typedefs (void); const char * orc_target_c_get_typedefs (void);
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);
skipping to change at line 690 skipping to change at line 751
int orc_compiler_flag_check (const char *flag); int orc_compiler_flag_check (const char *flag);
extern int _orc_data_cache_size_level1; extern int _orc_data_cache_size_level1;
extern int _orc_data_cache_size_level2; extern int _orc_data_cache_size_level2;
extern int _orc_data_cache_size_level3; extern int _orc_data_cache_size_level3;
extern int _orc_compiler_flag_backup; extern int _orc_compiler_flag_backup;
extern int _orc_compiler_flag_debug; extern int _orc_compiler_flag_debug;
void orc_code_chunk_free (OrcCodeChunk *chunk);
#endif #endif
#endif #endif
 End of changes. 25 change blocks. 
14 lines changed or deleted 85 lines changed or added


 orcsse.h   orcsse.h 
skipping to change at line 188 skipping to change at line 188
#define orc_sse_emit_pmovsxbw(p,a,b) orc_sse_emit_660f (p, "pmovsxbw", 0x 3820, a, b) #define orc_sse_emit_pmovsxbw(p,a,b) orc_sse_emit_660f (p, "pmovsxbw", 0x 3820, a, b)
#define orc_sse_emit_pmovsxbd(p,a,b) orc_sse_emit_660f (p, "pmovsxbd", 0x 3821, a, b) #define orc_sse_emit_pmovsxbd(p,a,b) orc_sse_emit_660f (p, "pmovsxbd", 0x 3821, a, b)
#define orc_sse_emit_pmovsxbq(p,a,b) orc_sse_emit_660f (p, "pmovsxbq", 0x 3822, a, b) #define orc_sse_emit_pmovsxbq(p,a,b) orc_sse_emit_660f (p, "pmovsxbq", 0x 3822, a, b)
#define orc_sse_emit_pmovsxwd(p,a,b) orc_sse_emit_660f (p, "pmovsxwd", 0x 3823, a, b) #define orc_sse_emit_pmovsxwd(p,a,b) orc_sse_emit_660f (p, "pmovsxwd", 0x 3823, a, b)
#define orc_sse_emit_pmovsxwq(p,a,b) orc_sse_emit_660f (p, "pmovsxwq", 0x 3824, a, b) #define orc_sse_emit_pmovsxwq(p,a,b) orc_sse_emit_660f (p, "pmovsxwq", 0x 3824, a, b)
#define orc_sse_emit_pmovsxdq(p,a,b) orc_sse_emit_660f (p, "pmovsxdq", 0x 3825, a, b) #define orc_sse_emit_pmovsxdq(p,a,b) orc_sse_emit_660f (p, "pmovsxdq", 0x 3825, a, b)
#define orc_sse_emit_pmuldq(p,a,b) orc_sse_emit_660f (p, "pmuldq", 0x38 28, a, b) #define orc_sse_emit_pmuldq(p,a,b) orc_sse_emit_660f (p, "pmuldq", 0x38 28, a, b)
#define orc_sse_emit_pcmpeqq(p,a,b) orc_sse_emit_660f (p, "pcmpeqq", 0x3 829, a, b) #define orc_sse_emit_pcmpeqq(p,a,b) orc_sse_emit_660f (p, "pcmpeqq", 0x3 829, a, b)
#define orc_sse_emit_packusdw(p,a,b) orc_sse_emit_660f (p, "packuswd", 0x 382b, a, b) #define orc_sse_emit_packusdw(p,a,b) orc_sse_emit_660f (p, "packusdw", 0x 382b, a, b)
#define orc_sse_emit_pmovzxbw(p,a,b) orc_sse_emit_660f (p, "pmovzxbw", 0x 3830, a, b) #define orc_sse_emit_pmovzxbw(p,a,b) orc_sse_emit_660f (p, "pmovzxbw", 0x 3830, a, b)
#define orc_sse_emit_pmovzxbd(p,a,b) orc_sse_emit_660f (p, "pmovzxbd", 0x 3831, a, b) #define orc_sse_emit_pmovzxbd(p,a,b) orc_sse_emit_660f (p, "pmovzxbd", 0x 3831, a, b)
#define orc_sse_emit_pmovzxbq(p,a,b) orc_sse_emit_660f (p, "pmovzxbq", 0x 3832, a, b) #define orc_sse_emit_pmovzxbq(p,a,b) orc_sse_emit_660f (p, "pmovzxbq", 0x 3832, a, b)
#define orc_sse_emit_pmovzxwd(p,a,b) orc_sse_emit_660f (p, "pmovzxwd", 0x 3833, a, b) #define orc_sse_emit_pmovzxwd(p,a,b) orc_sse_emit_660f (p, "pmovzxwd", 0x 3833, a, b)
#define orc_sse_emit_pmovzxwq(p,a,b) orc_sse_emit_660f (p, "pmovzxwq", 0x 3834, a, b) #define orc_sse_emit_pmovzxwq(p,a,b) orc_sse_emit_660f (p, "pmovzxwq", 0x 3834, a, b)
#define orc_sse_emit_pmovzxdq(p,a,b) orc_sse_emit_660f (p, "pmovzxdq", 0x 3835, a, b) #define orc_sse_emit_pmovzxdq(p,a,b) orc_sse_emit_660f (p, "pmovzxdq", 0x 3835, a, b)
#define orc_sse_emit_pmulld(p,a,b) orc_sse_emit_660f (p, "pmulld", 0x38 40, a, b) #define orc_sse_emit_pmulld(p,a,b) orc_sse_emit_660f (p, "pmulld", 0x38 40, a, b)
#define orc_sse_emit_phminposuw(p,a,b) orc_sse_emit_660f (p, "phminposuw", 0x3841, a, b) #define orc_sse_emit_phminposuw(p,a,b) orc_sse_emit_660f (p, "phminposuw", 0x3841, a, b)
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 orctest.h   orctest.h 
skipping to change at line 18 skipping to change at line 18
ORC_BEGIN_DECLS ORC_BEGIN_DECLS
typedef enum { typedef enum {
ORC_TEST_FAILED = 0, ORC_TEST_FAILED = 0,
ORC_TEST_INDETERMINATE = 1, ORC_TEST_INDETERMINATE = 1,
ORC_TEST_OK = 2 ORC_TEST_OK = 2
} OrcTestResult; } OrcTestResult;
#define ORC_TEST_FLAGS_BACKUP (1<<0) #define ORC_TEST_FLAGS_BACKUP (1<<0)
#define ORC_TEST_FLAGS_FLOAT (1<<1) #define ORC_TEST_FLAGS_FLOAT (1<<1)
#define ORC_TEST_FLAGS_EMULATE (1<<2)
void orc_test_init (void); void orc_test_init (void);
OrcTestResult orc_test_gcc_compile (OrcProgram *p); OrcTestResult orc_test_gcc_compile (OrcProgram *p);
OrcTestResult orc_test_gcc_compile_neon (OrcProgram *p); OrcTestResult orc_test_gcc_compile_neon (OrcProgram *p);
OrcTestResult orc_test_gcc_compile_c64x (OrcProgram *p); OrcTestResult orc_test_gcc_compile_c64x (OrcProgram *p);
void orc_test_random_bits (void *data, int n_bytes); void orc_test_random_bits (void *data, int n_bytes);
OrcTestResult orc_test_compare_output (OrcProgram *program); OrcTestResult orc_test_compare_output (OrcProgram *program);
OrcTestResult orc_test_compare_output_full (OrcProgram *program, int flags) ; OrcTestResult orc_test_compare_output_full (OrcProgram *program, int flags) ;
OrcTestResult orc_test_compare_output_backup (OrcProgram *program); OrcTestResult orc_test_compare_output_backup (OrcProgram *program);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/