Software > Coding

FVDI Saga Treiber für Saga Optimieren

<< < (4/8) > >>

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