mirror of
https://github.com/ptitSeb/box86.git
synced 2024-12-12 03:13:55 +08:00
Correct fix for the generator bug
This commit is contained in:
parent
29a33b9836
commit
bb075ea82e
@ -124,7 +124,7 @@ set(WRAPPEDS
|
||||
"${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}" "PANDORA" ${PANDORA} "HAVE_LD80BITS" ${LD80BITS} "NOALIGN" ${NOALIGN} "HAVE_TRACE" ${HAVE_TRACE} "USE_FLOAT" ${USE_FLOAT} MAIN_DEPENDENCY "${CMAKE_HOME_DIRECTORY}/rebuild_wrappers.py" DEPENDS ${WRAPPEDS} BYPRODUCTS ${WRAPPER})
|
||||
add_custom_command(OUTPUT ${WRAPPER} COMMAND "${CMAKE_HOME_DIRECTORY}/rebuild_wrappers.py" "${CMAKE_HOME_DIRECTORY}" "PANDORA" "HAVE_LD80BITS" "NOALIGN" "HAVE_TRACE" "USE_FLOAT" MAIN_DEPENDENCY "${CMAKE_HOME_DIRECTORY}/rebuild_wrappers.py" DEPENDS ${WRAPPEDS} BYPRODUCTS ${WRAPPER})
|
||||
|
||||
if(USE_FLOAT)
|
||||
set(BOX86 box86f)
|
||||
|
@ -15,6 +15,27 @@ def splitchar(s):
|
||||
ret.append(values.index(c))
|
||||
return ret
|
||||
|
||||
def value(define):
|
||||
return define[9:-1] if define.startswith("!") else define[8:-1]
|
||||
|
||||
def splitdef(dnf, defines):
|
||||
cunjs = dnf.split(" || ")
|
||||
clauses = [c.split(" && ") for c in cunjs]
|
||||
|
||||
ret = [len(cunjs)]
|
||||
|
||||
for cunj in clauses:
|
||||
for c in cunj:
|
||||
ret.append(len(c))
|
||||
for cunj in clauses:
|
||||
for c in cunj:
|
||||
ret.append(defines.index(value(c)) * 2 + (1 if c.startswith("!") else 0))
|
||||
ret.append(0)
|
||||
return ret
|
||||
|
||||
def invert(define):
|
||||
return define[1:] if define.startswith("!") else ("!" + define)
|
||||
|
||||
def main(root, defines):
|
||||
# Initialize variables: gbl for all values, vals for file-per-file values, redirects for redirections
|
||||
gbl = {}
|
||||
@ -43,17 +64,15 @@ def main(root, defines):
|
||||
if dependants != []:
|
||||
dependants.pop()
|
||||
elif preproc_cmd.startswith("ifdef"):
|
||||
defines[preproc_cmd[5:].strip()]
|
||||
if preproc_cmd[5:].strip() not in defines:
|
||||
raise KeyError(preproc_cmd[5:].strip())
|
||||
dependants.append("defined(" + preproc_cmd[5:].strip() + ")")
|
||||
elif preproc_cmd.startswith("ifndef"):
|
||||
defines[preproc_cmd[5:].strip()]
|
||||
if preproc_cmd[5:].strip() not in defines:
|
||||
raise KeyError(preproc_cmd[5:].strip())
|
||||
dependants.append("!defined(" + preproc_cmd[6:].strip() + ")")
|
||||
elif preproc_cmd.startswith("else"):
|
||||
before = dependants.pop()
|
||||
if before.startswith("!"):
|
||||
dependants.append("defined(" + before[9:-1].strip() + ")")
|
||||
else:
|
||||
dependants.append("!defined(" + before[8:-1].strip() + ")")
|
||||
dependants[-1] = invert(dependants[-1])
|
||||
else:
|
||||
raise NotImplementedError("Unknown preprocessor directive: {0} ({1}:{2})".format(
|
||||
preproc_cmd.split(" ")[0], filename, line[:-1]
|
||||
@ -93,25 +112,23 @@ def main(root, defines):
|
||||
|
||||
# Sort the file local values and add it to the dictionary
|
||||
for k in locval:
|
||||
locval[k].sort(key=lambda v: splitchar(v))
|
||||
locval[k].sort(key=splitchar)
|
||||
vals[filename] = locval
|
||||
|
||||
gbl_vals = {}
|
||||
for k in gbl:
|
||||
ks = k.split(" && ")
|
||||
for v in gbl[k]:
|
||||
if k == "()":
|
||||
gbl_vals[v] = [k]
|
||||
if k == "":
|
||||
gbl_vals[v] = []
|
||||
continue
|
||||
if gbl_vals.has_key(v):
|
||||
if gbl_vals[v] == []:
|
||||
continue
|
||||
for other_key in gbl_vals[v]:
|
||||
if "!" + other_key == k:
|
||||
gbl_vals[v].append(k)
|
||||
break
|
||||
if other_key == "()":
|
||||
break
|
||||
other_key_vals = other_key.split(" && ")
|
||||
for other_key_val in other_key_vals:
|
||||
if other_key_val not in k:
|
||||
if other_key_val not in ks:
|
||||
break
|
||||
else:
|
||||
break
|
||||
@ -119,21 +136,39 @@ def main(root, defines):
|
||||
gbl_vals[v].append(k)
|
||||
else:
|
||||
gbl_vals[v] = [k]
|
||||
for v in gbl_vals:
|
||||
for k in gbl_vals[v]:
|
||||
if " && ".join([invert(v2) for v2 in k.split(" && ")]) in gbl_vals[v]:
|
||||
gbl_vals[v] = []
|
||||
break
|
||||
gbl = {}
|
||||
gbl_idxs = []
|
||||
for k in gbl_vals:
|
||||
key = "(" + (") || (".join(gbl_vals[k])) + ")"
|
||||
if len(gbl_vals[k]) == 1:
|
||||
key = gbl_vals[k][0]
|
||||
else:
|
||||
key = "(" + (") || (".join(gbl_vals[k])) + ")"
|
||||
gbl[key] = gbl.get(key, []) + [k]
|
||||
if (key not in gbl_idxs) and (key != "()"):
|
||||
gbl_idxs.append(key)
|
||||
gbl_idxs.sort(key=lambda v: splitdef(v, defines))
|
||||
|
||||
redirects_vals = {}
|
||||
for k in redirects:
|
||||
ks = k.split(" && ")
|
||||
for v in redirects[k]:
|
||||
if redirects_vals.has_key(v):
|
||||
for other_key in redirects_vals[v]:
|
||||
if k == "":
|
||||
redirects_vals[(v, redirects[k][v])] = []
|
||||
continue
|
||||
if redirects_vals.has_key((v, redirects[k][v])):
|
||||
if redirects_vals[(v, redirects[k][v])] == []:
|
||||
continue
|
||||
for other_key in redirects_vals[(v, redirects[k][v])]:
|
||||
if other_key == "()":
|
||||
break
|
||||
other_key_vals = other_key.split(" && ")
|
||||
for other_key_val in other_key_vals:
|
||||
if other_key_val not in k:
|
||||
if other_key_val not in ks:
|
||||
break
|
||||
else:
|
||||
break
|
||||
@ -142,11 +177,15 @@ def main(root, defines):
|
||||
else:
|
||||
redirects_vals[(v, redirects[k][v])] = [k]
|
||||
redirects = {}
|
||||
redirects_idxs = []
|
||||
for k, v in redirects_vals:
|
||||
key = "(" + (") || (".join(redirects_vals[(k, v)])) + ")"
|
||||
val = redirects.get(key, {})
|
||||
val[k] = v
|
||||
redirects[key] = val
|
||||
if (key not in redirects_idxs) and (key != "()"):
|
||||
redirects_idxs.append(key)
|
||||
redirects_idxs.sort(key=lambda v: splitdef(v, defines))
|
||||
|
||||
# Sort the table
|
||||
for k in gbl:
|
||||
@ -230,7 +269,7 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
|
||||
file.write(files_headers["wrapper.h"])
|
||||
for v in gbl["()"]:
|
||||
file.write("void " + ''.join(v) + "(x86emu_t *emu, uintptr_t fnc);\n")
|
||||
for k in gbl:
|
||||
for k in gbl_idxs:
|
||||
if k != "()":
|
||||
file.write("\n#if " + k + "\n")
|
||||
for v in gbl[k]:
|
||||
@ -239,7 +278,7 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
|
||||
file.write("\n")
|
||||
for v in redirects["()"]:
|
||||
file.write("void " + ''.join(v) + "(x86emu_t *emu, uintptr_t fnc);\n")
|
||||
for k in redirects:
|
||||
for k in redirects_idxs:
|
||||
if k != "()":
|
||||
file.write("\n#if " + k + "\n")
|
||||
for v in redirects[k]:
|
||||
@ -260,7 +299,7 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
|
||||
|
||||
file.write("typedef " + types[values.index(v[0])] + " (*" + ''.join(v) + "_t)"
|
||||
+ "(" + ', '.join(types[values.index(t)] for t in v[2:]) + ");\n")
|
||||
for k in gbl:
|
||||
for k in gbl_idxs:
|
||||
if k != "()":
|
||||
file.write("\n#if " + k + "\n")
|
||||
for v in gbl[k]:
|
||||
@ -273,6 +312,7 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
|
||||
+ "(" + ', '.join(types[values.index(t)] for t in v[2:]) + ");\n")
|
||||
file.write("#endif\n")
|
||||
|
||||
file.write("\n")
|
||||
# Next part: function definitions
|
||||
|
||||
# Helper functions to write the function definitions
|
||||
@ -280,11 +320,11 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
|
||||
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?")
|
||||
raise ValueError("{d} is not a multiple of 4. Did you try passing a V and something else?".format(d=d))
|
||||
|
||||
if args[0] == "0":
|
||||
return "(void*)(R_ESP + {p}), ".format(p=d) + function_args(args[1:], d + 4)
|
||||
elif args[0] == 1:
|
||||
elif args[0] == "1":
|
||||
return "1, " + function_args(args[1:], d)
|
||||
|
||||
arg = [
|
||||
@ -341,7 +381,7 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
|
||||
|
||||
for v in gbl["()"]:
|
||||
function_writer(file, ''.join(v), ''.join(v) + "_t", v[0], v[2:])
|
||||
for k in gbl:
|
||||
for k in gbl_idxs:
|
||||
if k != "()":
|
||||
file.write("\n#if " + k + "\n")
|
||||
for v in gbl[k]:
|
||||
@ -350,7 +390,7 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
|
||||
file.write("\n")
|
||||
for v in redirects["()"]:
|
||||
function_writer(file, v, redirects["()"][v] + "_t", v[0], v[2:])
|
||||
for k in redirects:
|
||||
for k in redirects_idxs:
|
||||
if k != "()":
|
||||
file.write("\n#if " + k + "\n")
|
||||
for v in redirects[k]:
|
||||
@ -362,9 +402,6 @@ typedef void (*wrapper_t)(x86emu_t* emu, uintptr_t fnc);
|
||||
return 0
|
||||
|
||||
if __name__ == '__main__':
|
||||
defines = {}
|
||||
for i in range(2, len(sys.argv), 2):
|
||||
defines[sys.argv[i]] = sys.argv[i + 1] == "TRUE"
|
||||
if main(sys.argv[1], defines) != 0:
|
||||
if main(sys.argv[1], sys.argv[2:]) != 0:
|
||||
exit(2)
|
||||
exit(0)
|
||||
|
@ -755,6 +755,7 @@ typedef void (*vFppiiipiii_t)(void*, void*, int32_t, int32_t, int32_t, void*, in
|
||||
typedef void (*vFppuuiiiii_t)(void*, void*, uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
|
||||
typedef void (*vFpppppippp_t)(void*, void*, void*, void*, void*, int32_t, void*, void*, void*);
|
||||
typedef void (*vFppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*);
|
||||
typedef int32_t (*iFEpppipppp_t)(x86emu_t*, void*, void*, void*, int32_t, void*, void*, void*, void*);
|
||||
typedef int32_t (*iFiiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
|
||||
typedef int32_t (*iFiiiipiiip_t)(int32_t, int32_t, int32_t, int32_t, void*, int32_t, int32_t, int32_t, void*);
|
||||
typedef int32_t (*iFdddpppppp_t)(double, double, double, void*, void*, void*, void*, void*, void*);
|
||||
@ -829,23 +830,13 @@ typedef void (*vFfffffffffffffff_t)(float, float, float, float, float, float, fl
|
||||
typedef uint32_t (*uFpppppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*);
|
||||
typedef void (*vFppuiiiiipuiiiiiiii_t)(void*, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
|
||||
|
||||
#if (!defined(HAVE_LD80BITS))
|
||||
typedef double (*LFL_t)(double);
|
||||
typedef double (*LFLL_t)(double, double);
|
||||
typedef double (*LFLp_t)(double, void*);
|
||||
#endif
|
||||
|
||||
#if (defined(NOALIGN)) || (!defined(NOALIGN))
|
||||
typedef int32_t (*iFEpppipppp_t)(x86emu_t*, void*, void*, void*, int32_t, void*, void*, void*, void*);
|
||||
#endif
|
||||
|
||||
#if (defined(NOALIGN))
|
||||
#if defined(NOALIGN)
|
||||
typedef int64_t (*IFpi_t)(void*, int32_t);
|
||||
typedef double (*dFpi_t)(void*, int32_t);
|
||||
typedef int32_t (*iFppiiiip_t)(void*, void*, int32_t, int32_t, int32_t, int32_t, void*);
|
||||
#endif
|
||||
|
||||
#if (!defined(NOALIGN))
|
||||
#if !defined(NOALIGN)
|
||||
typedef int64_t (*IFEp_t)(x86emu_t*, void*);
|
||||
typedef double (*dFEp_t)(x86emu_t*, void*);
|
||||
typedef int32_t (*iFEpI_t)(x86emu_t*, void*, int64_t);
|
||||
@ -859,11 +850,18 @@ typedef int32_t (*iFEpppi_t)(x86emu_t*, void*, void*, void*, int32_t);
|
||||
typedef int32_t (*iFEppiiiip_t)(x86emu_t*, void*, void*, int32_t, int32_t, int32_t, int32_t, void*);
|
||||
#endif
|
||||
|
||||
#if (defined(HAVE_LD80BITS))
|
||||
#if defined(HAVE_LD80BITS)
|
||||
typedef long double (*DFD_t)(long double);
|
||||
typedef long double (*DFDD_t)(long double, long double);
|
||||
typedef long double (*DFDp_t)(long double, void*);
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_LD80BITS)
|
||||
typedef double (*LFL_t)(double);
|
||||
typedef double (*LFLL_t)(double, double);
|
||||
typedef double (*LFLp_t)(double, void*);
|
||||
#endif
|
||||
|
||||
void iF(x86emu_t *emu, uintptr_t fcn) { iF_t fn = (iF_t)fcn; R_EAX=fn(); }
|
||||
void vFE(x86emu_t *emu, uintptr_t fcn) { vFE_t fn = (vFE_t)fcn; fn(emu); }
|
||||
void vFv(x86emu_t *emu, uintptr_t fcn) { vFv_t fn = (vFv_t)fcn; fn(); }
|
||||
@ -1596,6 +1594,7 @@ void vFppiiipiii(x86emu_t *emu, uintptr_t fcn) { vFppiiipiii_t fn = (vFppiiipiii
|
||||
void vFppuuiiiii(x86emu_t *emu, uintptr_t fcn) { vFppuuiiiii_t fn = (vFppuuiiiii_t)fcn; fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(uint32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(int32_t*)(R_ESP + 28), *(int32_t*)(R_ESP + 32), *(int32_t*)(R_ESP + 36)); }
|
||||
void vFpppppippp(x86emu_t *emu, uintptr_t fcn) { vFpppppippp_t fn = (vFpppppippp_t)fcn; fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32), *(void**)(R_ESP + 36)); }
|
||||
void vFppppppppp(x86emu_t *emu, uintptr_t fcn) { vFppppppppp_t fn = (vFppppppppp_t)fcn; fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20), *(void**)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32), *(void**)(R_ESP + 36)); }
|
||||
void iFEpppipppp(x86emu_t *emu, uintptr_t fcn) { iFEpppipppp_t fn = (iFEpppipppp_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(void**)(R_ESP + 20), *(void**)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32)); }
|
||||
void iFiiiiiiiip(x86emu_t *emu, uintptr_t fcn) { iFiiiiiiiip_t fn = (iFiiiiiiiip_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(int32_t*)(R_ESP + 28), *(int32_t*)(R_ESP + 32), *(void**)(R_ESP + 36)); }
|
||||
void iFiiiipiiip(x86emu_t *emu, uintptr_t fcn) { iFiiiipiiip_t fn = (iFiiiipiiip_t)fcn; R_EAX=fn(*(int32_t*)(R_ESP + 4), *(int32_t*)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(void**)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(int32_t*)(R_ESP + 28), *(int32_t*)(R_ESP + 32), *(void**)(R_ESP + 36)); }
|
||||
void iFdddpppppp(x86emu_t *emu, uintptr_t fcn) { iFdddpppppp_t fn = (iFdddpppppp_t)fcn; R_EAX=fn(*(double*)(R_ESP + 4), *(double*)(R_ESP + 12), *(double*)(R_ESP + 20), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32), *(void**)(R_ESP + 36), *(void**)(R_ESP + 40), *(void**)(R_ESP + 44), *(void**)(R_ESP + 48)); }
|
||||
@ -1670,23 +1669,13 @@ void vFfffffffffffffff(x86emu_t *emu, uintptr_t fcn) { vFfffffffffffffff_t fn =
|
||||
void uFpppppppppppppppp(x86emu_t *emu, uintptr_t fcn) { uFpppppppppppppppp_t fn = (uFpppppppppppppppp_t)fcn; R_EAX=(uint32_t)fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20), *(void**)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32), *(void**)(R_ESP + 36), *(void**)(R_ESP + 40), *(void**)(R_ESP + 44), *(void**)(R_ESP + 48), *(void**)(R_ESP + 52), *(void**)(R_ESP + 56), *(void**)(R_ESP + 60), *(void**)(R_ESP + 64)); }
|
||||
void vFppuiiiiipuiiiiiiii(x86emu_t *emu, uintptr_t fcn) { vFppuiiiiipuiiiiiiii_t fn = (vFppuiiiiipuiiiiiiii_t)fcn; fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(uint32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(int32_t*)(R_ESP + 28), *(int32_t*)(R_ESP + 32), *(void**)(R_ESP + 36), *(uint32_t*)(R_ESP + 40), *(int32_t*)(R_ESP + 44), *(int32_t*)(R_ESP + 48), *(int32_t*)(R_ESP + 52), *(int32_t*)(R_ESP + 56), *(int32_t*)(R_ESP + 60), *(int32_t*)(R_ESP + 64), *(int32_t*)(R_ESP + 68), *(int32_t*)(R_ESP + 72)); }
|
||||
|
||||
#if (!defined(HAVE_LD80BITS))
|
||||
void LFL(x86emu_t *emu, uintptr_t fcn) { LFL_t fn = (LFL_t)fcn; double db=fn(FromLD((void*)(R_ESP + 4))); fpu_do_push(emu); ST0val = db; }
|
||||
void LFLL(x86emu_t *emu, uintptr_t fcn) { LFLL_t fn = (LFLL_t)fcn; double db=fn(FromLD((void*)(R_ESP + 4)), FromLD((void*)(R_ESP + 16))); fpu_do_push(emu); ST0val = db; }
|
||||
void LFLp(x86emu_t *emu, uintptr_t fcn) { LFLp_t fn = (LFLp_t)fcn; double db=fn(FromLD((void*)(R_ESP + 4)), *(void**)(R_ESP + 16)); fpu_do_push(emu); ST0val = db; }
|
||||
#endif
|
||||
|
||||
#if (defined(NOALIGN)) || (!defined(NOALIGN))
|
||||
void iFEpppipppp(x86emu_t *emu, uintptr_t fcn) { iFEpppipppp_t fn = (iFEpppipppp_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(void**)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(void**)(R_ESP + 20), *(void**)(R_ESP + 24), *(void**)(R_ESP + 28), *(void**)(R_ESP + 32)); }
|
||||
#endif
|
||||
|
||||
#if (defined(NOALIGN))
|
||||
#if defined(NOALIGN)
|
||||
void IFpi(x86emu_t *emu, uintptr_t fcn) { IFpi_t fn = (IFpi_t)fcn; ui64_t r; r.i=fn(*(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8)); R_EAX=r.d[0]; R_EDX=r.d[1]; }
|
||||
void dFpi(x86emu_t *emu, uintptr_t fcn) { dFpi_t fn = (dFpi_t)fcn; double db=fn(*(void**)(R_ESP + 4), *(int32_t*)(R_ESP + 8)); fpu_do_push(emu); ST0val = db; }
|
||||
void iFppiiiip(x86emu_t *emu, uintptr_t fcn) { iFppiiiip_t fn = (iFppiiiip_t)fcn; R_EAX=fn(*(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(void**)(R_ESP + 28)); }
|
||||
#endif
|
||||
|
||||
#if (!defined(NOALIGN))
|
||||
#if !defined(NOALIGN)
|
||||
void IFEp(x86emu_t *emu, uintptr_t fcn) { IFEp_t fn = (IFEp_t)fcn; ui64_t r; r.i=fn(emu, *(void**)(R_ESP + 4)); R_EAX=r.d[0]; R_EDX=r.d[1]; }
|
||||
void dFEp(x86emu_t *emu, uintptr_t fcn) { dFEp_t fn = (dFEp_t)fcn; double db=fn(emu, *(void**)(R_ESP + 4)); fpu_do_push(emu); ST0val = db; }
|
||||
void iFEpI(x86emu_t *emu, uintptr_t fcn) { iFEpI_t fn = (iFEpI_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(int64_t*)(R_ESP + 8)); }
|
||||
@ -1700,12 +1689,18 @@ void iFEpppi(x86emu_t *emu, uintptr_t fcn) { iFEpppi_t fn = (iFEpppi_t)fcn; R_EA
|
||||
void iFEppiiiip(x86emu_t *emu, uintptr_t fcn) { iFEppiiiip_t fn = (iFEppiiiip_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(void**)(R_ESP + 8), *(int32_t*)(R_ESP + 12), *(int32_t*)(R_ESP + 16), *(int32_t*)(R_ESP + 20), *(int32_t*)(R_ESP + 24), *(void**)(R_ESP + 28)); }
|
||||
#endif
|
||||
|
||||
#if (defined(HAVE_LD80BITS))
|
||||
#if defined(HAVE_LD80BITS)
|
||||
void DFD(x86emu_t *emu, uintptr_t fcn) { DFD_t fn = (DFD_t)fcn; long double ld=fn(*(long double*)(R_ESP + 4)); fpu_do_push(emu); ST0val = ld; }
|
||||
void DFDD(x86emu_t *emu, uintptr_t fcn) { DFDD_t fn = (DFDD_t)fcn; long double ld=fn(*(long double*)(R_ESP + 4), *(long double*)(R_ESP + 16)); fpu_do_push(emu); ST0val = ld; }
|
||||
void DFDp(x86emu_t *emu, uintptr_t fcn) { DFDp_t fn = (DFDp_t)fcn; long double ld=fn(*(long double*)(R_ESP + 4), *(void**)(R_ESP + 16)); fpu_do_push(emu); ST0val = ld; }
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_LD80BITS)
|
||||
void LFL(x86emu_t *emu, uintptr_t fcn) { LFL_t fn = (LFL_t)fcn; double db=fn(FromLD((void*)(R_ESP + 4))); fpu_do_push(emu); ST0val = db; }
|
||||
void LFLL(x86emu_t *emu, uintptr_t fcn) { LFLL_t fn = (LFLL_t)fcn; double db=fn(FromLD((void*)(R_ESP + 4)), FromLD((void*)(R_ESP + 16))); fpu_do_push(emu); ST0val = db; }
|
||||
void LFLp(x86emu_t *emu, uintptr_t fcn) { LFLp_t fn = (LFLp_t)fcn; double db=fn(FromLD((void*)(R_ESP + 4)), *(void**)(R_ESP + 16)); fpu_do_push(emu); ST0val = db; }
|
||||
#endif
|
||||
|
||||
void iFEpvvpp(x86emu_t *emu, uintptr_t fcn) { iFEppp_t fn = (iFEppp_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 4), *(void**)(R_ESP + 16), *(void**)(R_ESP + 20)); }
|
||||
void iFEvpVV(x86emu_t *emu, uintptr_t fcn) { iFEpVV_t fn = (iFEpVV_t)fcn; R_EAX=fn(emu, *(void**)(R_ESP + 8), (void*)(R_ESP + 12), (void*)(R_ESP + 12)); }
|
||||
void iFEv(x86emu_t *emu, uintptr_t fcn) { iFE_t fn = (iFE_t)fcn; R_EAX=fn(emu); }
|
||||
|
@ -754,6 +754,7 @@ void vFppiiipiii(x86emu_t *emu, uintptr_t fnc);
|
||||
void vFppuuiiiii(x86emu_t *emu, uintptr_t fnc);
|
||||
void vFpppppippp(x86emu_t *emu, uintptr_t fnc);
|
||||
void vFppppppppp(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFEpppipppp(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFiiiiiiiip(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFiiiipiiip(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFdddpppppp(x86emu_t *emu, uintptr_t fnc);
|
||||
@ -828,23 +829,13 @@ void vFfffffffffffffff(x86emu_t *emu, uintptr_t fnc);
|
||||
void uFpppppppppppppppp(x86emu_t *emu, uintptr_t fnc);
|
||||
void vFppuiiiiipuiiiiiiii(x86emu_t *emu, uintptr_t fnc);
|
||||
|
||||
#if (!defined(HAVE_LD80BITS))
|
||||
void LFL(x86emu_t *emu, uintptr_t fnc);
|
||||
void LFLL(x86emu_t *emu, uintptr_t fnc);
|
||||
void LFLp(x86emu_t *emu, uintptr_t fnc);
|
||||
#endif
|
||||
|
||||
#if (defined(NOALIGN)) || (!defined(NOALIGN))
|
||||
void iFEpppipppp(x86emu_t *emu, uintptr_t fnc);
|
||||
#endif
|
||||
|
||||
#if (defined(NOALIGN))
|
||||
#if defined(NOALIGN)
|
||||
void IFpi(x86emu_t *emu, uintptr_t fnc);
|
||||
void dFpi(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFppiiiip(x86emu_t *emu, uintptr_t fnc);
|
||||
#endif
|
||||
|
||||
#if (!defined(NOALIGN))
|
||||
#if !defined(NOALIGN)
|
||||
void IFEp(x86emu_t *emu, uintptr_t fnc);
|
||||
void dFEp(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFEpI(x86emu_t *emu, uintptr_t fnc);
|
||||
@ -858,12 +849,18 @@ void iFEpppi(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFEppiiiip(x86emu_t *emu, uintptr_t fnc);
|
||||
#endif
|
||||
|
||||
#if (defined(HAVE_LD80BITS))
|
||||
#if defined(HAVE_LD80BITS)
|
||||
void DFD(x86emu_t *emu, uintptr_t fnc);
|
||||
void DFDD(x86emu_t *emu, uintptr_t fnc);
|
||||
void DFDp(x86emu_t *emu, uintptr_t fnc);
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_LD80BITS)
|
||||
void LFL(x86emu_t *emu, uintptr_t fnc);
|
||||
void LFLL(x86emu_t *emu, uintptr_t fnc);
|
||||
void LFLp(x86emu_t *emu, uintptr_t fnc);
|
||||
#endif
|
||||
|
||||
void iFEpvvpp(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFEvpVV(x86emu_t *emu, uintptr_t fnc);
|
||||
void iFEv(x86emu_t *emu, uintptr_t fnc);
|
||||
|
372
src/wrappers.h
372
src/wrappers.h
@ -1,372 +0,0 @@
|
||||
#if defined(GO01) && defined(GO02) && defined(GO03) && defined(GO04) && defined(GO05) && defined(GO06) && defined(GO07) && defined(GO08) && defined(GO09) && defined(GO10) && defined(GO11) && defined(GO12) && defined(GO13) && defined(GO14) && defined(GO15)
|
||||
|
||||
GO01(E)
|
||||
GO01(v)
|
||||
GO01(i)
|
||||
GO01(u)
|
||||
GO01(p)
|
||||
GO01(f)
|
||||
GO01(d)
|
||||
GO02(E,i)
|
||||
GO02(E,p)
|
||||
GO02(W,W)
|
||||
GO02(i,i)
|
||||
GO02(i,u)
|
||||
GO02(i,p)
|
||||
GO02(i,f)
|
||||
GO02(i,d)
|
||||
GO02(u,i)
|
||||
GO02(u,u)
|
||||
GO02(u,p)
|
||||
GO02(u,f)
|
||||
GO02(u,d)
|
||||
GO02(p,i)
|
||||
GO02(p,u)
|
||||
GO02(p,p)
|
||||
GO02(f,i)
|
||||
GO02(f,f)
|
||||
GO02(f,p)
|
||||
GO02(d,d)
|
||||
GO02(d,p)
|
||||
GO02(p,W)
|
||||
GO02(p,U)
|
||||
GO03(E,i,p)
|
||||
GO03(E,p,i)
|
||||
GO03(E,p,p)
|
||||
GO03(i,i,i)
|
||||
GO03(i,i,p)
|
||||
GO03(i,u,i)
|
||||
GO03(i,u,u)
|
||||
GO03(i,u,p)
|
||||
GO03(i,p,i)
|
||||
GO03(i,p,u)
|
||||
GO03(i,p,p)
|
||||
GO03(i,f,f)
|
||||
GO03(i,d,d)
|
||||
GO03(u,i,i)
|
||||
GO03(u,i,u)
|
||||
GO03(u,i,p)
|
||||
GO03(u,i,f)
|
||||
GO03(u,i,d)
|
||||
GO03(u,u,i)
|
||||
GO03(u,u,u)
|
||||
GO03(u,u,p)
|
||||
GO03(u,u,f)
|
||||
GO03(u,u,d)
|
||||
GO03(u,p,i)
|
||||
GO03(u,p,p)
|
||||
GO03(u,f,f)
|
||||
GO03(u,d,d)
|
||||
GO03(I,p,i)
|
||||
GO03(U,p,i)
|
||||
GO03(p,i,i)
|
||||
GO03(p,i,u)
|
||||
GO03(p,i,p)
|
||||
GO03(p,u,c)
|
||||
GO03(p,u,u)
|
||||
GO03(p,u,p)
|
||||
GO03(p,p,i)
|
||||
GO03(p,p,u)
|
||||
GO03(p,p,p)
|
||||
GO03(f,p,p)
|
||||
GO03(p,p,V)
|
||||
GO03(f,f,f)
|
||||
GO03(d,p,p)
|
||||
GO03(d,d,d)
|
||||
GO04(E,i,p,p)
|
||||
GO04(E,p,p,p)
|
||||
GO04(E,p,u,p)
|
||||
GO04(i,W,i,i)
|
||||
GO04(i,i,i,i)
|
||||
GO04(i,i,i,u)
|
||||
GO04(i,i,i,p)
|
||||
GO04(i,i,u,p)
|
||||
GO04(i,u,i,p)
|
||||
GO04(i,u,u,u)
|
||||
GO04(i,p,i,i)
|
||||
GO04(i,p,u,u)
|
||||
GO04(i,p,u,p)
|
||||
GO04(i,f,f,f)
|
||||
GO04(i,d,d,d)
|
||||
GO04(u,i,i,i)
|
||||
GO04(u,i,i,p)
|
||||
GO04(u,i,u,i)
|
||||
GO04(u,i,u,u)
|
||||
GO04(u,i,u,p)
|
||||
GO04(u,i,p,i)
|
||||
GO04(u,i,p,u)
|
||||
GO04(u,i,p,p)
|
||||
GO04(u,i,f,i)
|
||||
GO04(u,i,f,f)
|
||||
GO04(u,i,d,d)
|
||||
GO04(u,u,i,i)
|
||||
GO04(u,u,i,u)
|
||||
GO04(u,u,i,p)
|
||||
GO04(u,u,u,i)
|
||||
GO04(u,u,u,u)
|
||||
GO04(u,u,u,p)
|
||||
GO04(u,u,u,f)
|
||||
GO04(u,u,u,d)
|
||||
GO04(u,u,p,i)
|
||||
GO04(u,u,p,p)
|
||||
GO04(u,u,f,f)
|
||||
GO04(u,p,i,i)
|
||||
GO04(u,p,p,i)
|
||||
GO04(u,f,f,f)
|
||||
GO04(u,d,d,d)
|
||||
GO04(p,c,c,c)
|
||||
GO04(p,i,i,u)
|
||||
GO04(p,i,p,p)
|
||||
GO04(p,i,p,V)
|
||||
GO04(p,p,i,i)
|
||||
GO04(p,u,i,p)
|
||||
GO04(p,u,p,V)
|
||||
GO04(p,u,u,p)
|
||||
GO04(p,u,u,u)
|
||||
GO04(p,u,p,p)
|
||||
GO04(p,p,i,p)
|
||||
GO04(p,p,u,u)
|
||||
GO04(p,p,u,p)
|
||||
GO04(p,p,p,i)
|
||||
GO04(p,p,p,p)
|
||||
GO04(p,p,p,u)
|
||||
GO04(p,f,p,V)
|
||||
GO04(f,f,f,f)
|
||||
GO04(d,d,d,d)
|
||||
GO05(E,p,i,p,p)
|
||||
GO05(E,p,p,p,u)
|
||||
GO05(E,p,p,p,p)
|
||||
GO05(i,i,i,i,i)
|
||||
GO05(i,i,i,i,u)
|
||||
GO05(i,i,u,u,p)
|
||||
GO05(i,u,i,i,p)
|
||||
GO05(i,u,i,p,i)
|
||||
GO05(i,u,u,u,u)
|
||||
GO05(i,p,i,i,i)
|
||||
GO05(i,p,i,p,u)
|
||||
GO05(i,p,i,p,p)
|
||||
GO05(i,p,u,p,i)
|
||||
GO05(i,p,p,p,p)
|
||||
GO05(i,f,f,f,f)
|
||||
GO05(i,d,d,d,d)
|
||||
GO05(u,i,i,i,i)
|
||||
GO05(u,i,i,i,u)
|
||||
GO05(u,i,i,i,p)
|
||||
GO05(u,i,i,u,p)
|
||||
GO05(u,i,i,p,p)
|
||||
GO05(u,i,u,i,i)
|
||||
GO05(u,i,u,i,u)
|
||||
GO05(u,i,u,i,p)
|
||||
GO05(u,i,u,u,u)
|
||||
GO05(u,i,p,u,p)
|
||||
GO05(u,i,u,u,p)
|
||||
GO05(u,i,u,p,i)
|
||||
GO05(u,i,p,i,p)
|
||||
GO05(u,i,p,p,p)
|
||||
GO05(u,i,f,f,f)
|
||||
GO05(u,i,d,d,d)
|
||||
GO05(u,u,i,i,i)
|
||||
GO05(u,u,i,u,i)
|
||||
GO05(u,u,i,u,u)
|
||||
GO05(u,u,i,u,p)
|
||||
GO05(u,u,i,p,i)
|
||||
GO05(u,u,i,p,u)
|
||||
GO05(u,u,i,p,p)
|
||||
GO05(u,u,u,i,i)
|
||||
GO05(u,u,u,i,u)
|
||||
GO05(u,u,u,i,p)
|
||||
GO05(u,u,u,u,i)
|
||||
GO05(u,u,u,u,u)
|
||||
GO05(u,u,u,u,p)
|
||||
GO05(u,u,p,i,i)
|
||||
GO05(u,p,u,p,i)
|
||||
GO05(u,p,p,i,p)
|
||||
GO05(u,p,p,p,p)
|
||||
GO05(u,f,f,f,f)
|
||||
GO05(u,d,d,d,d)
|
||||
GO05(p,c,c,c,c)
|
||||
GO05(p,i,i,i,i)
|
||||
GO05(p,i,p,i,i)
|
||||
GO05(p,i,p,p,p)
|
||||
GO05(p,u,i,p,p)
|
||||
GO05(p,u,p,p,u)
|
||||
GO05(p,p,i,i,p)
|
||||
GO05(p,i,i,i,p)
|
||||
GO05(p,i,i,p,p)
|
||||
GO05(p,p,u,u,u)
|
||||
GO05(p,p,u,u,p)
|
||||
GO05(p,p,p,i,i)
|
||||
GO05(p,p,p,p,u)
|
||||
GO05(p,p,p,p,p)
|
||||
GO05(f,f,f,f,f)
|
||||
GO06(i,i,i,i,i,i)
|
||||
GO06(i,p,p,p,p,p)
|
||||
GO06(i,f,f,i,f,f)
|
||||
GO06(i,d,d,i,d,d)
|
||||
GO06(u,i,i,i,i,i)
|
||||
GO06(u,i,i,u,i,i)
|
||||
GO06(u,i,i,u,u,p)
|
||||
GO06(u,i,u,i,i,i)
|
||||
GO06(u,i,u,i,i,p)
|
||||
GO06(u,i,u,i,u,u)
|
||||
GO06(u,i,u,u,i,p)
|
||||
GO06(u,i,u,u,u,u)
|
||||
GO06(u,i,u,p,i,i)
|
||||
GO06(u,i,u,p,i,u)
|
||||
GO06(u,i,p,i,u,p)
|
||||
GO06(u,i,f,f,f,f)
|
||||
GO06(u,i,d,d,d,d)
|
||||
GO06(u,u,i,i,i,i)
|
||||
GO06(u,u,i,u,i,i)
|
||||
GO06(u,u,i,u,i,u)
|
||||
GO06(u,u,i,u,u,p)
|
||||
GO06(u,u,u,i,u,p)
|
||||
GO06(u,u,u,i,p,i)
|
||||
GO06(u,u,u,i,p,p)
|
||||
GO06(u,u,u,u,i,i)
|
||||
GO06(u,u,u,u,i,p)
|
||||
GO06(u,u,u,u,u,u)
|
||||
GO06(u,u,u,u,f,f)
|
||||
GO06(u,u,u,p,p,i)
|
||||
GO06(u,u,u,p,p,p)
|
||||
GO06(u,u,f,f,f,f)
|
||||
GO06(u,u,d,d,d,d)
|
||||
GO06(u,p,u,p,i,p)
|
||||
GO06(u,p,p,p,p,p)
|
||||
GO06(u,f,f,i,i,p)
|
||||
GO06(u,f,f,f,f,f)
|
||||
GO06(u,d,d,i,i,p)
|
||||
GO06(p,i,i,i,i,u)
|
||||
GO06(p,i,i,i,p,p)
|
||||
GO06(p,i,u,u,u,u)
|
||||
GO06(p,p,i,i,i,i)
|
||||
GO06(p,p,u,i,i,u)
|
||||
GO06(p,p,u,p,i,i)
|
||||
GO06(p,p,p,p,p,p)
|
||||
GO06(f,f,f,f,f,f)
|
||||
GO06(d,d,d,d,d,d)
|
||||
GO07(i,i,i,i,i,i,p)
|
||||
GO07(i,i,i,i,u,u,p)
|
||||
GO07(i,i,u,p,u,i,p)
|
||||
GO07(i,i,f,f,f,f,p)
|
||||
GO07(i,u,p,u,u,u,p)
|
||||
GO07(u,i,i,i,i,i,i)
|
||||
GO07(u,i,i,i,u,i,p)
|
||||
GO07(u,i,i,i,u,u,p)
|
||||
GO07(u,i,u,i,i,i,i)
|
||||
GO07(u,i,u,i,i,i,p)
|
||||
GO07(u,i,u,i,i,u,u)
|
||||
GO07(u,i,u,p,i,i,u)
|
||||
GO07(u,i,p,i,i,i,i)
|
||||
GO07(u,i,p,p,p,p,p)
|
||||
GO07(u,i,p,f,f,f,f)
|
||||
GO07(u,i,p,d,d,d,d)
|
||||
GO07(u,u,i,i,i,i,i)
|
||||
GO07(u,u,i,i,i,u,i)
|
||||
GO07(u,u,i,i,i,u,u)
|
||||
GO07(u,u,i,i,u,u,p)
|
||||
GO07(u,u,i,p,p,p,p)
|
||||
GO07(u,u,i,u,i,i,i)
|
||||
GO07(u,u,u,i,i,i,i)
|
||||
GO07(u,u,u,i,i,i,p)
|
||||
GO07(u,u,u,i,u,i,i)
|
||||
GO07(u,u,u,i,u,p,i)
|
||||
GO07(u,u,u,u,i,i,p)
|
||||
GO07(u,u,u,u,u,u,u)
|
||||
GO07(u,u,u,u,f,f,f)
|
||||
GO07(u,u,u,f,f,f,f)
|
||||
GO07(u,u,u,d,d,d,d)
|
||||
GO07(u,u,f,f,i,i,p)
|
||||
GO07(u,u,d,d,i,i,p)
|
||||
GO07(u,f,f,f,f,f,f)
|
||||
GO07(u,d,d,d,d,d,d)
|
||||
GO07(p,p,i,i,u,u,i)
|
||||
GO07(p,p,i,p,p,p,p)
|
||||
GO07(p,p,p,p,p,p,p)
|
||||
GO08(E,p,i,p,p,p,p,p)
|
||||
GO08(i,i,i,i,u,u,i,p)
|
||||
GO08(i,u,p,u,i,u,u,p)
|
||||
GO08(i,u,p,u,u,u,u,p)
|
||||
GO08(u,i,i,i,i,i,i,i)
|
||||
GO08(u,i,i,i,i,u,u,p)
|
||||
GO08(u,i,i,i,u,u,u,u)
|
||||
GO08(u,i,i,i,p,i,u,p)
|
||||
GO08(u,i,i,f,p,p,p,p)
|
||||
GO08(u,i,u,i,i,i,i,i)
|
||||
GO08(u,i,u,i,i,i,i,p)
|
||||
GO08(u,i,p,p,p,p,p,p)
|
||||
GO08(u,u,i,i,i,i,i,i)
|
||||
GO08(u,u,i,i,i,u,i,p)
|
||||
GO08(u,u,i,i,i,u,u,p)
|
||||
GO08(u,u,i,i,u,u,p,p)
|
||||
GO08(u,u,i,u,i,i,i,i)
|
||||
GO08(u,u,i,u,i,i,i,p)
|
||||
GO08(u,u,u,i,i,i,i,i)
|
||||
GO08(u,u,u,i,u,i,i,i)
|
||||
GO08(u,u,u,i,p,i,p,p)
|
||||
GO08(u,u,u,u,u,f,f,f)
|
||||
GO08(u,u,u,u,u,u,u,u)
|
||||
GO08(p,u,p,p,p,p,p,p)
|
||||
GO08(p,p,i,i,u,u,u,i)
|
||||
GO08(p,p,p,i,p,p,p,p)
|
||||
GO08(f,f,f,f,f,f,f,f)
|
||||
GO09(u,i,i,i,i,i,i,i,i)
|
||||
GO09(u,i,i,i,i,i,u,i,p)
|
||||
GO09(u,i,i,i,i,i,u,u,p)
|
||||
GO09(u,i,u,i,i,i,i,i,p)
|
||||
GO09(u,i,u,p,u,f,f,u,p)
|
||||
GO09(u,u,i,i,i,i,i,i,i)
|
||||
GO09(u,u,i,u,i,i,i,i,i)
|
||||
GO09(u,u,i,u,i,i,i,i,p)
|
||||
GO09(u,u,i,u,i,i,u,u,p)
|
||||
GO09(u,u,u,i,i,i,i,i,p)
|
||||
GO09(u,u,u,u,u,u,u,u,u)
|
||||
GO09(u,u,p,i,u,i,u,u,f)
|
||||
GO09(u,f,f,f,f,f,f,f,f)
|
||||
GO09(p,i,i,i,i,u,u,u,u)
|
||||
GO09(p,u,p,p,p,p,p,p,p)
|
||||
GO09(p,p,i,u,i,i,p,p,u)
|
||||
GO09(p,p,p,p,p,i,p,p,p)
|
||||
GO09(f,f,u,u,u,u,f,f,f)
|
||||
GO10(i,i,i,i,i,i,i,i,i,u)
|
||||
GO10(u,i,i,i,i,i,i,i,i,i)
|
||||
GO10(u,i,i,i,i,i,i,u,u,p)
|
||||
GO10(u,i,u,i,i,i,i,u,u,p)
|
||||
GO10(u,u,i,i,i,i,i,i,i,i)
|
||||
GO10(u,u,i,i,i,i,i,u,i,p)
|
||||
GO10(u,u,i,i,i,i,i,u,u,p)
|
||||
GO10(u,u,i,u,i,i,i,i,i,p)
|
||||
GO10(u,u,i,u,i,i,i,u,u,p)
|
||||
GO10(u,u,u,u,u,u,u,i,i,i)
|
||||
GO10(u,u,u,u,u,u,u,u,u,u)
|
||||
GO10(u,u,p,i,i,u,p,u,u,f)
|
||||
GO10(u,f,f,i,i,f,f,i,i,p)
|
||||
GO10(u,d,d,i,i,d,d,i,i,p)
|
||||
GO10(p,p,p,p,i,i,i,i,u,u)
|
||||
GO10(f,f,f,f,f,f,f,f,f,f)
|
||||
GO11(u,i,i,i,i,i,i,i,u,i,p)
|
||||
GO11(u,i,i,i,i,i,i,i,u,u,p)
|
||||
GO11(u,i,u,i,i,i,i,i,u,u,p)
|
||||
GO11(u,u,i,u,i,i,i,i,u,u,p)
|
||||
GO11(u,u,u,u,u,u,u,u,u,u,u)
|
||||
GO11(u,u,f,f,i,i,f,f,i,i,p)
|
||||
GO11(u,u,f,f,f,f,f,f,f,f,f)
|
||||
GO11(u,u,d,d,i,i,d,d,i,i,p)
|
||||
GO11(u,f,f,f,f,f,f,f,f,f,f)
|
||||
GO11(p,p,i,i,u,u,u,i,p,i,i)
|
||||
GO12(u,u,i,i,i,i,i,i,i,u,i,p)
|
||||
GO12(u,u,i,i,i,i,i,i,i,u,u,p)
|
||||
GO12(u,u,u,u,u,u,u,u,u,u,u,u)
|
||||
GO12(p,p,p,i,i,i,p,p,p,p,p,p)
|
||||
GO12(f,f,f,f,f,f,f,f,f,f,f,f)
|
||||
GO13(u,i,i,i,i,i,i,i,i,i,u,u,p)
|
||||
GO13(u,u,u,u,u,u,u,u,u,u,u,u,u)
|
||||
GO13(u,f,f,f,f,f,f,f,f,f,f,f,f)
|
||||
GO14(u,f,f,i,i,f,f,i,i,f,f,i,i,p)
|
||||
GO14(u,d,d,i,i,d,d,i,i,d,d,i,i,p)
|
||||
GO15(u,u,i,i,i,i,u,u,i,i,i,i,i,i,i)
|
||||
GO15(f,f,f,f,f,f,f,f,f,f,f,f,f,f,f)
|
||||
|
||||
#else
|
||||
#error You must not include wrappers.h but wrapper.h
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user