|
Lines 120-128
Link Here
|
| 120 |
ret |
120 |
ret |
| 121 |
|
121 |
|
| 122 |
L(thread_start): |
122 |
L(thread_start): |
| 123 |
cfi_startproc; |
|
|
| 124 |
/* Clearing frame pointer is insufficient, use CFI. */ |
| 125 |
cfi_undefined (eip); |
| 126 |
/* Note: %esi is zero. */ |
123 |
/* Note: %esi is zero. */ |
| 127 |
movl %esi,%ebp /* terminate the stack frame */ |
124 |
movl %esi,%ebp /* terminate the stack frame */ |
| 128 |
#ifdef RESET_PID |
125 |
#ifdef RESET_PID |
|
Lines 155-161
Link Here
|
| 155 |
jmp L(haspid) |
152 |
jmp L(haspid) |
| 156 |
.previous |
153 |
.previous |
| 157 |
#endif |
154 |
#endif |
| 158 |
cfi_endproc; |
|
|
| 159 |
|
155 |
|
| 160 |
cfi_startproc |
156 |
cfi_startproc |
| 161 |
PSEUDO_END (BP_SYM (__clone)) |
157 |
PSEUDO_END (BP_SYM (__clone)) |
|
Lines 89-97
Link Here
|
| 89 |
ret |
89 |
ret |
| 90 |
|
90 |
|
| 91 |
L(thread_start): |
91 |
L(thread_start): |
| 92 |
cfi_startproc; |
|
|
| 93 |
/* Clearing frame pointer is insufficient, use CFI. */ |
| 94 |
cfi_undefined (rip); |
| 95 |
/* Clear the frame pointer. The ABI suggests this be done, to mark |
92 |
/* Clear the frame pointer. The ABI suggests this be done, to mark |
| 96 |
the outermost frame obviously. */ |
93 |
the outermost frame obviously. */ |
| 97 |
xorl %ebp, %ebp |
94 |
xorl %ebp, %ebp |
|
Lines 116-122
Link Here
|
| 116 |
/* Call exit with return value from function call. */ |
113 |
/* Call exit with return value from function call. */ |
| 117 |
movq %rax, %rdi |
114 |
movq %rax, %rdi |
| 118 |
call HIDDEN_JUMPTARGET (_exit) |
115 |
call HIDDEN_JUMPTARGET (_exit) |
| 119 |
cfi_endproc; |
|
|
| 120 |
|
116 |
|
| 121 |
cfi_startproc; |
117 |
cfi_startproc; |
| 122 |
PSEUDO_END (BP_SYM (__clone)) |
118 |
PSEUDO_END (BP_SYM (__clone)) |