Advertisement
Guest User

Untitled

a guest
Apr 28th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # x - rax
  2. # temp - rdx
  3. # temp2 - rdi
  4.     .text
  5.     .global bitrev
  6.     .type   bitrev, @function
  7. bitrev:
  8.     movq %rdi,%rax
  9.    
  10.         #(x & 0x5555555555555555) << 1
  11.     movq %rax, %rdx
  12.     andq $0x5555555555555555, %rdx
  13.     shlq $1, %rdx
  14.         #(x & 0xAAAAAAAAAAAAAAAA) >> 1;
  15.     movq %rax, %rdi
  16.     andq $0xAAAAAAAAAAAAAAAA, %rdi
  17.     shrq $1, %rdi
  18.         #x = temp | temp2;
  19.     movq %rdx, %rax
  20.     orq %rdi, %rax 
  21.         #
  22.     movq %rax, %rdx
  23.     andq $0x3333333333333333, %rdx
  24.     shlq $2, %rdx
  25.         #
  26.     movq %rax, %rdi
  27.     andq $0xCCCCCCCCCCCCCCCC, %rdi
  28.     shrq $2, %rdi
  29.         #
  30.     movq %rdx, %rax
  31.     orq %rdi, %rax
  32.    
  33.         #
  34.     movq %rax, %rdx
  35.     andq $0x0F0F0F0F0F0F0F0F, %rdx
  36.     shlq $4, %rdx
  37.         #
  38.     movq %rax, %rdi
  39.     andq $0xF0F0F0F0F0F0F0F0, %rdi
  40.     shrq $4, %rdi
  41.         #
  42.     movq %rdx, %rax
  43.     orq %rdi, %rax
  44.    
  45.         #
  46.     movq %rax, %rdx
  47.     andq $0x00FF00FF00FF00FF, %rdx
  48.     shlq $8, %rdx
  49.         #
  50.     movq %rax, %rdi
  51.     andq $0xFF00FF00FF00FF00, %rdi
  52.     shrq $8, %rdi
  53.         #
  54.     movq %rdx, %rax
  55.     orq %rdi, %rax
  56.    
  57.         #
  58.     movq %rax, %rdx
  59.     andq $0x0000FFFF0000FFFF, %rdx
  60.     shlq $16, %rdx
  61.         #
  62.     movq %rax, %rdi
  63.     andq $0xFFFF0000FFFF0000, %rdi
  64.     shrq $16, %rdi
  65.         #
  66.     movq %rdx, %rax
  67.     orq %rdi, %rax
  68.    
  69.         #
  70.     movq %rax, %rdx
  71.     shlq $32, %rdx
  72.         #
  73.     movq %rax, %rdi
  74.     shrq $32, %rdi
  75.    
  76.     movq %rdx, %rax
  77.     orq %rdi, %rax
  78.    
  79.     ret
  80.  
  81.     .size   bitrev, .-bitrev
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement