diff options
author | Mike Pall <mike> | 2016-02-10 18:53:42 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2016-02-10 18:53:42 +0100 |
commit | 6cb38f788f58d642d1b9198aace947e00f1dc2d8 (patch) | |
tree | eedfca0787cee29f394052d73ccc09f50dffae28 | |
parent | f547a1425e9db10eec59d586c94ba78b897497f6 (diff) | |
parent | a44388967763d0f7f5f78dfd71703437afa69fc0 (diff) | |
download | luajit-6cb38f788f58d642d1b9198aace947e00f1dc2d8.tar.gz luajit-6cb38f788f58d642d1b9198aace947e00f1dc2d8.tar.bz2 luajit-6cb38f788f58d642d1b9198aace947e00f1dc2d8.zip |
Merge branch 'master' into v2.1
Diffstat (limited to '')
-rw-r--r-- | src/lj_asm_arm.h | 2 | ||||
-rw-r--r-- | src/lj_asm_ppc.h | 2 | ||||
-rw-r--r-- | src/lj_asm_x86.h | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/src/lj_asm_arm.h b/src/lj_asm_arm.h index c129dd4e..557626e4 100644 --- a/src/lj_asm_arm.h +++ b/src/lj_asm_arm.h | |||
@@ -426,7 +426,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args) | |||
426 | static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) | 426 | static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) |
427 | { | 427 | { |
428 | RegSet drop = RSET_SCRATCH; | 428 | RegSet drop = RSET_SCRATCH; |
429 | int hiop = ((ir+1)->o == IR_HIOP); | 429 | int hiop = ((ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t)); |
430 | if (ra_hasreg(ir->r)) | 430 | if (ra_hasreg(ir->r)) |
431 | rset_clear(drop, ir->r); /* Dest reg handled below. */ | 431 | rset_clear(drop, ir->r); /* Dest reg handled below. */ |
432 | if (hiop && ra_hasreg((ir+1)->r)) | 432 | if (hiop && ra_hasreg((ir+1)->r)) |
diff --git a/src/lj_asm_ppc.h b/src/lj_asm_ppc.h index 7deeb66e..0134258f 100644 --- a/src/lj_asm_ppc.h +++ b/src/lj_asm_ppc.h | |||
@@ -298,7 +298,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args) | |||
298 | static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) | 298 | static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) |
299 | { | 299 | { |
300 | RegSet drop = RSET_SCRATCH; | 300 | RegSet drop = RSET_SCRATCH; |
301 | int hiop = ((ir+1)->o == IR_HIOP); | 301 | int hiop = ((ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t)); |
302 | if ((ci->flags & CCI_NOFPRCLOBBER)) | 302 | if ((ci->flags & CCI_NOFPRCLOBBER)) |
303 | drop &= ~RSET_FPR; | 303 | drop &= ~RSET_FPR; |
304 | if (ra_hasreg(ir->r)) | 304 | if (ra_hasreg(ir->r)) |
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h index 941d0919..d6e272c0 100644 --- a/src/lj_asm_x86.h +++ b/src/lj_asm_x86.h | |||
@@ -531,7 +531,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args) | |||
531 | static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) | 531 | static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci) |
532 | { | 532 | { |
533 | RegSet drop = RSET_SCRATCH; | 533 | RegSet drop = RSET_SCRATCH; |
534 | int hiop = (LJ_32 && (ir+1)->o == IR_HIOP); | 534 | int hiop = (LJ_32 && (ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t)); |
535 | if ((ci->flags & CCI_NOFPRCLOBBER)) | 535 | if ((ci->flags & CCI_NOFPRCLOBBER)) |
536 | drop &= ~RSET_FPR; | 536 | drop &= ~RSET_FPR; |
537 | if (ra_hasreg(ir->r)) | 537 | if (ra_hasreg(ir->r)) |