23 lines
1.2 KiB
C
23 lines
1.2 KiB
C
#ifndef COSMOPOLITAN_DSP_MPEG_BLOCKSET_H_
|
|
#define COSMOPOLITAN_DSP_MPEG_BLOCKSET_H_
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
|
|
#define PLM_BLOCK_SET(DEST, DEST_INDEX, DEST_WIDTH, SOURCE_INDEX, \
|
|
SOURCE_WIDTH, BLOCK_SIZE, OP) \
|
|
do { \
|
|
int dest_scan = DEST_WIDTH - BLOCK_SIZE; \
|
|
int source_scan = SOURCE_WIDTH - BLOCK_SIZE; \
|
|
for (int y = 0; y < BLOCK_SIZE; y++) { \
|
|
for (int x = 0; x < BLOCK_SIZE; x++) { \
|
|
DEST[DEST_INDEX] = OP; \
|
|
SOURCE_INDEX++; \
|
|
DEST_INDEX++; \
|
|
} \
|
|
SOURCE_INDEX += source_scan; \
|
|
DEST_INDEX += dest_scan; \
|
|
} \
|
|
} while (false)
|
|
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_DSP_MPEG_BLOCKSET_H_ */
|