use MemOperand instead of Reg32e

This commit is contained in:
MITSUNARI Shigeo 2013-06-11 20:41:37 +09:00
parent 209ada4b10
commit 0fe89e3df9
3 changed files with 24 additions and 9 deletions

View file

@ -37,8 +37,12 @@ private:
size_t constTblPos_;
int regIdx_;
Map varMap_; // map var name to index
const Xbyak::Reg32e& valTbl_;
const Xbyak::Reg32e& tbl_;
const Xbyak::MemOperand& valTbl_;
#ifdef XBYAK32
const Xbyak::Reg32& tbl_;
#else
const Xbyak::Reg64& tbl_;
#endif
public:
/*
@param y [out] the value of f(var)
@ -80,7 +84,7 @@ public:
if (constTblPos_ >= MAX_CONST_NUM) throw;
constTbl_[constTblPos_] = n;
if (regIdx_ == 7) throw;
movsd(Xbyak::Xmm(++regIdx_), ptr[tbl_ + constTblPos_ * sizeof(double)]);
movsd(Xbyak::Xmm(++regIdx_), ptr[tbl_ + constTblPos_ * (int)sizeof(double)]);
constTblPos_++;
}
// use eax