Lines Matching refs:rsp

463  *	rsp
540 shl $32, %rsp
541 shrd $32, %rax, %rsp /* relocate into uber-space */
543 cmpl $(SS_32), SS_FLAVOR(%rsp) /* 32-bit state? */
557 shl $32, %rsp
558 shrd $32, %rax, %rsp /* relocate into uber-space */
561 cmpl $(SS_32), SS_FLAVOR(%rsp) /* 32-bit state? */
569 movl R32_EIP(%rsp), %eax
570 movl %eax, ISC32_RIP(%rsp)
571 movl R32_EFLAGS(%rsp), %eax
572 movl %eax, ISC32_RFLAGS(%rsp)
573 movl R32_CS(%rsp), %eax
574 movl %eax, ISC32_CS(%rsp)
575 movl R32_UESP(%rsp), %eax
576 movl %eax, ISC32_RSP(%rsp)
577 movl R32_SS(%rsp), %eax
578 movl %eax, ISC32_SS(%rsp)
583 movl R32_EAX(%rsp), %eax
584 movl R32_EBX(%rsp), %ebx
585 movl R32_ECX(%rsp), %ecx
586 movl R32_EDX(%rsp), %edx
587 movl R32_EBP(%rsp), %ebp
588 movl R32_ESI(%rsp), %esi
589 movl R32_EDI(%rsp), %edi
598 movw R32_DS(%rsp), %ds
600 movw R32_ES(%rsp), %es
602 movw R32_FS(%rsp), %fs
604 movw R32_GS(%rsp), %gs
606 add $(ISC32_OFFSET)+8+8+8, %rsp /* pop compat frame +
608 cmpl $(SYSENTER_CS),ISF64_CS-8-8-8(%rsp)
617 andl $(~EFL_IF), (%rsp) /* clear interrupts enable, sti below */
633 testb $3, R64_CS(%rsp) /* returning to user-space? */
641 mov R64_R15(%rsp), %r15
642 mov R64_R14(%rsp), %r14
643 mov R64_R13(%rsp), %r13
644 mov R64_R12(%rsp), %r12
645 mov R64_R11(%rsp), %r11
646 mov R64_R10(%rsp), %r10
647 mov R64_R9(%rsp), %r9
648 mov R64_R8(%rsp), %r8
649 mov R64_RSI(%rsp), %rsi
650 mov R64_RDI(%rsp), %rdi
651 mov R64_RBP(%rsp), %rbp
652 mov R64_RDX(%rsp), %rdx
653 mov R64_RBX(%rsp), %rbx
654 mov R64_RCX(%rsp), %rcx
655 mov R64_RAX(%rsp), %rax
657 add $(ISS64_OFFSET)+8+8+8, %rsp /* pop saved state frame +
659 cmpl $(SYSCALL_CS),ISF64_CS-8-8-8(%rsp)
667 * Here to load rcx/r11/rsp and perform the sysret back to user-space.
670 * rsp user stack pointer
672 mov ISF64_RIP-8-8-8(%rsp), %rcx
673 mov ISF64_RFLAGS-8-8-8(%rsp), %r11
674 mov ISF64_RSP-8-8-8(%rsp), %rsp
683 cmpl $(USER64_CS), ISF64_CS(%rsp)
685 cmpl $(KERNEL64_CS), ISF64_CS(%rsp)
726 mov %rsp, %gs:CPU_UBER_TMP /* save user stack */
727 mov %gs:CPU_UBER_ISF, %rsp /* switch stack to pcb */
733 movl $(USER_DS), ISF64_SS(%rsp)
734 movl $(SYSCALL_CS), ISF64_CS(%rsp) /* cs - a pseudo-segment */
735 mov %r11, ISF64_RFLAGS(%rsp) /* rflags */
736 mov %rcx, ISF64_RIP(%rsp) /* rip */
738 mov %rcx, ISF64_RSP(%rsp) /* user stack */
739 mov %rax, ISF64_ERR(%rsp) /* err/rax - syscall code */
740 movl $(T_SYSCALL), ISF64_TRAPNO(%rsp) /* trapno */
741 movl $(LO_SYSCALL), ISF64_TRAPFN(%rsp)
763 mov (%rsp), %rsp /* switch from temporary stack to pcb */
784 orl $(EFL_IF), ISF64_RFLAGS(%rsp)
785 movl $(LO_MACH_SCALL), ISF64_TRAPFN(%rsp)
788 movl $(LO_UNIX_SCALL), ISF64_TRAPFN(%rsp)
823 sub $(ISC32_OFFSET), %rsp
824 movl $(SS_32), SS_FLAVOR(%rsp)
829 mov %ds, R32_DS(%rsp)
830 mov %es, R32_ES(%rsp)
831 mov %fs, R32_FS(%rsp)
832 mov %gs, R32_GS(%rsp)
837 mov %eax, R32_EAX(%rsp)
838 mov %ebx, R32_EBX(%rsp)
839 mov %ecx, R32_ECX(%rsp)
840 mov %edx, R32_EDX(%rsp)
841 mov %ebp, R32_EBP(%rsp)
842 mov %esi, R32_ESI(%rsp)
843 mov %edi, R32_EDI(%rsp)
847 mov %eax, R32_CR2(%rsp)
853 mov ISC32_RIP(%rsp), %eax
854 mov %eax, R32_EIP(%rsp)
855 mov ISC32_RFLAGS(%rsp), %eax
856 mov %eax, R32_EFLAGS(%rsp)
857 mov ISC32_CS(%rsp), %eax
858 mov %eax, R32_CS(%rsp)
863 mov ISC32_RSP(%rsp), %eax
864 mov %eax, R32_UESP(%rsp)
865 mov ISC32_SS(%rsp), %eax
866 mov %eax, R32_SS(%rsp)
868 mov ISC32_TRAPNO(%rsp), %ebx /* %ebx := trapno for later */
869 mov %ebx, R32_TRAPNO(%rsp)
870 mov ISC32_ERR(%rsp), %eax
871 mov %eax, R32_ERR(%rsp)
872 mov ISC32_TRAPFN(%rsp), %edx
937 movl $(LO_ALLTRAPS), ISF64_TRAPFN(%rsp)
938 movl $(T_INVALID_OPCODE), ISF64_TRAPNO(%rsp)
946 sub $(ISS64_OFFSET), %rsp
947 movl $(SS_64), SS_FLAVOR(%rsp)
953 mov %fs, R64_FS(%rsp)
954 mov %gs, R64_GS(%rsp)
957 mov %rax, R64_RAX(%rsp)
958 mov %rcx, R64_RCX(%rsp)
959 mov %rbx, R64_RBX(%rsp)
960 mov %rbp, R64_RBP(%rsp)
961 mov %r11, R64_R11(%rsp)
962 mov %r12, R64_R12(%rsp)
963 mov %r13, R64_R13(%rsp)
964 mov %r14, R64_R14(%rsp)
965 mov %r15, R64_R15(%rsp)
969 mov %rax, R64_CR2(%rsp)
972 mov %rdi, R64_RDI(%rsp) /* arg0 .. */
973 mov %rsi, R64_RSI(%rsp)
974 mov %rdx, R64_RDX(%rsp)
975 mov %r10, R64_R10(%rsp)
976 mov %r8, R64_R8(%rsp)
977 mov %r9, R64_R9(%rsp) /* .. arg5 */
983 mov R64_TRAPNO(%rsp), %ebx
984 mov R64_TRAPFN(%rsp), %edx
986 testb $3, ISF64_CS+ISS64_OFFSET(%rsp)
995 cmpl $(KERNEL_UBER_BASE_HI32), ISF64_RIP+4(%rsp)
997 cmpl $(EXT(hi64_sysenter_user_arg_copy)), ISF64_RIP(%rsp)
999 mov ISF64_RSP(%rsp), %rsp
1014 testb $3, ISF64_CS(%rsp)
1020 cmpl $(KERNEL_UBER_BASE_HI32), ISF64_RIP+4(%rsp)
1023 cmpl $(EXT(hi64_mach_scall)), ISF64_RIP(%rsp)
1025 add $(ISF64_SIZE),%rsp /* remove entire intr stack frame */
1028 cmpl $(EXT(hi64_mdep_scall)), ISF64_RIP(%rsp)
1030 add $(ISF64_SIZE),%rsp /* remove entire intr stack frame */
1033 cmpl $(EXT(hi64_unix_scall)), ISF64_RIP(%rsp)
1035 add $(ISF64_SIZE),%rsp /* remove entire intr stack frame */
1038 cmpl $(EXT(hi64_sysenter)), ISF64_RIP(%rsp)
1044 add $40,%rsp /* remove trapno/trapfn/err/rip/cs */
1046 mov 32(%rsp),%rcx /* top of intr stack -> pcb stack */
1047 xchg %rcx,%rsp /* switch to pcb stack */
1049 push (%rcx) /* saved %rcx into rsp slot */
1061 cmpl $(KERNEL_UBER_BASE_HI32), ISF64_RIP+4(%rsp)
1064 cmpl $(EXT(hi64_syscall)), ISF64_RIP(%rsp)
1067 mov ISF64_RSP(%rsp), %rsp
1076 * rsp-> 0 ISF64_TRAPNO: trap code (NP or GP)
1082 * 48 ISF64_RSP: rsp
1101 testb $3,ISF64_CS(%rsp)
1105 cmpl $(KERNEL_UBER_BASE_HI32), ISF64_RIP+4(%rsp)
1108 cmpl $(EXT(ret32_iret)), ISF64_RIP(%rsp)
1110 cmpl $(EXT(ret32_set_ds)), ISF64_RIP(%rsp)
1112 cmpl $(EXT(ret32_set_es)), ISF64_RIP(%rsp)
1114 cmpl $(EXT(ret32_set_fs)), ISF64_RIP(%rsp)
1116 cmpl $(EXT(ret32_set_gs)), ISF64_RIP(%rsp)
1119 cmpl $(EXT(ret64_iret)), ISF64_RIP(%rsp)
1122 cmpl $(EXT(hi64_sysenter_user_arg_copy)), ISF64_RIP(%rsp)
1123 cmove ISF64_RSP(%rsp), %rsp
1140 subq %rsp, %rax
1146 * Here if %rsp is in the PCB
1150 xchgq %rax, %rsp
1174 * 48 ISF64_RSP: rsp
1180 * 96 user rsp
1184 mov %rax, ISF64_RIP(%rsp) /* save rax (we don`t need saved rip) */
1185 mov ISF64_TRAPNO(%rsp), %rax
1186 mov %rax, ISF64_SS(%rsp) /* put in user trap number */
1187 mov ISF64_ERR(%rsp), %rax
1188 mov %rax, 8+ISF64_SS(%rsp) /* put in user errcode */
1189 mov ISF64_RIP(%rsp), %rax /* restore rax */
1190 add $(ISF64_SS), %rsp /* reset to original frame */
1196 mov %rax, ISF64_RIP(%rsp) /* save rax (we don`t need saved rip) */
1197 mov ISF64_TRAPNO(%rsp), %rax
1198 mov %rax, ISF64_SS(%rsp) /* put in user trap number */
1199 mov ISF64_ERR(%rsp), %rax
1200 mov %rax, 8+ISF64_SS(%rsp) /* put in user errcode */
1201 mov ISF64_RIP(%rsp), %rax /* restore rax */
1202 add $(ISF64_SS), %rsp /* reset to original frame */
1212 mov ISF64_TRAPNO(%rsp), %rax
1213 mov ISF64_ERR(%rsp), %rdx
1214 mov ISF64_RSP(%rsp), %rsp /* reload stack prior to fault */
1215 mov %rax,ISC32_TRAPNO(%rsp)
1216 mov %rdx,ISC32_ERR(%rsp)