aboutsummaryrefslogtreecommitdiff
path: root/gold/stringpool.cc
diff options
context:
space:
mode:
authorDoug Kwan <dougkwan@google.com>2009-10-21 08:08:41 +0000
committerDoug Kwan <dougkwan@google.com>2009-10-21 08:08:41 +0000
commitb569affa9479c13908aebdb320d6bcb296bb4bf4 (patch)
tree4133041f66be0dcd020cd40768593f4ae0b39bd1 /gold/stringpool.cc
parent550e3caf22e336e594c2d3f4eb1596e85ecf13d7 (diff)
downloadfsf-binutils-gdb-b569affa9479c13908aebdb320d6bcb296bb4bf4.zip
fsf-binutils-gdb-b569affa9479c13908aebdb320d6bcb296bb4bf4.tar.gz
fsf-binutils-gdb-b569affa9479c13908aebdb320d6bcb296bb4bf4.tar.bz2
2009-10-21 Doug Kwan <dougkwan@google.com>
* arm.cc: Update copyright comments. (Target_arm): New forward class template declaration. (Arm_address): New type. (ARM_MAX_FWD_BRANCH_OFFSET, ARM_MAX_BWD_BRANCH_OFFSET, THM_MAX_FWD_BRANCH_OFFSET, THM_MAX_BWD_BRANCH_OFFSET, THM2_MAX_FWD_BRANCH_OFFSET, THM2_MAX_BWD_BRANCH_OFFSET): New constants. (Insn_template): Same. (DEF_STUBS): New macro. (Stub_type): New enum type. (Stub_template): New class definition. (Stub): Same. (Reloc_stub): Same. (Stub_factory): Same. (Target_arm::Target_arm): Initialize may_use_blx_ and should_force_pic_veneer_. (Target_arm::may_use_blx, Target_arm::set_may_use_blx, Target_arm::should_force_pic_veneer, Target_arm::set_should_force_pic_veneer, Target_arm::using_thumb2, Target_arm::using_thumb_only, Target_arm:;default_target): New method defintions. (Target_arm::may_use_blx_, Target_arm::should_force_pic_veneer_): New data member declarations. (Insn_template::size, Insn_template::alignment): New method defintions. (Stub_template::Stub_template): New method definition. (Reloc_stub::Key::name, Reloc_stub::stub_type_for_reloc, Reloc_stub::do_fixed_endian_write, Reloc_stub::do_write): Same. (Stub_factory::Stub_factory): New method definition. * gold.h (string_hash): New template. * output.h (Input_section_specifier::hash_value): Use gold::string_hash. (Input_section_specifier::string_hash): Remove. * stringpool.cc (Stringpool_template::string_hash): Use gold::string_hash.
Diffstat (limited to 'gold/stringpool.cc')
-rw-r--r--gold/stringpool.cc11
1 files changed, 1 insertions, 10 deletions
diff --git a/gold/stringpool.cc b/gold/stringpool.cc
index 05d1d68..d9f4050 100644
--- a/gold/stringpool.cc
+++ b/gold/stringpool.cc
@@ -153,16 +153,7 @@ size_t
Stringpool_template<Stringpool_char>::string_hash(const Stringpool_char* s,
size_t length)
{
- // This is the hash function used by the dynamic linker for
- // DT_GNU_HASH entries. I compared this to a Fowler/Noll/Vo hash
- // for a C++ program with 385,775 global symbols. This hash
- // function was very slightly worse. However, it is much faster to
- // compute. Overall wall clock time was a win.
- const unsigned char* p = reinterpret_cast<const unsigned char*>(s);
- size_t h = 5381;
- for (size_t i = 0; i < length * sizeof(Stringpool_char); ++i)
- h = h * 33 + *p++;
- return h;
+ return gold::string_hash<Stringpool_char>(s, length);
}
// Add the string S to the list of canonical strings. Return a