2022-01-18 10:23:23 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "BasicBlock.h"
|
|
|
|
|
|
|
|
class CEeBasicBlock : public CBasicBlock
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
using CBasicBlock::CBasicBlock;
|
|
|
|
|
2025-01-13 18:15:07 -05:00
|
|
|
void SetFpRoundingMode(Jitter::CJitter::ROUNDINGMODE);
|
2025-01-14 10:53:33 -05:00
|
|
|
void SetIsIdleLoopBlock();
|
2025-01-13 18:15:07 -05:00
|
|
|
|
2022-01-18 10:23:23 -05:00
|
|
|
protected:
|
2025-01-13 18:15:07 -05:00
|
|
|
void CompileProlog(CMipsJitter*) override;
|
2022-11-30 17:25:50 -05:00
|
|
|
void CompileEpilog(CMipsJitter*, bool) override;
|
2022-01-18 10:23:23 -05:00
|
|
|
|
|
|
|
private:
|
2025-01-14 10:53:33 -05:00
|
|
|
bool IsCodeIdleLoopBlock() const;
|
2025-01-13 18:15:07 -05:00
|
|
|
|
|
|
|
static constexpr auto DEFAULT_FP_ROUNDING_MODE = Jitter::CJitter::ROUND_TRUNCATE;
|
|
|
|
Jitter::CJitter::ROUNDINGMODE m_fpRoundingMode = DEFAULT_FP_ROUNDING_MODE;
|
2025-01-14 10:53:33 -05:00
|
|
|
|
|
|
|
bool m_isIdleLoopBlock = false;
|
2022-01-18 10:23:23 -05:00
|
|
|
};
|