add vgather

This commit is contained in:
MITSUNARI Shigeo 2013-05-30 13:07:26 +09:00
parent 94c0cbbbcd
commit ec8d36b5d3
4 changed files with 232 additions and 40 deletions

View file

@ -1636,6 +1636,27 @@ void put()
printf("void %s(const Reg32e& r, const Operand& op) { opGpr(Reg32e(%d, r.getBit()), op, r, %s, 0x%x, false); }\n", p.name, p.idx, type2String(p.type).c_str(), p.code);
}
}
// gather
{
const struct Tbl {
const char *name;
uint8 code;
int w;
} tbl[] = {
{ "vgatherdpd", 0x92, 1 },
{ "vgatherqpd", 0x93, 1 },
{ "vgatherdps", 0x92, 0 },
{ "vgatherqps", 0x93, 0 },
{ "vpgatherdd", 0x90, 0 },
{ "vpgatherqd", 0x91, 0 },
{ "vpgatherdq", 0x90, 1 },
{ "vpgatherqq", 0x91, 1 },
};
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const Tbl& p = tbl[i];
printf("void %s(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, MM_0F38 | PP_66, 0x%x, %d); }\n", p.name, p.code, p.w);
}
}
}
int main()