diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-10-10 17:11:30 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-10-10 17:11:30 +0200 |
| commit | e27156be5877207e47967a5cc377198f196bce6d (patch) | |
| tree | d79ae8d425163e7998661d882f3f6409500f9055 /src | |
| parent | cafe638d5a4212a792f49f61ac7e0cd7230733ba (diff) | |
| download | box64-e27156be5877207e47967a5cc377198f196bce6d.tar.gz box64-e27156be5877207e47967a5cc377198f196bce6d.zip | |
Fixed signature for functions in wrapped libatomic (will help #1013)
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 6 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 2 | ||||
| -rw-r--r-- | src/wrapped/wrappedatomic_private.h | 8 |
4 files changed, 14 insertions, 4 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 94d60e02..5236da3d 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -1346,6 +1346,7 @@ #() vFfffff #() vFddddp #() vFluipp +#() vFLpppi #() vFLpppp #() vFpiiii #() vFpiiiI @@ -1901,6 +1902,7 @@ #() iFdipppL #() iFDipppL #() iFlpippp +#() iFLpppii #() iFpiiiii #() iFpiiiiu #() iFpiiiip diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index a577eaba..db183e4c 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -1382,6 +1382,7 @@ typedef void (*vFUUppp_t)(uint64_t, uint64_t, void*, void*, void*); typedef void (*vFfffff_t)(float, float, float, float, float); typedef void (*vFddddp_t)(double, double, double, double, void*); typedef void (*vFluipp_t)(intptr_t, uint32_t, int32_t, void*, void*); +typedef void (*vFLpppi_t)(uintptr_t, void*, void*, void*, int32_t); typedef void (*vFLpppp_t)(uintptr_t, void*, void*, void*, void*); typedef void (*vFpiiii_t)(void*, int32_t, int32_t, int32_t, int32_t); typedef void (*vFpiiiI_t)(void*, int32_t, int32_t, int32_t, int64_t); @@ -1937,6 +1938,7 @@ typedef int32_t (*iFippppp_t)(int32_t, void*, void*, void*, void*, void*); typedef int32_t (*iFdipppL_t)(double, int32_t, void*, void*, void*, uintptr_t); typedef int32_t (*iFDipppL_t)(long double, int32_t, void*, void*, void*, uintptr_t); typedef int32_t (*iFlpippp_t)(intptr_t, void*, int32_t, void*, void*, void*); +typedef int32_t (*iFLpppii_t)(uintptr_t, void*, void*, void*, int32_t, int32_t); typedef int32_t (*iFpiiiii_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t); typedef int32_t (*iFpiiiiu_t)(void*, int32_t, int32_t, int32_t, int32_t, uint32_t); typedef int32_t (*iFpiiiip_t)(void*, int32_t, int32_t, int32_t, int32_t, void*); @@ -4329,6 +4331,7 @@ void vFUUppp(x64emu_t *emu, uintptr_t fcn) { vFUUppp_t fn = (vFUUppp_t)fcn; fn(( void vFfffff(x64emu_t *emu, uintptr_t fcn) { vFfffff_t fn = (vFfffff_t)fcn; fn(emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], emu->xmm[3].f[0], emu->xmm[4].f[0]); } void vFddddp(x64emu_t *emu, uintptr_t fcn) { vFddddp_t fn = (vFddddp_t)fcn; fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], (void*)R_RDI); } void vFluipp(x64emu_t *emu, uintptr_t fcn) { vFluipp_t fn = (vFluipp_t)fcn; fn((intptr_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); } +void vFLpppi(x64emu_t *emu, uintptr_t fcn) { vFLpppi_t fn = (vFLpppi_t)fcn; fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); } void vFLpppp(x64emu_t *emu, uintptr_t fcn) { vFLpppp_t fn = (vFLpppp_t)fcn; fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void vFpiiii(x64emu_t *emu, uintptr_t fcn) { vFpiiii_t fn = (vFpiiii_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); } void vFpiiiI(x64emu_t *emu, uintptr_t fcn) { vFpiiiI_t fn = (vFpiiiI_t)fcn; fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int64_t)R_R8); } @@ -4884,6 +4887,7 @@ void iFippppp(x64emu_t *emu, uintptr_t fcn) { iFippppp_t fn = (iFippppp_t)fcn; R void iFdipppL(x64emu_t *emu, uintptr_t fcn) { iFdipppL_t fn = (iFdipppL_t)fcn; R_RAX=(int32_t)fn(emu->xmm[0].d[0], (int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); } void iFDipppL(x64emu_t *emu, uintptr_t fcn) { iFDipppL_t fn = (iFDipppL_t)fcn; R_RAX=(int32_t)fn(LD2localLD((void*)(R_RSP + 8)), (int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); } void iFlpippp(x64emu_t *emu, uintptr_t fcn) { iFlpippp_t fn = (iFlpippp_t)fcn; R_RAX=(int32_t)fn((intptr_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } +void iFLpppii(x64emu_t *emu, uintptr_t fcn) { iFLpppii_t fn = (iFLpppii_t)fcn; R_RAX=(int32_t)fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9); } void iFpiiiii(x64emu_t *emu, uintptr_t fcn) { iFpiiiii_t fn = (iFpiiiii_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); } void iFpiiiiu(x64emu_t *emu, uintptr_t fcn) { iFpiiiiu_t fn = (iFpiiiiu_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9); } void iFpiiiip(x64emu_t *emu, uintptr_t fcn) { iFpiiiip_t fn = (iFpiiiip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); } @@ -7072,6 +7076,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &vFfffff) return 6; if (fun == &vFddddp) return 5; if (fun == &vFluipp) return 1; + if (fun == &vFLpppi) return 1; if (fun == &vFLpppp) return 1; if (fun == &vFpiiii) return 1; if (fun == &vFpiiiI) return 1; @@ -7536,6 +7541,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFippppp) return 1; if (fun == &iFdipppL) return 2; if (fun == &iFlpippp) return 1; + if (fun == &iFLpppii) return 1; if (fun == &iFpiiiii) return 1; if (fun == &iFpiiiiu) return 1; if (fun == &iFpiiiip) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index e3aa6a81..0c3629df 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -1383,6 +1383,7 @@ void vFUUppp(x64emu_t *emu, uintptr_t fnc); void vFfffff(x64emu_t *emu, uintptr_t fnc); void vFddddp(x64emu_t *emu, uintptr_t fnc); void vFluipp(x64emu_t *emu, uintptr_t fnc); +void vFLpppi(x64emu_t *emu, uintptr_t fnc); void vFLpppp(x64emu_t *emu, uintptr_t fnc); void vFpiiii(x64emu_t *emu, uintptr_t fnc); void vFpiiiI(x64emu_t *emu, uintptr_t fnc); @@ -1938,6 +1939,7 @@ void iFippppp(x64emu_t *emu, uintptr_t fnc); void iFdipppL(x64emu_t *emu, uintptr_t fnc); void iFDipppL(x64emu_t *emu, uintptr_t fnc); void iFlpippp(x64emu_t *emu, uintptr_t fnc); +void iFLpppii(x64emu_t *emu, uintptr_t fnc); void iFpiiiii(x64emu_t *emu, uintptr_t fnc); void iFpiiiiu(x64emu_t *emu, uintptr_t fnc); void iFpiiiip(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedatomic_private.h b/src/wrapped/wrappedatomic_private.h index f98dea62..9566807f 100644 --- a/src/wrapped/wrappedatomic_private.h +++ b/src/wrapped/wrappedatomic_private.h @@ -12,13 +12,13 @@ //GO(__atomic_and_fetch_2, //GO(__atomic_and_fetch_4, //GO(__atomic_and_fetch_8, -GO(__atomic_compare_exchange, iFpii) +GO(__atomic_compare_exchange, iFLpppii) //GO(__atomic_compare_exchange_1, //GO(__atomic_compare_exchange_16, //GO(__atomic_compare_exchange_2, //GO(__atomic_compare_exchange_4, //GO(__atomic_compare_exchange_8, -GO(__atomic_exchange, vFpppi) +GO(__atomic_exchange, vFLpppi) //GO(__atomic_exchange_1, //GO(__atomic_exchange_16, //GO(__atomic_exchange_2, @@ -60,7 +60,7 @@ GO(__atomic_exchange, vFpppi) //GO(atomic_flag_test_and_set, //GO(atomic_flag_test_and_set_explicit, GO(__atomic_is_lock_free, iFLp) -GO(__atomic_load, vFppi) +GO(__atomic_load, vFLppi) //GO(__atomic_load_1, //GO(__atomic_load_16, //GO(__atomic_load_2, @@ -77,7 +77,7 @@ GO(__atomic_load, vFppi) //GO(__atomic_or_fetch_4, //GO(__atomic_or_fetch_8, //GO(atomic_signal_fence, -GO(__atomic_store, vFppi) +GO(__atomic_store, vFLppi) //GO(__atomic_store_1, //GO(__atomic_store_16, //GO(__atomic_store_2, |