mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-13 02:08:49 +12:00
Modernize PPU logging (ppu_log variable)
This commit is contained in:
parent
21f7b0ff0f
commit
327bb2d8f0
11 changed files with 70 additions and 69 deletions
|
@ -585,7 +585,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
func.addr = addr;
|
||||
func.toc = toc;
|
||||
func.name = fmt::format("__0x%x", func.addr);
|
||||
LOG_TRACE(PPU, "Function 0x%x added (toc=0x%x)", addr, toc);
|
||||
ppu_log.trace("Function 0x%x added (toc=0x%x)", addr, toc);
|
||||
return func;
|
||||
};
|
||||
|
||||
|
@ -605,7 +605,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
if (ptr[0] >= start && ptr[0] < end && ptr[0] % 4 == 0 && ptr[1] == toc)
|
||||
{
|
||||
// New function
|
||||
LOG_TRACE(PPU, "OPD*: [0x%x] 0x%x (TOC=0x%x)", ptr, ptr[0], ptr[1]);
|
||||
ppu_log.trace("OPD*: [0x%x] 0x%x (TOC=0x%x)", ptr, ptr[0], ptr[1]);
|
||||
add_func(*ptr, addr_heap.count(ptr.addr()) ? toc : 0, 0);
|
||||
ptr++;
|
||||
}
|
||||
|
@ -684,7 +684,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
}
|
||||
}
|
||||
|
||||
if (sec_end) LOG_NOTICE(PPU, "Reading OPD section at 0x%x...", sec.addr);
|
||||
if (sec_end) ppu_log.notice("Reading OPD section at 0x%x...", sec.addr);
|
||||
|
||||
// Mine
|
||||
for (vm::cptr<u32> ptr = vm::cast(sec.addr); ptr < sec_end; ptr += 2)
|
||||
|
@ -695,7 +695,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
// Add function and TOC
|
||||
const u32 addr = ptr[0];
|
||||
const u32 toc = ptr[1];
|
||||
LOG_TRACE(PPU, "OPD: [0x%x] 0x%x (TOC=0x%x)", ptr, addr, toc);
|
||||
ppu_log.trace("OPD: [0x%x] 0x%x (TOC=0x%x)", ptr, addr, toc);
|
||||
|
||||
TOCs.emplace(toc);
|
||||
auto& func = add_func(addr, addr_heap.count(ptr.addr()) ? toc : 0, 0);
|
||||
|
@ -767,7 +767,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
ptr = vm::cast(ptr.addr() + size);
|
||||
}
|
||||
|
||||
if (sec_end && sec.size > 4) LOG_NOTICE(PPU, "Reading .eh_frame section at 0x%x...", sec.addr);
|
||||
if (sec_end && sec.size > 4) ppu_log.notice("Reading .eh_frame section at 0x%x...", sec.addr);
|
||||
|
||||
// Mine
|
||||
for (vm::cptr<u32> ptr = vm::cast(sec.addr); ptr < sec_end; ptr = vm::cast(ptr.addr() + ptr[0] + 4))
|
||||
|
@ -781,7 +781,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
if (ptr[1] == 0)
|
||||
{
|
||||
// CIE
|
||||
LOG_TRACE(PPU, ".eh_frame: [0x%x] CIE 0x%x", ptr, ptr[0]);
|
||||
ppu_log.trace(".eh_frame: [0x%x] CIE 0x%x", ptr, ptr[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -808,7 +808,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
}
|
||||
else
|
||||
{
|
||||
LOG_ERROR(PPU, ".eh_frame: [0x%x] 0x%x, 0x%x, 0x%x, 0x%x, 0x%x", ptr, ptr[0], ptr[1], ptr[2], ptr[3], ptr[4]);
|
||||
ppu_log.error(".eh_frame: [0x%x] 0x%x, 0x%x, 0x%x, 0x%x, 0x%x", ptr, ptr[0], ptr[1], ptr[2], ptr[3], ptr[4]);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -818,12 +818,12 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
addr += ptr.addr() + 8;
|
||||
}
|
||||
|
||||
LOG_TRACE(PPU, ".eh_frame: [0x%x] FDE 0x%x (cie=*0x%x, addr=0x%x, size=0x%x)", ptr, ptr[0], cie, addr, size);
|
||||
ppu_log.trace(".eh_frame: [0x%x] FDE 0x%x (cie=*0x%x, addr=0x%x, size=0x%x)", ptr, ptr[0], cie, addr, size);
|
||||
|
||||
// TODO: invalid offsets, zero offsets (removed functions?)
|
||||
if (addr % 4 || size % 4 || size > (end - start) || addr < start || addr + size > end)
|
||||
{
|
||||
if (addr) LOG_ERROR(PPU, ".eh_frame: Invalid function 0x%x", addr);
|
||||
if (addr) ppu_log.error(".eh_frame: Invalid function 0x%x", addr);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1127,7 +1127,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
if (const u32 len = ppu_test(ptr, fend, ppu_patterns::abort))
|
||||
{
|
||||
// Function "abort"
|
||||
LOG_NOTICE(PPU, "Function [0x%x]: 'abort'", func.addr);
|
||||
ppu_log.notice("Function [0x%x]: 'abort'", func.addr);
|
||||
func.attr += ppu_attr::no_return;
|
||||
func.attr += ppu_attr::known_size;
|
||||
func.size = len;
|
||||
|
@ -1209,7 +1209,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
|
||||
if (target < start || target >= end)
|
||||
{
|
||||
LOG_WARNING(PPU, "[0x%x] Invalid branch at 0x%x -> 0x%x", func.addr, iaddr, target);
|
||||
ppu_log.warning("[0x%x] Invalid branch at 0x%x -> 0x%x", func.addr, iaddr, target);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1292,7 +1292,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
// Acknowledge jumptable detection failure
|
||||
if (!(func.attr & ppu_attr::no_size))
|
||||
{
|
||||
LOG_WARNING(PPU, "[0x%x] Jump table not found! 0x%x-0x%x", func.addr, jt_addr, jt_end);
|
||||
ppu_log.warning("[0x%x] Jump table not found! 0x%x-0x%x", func.addr, jt_addr, jt_end);
|
||||
}
|
||||
|
||||
func.attr += ppu_attr::no_size;
|
||||
|
@ -1301,7 +1301,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
}
|
||||
else
|
||||
{
|
||||
LOG_TRACE(PPU, "[0x%x] Jump table found: 0x%x-0x%x", func.addr, jt_addr, _ptr);
|
||||
ppu_log.trace("[0x%x] Jump table found: 0x%x-0x%x", func.addr, jt_addr, _ptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1327,7 +1327,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
else if (type == ppu_itype::STDU && func.attr & ppu_attr::no_size && (op.opcode == *_ptr || *_ptr == ppu_instructions::BLR()))
|
||||
{
|
||||
// Hack
|
||||
LOG_SUCCESS(PPU, "[0x%x] Instruction repetition: 0x%08x", iaddr, op.opcode);
|
||||
ppu_log.success("[0x%x] Instruction repetition: 0x%08x", iaddr, op.opcode);
|
||||
add_block(_ptr.addr());
|
||||
block.second = _ptr.addr() - block.first;
|
||||
break;
|
||||
|
@ -1433,7 +1433,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
// Just ensure that functions don't overlap
|
||||
if (func.addr + func.size > next)
|
||||
{
|
||||
LOG_WARNING(PPU, "Function overlap: [0x%x] 0x%x -> 0x%x", func.addr, func.size, next - func.addr);
|
||||
ppu_log.warning("Function overlap: [0x%x] 0x%x -> 0x%x", func.addr, func.size, next - func.addr);
|
||||
continue; //func.size = next - func.addr;
|
||||
|
||||
// Also invalidate blocks
|
||||
|
@ -1503,7 +1503,7 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
|
||||
if (_ptr.addr() >= next)
|
||||
{
|
||||
LOG_WARNING(PPU, "Function gap: [0x%x] 0x%x bytes at 0x%x", func.addr, next - start, start);
|
||||
ppu_log.warning("Function gap: [0x%x] 0x%x bytes at 0x%x", func.addr, next - start, start);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1527,17 +1527,17 @@ void ppu_module::analyse(u32 lib_toc, u32 entry)
|
|||
for (auto&& pair : fmap)
|
||||
{
|
||||
auto& func = pair.second;
|
||||
LOG_TRACE(PPU, "Function %s (size=0x%x, toc=0x%x, attr %#x)", func.name, func.size, func.toc, func.attr);
|
||||
ppu_log.trace("Function %s (size=0x%x, toc=0x%x, attr %#x)", func.name, func.size, func.toc, func.attr);
|
||||
funcs.emplace_back(std::move(func));
|
||||
}
|
||||
|
||||
LOG_NOTICE(PPU, "Function analysis: %zu functions (%zu enqueued)", funcs.size(), func_queue.size());
|
||||
ppu_log.notice("Function analysis: %zu functions (%zu enqueued)", funcs.size(), func_queue.size());
|
||||
}
|
||||
|
||||
void ppu_acontext::UNK(ppu_opcode_t op)
|
||||
{
|
||||
std::fill_n(gpr, 32, spec_gpr{});
|
||||
LOG_ERROR(PPU, "Unknown/Illegal opcode: 0x%08x at 0x%x" HERE, op.opcode, cia);
|
||||
ppu_log.error("Unknown/Illegal opcode: 0x%08x at 0x%x" HERE, op.opcode, cia);
|
||||
}
|
||||
|
||||
void ppu_acontext::MFVSCR(ppu_opcode_t op)
|
||||
|
@ -3467,7 +3467,7 @@ const bool s_tes = []()
|
|||
{
|
||||
auto exp = ppu_acontext::spec_gpr::approx(r1.ones() & r2.ones(), r1.mask() & r2.mask());
|
||||
|
||||
LOG_ERROR(PPU, "ppu_acontext failure:"
|
||||
ppu_log.error("ppu_acontext failure:"
|
||||
"\n\tr1 = 0x%016x..0x%016x, 0x%016x:0x%016x"
|
||||
"\n\tr2 = 0x%016x..0x%016x, 0x%016x:0x%016x"
|
||||
"\n\tr3 = 0x%016x..0x%016x, 0x%016x:0x%016x"
|
||||
|
@ -3483,7 +3483,7 @@ const bool s_tes = []()
|
|||
ppu_acontext::spec_gpr r1;
|
||||
r1 = ppu_acontext::spec_gpr::range(0x13311, 0x1fe22);
|
||||
r1 = r1 ^ ppu_acontext::spec_gpr::approx(0x000, 0xf00);
|
||||
LOG_SUCCESS(PPU, "0x%x..0x%x", r1.imin, r1.imax);
|
||||
ppu_log.success("0x%x..0x%x", r1.imin, r1.imax);
|
||||
|
||||
return true;
|
||||
}();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue