freebsd-dev/sys/amd64/ia32
Konstantin Belousov 95fd15898b Real hardware, as opposed to QEMU, does not allow to have a call gate
in long mode which transfers control to 32bit code segment. Unbreak
the lcall $7,$0 implementation on amd64 by putting the 64bit user code
segment' selector into call gate, and execute the 64bit trampoline
which converts the return frame into 32bit format and switches back to
32bit mode for executing int $0x80 trampoline.

Note that all jumps over the hoops are performed in the user mode.

MFC after:	1 week
2012-08-14 12:13:27 +00:00
..
ia32_exception.S Catch up to PCB_FULL_IRET becoming a pcb flag rather than a full field. 2011-04-08 13:30:48 +00:00
ia32_misc.c Add support for executing the FreeBSD 1/i386 a.out binaries on amd64. 2011-04-01 11:16:29 +00:00
ia32_reg.c Eliminate ia32_reg.h by moving its contents to x86 and ia64 reg.h. 2012-03-18 19:12:11 +00:00
ia32_signal.c Add support for the extended FPU states on amd64, both for native 2012-01-21 17:45:27 +00:00
ia32_sigtramp.S Real hardware, as opposed to QEMU, does not allow to have a call gate 2012-08-14 12:13:27 +00:00
ia32_syscall.c Real hardware, as opposed to QEMU, does not allow to have a call gate 2012-08-14 12:13:27 +00:00