Fixing correctness (and avoid triggering optimisations)

[?]
Jan 22, 2021, 4:07 PM
TCBN2JMEWR6HKJOFZWZJJQZ5KN4QIAWJE44CTDX67NT7NJAYBWCAC

Dependencies

Change contents

  • replacement in src/main.rs at line 173
    [2.10523][2.10523:10667]()
    pub unsafe fn lookup_ord_(&mut self, k0: u64) -> u16 {
    let mut a = 16;
    let mut b = self.size();
    assert!(b <= 4096);
    [2.10523]
    [2.10667]
    pub unsafe fn lookup_ord_(&mut self, k0: u64) -> (u16, u16) {
    let mut a = 0;
    let mut b = (self.size() - 16) / 24;
  • replacement in src/main.rs at line 177
    [2.10689][2.10689:10838]()
    let mid = (a + b) / 2 - 16;
    let mid = 16 + mid - (mid % 24);
    let k = *(self.p.offset(mid as isize) as *mut u64);
    [2.10689]
    [2.10838]
    let mid = (a + b) / 2;
    let k = *(self.p.offset((16 + mid * 24 + 8) as isize) as *mut u64);
  • edit in src/main.rs at line 184
    [2.10960]
    [2.10960]
    } else if k == k0 {
    a = mid;
    b = mid;
    break
  • replacement in src/main.rs at line 192
    [2.11029][2.11029:11039]()
    a
    [2.11029]
    [2.11039]
    (16 + a * 24, 16 + b * 24)
  • replacement in src/main.rs at line 195
    [2.11111][2.11111:11211]()
    let off = self.lookup_ord_(k0) as isize;
    let k = *(self.p.offset(off) as *mut u64);
    [2.11111]
    [2.11211]
    let (off, _) = self.lookup_ord_(k0);
    let off = off as isize;
    let k = *(self.p.offset(off + 8) as *mut u64);
  • replacement in src/main.rs at line 199
    [2.11232][2.11232:11288]()
    Some(*(self.p.offset(off + 8) as *mut u64))
    [2.11232]
    [2.11288]
    Some(*(self.p.offset(off + 16) as *mut u64))
  • replacement in src/main.rs at line 206
    [2.11437][2.11437:11477]()
    let off = self.lookup_ord_(k0);
    [2.11437]
    [2.11477]
    let (_, off) = self.lookup_ord_(k0);