EmitContext: Expose FPCR
This commit is contained in:
parent
5e16785b3a
commit
564c1b091f
@ -62,6 +62,10 @@ FP::RoundingMode A32EmitContext::FPSCR_RMode() const {
|
|||||||
return Location().FPSCR().RMode();
|
return Location().FPSCR().RMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 A32EmitContext::FPCR() const {
|
||||||
|
return Location().FPSCR().Value();
|
||||||
|
}
|
||||||
|
|
||||||
bool A32EmitContext::FPSCR_RoundTowardsZero() const {
|
bool A32EmitContext::FPSCR_RoundTowardsZero() const {
|
||||||
return Location().FPSCR().RMode() != FP::RoundingMode::TowardsZero;
|
return Location().FPSCR().RMode() != FP::RoundingMode::TowardsZero;
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ struct A32EmitContext final : public EmitContext {
|
|||||||
A32EmitContext(RegAlloc& reg_alloc, IR::Block& block);
|
A32EmitContext(RegAlloc& reg_alloc, IR::Block& block);
|
||||||
A32::LocationDescriptor Location() const;
|
A32::LocationDescriptor Location() const;
|
||||||
FP::RoundingMode FPSCR_RMode() const override;
|
FP::RoundingMode FPSCR_RMode() const override;
|
||||||
|
u32 FPCR() const override;
|
||||||
bool FPSCR_RoundTowardsZero() const override;
|
bool FPSCR_RoundTowardsZero() const override;
|
||||||
bool FPSCR_FTZ() const override;
|
bool FPSCR_FTZ() const override;
|
||||||
bool FPSCR_DN() const override;
|
bool FPSCR_DN() const override;
|
||||||
|
@ -44,6 +44,10 @@ FP::RoundingMode A64EmitContext::FPSCR_RMode() const {
|
|||||||
return Location().FPCR().RMode();
|
return Location().FPCR().RMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 A64EmitContext::FPCR() const {
|
||||||
|
return Location().FPCR().Value();
|
||||||
|
}
|
||||||
|
|
||||||
bool A64EmitContext::FPSCR_RoundTowardsZero() const {
|
bool A64EmitContext::FPSCR_RoundTowardsZero() const {
|
||||||
return Location().FPCR().RMode() != FP::RoundingMode::TowardsZero;
|
return Location().FPCR().RMode() != FP::RoundingMode::TowardsZero;
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ struct A64EmitContext final : public EmitContext {
|
|||||||
A64EmitContext(const A64::UserConfig& conf, RegAlloc& reg_alloc, IR::Block& block);
|
A64EmitContext(const A64::UserConfig& conf, RegAlloc& reg_alloc, IR::Block& block);
|
||||||
A64::LocationDescriptor Location() const;
|
A64::LocationDescriptor Location() const;
|
||||||
FP::RoundingMode FPSCR_RMode() const override;
|
FP::RoundingMode FPSCR_RMode() const override;
|
||||||
|
u32 FPCR() const override;
|
||||||
bool FPSCR_RoundTowardsZero() const override;
|
bool FPSCR_RoundTowardsZero() const override;
|
||||||
bool FPSCR_FTZ() const override;
|
bool FPSCR_FTZ() const override;
|
||||||
bool FPSCR_DN() const override;
|
bool FPSCR_DN() const override;
|
||||||
|
@ -35,6 +35,7 @@ struct EmitContext {
|
|||||||
void EraseInstruction(IR::Inst* inst);
|
void EraseInstruction(IR::Inst* inst);
|
||||||
|
|
||||||
virtual FP::RoundingMode FPSCR_RMode() const = 0;
|
virtual FP::RoundingMode FPSCR_RMode() const = 0;
|
||||||
|
virtual u32 FPCR() const = 0;
|
||||||
virtual bool FPSCR_RoundTowardsZero() const = 0;
|
virtual bool FPSCR_RoundTowardsZero() const = 0;
|
||||||
virtual bool FPSCR_FTZ() const = 0;
|
virtual bool FPSCR_FTZ() const = 0;
|
||||||
virtual bool FPSCR_DN() const = 0;
|
virtual bool FPSCR_DN() const = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user