Microsoft-3D-Movie-Maker/BREN/INC/BLOCKOPS.H

42 lines
1021 B
C

/*
* Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.
*
* $Id: blockops.h 1.6 1995/02/22 21:36:56 sam Exp $
* $Locker: $
*
* Memory operations, block fill, block copy etc. Thse are local to the
* library becuase some compiler's versions are not that good.
*/
#if defined(__WATCOMC__)
/*
* Inline block operations for Watcom C
*/
void BrIBlockFill(void *dest_ptr, int value, int dwords);
#pragma aux BrIBlockFill = \
"rep stosd" \
parm [edi] [eax] [ecx] ;
void BrIBlockCopy(void *dest_ptr, void *src_ptr, int dwords);
#pragma aux BrIBlockCopy = \
"rep movsd" \
parm [edi] [esi] [ecx] ;
/* Inline copy near block to far block
*/
void BrIFarBlockCopy(void __far *dest_ptr, void *src_ptr, int dwords);
#pragma aux BrIFarBlockCopy = \
"push es"\
"mov es,dx"\
"rep movsd"\
"pop es"\
parm [dx edi] [esi] [ecx] ;
#define BrBlockFill(d,v,c) BrIBlockFill(d,v,c)
#define BrBlockCopy(d,s,c) BrIBlockCopy(d,s,c)
#define BrFarBlockCopy(d,s,c) BrIFarBlockCopy(d,s,c)
#endif