[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] Missing clobbered register in gemlib



Am 20.12.2009, 06:31 Uhr, schrieb Johan Klockars <johan@klockars.net>:

The same book claims d0-d1/a0 are clobbered by the VDI and AES, which
is consistent with what I do in fVDI.

So the last gemlib-version (before Vincents patch) that saved d0-d1/a0 should do enough for fvdi?


The assembler of v_clswk.c (produced by m68k-atari-mint-gcc -S -I.. -mshort -O2 -fomit-frame-pointer -Wall -Wmissing-prototypes -Winline -Ws hadow -Wpointer-arith -Wcast-qual -Waggregate-return -c ../v_clswk.c -o v_clswk.s
) is:

#NO_APP
gcc2_compiled.:
___gnu_compiled_c:
.text
  .even
.globl _v_clswk
_v_clswk:
  lea (-56,sp),sp
  move.l d2,-(sp)
  move.w 64(sp),d2
  lea (26,sp),a0
  move.l a0,6(sp)
  clr.l 10(sp)
  clr.l 14(sp)
  move.l #_vdi_dummy,18(sp)
  move.l #_vdi_dummy,22(sp)
  lea (6,sp),a1
#APP
  movea.l a1,a0
  move.l  a0,d1
  move.l  (a0),a0
  move.l  #131072,(a0)+
  eor.l   d0,d0
  move.l  d0,(a0)+
  move.l  d0,(a0)+
  move.w  d2,(a0)
  move.w  #115,d0
  trap    #2
#NO_APP
  move.l (sp)+,d2
  lea (56,sp),sp
  rts


Now I'm not very good at assembler, but I don't see where any registers are saved or restored (except maybe d2.l)

Or did I get something completely wrong here?

-Helmut