📄 pix_expand_h.h
字号:
/* ======================================================================== */
/* TEXAS INSTRUMENTS, INC. */
/* */
/* NAME */
/* pix_expand */
/*S S*/
/*S REVISION HISTORY S*/
/*S 15-Oct-2000 Rewrote from scratch . . . . . . . . . J. Zbiciak S*/
/* */
/* USAGE */
/* This routine is C-callable and can be called as: */
/* */
/* void pix_expand_asm */
/* ( */
/* int n, // # of elements // */
/* const unsigned char *restrict in_data, // Input data // */
/* short *restrict out_data // Output data // */
/* ) */
/* */
/* */
/* DESCRIPTION */
/* The code takes an array of bytes and promotes them to half-words */
/* by zero-extension. */
/* */
/* This is the C equivalent of the assembly code, without */
/* restrictions. The assembly code has restrictions, as noted below. */
/* */
/* void pix_expand */
/* ( */
/* int n, */
/* const unsigned char *restrict in_data, */
/* short *restrict out_data */
/* ) */
/* { */
/* int i; */
/* */
/* for (i = 0; i < n; i++) */
/* out_data[i] = in_data[i]; */
/* } */
/* */
/* ASSUMPTIONS */
/* Input and output arrays must be double-word (8-byte) aligned. */
/* */
/* The input must be at least 16 elements long and contain a */
/* multiple of 16 elements. */
/* */
/* NOTE */
/* Interrupts are masked during the entire duration of this */
/* function, as the entire function occurs within branch delay slots. */
/* */
/* MEMORY NOTE */
/* No bank conflicts occur. This is a LITTLE ENDIAN implementation. */
/* */
/* TECHNIQUES */
/* The loop is unrolled 16 times, loading bytes with LDDW. It uses */
/* UNPKHU4 and UNPKLU4 to unpack the data and store the results with */
/* STDW. */
/* */
/* To shave a few extra cycles from the function, the return branch */
/* is issued from within the kernel. */
/* */
/* */
/* CYCLES */
/* cycles = 3 * (n / 16) + 15. */
/* For n = 1072, cycles = 216. */
/* */
/* CODESIZE */
/* 100 bytes. */
/* */
/* ------------------------------------------------------------------------ */
/* Copyright (c) 2000 Texas Instruments, Incorporated. */
/* All Rights Reserved. */
/* ======================================================================== */
#ifndef _PIX_EXPAND_H_H
#define _PIX_EXPAND_H_H 1
void pix_expand_asm
(
int n,
const unsigned char *restrict in_data,
short *restrict out_data
);
#endif
/* ======================================================================== */
/* End of file: pix_expand_h.h */
/* ------------------------------------------------------------------------ */
/* Copyright (c) 2000 Texas Instruments, Incorporated. */
/* All Rights Reserved. */
/* ======================================================================== */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -