From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48154) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aMGnH-0002FO-74 for qemu-devel@nongnu.org; Thu, 21 Jan 2016 10:05:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aMGnC-0005DG-3u for qemu-devel@nongnu.org; Thu, 21 Jan 2016 10:05:03 -0500 Date: Thu, 21 Jan 2016 16:04:31 +0100 From: "Edgar E. Iglesias" Message-ID: <20160121150431.GA25287@toto> References: <1453297780-12514-1-git-send-email-edgar.iglesias@gmail.com> <1453297780-12514-3-git-send-email-edgar.iglesias@gmail.com> <878u3jce48.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <878u3jce48.fsf@linaro.org> Subject: Re: [Qemu-devel] [PATCH v1 2/3] target-arm: Make pamax an argument to check_s2_startlevel List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alex =?iso-8859-1?Q?Benn=E9e?= Cc: edgar.iglesias@xilinx.com, peter.maydell@linaro.org, qemu-arm@nongnu.org, qemu-devel@nongnu.org On Thu, Jan 21, 2016 at 12:26:47PM +0000, Alex Bennée wrote: > > Edgar E. Iglesias writes: > > > From: "Edgar E. Iglesias" > > > > Make pamax an argument to check_s2_startlevel in preparation > > for future reuse. > > > > No functional change. > > > > Signed-off-by: Edgar E. Iglesias > > --- > > target-arm/helper.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/target-arm/helper.c b/target-arm/helper.c > > index 8aedce9..4abeb4d 100644 > > --- a/target-arm/helper.c > > +++ b/target-arm/helper.c > > @@ -6579,7 +6579,8 @@ typedef enum { > > * Returns true if the suggested starting level is OK and false otherwise. > > */ > > static bool check_s2_startlevel(ARMCPU *cpu, bool is_aa64, int level, > > - int inputsize, int stride) > > + int inputsize, int stride, > > + unsigned int pamax) > > I'm not convinced about this as we only use pamax in one leg and we can > get it via *cpu when needed. If it will eventually be used you would > also have to update the docstring above. The reusing of pamax comes in the next patch 3/3. I did it this way to avoid doing the decoding in arm_pamax() twice for S2 translations... > > > { > > const int grainsize = stride + 3; > > int startsizecheck; > > @@ -6595,8 +6596,6 @@ static bool check_s2_startlevel(ARMCPU *cpu, bool is_aa64, int level, > > } > > > > if (is_aa64) { > > - unsigned int pamax = arm_pamax(cpu); > > - > > switch (stride) { > > case 13: /* 64KB Pages. */ > > if (level == 0 || (level == 1 && pamax <= 42)) { > > @@ -6808,6 +6807,7 @@ static bool get_phys_addr_lpae(CPUARMState *env, target_ulong address, > > * VTCR_EL2.SL0 field (whose interpretation depends on the page size) > > */ > > int startlevel = extract32(tcr->raw_tcr, 6, 2); > > + unsigned int pamax = arm_pamax(cpu); > > bool ok; > > > > if (va_size == 32 || stride == 9) { > > @@ -6820,7 +6820,7 @@ static bool get_phys_addr_lpae(CPUARMState *env, target_ulong address, > > > > /* Check that the starting level is valid. */ > > ok = check_s2_startlevel(cpu, va_size == 64, level, > > - inputsize, stride); > > + inputsize, stride, pamax); > > if (!ok) { > > /* AArch64 reports these as level 0 faults. > > * AArch32 reports these as level 1 faults. > > > -- > Alex Bennée