summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/uts/i86pc/ml/syscall_asm_amd64.s34
1 files changed, 21 insertions, 13 deletions
diff --git a/usr/src/uts/i86pc/ml/syscall_asm_amd64.s b/usr/src/uts/i86pc/ml/syscall_asm_amd64.s
index fec8301bbc..2722561c38 100644
--- a/usr/src/uts/i86pc/ml/syscall_asm_amd64.s
+++ b/usr/src/uts/i86pc/ml/syscall_asm_amd64.s
@@ -20,7 +20,7 @@
*/
/*
* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2014, Joyent, Inc. All rights reserved.
*/
#include <sys/asm_linkage.h>
@@ -827,12 +827,16 @@ _syscall32_save:
*/
movq %rax, %rbx
- movl 0(%rsp), %edi
- movl 8(%rsp), %esi
- movl 0x10(%rsp), %edx
- movl 0x18(%rsp), %ecx
- movl 0x20(%rsp), %r8d
- movl 0x28(%rsp), %r9d
+ movl 0x0(%rsp), %edi /* arg0 */
+ movl 0x8(%rsp), %esi /* arg1 */
+ movl 0x10(%rsp), %edx /* arg2 */
+ movl 0x30(%rsp), %eax /* arg6 load */
+ movl 0x18(%rsp), %ecx /* arg3 */
+ movl %eax, 0x0(%rsp) /* arg6 saved to stack */
+ movl 0x20(%rsp), %r8d /* arg4 */
+ movl 0x38(%rsp), %eax /* arg7 load */
+ movl 0x28(%rsp), %r9d /* arg5 */
+ movl %eax, 0x8(%rsp) /* arg7 saved to stack */
call *SY_CALLC(%rbx)
@@ -1082,12 +1086,16 @@ sys_sysenter()
* %rax contains the handler address.
*/
movq %rax, %rbx
- movl 0(%rsp), %edi
- movl 8(%rsp), %esi
- movl 0x10(%rsp), %edx
- movl 0x18(%rsp), %ecx
- movl 0x20(%rsp), %r8d
- movl 0x28(%rsp), %r9d
+ movl 0x0(%rsp), %edi /* arg0 */
+ movl 0x8(%rsp), %esi /* arg1 */
+ movl 0x10(%rsp), %edx /* arg2 */
+ movl 0x30(%rsp), %eax /* arg6 load */
+ movl 0x18(%rsp), %ecx /* arg3 */
+ movl %eax, 0x0(%rsp) /* arg6 saved to stack */
+ movl 0x20(%rsp), %r8d /* arg4 */
+ movl 0x38(%rsp), %eax /* arg7 load */
+ movl 0x28(%rsp), %r9d /* arg5 */
+ movl %eax, 0x8(%rsp) /* arg7 saved to stack */
call *SY_CALLC(%rbx)