[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GEM-Lib 31
Hi,
I had similar problems with the "long" version.
A call to evnt_multi returned a total wrong value.
A part of the assembler output of common.c of GEMLIB 31 produced with
"gcc -O2 -fomit-frame-pointer -fstrength-reduce -save-temps -c common.c"
looks like:
___aes__:
movel a2,sp@-
movel d2,sp@-
#APP
movel sp@(12), d1
lea __contrl,a0 | arrays _contrl and _control overlap
moveq #0, d0
movepl d0, a0@(0) | clear high bytes of control array
movepl d1, a0@(1)
movl #__aesparams, d1
movw #0xc8, d0 | note -- no movq here, it sign extends
trap #2
#NO_APP
movel __intout,d0 <- THIS IS WRONG
movel sp@+,d2 ----------------
movel sp@+,a2
rts
.even
Same with GEMLIB 30:
--------------------
.globl ___aes__
___aes__:
movel a2,sp@-
movel d2,sp@-
#APP
movel sp@(12), d1
lea __contrl,a0 | arrays _contrl and _control overlap
moveq #0, d0
movepl d0, a0@(0) | clear high bytes of control array
movepl d1, a0@(1)
movl #__aesparams, d1
movw #0xc8, d0 | note -- no movq here, it sign extends
trap #2
#NO_APP
movew __intout,d0 <- THIS IS RIGHT
extl d0 ----------------
movel sp@+,d2
movel sp@+,a2
rts
.even
I can see the difference here, but I cannot see any differences in the C-Sources !
So, were is the hanger ?
Dirk