Guest User

Untitled

a guest
Oct 17th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. fn main() {
  2. let cap: u64 = 16384;
  3. let base_addr: u64 = 0x23af1200000;
  4. let pairsz: u64 = 64;
  5. let cnry_addr: u64 = 0x23af13075c8;
  6.  
  7. let rel_addr = cnry_addr - base_addr;
  8. let hashes_size = 8 * cap;
  9. let pairs_size = pairsz * cap;
  10. let pairs_offset = round_up_to_next(hashes_size, 8);
  11.  
  12. let bucket_offset = rel_addr - pairs_offset;
  13. let bucket_idx = bucket_offset / pairsz;
  14.  
  15. println!("pairs_size: {}, offset: {} idx: {}", pairs_size, bucket_offset, bucket_idx);
  16. }
  17.  
  18.  
  19. #[inline]
  20. fn round_up_to_next(unrounded: u64, target_alignment: u64) -> u64 {
  21. assert!(target_alignment.is_power_of_two(), "HashMap Corruption - alignment not power of two");
  22. (unrounded + target_alignment - 1) & !(target_alignment - 1)
  23. }
Add Comment
Please, Sign In to add comment