Automatically add emulated function calls definitions

This commit is contained in:
rajdakin 2019-01-02 18:28:15 +01:00
parent 765760f2f4
commit 5e59e26de3
14 changed files with 1649 additions and 517 deletions

View File

@ -26,48 +26,67 @@ endif()
#include_directories(include)
SET(ELFLOADER_SRC
src/bridge.c
src/main.c
src/pathcoll.c
src/box86context.c
src/fileutils.c
src/elfloader.c
src/elfparser.c
src/elfload_dump.c
src/library.c
src/librarian.c
src/stack.c
src/threads.c
src/wrapper.c
src/x86emu.c
src/x86run.c
src/x86run0f.c
src/x86run66.c
src/x86run660f.c
src/x86run_private.c
src/x86syscall.c
src/x86primop.c
src/x86trace.c
src/x86int3.c
src/x87emu_private.c
src/x87run.c
set(ELFLOADER_SRC
"${CMAKE_HOME_DIRECTORY}/src/bridge.c"
"${CMAKE_HOME_DIRECTORY}/src/main.c"
"${CMAKE_HOME_DIRECTORY}/src/pathcoll.c"
"${CMAKE_HOME_DIRECTORY}/src/box86context.c"
"${CMAKE_HOME_DIRECTORY}/src/fileutils.c"
"${CMAKE_HOME_DIRECTORY}/src/elfloader.c"
"${CMAKE_HOME_DIRECTORY}/src/elfparser.c"
"${CMAKE_HOME_DIRECTORY}/src/elfload_dump.c"
"${CMAKE_HOME_DIRECTORY}/src/library.c"
"${CMAKE_HOME_DIRECTORY}/src/librarian.c"
"${CMAKE_HOME_DIRECTORY}/src/stack.c"
"${CMAKE_HOME_DIRECTORY}/src/threads.c"
"${CMAKE_HOME_DIRECTORY}/src/wrapper.c"
"${CMAKE_HOME_DIRECTORY}/src/x86emu.c"
"${CMAKE_HOME_DIRECTORY}/src/x86run.c"
"${CMAKE_HOME_DIRECTORY}/src/x86run0f.c"
"${CMAKE_HOME_DIRECTORY}/src/x86run66.c"
"${CMAKE_HOME_DIRECTORY}/src/x86run660f.c"
"${CMAKE_HOME_DIRECTORY}/src/x86run_private.c"
"${CMAKE_HOME_DIRECTORY}/src/x86syscall.c"
"${CMAKE_HOME_DIRECTORY}/src/x86primop.c"
"${CMAKE_HOME_DIRECTORY}/src/x86trace.c"
"${CMAKE_HOME_DIRECTORY}/src/x86int3.c"
"${CMAKE_HOME_DIRECTORY}/src/x87emu_private.c"
"${CMAKE_HOME_DIRECTORY}/src/x87run.c"
src/wrappedlibc.c
src/wrappedlibpthread.c
src/wrappedlibrt.c
src/wrappedlibgl.c
src/wrappedlibx11.c
src/wrappedlibasound.c
src/wrappedlibdl.c
src/wrappedlibm.c
src/wrappedsdl1.c
src/wrappedsdl2.c
src/wrappedsdl2mixer.c
src/wrappedsdl2image.c
src/wrappedldlinux.c
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibc.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibpthread.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibrt.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibgl.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibx11.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibasound.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibdl.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibm.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedsdl1.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedsdl2.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedsdl2mixer.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedsdl2image.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedldlinux.c"
)
set(WRAPPEDS
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibc.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibpthread.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibrt.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibgl.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibx11.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibasound.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibdl.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedlibm.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedsdl1.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedsdl2.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedsdl2mixer.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedsdl2image.c"
"${CMAKE_HOME_DIRECTORY}/src/wrappedldlinux.c"
)
set(WRAPPER "${CMAKE_HOME_DIRECTORY}/src/wrapper.c" "${CMAKE_HOME_DIRECTORY}/src/wrapper.h")
add_custom_command(OUTPUT ${WRAPPER} COMMAND "${CMAKE_HOME_DIRECTORY}/rebuild_wrappers.py" "${CMAKE_HOME_DIRECTORY}" MAIN_DEPENDENCY "${CMAKE_HOME_DIRECTORY}/rebuild_wrappers.py" DEPENDS ${WRAPPEDS})
set_source_files_properties(${WRAPPER} PROPERTIES GENERATED TRUE)
add_executable(box86 ${ELFLOADER_SRC})
target_link_libraries(box86 m dl rt pthread)
@ -106,4 +125,4 @@ add_test(test06 ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/box86
add_test(test07 ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/box86
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test07 -D TEST_OUTPUT=tmpfile.txt
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref07.txt
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )

221
rebuild_wrappers.py Executable file
View File

@ -0,0 +1,221 @@
#!/usr/bin/env python
import os
import glob
import sys
values = ['E', 'v', 'c', 'w', 'i', 'I', 'C', 'W', 'u', 'U', 'f', 'd', 'D', 'p', 'V']
def splitchar(s):
ret = [len(s)]
i = 0
for c in s:
i = i + 1
if i == 2:
continue
ret.append(values.index(c))
return ret
def main(root):
# Initialize variables: gbl for all values, vals for file-per-file values, redirects for redirections
gbl = []
vals = {}
redirects = {}
# First read the files inside the headers
for filepath in glob.glob(os.path.join(root, "src", "wrapped*_private.h")):
filename = filepath.split("/")[-1]
locval = []
with open(filepath, 'r') as file:
for line in file:
ln = line.strip()
# If the line is a `GO...' line (GO/GOM/GO2/...)...
if ln.startswith("GO"):
# ... then look at the second parameter of the line
ln = ln.split(",")[1].split(")")[0].strip()
if any(c not in values for c in ln[2:]) or (('v' in ln[2:]) and (len(ln) > 3)):
old = ln
# This needs more work
acceptables = ['v', 'o', '0', '1'] + values
if any(c not in acceptables for c in ln[2:]):
raise NotImplementedError("{0}".format(ln[2:]))
# Ok, this is acceptable: there is 0, 1, stdout and void
ln = (ln
.replace("v", "") # void -> nothing
.replace("o", "p") # stdout -> pointer
.replace("0", "p") # 0 -> pointer
.replace("1", "i")) # 1 -> integer
redirects[old] = ln
# Simply append the function name if it's not yet existing
if ln not in locval:
locval.append(ln)
if ln not in gbl:
gbl.append(ln)
# Sort the file local values and add it to the dictionary
locval.sort(key=lambda v: splitchar(v))
vals[filename] = locval
# Sort the table
gbl.sort(key=lambda v: splitchar(v))
def length(s):
l = len(s)
if l < 10:
ret = "0" + str(l)
else:
ret = str(l)
return ret
# Now the files rebuilding part
# File headers and guards
files_headers = {
"wrapper.c": """/*****************************************************************
* File automatically generated by rebuild_wrappers.py (v0.0.1.01)
*****************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "wrapper.h"
#include "x86emu_private.h"
#include "x87emu_private.h"
#include "regs.h"
typedef union ui64_s {
int64_t i;
uint64_t u;
uint32_t d[2];
} ui64_t;
""",
"wrapper.h": """/*****************************************************************
* File automatically generated by rebuild_wrappers.py (v0.0.1.01)
*****************************************************************/
#ifndef __WRAPPER_H_
#define __WRAPPER_H_
#include <stdint.h>
typedef struct x86emu_s x86emu_t;
// the generic wrapper pointer functions
typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
// list of defined wrapper
// v = void, i = int32, u = uint32, U/I= (u)int64
// p = pointer, P = callback
// f = float, d = double, D = long double, L = fake long double
// V = vaargs, E = current x86emu struct
// 0 = constant 0, 1 = constant 1
// o = stdout
// C = unsigned byte c = char
// W = unsigned short w = short
// Q = ...
// S8 = struct, 8 bytes
"""
}
files_guards = {"wrapper.c": """""",
"wrapper.h": """
#endif //__WRAPPER_H_
"""
}
# Transform strings into arrays
gbl = [[c for c in v] for v in gbl]
# Rewrite the wrapper.h file:
with open(os.path.join(root, "src", "wrapper.h"), 'w') as file:
file.write(files_headers["wrapper.h"])
for v in gbl:
file.write("void " + ''.join(v) + "(x86emu_t *emu, uintptr_t fnc);\n")
for v in redirects:
file.write("void " + ''.join(v) + "(x86emu_t *emu, uintptr_t fnc);\n")
file.write(files_guards["wrapper.h"])
# Rewrite the wrapper.c file:
with open(os.path.join(root, "src", "wrapper.c"), 'w') as file:
file.write(files_headers["wrapper.c"])
# First part: typedefs
for v in gbl:
types = ["x86emu_t*", "void", "char", "short", "int32_t", "int64_t", "unsigned char", "unsigned short", "uint32_t", "uint64_t", "float", "double", "long double", "void*", "void*"]
file.write("typedef " + types[values.index(v[0])] + " (*" + ''.join(v) + "_t)"
+ "(" + ', '.join(types[values.index(t)] for t in v[2:]) + ");\n")
# Next part: function definitions
# Helper functions to write the function definitions
def function_args(args, d=4):
if len(args) == 0:
return ""
if d % 4 != 0:
raise ValueError("{d} is not a multiple of 4. Did you try passing a V and something else?")
if args[0] == "0":
return "(void*)(R_ESP + {p}), ".format(p=d) + function_args(args[1:], d + 4)
elif args[0] == 1:
return "1, " + function_args(args[1:], d)
arg = [
"emu, ", # E
"", # v
"*(int8_t*)(R_ESP + {p}), ", # c
"*(int16_t*)(R_ESP + {p}), ", # w
"*(int32_t*)(R_ESP + {p}), ", # i
"*(int64_t*)(R_ESP + {p}), ", # I
"*(uint8_t*)(R_ESP + {p}), ", # C
"*(uint16_t*)(R_ESP + {p}), ", # W
"*(uint32_t*)(R_ESP + {p}), ", # u
"*(uint64_t*)(R_ESP + {p}), ", # U
"*(float*)(R_ESP + {p}), ", # f
"*(double*)(R_ESP + {p}), ", # d
"*(long double*)(R_ESP + {p}), ", # D
"*(void**)(R_ESP + {p}), ", # p
"(void*)(R_ESP + {p} - 4), " # V
]
deltas = [0, 4, 4, 4, 4, 8, 4, 4, 4, 8, 4, 8, 12, 4, 1]
if len(values) != len(arg):
raise NotImplementedError("len(values) != len(arg)")
raise NotImplementedError("len(values) = {lenval} != len(arg) = {lenarg}".format(lenval=len(values), lenarg=len(arg)))
if len(values) != len(deltas):
raise NotImplementedError("len(values) != len(deltas)")
raise NotImplementedError("len(values) = {lenval} != len(deltas) = {lendeltas}".format(lenval=len(values), lendeltas=len(deltas)))
return arg[values.index(args[0])].format(p=d) + function_args(args[1:], d + deltas[values.index(args[0])])
def function_writer(f, N, W, rettype, args):
f.write("void {0}(x86emu_t *emu, uintptr_t fcn) {2} {1} fn = ({1})fcn; ".format(N, W, "{"))
vals = [
"\n#error Invalid return type: emulator\n", # E
"fn({0});", # v
"R_EAX=fn({0});", # c
"R_EAX=fn({0});", # w
"R_EAX=fn({0});", # i
"ui64_t r; r.i=fn({0}); R_EAX=r.d[0]; R_EDX=r.d[1];", # I
"R_EAX=(unsigned char)fn({0});", # C
"R_EAX=(unsigned short)fn({0});", # W
"R_EAX=(uint32_t)fn({0});", # u
"ui64_t r; r.u=(uint64_t)fn({0}); R_EAX=r.d[0]; R_EDX=r.d[1];", # U
"float fl=fn({0}); fpu_do_push(emu); ST0.d = fl;", # f
"double db=fn({0}); fpu_do_push(emu); ST0.d = db;", # d
"long double ld=fn({0}); fpu_do_push(emu); ST0.d = ld;", # D
"R_EAX=(uintptr_t)fn({0});", # p
"\n#error Invalid return type: va_list\n", # V
]
if len(values) != len(vals):
raise NotImplementedError("len(values) = {lenval} != len(vals) = {lenvals}".format(lenval=len(values), lenvals=len(vals)))
f.write(vals[values.index(rettype)].format(function_args(args)[:-2]) + " }\n")
for v in gbl:
function_writer(file, ''.join(v), ''.join(v) + "_t", v[0], v[2:])
for v in redirects:
function_writer(file, v, redirects[v] + "_t", v[0], v[2:])
file.write(files_guards["wrapper.c"])
return 0
if __name__ == '__main__':
if main(sys.argv[1]) != 0:
exit(2)
exit(0)

1221
src/wrapper.c Executable file → Normal file

File diff suppressed because it is too large Load Diff

564
src/wrapper.h Executable file → Normal file
View File

@ -1,3 +1,6 @@
/*****************************************************************
* File automatically generated by rebuild_wrappers.py (v0.0.1.01)
*****************************************************************/
#ifndef __WRAPPER_H_
#define __WRAPPER_H_
#include <stdint.h>
@ -19,110 +22,461 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
// Q = ...
// S8 = struct, 8 bytes
#define __PASTER(x, y) x##y
#define _EVALUATOR(x, y) __PASTER(x, y)
#define PREFIX(y) _EVALUATOR(ret, _EVALUATOR(F, y))
#define GO(N, ...) GOW(N, __PASTER(N, _t), __VA_ARGS__)
#define GOW(N, W, ...) void N(x86emu_t *emu, uintptr_t fnc);
#define GO01(b, ...) GO(PREFIX(b), __VA_ARGS__)
#define GO02(b, c, ...) GO01(b##c, __VA_ARGS__)
#define GO03(b, c, ...) GO02(b##c, __VA_ARGS__)
#define GO04(b, c, ...) GO03(b##c, __VA_ARGS__)
#define GO05(b, c, ...) GO04(b##c, __VA_ARGS__)
#define GO06(b, c, ...) GO05(b##c, __VA_ARGS__)
#define GO07(b, c, ...) GO06(b##c, __VA_ARGS__)
#define GO08(b, c, ...) GO07(b##c, __VA_ARGS__)
#define GO09(b, c, ...) GO08(b##c, __VA_ARGS__)
#define GO10(b, c, ...) GO09(b##c, __VA_ARGS__)
#define GO11(b, c, ...) GO10(b##c, __VA_ARGS__)
#define GO12(b, c, ...) GO11(b##c, __VA_ARGS__)
#define GO13(b, c, ...) GO12(b##c, __VA_ARGS__)
#define GO14(b, c, ...) GO13(b##c, __VA_ARGS__)
#define GO15(b, c, ...) GO14(b##c, __VA_ARGS__)
// void...
#define ret v
#include "wrappers.h"
#include "wrapper_v.h"
#undef ret
// uint8....
#define ret C
#include "wrappers.h"
#include "wrapper_u8.h"
#undef ret
// int32...
#define ret i
#include "wrappers.h"
#include "wrapper_i.h"
#undef ret
// uint32
#define ret u
#include "wrappers.h"
#include "wrapper_u.h"
#undef ret
// void*
#define ret p
#include "wrappers.h"
#include "wrapper_p.h"
#undef ret
// float
#define ret f
#include "wrappers.h"
#include "wrapper_f.h"
#undef ret
// double
#define ret d
#include "wrappers.h"
#include "wrapper_d.h"
#undef ret
// long double
#define ret D
#include "wrappers.h"
#include "wrapper_ld.h"
#undef ret
// int64...
#define ret I
#include "wrappers.h"
#include "wrapper_i64.h"
#undef ret
// uint64
#define ret U
#include "wrappers.h"
#include "wrapper_u64.h"
#undef ret
#undef GO15
#undef GO14
#undef GO13
#undef GO12
#undef GO11
#undef GO10
#undef GO09
#undef GO08
#undef GO07
#undef GO06
#undef GO05
#undef GO04
#undef GO03
#undef GO02
#undef GO01
#undef GOW
#undef GO
#undef PREFIX
#undef _EVALUATOR
#undef __PASTER
void vFE(x86emu_t *emu, uintptr_t fnc);
void vFv(x86emu_t *emu, uintptr_t fnc);
void vFi(x86emu_t *emu, uintptr_t fnc);
void vFu(x86emu_t *emu, uintptr_t fnc);
void vFf(x86emu_t *emu, uintptr_t fnc);
void vFd(x86emu_t *emu, uintptr_t fnc);
void vFp(x86emu_t *emu, uintptr_t fnc);
void iFv(x86emu_t *emu, uintptr_t fnc);
void iFi(x86emu_t *emu, uintptr_t fnc);
void iFu(x86emu_t *emu, uintptr_t fnc);
void iFp(x86emu_t *emu, uintptr_t fnc);
void uFE(x86emu_t *emu, uintptr_t fnc);
void uFv(x86emu_t *emu, uintptr_t fnc);
void uFi(x86emu_t *emu, uintptr_t fnc);
void uFu(x86emu_t *emu, uintptr_t fnc);
void uFp(x86emu_t *emu, uintptr_t fnc);
void UFp(x86emu_t *emu, uintptr_t fnc);
void fFf(x86emu_t *emu, uintptr_t fnc);
void dFd(x86emu_t *emu, uintptr_t fnc);
void pFE(x86emu_t *emu, uintptr_t fnc);
void pFv(x86emu_t *emu, uintptr_t fnc);
void pFi(x86emu_t *emu, uintptr_t fnc);
void pFu(x86emu_t *emu, uintptr_t fnc);
void pFp(x86emu_t *emu, uintptr_t fnc);
void vFEi(x86emu_t *emu, uintptr_t fnc);
void vFii(x86emu_t *emu, uintptr_t fnc);
void vFiu(x86emu_t *emu, uintptr_t fnc);
void vFif(x86emu_t *emu, uintptr_t fnc);
void vFid(x86emu_t *emu, uintptr_t fnc);
void vFip(x86emu_t *emu, uintptr_t fnc);
void vFWW(x86emu_t *emu, uintptr_t fnc);
void vFui(x86emu_t *emu, uintptr_t fnc);
void vFuu(x86emu_t *emu, uintptr_t fnc);
void vFuf(x86emu_t *emu, uintptr_t fnc);
void vFud(x86emu_t *emu, uintptr_t fnc);
void vFup(x86emu_t *emu, uintptr_t fnc);
void vFfi(x86emu_t *emu, uintptr_t fnc);
void vFff(x86emu_t *emu, uintptr_t fnc);
void vFdd(x86emu_t *emu, uintptr_t fnc);
void vFpp(x86emu_t *emu, uintptr_t fnc);
void iFEp(x86emu_t *emu, uintptr_t fnc);
void iFii(x86emu_t *emu, uintptr_t fnc);
void iFip(x86emu_t *emu, uintptr_t fnc);
void iFui(x86emu_t *emu, uintptr_t fnc);
void iFuu(x86emu_t *emu, uintptr_t fnc);
void iFup(x86emu_t *emu, uintptr_t fnc);
void iFpi(x86emu_t *emu, uintptr_t fnc);
void iFpW(x86emu_t *emu, uintptr_t fnc);
void iFpu(x86emu_t *emu, uintptr_t fnc);
void iFpU(x86emu_t *emu, uintptr_t fnc);
void iFpp(x86emu_t *emu, uintptr_t fnc);
void CFui(x86emu_t *emu, uintptr_t fnc);
void uFui(x86emu_t *emu, uintptr_t fnc);
void uFuu(x86emu_t *emu, uintptr_t fnc);
void uFup(x86emu_t *emu, uintptr_t fnc);
void uFpi(x86emu_t *emu, uintptr_t fnc);
void uFpu(x86emu_t *emu, uintptr_t fnc);
void uFpp(x86emu_t *emu, uintptr_t fnc);
void fFff(x86emu_t *emu, uintptr_t fnc);
void fFfp(x86emu_t *emu, uintptr_t fnc);
void fFpp(x86emu_t *emu, uintptr_t fnc);
void dFdd(x86emu_t *emu, uintptr_t fnc);
void dFdp(x86emu_t *emu, uintptr_t fnc);
void dFpp(x86emu_t *emu, uintptr_t fnc);
void pFEp(x86emu_t *emu, uintptr_t fnc);
void pFip(x86emu_t *emu, uintptr_t fnc);
void pFui(x86emu_t *emu, uintptr_t fnc);
void pFuu(x86emu_t *emu, uintptr_t fnc);
void pFpi(x86emu_t *emu, uintptr_t fnc);
void pFpu(x86emu_t *emu, uintptr_t fnc);
void pFpp(x86emu_t *emu, uintptr_t fnc);
void vFEpi(x86emu_t *emu, uintptr_t fnc);
void vFiii(x86emu_t *emu, uintptr_t fnc);
void vFiip(x86emu_t *emu, uintptr_t fnc);
void vFiui(x86emu_t *emu, uintptr_t fnc);
void vFiuu(x86emu_t *emu, uintptr_t fnc);
void vFiup(x86emu_t *emu, uintptr_t fnc);
void vFiff(x86emu_t *emu, uintptr_t fnc);
void vFidd(x86emu_t *emu, uintptr_t fnc);
void vFipi(x86emu_t *emu, uintptr_t fnc);
void vFipu(x86emu_t *emu, uintptr_t fnc);
void vFipp(x86emu_t *emu, uintptr_t fnc);
void vFuii(x86emu_t *emu, uintptr_t fnc);
void vFuiu(x86emu_t *emu, uintptr_t fnc);
void vFuif(x86emu_t *emu, uintptr_t fnc);
void vFuid(x86emu_t *emu, uintptr_t fnc);
void vFuip(x86emu_t *emu, uintptr_t fnc);
void vFuui(x86emu_t *emu, uintptr_t fnc);
void vFuuu(x86emu_t *emu, uintptr_t fnc);
void vFuuf(x86emu_t *emu, uintptr_t fnc);
void vFuud(x86emu_t *emu, uintptr_t fnc);
void vFuup(x86emu_t *emu, uintptr_t fnc);
void vFuff(x86emu_t *emu, uintptr_t fnc);
void vFudd(x86emu_t *emu, uintptr_t fnc);
void vFfff(x86emu_t *emu, uintptr_t fnc);
void vFfpp(x86emu_t *emu, uintptr_t fnc);
void vFddd(x86emu_t *emu, uintptr_t fnc);
void vFdpp(x86emu_t *emu, uintptr_t fnc);
void vFpii(x86emu_t *emu, uintptr_t fnc);
void vFpiu(x86emu_t *emu, uintptr_t fnc);
void vFpip(x86emu_t *emu, uintptr_t fnc);
void vFppu(x86emu_t *emu, uintptr_t fnc);
void vFppp(x86emu_t *emu, uintptr_t fnc);
void iFEpp(x86emu_t *emu, uintptr_t fnc);
void iFiii(x86emu_t *emu, uintptr_t fnc);
void iFipu(x86emu_t *emu, uintptr_t fnc);
void iFipp(x86emu_t *emu, uintptr_t fnc);
void iFuup(x86emu_t *emu, uintptr_t fnc);
void iFuff(x86emu_t *emu, uintptr_t fnc);
void iFfff(x86emu_t *emu, uintptr_t fnc);
void iFpii(x86emu_t *emu, uintptr_t fnc);
void iFpip(x86emu_t *emu, uintptr_t fnc);
void iFpuc(x86emu_t *emu, uintptr_t fnc);
void iFpuu(x86emu_t *emu, uintptr_t fnc);
void iFpup(x86emu_t *emu, uintptr_t fnc);
void iFppi(x86emu_t *emu, uintptr_t fnc);
void iFppu(x86emu_t *emu, uintptr_t fnc);
void iFppp(x86emu_t *emu, uintptr_t fnc);
void iFppV(x86emu_t *emu, uintptr_t fnc);
void IFppi(x86emu_t *emu, uintptr_t fnc);
void uFipu(x86emu_t *emu, uintptr_t fnc);
void uFuip(x86emu_t *emu, uintptr_t fnc);
void uFuuu(x86emu_t *emu, uintptr_t fnc);
void uFuup(x86emu_t *emu, uintptr_t fnc);
void uFupp(x86emu_t *emu, uintptr_t fnc);
void uFpiu(x86emu_t *emu, uintptr_t fnc);
void uFppi(x86emu_t *emu, uintptr_t fnc);
void uFppu(x86emu_t *emu, uintptr_t fnc);
void UFppi(x86emu_t *emu, uintptr_t fnc);
void fFuii(x86emu_t *emu, uintptr_t fnc);
void fFppu(x86emu_t *emu, uintptr_t fnc);
void dFppu(x86emu_t *emu, uintptr_t fnc);
void DFppu(x86emu_t *emu, uintptr_t fnc);
void pFEip(x86emu_t *emu, uintptr_t fnc);
void pFEpi(x86emu_t *emu, uintptr_t fnc);
void pFEpp(x86emu_t *emu, uintptr_t fnc);
void pFipi(x86emu_t *emu, uintptr_t fnc);
void pFipp(x86emu_t *emu, uintptr_t fnc);
void pFIpi(x86emu_t *emu, uintptr_t fnc);
void pFuii(x86emu_t *emu, uintptr_t fnc);
void pFupi(x86emu_t *emu, uintptr_t fnc);
void pFUpi(x86emu_t *emu, uintptr_t fnc);
void pFpiu(x86emu_t *emu, uintptr_t fnc);
void pFpip(x86emu_t *emu, uintptr_t fnc);
void pFppi(x86emu_t *emu, uintptr_t fnc);
void pFppu(x86emu_t *emu, uintptr_t fnc);
void pFppp(x86emu_t *emu, uintptr_t fnc);
void vFiiii(x86emu_t *emu, uintptr_t fnc);
void vFiiip(x86emu_t *emu, uintptr_t fnc);
void vFiuip(x86emu_t *emu, uintptr_t fnc);
void vFiuuu(x86emu_t *emu, uintptr_t fnc);
void vFifff(x86emu_t *emu, uintptr_t fnc);
void vFiddd(x86emu_t *emu, uintptr_t fnc);
void vFipup(x86emu_t *emu, uintptr_t fnc);
void vFuiii(x86emu_t *emu, uintptr_t fnc);
void vFuiip(x86emu_t *emu, uintptr_t fnc);
void vFuiui(x86emu_t *emu, uintptr_t fnc);
void vFuiuu(x86emu_t *emu, uintptr_t fnc);
void vFuiup(x86emu_t *emu, uintptr_t fnc);
void vFuifi(x86emu_t *emu, uintptr_t fnc);
void vFuiff(x86emu_t *emu, uintptr_t fnc);
void vFuidd(x86emu_t *emu, uintptr_t fnc);
void vFuipi(x86emu_t *emu, uintptr_t fnc);
void vFuipu(x86emu_t *emu, uintptr_t fnc);
void vFuipp(x86emu_t *emu, uintptr_t fnc);
void vFuuii(x86emu_t *emu, uintptr_t fnc);
void vFuuiu(x86emu_t *emu, uintptr_t fnc);
void vFuuip(x86emu_t *emu, uintptr_t fnc);
void vFuuui(x86emu_t *emu, uintptr_t fnc);
void vFuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuuuf(x86emu_t *emu, uintptr_t fnc);
void vFuuud(x86emu_t *emu, uintptr_t fnc);
void vFuuup(x86emu_t *emu, uintptr_t fnc);
void vFuupi(x86emu_t *emu, uintptr_t fnc);
void vFuupp(x86emu_t *emu, uintptr_t fnc);
void vFufff(x86emu_t *emu, uintptr_t fnc);
void vFuddd(x86emu_t *emu, uintptr_t fnc);
void vFupii(x86emu_t *emu, uintptr_t fnc);
void vFuppi(x86emu_t *emu, uintptr_t fnc);
void vFffff(x86emu_t *emu, uintptr_t fnc);
void vFdddd(x86emu_t *emu, uintptr_t fnc);
void vFpipp(x86emu_t *emu, uintptr_t fnc);
void vFpppu(x86emu_t *emu, uintptr_t fnc);
void vFpppp(x86emu_t *emu, uintptr_t fnc);
void iFEipp(x86emu_t *emu, uintptr_t fnc);
void iFEppV(x86emu_t *emu, uintptr_t fnc);
void iFiiiu(x86emu_t *emu, uintptr_t fnc);
void iFiWii(x86emu_t *emu, uintptr_t fnc);
void iFipii(x86emu_t *emu, uintptr_t fnc);
void iFipuu(x86emu_t *emu, uintptr_t fnc);
void iFuipp(x86emu_t *emu, uintptr_t fnc);
void iFuuff(x86emu_t *emu, uintptr_t fnc);
void iFpiiu(x86emu_t *emu, uintptr_t fnc);
void iFpipp(x86emu_t *emu, uintptr_t fnc);
void iFpupV(x86emu_t *emu, uintptr_t fnc);
void iFppii(x86emu_t *emu, uintptr_t fnc);
void iFppip(x86emu_t *emu, uintptr_t fnc);
void iFppup(x86emu_t *emu, uintptr_t fnc);
void iFpppi(x86emu_t *emu, uintptr_t fnc);
void iFpppp(x86emu_t *emu, uintptr_t fnc);
void uFuuuu(x86emu_t *emu, uintptr_t fnc);
void uFpccc(x86emu_t *emu, uintptr_t fnc);
void uFpuip(x86emu_t *emu, uintptr_t fnc);
void uFpuuu(x86emu_t *emu, uintptr_t fnc);
void uFpuup(x86emu_t *emu, uintptr_t fnc);
void uFpupp(x86emu_t *emu, uintptr_t fnc);
void uFppup(x86emu_t *emu, uintptr_t fnc);
void uFpppi(x86emu_t *emu, uintptr_t fnc);
void pFEppp(x86emu_t *emu, uintptr_t fnc);
void pFiiiu(x86emu_t *emu, uintptr_t fnc);
void pFiiup(x86emu_t *emu, uintptr_t fnc);
void pFuiii(x86emu_t *emu, uintptr_t fnc);
void pFppuu(x86emu_t *emu, uintptr_t fnc);
void pFpppu(x86emu_t *emu, uintptr_t fnc);
void vFiiiii(x86emu_t *emu, uintptr_t fnc);
void vFiiiiu(x86emu_t *emu, uintptr_t fnc);
void vFiiuup(x86emu_t *emu, uintptr_t fnc);
void vFiuiip(x86emu_t *emu, uintptr_t fnc);
void vFiuipi(x86emu_t *emu, uintptr_t fnc);
void vFiuuuu(x86emu_t *emu, uintptr_t fnc);
void vFiffff(x86emu_t *emu, uintptr_t fnc);
void vFidddd(x86emu_t *emu, uintptr_t fnc);
void vFipipu(x86emu_t *emu, uintptr_t fnc);
void vFipipp(x86emu_t *emu, uintptr_t fnc);
void vFipupi(x86emu_t *emu, uintptr_t fnc);
void vFuiiii(x86emu_t *emu, uintptr_t fnc);
void vFuiiiu(x86emu_t *emu, uintptr_t fnc);
void vFuiiip(x86emu_t *emu, uintptr_t fnc);
void vFuiiup(x86emu_t *emu, uintptr_t fnc);
void vFuiuii(x86emu_t *emu, uintptr_t fnc);
void vFuiuiu(x86emu_t *emu, uintptr_t fnc);
void vFuiuip(x86emu_t *emu, uintptr_t fnc);
void vFuiuuu(x86emu_t *emu, uintptr_t fnc);
void vFuiuup(x86emu_t *emu, uintptr_t fnc);
void vFuiupi(x86emu_t *emu, uintptr_t fnc);
void vFuifff(x86emu_t *emu, uintptr_t fnc);
void vFuiddd(x86emu_t *emu, uintptr_t fnc);
void vFuipip(x86emu_t *emu, uintptr_t fnc);
void vFuipup(x86emu_t *emu, uintptr_t fnc);
void vFuippp(x86emu_t *emu, uintptr_t fnc);
void vFuuiii(x86emu_t *emu, uintptr_t fnc);
void vFuuiui(x86emu_t *emu, uintptr_t fnc);
void vFuuiuu(x86emu_t *emu, uintptr_t fnc);
void vFuuiup(x86emu_t *emu, uintptr_t fnc);
void vFuuipi(x86emu_t *emu, uintptr_t fnc);
void vFuuipu(x86emu_t *emu, uintptr_t fnc);
void vFuuipp(x86emu_t *emu, uintptr_t fnc);
void vFuuuii(x86emu_t *emu, uintptr_t fnc);
void vFuuuiu(x86emu_t *emu, uintptr_t fnc);
void vFuuuip(x86emu_t *emu, uintptr_t fnc);
void vFuuuui(x86emu_t *emu, uintptr_t fnc);
void vFuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuuuup(x86emu_t *emu, uintptr_t fnc);
void vFuupii(x86emu_t *emu, uintptr_t fnc);
void vFuffff(x86emu_t *emu, uintptr_t fnc);
void vFudddd(x86emu_t *emu, uintptr_t fnc);
void vFupupi(x86emu_t *emu, uintptr_t fnc);
void vFuppip(x86emu_t *emu, uintptr_t fnc);
void vFupppp(x86emu_t *emu, uintptr_t fnc);
void vFfffff(x86emu_t *emu, uintptr_t fnc);
void vFpiiii(x86emu_t *emu, uintptr_t fnc);
void vFpuipp(x86emu_t *emu, uintptr_t fnc);
void vFpppii(x86emu_t *emu, uintptr_t fnc);
void vFppppp(x86emu_t *emu, uintptr_t fnc);
void iFEpipp(x86emu_t *emu, uintptr_t fnc);
void iFEpppp(x86emu_t *emu, uintptr_t fnc);
void iFEpppV(x86emu_t *emu, uintptr_t fnc);
void iFipiii(x86emu_t *emu, uintptr_t fnc);
void iFipppp(x86emu_t *emu, uintptr_t fnc);
void iFpiiii(x86emu_t *emu, uintptr_t fnc);
void iFpiiip(x86emu_t *emu, uintptr_t fnc);
void iFpipii(x86emu_t *emu, uintptr_t fnc);
void iFpppii(x86emu_t *emu, uintptr_t fnc);
void iFppppu(x86emu_t *emu, uintptr_t fnc);
void iFppppp(x86emu_t *emu, uintptr_t fnc);
void uFuiiiu(x86emu_t *emu, uintptr_t fnc);
void uFpcccc(x86emu_t *emu, uintptr_t fnc);
void uFpuppu(x86emu_t *emu, uintptr_t fnc);
void uFppiip(x86emu_t *emu, uintptr_t fnc);
void uFppuup(x86emu_t *emu, uintptr_t fnc);
void uFppppp(x86emu_t *emu, uintptr_t fnc);
void pFuiipp(x86emu_t *emu, uintptr_t fnc);
void pFpippp(x86emu_t *emu, uintptr_t fnc);
void pFppuuu(x86emu_t *emu, uintptr_t fnc);
void vFiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFiffiff(x86emu_t *emu, uintptr_t fnc);
void vFiddidd(x86emu_t *emu, uintptr_t fnc);
void vFuiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuiiuii(x86emu_t *emu, uintptr_t fnc);
void vFuiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuiuiii(x86emu_t *emu, uintptr_t fnc);
void vFuiuiip(x86emu_t *emu, uintptr_t fnc);
void vFuiuiuu(x86emu_t *emu, uintptr_t fnc);
void vFuiuuip(x86emu_t *emu, uintptr_t fnc);
void vFuiuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuiupii(x86emu_t *emu, uintptr_t fnc);
void vFuiupiu(x86emu_t *emu, uintptr_t fnc);
void vFuiffff(x86emu_t *emu, uintptr_t fnc);
void vFuidddd(x86emu_t *emu, uintptr_t fnc);
void vFuipiup(x86emu_t *emu, uintptr_t fnc);
void vFuuiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuiuii(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiu(x86emu_t *emu, uintptr_t fnc);
void vFuuiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuuiup(x86emu_t *emu, uintptr_t fnc);
void vFuuuipi(x86emu_t *emu, uintptr_t fnc);
void vFuuuipp(x86emu_t *emu, uintptr_t fnc);
void vFuuuuii(x86emu_t *emu, uintptr_t fnc);
void vFuuuuip(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuuuuff(x86emu_t *emu, uintptr_t fnc);
void vFuuuppi(x86emu_t *emu, uintptr_t fnc);
void vFuuuppp(x86emu_t *emu, uintptr_t fnc);
void vFuuffff(x86emu_t *emu, uintptr_t fnc);
void vFuudddd(x86emu_t *emu, uintptr_t fnc);
void vFuffiip(x86emu_t *emu, uintptr_t fnc);
void vFufffff(x86emu_t *emu, uintptr_t fnc);
void vFuddiip(x86emu_t *emu, uintptr_t fnc);
void vFupupip(x86emu_t *emu, uintptr_t fnc);
void vFuppppp(x86emu_t *emu, uintptr_t fnc);
void vFffffff(x86emu_t *emu, uintptr_t fnc);
void vFdddddd(x86emu_t *emu, uintptr_t fnc);
void vFppupii(x86emu_t *emu, uintptr_t fnc);
void vFpppppp(x86emu_t *emu, uintptr_t fnc);
void iFippppp(x86emu_t *emu, uintptr_t fnc);
void iFpiiipp(x86emu_t *emu, uintptr_t fnc);
void iFpiuuuu(x86emu_t *emu, uintptr_t fnc);
void iFppuiiu(x86emu_t *emu, uintptr_t fnc);
void pFpiiiiu(x86emu_t *emu, uintptr_t fnc);
void pFppiiii(x86emu_t *emu, uintptr_t fnc);
void pFpppppp(x86emu_t *emu, uintptr_t fnc);
void vFiiiiiip(x86emu_t *emu, uintptr_t fnc);
void vFiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFiiupuip(x86emu_t *emu, uintptr_t fnc);
void vFiiffffp(x86emu_t *emu, uintptr_t fnc);
void vFiupuuup(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuiiiuip(x86emu_t *emu, uintptr_t fnc);
void vFuiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuiuiiii(x86emu_t *emu, uintptr_t fnc);
void vFuiuiiip(x86emu_t *emu, uintptr_t fnc);
void vFuiuiiuu(x86emu_t *emu, uintptr_t fnc);
void vFuiupiiu(x86emu_t *emu, uintptr_t fnc);
void vFuipiiii(x86emu_t *emu, uintptr_t fnc);
void vFuipffff(x86emu_t *emu, uintptr_t fnc);
void vFuipdddd(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiui(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiuu(x86emu_t *emu, uintptr_t fnc);
void vFuuiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiii(x86emu_t *emu, uintptr_t fnc);
void vFuuipppp(x86emu_t *emu, uintptr_t fnc);
void vFuuuiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuuiiip(x86emu_t *emu, uintptr_t fnc);
void vFuuuiuii(x86emu_t *emu, uintptr_t fnc);
void vFuuuiupi(x86emu_t *emu, uintptr_t fnc);
void vFuuuuiip(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuuuufff(x86emu_t *emu, uintptr_t fnc);
void vFuuuffff(x86emu_t *emu, uintptr_t fnc);
void vFuuudddd(x86emu_t *emu, uintptr_t fnc);
void vFuuffiip(x86emu_t *emu, uintptr_t fnc);
void vFuuddiip(x86emu_t *emu, uintptr_t fnc);
void vFuffffff(x86emu_t *emu, uintptr_t fnc);
void vFudddddd(x86emu_t *emu, uintptr_t fnc);
void iFppiiuui(x86emu_t *emu, uintptr_t fnc);
void iFppipppp(x86emu_t *emu, uintptr_t fnc);
void iFppppppp(x86emu_t *emu, uintptr_t fnc);
void uFuippppp(x86emu_t *emu, uintptr_t fnc);
void vFiiiiuuip(x86emu_t *emu, uintptr_t fnc);
void vFiupuiuup(x86emu_t *emu, uintptr_t fnc);
void vFiupuuuup(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuiiipiup(x86emu_t *emu, uintptr_t fnc);
void vFuiuiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuiuiiiip(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiuip(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuiiuupp(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiiip(x86emu_t *emu, uintptr_t fnc);
void vFuuuiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuuiuiii(x86emu_t *emu, uintptr_t fnc);
void vFuuuipipp(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuuuuufff(x86emu_t *emu, uintptr_t fnc);
void vFffffffff(x86emu_t *emu, uintptr_t fnc);
void iFEpippppp(x86emu_t *emu, uintptr_t fnc);
void iFuiifpppp(x86emu_t *emu, uintptr_t fnc);
void iFpupppppp(x86emu_t *emu, uintptr_t fnc);
void iFpppipppp(x86emu_t *emu, uintptr_t fnc);
void uFuipppppp(x86emu_t *emu, uintptr_t fnc);
void pFuiiiuuuu(x86emu_t *emu, uintptr_t fnc);
void pFppiiuuui(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiuip(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuiuiiiiip(x86emu_t *emu, uintptr_t fnc);
void vFuiupuffup(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiiiip(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuuiiiiip(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuupiuiuuf(x86emu_t *emu, uintptr_t fnc);
void vFuffffffff(x86emu_t *emu, uintptr_t fnc);
void vFffuuuufff(x86emu_t *emu, uintptr_t fnc);
void vFpppppippp(x86emu_t *emu, uintptr_t fnc);
void iFppiuiippu(x86emu_t *emu, uintptr_t fnc);
void pFpiiiiuuuu(x86emu_t *emu, uintptr_t fnc);
void vFiiiiiiiiiu(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuiuiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiiiuip(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiiiiip(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuuuiii(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuupiiupuuf(x86emu_t *emu, uintptr_t fnc);
void vFuffiiffiip(x86emu_t *emu, uintptr_t fnc);
void vFuddiiddiip(x86emu_t *emu, uintptr_t fnc);
void vFffffffffff(x86emu_t *emu, uintptr_t fnc);
void iFppppiiiiuu(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiiiuip(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuiuiiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuiuiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuuuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuuffiiffiip(x86emu_t *emu, uintptr_t fnc);
void vFuufffffffff(x86emu_t *emu, uintptr_t fnc);
void vFuuddiiddiip(x86emu_t *emu, uintptr_t fnc);
void vFuffffffffff(x86emu_t *emu, uintptr_t fnc);
void pFppiiuuuipii(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiiiiiuip(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuuuuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFffffffffffff(x86emu_t *emu, uintptr_t fnc);
void iFpppiiipppppp(x86emu_t *emu, uintptr_t fnc);
void vFuiiiiiiiiiuup(x86emu_t *emu, uintptr_t fnc);
void vFuuuuuuuuuuuuu(x86emu_t *emu, uintptr_t fnc);
void vFuffffffffffff(x86emu_t *emu, uintptr_t fnc);
void vFuffiiffiiffiip(x86emu_t *emu, uintptr_t fnc);
void vFuddiiddiiddiip(x86emu_t *emu, uintptr_t fnc);
void vFuuiiiiuuiiiiiii(x86emu_t *emu, uintptr_t fnc);
void vFfffffffffffffff(x86emu_t *emu, uintptr_t fnc);
void iFEpp0V(x86emu_t *emu, uintptr_t fnc);
void iFEvp0V(x86emu_t *emu, uintptr_t fnc);
void iFEpvp0V(x86emu_t *emu, uintptr_t fnc);
void iFpvpV(x86emu_t *emu, uintptr_t fnc);
void iFEp0V(x86emu_t *emu, uintptr_t fnc);
#endif //__WRAPPER_H_

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_d.h but wrapper.h
#endif

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_f.h but wrapper.h
#endif

View File

@ -1,16 +0,0 @@
#ifdef GOW
GOW(iFpV, iFpp_t, p(0), (void*)stack(4))
GOW(iF1pV, iFipp_t, 1, p(0), (void*)stack(4))
GOW(iFopV, iFppp_t, (void*)stdout, p(0), (void*)stack(4))
GOW(iFvopV, iFppp_t, (void*)stdout, p(4), (void*)stack(8))
GOW(iFpvpV, iFppp_t, p(0), p(8), (void*)stack(12))
GOW(iFvpV, iFpp_t, p(4), (void*)stack(8))
GOW(iFEp0V, iFEppp_t, emu, p(0), (void*)stack(4), (void*)stack(4))
GOW(iFEvp0V, iFEppp_t, emu, p(4), (void*)stack(8), (void*)stack(8))
GOW(iFEpp0V, iFEpppp_t, emu, p(0), p(4), (void*)stack(8), (void*)stack(8))
GOW(iFEpvp0V, iFEpppp_t, emu, p(0), p(8), (void*)stack(12), (void*)stack(12))
#else
#error You must not include wrapper_i.h but wrapper.h
#endif

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_i64.h but wrapper.h
#endif

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_ld.h but wrapper.h
#endif

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_p.h but wrapper.h
#endif

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_u.h but wrapper.heh
#endif

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_u64.h but wrapper.h
#endif

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_u8.h but wrapper.h
#endif

View File

@ -1,5 +0,0 @@
#ifdef GOW
#else
#error You must not include wrapper_v.h but wrapper.h
#endif