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

[OpenDivX] libdecore for BeOS



going by a cvs update as of a few minutes ago, the only thing needed to be 
changed for this to work within the BeOS is to add a variant of the function 
clearblock() in mp4_block.c and to use non-mmx code  (BeOS uses GCC and it's 
inline is AT&T syntax).

For the clearblock() code, you could use the Linux code, but here is an 
inline asm variant of it in AT&T syntax:

#ifdef __BEOS__
static inline void clearblock (short *psblock) {
	asm ("
		movl	$-16, %%edx
		movl	%0, %%esi

		pxor	%%mm0, %%mm0
0:	
		movq	%%mm0, (%%esi)
		add		$8, %%esi
		inc		%%edx
		jnz		0b
		emms"
		: /* no outputs */
		: "g" (psblock)
		: "edx", "esi"
		);
}

/*
static __inline void clearblock(short * psblock)
{
	int i;

	for (i = 0; i < 64; i++) {
		psblock[i] = 0;
	}
}
*/

#endif // __BEOS__


I just converted the WIN32 inline asm over to AT&T syntax, this should prolly 
work for Linux as well.

Jonathan Tarbox

note: my involvement in this is personal, has nothing to do with Be, Inc.


_______________________________________________
OpenDivX mailing list
[email protected]
http://lists.projectmayo.com/mailman/listinfo/opendivx


Reply To Poster

Local References / HOW-TO / FAQs