[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <19233.1455928424@turing-police.cc.vt.edu>
Date: Fri, 19 Feb 2016 19:33:44 -0500
From: Valdis.Kletnieks@...edu
To: Paolo Bonzini <pbonzini@...hat.com>
Cc: Aurelien Jarno <aurelien@...el32.net>,
Gleb Natapov <gleb@...nel.org>, x86@...nel.org,
kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
Aruna Hewapathirane <aruna.hewapathirane@...il.com>
Subject: Re: Silence compiler warning in arch/x86/kvm/emulate.c
On Fri, 19 Feb 2016 18:56:05 +0100, Paolo Bonzini said:
> On 19/02/2016 18:54, Valdis.Kletnieks@...edu wrote:
> > But under what conditions is 'la' a 64-bit quantity that has any
> > bits set in the high 32 bits (meaning it's a pointer to something
> > over the 4G line) - but it's still valid to smash those bits?
>
> That can happen for example if there is a non-zero segment base. Then
> the linear address wraps at 4G.
Gaah.
Obviously, the concept that software could actually depend on a segment base
pointing at the 3G line (or whatever) to wrap around and be used to address
memory down in the first gig of RAM was too bizarre for my brain to visualize.
:)
The IBM S/360 with 24 bit addresses and S/370 with 24 or 31 bit addresses would
allow some instructions (most famously MVCL Move Character Long) to start
operating at the high end of memory and wrap around to the beginning. The
system documentation was pretty clear that although this *worked*, it was
probably not what you actually wanted to do.... :)
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists