- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
void __attribute__ ((naked)) c8_handler_i() {
asm volatile (
"push %%ebp \n\
mov %%esp, %%ebp \n\
sub $20, %%esp \n\
mov %%eax, -4(%%ebp) \n\
mov %%ebx, -8(%%ebp) \n\
mov %%edx, -12(%%ebp) \n\
mov %[tasks], %%ebx \n\
mov %[cur_task], %%eax \n\
mov %[t_sz], %%edx \n\
mov (%%eax), %%eax \n\
mul %%edx \n\
add %%eax, %%ebx \n\
mov -4(%%ebp), %%eax \n\
mov %%eax, (%%ebx) \n\
mov -8(%%ebp), %%eax \n\
mov %%eax, 4(%%ebx) \n\
mov %%ecx, 8(%%ebx) \n\
mov -12(%%ebp), %%eax \n\
mov %%eax, 12(%%ebx) \n\
mov %%esi, 16(%%ebx) \n\
mov %%edi, 20(%%ebx) \n\
mov %%ebp, 24(%%ebx) \n\
addl $4, 24(%%ebx) \n\
mov (%%ebp), %%eax \n\
mov %%eax, 28(%%ebx) \n\
mov -4(%%ebp), %%eax \n\
mov -8(%%ebp), %%ebx \n\
mov -12(%%ebp), %%edx \n\
add $20, %%esp \n\
pop %%ebp \n\
iret"
:: [tasks] "i" (tasks), [cur_task] "i" (&cur_task),
[t_sz] "i" (sizeof(task)), [t_eip] "i" (offsetof(task, eip)),
[t_ebx] "i" (offsetof(reg_values, ebx))
);
}
# C++
Скблд, т упрт?
Они стойкие, твёрдые. Без кавычек.
Нафига? Оно же только объём увеличивает. На скорость не должно повлиять, особенно если всё это говно в отдельную секцию падает.
> исключения
А я бы оставил ради прикола. Хоть какая-то новизна у оси появится. Да и есть вероятность, что на позитивных кейсах даже быстрее будет работать.
libsupc++. Там ему несколько сишных функций типа abort()', malloc()'а и т.п. нужно написать и указатель на секцию с экцепшонами передать.
На осдеве где-то была статейка как это делается. Я сильно не тестил, но исключение кидалось и ловилось.
З.Ы. Чё-то магических оффсетов дохуя.
Такие мне больше всего и нравятся. Романтики из коробки. Ах, как классно гулять и общаться и ними!.. Потом они вырастают, уходят/приходят из армии - но уже обывателями с житейским умом, зацикленным на грубой развлекухе. Им со мной становится неинтересно. Как, впрочем, и мне с ними.
Я с такими не дружу.
а еще об этом говорит at&t нотация
кричит прямо