From eff284fdecbb029d6b5e8123e53ce20da0083ac3 Mon Sep 17 00:00:00 2001 From: Eliot Miranda Date: Mon, 25 Nov 2024 12:08:49 -0800 Subject: [PATCH] CogVM source as per VMMaker.oscog-eem.3474 ThreadedFFIPlugin Fix the regression to calloutState in VMMaker.oscog-eem.3472. ffiRetSpec in an oop. N.B. this points out a bug. If ffiRetSpec's object is moved by the GC structIsHomogenousFloatArrayOfSize:typeSpec:ofLength: & registerTypeForStructSpecs:OfLength: will be invoked with garbage. ffiRetSpec should instead be retrieved from the method's first literal at return time if required. --- src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c | 12 ++++++------ src/plugins/SqueakFFIPrims/ARM64AppleFFIPlugin.c | 12 ++++++------ src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c | 12 ++++++------ src/plugins/SqueakFFIPrims/IA32FFIPlugin.c | 12 ++++++------ src/plugins/SqueakFFIPrims/RiscV64FFIPlugin.c | 12 ++++++------ src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c | 12 ++++++------ src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c | 12 ++++++------ 7 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c b/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c index f67729c06f..125f7fbba3 100644 --- a/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c +++ b/src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c @@ -1,10 +1,10 @@ /* Automatically generated by - VMPluginCodeGenerator VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + VMPluginCodeGenerator VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 (Compiler-eem.512) from - ThreadedARM32FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + ThreadedARM32FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 */ -static char __buildInfo[] = "ThreadedARM32FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 " __DATE__ ; +static char __buildInfo[] = "ThreadedARM32FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 " __DATE__ ; #include "config.h" @@ -178,7 +178,7 @@ static char __buildInfo[] = "ThreadedARM32FFIPlugin VMMaker.oscog-eem.3473 uuid: #define MaxNumArgs 15 #define NumFloatRegArgs 16 #define NumIntRegArgs 4 -#define PluginVersionInfo " VMMaker.oscog-eem.3473" +#define PluginVersionInfo " VMMaker.oscog-eem.3474" typedef struct { char *argVector; @@ -188,7 +188,7 @@ typedef struct { sqInt structReturnType; sqInt callFlags; unsigned int *ffiArgSpec; - unsigned int *ffiRetSpec; + sqInt ffiRetSpec; unsigned int ffiArgSpecSize; unsigned int ffiArgHeader; unsigned int ffiRetHeader; @@ -520,7 +520,7 @@ extern sqInt trueObject(void); extern #endif struct VirtualMachine* interpreterProxy; -static const char *moduleName = "ARM32FFIPlugin VMMaker.oscog-eem.3473 " INT_EXT; +static const char *moduleName = "ARM32FFIPlugin VMMaker.oscog-eem.3474 " INT_EXT; static sqInt nilObj; diff --git a/src/plugins/SqueakFFIPrims/ARM64AppleFFIPlugin.c b/src/plugins/SqueakFFIPrims/ARM64AppleFFIPlugin.c index d801732dbd..02abb15148 100644 --- a/src/plugins/SqueakFFIPrims/ARM64AppleFFIPlugin.c +++ b/src/plugins/SqueakFFIPrims/ARM64AppleFFIPlugin.c @@ -1,10 +1,10 @@ /* Automatically generated by - VMPluginCodeGenerator VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + VMPluginCodeGenerator VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 (Compiler-eem.512) from - ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 */ -static char __buildInfo[] = "ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 " __DATE__ ; +static char __buildInfo[] = "ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 " __DATE__ ; #include "config.h" @@ -178,7 +178,7 @@ static char __buildInfo[] = "ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3473 #define MaxNumArgs 15 #define NumFloatRegArgs 8 #define NumIntRegArgs 8 -#define PluginVersionInfo " VMMaker.oscog-eem.3473" +#define PluginVersionInfo " VMMaker.oscog-eem.3474" typedef struct { char *argVector; @@ -188,7 +188,7 @@ typedef struct { sqInt structReturnType; sqInt callFlags; unsigned int *ffiArgSpec; - unsigned int *ffiRetSpec; + sqInt ffiRetSpec; unsigned int ffiArgSpecSize; unsigned int ffiArgHeader; unsigned int ffiRetHeader; @@ -541,7 +541,7 @@ extern sqInt trueObject(void); extern #endif struct VirtualMachine* interpreterProxy; -static const char *moduleName = "ARM64AppleFFIPlugin VMMaker.oscog-eem.3473 " INT_EXT; +static const char *moduleName = "ARM64AppleFFIPlugin VMMaker.oscog-eem.3474 " INT_EXT; static sqInt nilObj; diff --git a/src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c b/src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c index 8682938c9a..286827fb10 100644 --- a/src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c +++ b/src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c @@ -1,10 +1,10 @@ /* Automatically generated by - VMPluginCodeGenerator VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + VMPluginCodeGenerator VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 (Compiler-eem.512) from - ThreadedARM64FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + ThreadedARM64FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 */ -static char __buildInfo[] = "ThreadedARM64FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 " __DATE__ ; +static char __buildInfo[] = "ThreadedARM64FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 " __DATE__ ; #include "config.h" @@ -178,7 +178,7 @@ static char __buildInfo[] = "ThreadedARM64FFIPlugin VMMaker.oscog-eem.3473 uuid: #define MaxNumArgs 15 #define NumFloatRegArgs 8 #define NumIntRegArgs 8 -#define PluginVersionInfo " VMMaker.oscog-eem.3473" +#define PluginVersionInfo " VMMaker.oscog-eem.3474" typedef struct { char *argVector; @@ -188,7 +188,7 @@ typedef struct { sqInt structReturnType; sqInt callFlags; unsigned int *ffiArgSpec; - unsigned int *ffiRetSpec; + sqInt ffiRetSpec; unsigned int ffiArgSpecSize; unsigned int ffiArgHeader; unsigned int ffiRetHeader; @@ -541,7 +541,7 @@ extern sqInt trueObject(void); extern #endif struct VirtualMachine* interpreterProxy; -static const char *moduleName = "ARM64FFIPlugin VMMaker.oscog-eem.3473 " INT_EXT; +static const char *moduleName = "ARM64FFIPlugin VMMaker.oscog-eem.3474 " INT_EXT; static sqInt nilObj; diff --git a/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c b/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c index 559b499e1f..7fcbbc9aa9 100644 --- a/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c +++ b/src/plugins/SqueakFFIPrims/IA32FFIPlugin.c @@ -1,10 +1,10 @@ /* Automatically generated by - VMPluginCodeGenerator VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + VMPluginCodeGenerator VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 (Compiler-eem.512) from - ThreadedIA32FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + ThreadedIA32FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 */ -static char __buildInfo[] = "ThreadedIA32FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 " __DATE__ ; +static char __buildInfo[] = "ThreadedIA32FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 " __DATE__ ; #include "config.h" @@ -176,7 +176,7 @@ static char __buildInfo[] = "ThreadedIA32FFIPlugin VMMaker.oscog-eem.3473 uuid: #define FFITypeUnsignedInt64 8 #define FFITypeUnsignedInt8 2 #define MaxNumArgs 15 -#define PluginVersionInfo " VMMaker.oscog-eem.3473" +#define PluginVersionInfo " VMMaker.oscog-eem.3474" typedef struct { char *argVector; @@ -186,7 +186,7 @@ typedef struct { sqInt structReturnType; sqInt callFlags; unsigned int *ffiArgSpec; - unsigned int *ffiRetSpec; + sqInt ffiRetSpec; unsigned int ffiArgSpecSize; unsigned int ffiArgHeader; unsigned int ffiRetHeader; @@ -512,7 +512,7 @@ extern sqInt trueObject(void); extern #endif struct VirtualMachine* interpreterProxy; -static const char *moduleName = "IA32FFIPlugin VMMaker.oscog-eem.3473 " INT_EXT; +static const char *moduleName = "IA32FFIPlugin VMMaker.oscog-eem.3474 " INT_EXT; static sqInt nilObj; diff --git a/src/plugins/SqueakFFIPrims/RiscV64FFIPlugin.c b/src/plugins/SqueakFFIPrims/RiscV64FFIPlugin.c index 4d9225566f..d62c214428 100644 --- a/src/plugins/SqueakFFIPrims/RiscV64FFIPlugin.c +++ b/src/plugins/SqueakFFIPrims/RiscV64FFIPlugin.c @@ -1,10 +1,10 @@ /* Automatically generated by - VMPluginCodeGenerator VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + VMPluginCodeGenerator VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 (Compiler-eem.512) from - ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 */ -static char __buildInfo[] = "ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 " __DATE__ ; +static char __buildInfo[] = "ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 " __DATE__ ; #include "config.h" @@ -178,7 +178,7 @@ static char __buildInfo[] = "ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3473 uui #define MaxNumArgs 15 #define NumFloatRegArgs 8 #define NumIntRegArgs 8 -#define PluginVersionInfo " VMMaker.oscog-eem.3473" +#define PluginVersionInfo " VMMaker.oscog-eem.3474" typedef struct { char *argVector; @@ -188,7 +188,7 @@ typedef struct { sqInt structReturnType; sqInt callFlags; unsigned int *ffiArgSpec; - unsigned int *ffiRetSpec; + sqInt ffiRetSpec; unsigned int ffiArgSpecSize; unsigned int ffiArgHeader; unsigned int ffiRetHeader; @@ -540,7 +540,7 @@ extern sqInt trueObject(void); extern #endif struct VirtualMachine* interpreterProxy; -static const char *moduleName = "RiscV64FFIPlugin VMMaker.oscog-eem.3473 " INT_EXT; +static const char *moduleName = "RiscV64FFIPlugin VMMaker.oscog-eem.3474 " INT_EXT; static sqInt nilObj; diff --git a/src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c b/src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c index b10f61d5da..c65a25e32e 100644 --- a/src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c +++ b/src/plugins/SqueakFFIPrims/X64SysVFFIPlugin.c @@ -1,10 +1,10 @@ /* Automatically generated by - VMPluginCodeGenerator VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + VMPluginCodeGenerator VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 (Compiler-eem.512) from - ThreadedX64SysVFFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + ThreadedX64SysVFFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 */ -static char __buildInfo[] = "ThreadedX64SysVFFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 " __DATE__ ; +static char __buildInfo[] = "ThreadedX64SysVFFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 " __DATE__ ; #include "config.h" @@ -178,7 +178,7 @@ static char __buildInfo[] = "ThreadedX64SysVFFIPlugin VMMaker.oscog-eem.3473 uui #define MaxNumArgs 15 #define NumFloatRegArgs 8 #define NumIntRegArgs 6 -#define PluginVersionInfo " VMMaker.oscog-eem.3473" +#define PluginVersionInfo " VMMaker.oscog-eem.3474" #define WordSize 8 typedef struct { @@ -189,7 +189,7 @@ typedef struct { sqInt structReturnType; sqInt callFlags; unsigned int *ffiArgSpec; - unsigned int *ffiRetSpec; + sqInt ffiRetSpec; unsigned int ffiArgSpecSize; unsigned int ffiArgHeader; unsigned int ffiRetHeader; @@ -564,7 +564,7 @@ extern sqInt trueObject(void); extern #endif struct VirtualMachine* interpreterProxy; -static const char *moduleName = "X64SysVFFIPlugin VMMaker.oscog-eem.3473 " INT_EXT; +static const char *moduleName = "X64SysVFFIPlugin VMMaker.oscog-eem.3474 " INT_EXT; static sqInt nilObj; diff --git a/src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c b/src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c index a5b3648a1f..3326c1ac91 100644 --- a/src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c +++ b/src/plugins/SqueakFFIPrims/X64Win64FFIPlugin.c @@ -1,10 +1,10 @@ /* Automatically generated by - VMPluginCodeGenerator VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + VMPluginCodeGenerator VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 (Compiler-eem.512) from - ThreadedX64Win64FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 + ThreadedX64Win64FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 */ -static char __buildInfo[] = "ThreadedX64Win64FFIPlugin VMMaker.oscog-eem.3473 uuid: dcbbd632-66d6-4492-9bb9-9e9c11aaa781 " __DATE__ ; +static char __buildInfo[] = "ThreadedX64Win64FFIPlugin VMMaker.oscog-eem.3474 uuid: 55a09717-2007-4334-94cb-06be2820e781 " __DATE__ ; #include "config.h" @@ -178,7 +178,7 @@ static char __buildInfo[] = "ThreadedX64Win64FFIPlugin VMMaker.oscog-eem.3473 uu #define MaxNumArgs 15 #define NumFloatRegArgs 4 #define NumIntRegArgs 4 -#define PluginVersionInfo " VMMaker.oscog-eem.3473" +#define PluginVersionInfo " VMMaker.oscog-eem.3474" #define WordSize 8 typedef struct { @@ -189,7 +189,7 @@ typedef struct { sqInt structReturnType; sqInt callFlags; unsigned int *ffiArgSpec; - unsigned int *ffiRetSpec; + sqInt ffiRetSpec; unsigned int ffiArgSpecSize; unsigned int ffiArgHeader; unsigned int ffiRetHeader; @@ -522,7 +522,7 @@ extern sqInt trueObject(void); extern #endif struct VirtualMachine* interpreterProxy; -static const char *moduleName = "X64Win64FFIPlugin VMMaker.oscog-eem.3473 " INT_EXT; +static const char *moduleName = "X64Win64FFIPlugin VMMaker.oscog-eem.3474 " INT_EXT; static sqInt nilObj;