a64/config: Allow NaN emulation accuracy to be set

This commit is contained in:
MerryMage
2018-02-18 13:04:45 +00:00
parent a3df46a75a
commit 7c193485e1
3 changed files with 18 additions and 1 deletions

View File

@@ -48,7 +48,11 @@ bool A64EmitContext::FPSCR_FTZ() const {
}
bool A64EmitContext::FPSCR_DN() const {
return Location().FPCR().DN();
return Location().FPCR().DN() || conf.floating_point_nan_accuracy == A64::UserConfig::NaNAccuracy::AlwaysForceDefaultNaN;
}
bool A64EmitContext::AccurateNaN() const {
return conf.floating_point_nan_accuracy == A64::UserConfig::NaNAccuracy::Accurate;
}
A64EmitX64::A64EmitX64(BlockOfCode& code, A64::UserConfig conf)

View File

@@ -26,6 +26,7 @@ struct A64EmitContext final : public EmitContext {
bool FPSCR_RoundTowardsZero() const override;
bool FPSCR_FTZ() const override;
bool FPSCR_DN() const override;
bool AccurateNaN() const override;
const A64::UserConfig& conf;
};