3 ms·
We call it "pointer compression" now. :)
by munificent 1y ago
We call it "pointer compression" now. :)
- mananaysiempre 1y agoSeriously though, I’ve been wondering for a while whether I could build a GCC for x86-64 that would have 32-bit (low 4G) pointers (and no REX prefixes) by default and full 64-bit ones with __far or something. (In this episode of Everything Old Is New Again: the Very Large Memory API[1] from Windows NT for Alpha.) [1] https://devblogs.microsoft.com/oldnewthing/20070801-00/?p=25763 https://devblogs.microsoft.com/oldnewthing/20070801-00/?p=25...
- dajtxx 1y ago6502 zero page instruction vibes.
- o11c 1y agoA moderate fraction of the work is already done using: https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html Unfortunately the obvious `__attribute__((mode(...)))` errors out if anything but the standard pointer-size mode (usually SI or DI) is passed. Or you may be able to do it based on x32, since your far pointers are likely rare enough that you can do them manually. Especially in C++. I'm pretty sure you can just call "foreign" syscalls if you do it carefully.
- deleted 1y ago[deleted]