mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
Merge pull request #3003 from dolphin-emu/revert-2961-printf
Partially revert "General: Toss out PRI macro usage"
This commit is contained in:
@@ -96,7 +96,7 @@ void RegisterV(const void* base_address, u32 code_size,
|
||||
if (s_perf_map_file.IsOpen())
|
||||
{
|
||||
std::string entry = StringFromFormat(
|
||||
"%llx %x %s\n",
|
||||
"%" PRIx64 " %x %s\n",
|
||||
(u64)base_address, code_size, symbol_name.data());
|
||||
s_perf_map_file.WriteBytes(entry.data(), entry.size());
|
||||
}
|
||||
|
||||
@@ -64,9 +64,6 @@ void* AllocateExecutableMemory(size_t size, bool low)
|
||||
, -1, 0);
|
||||
#endif /* defined(_WIN32) */
|
||||
|
||||
// printf("Mapped executable memory at %p (size %ld)\n", ptr,
|
||||
// (unsigned long)size);
|
||||
|
||||
#ifdef _WIN32
|
||||
if (ptr == nullptr)
|
||||
{
|
||||
@@ -84,7 +81,6 @@ void* AllocateExecutableMemory(size_t size, bool low)
|
||||
{
|
||||
map_hint += size;
|
||||
map_hint = (char*)round_page(map_hint); /* round up to the next page */
|
||||
// printf("Next map will (hopefully) be at %p\n", map_hint);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -125,9 +121,6 @@ void* AllocateAlignedMemory(size_t size, size_t alignment)
|
||||
ERROR_LOG(MEMMAP, "Failed to allocate aligned memory");
|
||||
#endif
|
||||
|
||||
// printf("Mapped memory at %p (size %ld)\n", ptr,
|
||||
// (unsigned long)size);
|
||||
|
||||
if (ptr == nullptr)
|
||||
PanicAlert("Failed to allocate aligned memory");
|
||||
|
||||
|
||||
@@ -203,7 +203,7 @@ bool SDCardCreate(u64 disk_size /*in MB*/, const std::string& filename)
|
||||
|
||||
if (disk_size < 0x800000 || disk_size > 0x800000000ULL)
|
||||
{
|
||||
ERROR_LOG(COMMON, "Trying to create SD Card image of size %lluMB is out of range (8MB-32GB)", disk_size/(1024*1024));
|
||||
ERROR_LOG(COMMON, "Trying to create SD Card image of size %" PRIu64 "MB is out of range (8MB-32GB)", disk_size/(1024*1024));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,8 +20,7 @@ void SymbolDB::List()
|
||||
func.second.size, func.second.hash,
|
||||
func.second.numCalls);
|
||||
}
|
||||
INFO_LOG(OSHLE, "%lu functions known in this program above.",
|
||||
(unsigned long)functions.size());
|
||||
INFO_LOG(OSHLE, "%zu functions known in this program above.", functions.size());
|
||||
}
|
||||
|
||||
void SymbolDB::Clear(const char *prefix)
|
||||
|
||||
@@ -53,7 +53,7 @@ bool SysConf::LoadFromFile(const std::string& filename)
|
||||
u64 size = File::GetSize(filename);
|
||||
if (size != SYSCONF_SIZE)
|
||||
{
|
||||
if (AskYesNoT("Your SYSCONF file is the wrong size.\nIt should be 0x%04x (but is 0x%04llx)\nDo you want to generate a new one?",
|
||||
if (AskYesNoT("Your SYSCONF file is the wrong size.\nIt should be 0x%04x (but is 0x%04" PRIx64 ")\nDo you want to generate a new one?",
|
||||
SYSCONF_SIZE, size))
|
||||
{
|
||||
GenerateSysConf();
|
||||
|
||||
@@ -147,7 +147,7 @@ std::string Timer::GetTimeElapsedFormatted() const
|
||||
// Hours
|
||||
u32 Hours = Minutes / 60;
|
||||
|
||||
std::string TmpStr = StringFromFormat("%02i:%02i:%02i:%03llu",
|
||||
std::string TmpStr = StringFromFormat("%02i:%02i:%02i:%03" PRIu64,
|
||||
Hours, Minutes % 60, Seconds % 60, Milliseconds % 1000);
|
||||
return TmpStr;
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ void OpArg::WriteRest(XEmitter* emit, int extraBytes, X64Reg _operandReg,
|
||||
(distance < 0x80000000LL &&
|
||||
distance >= -0x80000000LL) ||
|
||||
!warn_64bit_offset,
|
||||
"WriteRest: op out of range (0x%llx uses 0x%llx)",
|
||||
"WriteRest: op out of range (0x%" PRIx64 " uses 0x%" PRIx64 ")",
|
||||
ripAddr, offset);
|
||||
s32 offs = (s32)distance;
|
||||
emit->Write32((u32)offs);
|
||||
|
||||
@@ -790,7 +790,7 @@ bool SConfig::AutoSetup(EBootBS2 _BootBS2)
|
||||
|
||||
// Use the TitleIDhex for name and/or unique ID if launching from nand folder
|
||||
// or if it is not ascii characters (specifically sysmenu could potentially apply to other things)
|
||||
std::string titleidstr = StringFromFormat("%016llx", ContentLoader.GetTitleID());
|
||||
std::string titleidstr = StringFromFormat("%016" PRIx64, ContentLoader.GetTitleID());
|
||||
|
||||
if (m_strName.empty())
|
||||
{
|
||||
|
||||
@@ -421,7 +421,7 @@ void LogPendingEvents()
|
||||
Event *ptr = first;
|
||||
while (ptr)
|
||||
{
|
||||
INFO_LOG(POWERPC, "PENDING: Now: %lld Pending: %lld Type: %d", globalTimer, ptr->time, ptr->type);
|
||||
INFO_LOG(POWERPC, "PENDING: Now: %" PRId64 " Pending: %" PRId64 " Type: %d", globalTimer, ptr->time, ptr->type);
|
||||
ptr = ptr->next;
|
||||
}
|
||||
}
|
||||
@@ -456,7 +456,7 @@ std::string GetScheduledEventsSummary()
|
||||
|
||||
const std::string& name = event_types[ptr->type].name;
|
||||
|
||||
text += StringFromFormat("%s : %lld %016llx\n", name.c_str(), ptr->time, ptr->userdata);
|
||||
text += StringFromFormat("%s : %" PRIi64 " %016" PRIx64 "\n", name.c_str(), ptr->time, ptr->userdata);
|
||||
ptr = ptr->next;
|
||||
}
|
||||
return text;
|
||||
|
||||
@@ -40,12 +40,12 @@ void ProfilerDump(u64 count)
|
||||
File::IOFile pFile("DSP_Prof.txt", "wt");
|
||||
if (pFile)
|
||||
{
|
||||
fprintf(pFile.GetHandle(), "Number of DSP steps: %llu\n\n", count);
|
||||
fprintf(pFile.GetHandle(), "Number of DSP steps: %" PRIu64 "\n\n", count);
|
||||
for (int i=0; i<PROFILE_MAP_SIZE;i++)
|
||||
{
|
||||
if (g_profileMap[i] > 0)
|
||||
{
|
||||
fprintf(pFile.GetHandle(), "0x%04X: %llu\n", i, g_profileMap[i]);
|
||||
fprintf(pFile.GetHandle(), "0x%04X: %" PRIu64 "\n", i, g_profileMap[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -779,7 +779,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
|
||||
// Only used from WII_IPC. This is the only read command that decrypts data
|
||||
case DVDLowRead:
|
||||
INFO_LOG(DVDINTERFACE, "DVDLowRead: DVDAddr: 0x%09llx, Size: 0x%x", (u64)command_2 << 2, command_1);
|
||||
INFO_LOG(DVDINTERFACE, "DVDLowRead: DVDAddr: 0x%09" PRIx64 ", Size: 0x%x", (u64)command_2 << 2, command_1);
|
||||
read_command = ExecuteReadCommand((u64)command_2 << 2, output_address, command_1, output_length,
|
||||
true, &interrupt_type, &ticks_until_completion);
|
||||
break;
|
||||
@@ -846,7 +846,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
|
||||
// Probably only used by Wii
|
||||
case DVDLowUnencryptedRead:
|
||||
INFO_LOG(DVDINTERFACE, "DVDLowUnencryptedRead: DVDAddr: 0x%09llx, Size: 0x%x", (u64)command_2 << 2, command_1);
|
||||
INFO_LOG(DVDINTERFACE, "DVDLowUnencryptedRead: DVDAddr: 0x%09" PRIx64 ", Size: 0x%x", (u64)command_2 << 2, command_1);
|
||||
|
||||
// We must make sure it is in a valid area! (#001 check)
|
||||
// Are these checks correct? They seem to mix 32-bit offsets and 8-bit lengths
|
||||
@@ -865,7 +865,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
}
|
||||
else
|
||||
{
|
||||
WARN_LOG(DVDINTERFACE, "DVDLowUnencryptedRead: trying to read out of bounds @ %09llx", (u64)command_2 << 2);
|
||||
WARN_LOG(DVDINTERFACE, "DVDLowUnencryptedRead: trying to read out of bounds @ %09" PRIx64, (u64)command_2 << 2);
|
||||
g_ErrorCode = ERROR_READY | ERROR_BLOCK_OOB;
|
||||
// Should cause software to call DVDLowRequestError
|
||||
interrupt_type = INT_BRKINT;
|
||||
@@ -904,7 +904,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
{
|
||||
u64 iDVDOffset = (u64)command_1 << 2;
|
||||
|
||||
INFO_LOG(DVDINTERFACE, "Read: DVDOffset=%08llx, DMABuffer = %08x, SrcLength = %08x, DMALength = %08x",
|
||||
INFO_LOG(DVDINTERFACE, "Read: DVDOffset=%08" PRIx64 ", DMABuffer = %08x, SrcLength = %08x, DMALength = %08x",
|
||||
iDVDOffset, output_address, command_2, output_length);
|
||||
|
||||
if (GCAM)
|
||||
@@ -941,7 +941,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
Memory::Write_U32(0x00000000, output_address + i);
|
||||
break;
|
||||
default:
|
||||
ERROR_LOG(DVDINTERFACE, "GC-AM: UNKNOWN MEDIA BOARD LOCATION %llx", iDVDOffset);
|
||||
ERROR_LOG(DVDINTERFACE, "GC-AM: UNKNOWN MEDIA BOARD LOCATION %" PRIx64, iDVDOffset);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -1002,7 +1002,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
|
||||
while (len >= 4)
|
||||
{
|
||||
ERROR_LOG(DVDINTERFACE, "GC-AM Media Board WRITE (0xAA): %08llx: %08x", iDVDOffset, Memory::Read_U32(addr));
|
||||
ERROR_LOG(DVDINTERFACE, "GC-AM Media Board WRITE (0xAA): %08" PRIx64 ": %08x", iDVDOffset, Memory::Read_U32(addr));
|
||||
addr += 4;
|
||||
len -= 4;
|
||||
iDVDOffset += 4;
|
||||
@@ -1014,7 +1014,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
Memory::CopyFromEmu(media_buffer + offset, addr, len);
|
||||
while (len >= 4)
|
||||
{
|
||||
ERROR_LOG(DVDINTERFACE, "GC-AM Media Board WRITE (0xAA): %08llx: %08x", iDVDOffset, Memory::Read_U32(addr));
|
||||
ERROR_LOG(DVDINTERFACE, "GC-AM Media Board WRITE (0xAA): %08" PRIx64 ": %08x", iDVDOffset, Memory::Read_U32(addr));
|
||||
addr += 4;
|
||||
len -= 4;
|
||||
iDVDOffset += 4;
|
||||
@@ -1028,7 +1028,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
if (!GCAM)
|
||||
{
|
||||
// Currently unimplemented
|
||||
INFO_LOG(DVDINTERFACE, "Seek: offset=%09llx (ignoring)", (u64)command_1 << 2);
|
||||
INFO_LOG(DVDINTERFACE, "Seek: offset=%09" PRIx64 " (ignoring)", (u64)command_1 << 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1190,7 +1190,7 @@ void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_addr
|
||||
}
|
||||
}
|
||||
|
||||
INFO_LOG(DVDINTERFACE, "(Audio) Stream cmd: %08x offset: %08llx length: %08x",
|
||||
INFO_LOG(DVDINTERFACE, "(Audio) Stream cmd: %08x offset: %08" PRIx64 " length: %08x",
|
||||
command_0, (u64)command_1 << 2, command_2);
|
||||
}
|
||||
break;
|
||||
@@ -1357,7 +1357,7 @@ u64 SimulateDiscReadTime(u64 offset, u32 length)
|
||||
if (offset + length - g_last_read_offset > 1024 * 1024)
|
||||
{
|
||||
// No buffer; just use the simple seek time + read time.
|
||||
DEBUG_LOG(DVDINTERFACE, "Seeking %lld bytes",
|
||||
DEBUG_LOG(DVDINTERFACE, "Seeking %" PRId64 " bytes",
|
||||
s64(g_last_read_offset) - s64(offset));
|
||||
ticks_until_completion = disk_read_duration;
|
||||
g_last_read_time = current_time + ticks_until_completion;
|
||||
@@ -1378,20 +1378,20 @@ u64 SimulateDiscReadTime(u64 offset, u32 length)
|
||||
|
||||
if (current_time > buffer_fill_time)
|
||||
{
|
||||
DEBUG_LOG(DVDINTERFACE, "Fast buffer read at %llx", offset);
|
||||
DEBUG_LOG(DVDINTERFACE, "Fast buffer read at %" PRIx64, offset);
|
||||
ticks_until_completion = buffer_read_duration;
|
||||
g_last_read_time = buffer_fill_time;
|
||||
}
|
||||
else if (current_time + disk_read_duration > buffer_fill_time)
|
||||
{
|
||||
DEBUG_LOG(DVDINTERFACE, "Slow buffer read at %llx", offset);
|
||||
DEBUG_LOG(DVDINTERFACE, "Slow buffer read at %" PRIx64, offset);
|
||||
ticks_until_completion = std::max(buffer_fill_time - current_time,
|
||||
buffer_read_duration);
|
||||
g_last_read_time = buffer_fill_time;
|
||||
}
|
||||
else
|
||||
{
|
||||
DEBUG_LOG(DVDINTERFACE, "Short seek %lld bytes",
|
||||
DEBUG_LOG(DVDINTERFACE, "Short seek %" PRId64 " bytes",
|
||||
s64(g_last_read_offset) - s64(offset));
|
||||
ticks_until_completion = disk_read_duration;
|
||||
g_last_read_time = current_time + ticks_until_completion;
|
||||
|
||||
@@ -181,7 +181,7 @@ GCMemcard::GCMemcard(const std::string &filename, bool forceCreation, bool ascii
|
||||
}
|
||||
else
|
||||
{
|
||||
PanicAlertT("Failed to read block %u of the save data\nMemcard may be truncated\nFile position: 0x%llx", i, mcdFile.Tell());
|
||||
PanicAlertT("Failed to read block %u of the save data\nMemcard may be truncated\nFile position: 0x%" PRIx64, i, mcdFile.Tell());
|
||||
m_valid = false;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ int GCMemcardDirectory::LoadGCI(const std::string& fileName, DiscIO::IVolume::EC
|
||||
u64 file_size = gcifile.GetSize();
|
||||
if (file_size != size + DENTRY_SIZE)
|
||||
{
|
||||
PanicAlertT("%s\nwas not loaded because it is an invalid GCI.\n File size (0x%llx"
|
||||
PanicAlertT("%s\nwas not loaded because it is an invalid GCI.\n File size (0x%" PRIx64
|
||||
") does not match the size recorded in the header (0x%x)",
|
||||
gci.m_filename.c_str(), file_size, size + DENTRY_SIZE);
|
||||
return NO_INDEX;
|
||||
|
||||
@@ -88,7 +88,7 @@ void CWiiSaveCrypted::ExportAllSaves()
|
||||
}
|
||||
}
|
||||
}
|
||||
SuccessAlertT("Found %u save files", (unsigned int)titles.size());
|
||||
SuccessAlertT("Found %zu save files", titles.size());
|
||||
u32 success = 0;
|
||||
for (const u64& title : titles)
|
||||
{
|
||||
@@ -176,7 +176,7 @@ void CWiiSaveCrypted::ReadHDR()
|
||||
md5((u8*)&m_header, HEADER_SZ, md5_calc);
|
||||
if (memcmp(md5_file, md5_calc, 0x10))
|
||||
{
|
||||
ERROR_LOG(CONSOLE, "MD5 mismatch\n %016llx%016llx != %016llx%016llx",
|
||||
ERROR_LOG(CONSOLE, "MD5 mismatch\n %016" PRIx64 "%016" PRIx64 " != %016" PRIx64 "%016" PRIx64,
|
||||
Common::swap64(md5_file),Common::swap64(md5_file + 8), Common::swap64(md5_calc),
|
||||
Common::swap64(md5_calc + 8));
|
||||
m_valid= false;
|
||||
@@ -276,7 +276,7 @@ void CWiiSaveCrypted::ReadBKHDR()
|
||||
}
|
||||
if (m_title_id != Common::swap64(m_bk_hdr.SaveGameTitle))
|
||||
{
|
||||
WARN_LOG(CONSOLE, "Encrypted title (%llx) does not match unencrypted title (%llx)",
|
||||
WARN_LOG(CONSOLE, "Encrypted title (%" PRIx64 ") does not match unencrypted title (%" PRIx64 ")",
|
||||
m_title_id, Common::swap64(m_bk_hdr.SaveGameTitle));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,7 +162,7 @@ IPCCommandResult CWII_IPC_HLE_Device_di::IOCtlV(u32 _CommandAddress)
|
||||
u64 const partition_offset = ((u64)Memory::Read_U32(CommandBuffer.InBuffer[0].m_Address + 4) << 2);
|
||||
DVDInterface::ChangePartition(partition_offset);
|
||||
|
||||
INFO_LOG(WII_IPC_DVD, "DVDLowOpenPartition: partition_offset 0x%016llx", partition_offset);
|
||||
INFO_LOG(WII_IPC_DVD, "DVDLowOpenPartition: partition_offset 0x%016" PRIx64, partition_offset);
|
||||
|
||||
// Read TMD to the buffer
|
||||
u32 tmd_size;
|
||||
|
||||
@@ -211,7 +211,7 @@ u32 CWII_IPC_HLE_Device_es::OpenTitleContent(u32 CFD, u64 TitleID, u16 Index)
|
||||
|
||||
if (!Loader.IsValid())
|
||||
{
|
||||
WARN_LOG(WII_IPC_ES, "ES: loader not valid for %llx", TitleID);
|
||||
WARN_LOG(WII_IPC_ES, "ES: loader not valid for %" PRIx64, TitleID);
|
||||
return 0xffffffff;
|
||||
}
|
||||
|
||||
@@ -336,9 +336,7 @@ IPCCommandResult CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
|
||||
else
|
||||
{
|
||||
Memory::Write_U32((u32)rNANDCOntent.GetContentSize(), _CommandAddress + 0x4);
|
||||
INFO_LOG(WII_IPC_ES,
|
||||
"IOCTL_ES_GETTITLECONTENTS: "
|
||||
"Unable to open content %zu",
|
||||
INFO_LOG(WII_IPC_ES, "IOCTL_ES_GETTITLECONTENTS: Unable to open content %zu",
|
||||
rNANDCOntent.GetContentSize());
|
||||
}
|
||||
|
||||
@@ -952,7 +950,7 @@ IPCCommandResult CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
|
||||
if (!bSuccess)
|
||||
{
|
||||
PanicAlertT("IOCTL_ES_LAUNCH: Game tried to reload a title that is not available in your NAND dump\n"
|
||||
"TitleID %016llx.\n Dolphin will likely hang now.", TitleID);
|
||||
"TitleID %016" PRIx64".\n Dolphin will likely hang now.", TitleID);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -993,7 +991,7 @@ IPCCommandResult CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
|
||||
//TODO: provide correct return code when bSuccess= false
|
||||
Memory::Write_U32(0, _CommandAddress + 0x4);
|
||||
|
||||
ERROR_LOG(WII_IPC_ES, "IOCTL_ES_LAUNCH %016llx %08x %016llx %08x %016llx %04x", TitleID,view,ticketid,devicetype,titleid,access);
|
||||
ERROR_LOG(WII_IPC_ES, "IOCTL_ES_LAUNCH %016" PRIx64 " %08x %016" PRIx64 " %08x %016" PRIx64 " %04x", TitleID,view,ticketid,devicetype,titleid,access);
|
||||
// IOCTL_ES_LAUNCH 0001000248414341 00000001 0001c0fef3df2cfa 00000000 0001000248414341 ffff
|
||||
|
||||
// This is necessary because Reset(true) above deleted this object. Ew.
|
||||
|
||||
@@ -401,8 +401,7 @@ void CWII_IPC_HLE_Device_usb_oh1_57e_305::AddEventToQueue(const SQueuedEvent& _e
|
||||
}
|
||||
else // push new one, pop oldest
|
||||
{
|
||||
DEBUG_LOG(WII_IPC_WIIMOTE, "HCI endpoint not "
|
||||
"currently valid, queueing (%zu)...",
|
||||
DEBUG_LOG(WII_IPC_WIIMOTE, "HCI endpoint not currently valid, queueing (%zu)...",
|
||||
m_EventQueue.size());
|
||||
m_EventQueue.push_back(_event);
|
||||
const SQueuedEvent& event = m_EventQueue.front();
|
||||
|
||||
@@ -62,7 +62,7 @@ static void Trace(UGeckoInstruction& instCode)
|
||||
std::string fregs = "";
|
||||
for (int i = 0; i < 32; i++)
|
||||
{
|
||||
fregs += StringFromFormat("f%02d: %08llx %08llx ", i, PowerPC::ppcState.ps[i][0], PowerPC::ppcState.ps[i][1]);
|
||||
fregs += StringFromFormat("f%02d: %08" PRIx64 " %08" PRIx64 " ", i, PowerPC::ppcState.ps[i][0], PowerPC::ppcState.ps[i][1]);
|
||||
}
|
||||
|
||||
std::string ppc_inst = GekkoDisassembler::Disassemble(instCode.hex, PC);
|
||||
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
if (IsBound(preg))
|
||||
return regs[preg].location.GetSimpleReg();
|
||||
|
||||
PanicAlert("Unbounded register - %zu", preg);
|
||||
PanicAlert("Unbound register - %zu", preg);
|
||||
return Gen::INVALID_REG;
|
||||
}
|
||||
virtual Gen::OpArg GetDefaultLocation(size_t reg) const = 0;
|
||||
|
||||
@@ -216,14 +216,14 @@ namespace JitILProfiler
|
||||
std::string filename = StringFromFormat("JitIL_profiling_%d.csv", (int)time(nullptr));
|
||||
File::IOFile file(filename, "w");
|
||||
setvbuf(file.GetHandle(), nullptr, _IOFBF, 1024 * 1024);
|
||||
fprintf(file.GetHandle(), "code hash, total elapsed, number of calls, elapsed per call\n");
|
||||
fprintf(file.GetHandle(), "code hash,total elapsed,number of calls,elapsed per call\n");
|
||||
for (auto& block : blocks)
|
||||
{
|
||||
const u64 codeHash = block.codeHash;
|
||||
const u64 totalElapsed = block.totalElapsed;
|
||||
const u64 numberOfCalls = block.numberOfCalls;
|
||||
const double elapsedPerCall = totalElapsed / (double)numberOfCalls;
|
||||
fprintf(file.GetHandle(), "%016llx, %lld, %lld, %f\n", codeHash, totalElapsed, numberOfCalls, elapsedPerCall);
|
||||
fprintf(file.GetHandle(), "%016" PRIx64 ",%" PRId64 ",%" PRId64 ",%f\n", codeHash, totalElapsed, numberOfCalls, elapsedPerCall);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user