| 149 |
#ifdef _WIN32 |
#ifdef _WIN32 |
| 150 |
if (local_size > 1024) { |
if (local_size > 1024) { |
| 151 |
FAIL_IF(emit_do_imm(compiler, 0xb8 + reg_map[SLJIT_TEMPORARY_REG1], local_size)); |
FAIL_IF(emit_do_imm(compiler, 0xb8 + reg_map[SLJIT_TEMPORARY_REG1], local_size)); |
| 152 |
FAIL_IF(sljit_emit_ijump(compiler, SLJIT_CALL1, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_touch_stack))); |
FAIL_IF(sljit_emit_ijump(compiler, SLJIT_CALL1, SLJIT_IMM, SLJIT_FUNC_OFFSET(sljit_grow_stack))); |
| 153 |
} |
} |
| 154 |
#endif |
#endif |
| 155 |
|
|
| 156 |
compiler->local_size = local_size; |
compiler->local_size = local_size; |
| 157 |
if (local_size > 0) |
SLJIT_ASSERT(local_size > 0); |
| 158 |
return emit_non_cum_binary(compiler, 0x2b, 0x29, 0x5 << 3, 0x2d, |
return emit_non_cum_binary(compiler, 0x2b, 0x29, 0x5 << 3, 0x2d, |
| 159 |
SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, local_size); |
SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, local_size); |
| 160 |
|
|
| 161 |
return SLJIT_SUCCESS; |
return SLJIT_SUCCESS; |
| 162 |
} |
} |
| 199 |
compiler->flags_saved = 0; |
compiler->flags_saved = 0; |
| 200 |
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw)); |
FAIL_IF(emit_mov_before_return(compiler, op, src, srcw)); |
| 201 |
|
|
| 202 |
if (compiler->local_size > 0) |
SLJIT_ASSERT(compiler->local_size > 0); |
| 203 |
FAIL_IF(emit_cum_binary(compiler, 0x03, 0x01, 0x0 << 3, 0x05, |
FAIL_IF(emit_cum_binary(compiler, 0x03, 0x01, 0x0 << 3, 0x05, |
| 204 |
SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, compiler->local_size)); |
SLJIT_LOCALS_REG, 0, SLJIT_LOCALS_REG, 0, SLJIT_IMM, compiler->local_size)); |
| 205 |
|
|
| 206 |
size = 2 + (compiler->saveds <= 3 ? compiler->saveds : 3); |
size = 2 + (compiler->saveds <= 3 ? compiler->saveds : 3); |
| 207 |
#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) |
#if (defined SLJIT_X86_32_FASTCALL && SLJIT_X86_32_FASTCALL) |