Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- let cap: u64 = 16384;
- let base_addr: u64 = 0x23af1200000;
- let pairsz: u64 = 64;
- let cnry_addr: u64 = 0x23af13075c8;
- let rel_addr = cnry_addr - base_addr;
- let hashes_size = 8 * cap;
- let pairs_size = pairsz * cap;
- let pairs_offset = round_up_to_next(hashes_size, 8);
- let bucket_offset = rel_addr - pairs_offset;
- let bucket_idx = bucket_offset / pairsz;
- println!("pairs_size: {}, offset: {} idx: {}", pairs_size, bucket_offset, bucket_idx);
- }
- #[inline]
- fn round_up_to_next(unrounded: u64, target_alignment: u64) -> u64 {
- assert!(target_alignment.is_power_of_two(), "HashMap Corruption - alignment not power of two");
- (unrounded + target_alignment - 1) & !(target_alignment - 1)
- }
Add Comment
Please, Sign In to add comment