Turn the X86 emitter into a class, so the code pointer is no longer a global, yay! Created XCodeBlock that derives from XEmitter, and the Jit now derives from XCodeBlock so it can call all ADD SUB JNZ etc without having to prefix them with "emit.". I think someone's gonna like this.

There's some cleanup still to be done, but hey, it works. There shouldn't be a noticable speed difference.

I hope GCC doesn't have a problem with the "member function pointers" I used.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1594 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard
2008-12-19 21:24:52 +00:00
parent b5dcdcf779
commit 104acd5bc1
31 changed files with 1297 additions and 1153 deletions

View File

@ -22,9 +22,10 @@
#include "CPMemory.h"
#include "DataReader.h"
#include "NativeVertexFormat.h"
#include "x64Emitter.h"
class VertexLoaderUID
{
u32 vid[5];
@ -52,7 +53,7 @@ public:
}
};
class VertexLoader
class VertexLoader : public Gen::XCodeBlock
{
public:
VertexLoader(const TVtxDesc &vtx_desc, const VAT &vtx_attr);
@ -86,7 +87,7 @@ private:
TPipelineFunction m_PipelineStages[64]; // TODO - figure out real max. it's lower.
int m_numPipelineStages;
u8 *m_compiledCode;
const u8 *m_compiledCode;
int m_numLoadedVertices;