[ARM] More NEON emitters.

This commit is contained in:
Ryan Houdek
2013-11-10 05:02:32 +00:00
parent 22f727cc69
commit e013a74cdb
2 changed files with 62 additions and 21 deletions

View File

@ -580,7 +580,8 @@ enum NEONElementType
I_64 = (1 << 3),
I_SIGNED = (1 << 4),
I_UNSIGNED = (1 << 5),
F_32 = (1 << 6)
F_32 = (1 << 6),
I_POLYNOMIAL = (1 << 7), // Only used in VMUL/VMULL
};
enum NEONAlignment
@ -665,6 +666,11 @@ public:
void VMLS(NEONElementType Size, ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VMLAL(NEONElementType Size, ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VMLSL(NEONElementType Size, ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VMUL(NEONElementType Size, ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VMULL(NEONElementType Size, ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VNEG(NEONElementType Size, ARMReg Vd, ARMReg Vm);
void VORN(ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VORR(ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VSUB(NEONElementType Size, ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VREV64(NEONElementType Size, ARMReg Vd, ARMReg Vm);
void VREV32(NEONElementType Size, ARMReg Vd, ARMReg Vm);
@ -672,8 +678,6 @@ public:
void VRSQRTE(NEONElementType Size, ARMReg Vd, ARMReg Vm);
void VORR(ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VLD1(NEONElementType Size, ARMReg Vd, ARMReg Rn, NEONAlignment align = ALIGN_NONE, ARMReg Rm = _PC);
void VLD2(NEONElementType Size, ARMReg Vd, ARMReg Rn, NEONAlignment align = ALIGN_NONE, ARMReg Rm = _PC);