Size: a a a

Compiler Development

2020 February 05

AS

Aleksey Shipilev in Compiler Development
Так, ладно, извините, что я тут со Спарком накинул. Пора идти баги дальше чинить :)
источник

E

EgorBo in Compiler Development
и внедрять новые!
источник

AS

Aleksey Shipilev in Compiler Development
EgorBo
и внедрять новые!
источник

E

EgorBo in Compiler Development
:D
источник

FO

FORTRAN ONE LOVE in Compiler Development
EgorBo
и внедрять новые!
Ненавижу ошибки в формулах :(
источник

FO

FORTRAN ONE LOVE in Compiler Development
Особенно когда ошибки не в расстановке скобок
источник

PS

Peter Sovietov in Compiler Development
источник

AS

Aleksey Shipilev in Compiler Development
Что-то я с утра не могу понять, а зачем прерывания выключать для инкремента регистров (?)
источник

AT

Alexander Tchitchigin in Compiler Development
Aleksey Shipilev
Что-то я с утра не могу понять, а зачем прерывания выключать для инкремента регистров (?)
Типа транзакция? Чтобы оба два успели инкрементнуться?
источник

PS

Peter Sovietov in Compiler Development
Aleksey Shipilev
Что-то я с утра не могу понять, а зачем прерывания выключать для инкремента регистров (?)
Скорее всего там различные микропрограммы разделяют ресурсы между собой. Тот же индексный регистр.
источник

AS

Aleksey Shipilev in Compiler Development
Alexander Tchitchigin
Типа транзакция? Чтобы оба два успели инкрементнуться?
Мнэ... Локальному процессору должно быть всё равно.
источник

AS

Aleksey Shipilev in Compiler Development
Peter Sovietov
Скорее всего там различные микропрограммы разделяют ресурсы между собой. Тот же индексный регистр.
О_о. Похоже на ответ. Блин, иногда лучше не спрашивать :)
источник

МБ

Михаил Бахтерев in Compiler Development
Aleksey Shipilev
Что-то я с утра не могу понять, а зачем прерывания выключать для инкремента регистров (?)
Вероятно, просто показано, что инкремент атомарный, а вся операция - нет.
источник

IN

Ilya Neganov in Compiler Development
Aleksey Shipilev
Что-то я с утра не могу понять, а зачем прерывания выключать для инкремента регистров (?)
Это же очевидно: если прилетит прерывание на середине инструкции, то её уже не рестартнуть - ну, если она там РОНы обновляет. В интеле, емнип, на аналогичную инструкцию есть какая-то магия с поддержкой прерываний
источник

AS

Aleksey Shipilev in Compiler Development
Ilya Neganov
Это же очевидно: если прилетит прерывание на середине инструкции, то её уже не рестартнуть - ну, если она там РОНы обновляет. В интеле, емнип, на аналогичную инструкцию есть какая-то магия с поддержкой прерываний
Да, из Intel SDM про REP*: "A repeating string operation can be suspended by an exception or interrupt. When this happens, the state of the registers is preserved to allow the string operation to be resumed upon a return from the exception or interrupt handler."
источник

IN

Ilya Neganov in Compiler Development
А, ну собственно, тут такая же магия, я скобки просмотрел неправильно с утра. Итерация атомарна, вся инструкция- прерываема
источник

BD

Berkus Decker in Compiler Development
Ilya Neganov
Это же очевидно: если прилетит прерывание на середине инструкции, то её уже не рестартнуть - ну, если она там РОНы обновляет. В интеле, емнип, на аналогичную инструкцию есть какая-то магия с поддержкой прерываний
в интеле rep movs прерывается через каждые 8к итераций в микрокоде
источник

BD

Berkus Decker in Compiler Development
ну хотя точные цифры там наверное варьируются от модели к модели, но я читал такое
источник

IN

Ilya Neganov in Compiler Development
Это page crossing, видимо. TLB miss очень сложно поддерживать в таких инструкциях
источник

IN

Ilya Neganov in Compiler Development
Не припомню такого ограничения в архитектурном мануале (но и память у меня, как у золотой рыбки)
источник