Lines Matching refs:regs
35 struct cpu_user_regs *regs = guest_cpu_user_regs(); in do_iret() local
39 if ( unlikely(copy_from_user(&iret_saved, (void *)regs->rsp, in do_iret()
62 regs->rip = iret_saved.rip; in do_iret()
63 regs->cs = iret_saved.cs | 3; /* force guest privilege */ in do_iret()
64 regs->rflags = ((iret_saved.rflags & ~(X86_EFLAGS_IOPL|X86_EFLAGS_VM)) in do_iret()
66 regs->rsp = iret_saved.rsp; in do_iret()
67 regs->ss = iret_saved.ss | 3; /* force guest privilege */ in do_iret()
71 regs->entry_vector &= ~TRAP_syscall; in do_iret()
72 regs->r11 = iret_saved.r11; in do_iret()
73 regs->rcx = iret_saved.rcx; in do_iret()
91 struct cpu_user_regs *regs = guest_cpu_user_regs(); in compat_iret() local
96 regs->rsp = (u32)regs->rsp; in compat_iret()
99 if ( unlikely(__get_user(regs->eax, (u32 *)regs->rsp)) ) in compat_iret()
106 if ( unlikely(__get_user(regs->eip, (u32 *)regs->rsp + 1)) || in compat_iret()
107 unlikely(__get_user(regs->cs, (u32 *)regs->rsp + 2)) ) in compat_iret()
117 if ( unlikely(__get_user(eflags, (u32 *)regs->rsp + 3)) ) in compat_iret()
126 regs->eflags = (eflags & ~X86_EFLAGS_IOPL) | X86_EFLAGS_IF; in compat_iret()
144 regs->esp, ksp); in compat_iret()
145 if ( ksp < regs->esp ) in compat_iret()
149 rc |= __get_user(x, (u32 *)regs->rsp + i); in compat_iret()
153 else if ( ksp > regs->esp ) in compat_iret()
157 rc |= __get_user(x, (u32 *)regs->rsp + i); in compat_iret()
166 regs->esp = ksp; in compat_iret()
167 regs->ss = v->arch.pv_vcpu.kernel_ss; in compat_iret()
172 regs->eflags &= ~(X86_EFLAGS_VM|X86_EFLAGS_RF| in compat_iret()
174 if ( unlikely(__put_user(0, (u32 *)regs->rsp)) ) in compat_iret()
179 regs->eip = ti->address; in compat_iret()
180 regs->cs = ti->cs; in compat_iret()
182 else if ( unlikely(ring_0(regs)) ) in compat_iret()
187 else if ( ring_1(regs) ) in compat_iret()
188 regs->esp += 16; in compat_iret()
190 else if ( __get_user(regs->ss, (u32 *)regs->rsp + 5) || in compat_iret()
191 __get_user(regs->esp, (u32 *)regs->rsp + 4) ) in compat_iret()
206 return regs->eax; in compat_iret()