2004-04-09 Chris Demetriou <cgd@broadcom.com>
* sb1.igen (check_sbx): New function. (PABSDIFF.fmt, PABSDIFC.fmt, PAVG.fmt): Use check_sbx.
This commit is contained in:
parent
ccba17639b
commit
c6f9085cab
2 changed files with 28 additions and 21 deletions
|
@ -1,3 +1,8 @@
|
|||
2004-04-09 Chris Demetriou <cgd@broadcom.com>
|
||||
|
||||
* sb1.igen (check_sbx): New function.
|
||||
(PABSDIFF.fmt, PABSDIFC.fmt, PAVG.fmt): Use check_sbx.
|
||||
|
||||
2004-03-29 Chris Demetriou <cgd@broadcom.com>
|
||||
Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
|
|
|
@ -22,6 +22,20 @@
|
|||
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
// Helper:
|
||||
//
|
||||
// Check that the SB-1 extension instruction can currently be used, and
|
||||
// signal a ReservedInstruction exception if not.
|
||||
//
|
||||
|
||||
:function:::void:check_sbx:instruction_word insn
|
||||
*sb1:
|
||||
{
|
||||
if ((SR & status_SBX) == 0)
|
||||
SignalException(ReservedInstruction, insn);
|
||||
}
|
||||
|
||||
|
||||
// MDMX ASE Instructions
|
||||
// ---------------------
|
||||
//
|
||||
|
@ -152,13 +166,9 @@
|
|||
*sb1:
|
||||
{
|
||||
check_mdmx (SD_, instruction_0);
|
||||
if (SR & status_SBX)
|
||||
{
|
||||
check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
|
||||
StoreFPR(VD,fmt_mdmx,MX_AbsDiff(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
|
||||
}
|
||||
else
|
||||
SignalException(ReservedInstruction, instruction_0);
|
||||
check_sbx (SD_, instruction_0);
|
||||
check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
|
||||
StoreFPR(VD,fmt_mdmx,MX_AbsDiff(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
|
||||
}
|
||||
|
||||
|
||||
|
@ -167,13 +177,9 @@
|
|||
*sb1:
|
||||
{
|
||||
check_mdmx (SD_, instruction_0);
|
||||
if (SR & status_SBX)
|
||||
{
|
||||
check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
|
||||
MX_AbsDiffC(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
|
||||
}
|
||||
else
|
||||
SignalException(ReservedInstruction, instruction_0);
|
||||
check_sbx (SD_, instruction_0);
|
||||
check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
|
||||
MX_AbsDiffC(ValueFPR(VS,fmt_mdmx),VT,FMTSEL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -182,11 +188,7 @@
|
|||
*sb1:
|
||||
{
|
||||
check_mdmx (SD_, instruction_0);
|
||||
if (SR & status_SBX)
|
||||
{
|
||||
check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
|
||||
StoreFPR(VD,fmt_mdmx,MX_Avg(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
|
||||
}
|
||||
else
|
||||
SignalException(ReservedInstruction, instruction_0);
|
||||
check_sbx (SD_, instruction_0);
|
||||
check_mdmx_fmtsel (SD_, instruction_0, FMTSEL);
|
||||
StoreFPR(VD,fmt_mdmx,MX_Avg(ValueFPR(VS,fmt_mdmx),VT,FMTSEL));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue