Re: 64 bit->48 bit pointer hacks...
On Mon, 3 Oct 2005 08:49:13 -0400
"Dale E. Martin" <dale@the-martins.org> wrote:
> > 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
I'm channelling 1984...
http://en.wikipedia.org/wiki/Mac_OS_memory_management#32-bit_clean
It's a clever, *bad* idea.
> store either a 7 byte string or a char * in the same space?
A 7 byte string takes up 64 bits.
Reply to: