Commit faafa4c8 authored by lvqcl's avatar lvqcl Committed by Erik de Castro Lopo
Browse files

Cosmetic changes in lpc_asm.nasm and utf8.c

parent 0897458f
...@@ -637,7 +637,7 @@ cident FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old ...@@ -637,7 +637,7 @@ cident FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old
sub esp, 32 sub esp, 32
;ASSERT(lag > 0) ;ASSERT(lag > 0)
;ASSERT(lag <= 12) ;ASSERT(lag <= 16)
;ASSERT(lag <= data_len) ;ASSERT(lag <= data_len)
;ASSERT(data_len > 0) ;ASSERT(data_len > 0)
...@@ -654,7 +654,7 @@ cident FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old ...@@ -654,7 +654,7 @@ cident FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old
movss xmm0, [eax] ; xmm0 = 0,0,0,data[0] movss xmm0, [eax] ; xmm0 = 0,0,0,data[0]
add eax, 4 add eax, 4
movaps xmm1, xmm0 ; xmm1 = 0,0,0,data[0] movaps xmm1, xmm0 ; xmm1 = 0,0,0,data[0]
shufps xmm0, xmm0, 0 ; xmm0 == data[sample],data[sample],data[sample],data[sample] = data[0],data[0],data[0],data[0] shufps xmm0, xmm0, 0 ; xmm0 == data[sample],data[sample],data[sample],data[sample] = data[0],data[0],data[0],data[0]
xorps xmm2, xmm2 ; xmm2 = 0,0,0,0 xorps xmm2, xmm2 ; xmm2 = 0,0,0,0
xorps xmm3, xmm3 ; xmm3 = 0,0,0,0 xorps xmm3, xmm3 ; xmm3 = 0,0,0,0
xorps xmm4, xmm4 ; xmm4 = 0,0,0,0 xorps xmm4, xmm4 ; xmm4 = 0,0,0,0
...@@ -666,7 +666,7 @@ cident FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old ...@@ -666,7 +666,7 @@ cident FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old
ALIGN 16 ALIGN 16
.loop_start: .loop_start:
; start by reading the next sample ; start by reading the next sample
movss xmm0, [eax] ; xmm0 = 0,0,0,data[sample] movss xmm0, [eax] ; xmm0 = 0,0,0,data[sample]
add eax, 4 add eax, 4
shufps xmm0, xmm0, 0 ; xmm0 = data[sample],data[sample],data[sample],data[sample] shufps xmm0, xmm0, 0 ; xmm0 = data[sample],data[sample],data[sample],data[sample]
...@@ -699,7 +699,7 @@ cident FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old ...@@ -699,7 +699,7 @@ cident FLAC__lpc_compute_autocorrelation_asm_ia32_sse_lag_16_old
jnz .loop_start jnz .loop_start
.loop_end: .loop_end:
; store autoc ; store autoc
mov edx, [ebp + 20] ; edx == autoc mov edx, [ebp + 20] ; edx == autoc
movups [edx], xmm5 movups [edx], xmm5
movups [edx + 16], xmm6 movups [edx + 16], xmm6
movaps xmm5, [esp] movaps xmm5, [esp]
...@@ -1520,7 +1520,7 @@ cident FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32 ...@@ -1520,7 +1520,7 @@ cident FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32
mov ebx, [esp + 24] ; ebx = data_len mov ebx, [esp + 24] ; ebx = data_len
test ebx, ebx test ebx, ebx
jz near .end ; do nothing if data_len == 0 jz near .end ; do nothing if data_len == 0
.begin: .begin:
mov eax, [esp + 32] ; eax = order mov eax, [esp + 32] ; eax = order
...@@ -1530,13 +1530,13 @@ cident FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32 ...@@ -1530,13 +1530,13 @@ cident FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32
mov esi, [esp + 40] ; esi = residual[] mov esi, [esp + 40] ; esi = residual[]
mov edi, [esp + 20] ; edi = data[] mov edi, [esp + 20] ; edi = data[]
mov ecx, [esp + 28] ; ecx = qlp_coeff[] mov ecx, [esp + 28] ; ecx = qlp_coeff[]
mov ebp, [ecx] ; ebp = qlp_coeff[0] mov ebp, [ecx] ; ebp = qlp_coeff[0]
mov eax, [edi - 4] ; eax = data[-1] mov eax, [edi - 4] ; eax = data[-1]
mov ecx, [esp + 36] ; cl = lp_quantization mov ecx, [esp + 36] ; cl = lp_quantization
ALIGN 16 ALIGN 16
.i_1_loop_i: .i_1_loop_i:
imul ebp ; edx:eax = qlp_coeff[0] * (FLAC__int64)data[i-1] imul ebp ; edx:eax = qlp_coeff[0] * (FLAC__int64)data[i-1]
shrd eax, edx, cl ; 0 <= lp_quantization <= 15 shrd eax, edx, cl ; 0 <= lp_quantization <= 15
neg eax neg eax
add eax, [edi] add eax, [edi]
mov [esi], eax mov [esi], eax
...@@ -1577,15 +1577,15 @@ cident FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32 ...@@ -1577,15 +1577,15 @@ cident FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32
;edi = data[] ;edi = data[]
;ebp = @address ;ebp = @address
mov eax, [ebx + 124] ; eax = qlp_coeff[31] mov eax, [ebx + 124] ; eax = qlp_coeff[31]
imul dword [edi - 128] ; edx:eax = qlp_coeff[31] * data[i-32] imul dword [edi - 128] ; edx:eax = qlp_coeff[31] * data[i-32]
add ecx, eax add ecx, eax
adc esi, edx ; sum += qlp_coeff[31] * data[i-32] adc esi, edx ; sum += qlp_coeff[31] * data[i-32]
mov eax, [ebx + 120] ; eax = qlp_coeff[30] mov eax, [ebx + 120] ; eax = qlp_coeff[30]
imul dword [edi - 124] ; edx:eax = qlp_coeff[30] * data[i-31] imul dword [edi - 124] ; edx:eax = qlp_coeff[30] * data[i-31]
add ecx, eax add ecx, eax
adc esi, edx ; sum += qlp_coeff[30] * data[i-31] adc esi, edx ; sum += qlp_coeff[30] * data[i-31]
mov eax, [ebx + 116] mov eax, [ebx + 116]
imul dword [edi - 120] imul dword [edi - 120]
...@@ -1732,23 +1732,23 @@ cident FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32 ...@@ -1732,23 +1732,23 @@ cident FLAC__lpc_compute_residual_from_qlp_coefficients_wide_asm_ia32
add ecx, eax add ecx, eax
adc esi, edx adc esi, edx
mov eax, [ebx] ; eax = qlp_coeff[ 0] (NOTE: one byte missing from instruction) mov eax, [ebx] ; eax = qlp_coeff[ 0] (NOTE: one byte missing from instruction)
imul dword [edi - 4] ; edx:eax = qlp_coeff[ 0] * data[i- 1] imul dword [edi - 4] ; edx:eax = qlp_coeff[ 0] * data[i- 1]
add ecx, eax add ecx, eax
adc esi, edx ; sum += qlp_coeff[ 0] * data[i- 1] adc esi, edx ; sum += qlp_coeff[ 0] * data[i- 1]
.jumper_0: .jumper_0:
mov edx, ecx mov edx, ecx
;esi:edx = sum ;esi:edx = sum
mov ecx, [esp + 36] ; cl = lp_quantization mov ecx, [esp + 36] ; cl = lp_quantization
shrd edx, esi, cl ; edx = (sum >> lp_quantization) shrd edx, esi, cl ; edx = (sum >> lp_quantization)
;eax = -- ;eax = --
;ecx = -- ;ecx = --
;edx = sum >> lp_q ;edx = sum >> lp_q
;esi = -- ;esi = --
neg edx ; edx = -(sum >> lp_quantization) neg edx ; edx = -(sum >> lp_quantization)
mov eax, [esp + 40] ; residual[] - data[] mov eax, [esp + 40] ; residual[] - data[]
add edx, [edi] ; edx = data[i] - (sum >> lp_quantization) add edx, [edi] ; edx = data[i] - (sum >> lp_quantization)
mov [edi + eax], edx mov [edi + eax], edx
add edi, 4 add edi, 4
...@@ -1801,7 +1801,7 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32 ...@@ -1801,7 +1801,7 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32
mov ebx, [esp + 24] ; ebx = data_len mov ebx, [esp + 24] ; ebx = data_len
test ebx, ebx test ebx, ebx
jz near .end ; do nothing if data_len == 0 jz near .end ; do nothing if data_len == 0
.begin: .begin:
mov eax, [esp + 32] ; eax = order mov eax, [esp + 32] ; eax = order
...@@ -1811,13 +1811,13 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32 ...@@ -1811,13 +1811,13 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32
mov esi, [esp + 20] ; esi = residual[] mov esi, [esp + 20] ; esi = residual[]
mov edi, [esp + 40] ; edi = data[] mov edi, [esp + 40] ; edi = data[]
mov ecx, [esp + 28] ; ecx = qlp_coeff[] mov ecx, [esp + 28] ; ecx = qlp_coeff[]
mov ebp, [ecx] ; ebp = qlp_coeff[0] mov ebp, [ecx] ; ebp = qlp_coeff[0]
mov eax, [edi - 4] ; eax = data[-1] mov eax, [edi - 4] ; eax = data[-1]
mov ecx, [esp + 36] ; cl = lp_quantization mov ecx, [esp + 36] ; cl = lp_quantization
ALIGN 16 ALIGN 16
.x87_1_loop_i: .x87_1_loop_i:
imul ebp ; edx:eax = qlp_coeff[0] * (FLAC__int64)data[i-1] imul ebp ; edx:eax = qlp_coeff[0] * (FLAC__int64)data[i-1]
shrd eax, edx, cl ; 0 <= lp_quantization <= 15 shrd eax, edx, cl ; 0 <= lp_quantization <= 15
; ;
add eax, [esi] add eax, [esi]
mov [edi], eax mov [edi], eax
...@@ -1858,15 +1858,15 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32 ...@@ -1858,15 +1858,15 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32
;edi = data[] ;edi = data[]
;ebp = @address ;ebp = @address
mov eax, [ebx + 124] ; eax = qlp_coeff[31] mov eax, [ebx + 124] ; eax = qlp_coeff[31]
imul dword [edi - 128] ; edx:eax = qlp_coeff[31] * data[i-32] imul dword [edi - 128] ; edx:eax = qlp_coeff[31] * data[i-32]
add ecx, eax add ecx, eax
adc esi, edx ; sum += qlp_coeff[31] * data[i-32] adc esi, edx ; sum += qlp_coeff[31] * data[i-32]
mov eax, [ebx + 120] ; eax = qlp_coeff[30] mov eax, [ebx + 120] ; eax = qlp_coeff[30]
imul dword [edi - 124] ; edx:eax = qlp_coeff[30] * data[i-31] imul dword [edi - 124] ; edx:eax = qlp_coeff[30] * data[i-31]
add ecx, eax add ecx, eax
adc esi, edx ; sum += qlp_coeff[30] * data[i-31] adc esi, edx ; sum += qlp_coeff[30] * data[i-31]
mov eax, [ebx + 116] mov eax, [ebx + 116]
imul dword [edi - 120] imul dword [edi - 120]
...@@ -2013,16 +2013,16 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32 ...@@ -2013,16 +2013,16 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32
add ecx, eax add ecx, eax
adc esi, edx adc esi, edx
mov eax, [ebx] ; eax = qlp_coeff[ 0] (NOTE: one byte missing from instruction) mov eax, [ebx] ; eax = qlp_coeff[ 0] (NOTE: one byte missing from instruction)
imul dword [edi - 4] ; edx:eax = qlp_coeff[ 0] * data[i- 1] imul dword [edi - 4] ; edx:eax = qlp_coeff[ 0] * data[i- 1]
add ecx, eax add ecx, eax
adc esi, edx ; sum += qlp_coeff[ 0] * data[i- 1] adc esi, edx ; sum += qlp_coeff[ 0] * data[i- 1]
.jumper_0: .jumper_0:
mov edx, ecx mov edx, ecx
;esi:edx = sum ;esi:edx = sum
mov ecx, [esp + 36] ; cl = lp_quantization mov ecx, [esp + 36] ; cl = lp_quantization
shrd edx, esi, cl ; edx = (sum >> lp_quantization) shrd edx, esi, cl ; edx = (sum >> lp_quantization)
;eax = -- ;eax = --
;ecx = -- ;ecx = --
;edx = sum >> lp_q ;edx = sum >> lp_q
...@@ -2030,7 +2030,7 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32 ...@@ -2030,7 +2030,7 @@ cident FLAC__lpc_restore_signal_wide_asm_ia32
; ;
mov eax, [esp + 20] ; residual[] - data[] mov eax, [esp + 20] ; residual[] - data[]
add edx, [edi + eax] ; edx = residual[i] + (sum >> lp_quantization) add edx, [edi + eax] ; edx = residual[i] + (sum >> lp_quantization)
mov [edi], edx ; data[i] = residual[i] + (sum >> lp_quantization) mov [edi], edx ; data[i] = residual[i] + (sum >> lp_quantization)
add edi, 4 add edi, 4
dec dword [esp + 24] dec dword [esp + 24]
......
...@@ -49,26 +49,22 @@ int utf8_encode(const char *from, char **to) ...@@ -49,26 +49,22 @@ int utf8_encode(const char *from, char **to)
len = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, from, -1, NULL, 0); len = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, from, -1, NULL, 0);
if(len == 0) break; if(len == 0) break;
unicode = (wchar_t*) safe_malloc_mul_2op_((size_t)len, sizeof(wchar_t)); unicode = (wchar_t*) safe_malloc_mul_2op_((size_t)len, sizeof(wchar_t));
if(unicode == NULL) break; if(unicode == NULL) break;
len = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, from, -1, unicode, len); len = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, from, -1, unicode, len);
if(len == 0) break; if(len == 0) break;
len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, NULL, 0, NULL, NULL); len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, NULL, 0, NULL, NULL);
if(len == 0) break; if(len == 0) break;
utf8 = (char*) safe_malloc_mul_2op_((size_t)len, sizeof(char)); utf8 = (char*) safe_malloc_mul_2op_((size_t)len, sizeof(char));
if(utf8 == NULL) break; if(utf8 == NULL) break;
len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, utf8, len, NULL, NULL); len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, utf8, len, NULL, NULL);
if(len == 0) break; if(len == 0) break;
ret = 0; ret = 0;
} while(0); } while(0);
free(unicode); free(unicode);
if(ret == 0) { if(ret == 0) {
...@@ -92,19 +88,15 @@ int utf8_decode(const char *from, char **to) ...@@ -92,19 +88,15 @@ int utf8_decode(const char *from, char **to)
len = MultiByteToWideChar(CP_UTF8, 0, from, -1, NULL, 0); len = MultiByteToWideChar(CP_UTF8, 0, from, -1, NULL, 0);
if(len == 0) break; if(len == 0) break;
unicode = (wchar_t*) safe_malloc_mul_2op_((size_t)len, sizeof(wchar_t)); unicode = (wchar_t*) safe_malloc_mul_2op_((size_t)len, sizeof(wchar_t));
if(unicode == NULL) break; if(unicode == NULL) break;
len = MultiByteToWideChar(CP_UTF8, 0, from, -1, unicode, len); len = MultiByteToWideChar(CP_UTF8, 0, from, -1, unicode, len);
if(len == 0) break; if(len == 0) break;
len = WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, unicode, -1, NULL, 0, NULL, NULL); len = WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, unicode, -1, NULL, 0, NULL, NULL);
if(len == 0) break; if(len == 0) break;
acp = (char*) safe_malloc_mul_2op_((size_t)len, sizeof(char)); acp = (char*) safe_malloc_mul_2op_((size_t)len, sizeof(char));
if(acp == NULL) break; if(acp == NULL) break;
len = WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, unicode, -1, acp, len, NULL, NULL); len = WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, unicode, -1, acp, len, NULL, NULL);
if(len == 0) break; if(len == 0) break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment