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 /src | |
| 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 'src')
| -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)) |
