1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 02:32:36 +01:00

Implement jit_compiler::check

Instead of checking file existence (because file may be damaged).
This commit is contained in:
Nekotekina 2020-04-07 16:09:47 +03:00
parent 7939160178
commit 91d80aa7b9
3 changed files with 17 additions and 1 deletions

View File

@ -1200,6 +1200,19 @@ void jit_compiler::add(const std::string& path)
} }
} }
bool jit_compiler::check(const std::string& path)
{
if (auto cache = ObjectCache::load(path))
{
if (auto object_file = llvm::object::ObjectFile::createObjectFile(*cache))
{
return true;
}
}
return false;
}
void jit_compiler::fin() void jit_compiler::fin()
{ {
m_engine->finalizeObject(); m_engine->finalizeObject();

View File

@ -171,6 +171,9 @@ public:
// Add object (path to obj file) // Add object (path to obj file)
void add(const std::string& path); void add(const std::string& path);
// Check object file
static bool check(const std::string& path);
// Finalize // Finalize
void fin(); void fin();

View File

@ -1650,7 +1650,7 @@ extern void ppu_initialize(const ppu_module& info)
link_workload.emplace_back(obj_name, false); link_workload.emplace_back(obj_name, false);
// Check object file // Check object file
if (fs::is_file(cache_path + obj_name + ".gz") || fs::is_file(cache_path + obj_name)) if (jit_compiler::check(cache_path + obj_name))
{ {
if (!jit) if (!jit)
{ {