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.
This commit is contained in:
parent
cdc89eb2c3
commit
adad0f8a2b
3 changed files with 31 additions and 7 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
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>
|
2004-04-10 Chris Demetriou <cgd@broadcom.com>
|
||||||
|
|
||||||
* utils-fpu.inc: New file.
|
* utils-fpu.inc: New file.
|
||||||
|
|
|
@ -18,6 +18,12 @@
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
# 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
|
### Data movement macros
|
||||||
###
|
###
|
||||||
|
@ -57,9 +63,9 @@
|
||||||
|
|
||||||
.macro clrset_fp_cc clr, set
|
.macro clrset_fp_cc clr, set
|
||||||
cfc1 $20, $31
|
cfc1 $20, $31
|
||||||
or $20, $20, (((\clr & 0xf7) << 24) | ((\clr & 0x01) << 23))
|
or $20, $20, (((\clr & 0xfe) << 24) | ((\clr & 0x01) << 23))
|
||||||
xor $20, $20, (((\clr & 0xf7) << 24) | ((\clr & 0x01) << 23))
|
xor $20, $20, (((\clr & 0xfe) << 24) | ((\clr & 0x01) << 23))
|
||||||
or $20, $20, (((\set & 0xf7) << 24) | ((\set & 0x01) << 23))
|
or $20, $20, (((\set & 0xfe) << 24) | ((\set & 0x01) << 23))
|
||||||
ctc1 $20, $31
|
ctc1 $20, $31
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
@ -89,3 +95,11 @@
|
||||||
bnez $20, _fail
|
bnez $20, _fail
|
||||||
nop
|
nop
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro ckm_fp_cc v, mask
|
||||||
|
get_fp_cc $20
|
||||||
|
xori $20, $20, \v
|
||||||
|
andi $20, $20, \mask
|
||||||
|
bnez $20, _fail
|
||||||
|
nop
|
||||||
|
.endm
|
||||||
|
|
|
@ -18,14 +18,17 @@
|
||||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
.include "utils-fpu.inc"
|
||||||
|
|
||||||
###
|
###
|
||||||
### Shared macros
|
### 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
|
.macro enable_mdmx
|
||||||
|
enable_fpu 1
|
||||||
mfc0 $20, $12
|
mfc0 $20, $12
|
||||||
or $20, $20, (1 << 29) | (1 << 26) | (1 << 24)
|
or $20, $20, (1 << 24)
|
||||||
mtc0 $20, $12
|
mtc0 $20, $12
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue