+2004-04-11 Chris Demetriou <cgd@broadcom.com>
+
+ * utils-fpu.inc (enable_fpu, ckm_fp_cc): New macros.
+ (clrset_fp_cc): Fix mask used for upper 7 condition codes.
+ * utils-mdmx.inc: Include utils-fpu.inc.
+ (enable_mdmx): Use enable_fpu.
+
2004-04-10 Chris Demetriou <cgd@broadcom.com>
* utils-fpu.inc: New file.
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ .macro enable_fpu fr
+ mfc0 $20, $12
+ or $20, $20, (1 << 29) | (\fr << 26)
+ mtc0 $20, $20
+ .endm
+
###
### Data movement macros
###
.macro clrset_fp_cc clr, set
cfc1 $20, $31
- or $20, $20, (((\clr & 0xf7) << 24) | ((\clr & 0x01) << 23))
- xor $20, $20, (((\clr & 0xf7) << 24) | ((\clr & 0x01) << 23))
- or $20, $20, (((\set & 0xf7) << 24) | ((\set & 0x01) << 23))
+ or $20, $20, (((\clr & 0xfe) << 24) | ((\clr & 0x01) << 23))
+ xor $20, $20, (((\clr & 0xfe) << 24) | ((\clr & 0x01) << 23))
+ or $20, $20, (((\set & 0xfe) << 24) | ((\set & 0x01) << 23))
ctc1 $20, $31
.endm
bnez $20, _fail
nop
.endm
+
+ .macro ckm_fp_cc v, mask
+ get_fp_cc $20
+ xori $20, $20, \v
+ andi $20, $20, \mask
+ bnez $20, _fail
+ nop
+ .endm
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ .include "utils-fpu.inc"
+
###
### Shared macros
###
- # Enable MDMX, by setting Status.CU1, .FR, and .MX
+ # Enable MDMX: enable the FPU w/ FR=1, then set Status.MX
.macro enable_mdmx
- mfc0 $20, $12
- or $20, $20, (1 << 29) | (1 << 26) | (1 << 24)
- mtc0 $20, $12
+ enable_fpu 1
+ mfc0 $20, $12
+ or $20, $20, (1 << 24)
+ mtc0 $20, $12
.endm