Mercurial > libavcodec.hg
comparison x86/dsputil_mmx.c @ 8668:191860960b23 libavcodec
Workaround for gcc 3.4 to align sh properly
author | conrad |
---|---|
date | Mon, 26 Jan 2009 03:40:48 +0000 |
parents | 04423b2f6e0b |
children | 31138c296ac6 |
comparison
equal
deleted
inserted
replaced
8667:5690a6211e8c | 8668:191860960b23 |
---|---|
2489 } | 2489 } |
2490 | 2490 |
2491 static int32_t scalarproduct_int16_sse2(int16_t * v1, int16_t * v2, int order, int shift) | 2491 static int32_t scalarproduct_int16_sse2(int16_t * v1, int16_t * v2, int order, int shift) |
2492 { | 2492 { |
2493 int res = 0; | 2493 int res = 0; |
2494 DECLARE_ALIGNED_16(int64_t, sh); | 2494 DECLARE_ALIGNED_16(xmm_reg, sh); |
2495 x86_reg o = -(order << 1); | 2495 x86_reg o = -(order << 1); |
2496 | 2496 |
2497 v1 += order; | 2497 v1 += order; |
2498 v2 += order; | 2498 v2 += order; |
2499 sh = shift; | 2499 sh.a = shift; |
2500 __asm__ volatile( | 2500 __asm__ volatile( |
2501 "pxor %%xmm7, %%xmm7 \n\t" | 2501 "pxor %%xmm7, %%xmm7 \n\t" |
2502 "1: \n\t" | 2502 "1: \n\t" |
2503 "movdqu (%0,%3), %%xmm0 \n\t" | 2503 "movdqu (%0,%3), %%xmm0 \n\t" |
2504 "movdqu 16(%0,%3), %%xmm1 \n\t" | 2504 "movdqu 16(%0,%3), %%xmm1 \n\t" |