[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RCF PATCH 5/8] arm/nwfps: remove use of cpsr_write() a
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [RCF PATCH 5/8] arm/nwfps: remove use of cpsr_write() and set flags directly |
Date: |
Wed, 04 Jun 2014 12:11:36 +0100 |
User-agent: |
mu4e 0.9.9.6pre3; emacs 24.3.91.3 |
Peter Maydell writes:
> On 2 June 2014 17:21, Alex Bennée <address@hidden> wrote:
>> This is a pre-cursor to removing the cpsr_write function.
>>
>> diff --git a/linux-user/arm/nwfpe/fpa11.h b/linux-user/arm/nwfpe/fpa11.h
>> index bb9ac65..0dbdf75 100644
>> --- a/linux-user/arm/nwfpe/fpa11.h
>> +++ b/linux-user/arm/nwfpe/fpa11.h
>> @@ -108,7 +108,10 @@ static inline void writeRegister(unsigned int x,
>> unsigned int y)
>>
>> static inline void writeConditionCodes(unsigned int x)
>> {
>> - cpsr_write(user_registers,x,CPSR_NZCV);
>> + user_registers->ZF = (~val) & CPSR_Z;
>> + user_registers->NF = val;
>> + user_registers->CF = (val >> 29) & 1;
>> + user_registers->VF = (val << 3) & 0x80000000;
>> }
>>
>> #define ARM_REG_PC 15
>
> This seems like it's clearly making things worse.
> We definitely don't want to have to have code in
> linux-user be aware of the "interesting" definitions
> of our ZF/NF/CF/VF fields.
<snip>
You are right. I could make restore_state_from_spsr use a mask like the
old cpsr_write did or as the flags are a special case have a flag only
setting function for these cases.
--
Alex Bennée
- [Qemu-devel] [RCF PATCH 0/8] aarch64 migration fixes and psr cleanup, Alex Bennée, 2014/06/02
- [Qemu-devel] [RCF PATCH 1/8] target-arm/cpu.h: document various program state functions, Alex Bennée, 2014/06/02
- [Qemu-devel] [RCF PATCH 2/8] target-arm/cpu.h: implement common state save/restore, Alex Bennée, 2014/06/02
- [Qemu-devel] [RCF PATCH 3/8] target-arm: Support save/load for 64 bit CPUs, Alex Bennée, 2014/06/02
- [Qemu-devel] [RCF PATCH 4/8] target-arm: replace cpsr_read/pstate_read calls, Alex Bennée, 2014/06/02
- [Qemu-devel] [RCF PATCH 5/8] arm/nwfps: remove use of cpsr_write() and set flags directly, Alex Bennée, 2014/06/02
- [Qemu-devel] [RCF PATCH 6/8] linux-user/main.c: __kernel_cmpxchg set env->CF directly, Alex Bennée, 2014/06/02
- [Qemu-devel] [RCF PATCH 7/8] target-arm: remove last users of cpsr_write, Alex Bennée, 2014/06/02
- [Qemu-devel] [RCF PATCH 8/8] target-arm: remove final users of pstate_write, Alex Bennée, 2014/06/02