mirror of
https://github.com/jpd002/Play-.git
synced 2025-04-28 13:47:57 +03:00
Added some NaN related utils.
This commit is contained in:
parent
622a21bc12
commit
7f92effbd6
2 changed files with 22 additions and 0 deletions
|
@ -62,6 +62,26 @@ void FpUtils::IsZero(CMipsJitter* codeGen, size_t offset)
|
|||
codeGen->PushCst(0);
|
||||
}
|
||||
|
||||
void FpUtils::IsNaN(CMipsJitter* codeGen, size_t offset)
|
||||
{
|
||||
//Check wether an FP number is a NaN (exponent is 0xFF)
|
||||
//BeginIf(CONDITION_EQ) to verify result
|
||||
codeGen->PushRel(offset);
|
||||
codeGen->PushCst(0x7F800000);
|
||||
codeGen->And();
|
||||
codeGen->PushCst(0x7F800000);
|
||||
}
|
||||
|
||||
void FpUtils::AssertIsNotNaN(CMipsJitter* codeGen, size_t offset)
|
||||
{
|
||||
FpUtils::IsNaN(codeGen, offset);
|
||||
codeGen->BeginIf(Jitter::CONDITION_EQ);
|
||||
{
|
||||
codeGen->Break();
|
||||
}
|
||||
codeGen->EndIf();
|
||||
}
|
||||
|
||||
void FpUtils::ComputeDivisionByZero(CMipsJitter* codeGen, size_t dividend, size_t divisor)
|
||||
{
|
||||
//Return either +/-FP_MAX
|
||||
|
|
|
@ -10,5 +10,7 @@ namespace FpUtils
|
|||
void EnableFpExceptions();
|
||||
|
||||
void IsZero(CMipsJitter*, size_t);
|
||||
void IsNaN(CMipsJitter*, size_t);
|
||||
void AssertIsNotNaN(CMipsJitter*, size_t);
|
||||
void ComputeDivisionByZero(CMipsJitter*, size_t, size_t);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue