libbgi: __preserves_regs(d,e) на raw-примитивы (контракт, без эффекта сейчас)
plot/read/hspan/vspan_raw читают D/E (y в DE), но не пишут — аннотация задокументирована в _bgi.h. Честное измерение (полная пересборка с/без, diff всех .asm в common/ и bgi256/): кодогенерация SDCC 4.5 НЕ меняется — вызывающие держат локали в IX-фрейме и перезагружают DE перед каждым вызовом, спасений DE вокруг вызовов не было. Оставлено как контракт на будущее (изменение вызывающих/компилятора); при правке asm сверять клоббер-лист. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
#include "../_bgi.h"
|
||||
|
||||
uint8_t _bgi_read_raw(int x, int y) __naked
|
||||
uint8_t _bgi_read_raw(int x, int y) __naked __preserves_regs(d,e)
|
||||
{
|
||||
(void)x; (void)y;
|
||||
__asm
|
||||
|
||||
Reference in New Issue
Block a user