Back to index

glibc  2.9
Functions
dl-hash.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

static unsigned int _dl_elf_hash (const char *name)

Function Documentation

static unsigned int _dl_elf_hash ( const char *  name) [static]

Definition at line 30 of file dl-hash.h.

{
  unsigned int result;
  unsigned int temp0;
  unsigned int temp1;

  __asm__ __volatile__
    ("movzbl (%1),%2\n\t"
     "testl %2, %2\n\t"
     "jz 1f\n\t"
     "movl %2, %0\n\t"
     "movzbl 1(%1), %2\n\t"
     "jecxz 1f\n\t"
     "shll $4, %0\n\t"
     "addl %2, %0\n\t"
     "movzbl 2(%1), %2\n\t"
     "jecxz 1f\n\t"
     "shll $4, %0\n\t"
     "addl %2, %0\n\t"
     "movzbl 3(%1), %2\n\t"
     "jecxz 1f\n\t"
     "shll $4, %0\n\t"
     "addl %2, %0\n\t"
     "movzbl 4(%1), %2\n\t"
     "jecxz 1f\n\t"
     "shll $4, %0\n\t"
     "addl $5, %1\n\t"
     "addl %2, %0\n\t"
     "movzbl (%1), %2\n\t"
     "jecxz 1f\n"
     "2:\t"
     "shll $4, %0\n\t"
     "movl $0xf0000000, %3\n\t"
     "incl %1\n\t"
     "addl %2, %0\n\t"
     "andl %0, %3\n\t"
     "andl $0x0fffffff, %0\n\t"
     "shrl $24, %3\n\t"
     "movzbl (%1), %2\n\t"
     "xorl %3, %0\n\t"
     "testl %2, %2\n\t"
     "jnz 2b\n"
     "1:\t"
     : "=&r" (result), "=r" (name), "=&c" (temp0), "=&r" (temp1)
     : "0" (0), "1" ((const unsigned char *) name));

  return result;
}

Here is the call graph for this function: