mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
/* |
|
NetWinder Floating Point Emulator |
|
(c) Rebel.COM, 1998,1999 |
|
|
|
Direct questions, comments to Scott Bambrough <[email protected]> |
|
|
|
This program is free software; you can redistribute it and/or modify |
|
it under the terms of the GNU General Public License as published by |
|
the Free Software Foundation; either version 2 of the License, or |
|
(at your option) any later version. |
|
|
|
This program is distributed in the hope that it will be useful, |
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
GNU General Public License for more details. |
|
|
|
You should have received a copy of the GNU General Public License |
|
along with this program; if not, write to the Free Software |
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
*/ |
|
|
|
#include "fpa11.h" |
|
|
|
/* Read and write floating point status register */ |
|
static inline unsigned int readFPSR(void) |
|
{ |
|
FPA11 *fpa11 = GET_FPA11(); |
|
return (fpa11->fpsr); |
|
} |
|
|
|
static inline void writeFPSR(FPSR reg) |
|
{ |
|
FPA11 *fpa11 = GET_FPA11(); |
|
/* the sysid byte in the status register is readonly */ |
|
fpa11->fpsr = (fpa11->fpsr & MASK_SYSID) | (reg & ~MASK_SYSID); |
|
} |
|
|
|
/* Read and write floating point control register */ |
|
static inline FPCR readFPCR(void) |
|
{ |
|
FPA11 *fpa11 = GET_FPA11(); |
|
/* clear SB, AB and DA bits before returning FPCR */ |
|
return (fpa11->fpcr & ~MASK_RFC); |
|
} |
|
|
|
static inline void writeFPCR(FPCR reg) |
|
{ |
|
FPA11 *fpa11 = GET_FPA11(); |
|
fpa11->fpcr &= ~MASK_WFC; /* clear SB, AB and DA bits */ |
|
fpa11->fpcr |= (reg & MASK_WFC); /* write SB, AB and DA bits */ |
|
}
|
|
|