diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-02-07 12:43:57 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2005-02-07 12:43:57 +0000 |
commit | a8d3431ae931aa44ee6228ffecf6277714389de7 (patch) | |
tree | 23a49bfa7b8189e0c72669bde4800fefe1857424 /target-arm/nwfpe/fpa11_cpdt.c | |
parent | 7ff4d2180b27b3356379ca66738da10ad8b2f73a (diff) |
endianness fixes
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1268 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-arm/nwfpe/fpa11_cpdt.c')
-rw-r--r-- | target-arm/nwfpe/fpa11_cpdt.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/target-arm/nwfpe/fpa11_cpdt.c b/target-arm/nwfpe/fpa11_cpdt.c index 283e34673c..c1d5615547 100644 --- a/target-arm/nwfpe/fpa11_cpdt.c +++ b/target-arm/nwfpe/fpa11_cpdt.c @@ -43,8 +43,13 @@ void loadDouble(const unsigned int Fn,const unsigned int *pMem) unsigned int *p; p = (unsigned int*)&fpa11->fpreg[Fn].fDouble; fpa11->fType[Fn] = typeDouble; +#ifdef WORDS_BIGENDIAN + get_user(p[0], &pMem[0]); /* sign & exponent */ + get_user(p[1], &pMem[1]); +#else get_user(p[0], &pMem[1]); get_user(p[1], &pMem[0]); /* sign & exponent */ +#endif } static inline @@ -133,8 +138,13 @@ void storeDouble(const unsigned int Fn,unsigned int *pMem) default: val = fpa11->fpreg[Fn].fDouble; } +#ifdef WORDS_BIGENDIAN + put_user(p[0], &pMem[0]); /* msw */ + put_user(p[1], &pMem[1]); /* lsw */ +#else put_user(p[1], &pMem[0]); /* msw */ put_user(p[0], &pMem[1]); /* lsw */ +#endif } static inline |