Благодаря помощи Филиппа Краузе и Eltaron’а реализована экспериментальная поддержка модели вызова fastacall (передача параметров в регистрах). Из-за отсутствия (пока) в SDCC поддержки fastcall присутствует серьёзное ограничение: параметры должны быть только константами, вычислямыми в процессе компиляции. Фишка по умолчанию отключена. Включить можно в Libs/BasicCfg.h
С использованием модели fastcall получается такой код:
Код:
B.BORDER(B.Black); B.PAPER(B.Green); B.CLS;
;HelloWorld.c:15: Basic_BORDER(0);
xor a,a
call 0x229B
;HelloWorld.c:16: Basic_PAPER(4);
ld c,#4
call _Basic_PAPER_fastcall
;HelloWorld.c:17: Basic_CLS();
call _Basic_CLS