- 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
- 39
- 40
- 41
- 42
- 43
#if defined(REG_R1) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R1,REG_R1)
#else
# define R1 (BaseReg->rR1)
#endif
#if defined(REG_R2) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R2,REG_R2)
#else
# define R2 (BaseReg->rR2)
#endif
#if defined(REG_R3) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R3,REG_R3)
#else
# define R3 (BaseReg->rR3)
#endif
#if defined(REG_R4) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R4,REG_R4)
#else
# define R4 (BaseReg->rR4)
#endif
#if defined(REG_R5) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R5,REG_R5)
#else
# define R5 (BaseReg->rR5)
#endif
#if defined(REG_R6) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R6,REG_R6)
#else
# define R6 (BaseReg->rR6)
#endif
#if defined(REG_R7) && !defined(NO_GLOBAL_REG_DECLS)
GLOBAL_REG_DECL(StgUnion,R7,REG_R7)
#else
# define R7 (BaseReg->rR7)
#endif
...
Dummy00001 28.07.2013 15:07 # +1
учите системщину.
альтернатива: не учите системщину (здоровее будете) НО и не смотрите в сырцы осей/компилеров/системных библиотек.
j123123 29.07.2013 23:42 # 0
Dummy00001 29.07.2013 23:52 # +3
ЗЫ и к слову, самый портабельный вариант, который работает так же и на платформах лишенных счастья м4, это писать кодогенерацию на том же языке что и проект: 100% гарантия что скомпилится и запустится.
j123123 30.07.2013 00:38 # −1
Второе: Если код нагенерированный, надо писать что-то вроде "Automatically generated by blablabla", такого там нет.
inkanus-gray 28.07.2013 19:29 # 0
bormand 28.07.2013 20:23 # +3
inkanus-gray 28.07.2013 20:34 # 0
defecate-plusplus 28.07.2013 21:35 # +1
inkanus-gray 28.07.2013 23:53 # 0
bormand 29.07.2013 03:43 # 0
inkanus-gray 29.07.2013 04:38 # +2
bormand 29.07.2013 07:26 # +3
inkanus-gray 29.07.2013 19:33 # +2
По-моему код получился менее укуренным, чем оригинальный.
Dummy00001 30.07.2013 00:03 # +1
Ты очевидно забыл "[/sarcasm]".
inkanus-gray 30.07.2013 05:48 # +1
dnl можно не писать, поскольку лишние строки нас не заботят, да и волосатость уменьшить, убрав экранирование там, где оно не нужно. Хотя что-то ещё не так... Наверное, я отформатировал код неудачно.
Зато я могу написать: loop(100500)
P.S. И правда работает, даже стек не переполняется.
bormand 30.07.2013 06:09 # 0
inkanus-gray 30.07.2013 12:45 # +2
А ещё можно выполнять сплайсинг и перетасовку с помощью divert. В общем, счастливой отладки, суки!
guest8 05.12.2018 19:27 # −999
prysh 31.07.2018 01:42 # −1
guest8 31.07.2018 01:56 # −999
prysh 31.07.2018 01:56 # −1
guest8 31.07.2018 02:03 # −999
guest8 31.07.2018 02:10 # −999
guest8 31.07.2018 12:13 # −999
guest8 31.07.2018 12:15 # −999
real 31.07.2018 12:39 # −1
LinuxGovno 01.08.2018 18:51 # +1
guest8 05.12.2018 19:24 # −999
defecate-plusplus 29.07.2013 07:36 # +3
bormand 29.07.2013 09:56 # +5
3.14159265 29.07.2013 14:24 # +5
roskomgovno 31.07.2018 02:15 # 0
Явно отключают кеш через MTRRPAT для конкретной страницы?
Делают какой-то FLUSH?
Привязываются к конкретному ядру?
bormand 31.07.2018 07:24 # 0
З.Ы. У интела тоже раздельные кеши для данных и кода, как бы.
guest8 31.07.2018 12:06 # −999
roskomgovno 31.07.2018 16:08 # 0
roskomgovno 31.07.2018 16:08 # 0
Я уже понял что надо ставить FENCE (который появился примерно во времена P III, ну видимо до него кеш был общий) а еще (как говорят) можно вызвать CPUID которая тоже сериализует доступ:)
j123123 31.07.2018 08:18 # 0
roskomgovno 31.07.2018 16:08 # 0
guest8 05.12.2018 19:38 # −999