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:
2026-07-10 19:35:32 +03:00
parent 40e896a73d
commit 38bfabb2ca
4 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -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