Not a whole lot of language runtimes (if any) really depend on upper address ignore.
AFAIK, AMD only added it in Zen4.
AFAIK, AMD only added it in Zen4.
Several runtimes use high bits tagging combined with NaN-boxing, and have been doing so since before LAM/UAI existed.
PUC Lua does rely on two's complement integer representation, though, as well as long long, while nominally adhering to C90, so not quite strictly conforming.