Fix to idiom19 and fixFloatEmulation()

This commit is contained in:
Artur K
2012-07-15 20:17:16 +02:00
parent c19231a1bd
commit ca129c5177
13 changed files with 119 additions and 72 deletions

View File

@@ -65,6 +65,8 @@ struct LivenessSet : public std::bitset<32>
{
return test(r-rAX);
}
private:
void postProcessCompositeRegs();
};
extern LivenessSet duReg[30];

View File

@@ -37,6 +37,8 @@ struct Idiom18 : public Idiom
protected:
iICODE m_icodes[4];
bool m_is_dec;
/* type of variable: 1 = reg-var, 2 = local */
int m_idiom_type;
public:
Idiom18(Function *f) : Idiom(f)
{
@@ -64,7 +66,7 @@ struct Idiom20 : public Idiom
{
protected:
iICODE m_icodes[4];
bool m_is_dec;
condNodeType m_is_dec;
public:
Idiom20(Function *f) : Idiom(f)
{

View File

@@ -75,8 +75,11 @@ public:
}
static eReg subRegH(eReg reg);
static eReg subRegL(eReg reg);
static bool isMemOff(eReg r);
static bool isSubRegisterOf(eReg reg, eReg parent);
static bool hasSubregisters(eReg reg);
static bool isPartOfComposite(eReg reg);
static eReg compositeParent(eReg reg);
};