Hi Pierrick,
On 12/5/25 20:04, Pierrick Bouvier wrote:
> sextract64 returns a signed value.
>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> ---
> target/arm/ptw.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/target/arm/ptw.c b/target/arm/ptw.c
> index 89979c07e5a..68ec3f5e755 100644
> --- a/target/arm/ptw.c
> +++ b/target/arm/ptw.c
> @@ -1660,7 +1660,7 @@ static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw,
> uint64_t ttbr;
> hwaddr descaddr, indexmask, indexmask_grainsize;
> uint32_t tableattrs;
> - target_ulong page_size;
> + uint64_t page_size;
Subject mentions int64_t, description mentions signed,
but patch uses unsigned uint64_t, is that expected?
> uint64_t attrs;
> int32_t stride;
> int addrsize, inputsize, outputsize;
> @@ -1733,7 +1733,7 @@ static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw,
> * validation to do here.
> */
> if (inputsize < addrsize) {
> - target_ulong top_bits = sextract64(address, inputsize,
> + uint64_t top_bits = sextract64(address, inputsize,
> addrsize - inputsize);
> if (-top_bits != param.select) {
> /* The gap between the two regions is a Translation fault */