On 4/6/26 11:59 PM, Richard Henderson wrote:
> On 4/7/26 12:27, Pierrick Bouvier wrote:
>> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
>> ---
>> target/arm/cpu.c | 6 +-----
>> target/arm/tcg/translate.c | 11 +++++------
>> 2 files changed, 6 insertions(+), 11 deletions(-)
>>
>> diff --git a/target/arm/cpu.c b/target/arm/cpu.c
>> index ccc47c8a9ad..b62de8addff 100644
>> --- a/target/arm/cpu.c
>> +++ b/target/arm/cpu.c
>> @@ -828,15 +828,11 @@ static void arm_disas_set_info(const CPUState *cpu, disassemble_info *info)
>> }
>>
>> info->endian = BFD_ENDIAN_LITTLE;
>> - if (bswap_code(sctlr_b)) {
>> - info->endian = target_big_endian() ? BFD_ENDIAN_LITTLE : BFD_ENDIAN_BIG;
>> - }
>> info->flags &= ~INSN_ARM_BE32;
>> -#ifndef CONFIG_USER_ONLY
>> if (sctlr_b) {
>> + info->endian |= BFD_ENDIAN_BIG;
>> info->flags |= INSN_ARM_BE32;
>> }
>> -#endif
>> }
>>
>> static void aarch64_cpu_dump_state(CPUState *cs, FILE *f, int flags)
>
> With $subject, this should be split to its own patch.
>
Sure, will split it.
> With that,
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
>
>
> r~
>
>> diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c
>> index 1fbe41ec643..5b6a80930af 100644
>> --- a/target/arm/tcg/translate.c
>> +++ b/target/arm/tcg/translate.c
>> @@ -6283,14 +6283,13 @@ static void disas_thumb_insn(DisasContext *s, uint32_t insn)
>> static uint16_t arm_lduw_code(CPUARMState *env, DisasContextBase* s,
>> target_ulong addr, bool sctlr_b)
>> {
>> -#ifndef CONFIG_USER_ONLY
>> - /* In big-endian (BE32) mode, adjacent Thumb instructions have been swapped
>> - within each word. Undo that now. */
>> + MemOp end = MO_LE;
>> if (sctlr_b) {
>> + /* In BE32 mode, adjacent Thumb instructions are swapped. */
>> addr ^= 2;
>> + end = MO_BE;
>> }
>> -#endif
>> - return translator_lduw_swap(env, s, addr, bswap_code(sctlr_b));
>> + return translator_lduw_end(env, s, addr, end);
>> }
>>
>> static bool insn_crosses_page(CPUARMState *env, DisasContext *s)
>> @@ -6531,7 +6530,7 @@ static void arm_post_translate_insn(DisasContext *dc)
>> static uint32_t arm_ldl_code(CPUARMState *env, DisasContextBase *s,
>> target_ulong addr, bool sctlr_b)
>> {
>> - return translator_ldl_swap(env, s, addr, bswap_code(sctlr_b));
>> + return translator_ldl_end(env, s, addr, sctlr_b ? MO_BE : MO_LE);
>> }
>>
>> static void arm_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu)
>