- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
void trampoline(void (*func)(void), bool flag)
{
if (flag)
func();
else
trampoline(func, true);
}
int
main(int argc, char *argv[])
{
/*... */
trampoline(set_aes_keys, false);
}
baobab 14.06.2018 13:24 # 0
guest8 14.06.2018 14:54 # −999
guest8 14.06.2018 15:03 # −999
bormand 14.06.2018 14:43 # 0
З.Ы. А у этого трамплина только одна реализация? Или есть какая-то другая под #ifdef'ом?
guest8 14.06.2018 14:52 # −999
guest8 14.06.2018 14:54 # −999
codemonkey 14.06.2018 15:08 # 0
Там хуйня типа:
Смысл трамплина остаётся неясным.
Steve_Brown 14.06.2018 16:26 # 0
roskomgovno 14.06.2018 17:13 # 0
Meltdown это когда ты тренишь предиктор чтобы он выполнил левый код, который считает данные в кеш, и потом замеряешь скорость чтения с кеша
codemonkey 14.06.2018 14:56 # 0
Типа кококо-защита от реверсинга, но похоже что хуита.
>З.Ы. А у этого трамплина только одна реализация? Или есть какая-то другая под #ifdef'ом?
Только одна.
Тащемта, похоже что ЭТО надо выжечь калёным железом.
guest8 14.06.2018 14:59 # −999
codemonkey 14.06.2018 15:02 # 0
Ололо
guest8 14.06.2018 15:09 # −999
guest8 14.06.2018 15:13 # −999
666_N33D135 14.06.2018 15:19 # 0
Antervis 14.06.2018 15:04 # 0
guest8 14.06.2018 15:10 # −999
3.14159265 14.06.2018 15:22 # 0
ps что с гк творится? почему 500е постоянно?
неужели задрочили самопальными приблудами и бесконечными стоками?
666_N33D135 14.06.2018 15:25 # 0
Сам токошто гневный комент пейсал, так ГКшный эксепшен его скушал.
guest8 18.06.2018 20:22 # −999
guest8 18.06.2018 20:23 # −999
roskomgovno 18.06.2018 23:56 # 0
Так учил Фредерик Брукс в 1963 г.
guest8 19.06.2018 00:01 # −999
roskomgovno 15.06.2018 00:33 # 0
guest8 15.06.2018 00:46 # −999
roskomgovno 15.06.2018 03:36 # 0
Вангую что в темные века между 386 (когда стало можно адресоваться по sp) и, примерно, 2006 годом, им никто не пользовался ибо frame pointer omition
guest8 15.06.2018 11:42 # −999
bormand 15.06.2018 12:09 # 0
Ой да ладно, конпелятору не так уж и сложно трекать сколько байт он наклал на стек... Единственный случай, где FPO реально не заюзать -- функция с alloca.
З.Ы. А в 16-битном коде об SP нельзя было адресоваться, так что там BP без вариантов и никакого FPO.
guest8 15.06.2018 12:36 # −999
bormand 15.06.2018 12:45 # 0
З.Ы. Разве что въебать 67h, нагло заюзать [esp] прямо из 16-битного кода и молиться, чтобы никто не насрал в старшую половину esp. Всё равно чистых 8086 в природе уже нет.
guest8 15.06.2018 12:59 # −999
bormand 15.06.2018 13:13 # 0
На некоторых прошивках видно, что после вызова "реалмодного" прерывания меняется IDTR. Т.е. CSM иногда зачем-то бегает в защищёнку и есть риск, что он и старшие части регистров хуёво сохранит и помнёт.
Нахуй и в пизду, короче. Разве что под CLI и с обнулением прямо перед использованием...
roskomgovno 16.06.2018 14:22 # 0
именно тем и руководствовались питухи, когда выпиливали frame pointer.
А потом без символов стек не прочитать
>>А в 16-битном коде об SP нельзя было адресоваться,
даже на совр. процах?
guest8 16.06.2018 15:13 # −999
guest8 15.06.2018 13:03 # −999
roskomgovno 16.06.2018 14:23 # 0
bormand 16.06.2018 17:08 # 0
З.Ы. Лол, оказывается даже суперкомпьютер с 65536 однобитных процессоров был...
guest8 16.06.2018 17:31 # −999
666_N33D135 16.06.2018 18:18 # 0
bormand 16.06.2018 21:45 # 0
Там для большинства задач даже переходы нинужны были. Команды тупо исполнялись по кругу. Зато инженерам не надо было учиться программировать, они брали схему на реле и дословно переносили её на асм этого контроллера.
guest8 16.06.2018 22:21 # −999
bormand 16.06.2018 22:22 # 0
roskomgovno 16.06.2018 22:44 # 0
guest8 16.06.2018 22:52 # −999
roskomgovno 16.06.2018 22:58 # 0
666_N33D135 16.06.2018 15:04 # 0
roskomgovno 16.06.2018 15:08 # 0
666_N33D135 16.06.2018 15:16 # 0
Elvenfighter 18.06.2018 16:32 # 0
Elvenfighter 18.06.2018 16:33 # 0
?
guest8 18.06.2018 16:55 # −999
guest8 18.06.2018 16:58 # −999
roskomgovno 18.06.2018 17:49 # +1
foo 2, 2
->
foo 4
guest8 18.06.2018 19:46 # −999
guest8 18.06.2018 19:51 # −999
roskomgovno 14.06.2018 17:12 # 0
неужто нет ключ слова у копелятора?
>>З.Ы. А у этого трамплина только одна реализация?
конечно, есть еще и такая
void trampoline(void (*func)(void), bool flag)
{
if (flag)
func();
else
trampoline(func, false);
}
ахахахахах
666_N33D135 14.06.2018 15:04 # 0
Сперва прочитал как traponline
guest8 14.06.2018 15:07 # −999
666_N33D135 14.06.2018 15:10 # 0
guest8 14.06.2018 17:12 # −999
guest8 14.06.2018 18:53 # −999
roskomgovno 14.06.2018 18:54 # 0
1024-- 14.06.2018 20:32 # 0
roskomgovno 14.06.2018 20:34 # 0
Ты пишешь под браузер или только под ноду?
guest8 14.06.2018 20:45 # −999
roskomgovno 14.06.2018 20:58 # 0
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Browser_compatibility
Но у нас всё равно Бабель, может быть для let или import
1024-- 18.06.2018 09:16 # 0
1024-- 14.06.2018 20:27 # +2
guest8 14.06.2018 21:01 # −999
roskomgovno 14.06.2018 21:03 # 0
guest8 15.06.2018 00:26 # −999
Elvenfighter 19.06.2018 12:19 # +2
666_N33D135 19.06.2018 13:08 # +1
guest8 19.06.2018 14:30 # −999
roskomgovno 19.06.2018 19:22 # 0
foo + bar это обычно foo[bar]
Elvenfighter 19.06.2018 20:19 # 0
roskomgovno 19.06.2018 20:21 # 0
1024-- 19.06.2018 19:43 # 0
Идеи кастов в JS ещё можно понять: удобно, когда пишешь "form.y.value = form.x.value * 10" и не отвлекаешься на преобразования.
Но это перемешивание индексов - какая-то питушня. "Вдруг программист случайно перепутает массив и индекс - с кем не бывает - а наш язык ему поможет".
Elvenfighter 19.06.2018 20:31 # 0
Эта питушня наверное походит еще со времен, когда С считался непозволительной роскошью из-за оверхеда над ASM.
> "Вдруг программист случайно перепутает массив и индекс - с кем не бывает - а наш язык ему поможет".
Скорее мысль была такая "в случае x[y] заменяем и интерпретируем как *(x + y) ибо надо сэкономить пару байт кода компилятора"
roskomgovno 19.06.2018 20:55 # 0