FEXCore: Removes GetProgramStatus

Split from #3284 without changing ownership semantics while I reduce the
debugging surface here.

Removes one usage of ParentThread from FEXCore. Which can be done since
it is no longer an opaque structure, we can read the StatusCode
directly.

No functional change.
This commit is contained in:
Ryan Houdek committed 2023-11-29 09:23:47 -08:00
1 parent 7de66ac3a4
commit 01d29dffb9
4 files changed
+3 -18

No files matched your search

@@ -91,8 +91,6 @@ namespace FEXCore::Context {
void CompileRIP(FEXCore::Core::InternalThreadState *Thread, uint64_t GuestRIP) override;
void CompileRIPCount(FEXCore::Core::InternalThreadState *Thread, uint64_t GuestRIP, uint64_t MaxInst) override;
int GetProgramStatus() const override;
bool IsDone() const override;
void SetCustomCPUBackendFactory(CustomCPUFactoryType Factory) override;
-4
View File
@@ -509,10 +509,6 @@ namespace FEXCore::Context {
Dispatcher->ExecuteDispatch(Thread->CurrentFrame);
}
int ContextImpl::GetProgramStatus() const {
return ParentThread->StatusCode;
}
struct ExecutionThreadHandler {
ContextImpl *This;
FEXCore::Core::InternalThreadState *Thread;
-10
View File
@@ -201,16 +201,6 @@ namespace FEXCore::Context {
FEX_DEFAULT_VISIBILITY virtual void CompileRIP(FEXCore::Core::InternalThreadState *Thread, uint64_t GuestRIP) = 0;
FEX_DEFAULT_VISIBILITY virtual void CompileRIPCount(FEXCore::Core::InternalThreadState *Thread, uint64_t GuestRIP, uint64_t MaxInst) = 0;
/**
* @brief Gets the program exit status
*
*
* @param CTX The context that we created
*
* @return The program exit status
*/
FEX_DEFAULT_VISIBILITY virtual int GetProgramStatus() const = 0;
/**
* @brief [[theadsafe]] Checks if the Context is either done working or paused(in the case of single stepping)
*
+3 -2
View File
@@ -481,7 +481,8 @@ int main(int argc, char **argv, char **const envp) {
if (GdbServer) {
DebugServer = fextl::make_unique<FEX::GdbServer>(CTX.get(), SignalDelegation.get(), SyscallHandler.get());
}
CTX->InitCore(Loader.DefaultRIP(), Loader.GetStackPointer());
auto ParentThread = CTX->InitCore(Loader.DefaultRIP(), Loader.GetStackPointer());
// Pass in our VDSO thunks
CTX->AppendThunkDefinitions(FEX::VDSO::GetVDSOThunkDefinitions());
@@ -557,7 +558,7 @@ int main(int argc, char **argv, char **const envp) {
}
}
auto ProgramStatus = CTX->GetProgramStatus();
auto ProgramStatus = ParentThread->StatusCode;
DebugServer.reset();
SyscallHandler.reset();