On 2 June 2014 17:21, Alex Bennée <alex.ben...@linaro.org> 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. thanks -- PMM