X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-64-assem.S;h=92e07164e7bcaaef94c28990131128a08db362c2;hb=0a1b062490494e5a2d8c559d1747b57adcc6aee5;hp=02c508a4e05462c3e4161ba92fcb18ffb47b01ec;hpb=ee41b142b86e50983bd885141eaf2ede02815000;p=sbcl.git diff --git a/src/runtime/x86-64-assem.S b/src/runtime/x86-64-assem.S index 02c508a..92e0716 100644 --- a/src/runtime/x86-64-assem.S +++ b/src/runtime/x86-64-assem.S @@ -170,8 +170,9 @@ Lcall: /* If the function returned multiple values, it will return to this point. Lose them */ + jnc LsingleValue mov %rbx, %rsp - /* A singled value function returns here */ +LsingleValue: /* Restore the stack, in case there was a stack change. */ pop %rsp # c-sp @@ -290,11 +291,7 @@ GNAME(closure_tramp): .align align_8byte GNAME(fun_end_breakpoint_guts): /* Multiple Value return */ - jmp multiple_value_return - /* the above jmp is only 2 bytes long, we need to add a nop for - * padding since the single value return convention jumps to original - * return address + 3 bytes */ - nop + jc multiple_value_return /* Single value return: The eventual return will now use the multiple values return convention but with a return values count of one. */