diff options
author | Guenter Bartsch <guenter@users.sourceforge.net> | 2002-06-04 23:07:56 +0000 |
---|---|---|
committer | Guenter Bartsch <guenter@users.sourceforge.net> | 2002-06-04 23:07:56 +0000 |
commit | b971db9ab0beb88edc4ceb23009619488f0c5be5 (patch) | |
tree | b92bc05159629334d964960b422dc2d7564889d9 /src/libmpeg2/idct_altivec.c | |
parent | 82f6597c4efac9e7608b20e9cfb6c45b613b7174 (diff) | |
download | xine-lib-b971db9ab0beb88edc4ceb23009619488f0c5be5.tar.gz xine-lib-b971db9ab0beb88edc4ceb23009619488f0c5be5.tar.bz2 |
libmpeg2 patches for gcc3.1 from michel
CVS patchset: 2018
CVS date: 2002/06/04 23:07:56
Diffstat (limited to 'src/libmpeg2/idct_altivec.c')
-rw-r--r-- | src/libmpeg2/idct_altivec.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/libmpeg2/idct_altivec.c b/src/libmpeg2/idct_altivec.c index 1d20f56b4..b982238e7 100644 --- a/src/libmpeg2/idct_altivec.c +++ b/src/libmpeg2/idct_altivec.c @@ -243,6 +243,22 @@ void mpeg2_idct_copy_altivec (int16_t * block, uint8_t * dest, int stride) "# lwz %r0, 132(%r1) \n" "# mtlr %r0 \n" "# la %r1, 128(%r1) \n" + " vxor %v1, %v1, %v1 \n" + " addi %r9, %r3, 16 \n" + " stvx %v1, 0, %r3 \n" + " stvx %v1, 0, %r9 \n" + " addi %r11, %r3, 32 \n" + " stvx %v1, 0, %r11 \n" + " addi %r9, %r3, 48 \n" + " stvx %v1, 0, %r9 \n" + " addi %r11, %r3, -64 \n" + " stvx %v1, 0, %r11 \n" + " addi %r9, %r3, -48 \n" + " stvx %v1, 0, %r9 \n" + " addi %r11, %r3, -32 \n" + " stvx %v1, 0, %r11 \n" + " addi %r3, %r3, -16 \n" + " stvx %v1, 0, %r3 \n" ); } @@ -463,6 +479,21 @@ void mpeg2_idct_add_altivec (int16_t * block, uint8_t * dest, int stride) "# lwz %r0, 196(%r1) \n" "# mtlr %r0 \n" "# la %r1, 192(%r1) \n" + " addi %r9, %r3, 16 \n" + " stvx %v1, 0, %r3 \n" + " stvx %v1, 0, %r9 \n" + " addi %r11, %r3, 32 \n" + " stvx %v1, 0, %r11 \n" + " addi %r9, %r3, 48 \n" + " stvx %v1, 0, %r9 \n" + " addi %r11, %r3, -64 \n" + " stvx %v1, 0, %r11 \n" + " addi %r9, %r3, -48 \n" + " stvx %v1, 0, %r9 \n" + " addi %r11, %r3, -32 \n" + " stvx %v1, 0, %r11 \n" + " addi %r3, %r3, -16 \n" + " stvx %v1, 0, %r3 \n" ); } @@ -625,6 +656,7 @@ void mpeg2_idct_copy_altivec (vector_s16_t * block, unsigned char * dest, COPY (dest, vx5) dest += stride; COPY (dest, vx6) dest += stride; COPY (dest, vx7) + memset (block, 0, 64 * sizeof (signed short)); } void mpeg2_idct_add_altivec (vector_s16_t * block, unsigned char * dest, @@ -661,6 +693,9 @@ void mpeg2_idct_add_altivec (vector_s16_t * block, unsigned char * dest, ADD (dest, vx5, perm1) dest += stride; ADD (dest, vx6, perm0) dest += stride; ADD (dest, vx7, perm1) + memset (block, 0, 64 * sizeof (signed short)); } #endif /* __ALTIVEC__ */ + + |