[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

64 bit->48 bit pointer hacks...



> The current generation AMD64 MMUs can only handle 64-bit pointers in
> which the high-order 17 bits are all the same (40 bits of information).

I was mulling this over the other day...  Say I've got a string class that
looks like this:

class string {
  class shortString {
    char flag;
    char [7] smallString;
  };

  class {
    union {
      char *ptr;
      shortString;
    } shortStringOrPtr;
  } data;
};

Is there some magic value I can write into "flag", that in combination with
the understanding of how 64 bit pointers get truncated down to 48 bit
virtual addresses that will allow me to store either a 7 byte string or a
char * in the same space?

Thanks,
  Dale
-- 
Dale E. Martin - dale@the-martins.org
http://the-martins.org/~dmartin



Reply to: