in reply to Re^2: 64-bit *nix/gcc expertise required
in thread 64-bit *nix/gcc expertise required (THIS IS NOT OFF TOPIC!)
On my x86_64 machine:
#include <stdio.h> #define ALIGN_BITS (sizeof (void *) >> 1LL) #define BIT_BITS 3LL #define BYTE_BITS 14LL #define SLOT_BITS (sizeof (void *) * 8) - (ALIGN_BITS + BIT_BITS + + BYTE_BITS) #define BYTES_PER_SLOT 1LL << BYTE_BITS #define TRACKING_SLOTS 8192 int check_new (unsigned long long p) { unsigned long long slot = (p >> (BYTE_BITS + BIT_BITS + ALIGN_BIT +S)); unsigned long long byte = (p >> (ALIGN_BITS + BIT_BITS)) & 0x00003 +fffLL; unsigned long long bit = (p >> ALIGN_BITS) & 0x00000 +007LL; unsigned long long nop = p & 0x3LL; printf ("address: %012p slot: %012p byte: %4x bit: %4x nop: %x\n", p, slot, byte, bit, nop); return (1); } /* check_new */ int main (int argc, char *argv[]) { unsigned long long p; for (p = 123456LL; p < (1ULL << 34); p += (1ULL << 29)) check_new (p); } /* main */
Yields
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6 +.4, dynamically linked (uses shared libs), not stripped address: 0x000001e240 slot: (nil) byte: 3c4 bit: 4 nop: 0 address: 0x002001e240 slot: 0x0000000100 byte: 3c4 bit: 4 nop: 0 address: 0x004001e240 slot: 0x0000000200 byte: 3c4 bit: 4 nop: 0 address: 0x006001e240 slot: 0x0000000300 byte: 3c4 bit: 4 nop: 0 address: 0x008001e240 slot: 0x0000000400 byte: 3c4 bit: 4 nop: 0 address: 0x00a001e240 slot: 0x0000000500 byte: 3c4 bit: 4 nop: 0 address: 0x00c001e240 slot: 0x0000000600 byte: 3c4 bit: 4 nop: 0 address: 0x00e001e240 slot: 0x0000000700 byte: 3c4 bit: 4 nop: 0 address: 0x010001e240 slot: 0x0000000800 byte: 3c4 bit: 4 nop: 0 address: 0x012001e240 slot: 0x0000000900 byte: 3c4 bit: 4 nop: 0 address: 0x014001e240 slot: 0x0000000a00 byte: 3c4 bit: 4 nop: 0 address: 0x016001e240 slot: 0x0000000b00 byte: 3c4 bit: 4 nop: 0 address: 0x018001e240 slot: 0x0000000c00 byte: 3c4 bit: 4 nop: 0 address: 0x01a001e240 slot: 0x0000000d00 byte: 3c4 bit: 4 nop: 0 address: 0x01c001e240 slot: 0x0000000e00 byte: 3c4 bit: 4 nop: 0 address: 0x01e001e240 slot: 0x0000000f00 byte: 3c4 bit: 4 nop: 0 address: 0x020001e240 slot: 0x0000001000 byte: 3c4 bit: 4 nop: 0 address: 0x022001e240 slot: 0x0000001100 byte: 3c4 bit: 4 nop: 0 address: 0x024001e240 slot: 0x0000001200 byte: 3c4 bit: 4 nop: 0 address: 0x026001e240 slot: 0x0000001300 byte: 3c4 bit: 4 nop: 0 address: 0x028001e240 slot: 0x0000001400 byte: 3c4 bit: 4 nop: 0 address: 0x02a001e240 slot: 0x0000001500 byte: 3c4 bit: 4 nop: 0 address: 0x02c001e240 slot: 0x0000001600 byte: 3c4 bit: 4 nop: 0 address: 0x02e001e240 slot: 0x0000001700 byte: 3c4 bit: 4 nop: 0 address: 0x030001e240 slot: 0x0000001800 byte: 3c4 bit: 4 nop: 0 address: 0x032001e240 slot: 0x0000001900 byte: 3c4 bit: 4 nop: 0 address: 0x034001e240 slot: 0x0000001a00 byte: 3c4 bit: 4 nop: 0 address: 0x036001e240 slot: 0x0000001b00 byte: 3c4 bit: 4 nop: 0 address: 0x038001e240 slot: 0x0000001c00 byte: 3c4 bit: 4 nop: 0 address: 0x03a001e240 slot: 0x0000001d00 byte: 3c4 bit: 4 nop: 0 address: 0x03c001e240 slot: 0x0000001e00 byte: 3c4 bit: 4 nop: 0 address: 0x03e001e240 slot: 0x0000001f00 byte: 3c4 bit: 4 nop: 0
That was what you were looking for?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: 64-bit *nix/gcc expertise required
by BrowserUk (Patriarch) on Dec 24, 2010 at 15:41 UTC | |
by Tux (Canon) on Dec 24, 2010 at 16:19 UTC | |
by BrowserUk (Patriarch) on Dec 24, 2010 at 17:15 UTC | |
by Tux (Canon) on Dec 24, 2010 at 19:22 UTC | |
by BrowserUk (Patriarch) on Dec 25, 2010 at 16:27 UTC | |
| |
by ikegami (Patriarch) on Dec 24, 2010 at 22:06 UTC | |
|