This somewhat controversial patchset converts internal arithmetic in the memory API to 128 bits.
It has been argued that with careful coding we can make 64-bit work as well. I don't think this is true in general - a memory router can adjust addresses either forwards or backwards, and some buses (PCIe) need the full 64-bit space - though it's probably the case for all the configurations we support today. Regardless, the need for careful coding means subtle bugs, which I don't want in a core API that is driven by guest supplied values. Avi Kivity (3): Add support for 128-bit arithmetic memory: use 128-bit integers for sizes and intermediates Adjust system and pci address spaces to full 64-bit exec.c | 2 +- hw/pc_piix.c | 2 +- hw/pci_bridge.c | 2 +- int128.h | 116 ++++++++++++++++++++++++++++++++ memory.c | 196 ++++++++++++++++++++++++++++++++---------------------- memory.h | 3 +- 6 files changed, 237 insertions(+), 84 deletions(-) create mode 100644 int128.h -- 1.7.6.3