> > Also note that changing variables from int to long have strictly no
> > impact on 32 bits host machines, then won't help emulating more than 2
> > GB of RAM. Another variable type (target_phys_addr_t ?) should be used
> > instead.
> This patch should be restricted to 64-bit hosts. I don't think it's
> useful to emulate a 64-bit target with huge amounts of virtual and
> physical address space on a 32-bit host.
IMHO Huge amounts of virtual address space can definitely be useful, even if
you don't have ram to back it.
Huge amounts of physical address space is less immediately useful, though in
practice you have to emulate whatever real hardware provides. If you're
emulating a machine with a 40+ bit physical address space, there's a fair
chance your guest OS will decide to scatter a relatively small set of
resources over the whole address space.
I agree there's no point trying to emulate >2G ram on a 32-bit host, but
physical address space and ram are two very different things.
For example I have a cpu that has a "bitbanded" memory region. This expands
each bit of real ram to a whole 32-bit word, effectively turning a word
load/store into an atomic bit operation. Currently it's only used for
relatively small address ranges, but it's a good example of a situation where
the physical address space is much larger than ram.