Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[ARM] VRSQRTE NEON emitter.
  • Loading branch information
Sonicadvance1 committed Sep 16, 2013
1 parent 5a9cb84 commit 7d410ec
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
11 changes: 11 additions & 0 deletions Source/Core/Common/Src/ArmEmitter.cpp
Expand Up @@ -1332,6 +1332,17 @@ void NEONXEmitter::VREV16(NEONElementType Size, ARMReg Vd, ARMReg Vm)
VREVX(0, Size, Vd, Vm);
}

void NEONXEmitter::VRSQRTE(NEONElementType Size, ARMReg Vd, ARMReg Vm)
{
bool register_quad = Vd >= Q0;
Vd = SubBase(Vd);
Vm = SubBase(Vm);

Write32((0xF3 << 24) | (0xB << 20) | ((Vd & 0x10) << 18) | (0xB << 16)
| ((Vd & 0xF) << 12) | (9 << 7) | (Size & F_32 ? (1 << 8) : 0) | (register_quad << 6)
| ((Vm & 0x10) << 1) | (Vm & 0xF));
}

void NEONXEmitter::VEOR(ARMReg Vd, ARMReg Vn, ARMReg Vm)
{
bool register_quad = Vd >= Q0;
Expand Down
2 changes: 2 additions & 0 deletions Source/Core/Common/Src/ArmEmitter.h
Expand Up @@ -634,6 +634,8 @@ class NEONXEmitter
void VREV32(NEONElementType Size, ARMReg Vd, ARMReg Vm);
void VREV16(NEONElementType Size, ARMReg Vd, ARMReg Vm);

void VRSQRTE(NEONElementType Size, ARMReg Vd, ARMReg Vm);

void VEOR(ARMReg Vd, ARMReg Vn, ARMReg Vm);
void VORR(ARMReg Vd, ARMReg Vn, ARMReg Vm);

Expand Down

0 comments on commit 7d410ec

Please sign in to comment.