diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-04-06 17:03:02 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-04-06 17:03:02 +0200 |
| commit | e672641878698a2da9c8b874457da8f8c7dedd74 (patch) | |
| tree | b62631728cf46e889b72102ed17ac877fc0732ae /src | |
| parent | fef01400983c7ecc37bbf2460cb31259da208164 (diff) | |
| download | box64-e672641878698a2da9c8b874457da8f8c7dedd74.tar.gz box64-e672641878698a2da9c8b874457da8f8c7dedd74.zip | |
Added wrapped ldiv function
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 1 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rwxr-xr-x | src/wrapped/wrappedlibc_private.h | 2 |
4 files changed, 5 insertions, 1 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 36b69849..ea26f66b 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -171,6 +171,7 @@ #() pFpp #() pFpV #() pFSi +#() HFll #() HFpi #() vFEpi #() vFEpu diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 15e24bce..5d069acd 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -204,6 +204,7 @@ typedef void* (*pFpL_t)(void*, uintptr_t); typedef void* (*pFpp_t)(void*, void*); typedef void* (*pFpV_t)(void*, void*); typedef void* (*pFSi_t)(void*, int64_t); +typedef unsigned __int128 (*HFll_t)(intptr_t, intptr_t); typedef unsigned __int128 (*HFpi_t)(void*, int64_t); typedef void (*vFEpi_t)(x64emu_t*, void*, int64_t); typedef void (*vFEpu_t)(x64emu_t*, void*, uint64_t); @@ -1350,6 +1351,7 @@ void pFpL(x64emu_t *emu, uintptr_t fcn) { pFpL_t fn = (pFpL_t)fcn; R_RAX=(uintpt void pFpp(x64emu_t *emu, uintptr_t fcn) { pFpp_t fn = (pFpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI); } void pFpV(x64emu_t *emu, uintptr_t fcn) { pFpV_t fn = (pFpV_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)(R_RSP + 8)); } void pFSi(x64emu_t *emu, uintptr_t fcn) { pFSi_t fn = (pFSi_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (int64_t)R_RSI); } +void HFll(x64emu_t *emu, uintptr_t fcn) { HFll_t fn = (HFll_t)fcn; unsigned __int128 u128 = fn((intptr_t)R_RDI, (intptr_t)R_RSI); R_RAX=(u128&0xFFFFFFFFFFFFFFFFL); R_RDX=(u128>>64)&0xFFFFFFFFFFFFFFFFL; } void HFpi(x64emu_t *emu, uintptr_t fcn) { HFpi_t fn = (HFpi_t)fcn; unsigned __int128 u128 = fn((void*)R_RDI, (int64_t)R_RSI); R_RAX=(u128&0xFFFFFFFFFFFFFFFFL); R_RDX=(u128>>64)&0xFFFFFFFFFFFFFFFFL; } void vFEpi(x64emu_t *emu, uintptr_t fcn) { vFEpi_t fn = (vFEpi_t)fcn; fn(emu, (void*)R_RDI, (int64_t)R_RSI); } void vFEpu(x64emu_t *emu, uintptr_t fcn) { vFEpu_t fn = (vFEpu_t)fcn; fn(emu, (void*)R_RDI, (uint64_t)R_RSI); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index ffd471dd..50e3e6e8 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -201,6 +201,7 @@ void pFpL(x64emu_t *emu, uintptr_t fnc); void pFpp(x64emu_t *emu, uintptr_t fnc); void pFpV(x64emu_t *emu, uintptr_t fnc); void pFSi(x64emu_t *emu, uintptr_t fnc); +void HFll(x64emu_t *emu, uintptr_t fnc); void HFpi(x64emu_t *emu, uintptr_t fnc); void vFEpi(x64emu_t *emu, uintptr_t fnc); void vFEpu(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedlibc_private.h b/src/wrapped/wrappedlibc_private.h index abfcfc00..d82b1249 100755 --- a/src/wrapped/wrappedlibc_private.h +++ b/src/wrapped/wrappedlibc_private.h @@ -1004,7 +1004,7 @@ GO(killpg, iFii) //GOW(ldexp, //GOW(ldexpf, //GOW(ldexpl, -//GO(ldiv, +GO(ldiv, HFll) GOM(lfind, pFEpppLp) //GO(lgetxattr, //GO(__libc_alloca_cutoff, |