Message ID | 20250501062344.2526061-30-pierrick.bouvier@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | single-binary: compile target/arm twice | expand |
On 4/30/25 23:23, Pierrick Bouvier wrote: > 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 d0a53d0987f..424d1b54275 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; > 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 */ Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On 1/5/25 08:23, Pierrick Bouvier wrote: > 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 d0a53d0987f..424d1b54275 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; Alternatively size_t. > 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); Maybe use int64_t for signed? Anyway, pre-existing, so: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > if (-top_bits != param.select) { > /* The gap between the two regions is a Translation fault */
On 5/1/25 12:35, Philippe Mathieu-Daudé wrote: > On 1/5/25 08:23, Pierrick Bouvier wrote: >> 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 d0a53d0987f..424d1b54275 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; > > Alternatively size_t. No, this is not related to the size of any host-side object. Bear in mind this particular page_size is used for the sizes of the intermediate page table levels. So, at the very top level of the page table walk this will be quite large. r~
On 5/1/25 12:35 PM, Philippe Mathieu-Daudé wrote: > On 1/5/25 08:23, Pierrick Bouvier wrote: >> 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 d0a53d0987f..424d1b54275 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; > > Alternatively size_t. > >> 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); > > Maybe use int64_t for signed? Anyway, pre-existing, so: > Yes, I'll change to signed integer. > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> > >> if (-top_bits != param.select) { >> /* The gap between the two regions is a Translation fault */ >
diff --git a/target/arm/ptw.c b/target/arm/ptw.c index d0a53d0987f..424d1b54275 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; 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 */
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> --- target/arm/ptw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)