armVCM4P2_Clip8_s.s revision 78e52bfac041d71ce53b5b13c2abf78af742b09d
1e62c1185bee05facc25d1d725434f517261d308bChris Lattner;// 201d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell;// Copyright (C) 2007-2008 ARM Limited 301d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell;// 401d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell;// Licensed under the Apache License, Version 2.0 (the "License"); 501d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell;// you may not use this file except in compliance with the License. 601d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell;// You may obtain a copy of the License at 701d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell;// 801d45827a1e512f3b19ba857772bf02baa3c0c4eJohn Criswell;// http://www.apache.org/licenses/LICENSE-2.0 9e62c1185bee05facc25d1d725434f517261d308bChris Lattner;// 1014d7c59491347a2f8f29e120fd75a4cad42f68e7Chris Lattner;// Unless required by applicable law or agreed to in writing, software 1114d7c59491347a2f8f29e120fd75a4cad42f68e7Chris Lattner;// distributed under the License is distributed on an "AS IS" BASIS, 12e62c1185bee05facc25d1d725434f517261d308bChris Lattner;// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e62c1185bee05facc25d1d725434f517261d308bChris Lattner;// See the License for the specific language governing permissions and 14e62c1185bee05facc25d1d725434f517261d308bChris Lattner;// limitations under the License. 15e62c1185bee05facc25d1d725434f517261d308bChris Lattner;// 16e62c1185bee05facc25d1d725434f517261d308bChris Lattner; /** 17e62c1185bee05facc25d1d725434f517261d308bChris Lattner; * 18e62c1185bee05facc25d1d725434f517261d308bChris Lattner; * File Name: armVCM4P2_Clip8_s.s 19e62c1185bee05facc25d1d725434f517261d308bChris Lattner; * OpenMAX DL: v1.0.2 20e62c1185bee05facc25d1d725434f517261d308bChris Lattner; * Revision: 9641 21e62c1185bee05facc25d1d725434f517261d308bChris Lattner; * Date: Thursday, February 7, 2008 22b5b3c6fc0147b2e59b45f7f2882c7c615bb765aeChris Lattner; * 23028936ada14335bb04f377d46a6261dc4c66dafdJohn Criswell; * 24d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke; * 25d0fde30ce850b78371fd1386338350591f9ff494Brian Gaeke; * 267dda395004eb962cef1c1554b1e8b2ad069760e0Chris Lattner; * Description: 277cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner; * Contains module for Clipping 16 bit value to [0,255] Range 287cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner; */ 297cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner 307cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner INCLUDE omxtypes_s.h 317cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner INCLUDE armCOMM_s.h 327cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner 3340f71134b9fef0ca06c516f033cc9403394a913cChris Lattner 347cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner M_VARIANTS ARM1136JS 357cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner 367dda395004eb962cef1c1554b1e8b2ad069760e0Chris Lattner 371fca5ff62bb2ecb5bfc8974f4dbfc56e9d3ca721Chris Lattner 38e62c1185bee05facc25d1d725434f517261d308bChris Lattner IF ARM1136JS 39e62c1185bee05facc25d1d725434f517261d308bChris Lattner 40e62c1185bee05facc25d1d725434f517261d308bChris Lattner;//Input Arguments 41e62c1185bee05facc25d1d725434f517261d308bChris Lattner 42e62c1185bee05facc25d1d725434f517261d308bChris LattnerpSrc RN 0 43e3a1d054483d6e2551a43232f2c968fc7ce523f2Chris LattnerpDst RN 1 44e62c1185bee05facc25d1d725434f517261d308bChris Lattnerstep RN 2 45e62c1185bee05facc25d1d725434f517261d308bChris Lattner 468e9a9774eb12b5242f74b8ac5b20e0a938ec9c53Chris Lattner;// Local variables 47b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner 48b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattnerx0 RN 3 49a1651900e1772b05afd2280308e9acc5a58cefb8Chris Lattnerx1 RN 4 50b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattnerx2 RN 5 511dba7abdd77e19c230f0426825a5ae4879471dccChris Lattnerx3 RN 6 527cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner 537dda395004eb962cef1c1554b1e8b2ad069760e0Chris LattnerCount RN 14 54e62c1185bee05facc25d1d725434f517261d308bChris Lattner 557dda395004eb962cef1c1554b1e8b2ad069760e0Chris Lattner 56e62c1185bee05facc25d1d725434f517261d308bChris Lattner M_START armVCM4P2_Clip8,r6 57e62c1185bee05facc25d1d725434f517261d308bChris Lattner 58e62c1185bee05facc25d1d725434f517261d308bChris Lattner 59e62c1185bee05facc25d1d725434f517261d308bChris Lattner MOV Count,#8 60e62c1185bee05facc25d1d725434f517261d308bChris Lattnerloop 61e62c1185bee05facc25d1d725434f517261d308bChris Lattner 62e62c1185bee05facc25d1d725434f517261d308bChris Lattner LDMIA pSrc!,{x0, x1} 63e62c1185bee05facc25d1d725434f517261d308bChris Lattner SUBS Count,Count, #1 ;// count down 647cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner LDMIA pSrc!,{x2, x3} 657cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner USAT16 x0, #8, x0 ;// clip two samples to [0,255] 667cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner USAT16 x1, #8, x1 ;// clip two samples to [0,255] 677cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner STRB x0, [pDst] 687cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner MOV x0, x0, LSR #16 697cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner STRB x0, [pDst,#1] 707cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner STRB x1, [pDst,#2] 717cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner MOV x1, x1, LSR #16 72e62c1185bee05facc25d1d725434f517261d308bChris Lattner STRB x1, [pDst,#3] 73e62c1185bee05facc25d1d725434f517261d308bChris Lattner 74e62c1185bee05facc25d1d725434f517261d308bChris Lattner USAT16 x2, #8, x2 ;// clip two samples to [0,255] 75e62c1185bee05facc25d1d725434f517261d308bChris Lattner USAT16 x3, #8, x3 ;// clip two samples to [0,255] 76e62c1185bee05facc25d1d725434f517261d308bChris Lattner STRB x2, [pDst,#4] 77e62c1185bee05facc25d1d725434f517261d308bChris Lattner MOV x2, x2, LSR #16 78e3a1d054483d6e2551a43232f2c968fc7ce523f2Chris Lattner STRB x2, [pDst,#5] 79e62c1185bee05facc25d1d725434f517261d308bChris Lattner STRB x3, [pDst,#6] 80e62c1185bee05facc25d1d725434f517261d308bChris Lattner MOV x3, x3, LSR #16 818e9a9774eb12b5242f74b8ac5b20e0a938ec9c53Chris Lattner STRB x3, [pDst,#7] 82b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner ADD pDst,pDst,step ;// Increment pDst by step value 83b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner 84b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner BGT loop ;// Continue loop until Count reaches 64 85b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner 86b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner M_END 87b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner ENDIF 88b45b3b3cd14faaf5a3ea5226af7e1e3cd653e6cbChris Lattner 89e62c1185bee05facc25d1d725434f517261d308bChris Lattner END 907cf0ce4b8d122575c3348b5fa4947014c3d8432dChris Lattner