Software > Coding
FVDI Saga Treiber für Saga Optimieren
Thorsten Otto:
Würde auch helfen zu wissen welcher code vorher verwendet wurde, der ja scheinbar funktioniert hat.
Ist das der aus 16b/16b_blit.c?
Was auch suspekt aussieht ist der merkwürdige Zugriff auf keep_order. Da dort kein asm-code vewendet wird scheint mir der unnötig, ganz abgesehen davon daß man das auch mit __asm__ __volatile__ verhindern könnte.
Arthur:
@tuxie, kannst du die Screenshots noch mal direkt auf forum.atari-home.de hoch laden?
Thorsten Otto:
--- Code: ---#define EXPR_OP15(D,S) D=-1U
MAKE_OP(op15,EXPR_OP15)
--- Ende Code ---
Funktioniert so sieht. Da der Treiber mit -mshort (hoffentlich) übersetzt wird, macht gcc daraus
--- Code: --- move.l #65535,(%a0)
move.l #65535,4(%a0)
move.l #65535,8(%a0)
move.l #65535,12(%a0)
--- Ende Code ---
Davon abgesehen ist die Deklaration von
--- Code: ---typedef uint32_t (*blit)(PIXEL*,int32_t,PIXEL *,int32_t,int16_t,int16_t);
--- Ende Code ---
falsch, und müsste als void deklariert werden (erzeugt aber vermutlich keine Fehler, nur jede Menge Warnungen).
tuxie:
--- Zitat von: Thorsten Otto am Mo 11.03.2019, 14:59:51 ---Würde auch helfen zu wissen welcher code vorher verwendet wurde, der ja scheinbar funktioniert hat.
Ist das der aus 16b/16b_blit.c?
Was auch suspekt aussieht ist der merkwürdige Zugriff auf keep_order. Da dort kein asm-code vewendet wird scheint mir der unnötig, ganz abgesehen davon daß man das auch mit __asm__ __volatile__ verhindern könnte.
--- Ende Zitat ---
Dies ist ein Trick um out of order execution daran zu hintern die Reihenfolge der Abarbeitung zu ändern.. zumindest wird es so bei den Amiganern genutzt.
Thorsten Otto:
Wenn man das verhindern muss, ist aber wohl irgendwas an dessen implementation in Apollo faul ;) Abgesehen davon, daß
--- Code: ---#define KEEP_ORDER() __asm__ volatile("" : "+m"(keep_order))
--- Ende Code ---
keine outputs definiert hat, und die Zugriffe deshalb komplett wegoptimiert werden.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln