56 register int misal = (
unsigned long) blocks & 0x00000010, i = 0;
59 ((
unsigned long *) blocks)[0] = 0
L;
60 ((
unsigned long *) blocks)[1] = 0
L;
61 ((
unsigned long *) blocks)[2] = 0
L;
62 ((
unsigned long *) blocks)[3] = 0
L;
65 for (; i <
sizeof(int16_t) * 6 * 64 - 31; i += 32)
66 __asm__
volatile (
"dcbz %0,%1" ::
"b" (blocks),
"r" (i) :
"memory");
68 ((
unsigned long *) blocks)[188] = 0
L;
69 ((
unsigned long *) blocks)[189] = 0
L;
70 ((
unsigned long *) blocks)[190] = 0
L;
71 ((
unsigned long *) blocks)[191] = 0
L;
81 register int misal = (
unsigned long) blocks & 0x0000007f, i = 0;
87 memset(blocks, 0,
sizeof(int16_t) * 6 * 64);
89 for (; i <
sizeof(int16_t) * 6 * 64; i += 128)
90 __asm__
volatile (
"dcbzl %0,%1" ::
"b" (blocks),
"r" (i) :
"memory");
93 memset(blocks, 0,
sizeof(int16_t) * 6 * 64);
105 register char *fakedata =
av_malloc(1024);
106 register char *fakedata_middle;
107 register long zero = 0, i = 0;
112 fakedata_middle = fakedata + 512;
114 memset(fakedata, 0xFF, 1024);
118 __asm__
volatile (
"dcbzl %0, %1" ::
"b" (fakedata_middle),
"r" (zero));
120 for (i = 0; i < 1024; i++)
121 if (fakedata[i] == (
char) 0)
131 static void clear_block_altivec(int16_t *
block)
void(* clear_block)(int16_t *block)
Memory handling functions.
static long check_dcbzl_effect(void)
void(* clear_blocks)(int16_t *blocks)
Macro definitions for various function/variable attributes.
#define PPC_ALTIVEC(flags)
static void clear_blocks_dcbz128_ppc(int16_t *blocks)
static void clear_blocks_dcbz32_ppc(int16_t *blocks)
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
Contains misc utility macros and inline functions.
av_cold void ff_blockdsp_init_ppc(BlockDSPContext *c)