[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