Rev 1104 | Rev 1121 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1104 | Rev 1112 | ||
|---|---|---|---|
| Line 53... | Line 53... | ||
| 53 | "pop %%eax\n" |
53 | "pop %%eax\n" |
| 54 | "and $0xffffbfff, %%eax\n" |
54 | "and $0xffffbfff, %%eax\n" |
| 55 | "push %%eax\n" |
55 | "push %%eax\n" |
| 56 | "popfl\n" |
56 | "popfl\n" |
| 57 | 57 | ||
| - | 58 | /* Set up GS register (TLS) */ |
|
| - | 59 | "movl %6, %%gs\n" |
|
| - | 60 | ||
| 58 | "pushl %0\n" |
61 | "pushl %0\n" |
| 59 | "pushl %1\n" |
62 | "pushl %1\n" |
| 60 | "pushl %2\n" |
63 | "pushl %2\n" |
| 61 | "pushl %3\n" |
64 | "pushl %3\n" |
| 62 | "pushl %4\n" |
65 | "pushl %4\n" |
| 63 | "movl %5, %%eax\n" |
66 | "movl %5, %%eax\n" |
| 64 | "iret\n" |
67 | "iret\n" |
| 65 | : |
68 | : |
| 66 | : "i" (selector(UDATA_DES) | PL_USER), "r" (kernel_uarg->uspace_stack+THREAD_STACK_SIZE), |
69 | : "i" (selector(UDATA_DES) | PL_USER), "r" (kernel_uarg->uspace_stack+THREAD_STACK_SIZE), |
| 67 | "r" (ipl), "i" (selector(UTEXT_DES) | PL_USER), "r" (kernel_uarg->uspace_entry), |
70 | "r" (ipl), "i" (selector(UTEXT_DES) | PL_USER), "r" (kernel_uarg->uspace_entry), |
| 68 | "r" (kernel_uarg->uspace_uarg) |
71 | "r" (kernel_uarg->uspace_uarg), |
| - | 72 | "r" (selector(TLS_DES)) |
|
| 69 | : "eax"); |
73 | : "eax"); |
| 70 | 74 | ||
| 71 | /* Unreachable */ |
75 | /* Unreachable */ |
| 72 | for(;;) |
76 | for(;;) |
| 73 | ; |
77 | ; |