From 070d34cd025b3c2be23887b2d75f882da10641bf Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Tue, 9 Jun 2015 22:01:01 -0700 Subject: [PATCH] Fiddling with function data. --- src/xenia/base/mapped_memory_win.cc | 2 +- src/xenia/cpu/backend/x64/x64_assembler.cc | 14 ++++++-------- src/xenia/debug/function_trace_data.h | 21 +++++++++++++++++++++ 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/xenia/base/mapped_memory_win.cc b/src/xenia/base/mapped_memory_win.cc index 6889436ae..945440749 100644 --- a/src/xenia/base/mapped_memory_win.cc +++ b/src/xenia/base/mapped_memory_win.cc @@ -179,7 +179,7 @@ class Win32ChunkedMappedMemoryWriter : public ChunkedMappedMemoryWriter { bool Open(const std::wstring& path, bool low_address_space) { DWORD file_access = GENERIC_READ | GENERIC_WRITE; - DWORD file_share = 0; + DWORD file_share = FILE_SHARE_READ; DWORD create_mode = CREATE_ALWAYS; DWORD mapping_protect = PAGE_READWRITE; DWORD view_access = FILE_MAP_READ | FILE_MAP_WRITE; diff --git a/src/xenia/cpu/backend/x64/x64_assembler.cc b/src/xenia/cpu/backend/x64/x64_assembler.cc index 3b4f73394..b3d7b0330 100644 --- a/src/xenia/cpu/backend/x64/x64_assembler.cc +++ b/src/xenia/cpu/backend/x64/x64_assembler.cc @@ -83,20 +83,18 @@ bool X64Assembler::Assemble(FunctionInfo* symbol_info, HIRBuilder* builder, } // Dump debug data. - //auto fn_data = backend_->processor()->debugger()-> if (FLAGS_disassemble_functions) { if (debug_info_flags & DebugInfoFlags::kDebugInfoDisasmSource) { - // + // auto fn_data = backend_->processor()->debugger()->AllocateFunctionData( + // xe::debug::FunctionDisasmData::SizeOfHeader()); } } - { - X64Function* fn = new X64Function(symbol_info); - fn->set_debug_info(std::move(debug_info)); - fn->Setup(machine_code, code_size); + X64Function* fn = new X64Function(symbol_info); + fn->set_debug_info(std::move(debug_info)); + fn->Setup(machine_code, code_size); - *out_function = fn; - } + *out_function = fn; return true; } diff --git a/src/xenia/debug/function_trace_data.h b/src/xenia/debug/function_trace_data.h index 29e03bfce..8c2d6bb62 100644 --- a/src/xenia/debug/function_trace_data.h +++ b/src/xenia/debug/function_trace_data.h @@ -17,6 +17,27 @@ namespace xe { namespace debug { +class FunctionDisasmData { + public: + struct Header { + // Format is used by tooling, changes must be made across all targets. + // + 0 4b (data size) + // + 4 4b start_address + // + 8 4b end_address + // +12 4b type (user, external, etc) + // +16 4b offset of source disasm + // +20 4b length of source disasm + // +24 4b offset of raw hir disasm + // +28 4b length of raw hir disasm + // +32 4b offset of opt hir disasm + // +36 4b length of opt hir disasm + // +40 4b offset of machine code disasm + // +44 4b length of machine code disasm + }; + + static size_t SizeOfHeader() { return sizeof(Header); } +}; + class FunctionTraceData { public: static const int kFunctionCallerHistoryCount = 4;