Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[ARM] Change all floating point loadstores to fastmem implementations…
… except lfs since all floating point accesses tend to be to RAM space. lfs tends to get used to write quickly to the gatherpipe and other places, look at the JIT64 implementation to see how to make it quicker.
  • Loading branch information
Sonicadvance1 committed Sep 24, 2013
1 parent 29dc253 commit eb6ed3e
Show file tree
Hide file tree
Showing 4 changed files with 237 additions and 533 deletions.
4 changes: 2 additions & 2 deletions Source/Core/Common/Src/ArmEmitter.cpp
Expand Up @@ -1338,7 +1338,7 @@ void NEONXEmitter::VREVX(u32 size, NEONElementType Size, ARMReg Vd, ARMReg Vm)

void NEONXEmitter::VREV64(NEONElementType Size, ARMReg Vd, ARMReg Vm)
{
VREVX(2, Size, Vd, Vm);
VREVX(0, Size, Vd, Vm);
}

void NEONXEmitter::VREV32(NEONElementType Size, ARMReg Vd, ARMReg Vm)
Expand All @@ -1348,7 +1348,7 @@ void NEONXEmitter::VREV32(NEONElementType Size, ARMReg Vd, ARMReg Vm)

void NEONXEmitter::VREV16(NEONElementType Size, ARMReg Vd, ARMReg Vm)
{
VREVX(0, Size, Vd, Vm);
VREVX(2, Size, Vd, Vm);
}

void NEONXEmitter::VRSQRTE(NEONElementType Size, ARMReg Vd, ARMReg Vm)
Expand Down
17 changes: 2 additions & 15 deletions Source/Core/Core/Src/PowerPC/JitArm32/Jit.h
Expand Up @@ -214,22 +214,9 @@ class JitArm : public JitBase, public ArmGen::ARMXCodeBlock
void fcmpu(UGeckoInstruction _inst);

// Floating point loadStore
void lfs(UGeckoInstruction _inst);
void lfsu(UGeckoInstruction _inst);
void lfsux(UGeckoInstruction _inst);
void lfsx(UGeckoInstruction _inst);
void lfd(UGeckoInstruction _inst);
void lfdx(UGeckoInstruction _inst);
void lfdu(UGeckoInstruction _inst);
void lfdux(UGeckoInstruction _inst);
void lfXX(UGeckoInstruction _inst);
void stfXX(UGeckoInstruction _inst);
void stfs(UGeckoInstruction _inst);
void stfsx(UGeckoInstruction _inst);
void stfsu(UGeckoInstruction _inst);
void stfsux(UGeckoInstruction _inst);
void stfd(UGeckoInstruction _inst);
void stfdx(UGeckoInstruction _inst);
void stfdu(UGeckoInstruction _inst);
void stfdux(UGeckoInstruction _inst);

// Paired Singles
void ps_add(UGeckoInstruction _inst);
Expand Down

0 comments on commit eb6ed3e

Please sign in to comment.