pikapython/package/Arm2D/__arm_2d_copy_helium.inc
2021-11-09 22:19:51 +08:00

810 lines
37 KiB
C++

/*
* Copyright (C) 2010-2021 Arm Limited or its affiliates. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* ----------------------------------------------------------------------
* Project: Arm-2D Library
* Title: __arm_2d_copy_helium.inc
* Description: c code template for copy like operations
*
* $Date: 21 Sep 2021
* $Revision: V.0.0.2
*
* -------------------------------------------------------------------- */
#ifndef __API_COLOUR
# error You have to define __API_COLOUR before using this c template
#endif
#ifndef __API_INT_TYPE
# error You have to define the __API_INT_TYPE before using this c template
#endif
#ifndef __API_INT_TYPE_BIT_NUM
# error You have to define the __API_INT_TYPE_BIT_NUM before using this c template
#endif
#undef ____ARM_2D_FUNC
#undef ___ARM_2D_FUNC
#undef __ARM_2D_FUNC
#define ____ARM_2D_FUNC(__NAME, __COLOUR) __arm_2d_impl_##__COLOUR##_##__NAME
#define ___ARM_2D_FUNC(__NAME, __COLOUR) ____ARM_2D_FUNC(__NAME, __COLOUR)
#define __ARM_2D_FUNC(__NAME) ___ARM_2D_FUNC(__NAME, __API_COLOUR)
#undef ____ARM_2D_TYPE
#undef ___ARM_2D_TYPE
#undef __ARM_2D_TYPE
#define ____ARM_2D_TYPE(__NAME, __COLOUR) arm_2d_##__COLOUR##_##__NAME
#define ___ARM_2D_TYPE(__NAME, __COLOUR) ____ARM_2D_TYPE(__NAME, __COLOUR)
#define __ARM_2D_TYPE(__NAME) ___ARM_2D_TYPE(__NAME, __API_COLOUR)
/*----------------------------------------------------------------------------*
* Paving *
*----------------------------------------------------------------------------*/
__OVERRIDE_WEAK
void __ARM_2D_FUNC(2x2_paving)(const __API_INT_TYPE *__RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairRows,
uint16_t tilePairCols)
{
__ARM_2D_PAVING_2x2(__API_INT_TYPE_BIT_NUM,
PAVING_DIRECT_START_OFFS(_, _),
PAVING_DIRECT_READ_DIR,
PAVING_DIRECT_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_DIRECT_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(2x2_paving_x_mirror)(const __API_INT_TYPE *__RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairRows,
uint16_t tilePairCols)
{
__ARM_2D_PAVING_2x2(__API_INT_TYPE_BIT_NUM,
PAVING_X_MIRROR_START_OFFS(_, _),
PAVING_X_MIRROR_READ_DIR,
PAVING_X_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_X_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(2x2_paving_y_mirror)(const __API_INT_TYPE *__RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairRows,
uint16_t tilePairCols)
{
__ARM_2D_PAVING_2x2(__API_INT_TYPE_BIT_NUM,
PAVING_Y_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_Y_MIRROR_READ_DIR,
PAVING_Y_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_Y_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(2x2_paving_xy_mirror)(const __API_INT_TYPE *__RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairRows,
uint16_t tilePairCols)
{
__ARM_2D_PAVING_2x2(__API_INT_TYPE_BIT_NUM,
PAVING_XY_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_XY_MIRROR_READ_DIR,
PAVING_XY_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_XY_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(1x2_paving)( const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint32_t destWidth,
uint16_t tilePairRows)
{
__ARM_2D_PAVING_1x2(__API_INT_TYPE_BIT_NUM,
PAVING_DIRECT_START_OFFS(_, _),
PAVING_DIRECT_READ_DIR,
PAVING_DIRECT_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_DIRECT_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(1x2_paving_x_mirror)(const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint32_t destWidth,
uint16_t tilePairRows)
{
__ARM_2D_PAVING_1x2(__API_INT_TYPE_BIT_NUM,
PAVING_X_MIRROR_START_OFFS(_, _),
PAVING_X_MIRROR_READ_DIR,
PAVING_X_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_X_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(1x2_paving_y_mirror)(const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint32_t destWidth,
uint16_t tilePairRows)
{
__ARM_2D_PAVING_1x2(__API_INT_TYPE_BIT_NUM,
PAVING_Y_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_Y_MIRROR_READ_DIR,
PAVING_Y_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_Y_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(1x2_paving_xy_mirror)(const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint32_t destWidth,
uint16_t tilePairRows)
{
__ARM_2D_PAVING_1x2(__API_INT_TYPE_BIT_NUM,
PAVING_XY_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_XY_MIRROR_READ_DIR,
PAVING_XY_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_XY_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(2x1_paving)( const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairCols,
uint16_t destHeight)
{
__ARM_2D_PAVING_2x1(__API_INT_TYPE_BIT_NUM,
PAVING_DIRECT_START_OFFS(_, _),
PAVING_DIRECT_READ_DIR,
PAVING_DIRECT_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_DIRECT_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(2x1_paving_x_mirror)(const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairCols,
uint16_t destHeight)
{
__ARM_2D_PAVING_2x1(__API_INT_TYPE_BIT_NUM,
PAVING_X_MIRROR_START_OFFS(_, _),
PAVING_X_MIRROR_READ_DIR,
PAVING_X_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_X_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(2x1_paving_y_mirror)(const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairCols,
uint16_t destHeight)
{
__ARM_2D_PAVING_2x1(__API_INT_TYPE_BIT_NUM,
PAVING_Y_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_Y_MIRROR_READ_DIR,
PAVING_Y_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_Y_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(2x1_paving_xy_mirror)(const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairCols,
uint16_t destHeight)
{
__ARM_2D_PAVING_2x1(__API_INT_TYPE_BIT_NUM,
PAVING_XY_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_XY_MIRROR_READ_DIR,
PAVING_XY_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_XY_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(1x1_paving)(const __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
const arm_2d_size_t * __RESTRICT ptSrcCopySize,
const arm_2d_size_t * __RESTRICT ptDstCopySize)
{
__ARM_2D_PAVING_1x1(__API_INT_TYPE_BIT_NUM,
PAVING_DIRECT_START_OFFS(_, _),
PAVING_DIRECT_READ_DIR,
PAVING_DIRECT_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_DIRECT_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(1x1_paving_x_mirror)(
const __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
const arm_2d_size_t * __RESTRICT ptSrcCopySize,
const arm_2d_size_t * __RESTRICT ptDstCopySize)
{
__ARM_2D_PAVING_1x1(__API_INT_TYPE_BIT_NUM,
PAVING_X_MIRROR_START_OFFS(_, _),
PAVING_X_MIRROR_READ_DIR, PAVING_X_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_X_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(1x1_paving_y_mirror)(
const __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
const arm_2d_size_t * __RESTRICT ptSrcCopySize,
const arm_2d_size_t * __RESTRICT ptDstCopySize)
{
__ARM_2D_PAVING_1x1(__API_INT_TYPE_BIT_NUM,
PAVING_Y_MIRROR_START_OFFS(iSourceStride, ptSrcCopySize->iHeight),
PAVING_Y_MIRROR_READ_DIR,
PAVING_Y_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_Y_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(1x1_paving_xy_mirror)(const __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
const arm_2d_size_t * __RESTRICT ptSrcCopySize,
const arm_2d_size_t * __RESTRICT ptDstCopySize)
{
__ARM_2D_PAVING_1x1(__API_INT_TYPE_BIT_NUM,
PAVING_XY_MIRROR_START_OFFS(iSourceStride, ptSrcCopySize->iHeight),
PAVING_XY_MIRROR_READ_DIR,
PAVING_XY_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_XY_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM));
}
/*----------------------------------------------------------------------------*
* Paving with colour masking *
*----------------------------------------------------------------------------*/
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_2x2_paving)(const __API_INT_TYPE *__RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairRows,
uint16_t tilePairCols,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_2x2(__API_INT_TYPE_BIT_NUM,
PAVING_DIRECT_START_OFFS(_, _),
PAVING_DIRECT_READ_DIR,
PAVING_DIRECT_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_DIRECT_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_2x2_paving_x_mirror)(
const __API_INT_TYPE *__RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairRows,
uint16_t tilePairCols,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_2x2(__API_INT_TYPE_BIT_NUM,
PAVING_X_MIRROR_START_OFFS(_, _),
PAVING_X_MIRROR_READ_DIR,
PAVING_X_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_X_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_2x2_paving_y_mirror)(
const __API_INT_TYPE *__RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairRows,
uint16_t tilePairCols,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_2x2(__API_INT_TYPE_BIT_NUM,
PAVING_Y_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_Y_MIRROR_READ_DIR,
PAVING_Y_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_Y_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_2x2_paving_xy_mirror)(
const __API_INT_TYPE *__RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairRows,
uint16_t tilePairCols,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_2x2(__API_INT_TYPE_BIT_NUM,
PAVING_XY_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_XY_MIRROR_READ_DIR,
PAVING_XY_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_XY_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_1x2_paving)(
const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint32_t destWidth,
uint16_t tilePairRows,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_1x2(__API_INT_TYPE_BIT_NUM,
PAVING_DIRECT_START_OFFS(_, _),
PAVING_DIRECT_READ_DIR,
PAVING_DIRECT_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_DIRECT_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_1x2_paving_x_mirror)(
const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint32_t destWidth,
uint16_t tilePairRows,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_1x2(__API_INT_TYPE_BIT_NUM,
PAVING_X_MIRROR_START_OFFS(_, _),
PAVING_X_MIRROR_READ_DIR,
PAVING_X_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_X_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_1x2_paving_y_mirror)(
const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint32_t destWidth,
uint16_t tilePairRows,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_1x2(__API_INT_TYPE_BIT_NUM,
PAVING_Y_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_Y_MIRROR_READ_DIR,
PAVING_Y_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_Y_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_1x2_paving_xy_mirror)(
const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint32_t destWidth,
uint16_t tilePairRows,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_1x2(__API_INT_TYPE_BIT_NUM,
PAVING_XY_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_XY_MIRROR_READ_DIR,
PAVING_XY_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_XY_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_2x1_paving)(
const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairCols,
uint16_t destHeight,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_2x1(__API_INT_TYPE_BIT_NUM,
PAVING_DIRECT_START_OFFS(_, _),
PAVING_DIRECT_READ_DIR,
PAVING_DIRECT_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_DIRECT_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_2x1_paving_x_mirror)(
const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairCols,
uint16_t destHeight,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_2x1(__API_INT_TYPE_BIT_NUM,
PAVING_X_MIRROR_START_OFFS(_, _),
PAVING_X_MIRROR_READ_DIR,
PAVING_X_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_X_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_2x1_paving_y_mirror)(
const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairCols,
uint16_t destHeight,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_2x1(__API_INT_TYPE_BIT_NUM,
PAVING_Y_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_Y_MIRROR_READ_DIR,
PAVING_Y_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_Y_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_2x1_paving_xy_mirror)(
const __API_INT_TYPE * __RESTRICT pSourceBase,
int16_t iSourceStride,
const arm_2d_size_t * __RESTRICT ptSourceSize,
__API_INT_TYPE * __RESTRICT pTargetBase,
int16_t iTargetStride,
uint16_t tilePairCols,
uint16_t destHeight,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_2x1(__API_INT_TYPE_BIT_NUM,
PAVING_XY_MIRROR_START_OFFS(iSourceStride, ptSourceSize->iHeight),
PAVING_XY_MIRROR_READ_DIR,
PAVING_XY_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_XY_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_1x1_paving)(
const __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
const arm_2d_size_t * __RESTRICT ptSrcCopySize,
const arm_2d_size_t * __RESTRICT ptDstCopySize,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_1x1(__API_INT_TYPE_BIT_NUM,
PAVING_DIRECT_START_OFFS(_, _),
PAVING_DIRECT_READ_DIR,
PAVING_DIRECT_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_DIRECT_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_1x1_paving_x_mirror)(
const __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
const arm_2d_size_t * __RESTRICT ptSrcCopySize,
const arm_2d_size_t * __RESTRICT ptDstCopySize,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_1x1(__API_INT_TYPE_BIT_NUM,
PAVING_X_MIRROR_START_OFFS(_, _),
PAVING_X_MIRROR_READ_DIR,
PAVING_X_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_X_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_1x1_paving_y_mirror)(
const __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
const arm_2d_size_t * __RESTRICT ptSrcCopySize,
const arm_2d_size_t * __RESTRICT ptDstCopySize,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_1x1(__API_INT_TYPE_BIT_NUM,
PAVING_Y_MIRROR_START_OFFS(iSourceStride, ptSrcCopySize->iHeight),
PAVING_Y_MIRROR_READ_DIR,
PAVING_Y_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_Y_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_1x1_paving_xy_mirror)(const __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
const arm_2d_size_t * __RESTRICT ptSrcCopySize,
const arm_2d_size_t * __RESTRICT ptDstCopySize,
__API_INT_TYPE Colour)
{
__ARM_2D_PAVING_1x1(__API_INT_TYPE_BIT_NUM,
PAVING_XY_MIRROR_START_OFFS(iSourceStride, ptSrcCopySize->iHeight),
PAVING_XY_MIRROR_READ_DIR,
PAVING_XY_MIRROR_SETUP_COPY(__API_INT_TYPE_BIT_NUM),
PAVING_XY_MIRROR_LOAD_PATTERN(__API_INT_TYPE_BIT_NUM),
CMP_CL_MSK(__API_INT_TYPE_BIT_NUM, Colour));
}
/*----------------------------------------------------------------------------*
* Copy with colour masking *
*----------------------------------------------------------------------------*/
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_copy)(
__API_INT_TYPE *__RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE *__RESTRICT pTarget,
int16_t iTargetStride,
arm_2d_size_t *__RESTRICT ptCopySize,
__API_INT_TYPE Colour)
{
__ARM_2D_FUNC(cl_key_1x1_paving)( pSource,
iSourceStride,
pTarget,
iTargetStride,
ptCopySize,
ptCopySize,
Colour);
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_copy_y_mirror)(
__API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
arm_2d_size_t * __RESTRICT ptCopySize,
__API_INT_TYPE Colour)
{
__ARM_2D_FUNC(cl_key_1x1_paving_y_mirror)( pSource,
iSourceStride,
pTarget,
iTargetStride,
ptCopySize,
ptCopySize,
Colour);
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_copy_x_mirror)(
__API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
arm_2d_size_t * __RESTRICT ptCopySize,
__API_INT_TYPE Colour)
{
__ARM_2D_FUNC(cl_key_1x1_paving_x_mirror)( pSource,
iSourceStride,
pTarget,
iTargetStride,
ptCopySize,
ptCopySize,
Colour);
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(cl_key_copy_xy_mirror)(
__API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
arm_2d_size_t * __RESTRICT ptCopySize,
__API_INT_TYPE Colour)
{
__ARM_2D_FUNC(cl_key_1x1_paving_xy_mirror)( pSource,
iSourceStride,
pTarget,
iTargetStride,
ptCopySize,
ptCopySize,
Colour);
}
/*----------------------------------------------------------------------------*
* Copy *
*----------------------------------------------------------------------------*/
#if __API_INT_TYPE_BIT_NUM == 8
__OVERRIDE_WEAK
void __ARM_2D_FUNC(copy)( __API_INT_TYPE *__RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE *__RESTRICT pTarget,
int16_t iTargetStride,
arm_2d_size_t *__RESTRICT ptCopySize)
{
__ARM_2D_FUNC(1x1_paving)( pSource,
iSourceStride,
pTarget,
iTargetStride,
ptCopySize,
ptCopySize);
}
#endif
/*----------------------------------------------------------------------------*
* Copy with mirroring *
*----------------------------------------------------------------------------*/
__OVERRIDE_WEAK
void __ARM_2D_FUNC(copy_y_mirror)( __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
arm_2d_size_t * __RESTRICT ptCopySize)
{
__ARM_2D_FUNC(1x1_paving_y_mirror)( pSource,
iSourceStride,
pTarget,
iTargetStride,
ptCopySize,
ptCopySize);
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(copy_x_mirror)(__API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
arm_2d_size_t * __RESTRICT ptCopySize)
{
__ARM_2D_FUNC(1x1_paving_x_mirror)( pSource,
iSourceStride,
pTarget,
iTargetStride,
ptCopySize,
ptCopySize);
}
__OVERRIDE_WEAK
void __ARM_2D_FUNC(copy_xy_mirror)( __API_INT_TYPE * __RESTRICT pSource,
int16_t iSourceStride,
__API_INT_TYPE * __RESTRICT pTarget,
int16_t iTargetStride,
arm_2d_size_t * __RESTRICT ptCopySize)
{
__ARM_2D_FUNC(1x1_paving_xy_mirror)(pSource,
iSourceStride,
pTarget,
iTargetStride,
ptCopySize,
ptCopySize);
}
#undef ____ARM_2D_FUNC
#undef ___ARM_2D_FUNC
#undef __ARM_2D_FUNC
#undef __API_COLOUR
#undef __API_INT_TYPE
#undef __API_INT_TYPE_BIT_NUM
#undef ____ARM_2D_TYPE
#undef ___ARM_2D_TYPE
#undef __ARM_2D_TYPE