From adbb8964c6187916d941ad0121a954d688d7a7ea Mon Sep 17 00:00:00 2001 From: Lioncash Date: Tue, 17 Jul 2018 14:05:54 -0400 Subject: [PATCH] emit_x64: Remove FPSCR_RoundTowardsZero() virtual function from EmitContext struct This code was bugged in that we were comparing if the rounding mode was not equal to rounding towards zero. Fortunately, however, nothing uses this function anymore, and there's already the more general FPSCR_RMode() available, so this can be removed entirely. --- src/backend_x64/a32_emit_x64.cpp | 4 ---- src/backend_x64/a32_emit_x64.h | 1 - src/backend_x64/a64_emit_x64.cpp | 4 ---- src/backend_x64/a64_emit_x64.h | 1 - src/backend_x64/emit_x64.h | 1 - 5 files changed, 11 deletions(-) diff --git a/src/backend_x64/a32_emit_x64.cpp b/src/backend_x64/a32_emit_x64.cpp index c027761d..09c91451 100644 --- a/src/backend_x64/a32_emit_x64.cpp +++ b/src/backend_x64/a32_emit_x64.cpp @@ -66,10 +66,6 @@ u32 A32EmitContext::FPCR() const { return Location().FPSCR().Value(); } -bool A32EmitContext::FPSCR_RoundTowardsZero() const { - return Location().FPSCR().RMode() != FP::RoundingMode::TowardsZero; -} - bool A32EmitContext::FPSCR_FTZ() const { return Location().FPSCR().FTZ(); } diff --git a/src/backend_x64/a32_emit_x64.h b/src/backend_x64/a32_emit_x64.h index 254d4a9e..b50f03be 100644 --- a/src/backend_x64/a32_emit_x64.h +++ b/src/backend_x64/a32_emit_x64.h @@ -25,7 +25,6 @@ struct A32EmitContext final : public EmitContext { A32::LocationDescriptor Location() const; FP::RoundingMode FPSCR_RMode() const override; u32 FPCR() const override; - bool FPSCR_RoundTowardsZero() const override; bool FPSCR_FTZ() const override; bool FPSCR_DN() const override; }; diff --git a/src/backend_x64/a64_emit_x64.cpp b/src/backend_x64/a64_emit_x64.cpp index c290c849..ae88f850 100644 --- a/src/backend_x64/a64_emit_x64.cpp +++ b/src/backend_x64/a64_emit_x64.cpp @@ -48,10 +48,6 @@ u32 A64EmitContext::FPCR() const { return Location().FPCR().Value(); } -bool A64EmitContext::FPSCR_RoundTowardsZero() const { - return Location().FPCR().RMode() != FP::RoundingMode::TowardsZero; -} - bool A64EmitContext::FPSCR_FTZ() const { return Location().FPCR().FZ(); } diff --git a/src/backend_x64/a64_emit_x64.h b/src/backend_x64/a64_emit_x64.h index e251a963..e6e51c31 100644 --- a/src/backend_x64/a64_emit_x64.h +++ b/src/backend_x64/a64_emit_x64.h @@ -25,7 +25,6 @@ struct A64EmitContext final : public EmitContext { A64::LocationDescriptor Location() const; FP::RoundingMode FPSCR_RMode() const override; u32 FPCR() const override; - bool FPSCR_RoundTowardsZero() const override; bool FPSCR_FTZ() const override; bool FPSCR_DN() const override; bool AccurateNaN() const override; diff --git a/src/backend_x64/emit_x64.h b/src/backend_x64/emit_x64.h index 83508267..0f2a3e99 100644 --- a/src/backend_x64/emit_x64.h +++ b/src/backend_x64/emit_x64.h @@ -47,7 +47,6 @@ struct EmitContext { virtual FP::RoundingMode FPSCR_RMode() const = 0; virtual u32 FPCR() const = 0; - virtual bool FPSCR_RoundTowardsZero() const = 0; virtual bool FPSCR_FTZ() const = 0; virtual bool FPSCR_DN() const = 0; virtual bool AccurateNaN() const { return true; }