57 register int misal = (
unsigned long) blocks & 0x00000010, i = 0;
60 ((
unsigned long *) blocks)[0] = 0
L;
61 ((
unsigned long *) blocks)[1] = 0
L;
62 ((
unsigned long *) blocks)[2] = 0
L;
63 ((
unsigned long *) blocks)[3] = 0
L;
66 for (; i <
sizeof(int16_t) * 6 * 64 - 31; i += 32)
67 __asm__
volatile (
"dcbz %0,%1" ::
"b" (blocks),
"r" (i) :
"memory");
69 ((
unsigned long *) blocks)[188] = 0
L;
70 ((
unsigned long *) blocks)[189] = 0
L;
71 ((
unsigned long *) blocks)[190] = 0
L;
72 ((
unsigned long *) blocks)[191] = 0
L;
82 register int misal = (
unsigned long) blocks & 0x0000007f, i = 0;
88 memset(blocks, 0,
sizeof(int16_t) * 6 * 64);
90 for (; i <
sizeof(int16_t) * 6 * 64; i += 128)
91 __asm__
volatile (
"dcbzl %0,%1" ::
"b" (blocks),
"r" (i) :
"memory");
94 memset(blocks, 0,
sizeof(int16_t) * 6 * 64);
106 register char *fakedata =
av_malloc(1024);
107 register char *fakedata_middle;
108 register long zero = 0, i = 0;
113 fakedata_middle = fakedata + 512;
115 memset(fakedata, 0xFF, 1024);
119 __asm__
volatile (
"dcbzl %0, %1" ::
"b" (fakedata_middle),
"r" (zero));
121 for (i = 0; i < 1024; i++)
122 if (fakedata[i] == (
char) 0)
132 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.
av_cold void ff_blockdsp_init_ppc(BlockDSPContext *c)