diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2010-01-12 11:22:03 -0800 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2010-01-12 11:22:03 -0800 |
commit | 3af48cbdfaeb8bc389de1caeb33bc29811da80e8 (patch) | |
tree | 94a209777ab8c7e24cff9e50660a4075e6338594 /sysdeps/x86_64/cacheinfo.c | |
parent | 4bfc6ab9ae3b259caa8b12229f0c67b4b514e9cd (diff) | |
download | glibc-3af48cbdfaeb8bc389de1caeb33bc29811da80e8.tar.gz |
Optimize 32bit memset/memcpy with SSE2/SSSE3.
Diffstat (limited to 'sysdeps/x86_64/cacheinfo.c')
-rw-r--r-- | sysdeps/x86_64/cacheinfo.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sysdeps/x86_64/cacheinfo.c b/sysdeps/x86_64/cacheinfo.c index 5b66c62eb3..54220379ec 100644 --- a/sysdeps/x86_64/cacheinfo.c +++ b/sysdeps/x86_64/cacheinfo.c @@ -74,6 +74,7 @@ static const struct intel_02_cache_info { 0x0a, 2, 32, M(_SC_LEVEL1_DCACHE_SIZE), 8192 }, { 0x0c, 4, 32, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, { 0x0d, 4, 64, M(_SC_LEVEL1_DCACHE_SIZE), 16384 }, + { 0x0e, 6, 64, M(_SC_LEVEL1_DCACHE_SIZE), 24576 }, { 0x21, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, { 0x22, 4, 64, M(_SC_LEVEL3_CACHE_SIZE), 524288 }, { 0x23, 8, 64, M(_SC_LEVEL3_CACHE_SIZE), 1048576 }, @@ -113,6 +114,7 @@ static const struct intel_02_cache_info { 0x7c, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, { 0x7d, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 2097152 }, { 0x7f, 2, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, + { 0x80, 8, 64, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, { 0x82, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 262144 }, { 0x83, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 524288 }, { 0x84, 8, 32, M(_SC_LEVEL2_CACHE_SIZE), 1048576 }, @@ -452,9 +454,10 @@ __cache_sysconf (int name) } -/* Half the data cache size for use in memory and string routines, typically +/* Data cache size for use in memory and string routines, typically L1 size. */ long int __x86_64_data_cache_size_half attribute_hidden = 32 * 1024 / 2; +long int __x86_64_data_cache_size attribute_hidden = 32 * 1024; /* Shared cache size for use in memory and string routines, typically L2 or L3 size. */ long int __x86_64_shared_cache_size_half attribute_hidden = 1024 * 1024 / 2; @@ -657,7 +660,10 @@ init_cacheinfo (void) } if (data > 0) - __x86_64_data_cache_size_half = data / 2; + { + __x86_64_data_cache_size_half = data / 2; + __x86_64_data_cache_size = data; + } if (shared > 0) { |