diff options
author | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-11-30 09:22:01 +0000 |
---|---|---|
committer | Tomas Kukosa <tomas.kukosa@siemens.com> | 2007-11-30 09:22:01 +0000 |
commit | 6caaafbb6d662da8d2561399a35c0aeee7642a46 (patch) | |
tree | 65a591e9dbfc197689d57a175eb0ed43f89cb990 /epan/asm_utils_win32_x86.asm | |
parent | 4660ecb8e14c52ba2d75c5f93eb9c3f93720e47f (diff) | |
download | wireshark-6caaafbb6d662da8d2561399a35c0aeee7642a46.tar.gz wireshark-6caaafbb6d662da8d2561399a35c0aeee7642a46.tar.bz2 wireshark-6caaafbb6d662da8d2561399a35c0aeee7642a46.zip |
Next few improvements to speed up startup about 10%.
- use GTree instead of GList for preference module lists
svn path=/trunk/; revision=23679
Diffstat (limited to 'epan/asm_utils_win32_x86.asm')
-rw-r--r-- | epan/asm_utils_win32_x86.asm | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/epan/asm_utils_win32_x86.asm b/epan/asm_utils_win32_x86.asm index 52143a5b00..46a1996bc7 100644 --- a/epan/asm_utils_win32_x86.asm +++ b/epan/asm_utils_win32_x86.asm @@ -26,6 +26,7 @@ SECTION .text GLOBAL _wrs_strcmp GLOBAL _wrs_strcmp_with_data +GLOBAL _wrs_str_equal GLOBAL _wrs_check_charset GLOBAL _wrs_str_hash @@ -71,6 +72,44 @@ CMP_NEQ_END: retn align 16 +_wrs_str_equal + mov ecx, dword [esp + 4] ; a + mov edx, dword [esp + 8] ; b + push ebx +EQL_LOOP: + mov eax, dword [ecx] + mov ebx, dword [edx] + cmp al, bl + jne EQL_NEQ_END + or al, al + jz EQL_EQ_END + cmp ah, bh + jne EQL_NEQ_END + or ah, ah + jz EQL_EQ_END + shr eax, 16 + shr ebx, 16 + add ecx, byte 4 + add edx, byte 4 + cmp al, bl + jne EQL_NEQ_END + or al, al + jz EQL_EQ_END + cmp ah, bh + jne EQL_NEQ_END + or ah, ah + jnz EQL_LOOP +EQL_EQ_END: + xor eax, eax + pop ebx + not eax + retn +EQL_NEQ_END: + pop ebx + xor eax, eax + retn + + align 16 _wrs_check_charset: mov edx, dword [esp + 4] ; table mov ecx, dword [esp + 8] ; str |