diff options
| author | nakeee <nakeee@gmail.com> | 2010-03-24 11:22:33 +0000 |
|---|---|---|
| committer | nakeee <nakeee@gmail.com> | 2010-03-24 11:22:33 +0000 |
| commit | 47239ce0f4bd61e3e95fb04bc185ae11d4872db4 (patch) | |
| tree | 60f1dda3dcfb25eec70f1a37f431364e492d4f94 /Source/Core/Common/Src/ABI.cpp | |
| parent | ea90996852fd7b928acf9bd8ca1b6d97b700718a (diff) | |
XK patch for adding jit config to audiocommon/c16 function to x64emitter
and Skidu's fix for 64bit
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5230 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/Common/Src/ABI.cpp')
| -rw-r--r-- | Source/Core/Common/Src/ABI.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Source/Core/Common/Src/ABI.cpp b/Source/Core/Common/Src/ABI.cpp index 522a8a572a..ba471a336f 100644 --- a/Source/Core/Common/Src/ABI.cpp +++ b/Source/Core/Common/Src/ABI.cpp @@ -66,6 +66,13 @@ void XEmitter::ABI_CallFunction(void *func) { ABI_RestoreStack(0); } +void XEmitter::ABI_CallFunctionC16(void *func, u16 param1) { + ABI_AlignStack(1 * 2); + PUSH(16, Imm16(param1)); + CALL(func); + ABI_RestoreStack(1 * 2); +} + void XEmitter::ABI_CallFunctionC(void *func, u32 param1) { ABI_AlignStack(1 * 4); PUSH(32, Imm32(param1)); @@ -182,7 +189,16 @@ void XEmitter::ABI_RestoreStack(unsigned int frameSize) { // Common functions void XEmitter::ABI_CallFunction(void *func) { - CALL(func); + // Far call + MOV(64, R(RAX), Imm64((u64)func));CALLptr(R(RAX)); + //CALL(func); +} + +void XEmitter::ABI_CallFunctionC16(void *func, u16 param1) { + MOV(16, R(ABI_PARAM1), Imm16(param1)); + // Far call + MOV(64, R(RAX), Imm64((u64)func));CALLptr(R(RAX)); + //CALL(func); } void XEmitter::ABI_CallFunctionC(void *func, u32 param1) { |
