"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "sljit/sljitLir.c" between
pcre-8.43.tar.bz2 and pcre-8.44.tar.bz2

About: The PCRE library implements Perl compatible regular expression pattern matching.

sljitLir.c  (pcre-8.43.tar.bz2):sljitLir.c  (pcre-8.44.tar.bz2)
skipping to change at line 147 skipping to change at line 147
#define JUMP_LABEL 0x1 #define JUMP_LABEL 0x1
#define JUMP_ADDR 0x2 #define JUMP_ADDR 0x2
/* SLJIT_REWRITABLE_JUMP is 0x1000. */ /* SLJIT_REWRITABLE_JUMP is 0x1000. */
#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) #if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
# define PATCH_MB 0x4 # define PATCH_MB 0x4
# define PATCH_MW 0x8 # define PATCH_MW 0x8
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
# define PATCH_MD 0x10 # define PATCH_MD 0x10
#endif #endif
# define TYPE_SHIFT 13
#endif #endif
#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) || (defined SLJIT_CONFI G_ARM_V7 && SLJIT_CONFIG_ARM_V7) #if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) || (defined SLJIT_CONFI G_ARM_V7 && SLJIT_CONFIG_ARM_V7)
# define IS_BL 0x4 # define IS_BL 0x4
# define PATCH_B 0x8 # define PATCH_B 0x8
#endif #endif
#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5) #if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5)
# define CPOOL_SIZE 512 # define CPOOL_SIZE 512
#endif #endif
skipping to change at line 204 skipping to change at line 205
#endif #endif
# define REMOVE_COND 0x100 # define REMOVE_COND 0x100
#endif #endif
#if (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) #if (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS)
# define IS_MOVABLE 0x004 # define IS_MOVABLE 0x004
# define IS_JAL 0x008 # define IS_JAL 0x008
# define IS_CALL 0x010 # define IS_CALL 0x010
# define IS_BIT26_COND 0x020 # define IS_BIT26_COND 0x020
# define IS_BIT16_COND 0x040 # define IS_BIT16_COND 0x040
# define IS_BIT23_COND 0x080
# define IS_COND (IS_BIT26_COND | IS_BIT16_COND) # define IS_COND (IS_BIT26_COND | IS_BIT16_COND | IS_BIT23_COND)
# define PATCH_B 0x080 # define PATCH_B 0x100
# define PATCH_J 0x100 # define PATCH_J 0x200
#if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64) #if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64)
# define PATCH_ABS32 0x200 # define PATCH_ABS32 0x400
# define PATCH_ABS48 0x400 # define PATCH_ABS48 0x800
#endif #endif
/* instruction types */ /* instruction types */
# define MOVABLE_INS 0 # define MOVABLE_INS 0
/* 1 - 31 last destination register */ /* 1 - 31 last destination register */
/* no destination (i.e: store) */ /* no destination (i.e: store) */
# define UNMOVABLE_INS 32 # define UNMOVABLE_INS 32
/* FPU status register */ /* FPU status register */
# define FCSR_FCC 33 # define FCSR_FCC 33
#endif #endif
skipping to change at line 523 skipping to change at line 525
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_target(struct sljit_jump *jump, sljit_uw target) SLJIT_API_FUNC_ATTRIBUTE void sljit_set_target(struct sljit_jump *jump, sljit_uw target)
{ {
if (SLJIT_LIKELY(!!jump)) { if (SLJIT_LIKELY(!!jump)) {
jump->flags &= ~JUMP_LABEL; jump->flags &= ~JUMP_LABEL;
jump->flags |= JUMP_ADDR; jump->flags |= JUMP_ADDR;
jump->u.target = target; jump->u.target = target;
} }
} }
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_put_label(struct sljit_put_label *put_la
bel, struct sljit_label *label)
{
if (SLJIT_LIKELY(!!put_label))
put_label->label = label;
}
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_current_flags(struct sljit_compiler *com piler, sljit_s32 current_flags) SLJIT_API_FUNC_ATTRIBUTE void sljit_set_current_flags(struct sljit_compiler *com piler, sljit_s32 current_flags)
{ {
SLJIT_UNUSED_ARG(compiler); SLJIT_UNUSED_ARG(compiler);
SLJIT_UNUSED_ARG(current_flags); SLJIT_UNUSED_ARG(current_flags);
#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
if ((current_flags & ~(VARIABLE_FLAG_MASK | SLJIT_I32_OP | SLJIT_SET_Z)) == 0) { if ((current_flags & ~(VARIABLE_FLAG_MASK | SLJIT_I32_OP | SLJIT_SET_Z)) == 0) {
compiler->last_flags = GET_FLAG_TYPE(current_flags) | (current_fl ags & (SLJIT_I32_OP | SLJIT_SET_Z)); compiler->last_flags = GET_FLAG_TYPE(current_flags) | (current_fl ags & (SLJIT_I32_OP | SLJIT_SET_Z));
} }
#endif #endif
skipping to change at line 622 skipping to change at line 630
arg_types >>= SLJIT_DEF_SHIFT; arg_types >>= SLJIT_DEF_SHIFT;
while (arg_types) { while (arg_types) {
arg_count++; arg_count++;
arg_types >>= SLJIT_DEF_SHIFT; arg_types >>= SLJIT_DEF_SHIFT;
} }
return arg_count; return arg_count;
} }
#if !(defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86)
static SLJIT_INLINE sljit_uw compute_next_addr(struct sljit_label *label, struct
sljit_jump *jump,
struct sljit_const *const_, struct sljit_put_label *put_label)
{
sljit_uw result = ~(sljit_uw)0;
if (label)
result = label->size;
if (jump && jump->addr < result)
result = jump->addr;
if (const_ && const_->addr < result)
result = const_->addr;
if (put_label && put_label->addr < result)
result = put_label->addr;
return result;
}
#endif /* !SLJIT_CONFIG_X86 */
static SLJIT_INLINE void set_emit_enter(struct sljit_compiler *compiler, static SLJIT_INLINE void set_emit_enter(struct sljit_compiler *compiler,
sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds, sljit_s32 options, sljit_s32 args, sljit_s32 scratches, sljit_s32 saveds,
sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size) sljit_s32 fscratches, sljit_s32 fsaveds, sljit_s32 local_size)
{ {
SLJIT_UNUSED_ARG(args); SLJIT_UNUSED_ARG(args);
SLJIT_UNUSED_ARG(local_size); SLJIT_UNUSED_ARG(local_size);
compiler->options = options; compiler->options = options;
compiler->scratches = scratches; compiler->scratches = scratches;
compiler->saveds = saveds; compiler->saveds = saveds;
skipping to change at line 689 skipping to change at line 721
{ {
const_->next = NULL; const_->next = NULL;
const_->addr = compiler->size; const_->addr = compiler->size;
if (compiler->last_const) if (compiler->last_const)
compiler->last_const->next = const_; compiler->last_const->next = const_;
else else
compiler->consts = const_; compiler->consts = const_;
compiler->last_const = const_; compiler->last_const = const_;
} }
static SLJIT_INLINE void set_put_label(struct sljit_put_label *put_label, struct
sljit_compiler *compiler, sljit_uw offset)
{
put_label->next = NULL;
put_label->label = NULL;
put_label->addr = compiler->size - offset;
put_label->flags = 0;
if (compiler->last_put_label)
compiler->last_put_label->next = put_label;
else
compiler->put_labels = put_label;
compiler->last_put_label = put_label;
}
#define ADDRESSING_DEPENDS_ON(exp, reg) \ #define ADDRESSING_DEPENDS_ON(exp, reg) \
(((exp) & SLJIT_MEM) && (((exp) & REG_MASK) == reg || OFFS_REG(exp) == re g)) (((exp) & SLJIT_MEM) && (((exp) & REG_MASK) == reg || OFFS_REG(exp) == re g))
#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
#define FUNCTION_CHECK_IS_REG(r) \ #define FUNCTION_CHECK_IS_REG(r) \
(((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) \ (((r) >= SLJIT_R0 && (r) < (SLJIT_R0 + compiler->scratches)) \
|| ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0)) || ((r) > (SLJIT_S0 - compiler->saveds) && (r) <= SLJIT_S0))
#define FUNCTION_CHECK_IS_FREG(fr) \ #define FUNCTION_CHECK_IS_FREG(fr) \
skipping to change at line 1907 skipping to change at line 1952
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) { if (SLJIT_UNLIKELY(!!compiler->verbose)) {
fprintf(compiler->verbose, " const "); fprintf(compiler->verbose, " const ");
sljit_verbose_param(compiler, dst, dstw); sljit_verbose_param(compiler, dst, dstw);
fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", init_value ); fprintf(compiler->verbose, ", #%" SLJIT_PRINT_D "d\n", init_value );
} }
#endif #endif
CHECK_RETURN_OK; CHECK_RETURN_OK;
} }
static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_put_label(struct sljit_co
mpiler *compiler, sljit_s32 dst, sljit_sw dstw)
{
#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS)
FUNCTION_CHECK_DST(dst, dstw, 0);
#endif
#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE)
if (SLJIT_UNLIKELY(!!compiler->verbose)) {
fprintf(compiler->verbose, " put_label ");
sljit_verbose_param(compiler, dst, dstw);
fprintf(compiler->verbose, "\n");
}
#endif
CHECK_RETURN_OK;
}
#endif /* SLJIT_ARGUMENT_CHECKS || SLJIT_VERBOSE */ #endif /* SLJIT_ARGUMENT_CHECKS || SLJIT_VERBOSE */
#define SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw) \ #define SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw) \
SLJIT_COMPILE_ASSERT(!(SLJIT_CONV_SW_FROM_F64 & 0x1) && !(SLJIT_CONV_F64_ FROM_SW & 0x1), \ SLJIT_COMPILE_ASSERT(!(SLJIT_CONV_SW_FROM_F64 & 0x1) && !(SLJIT_CONV_F64_ FROM_SW & 0x1), \
invalid_float_opcodes); \ invalid_float_opcodes); \
if (GET_OPCODE(op) >= SLJIT_CONV_SW_FROM_F64 && GET_OPCODE(op) <= SLJIT_C MP_F64) { \ if (GET_OPCODE(op) >= SLJIT_CONV_SW_FROM_F64 && GET_OPCODE(op) <= SLJIT_C MP_F64) { \
if (GET_OPCODE(op) == SLJIT_CMP_F64) { \ if (GET_OPCODE(op) == SLJIT_CMP_F64) { \
CHECK(check_sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw)); \ CHECK(check_sljit_emit_fop1_cmp(compiler, op, dst, dstw, src, srcw)); \
ADJUST_LOCAL_OFFSET(dst, dstw); \ ADJUST_LOCAL_OFFSET(dst, dstw); \
ADJUST_LOCAL_OFFSET(src, srcw); \ ADJUST_LOCAL_OFFSET(src, srcw); \
skipping to change at line 2583 skipping to change at line 2643
SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi ler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw initval) SLJIT_API_FUNC_ATTRIBUTE struct sljit_const* sljit_emit_const(struct sljit_compi ler *compiler, sljit_s32 dst, sljit_sw dstw, sljit_sw initval)
{ {
SLJIT_UNUSED_ARG(compiler); SLJIT_UNUSED_ARG(compiler);
SLJIT_UNUSED_ARG(dst); SLJIT_UNUSED_ARG(dst);
SLJIT_UNUSED_ARG(dstw); SLJIT_UNUSED_ARG(dstw);
SLJIT_UNUSED_ARG(initval); SLJIT_UNUSED_ARG(initval);
SLJIT_UNREACHABLE(); SLJIT_UNREACHABLE();
return NULL; return NULL;
} }
SLJIT_API_FUNC_ATTRIBUTE struct sljit_put_label* sljit_emit_put_label(struct slj
it_compiler *compiler, sljit_s32 dst, sljit_sw dstw)
{
SLJIT_UNUSED_ARG(compiler);
SLJIT_UNUSED_ARG(dst);
SLJIT_UNUSED_ARG(dstw);
return NULL;
}
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr(sljit_uw addr, sljit_uw new_ta rget, sljit_sw executable_offset) SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr(sljit_uw addr, sljit_uw new_ta rget, sljit_sw executable_offset)
{ {
SLJIT_UNUSED_ARG(addr); SLJIT_UNUSED_ARG(addr);
SLJIT_UNUSED_ARG(new_target); SLJIT_UNUSED_ARG(new_target);
SLJIT_UNUSED_ARG(executable_offset); SLJIT_UNUSED_ARG(executable_offset);
SLJIT_UNREACHABLE(); SLJIT_UNREACHABLE();
} }
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const(sljit_uw addr, sljit_sw new_consta nt, sljit_sw executable_offset) SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const(sljit_uw addr, sljit_sw new_consta nt, sljit_sw executable_offset)
{ {
SLJIT_UNUSED_ARG(addr); SLJIT_UNUSED_ARG(addr);
SLJIT_UNUSED_ARG(new_constant); SLJIT_UNUSED_ARG(new_constant);
SLJIT_UNUSED_ARG(executable_offset); SLJIT_UNUSED_ARG(executable_offset);
SLJIT_UNREACHABLE(); SLJIT_UNREACHABLE();
} }
#endif #endif /* !SLJIT_CONFIG_UNSUPPORTED */
 End of changes. 11 change blocks. 
5 lines changed or deleted 78 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)