+2006-06-14 Dave Brolley <brolley@redhat.com>
+
+ * cgen-fpu.h (cgen_fp_ops): All operations now take
+ const cgen_fpu*.
+ * cgen-fpu.cxx: Likewise.
+
2006-06-06 Frank Ch. Eigler <fche@elastic.org>
* Makefile.am, Makefile.in: Add "opcodes/cgen-bitset" to library.
{
/* basic SF ops */
SF
-cgen_fp_ops::addsf (cgen_fpu* fpu, SF x, SF y)
+cgen_fp_ops::addsf (const cgen_fpu* fpu, SF x, SF y)
{
fp r = fp (x) + fp (y);
check_result (fpu, r);
return tmp;
}
-SF cgen_fp_ops::subsf (cgen_fpu* fpu, SF x, SF y)
+SF cgen_fp_ops::subsf (const cgen_fpu* fpu, SF x, SF y)
{
fp r = fp (x) - fp (y);
check_result (fpu, r);
return tmp;
}
-SF cgen_fp_ops::mulsf (cgen_fpu* fpu, SF x, SF y)
+SF cgen_fp_ops::mulsf (const cgen_fpu* fpu, SF x, SF y)
{
fp r = fp (x) * fp (y);
check_result (fpu, r);
return tmp;
}
-SF cgen_fp_ops::divsf (cgen_fpu* fpu, SF x, SF y)
+SF cgen_fp_ops::divsf (const cgen_fpu* fpu, SF x, SF y)
{
fp r = fp (x) / fp (y);
check_result (fpu, r);
return tmp;
}
-SF cgen_fp_ops::negsf (cgen_fpu* fpu, SF x)
+SF cgen_fp_ops::negsf (const cgen_fpu* fpu, SF x)
{
fp r (x);
r = fp::neg (r);
return tmp;
}
-SF cgen_fp_ops::abssf (cgen_fpu* fpu, SF x)
+SF cgen_fp_ops::abssf (const cgen_fpu* fpu, SF x)
{
fp r (x);
r = fp::abs (r);
return tmp;
}
-SF cgen_fp_ops::sqrtsf (cgen_fpu* fpu, SF x)
+SF cgen_fp_ops::sqrtsf (const cgen_fpu* fpu, SF x)
{
fp r (x);
r = fp::sqrt (r);
#if 0 // not implemented yet
-SF cgen_fp_ops::invsf (cgen_fpu*, SF);
-SF cgen_fp_ops::cossf (cgen_fpu*, SF);
-SF cgen_fp_ops::sinsf (cgen_fpu*, SF);
-SF cgen_fp_ops::minsf (cgen_fpu*, SF, SF);
-SF cgen_fp_ops::maxsf (cgen_fpu*, SF, SF);
+SF cgen_fp_ops::invsf (const cgen_fpu*, SF);
+SF cgen_fp_ops::cossf (const cgen_fpu*, SF);
+SF cgen_fp_ops::sinsf (const cgen_fpu*, SF);
+SF cgen_fp_ops::minsf (const cgen_fpu*, SF, SF);
+SF cgen_fp_ops::maxsf (const cgen_fpu*, SF, SF);
#endif
-int cgen_fp_ops::eqsf (cgen_fpu*, SF x, SF y)
+int cgen_fp_ops::eqsf (const cgen_fpu*, SF x, SF y)
{
return fp (x) == fp (y);
}
-int cgen_fp_ops::nesf (cgen_fpu*, SF x, SF y)
+int cgen_fp_ops::nesf (const cgen_fpu*, SF x, SF y)
{
return fp (x) != fp (y);
}
-int cgen_fp_ops::ltsf (cgen_fpu*, SF x, SF y)
+int cgen_fp_ops::ltsf (const cgen_fpu*, SF x, SF y)
{
return fp (x) < fp (y);
}
-int cgen_fp_ops::lesf (cgen_fpu*, SF x, SF y)
+int cgen_fp_ops::lesf (const cgen_fpu*, SF x, SF y)
{
return fp (x) <= fp (y);
}
-int cgen_fp_ops::gtsf (cgen_fpu*, SF x, SF y)
+int cgen_fp_ops::gtsf (const cgen_fpu*, SF x, SF y)
{
return fp (x) > fp (y);
}
-int cgen_fp_ops::gesf (cgen_fpu*, SF x, SF y)
+int cgen_fp_ops::gesf (const cgen_fpu*, SF x, SF y)
{
return fp (x) >= fp (y);
}
-int cgen_fp_ops::unorderedsf (cgen_fpu*, SF x, SF y)
+int cgen_fp_ops::unorderedsf (const cgen_fpu*, SF x, SF y)
{
fp f1(x);
fp f2(y);
}
/* basic DF ops */
-DF cgen_fp_ops::adddf (cgen_fpu *fpu, DF x, DF y)
+DF cgen_fp_ops::adddf (const cgen_fpu *fpu, DF x, DF y)
{
fp r = fp (x) + fp (y);
check_result (fpu, r);
return tmp;
}
-DF cgen_fp_ops::subdf (cgen_fpu *fpu, DF x, DF y)
+DF cgen_fp_ops::subdf (const cgen_fpu *fpu, DF x, DF y)
{
fp r = fp (x) - fp (y);
check_result (fpu, r);
return tmp;
}
-DF cgen_fp_ops::muldf (cgen_fpu *fpu, DF x, DF y)
+DF cgen_fp_ops::muldf (const cgen_fpu *fpu, DF x, DF y)
{
fp r = fp (x) * fp (y);
check_result (fpu, r);
return tmp;
}
-DF cgen_fp_ops::divdf (cgen_fpu *fpu, DF x, DF y)
+DF cgen_fp_ops::divdf (const cgen_fpu *fpu, DF x, DF y)
{
fp r = fp (x) / fp (y);
check_result (fpu, r);
return tmp;
}
-DF cgen_fp_ops::negdf (cgen_fpu *fpu, DF x)
+DF cgen_fp_ops::negdf (const cgen_fpu *fpu, DF x)
{
fp r (x);
r = fp::neg (r);
return tmp;
}
-DF cgen_fp_ops::absdf (cgen_fpu *fpu, DF x)
+DF cgen_fp_ops::absdf (const cgen_fpu *fpu, DF x)
{
fp r (x);
r = fp::abs (r);
return tmp;
}
-DF cgen_fp_ops::sqrtdf (cgen_fpu *fpu, DF x)
+DF cgen_fp_ops::sqrtdf (const cgen_fpu *fpu, DF x)
{
fp r (x);
r = fp::sqrt (r);
}
#if 0
-DF cgen_fp_ops::invdf (cgen_fpu*, DF);
-DF cgen_fp_ops::cosdf (cgen_fpu*, DF);
-DF cgen_fp_ops::sindf (cgen_fpu*, DF);
-DF cgen_fp_ops::mindf (cgen_fpu*, DF, DF);
-DF cgen_fp_ops::maxdf (cgen_fpu*, DF, DF);
+DF cgen_fp_ops::invdf (const cgen_fpu*, DF);
+DF cgen_fp_ops::cosdf (const cgen_fpu*, DF);
+DF cgen_fp_ops::sindf (const cgen_fpu*, DF);
+DF cgen_fp_ops::mindf (const cgen_fpu*, DF, DF);
+DF cgen_fp_ops::maxdf (const cgen_fpu*, DF, DF);
#endif
-int cgen_fp_ops::eqdf (cgen_fpu *fpu, DF x, DF y)
+int cgen_fp_ops::eqdf (const cgen_fpu *fpu, DF x, DF y)
{
return fp (x) == fp (y);
}
-int cgen_fp_ops::nedf (cgen_fpu *fpu, DF x, DF y)
+int cgen_fp_ops::nedf (const cgen_fpu *fpu, DF x, DF y)
{
return fp (x) == fp (y);
}
-int cgen_fp_ops::ltdf (cgen_fpu *fpu, DF x, DF y)
+int cgen_fp_ops::ltdf (const cgen_fpu *fpu, DF x, DF y)
{
return fp (x) < fp (y);
}
-int cgen_fp_ops::ledf (cgen_fpu *fpu, DF x, DF y)
+int cgen_fp_ops::ledf (const cgen_fpu *fpu, DF x, DF y)
{
return fp (x) <= fp (y);
}
-int cgen_fp_ops::gtdf (cgen_fpu *fpu, DF x, DF y)
+int cgen_fp_ops::gtdf (const cgen_fpu *fpu, DF x, DF y)
{
return fp (x) > fp (y);
}
-int cgen_fp_ops::gedf (cgen_fpu *fpu, DF x, DF y)
+int cgen_fp_ops::gedf (const cgen_fpu *fpu, DF x, DF y)
{
return fp (x) >= fp (y);
}
-int cgen_fp_ops::unordereddf (cgen_fpu *fpu, DF x, DF y)
+int cgen_fp_ops::unordereddf (const cgen_fpu *fpu, DF x, DF y)
{
fp f1(x);
fp f2(y);
}
/* SF/DF conversion ops */
-DF cgen_fp_ops::fextsfdf (cgen_fpu *fpu, SF x)
+DF cgen_fp_ops::fextsfdf (const cgen_fpu *fpu, SF x)
{
fp r (x);
DF tmp;
return tmp;
}
-SF cgen_fp_ops::ftruncdfsf (cgen_fpu *fpu, DF x)
+SF cgen_fp_ops::ftruncdfsf (const cgen_fpu *fpu, DF x)
{
fp r (x);
SF tmp;
return tmp;
}
-SF cgen_fp_ops::floatsisf (cgen_fpu* fpu, SI x)
+SF cgen_fp_ops::floatsisf (const cgen_fpu* fpu, SI x)
{
fp r = fp::from_int (x);
check_result (fpu, r);
return tmp;
}
-SF cgen_fp_ops::floatdisf (cgen_fpu *fpu, DI x)
+SF cgen_fp_ops::floatdisf (const cgen_fpu *fpu, DI x)
{
fp r = fp::from_int (x);
check_result (fpu, r);
}
#if 0 // not implemented yet
-SF cgen_fp_ops::ufloatsisf (cgen_fpu*, USI);
-SF cgen_fp_ops::ufloatdisf (cgen_fpu*, UDI);
+SF cgen_fp_ops::ufloatsisf (const cgen_fpu*, USI);
+SF cgen_fp_ops::ufloatdisf (const cgen_fpu*, UDI);
#endif // not implemented yet
-SI cgen_fp_ops::fixsfsi (cgen_fpu *fpu, SF x)
+SI cgen_fp_ops::fixsfsi (const cgen_fpu *fpu, SF x)
{
fp r (x);
SI tmp;
return tmp;
}
-DI cgen_fp_ops::fixsfdi (cgen_fpu *fpu, SF x)
+DI cgen_fp_ops::fixsfdi (const cgen_fpu *fpu, SF x)
{
fp r (x);
DI tmp;
}
#if 0 // not implemented yet
-USI cgen_fp_ops::ufixsfsi (cgen_fpu*, SF)
-UDI cgen_fp_ops::ufixsfdi (cgen_fpu*, SF);
+USI cgen_fp_ops::ufixsfsi (const cgen_fpu*, SF)
+UDI cgen_fp_ops::ufixsfdi (const cgen_fpu*, SF);
#endif
-DF cgen_fp_ops::floatsidf (cgen_fpu *fpu, SI x)
+DF cgen_fp_ops::floatsidf (const cgen_fpu *fpu, SI x)
{
fp r = fp::from_int (x);
check_result (fpu, r);
return tmp;
}
-DF cgen_fp_ops::floatdidf (cgen_fpu *fpu, DI x)
+DF cgen_fp_ops::floatdidf (const cgen_fpu *fpu, DI x)
{
fp r = fp::from_int (x);
check_result (fpu, r);
}
#if 0
-DF cgen_fp_ops::ufloatsidf (cgen_fpu*, USI);
-DF cgen_fp_ops::ufloatdidf (cgen_fpu*, UDI);
+DF cgen_fp_ops::ufloatsidf (const cgen_fpu*, USI);
+DF cgen_fp_ops::ufloatdidf (const cgen_fpu*, UDI);
#endif
-SI cgen_fp_ops::fixdfsi (cgen_fpu *fpu, DF x)
+SI cgen_fp_ops::fixdfsi (const cgen_fpu *fpu, DF x)
{
fp r (x);
SI tmp;
return tmp;
}
-DI cgen_fp_ops::fixdfdi (cgen_fpu *fpu, DF x)
+DI cgen_fp_ops::fixdfdi (const cgen_fpu *fpu, DF x)
{
fp r (x);
DI tmp;
}
#if 0
-USI cgen_fp_ops::ufixdfsi (cgen_fpu*, DF);
-UDI cgen_fp_ops::ufixdfdi (cgen_fpu*, DF);
+USI cgen_fp_ops::ufixdfsi (const cgen_fpu*, DF);
+UDI cgen_fp_ops::ufixdfdi (const cgen_fpu*, DF);
/* XF mode support (kept separate 'cus not always present) */
-XF cgen_fp_ops::addxf (cgen_fpu*, XF, XF);
-XF cgen_fp_ops::subxf (cgen_fpu*, XF, XF);
-XF cgen_fp_ops::mulxf (cgen_fpu*, XF, XF);
-XF cgen_fp_ops::divxf (cgen_fpu*, XF, XF);
-XF cgen_fp_ops::negxf (cgen_fpu*, XF);
-XF cgen_fp_ops::absxf (cgen_fpu*, XF);
-XF cgen_fp_ops::sqrtxf (cgen_fpu*, XF);
-XF cgen_fp_ops::invxf (cgen_fpu*, XF);
-XF cgen_fp_ops::cosxf (cgen_fpu*, XF);
-XF cgen_fp_ops::sinxf (cgen_fpu*, XF);
-XF cgen_fp_ops::minxf (cgen_fpu*, XF, XF);
-XF cgen_fp_ops::maxxf (cgen_fpu*, XF, XF);
-
-int cgen_fp_ops::eqxf (cgen_fpu*, XF, XF);
-int cgen_fp_ops::nexf (cgen_fpu*, XF, XF);
-int cgen_fp_ops::ltxf (cgen_fpu*, XF, XF);
-int cgen_fp_ops::lexf (cgen_fpu*, XF, XF);
-int cgen_fp_ops::gtxf (cgen_fpu*, XF, XF);
-int cgen_fp_ops::gexf (cgen_fpu*, XF, XF);
-
-XF cgen_fp_ops::extsfxf (cgen_fpu*, SF);
-XF cgen_fp_ops::extdfxf (cgen_fpu*, DF);
-SF cgen_fp_ops::truncxfsf (cgen_fpu*, XF);
-DF cgen_fp_ops::truncxfdf (cgen_fpu*, XF);
-
-XF cgen_fp_ops::floatsixf (cgen_fpu*, SI);
-XF cgen_fp_ops::floatdixf (cgen_fpu*, DI);
-XF cgen_fp_ops::ufloatsixf (cgen_fpu*, USI);
-XF cgen_fp_ops::ufloatdixf (cgen_fpu*, UDI);
-
-SI cgen_fp_ops::fixxfsi (cgen_fpu*, XF);
-DI cgen_fp_ops::fixxfdi (cgen_fpu*, XF);
-USI cgen_fp_ops::ufixxfsi (cgen_fpu*, XF);
-UDI cgen_fp_ops::ufixxfdi (cgen_fpu*, XF);
+XF cgen_fp_ops::addxf (const cgen_fpu*, XF, XF);
+XF cgen_fp_ops::subxf (const cgen_fpu*, XF, XF);
+XF cgen_fp_ops::mulxf (const cgen_fpu*, XF, XF);
+XF cgen_fp_ops::divxf (const cgen_fpu*, XF, XF);
+XF cgen_fp_ops::negxf (const cgen_fpu*, XF);
+XF cgen_fp_ops::absxf (const cgen_fpu*, XF);
+XF cgen_fp_ops::sqrtxf (const cgen_fpu*, XF);
+XF cgen_fp_ops::invxf (const cgen_fpu*, XF);
+XF cgen_fp_ops::cosxf (const cgen_fpu*, XF);
+XF cgen_fp_ops::sinxf (const cgen_fpu*, XF);
+XF cgen_fp_ops::minxf (const cgen_fpu*, XF, XF);
+XF cgen_fp_ops::maxxf (const cgen_fpu*, XF, XF);
+
+int cgen_fp_ops::eqxf (const cgen_fpu*, XF, XF);
+int cgen_fp_ops::nexf (const cgen_fpu*, XF, XF);
+int cgen_fp_ops::ltxf (const cgen_fpu*, XF, XF);
+int cgen_fp_ops::lexf (const cgen_fpu*, XF, XF);
+int cgen_fp_ops::gtxf (const cgen_fpu*, XF, XF);
+int cgen_fp_ops::gexf (const cgen_fpu*, XF, XF);
+
+XF cgen_fp_ops::extsfxf (const cgen_fpu*, SF);
+XF cgen_fp_ops::extdfxf (const cgen_fpu*, DF);
+SF cgen_fp_ops::truncxfsf (const cgen_fpu*, XF);
+DF cgen_fp_ops::truncxfdf (const cgen_fpu*, XF);
+
+XF cgen_fp_ops::floatsixf (const cgen_fpu*, SI);
+XF cgen_fp_ops::floatdixf (const cgen_fpu*, DI);
+XF cgen_fp_ops::ufloatsixf (const cgen_fpu*, USI);
+XF cgen_fp_ops::ufloatdixf (const cgen_fpu*, UDI);
+
+SI cgen_fp_ops::fixxfsi (const cgen_fpu*, XF);
+DI cgen_fp_ops::fixxfdi (const cgen_fpu*, XF);
+USI cgen_fp_ops::ufixxfsi (const cgen_fpu*, XF);
+UDI cgen_fp_ops::ufixxfdi (const cgen_fpu*, XF);
/* TF mode support (kept separate 'cus not always present) */
-TF cgen_fp_ops::addtf (cgen_fpu*, TF, TF);
-TF cgen_fp_ops::subtf (cgen_fpu*, TF, TF);
-TF cgen_fp_ops::multf (cgen_fpu*, TF, TF);
-TF cgen_fp_ops::divtf (cgen_fpu*, TF, TF);
-TF cgen_fp_ops::negtf (cgen_fpu*, TF);
-TF cgen_fp_ops::abstf (cgen_fpu*, TF);
-TF cgen_fp_ops::sqrttf (cgen_fpu*, TF);
-TF cgen_fp_ops::invtf (cgen_fpu*, TF);
-TF cgen_fp_ops::costf (cgen_fpu*, TF);
-TF cgen_fp_ops::sintf (cgen_fpu*, TF);
-TF cgen_fp_ops::mintf (cgen_fpu*, TF, TF);
-TF cgen_fp_ops::maxtf (cgen_fpu*, TF, TF);
-
-int cgen_fp_ops::eqtf (cgen_fpu*, TF, TF);
-int cgen_fp_ops::netf (cgen_fpu*, TF, TF);
-int cgen_fp_ops::lttf (cgen_fpu*, TF, TF);
-int cgen_fp_ops::letf (cgen_fpu*, TF, TF);
-int cgen_fp_ops::gttf (cgen_fpu*, TF, TF);
-int cgen_fp_ops::getf (cgen_fpu*, TF, TF);
-
-TF cgen_fp_ops::extsftf (cgen_fpu*, SF);
-TF cgen_fp_ops::extdftf (cgen_fpu*, DF);
-SF cgen_fp_ops::trunctfsf (cgen_fpu*, TF);
-DF cgen_fp_ops::trunctfdf (cgen_fpu*, TF);
-
-TF cgen_fp_ops::floatsitf (cgen_fpu*, SI);
-TF cgen_fp_ops::floatditf (cgen_fpu*, DI);
-TF cgen_fp_ops::ufloatsitf (cgen_fpu*, USI);
-TF cgen_fp_ops::ufloatditf (cgen_fpu*, UDI);
-
-SI cgen_fp_ops::fixtfsi (cgen_fpu*, TF);
-DI cgen_fp_ops::fixtfdi (cgen_fpu*, TF);
-USI cgen_fp_ops::ufixtfsi (cgen_fpu*, TF);
-UDI cgen_fp_ops::ufixtfdi (cgen_fpu*, TF);
+TF cgen_fp_ops::addtf (const cgen_fpu*, TF, TF);
+TF cgen_fp_ops::subtf (const cgen_fpu*, TF, TF);
+TF cgen_fp_ops::multf (const cgen_fpu*, TF, TF);
+TF cgen_fp_ops::divtf (const cgen_fpu*, TF, TF);
+TF cgen_fp_ops::negtf (const cgen_fpu*, TF);
+TF cgen_fp_ops::abstf (const cgen_fpu*, TF);
+TF cgen_fp_ops::sqrttf (const cgen_fpu*, TF);
+TF cgen_fp_ops::invtf (const cgen_fpu*, TF);
+TF cgen_fp_ops::costf (const cgen_fpu*, TF);
+TF cgen_fp_ops::sintf (const cgen_fpu*, TF);
+TF cgen_fp_ops::mintf (const cgen_fpu*, TF, TF);
+TF cgen_fp_ops::maxtf (const cgen_fpu*, TF, TF);
+
+int cgen_fp_ops::eqtf (const cgen_fpu*, TF, TF);
+int cgen_fp_ops::netf (const cgen_fpu*, TF, TF);
+int cgen_fp_ops::lttf (const cgen_fpu*, TF, TF);
+int cgen_fp_ops::letf (const cgen_fpu*, TF, TF);
+int cgen_fp_ops::gttf (const cgen_fpu*, TF, TF);
+int cgen_fp_ops::getf (const cgen_fpu*, TF, TF);
+
+TF cgen_fp_ops::extsftf (const cgen_fpu*, SF);
+TF cgen_fp_ops::extdftf (const cgen_fpu*, DF);
+SF cgen_fp_ops::trunctfsf (const cgen_fpu*, TF);
+DF cgen_fp_ops::trunctfdf (const cgen_fpu*, TF);
+
+TF cgen_fp_ops::floatsitf (const cgen_fpu*, SI);
+TF cgen_fp_ops::floatditf (const cgen_fpu*, DI);
+TF cgen_fp_ops::ufloatsitf (const cgen_fpu*, USI);
+TF cgen_fp_ops::ufloatditf (const cgen_fpu*, UDI);
+
+SI cgen_fp_ops::fixtfsi (const cgen_fpu*, TF);
+DI cgen_fp_ops::fixtfdi (const cgen_fpu*, TF);
+USI cgen_fp_ops::ufixtfsi (const cgen_fpu*, TF);
+UDI cgen_fp_ops::ufixtfdi (const cgen_fpu*, TF);
#endif // not implemented yet
}; // namespace cgen
class cgen_fp_ops {
public:
// default is no error checking
- virtual void check_result (cgen_fpu*, fp &) {}
+ virtual void check_result (const cgen_fpu*, fp &) {}
/* basic SF ops */
- virtual SF addsf (cgen_fpu*, SF, SF);
- virtual SF subsf (cgen_fpu*, SF, SF);
- virtual SF mulsf (cgen_fpu*, SF, SF);
- virtual SF divsf (cgen_fpu*, SF, SF);
- virtual SF negsf (cgen_fpu*, SF);
- virtual SF abssf (cgen_fpu*, SF);
- virtual SF sqrtsf (cgen_fpu*, SF);
+ virtual SF addsf (const cgen_fpu*, SF, SF);
+ virtual SF subsf (const cgen_fpu*, SF, SF);
+ virtual SF mulsf (const cgen_fpu*, SF, SF);
+ virtual SF divsf (const cgen_fpu*, SF, SF);
+ virtual SF negsf (const cgen_fpu*, SF);
+ virtual SF abssf (const cgen_fpu*, SF);
+ virtual SF sqrtsf (const cgen_fpu*, SF);
#if 0
- virtual SF invsf (cgen_fpu*, SF);
- virtual SF cossf (cgen_fpu*, SF);
- virtual SF sinsf (cgen_fpu*, SF);
- virtual SF minsf (cgen_fpu*, SF, SF);
- virtual SF maxsf (cgen_fpu*, SF, SF);
+ virtual SF invsf (const cgen_fpu*, SF);
+ virtual SF cossf (const cgen_fpu*, SF);
+ virtual SF sinsf (const cgen_fpu*, SF);
+ virtual SF minsf (const cgen_fpu*, SF, SF);
+ virtual SF maxsf (const cgen_fpu*, SF, SF);
#endif
- virtual int eqsf (cgen_fpu*, SF, SF);
- virtual int nesf (cgen_fpu*, SF, SF);
- virtual int ltsf (cgen_fpu*, SF, SF);
- virtual int lesf (cgen_fpu*, SF, SF);
- virtual int gtsf (cgen_fpu*, SF, SF);
- virtual int gesf (cgen_fpu*, SF, SF);
- virtual int unorderedsf (cgen_fpu*, SF, SF);
+ virtual int eqsf (const cgen_fpu*, SF, SF);
+ virtual int nesf (const cgen_fpu*, SF, SF);
+ virtual int ltsf (const cgen_fpu*, SF, SF);
+ virtual int lesf (const cgen_fpu*, SF, SF);
+ virtual int gtsf (const cgen_fpu*, SF, SF);
+ virtual int gesf (const cgen_fpu*, SF, SF);
+ virtual int unorderedsf (const cgen_fpu*, SF, SF);
/* basic DF ops */
- virtual DF adddf (cgen_fpu*, DF, DF);
- virtual DF subdf (cgen_fpu*, DF, DF);
- virtual DF muldf (cgen_fpu*, DF, DF);
- virtual DF divdf (cgen_fpu*, DF, DF);
- virtual DF negdf (cgen_fpu*, DF);
- virtual DF absdf (cgen_fpu*, DF);
- virtual DF sqrtdf (cgen_fpu*, DF);
+ virtual DF adddf (const cgen_fpu*, DF, DF);
+ virtual DF subdf (const cgen_fpu*, DF, DF);
+ virtual DF muldf (const cgen_fpu*, DF, DF);
+ virtual DF divdf (const cgen_fpu*, DF, DF);
+ virtual DF negdf (const cgen_fpu*, DF);
+ virtual DF absdf (const cgen_fpu*, DF);
+ virtual DF sqrtdf (const cgen_fpu*, DF);
#if 0
- virtual DF invdf (cgen_fpu*, DF);
- virtual DF cosdf (cgen_fpu*, DF);
- virtual DF sindf (cgen_fpu*, DF);
- virtual DF mindf (cgen_fpu*, DF, DF);
- virtual DF maxdf (cgen_fpu*, DF, DF);
+ virtual DF invdf (const cgen_fpu*, DF);
+ virtual DF cosdf (const cgen_fpu*, DF);
+ virtual DF sindf (const cgen_fpu*, DF);
+ virtual DF mindf (const cgen_fpu*, DF, DF);
+ virtual DF maxdf (const cgen_fpu*, DF, DF);
#endif
- virtual int eqdf (cgen_fpu*, DF, DF);
- virtual int nedf (cgen_fpu*, DF, DF);
- virtual int ltdf (cgen_fpu*, DF, DF);
- virtual int ledf (cgen_fpu*, DF, DF);
- virtual int gtdf (cgen_fpu*, DF, DF);
- virtual int gedf (cgen_fpu*, DF, DF);
- virtual int unordereddf (cgen_fpu*, DF, DF);
+ virtual int eqdf (const cgen_fpu*, DF, DF);
+ virtual int nedf (const cgen_fpu*, DF, DF);
+ virtual int ltdf (const cgen_fpu*, DF, DF);
+ virtual int ledf (const cgen_fpu*, DF, DF);
+ virtual int gtdf (const cgen_fpu*, DF, DF);
+ virtual int gedf (const cgen_fpu*, DF, DF);
+ virtual int unordereddf (const cgen_fpu*, DF, DF);
/* SF/DF conversion ops */
- virtual DF fextsfdf (cgen_fpu*, SF);
- virtual SF ftruncdfsf (cgen_fpu*, DF);
+ virtual DF fextsfdf (const cgen_fpu*, SF);
+ virtual SF ftruncdfsf (const cgen_fpu*, DF);
- virtual SF floatsisf (cgen_fpu*, SI);
- virtual SF floatdisf (cgen_fpu*, DI);
+ virtual SF floatsisf (const cgen_fpu*, SI);
+ virtual SF floatdisf (const cgen_fpu*, DI);
#if 0 // not implemented yet
- virtual SF ufloatsisf (cgen_fpu*, USI);
- virtual SF ufloatdisf (cgen_fpu*, UDI);
+ virtual SF ufloatsisf (const cgen_fpu*, USI);
+ virtual SF ufloatdisf (const cgen_fpu*, UDI);
#endif // not implemented yet
- virtual SI fixsfsi (cgen_fpu*, SF);
- virtual DI fixsfdi (cgen_fpu*, SF);
+ virtual SI fixsfsi (const cgen_fpu*, SF);
+ virtual DI fixsfdi (const cgen_fpu*, SF);
#if 0 // not implemented yet
- virtual USI ufixsfsi (cgen_fpu*, SF);
- virtual UDI ufixsfdi (cgen_fpu*, SF);
+ virtual USI ufixsfsi (const cgen_fpu*, SF);
+ virtual UDI ufixsfdi (const cgen_fpu*, SF);
#endif
- virtual DF floatsidf (cgen_fpu*, SI);
- virtual DF floatdidf (cgen_fpu*, DI);
+ virtual DF floatsidf (const cgen_fpu*, SI);
+ virtual DF floatdidf (const cgen_fpu*, DI);
#if 0
- virtual DF ufloatsidf (cgen_fpu*, USI);
- virtual DF ufloatdidf (cgen_fpu*, UDI);
+ virtual DF ufloatsidf (const cgen_fpu*, USI);
+ virtual DF ufloatdidf (const cgen_fpu*, UDI);
#endif
- virtual SI fixdfsi (cgen_fpu*, DF);
- virtual DI fixdfdi (cgen_fpu*, DF);
+ virtual SI fixdfsi (const cgen_fpu*, DF);
+ virtual DI fixdfdi (const cgen_fpu*, DF);
#if 0
- virtual USI ufixdfsi (cgen_fpu*, DF);
- virtual UDI ufixdfdi (cgen_fpu*, DF);
+ virtual USI ufixdfsi (const cgen_fpu*, DF);
+ virtual UDI ufixdfdi (const cgen_fpu*, DF);
/* XF mode support (kept separate 'cus not always present) */
- virtual XF addxf (cgen_fpu*, XF, XF);
- virtual XF subxf (cgen_fpu*, XF, XF);
- virtual XF mulxf (cgen_fpu*, XF, XF);
- virtual XF divxf (cgen_fpu*, XF, XF);
- virtual XF negxf (cgen_fpu*, XF);
- virtual XF absxf (cgen_fpu*, XF);
- virtual XF sqrtxf (cgen_fpu*, XF);
- virtual XF invxf (cgen_fpu*, XF);
- virtual XF cosxf (cgen_fpu*, XF);
- virtual XF sinxf (cgen_fpu*, XF);
- virtual XF minxf (cgen_fpu*, XF, XF);
- virtual XF maxxf (cgen_fpu*, XF, XF);
-
- virtual int eqxf (cgen_fpu*, XF, XF);
- virtual int nexf (cgen_fpu*, XF, XF);
- virtual int ltxf (cgen_fpu*, XF, XF);
- virtual int lexf (cgen_fpu*, XF, XF);
- virtual int gtxf (cgen_fpu*, XF, XF);
- virtual int gexf (cgen_fpu*, XF, XF);
-
- virtual XF extsfxf (cgen_fpu*, SF);
- virtual XF extdfxf (cgen_fpu*, DF);
- virtual SF truncxfsf (cgen_fpu*, XF);
- virtual DF truncxfdf (cgen_fpu*, XF);
-
- virtual XF floatsixf (cgen_fpu*, SI);
- virtual XF floatdixf (cgen_fpu*, DI);
- virtual XF ufloatsixf (cgen_fpu*, USI);
- virtual XF ufloatdixf (cgen_fpu*, UDI);
-
- virtual SI fixxfsi (cgen_fpu*, XF);
- virtual DI fixxfdi (cgen_fpu*, XF);
- virtual USI ufixxfsi (cgen_fpu*, XF);
- virtual UDI ufixxfdi (cgen_fpu*, XF);
+ virtual XF addxf (const cgen_fpu*, XF, XF);
+ virtual XF subxf (const cgen_fpu*, XF, XF);
+ virtual XF mulxf (const cgen_fpu*, XF, XF);
+ virtual XF divxf (const cgen_fpu*, XF, XF);
+ virtual XF negxf (const cgen_fpu*, XF);
+ virtual XF absxf (const cgen_fpu*, XF);
+ virtual XF sqrtxf (const cgen_fpu*, XF);
+ virtual XF invxf (const cgen_fpu*, XF);
+ virtual XF cosxf (const cgen_fpu*, XF);
+ virtual XF sinxf (const cgen_fpu*, XF);
+ virtual XF minxf (const cgen_fpu*, XF, XF);
+ virtual XF maxxf (const cgen_fpu*, XF, XF);
+
+ virtual int eqxf (const cgen_fpu*, XF, XF);
+ virtual int nexf (const cgen_fpu*, XF, XF);
+ virtual int ltxf (const cgen_fpu*, XF, XF);
+ virtual int lexf (const cgen_fpu*, XF, XF);
+ virtual int gtxf (const cgen_fpu*, XF, XF);
+ virtual int gexf (const cgen_fpu*, XF, XF);
+
+ virtual XF extsfxf (const cgen_fpu*, SF);
+ virtual XF extdfxf (const cgen_fpu*, DF);
+ virtual SF truncxfsf (const cgen_fpu*, XF);
+ virtual DF truncxfdf (const cgen_fpu*, XF);
+
+ virtual XF floatsixf (const cgen_fpu*, SI);
+ virtual XF floatdixf (const cgen_fpu*, DI);
+ virtual XF ufloatsixf (const cgen_fpu*, USI);
+ virtual XF ufloatdixf (const cgen_fpu*, UDI);
+
+ virtual SI fixxfsi (const cgen_fpu*, XF);
+ virtual DI fixxfdi (const cgen_fpu*, XF);
+ virtual USI ufixxfsi (const cgen_fpu*, XF);
+ virtual UDI ufixxfdi (const cgen_fpu*, XF);
/* TF mode support (kept separate 'cus not always present) */
- virtual TF addtf (cgen_fpu*, TF, TF);
- virtual TF subtf (cgen_fpu*, TF, TF);
- virtual TF multf (cgen_fpu*, TF, TF);
- virtual TF divtf (cgen_fpu*, TF, TF);
- virtual TF negtf (cgen_fpu*, TF);
- virtual TF abstf (cgen_fpu*, TF);
- virtual TF sqrttf (cgen_fpu*, TF);
- virtual TF invtf (cgen_fpu*, TF);
- virtual TF costf (cgen_fpu*, TF);
- virtual TF sintf (cgen_fpu*, TF);
- virtual TF mintf (cgen_fpu*, TF, TF);
- virtual TF maxtf (cgen_fpu*, TF, TF);
-
- virtual int eqtf (cgen_fpu*, TF, TF);
- virtual int netf (cgen_fpu*, TF, TF);
- virtual int lttf (cgen_fpu*, TF, TF);
- virtual int letf (cgen_fpu*, TF, TF);
- virtual int gttf (cgen_fpu*, TF, TF);
- virtual int getf (cgen_fpu*, TF, TF);
-
- virtual TF extsftf (cgen_fpu*, SF);
- virtual TF extdftf (cgen_fpu*, DF);
- virtual SF trunctfsf (cgen_fpu*, TF);
- virtual DF trunctfdf (cgen_fpu*, TF);
-
- virtual TF floatsitf (cgen_fpu*, SI);
- virtual TF floatditf (cgen_fpu*, DI);
- virtual TF ufloatsitf (cgen_fpu*, USI);
- virtual TF ufloatditf (cgen_fpu*, UDI);
-
- virtual SI fixtfsi (cgen_fpu*, TF);
- virtual DI fixtfdi (cgen_fpu*, TF);
- virtual USI ufixtfsi (cgen_fpu*, TF);
- virtual UDI ufixtfdi (cgen_fpu*, TF);
+ virtual TF addtf (const cgen_fpu*, TF, TF);
+ virtual TF subtf (const cgen_fpu*, TF, TF);
+ virtual TF multf (const cgen_fpu*, TF, TF);
+ virtual TF divtf (const cgen_fpu*, TF, TF);
+ virtual TF negtf (const cgen_fpu*, TF);
+ virtual TF abstf (const cgen_fpu*, TF);
+ virtual TF sqrttf (const cgen_fpu*, TF);
+ virtual TF invtf (const cgen_fpu*, TF);
+ virtual TF costf (const cgen_fpu*, TF);
+ virtual TF sintf (const cgen_fpu*, TF);
+ virtual TF mintf (const cgen_fpu*, TF, TF);
+ virtual TF maxtf (const cgen_fpu*, TF, TF);
+
+ virtual int eqtf (const cgen_fpu*, TF, TF);
+ virtual int netf (const cgen_fpu*, TF, TF);
+ virtual int lttf (const cgen_fpu*, TF, TF);
+ virtual int letf (const cgen_fpu*, TF, TF);
+ virtual int gttf (const cgen_fpu*, TF, TF);
+ virtual int getf (const cgen_fpu*, TF, TF);
+
+ virtual TF extsftf (const cgen_fpu*, SF);
+ virtual TF extdftf (const cgen_fpu*, DF);
+ virtual SF trunctfsf (const cgen_fpu*, TF);
+ virtual DF trunctfdf (const cgen_fpu*, TF);
+
+ virtual TF floatsitf (const cgen_fpu*, SI);
+ virtual TF floatditf (const cgen_fpu*, DI);
+ virtual TF ufloatsitf (const cgen_fpu*, USI);
+ virtual TF ufloatditf (const cgen_fpu*, UDI);
+
+ virtual SI fixtfsi (const cgen_fpu*, TF);
+ virtual DI fixtfdi (const cgen_fpu*, TF);
+ virtual USI ufixtfsi (const cgen_fpu*, TF);
+ virtual UDI ufixtfdi (const cgen_fpu*, TF);
#endif // not implemented yet
};