2 ms·
The rust code for rounding down is given as let new_ptr = new_ptr & !(align - 1); But I don't see rdx decremented before being negated and AND'ed with rax
by asalahli 3y ago
The rust code for rounding down is given as
let new_ptr = new_ptr & !(align - 1);
But I don't see rdx decremented before being negated and AND'ed with rax, in the assembly. What am I missing?
- conradludgate 3y agoIt's being converted into `-align` which is equivalent under twos compliment
- asalahli 3y agoI don't follow. Are you saying `new_ptr & -align` is equivalent to `new_ptr & !(align - 1)`? Edit: I get it now. My brain was interpreting NEG as NOT for some reason.