diff options
-rw-r--r-- | usr/src/uts/i86pc/ml/syscall_asm_amd64.s | 34 |
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) |