Changeset 3cc110f in mainline
- Timestamp:
- 2009-10-22T17:35:18Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5328d63
- Parents:
- 8e000b8d
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/src/userspace.c
r8e000b8d r3cc110f 70 70 "movl %[uarg], %%eax\n" 71 71 72 /* %e bxis defined to hold pcb_ptr - set it to 0 */73 "xorl %%e bx, %%ebx\n"72 /* %edi is defined to hold pcb_ptr - set it to 0 */ 73 "xorl %%edi, %%edi\n" 74 74 75 75 "iret\n" -
uspace/lib/libc/arch/ia32/src/entry.s
r8e000b8d r3cc110f 27 27 # 28 28 29 INTEL_CPUID_STANDARD = 1 30 INTEL_SEP = 11 31 29 32 .section .init, "ax" 30 33 … … 35 38 ## User-space task entry point 36 39 # 37 # %e bxcontains the PCB pointer40 # %edi contains the PCB pointer 38 41 # 39 42 __entry: … … 44 47 # Do not set %gs, it contains descriptor that can see TLS 45 48 49 # Detect the mechanism used for making syscalls 50 movl $(INTEL_CPUID_STANDARD), %eax 51 cpuid 52 bt $(INTEL_SEP), %edx 53 jnc 0f 54 leal __syscall_fast_func, %eax 55 movl $__syscall_fast, (%eax) 56 0: 57 46 58 # Pass the PCB pointer to __main as the first argument 47 pushl %e bx59 pushl %edi 48 60 call __main 49 61 -
uspace/srv/loader/arch/ia32/ia32.s
r8e000b8d r3cc110f 40 40 movl 0x8(%ebp), %eax 41 41 42 # %e bx:= pcb43 # pcb is passed to the entry point in t %ebx44 mov 0xc(%ebp), %e bx42 # %edi := pcb 43 # pcb is passed to the entry point in %edi 44 mov 0xc(%ebp), %edi 45 45 46 46 # Save a tiny bit of stack space
Note:
See TracChangeset
for help on using the changeset viewer.