/* This C language subroutine copies one range of memory into another. The Run Time Library for the C Language. Gordon A. Sterling (617) 461 - 3076 DSP Development Tools Engineering Created on 4/30/90 Updated on 5/94 by AS Updated on 2/95 by AS - separated polymorphic functions #include
void *memcpy(void *s1, const void *s2, size_t size); */ #include "lib_glob.h" #include "str_glob.h" .SEGMENT/CODE Code_Space_Name; .FILE RTL_FILENAME; .GLOBAL _memcpy; .GLOBAL ___memcpyDD; _memcpy: ___memcpyDD: copy_core: R12=PASS R12, R1=dma_i; /*Test for zero input*/ IF EQ JUMP (PC, restore_state) (DB); FETCH_RETURN dm_to_dm_copy: dm_ptr=R8; /*Point to input*/ dma_i=R4; /*Point to output*/ LCNTR=R12, DO dm_dm UNTIL LCE; /*Loop n times*/ R2=DM(dm_ptr,1); dm_dm: DM(dma_i,1)=R2; restore_state: R0=PASS R4, dma_i=R1; RETURN (DB); RESTORE_STACK RESTORE_FRAME .ENDSEG;