diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-08-28 15:03:16 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-08-28 15:03:16 +0200 |
| commit | 041eb4e69d833a4bf5f68df59c1fe20385b5ad9f (patch) | |
| tree | 2574612f90e2e01b34195cacc659b6d719d0c20b /src/wrapped32/generated | |
| parent | 04157f25025b276fd6526ac851617f59a972c1fd (diff) | |
| download | box64-041eb4e69d833a4bf5f68df59c1fe20385b5ad9f.tar.gz box64-041eb4e69d833a4bf5f68df59c1fe20385b5ad9f.zip | |
[BOX32] Adding some more 32bits wrapped functions
Diffstat (limited to 'src/wrapped32/generated')
| -rw-r--r-- | src/wrapped32/generated/converter32.c | 11 | ||||
| -rw-r--r-- | src/wrapped32/generated/converter32.h | 6 | ||||
| -rw-r--r-- | src/wrapped32/generated/functions_list.txt | 14 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrappedlibctypes32.h | 3 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.c | 24 | ||||
| -rw-r--r-- | src/wrapped32/generated/wrapper32.h | 11 |
6 files changed, 65 insertions, 4 deletions
diff --git a/src/wrapped32/generated/converter32.c b/src/wrapped32/generated/converter32.c index e098645a..6c6274a8 100644 --- a/src/wrapped32/generated/converter32.c +++ b/src/wrapped32/generated/converter32.c @@ -21,6 +21,17 @@ void to_struct_L(ptr_t d, const struct_L_t *src) { *(ulong_t*)dest = to_ulong(src->L0); dest += 4; } +void from_struct_LL(struct_LL_t *dest, ptr_t s) { + uint8_t* src = (uint8_t*)from_ptrv(s); + dest->L0 = from_ulong(*(ulong_t*)src); src += 4; + dest->L1 = from_ulong(*(ulong_t*)src); src += 4; +} +void to_struct_LL(ptr_t d, const struct_LL_t *src) { + if (!src) return; + uint8_t* dest = (uint8_t*)from_ptrv(d); + *(ulong_t*)dest = to_ulong(src->L0); dest += 4; + *(ulong_t*)dest = to_ulong(src->L1); dest += 4; +} void from_struct_h(struct_h_t *dest, ptr_t s) { uint8_t* src = (uint8_t*)from_ptrv(s); diff --git a/src/wrapped32/generated/converter32.h b/src/wrapped32/generated/converter32.h index 86dd3e21..015ceadd 100644 --- a/src/wrapped32/generated/converter32.h +++ b/src/wrapped32/generated/converter32.h @@ -14,6 +14,12 @@ typedef struct struct_L_s { } struct_L_t; void from_struct_L(struct_L_t *dest, ptr_t src); void to_struct_L(ptr_t dest, const struct_L_t *src); +typedef struct struct_LL_s { + unsigned long L0; + unsigned long L1; +} struct_LL_t; +void from_struct_LL(struct_LL_t *dest, ptr_t src); +void to_struct_LL(ptr_t dest, const struct_LL_t *src); typedef struct struct_h_s { uintptr_t h0; } struct_h_t; diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt index 28592269..af2dc17b 100644 --- a/src/wrapped32/generated/functions_list.txt +++ b/src/wrapped32/generated/functions_list.txt @@ -26,6 +26,7 @@ #() lFp -> lFp #() LFv -> LFv #() LFL -> LFL +#() LFp -> LFp #() pFu -> pFu #() pFL -> pFL #() pFp -> pFp @@ -71,8 +72,11 @@ #() pFEv -> pFEv #() pFEp -> pFEp #() pFLL -> pFLL -#() aFia -> aFia +#() pFpL -> pFpL #() iFHBp_ -> iFHB +#() fFpBp_ -> fFpB +#() dFpBp_ -> dFpB +#() iFuBLL_ -> iFuB #() vFEip -> vFEip #() vFEpi -> vFEpi #() vFEpu -> vFEpu @@ -99,6 +103,7 @@ #() iFpiu -> iFpiu #() iFpip -> iFpip #() iFpuu -> iFpuu +#() iFpLL -> iFpLL #() iFppu -> iFppu #() iFppL -> iFppL #() iFppp -> iFppp @@ -109,12 +114,15 @@ #() dFddd -> dFddd #() dFddp -> dFddp #() pFEip -> pFEip +#() pFEia -> pFEia #() pFEpi -> pFEpi #() pFEpp -> pFEpp +#() pFpiL -> pFpiL #() pFppL -> pFppL #() pFpOM -> pFpOM #() hFEpp -> hFEpp #() aFipa -> aFipa +#() IFpBp_i -> IFpBi #() lFpBp_i -> lFpBi #() vFEipV -> vFEipV #() vFEppp -> vFEppp @@ -131,6 +139,7 @@ #() LFpLLh -> LFpLLh #() pFEppi -> pFEppi #() pFEppp -> pFEppp +#() pFpiLL -> pFpiLL #() pFppuL -> pFppuL #() pFppLL -> pFppLL #() iFEppiV -> iFEppiV @@ -171,11 +180,14 @@ wrappedlibc: - vFpi: - vFpu: - iFpp: + - alphasort64 - iFpV: - IFII: - UFUU: - pFip: - signal +- pFia: + - setlocale - hFpp: - vFipV: - iFvpV: diff --git a/src/wrapped32/generated/wrappedlibctypes32.h b/src/wrapped32/generated/wrappedlibctypes32.h index 1b3d5ab3..2898c0b0 100644 --- a/src/wrapped32/generated/wrappedlibctypes32.h +++ b/src/wrapped32/generated/wrappedlibctypes32.h @@ -30,6 +30,7 @@ typedef int32_t (*iFpV_t)(void*, ...); typedef int64_t (*IFII_t)(int64_t, int64_t); typedef uint64_t (*UFUU_t)(uint64_t, uint64_t); typedef void* (*pFip_t)(int32_t, void*); +typedef void* (*pFia_t)(int32_t, void*); typedef uintptr_t (*hFpp_t)(void*, void*); typedef void (*vFipV_t)(int32_t, void*, ...); typedef int32_t (*iFvpV_t)(void, void*, ...); @@ -43,7 +44,9 @@ typedef int32_t (*iFpippppp_t)(void*, int32_t, void*, void*, void*, void*, void* #define SUPER() ADDED_FUNCTIONS() \ GO(__close_nocancel, iFi_t) \ + GO(alphasort64, iFpp_t) \ GO(signal, pFip_t) \ + GO(setlocale, pFia_t) \ GO(__libc_init, vFpppp_t) #endif // __wrappedlibcTYPES32_H_ diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c index 1d8c2890..62e56520 100644 --- a/src/wrapped32/generated/wrapper32.c +++ b/src/wrapped32/generated/wrapper32.c @@ -100,6 +100,7 @@ typedef intptr_t (*lFi_t)(int32_t); typedef intptr_t (*lFp_t)(void*); typedef uintptr_t (*LFv_t)(void); typedef uintptr_t (*LFL_t)(uintptr_t); +typedef uintptr_t (*LFp_t)(void*); typedef void* (*pFu_t)(uint32_t); typedef void* (*pFL_t)(uintptr_t); typedef void* (*pFp_t)(void*); @@ -145,8 +146,11 @@ typedef uintptr_t (*LFpp_t)(void*, void*); typedef void* (*pFEv_t)(x64emu_t*); typedef void* (*pFEp_t)(x64emu_t*, void*); typedef void* (*pFLL_t)(uintptr_t, uintptr_t); -typedef void* (*aFia_t)(int32_t, void*); +typedef void* (*pFpL_t)(void*, uintptr_t); typedef int32_t (*iFHBp__t)(uintptr_t, struct_p_t*); +typedef float (*fFpBp__t)(void*, struct_p_t*); +typedef double (*dFpBp__t)(void*, struct_p_t*); +typedef int32_t (*iFuBLL__t)(uint32_t, struct_LL_t*); typedef void (*vFEip_t)(x64emu_t*, int32_t, void*); typedef void (*vFEpi_t)(x64emu_t*, void*, int32_t); typedef void (*vFEpu_t)(x64emu_t*, void*, uint32_t); @@ -173,6 +177,7 @@ typedef int32_t (*iFupp_t)(uint32_t, void*, void*); typedef int32_t (*iFpiu_t)(void*, int32_t, uint32_t); typedef int32_t (*iFpip_t)(void*, int32_t, void*); typedef int32_t (*iFpuu_t)(void*, uint32_t, uint32_t); +typedef int32_t (*iFpLL_t)(void*, uintptr_t, uintptr_t); typedef int32_t (*iFppu_t)(void*, void*, uint32_t); typedef int32_t (*iFppL_t)(void*, void*, uintptr_t); typedef int32_t (*iFppp_t)(void*, void*, void*); @@ -183,12 +188,15 @@ typedef float (*fFffp_t)(float, float, void*); typedef double (*dFddd_t)(double, double, double); typedef double (*dFddp_t)(double, double, void*); typedef void* (*pFEip_t)(x64emu_t*, int32_t, void*); +typedef void* (*pFEia_t)(x64emu_t*, int32_t, void*); typedef void* (*pFEpi_t)(x64emu_t*, void*, int32_t); typedef void* (*pFEpp_t)(x64emu_t*, void*, void*); +typedef void* (*pFpiL_t)(void*, int32_t, uintptr_t); typedef void* (*pFppL_t)(void*, void*, uintptr_t); typedef void* (*pFpOM_t)(void*, int32_t, ...); typedef uintptr_t (*hFEpp_t)(x64emu_t*, void*, void*); typedef void* (*aFipa_t)(int32_t, void*, void*); +typedef int64_t (*IFpBp_i_t)(void*, struct_p_t*, int32_t); typedef intptr_t (*lFpBp_i_t)(void*, struct_p_t*, int32_t); typedef void (*vFEipV_t)(x64emu_t*, int32_t, void*, void*); typedef void (*vFEppp_t)(x64emu_t*, void*, void*, void*); @@ -205,6 +213,7 @@ typedef int32_t (*iFiuui_t)(int32_t, uint32_t, uint32_t, int32_t); typedef uintptr_t (*LFpLLh_t)(void*, uintptr_t, uintptr_t, uintptr_t); typedef void* (*pFEppi_t)(x64emu_t*, void*, void*, int32_t); typedef void* (*pFEppp_t)(x64emu_t*, void*, void*, void*); +typedef void* (*pFpiLL_t)(void*, int32_t, uintptr_t, uintptr_t); typedef void* (*pFppuL_t)(void*, void*, uint32_t, uintptr_t); typedef void* (*pFppLL_t)(void*, void*, uintptr_t, uintptr_t); typedef int32_t (*iFEppiV_t)(x64emu_t*, void*, void*, int32_t, void*); @@ -258,6 +267,7 @@ void lFi_32(x64emu_t *emu, uintptr_t fcn) { lFi_t fn = (lFi_t)fcn; R_EAX = to_lo void lFp_32(x64emu_t *emu, uintptr_t fcn) { lFp_t fn = (lFp_t)fcn; R_EAX = to_long(fn(from_ptriv(R_ESP + 4))); } void LFv_32(x64emu_t *emu, uintptr_t fcn) { LFv_t fn = (LFv_t)fcn; R_EAX = to_ulong(fn()); } void LFL_32(x64emu_t *emu, uintptr_t fcn) { LFL_t fn = (LFL_t)fcn; R_EAX = to_ulong(fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)))); } +void LFp_32(x64emu_t *emu, uintptr_t fcn) { LFp_t fn = (LFp_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4))); } void pFu_32(x64emu_t *emu, uintptr_t fcn) { pFu_t fn = (pFu_t)fcn; R_EAX = to_ptrv(fn(from_ptri(uint32_t, R_ESP + 4))); } void pFL_32(x64emu_t *emu, uintptr_t fcn) { pFL_t fn = (pFL_t)fcn; R_EAX = to_ptrv(fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)))); } void pFp_32(x64emu_t *emu, uintptr_t fcn) { pFp_t fn = (pFp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4))); } @@ -303,8 +313,11 @@ void LFpp_32(x64emu_t *emu, uintptr_t fcn) { LFpp_t fn = (LFpp_t)fcn; R_EAX = to void pFEv_32(x64emu_t *emu, uintptr_t fcn) { pFEv_t fn = (pFEv_t)fcn; R_EAX = to_ptrv(fn(emu)); } void pFEp_32(x64emu_t *emu, uintptr_t fcn) { pFEp_t fn = (pFEp_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4))); } void pFLL_32(x64emu_t *emu, uintptr_t fcn) { pFLL_t fn = (pFLL_t)fcn; R_EAX = to_ptrv(fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)), to_ulong(from_ptri(ulong_t, R_ESP + 8)))); } -void aFia_32(x64emu_t *emu, uintptr_t fcn) { aFia_t fn = (aFia_t)fcn; R_EAX = to_locale(fn(from_ptri(int32_t, R_ESP + 4), from_locale(from_ptri(ptr_t, R_ESP + 8)))); } +void pFpL_32(x64emu_t *emu, uintptr_t fcn) { pFpL_t fn = (pFpL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)))); } void iFHBp__32(x64emu_t *emu, uintptr_t fcn) { iFHBp__t fn = (iFHBp__t)fcn; struct_p_t arg_8; R_EAX = fn(from_hash_d(from_ptri(ptr_t, R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } +void fFpBp__32(x64emu_t *emu, uintptr_t fcn) { fFpBp__t fn = (fFpBp__t)fcn; struct_p_t arg_8; float fl = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); fpu_do_push(emu); ST0val = fl; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } +void dFpBp__32(x64emu_t *emu, uintptr_t fcn) { dFpBp__t fn = (dFpBp__t)fcn; struct_p_t arg_8; double db = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); fpu_do_push(emu); ST0val = db; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } +void iFuBLL__32(x64emu_t *emu, uintptr_t fcn) { iFuBLL__t fn = (iFuBLL__t)fcn; struct_LL_t arg_8; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_LL(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void vFEip_32(x64emu_t *emu, uintptr_t fcn) { vFEip_t fn = (vFEip_t)fcn; fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8)); } void vFEpi_32(x64emu_t *emu, uintptr_t fcn) { vFEpi_t fn = (vFEpi_t)fcn; fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8)); } void vFEpu_32(x64emu_t *emu, uintptr_t fcn) { vFEpu_t fn = (vFEpu_t)fcn; fn(emu, from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8)); } @@ -331,6 +344,7 @@ void iFupp_32(x64emu_t *emu, uintptr_t fcn) { iFupp_t fn = (iFupp_t)fcn; R_EAX = void iFpiu_32(x64emu_t *emu, uintptr_t fcn) { iFpiu_t fn = (iFpiu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); } void iFpip_32(x64emu_t *emu, uintptr_t fcn) { iFpip_t fn = (iFpip_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12)); } void iFpuu_32(x64emu_t *emu, uintptr_t fcn) { iFpuu_t fn = (iFpuu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); } +void iFpLL_32(x64emu_t *emu, uintptr_t fcn) { iFpLL_t fn = (iFpLL_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), to_ulong(from_ptri(ulong_t, R_ESP + 12))); } void iFppu_32(x64emu_t *emu, uintptr_t fcn) { iFppu_t fn = (iFppu_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12)); } void iFppL_32(x64emu_t *emu, uintptr_t fcn) { iFppL_t fn = (iFppL_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12))); } void iFppp_32(x64emu_t *emu, uintptr_t fcn) { iFppp_t fn = (iFppp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12)); } @@ -341,12 +355,15 @@ void fFffp_32(x64emu_t *emu, uintptr_t fcn) { fFffp_t fn = (fFffp_t)fcn; float f void dFddd_32(x64emu_t *emu, uintptr_t fcn) { dFddd_t fn = (dFddd_t)fcn; double db = fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptri(double, R_ESP + 20)); fpu_do_push(emu); ST0val = db; } void dFddp_32(x64emu_t *emu, uintptr_t fcn) { dFddp_t fn = (dFddp_t)fcn; double db = fn(from_ptri(double, R_ESP + 4), from_ptri(double, R_ESP + 12), from_ptriv(R_ESP + 20)); fpu_do_push(emu); ST0val = db; } void pFEip_32(x64emu_t *emu, uintptr_t fcn) { pFEip_t fn = (pFEip_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8))); } +void pFEia_32(x64emu_t *emu, uintptr_t fcn) { pFEia_t fn = (pFEia_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptri(int32_t, R_ESP + 4), from_locale(from_ptri(ptr_t, R_ESP + 8)))); } void pFEpi_32(x64emu_t *emu, uintptr_t fcn) { pFEpi_t fn = (pFEpi_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8))); } void pFEpp_32(x64emu_t *emu, uintptr_t fcn) { pFEpp_t fn = (pFEpp_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8))); } +void pFpiL_32(x64emu_t *emu, uintptr_t fcn) { pFpiL_t fn = (pFpiL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)))); } void pFppL_32(x64emu_t *emu, uintptr_t fcn) { pFppL_t fn = (pFppL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)))); } void pFpOM_32(x64emu_t *emu, uintptr_t fcn) { pFpOM_t fn = (pFpOM_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), of_convert32(from_ptri(int32_t, R_ESP + 8)), from_ptriv(R_ESP + 12),from_ptriv(R_ESP + 12 + 4))); } void hFEpp_32(x64emu_t *emu, uintptr_t fcn) { hFEpp_t fn = (hFEpp_t)fcn; R_EAX = to_hash(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8))); } void aFipa_32(x64emu_t *emu, uintptr_t fcn) { aFipa_t fn = (aFipa_t)fcn; R_EAX = to_locale(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_locale(from_ptri(ptr_t, R_ESP + 12)))); } +void IFpBp_i_32(x64emu_t *emu, uintptr_t fcn) { IFpBp_i_t fn = (IFpBp_i_t)fcn; struct_p_t arg_8; ui64_t r; r.i = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void lFpBp_i_32(x64emu_t *emu, uintptr_t fcn) { lFpBp_i_t fn = (lFpBp_i_t)fcn; struct_p_t arg_8; R_EAX = to_long(fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); } void vFEipV_32(x64emu_t *emu, uintptr_t fcn) { vFEipV_t fn = (vFEipV_t)fcn; fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptrv(R_ESP + 12)); } void vFEppp_32(x64emu_t *emu, uintptr_t fcn) { vFEppp_t fn = (vFEppp_t)fcn; fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12)); } @@ -363,6 +380,7 @@ void iFiuui_32(x64emu_t *emu, uintptr_t fcn) { iFiuui_t fn = (iFiuui_t)fcn; R_EA void LFpLLh_32(x64emu_t *emu, uintptr_t fcn) { LFpLLh_t fn = (LFpLLh_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), to_ulong(from_ptri(ulong_t, R_ESP + 12)), from_hash(from_ptri(ptr_t, R_ESP + 16)))); } void pFEppi_32(x64emu_t *emu, uintptr_t fcn) { pFEppi_t fn = (pFEppi_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); } void pFEppp_32(x64emu_t *emu, uintptr_t fcn) { pFEppp_t fn = (pFEppp_t)fcn; R_EAX = to_ptrv(fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12))); } +void pFpiLL_32(x64emu_t *emu, uintptr_t fcn) { pFpiLL_t fn = (pFpiLL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)), to_ulong(from_ptri(ulong_t, R_ESP + 16)))); } void pFppuL_32(x64emu_t *emu, uintptr_t fcn) { pFppuL_t fn = (pFppuL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), to_ulong(from_ptri(ulong_t, R_ESP + 16)))); } void pFppLL_32(x64emu_t *emu, uintptr_t fcn) { pFppLL_t fn = (pFppLL_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)), to_ulong(from_ptri(ulong_t, R_ESP + 16)))); } void iFEppiV_32(x64emu_t *emu, uintptr_t fcn) { iFEppiV_t fn = (iFEppiV_t)fcn; R_EAX = fn(emu, from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptrv(R_ESP + 16)); } @@ -405,6 +423,8 @@ int isRetX87Wrapper32(wrapper_t fun) { if (fun == &dFdd_32) return 1; if (fun == &dFdD_32) return 1; if (fun == &dFdp_32) return 1; + if (fun == &fFpBp__32) return 1; + if (fun == &dFpBp__32) return 1; if (fun == &fFfff_32) return 1; if (fun == &fFffp_32) return 1; if (fun == &dFddd_32) return 1; diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h index 3496a5ea..733ed4cd 100644 --- a/src/wrapped32/generated/wrapper32.h +++ b/src/wrapped32/generated/wrapper32.h @@ -65,6 +65,7 @@ void lFi_32(x64emu_t *emu, uintptr_t fnc); void lFp_32(x64emu_t *emu, uintptr_t fnc); void LFv_32(x64emu_t *emu, uintptr_t fnc); void LFL_32(x64emu_t *emu, uintptr_t fnc); +void LFp_32(x64emu_t *emu, uintptr_t fnc); void pFu_32(x64emu_t *emu, uintptr_t fnc); void pFL_32(x64emu_t *emu, uintptr_t fnc); void pFp_32(x64emu_t *emu, uintptr_t fnc); @@ -110,8 +111,11 @@ void LFpp_32(x64emu_t *emu, uintptr_t fnc); void pFEv_32(x64emu_t *emu, uintptr_t fnc); void pFEp_32(x64emu_t *emu, uintptr_t fnc); void pFLL_32(x64emu_t *emu, uintptr_t fnc); -void aFia_32(x64emu_t *emu, uintptr_t fnc); +void pFpL_32(x64emu_t *emu, uintptr_t fnc); void iFHBp__32(x64emu_t *emu, uintptr_t fnc); +void fFpBp__32(x64emu_t *emu, uintptr_t fnc); +void dFpBp__32(x64emu_t *emu, uintptr_t fnc); +void iFuBLL__32(x64emu_t *emu, uintptr_t fnc); void vFEip_32(x64emu_t *emu, uintptr_t fnc); void vFEpi_32(x64emu_t *emu, uintptr_t fnc); void vFEpu_32(x64emu_t *emu, uintptr_t fnc); @@ -138,6 +142,7 @@ void iFupp_32(x64emu_t *emu, uintptr_t fnc); void iFpiu_32(x64emu_t *emu, uintptr_t fnc); void iFpip_32(x64emu_t *emu, uintptr_t fnc); void iFpuu_32(x64emu_t *emu, uintptr_t fnc); +void iFpLL_32(x64emu_t *emu, uintptr_t fnc); void iFppu_32(x64emu_t *emu, uintptr_t fnc); void iFppL_32(x64emu_t *emu, uintptr_t fnc); void iFppp_32(x64emu_t *emu, uintptr_t fnc); @@ -148,12 +153,15 @@ void fFffp_32(x64emu_t *emu, uintptr_t fnc); void dFddd_32(x64emu_t *emu, uintptr_t fnc); void dFddp_32(x64emu_t *emu, uintptr_t fnc); void pFEip_32(x64emu_t *emu, uintptr_t fnc); +void pFEia_32(x64emu_t *emu, uintptr_t fnc); void pFEpi_32(x64emu_t *emu, uintptr_t fnc); void pFEpp_32(x64emu_t *emu, uintptr_t fnc); +void pFpiL_32(x64emu_t *emu, uintptr_t fnc); void pFppL_32(x64emu_t *emu, uintptr_t fnc); void pFpOM_32(x64emu_t *emu, uintptr_t fnc); void hFEpp_32(x64emu_t *emu, uintptr_t fnc); void aFipa_32(x64emu_t *emu, uintptr_t fnc); +void IFpBp_i_32(x64emu_t *emu, uintptr_t fnc); void lFpBp_i_32(x64emu_t *emu, uintptr_t fnc); void vFEipV_32(x64emu_t *emu, uintptr_t fnc); void vFEppp_32(x64emu_t *emu, uintptr_t fnc); @@ -170,6 +178,7 @@ void iFiuui_32(x64emu_t *emu, uintptr_t fnc); void LFpLLh_32(x64emu_t *emu, uintptr_t fnc); void pFEppi_32(x64emu_t *emu, uintptr_t fnc); void pFEppp_32(x64emu_t *emu, uintptr_t fnc); +void pFpiLL_32(x64emu_t *emu, uintptr_t fnc); void pFppuL_32(x64emu_t *emu, uintptr_t fnc); void pFppLL_32(x64emu_t *emu, uintptr_t fnc); void iFEppiV_32(x64emu_t *emu, uintptr_t fnc); |