21 |
; * along with this program ; if not, write to the Free Software |
; * along with this program ; if not, write to the Free Software |
22 |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 |
; * |
; * |
24 |
; * $Id: quantize_h263_mmx.asm,v 1.13 2008-12-02 13:44:55 Isibaar Exp $ |
; * $Id: quantize_h263_mmx.asm,v 1.14 2008-12-04 14:41:50 Isibaar Exp $ |
25 |
; * |
; * |
26 |
; ****************************************************************************/ |
; ****************************************************************************/ |
27 |
|
|
90 |
; Code |
; Code |
91 |
;============================================================================= |
;============================================================================= |
92 |
|
|
93 |
SECTION .rotext align=SECTION_ALIGN |
TEXT |
94 |
|
|
95 |
cglobal quant_h263_intra_mmx |
cglobal quant_h263_intra_mmx |
96 |
cglobal quant_h263_intra_sse2 |
cglobal quant_h263_intra_sse2 |
118 |
|
|
119 |
mov _EAX, prm2 ; data |
mov _EAX, prm2 ; data |
120 |
mov TMP0, prm4 ; dcscalar |
mov TMP0, prm4 ; dcscalar |
121 |
movsx _EAX, word [_EAX] ; data[0] |
XVID_MOVSX _EAX, word [_EAX] ; data[0] |
122 |
|
|
123 |
sar TMP0, 1 ; dcscalar /2 |
sar TMP0, 1 ; dcscalar /2 |
124 |
mov TMP1, _EAX |
mov TMP1, _EAX |
250 |
PUSH_XMM6_XMM7 |
PUSH_XMM6_XMM7 |
251 |
mov _EAX, prm2 ; data |
mov _EAX, prm2 ; data |
252 |
|
|
253 |
movsx _EAX, word [_EAX] ; data[0] |
XVID_MOVSX _EAX, word [_EAX] ; data[0] |
254 |
|
|
255 |
mov TMP0,prm4 ; dcscalar |
mov TMP0,prm4 ; dcscalar |
256 |
mov TMP1,_EAX |
mov TMP1,_EAX |
834 |
; deal with DC |
; deal with DC |
835 |
|
|
836 |
mov _EAX, prm2 ; coeff |
mov _EAX, prm2 ; coeff |
837 |
movsx _EAX,word [_EAX] |
XVID_MOVSX _EAX,word [_EAX] |
838 |
imul prm4d ; dcscalar |
imul prm4d ; dcscalar |
839 |
mov TMP1, prm1 ; data |
mov TMP1, prm1 ; data |
840 |
movd xmm0,eax |
movd xmm0,eax |