29 return (mem[index>>1]>>(32*(index&0x1)))&0xFFFFFFFF;
35 return (mem[index>>2]>>(16*(index&0x3)))&0xFFFF;
41 return (
mem[index>>3]>>(8*(index&0x7)))&0xFF;
47 return (
mem[index>>4]>>(4*(index&0xF)))&0xF;
53 return (mem[index>>5]>>(2*(index&0x1F)))&0x3;
59 return (mem[index>>6]>>(1*(index&0x3F)))&0x1;
73 val = (val&0xFFFFFFFF)<<(32*(index&0x1));
74 uint64_t mask = ~((0xFFFFFFFFull)<<(32*(index&0x1)));
75 mem[index>>1] = (mem[index>>1]&mask)|val;
81 val = (val&0xFFFF)<<(16*(index&0x3));
82 uint64_t mask = ~((0xFFFFull)<<(16*(index&0x3)));
83 mem[index>>2] = (mem[index>>2]&mask)|val;
89 val = (val&0xFF)<<(8*(index&0x7));
90 uint64_t mask = ~((0xFFull)<<(8*(index&0x7)));
91 mem[index>>3] = (
mem[index>>3]&mask)|val;
98 val = (val&0xF)<<(4*(index&0xF));
99 uint64_t mask = ~((0xFull)<<(4*(index&0xF)));
100 mem[index>>4] = (
mem[index>>4]&mask)|val;
107 val = (val&0x3)<<(2*(index&0x1F));
108 uint64_t mask = ~((0x3ull)<<(2*(index&0x1F)));
109 mem[index>>5] = (mem[index>>5]&mask)|val;
116 val = (val&0x1)<<(1*(index&0x3F));
117 uint64_t mask = ~((0x1ull)<<(1*(index&0x3F)));
118 mem[index>>6] = (mem[index>>6]&mask)|val;