summaryrefslogtreecommitdiff
path: root/sljit/sljitNativeMIPS_common.c
diff options
context:
space:
mode:
authorzherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>2012-01-14 17:05:53 +0000
committerzherczeg <zherczeg@2f5784b3-3f2a-0410-8824-cb99058d5e15>2012-01-14 17:05:53 +0000
commit005bebb81eb7465ab104817236f9e23992956cb4 (patch)
tree23f1ad76431dda2f57795d3c626d72be04f1c654 /sljit/sljitNativeMIPS_common.c
parent8c50e3dc8301b4d85307aff27cf9a55f6dbff434 (diff)
downloadpcre-005bebb81eb7465ab104817236f9e23992956cb4.tar.gz
JIT compiler update
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@875 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'sljit/sljitNativeMIPS_common.c')
-rw-r--r--sljit/sljitNativeMIPS_common.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sljit/sljitNativeMIPS_common.c b/sljit/sljitNativeMIPS_common.c
index a1026f9..26c9555 100644
--- a/sljit/sljitNativeMIPS_common.c
+++ b/sljit/sljitNativeMIPS_common.c
@@ -527,19 +527,17 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler,
compiler->local_size = (local_size + 15) & ~0xf;
}
-SLJIT_API_FUNC_ATTRIBUTE int sljit_emit_return(struct sljit_compiler *compiler, int src, sljit_w srcw)
+SLJIT_API_FUNC_ATTRIBUTE int sljit_emit_return(struct sljit_compiler *compiler, int op, int src, sljit_w srcw)
{
int local_size;
sljit_ins base;
CHECK_ERROR();
- check_sljit_emit_return(compiler, src, srcw);
+ check_sljit_emit_return(compiler, op, src, srcw);
- local_size = compiler->local_size;
-
- if (src != SLJIT_UNUSED && src != SLJIT_RETURN_REG)
- FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, SLJIT_RETURN_REG, 0, TMP_REG1, 0, src, srcw));
+ FAIL_IF(emit_mov_before_return(compiler, op, src, srcw));
+ local_size = compiler->local_size;
if (local_size <= SIMM_MAX)
base = S(REAL_STACK_PTR);
else {