"Dan Pop" <> wrote in message
news:c6o6vj$mrn$...
> In < outprogramming.com>
"macluvitch" <> writes:
>
> >keep in mind that the size of a pointer is 4 bytes in a 64bit system
>
> Engage your brain and explain to the rest of us how can a 4-byte pointer
> cover a 64-bit address space.
Well, CHAR_BIT could be 16
> It is possible to use 64-bit hardware in 32-bit mode (as older OpenVMS
> versions and Windows/NT did on Alpha and older IRIX versions did on MIPS
> 4000 and above), but the resulting system does NOT qualify as a 64-bit
> system.
>
> For a C implementation to qualify as a 64-bit implementation, it needs
> 64-bit pointers and at least one standard 64-bit integer type. gcc on
> 64-bit Linux systems has 64-bit pointers and longs (it uses the
> I32LP64 model, according to a common jargon).
Would you consider an IP32L64 system as 64-bit? It's certainly possible to
implement a "tiny" memory model for AMD64, giving you the better memory
efficiency of 32-bit pointers while retaining access to features not
available in 32-bit mode. And even in the small and kernel code models,
function pointers need only be 32-bit anyway, with a sign extension if
converted to a void pointer.
S
--
Stephen Sprunk "Stupid people surround themselves with smart
CCIE #3723 people. Smart people surround themselves with
K5SSS smart people who disagree with them." --Aaron Sorkin