1; /** 2; * 3; * File Name: armVCM4P2_Clip8_s.s 4; * OpenMAX DL: v1.0.2 5; * Revision: 9641 6; * Date: Thursday, February 7, 2008 7; * 8; * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. 9; * 10; * 11; * 12; * Description: 13; * Contains module for Clipping 16 bit value to [0,255] Range 14; */ 15 16 INCLUDE omxtypes_s.h 17 INCLUDE armCOMM_s.h 18 19 20 M_VARIANTS ARM1136JS 21 22 23 24 IF ARM1136JS 25 26;//Input Arguments 27 28pSrc RN 0 29pDst RN 1 30step RN 2 31 32;// Local variables 33 34x0 RN 3 35x1 RN 4 36x2 RN 5 37x3 RN 6 38 39Count RN 14 40 41 42 M_START armVCM4P2_Clip8,r6 43 44 45 MOV Count,#8 46loop 47 48 LDMIA pSrc!,{x0, x1} 49 SUBS Count,Count, #1 ;// count down 50 LDMIA pSrc!,{x2, x3} 51 USAT16 x0, #8, x0 ;// clip two samples to [0,255] 52 USAT16 x1, #8, x1 ;// clip two samples to [0,255] 53 STRB x0, [pDst] 54 MOV x0, x0, LSR #16 55 STRB x0, [pDst,#1] 56 STRB x1, [pDst,#2] 57 MOV x1, x1, LSR #16 58 STRB x1, [pDst,#3] 59 60 USAT16 x2, #8, x2 ;// clip two samples to [0,255] 61 USAT16 x3, #8, x3 ;// clip two samples to [0,255] 62 STRB x2, [pDst,#4] 63 MOV x2, x2, LSR #16 64 STRB x2, [pDst,#5] 65 STRB x3, [pDst,#6] 66 MOV x3, x3, LSR #16 67 STRB x3, [pDst,#7] 68 ADD pDst,pDst,step ;// Increment pDst by step value 69 70 BGT loop ;// Continue loop until Count reaches 64 71 72 M_END 73 ENDIF 74 75 END 76